diff --git a/Alignment/CommonAlignment/interface/AlignableObjectId.h b/Alignment/CommonAlignment/interface/AlignableObjectId.h index c785bb91b763d..73f26c14d6125 100644 --- a/Alignment/CommonAlignment/interface/AlignableObjectId.h +++ b/Alignment/CommonAlignment/interface/AlignableObjectId.h @@ -7,6 +7,7 @@ class TrackerGeometry; class DTGeometry; class CSCGeometry; +class GEMGeometry; /// Allows conversion between type and name, and vice-versa class AlignableObjectId { @@ -15,7 +16,7 @@ class AlignableObjectId { enum class Geometry { RunI, PhaseI, PhaseII, General, Unspecified }; AlignableObjectId(Geometry); - AlignableObjectId(const TrackerGeometry*, const DTGeometry*, const CSCGeometry*); + AlignableObjectId(const TrackerGeometry*, const DTGeometry*, const CSCGeometry*, const GEMGeometry*); AlignableObjectId(const AlignableObjectId&) = default; AlignableObjectId& operator=(const AlignableObjectId&) = default; AlignableObjectId(AlignableObjectId&&) = default; @@ -43,7 +44,7 @@ class AlignableObjectId { private: static Geometry trackerGeometry(const TrackerGeometry*); - static Geometry muonGeometry(const DTGeometry*, const CSCGeometry*); + static Geometry muonGeometry(const DTGeometry*, const CSCGeometry*, const GEMGeometry*); const entry* entries_{nullptr}; Geometry geometry_{Geometry::Unspecified}; diff --git a/Alignment/CommonAlignment/interface/StructureType.h b/Alignment/CommonAlignment/interface/StructureType.h index b916d1bf587e9..e6a413b658235 100644 --- a/Alignment/CommonAlignment/interface/StructureType.h +++ b/Alignment/CommonAlignment/interface/StructureType.h @@ -81,6 +81,12 @@ namespace align { AlignableCSCRing, AlignableCSCChamber, AlignableCSCLayer, // = 110 + AlignableGEMEndcap, + AlignableGEMStation, + AlignableGEMRing, + AlignableGEMSuperChamber, + AlignableGEMChamber, + AlignableGEMEtaPartition, AlignableMuon, Detector, // = 112 (what for?) diff --git a/Alignment/CommonAlignment/src/AlignableCompositeBuilder.cc b/Alignment/CommonAlignment/src/AlignableCompositeBuilder.cc index 17199a0aa0a33..e092bf7dac7a4 100644 --- a/Alignment/CommonAlignment/src/AlignableCompositeBuilder.cc +++ b/Alignment/CommonAlignment/src/AlignableCompositeBuilder.cc @@ -18,7 +18,7 @@ AlignableCompositeBuilder ::AlignableCompositeBuilder(const TrackerTopology* tra const TrackerGeometry* trackerGeometry, const AlignableIndexer& alignableIndexer) : trackerTopology_(trackerTopology), - alignableObjectId_(trackerGeometry, nullptr, nullptr), + alignableObjectId_(trackerGeometry, nullptr, nullptr, nullptr), alignableIndexer_(alignableIndexer) {} //_____________________________________________________________________________ diff --git a/Alignment/CommonAlignment/src/AlignableObjectId.cc b/Alignment/CommonAlignment/src/AlignableObjectId.cc index b4ee89195bd9f..a2f4ae904db84 100644 --- a/Alignment/CommonAlignment/src/AlignableObjectId.cc +++ b/Alignment/CommonAlignment/src/AlignableObjectId.cc @@ -135,6 +135,12 @@ namespace { {align::AlignableCSCRing, "CSCRing"}, {align::AlignableCSCChamber, "CSCChamber"}, {align::AlignableCSCLayer, "CSCLayer"}, + {align::AlignableGEMEndcap, "GEMEndcap"}, + {align::AlignableGEMStation, "GEMStation"}, + {align::AlignableGEMRing, "GEMRing"}, + {align::AlignableGEMSuperChamber, "GEMSuperChamber"}, + {align::AlignableGEMChamber, "GEMChamber"}, + {align::AlignableGEMEtaPartition, "GEMEtaPartition"}, {align::AlignableMuon, "Muon"}, {align::BeamSpot, "BeamSpot"}, @@ -201,6 +207,12 @@ namespace { {align::AlignableCSCRing, "CSCRing"}, {align::AlignableCSCChamber, "CSCChamber"}, {align::AlignableCSCLayer, "CSCLayer"}, + {align::AlignableGEMEndcap, "GEMEndcap"}, + {align::AlignableGEMStation, "GEMStation"}, + {align::AlignableGEMRing, "GEMRing"}, + {align::AlignableGEMSuperChamber, "GEMSuperChamber"}, + {align::AlignableGEMChamber, "GEMChamber"}, + {align::AlignableGEMEtaPartition, "GEMEtaPartition"}, {align::AlignableMuon, "Muon"}, {align::BeamSpot, "BeamSpot"}, @@ -246,8 +258,9 @@ AlignableObjectId ::AlignableObjectId(AlignableObjectId::Geometry geometry) : ge //_____________________________________________________________________________ AlignableObjectId ::AlignableObjectId(const TrackerGeometry *tracker, const DTGeometry *muonDt, - const CSCGeometry *muonCsc) - : AlignableObjectId(commonGeometry(trackerGeometry(tracker), muonGeometry(muonDt, muonCsc))) {} + const CSCGeometry *muonCsc, + const GEMGeometry *muonGem) + : AlignableObjectId(commonGeometry(trackerGeometry(tracker), muonGeometry(muonDt, muonCsc, muonGem))) {} //_____________________________________________________________________________ align::StructureType AlignableObjectId::nameToType(const std::string &name) const { return stringToId(name.c_str()); } @@ -299,7 +312,9 @@ AlignableObjectId::Geometry AlignableObjectId ::trackerGeometry(const TrackerGeo } } -AlignableObjectId::Geometry AlignableObjectId ::muonGeometry(const DTGeometry *, const CSCGeometry *) { +AlignableObjectId::Geometry AlignableObjectId ::muonGeometry(const DTGeometry *, + const CSCGeometry *, + const GEMGeometry *) { // muon alignment structure types are identical for all kinds of geometries return Geometry::General; } diff --git a/Alignment/CommonAlignmentMonitor/plugins/AlignmentMonitorAsAnalyzer.cc b/Alignment/CommonAlignmentMonitor/plugins/AlignmentMonitorAsAnalyzer.cc index 5110c25217cf0..1f880d9574d14 100644 --- a/Alignment/CommonAlignmentMonitor/plugins/AlignmentMonitorAsAnalyzer.cc +++ b/Alignment/CommonAlignmentMonitor/plugins/AlignmentMonitorAsAnalyzer.cc @@ -39,6 +39,7 @@ #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeomBuilderFromGeometricDet.h" #include "Geometry/DTGeometry/interface/DTGeometry.h" #include "Geometry/CSCGeometry/interface/CSCGeometry.h" +#include "Geometry/GEMGeometry/interface/GEMGeometry.h" #include "Geometry/Records/interface/TrackerTopologyRcd.h" #include "Geometry/CommonTopologies/interface/GeometryAligner.h" #include "CondFormats/GeometryObjects/interface/PTrackerParameters.h" @@ -50,6 +51,8 @@ #include "CondFormats/AlignmentRecord/interface/DTAlignmentErrorExtendedRcd.h" #include "CondFormats/AlignmentRecord/interface/CSCAlignmentRcd.h" #include "CondFormats/AlignmentRecord/interface/CSCAlignmentErrorExtendedRcd.h" +#include "CondFormats/AlignmentRecord/interface/GEMAlignmentRcd.h" +#include "CondFormats/AlignmentRecord/interface/GEMAlignmentErrorExtendedRcd.h" #include "CondFormats/AlignmentRecord/interface/GlobalPositionRcd.h" #include "CondFormats/Alignment/interface/DetectorGlobalPosition.h" @@ -81,7 +84,16 @@ class AlignmentMonitorAsAnalyzer : public edm::EDAnalyzer { std::unique_ptr m_alignmentParameterStore; std::vector> m_monitors; - std::string idealGeometryLabel; + edm::ESGetToken esTokenDT_; + edm::ESGetToken esTokenCSC_; + edm::ESGetToken esTokenGEM_; + edm::ESGetToken esTokenGPR_; + edm::ESGetToken esTokenDTAl_; + edm::ESGetToken esTokenDTAPE_; + edm::ESGetToken esTokenCSCAl_; + edm::ESGetToken esTokenCSCAPE_; + edm::ESGetToken esTokenGEMAl_; + edm::ESGetToken esTokenGEMAPE_; bool m_firstEvent; }; @@ -99,7 +111,9 @@ class AlignmentMonitorAsAnalyzer : public edm::EDAnalyzer { AlignmentMonitorAsAnalyzer::AlignmentMonitorAsAnalyzer(const edm::ParameterSet& iConfig) : m_tjTag(iConfig.getParameter("tjTkAssociationMapTag")), m_aliParamStoreCfg(iConfig.getParameter("ParameterStore")), - idealGeometryLabel("idealForAlignmentMonitorAsAnalyzer") { + esTokenDT_(esConsumes(edm::ESInputTag("", "idealForAlignmentMonitorAsAnalyzer"))), + esTokenCSC_(esConsumes(edm::ESInputTag("", "idealForAlignmentMonitorAsAnalyzer"))), + esTokenGEM_(esConsumes(edm::ESInputTag("", "idealForAlignmentMonitorAsAnalyzer"))) { std::vector monitors = iConfig.getUntrackedParameter>("monitors"); for (auto const& mon : monitors) { @@ -129,13 +143,11 @@ void AlignmentMonitorAsAnalyzer::analyze(const edm::Event& iEvent, const edm::Ev TrackerGeomBuilderFromGeometricDet trackerBuilder; std::shared_ptr theTracker(trackerBuilder.build(&(*theGeometricDet), *ptp, tTopo)); - edm::ESHandle theMuonDT; - edm::ESHandle theMuonCSC; - iSetup.get().get(idealGeometryLabel, theMuonDT); - iSetup.get().get(idealGeometryLabel, theMuonCSC); + edm::ESHandle theMuonDT = iSetup.getHandle(esTokenDT_); + edm::ESHandle theMuonCSC = iSetup.getHandle(esTokenCSC_); + edm::ESHandle theMuonGEM = iSetup.getHandle(esTokenGEM_); - edm::ESHandle globalPositionRcd; - iSetup.get().get(globalPositionRcd); + edm::ESHandle globalPositionRcd = iSetup.getHandle(esTokenGPR_); edm::ESHandle alignments; iSetup.get().get(alignments); @@ -146,29 +158,33 @@ void AlignmentMonitorAsAnalyzer::analyze(const edm::Event& iEvent, const edm::Ev &(*alignmentErrors), align::DetectorGlobalPosition(*globalPositionRcd, DetId(DetId::Tracker))); - edm::ESHandle dtAlignments; - iSetup.get().get(dtAlignments); - edm::ESHandle dtAlignmentErrorsExtended; - iSetup.get().get(dtAlignmentErrorsExtended); + edm::ESHandle dtAlignments = iSetup.getHandle(esTokenDTAl_); + ; + edm::ESHandle dtAlignmentErrorsExtended = iSetup.getHandle(esTokenDTAPE_); aligner.applyAlignments(&(*theMuonDT), &(*dtAlignments), &(*dtAlignmentErrorsExtended), align::DetectorGlobalPosition(*globalPositionRcd, DetId(DetId::Muon))); - edm::ESHandle cscAlignments; - iSetup.get().get(cscAlignments); - edm::ESHandle cscAlignmentErrorsExtended; - iSetup.get().get(cscAlignmentErrorsExtended); + edm::ESHandle cscAlignments = iSetup.getHandle(esTokenCSCAl_); + edm::ESHandle cscAlignmentErrorsExtended = iSetup.getHandle(esTokenCSCAPE_); aligner.applyAlignments(&(*theMuonCSC), &(*cscAlignments), &(*cscAlignmentErrorsExtended), align::DetectorGlobalPosition(*globalPositionRcd, DetId(DetId::Muon))); + edm::ESHandle gemAlignments = iSetup.getHandle(esTokenGEMAl_); + edm::ESHandle gemAlignmentErrorsExtended = iSetup.getHandle(esTokenGEMAPE_); + aligner.applyAlignments(&(*theMuonGEM), + &(*gemAlignments), + &(*gemAlignmentErrorsExtended), + align::DetectorGlobalPosition(*globalPositionRcd, DetId(DetId::Muon))); + // within an analyzer, modules can't expect to see any selected alignables! align::Alignables empty_alignables; m_alignableTracker = std::make_unique(&(*theTracker), tTopo); - m_alignableMuon = std::make_unique(&(*theMuonDT), &(*theMuonCSC)); + m_alignableMuon = std::make_unique(&(*theMuonDT), &(*theMuonCSC), &(*theMuonGEM)); m_alignmentParameterStore = std::make_unique(empty_alignables, m_aliParamStoreCfg); for (auto const& monitor : m_monitors) { diff --git a/Alignment/CommonAlignmentProducer/interface/AlignmentProducerBase.h b/Alignment/CommonAlignmentProducer/interface/AlignmentProducerBase.h index 15b5fdf527bc0..4bc728a74daf0 100644 --- a/Alignment/CommonAlignmentProducer/interface/AlignmentProducerBase.h +++ b/Alignment/CommonAlignmentProducer/interface/AlignmentProducerBase.h @@ -51,6 +51,7 @@ #include "Geometry/DTGeometry/interface/DTGeometry.h" #include "Geometry/CSCGeometry/interface/CSCGeometry.h" +#include "Geometry/GEMGeometry/interface/GEMGeometry.h" #include "Geometry/CommonTopologies/interface/GeometryAligner.h" #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" #include "Geometry/Records/interface/IdealGeometryRecord.h" @@ -114,6 +115,7 @@ class AlignmentProducerBase { std::shared_ptr trackerGeometry_; edm::ESHandle muonDTGeometry_; edm::ESHandle muonCSCGeometry_; + edm::ESHandle muonGEMGeometry_; const bool doTracker_, doMuon_, useExtras_; /// Map with tracks/trajectories diff --git a/Alignment/CommonAlignmentProducer/src/AlignmentProducerBase.cc b/Alignment/CommonAlignmentProducer/src/AlignmentProducerBase.cc index 0edb49e973333..cb4743488dd62 100644 --- a/Alignment/CommonAlignmentProducer/src/AlignmentProducerBase.cc +++ b/Alignment/CommonAlignmentProducer/src/AlignmentProducerBase.cc @@ -425,6 +425,7 @@ void AlignmentProducerBase::createGeometries(const edm::EventSetup& iSetup, cons if (doMuon_) { iSetup.get().get(idealGeometryLabel, muonDTGeometry_); iSetup.get().get(idealGeometryLabel, muonCSCGeometry_); + iSetup.get().get(idealGeometryLabel, muonGEMGeometry_); } } @@ -452,6 +453,9 @@ void AlignmentProducerBase::applyAlignmentsToDB(const edm::EventSetup& setup) { applyDB( &*muonCSCGeometry_, setup, align::DetectorGlobalPosition(*globalPositions_, DetId(DetId::Muon))); + + applyDB( + &*muonGEMGeometry_, setup, align::DetectorGlobalPosition(*globalPositions_, DetId(DetId::Muon))); } } } @@ -468,9 +472,9 @@ void AlignmentProducerBase::createAlignables(const TrackerTopology* tTopo, bool if (doMuon_) { if (update) { - alignableMuon_->update(&*muonDTGeometry_, &*muonCSCGeometry_); + alignableMuon_->update(&*muonDTGeometry_, &*muonCSCGeometry_, &*muonGEMGeometry_); } else { - alignableMuon_ = std::make_unique(&*muonDTGeometry_, &*muonCSCGeometry_); + alignableMuon_ = std::make_unique(&*muonDTGeometry_, &*muonCSCGeometry_, &*muonGEMGeometry_); } } @@ -646,12 +650,15 @@ void AlignmentProducerBase::applyAlignmentsToGeometry() { std::unique_ptr dtAlignments{alignableMuon_->dtAlignments()}; std::unique_ptr cscAlignments{alignableMuon_->cscAlignments()}; + std::unique_ptr gemAlignments{alignableMuon_->gemAlignments()}; std::unique_ptr dtAlignmentErrExt{alignableMuon_->dtAlignmentErrorsExtended()}; std::unique_ptr cscAlignmentErrExt{alignableMuon_->cscAlignmentErrorsExtended()}; + std::unique_ptr gemAlignmentErrExt{alignableMuon_->gemAlignmentErrorsExtended()}; aligner.applyAlignments(&*muonDTGeometry_, dtAlignments.get(), dtAlignmentErrExt.get(), AlignTransform()); aligner.applyAlignments(&*muonCSCGeometry_, cscAlignments.get(), cscAlignmentErrExt.get(), AlignTransform()); + aligner.applyAlignments(&*muonGEMGeometry_, gemAlignments.get(), gemAlignmentErrExt.get(), AlignTransform()); } } diff --git a/Alignment/LaserAlignmentSimulation/plugins/LaserOpticalPhysics.cc b/Alignment/LaserAlignmentSimulation/plugins/LaserOpticalPhysics.cc index 468b572c4609e..84a5ca5f26781 100644 --- a/Alignment/LaserAlignmentSimulation/plugins/LaserOpticalPhysics.cc +++ b/Alignment/LaserAlignmentSimulation/plugins/LaserOpticalPhysics.cc @@ -13,8 +13,8 @@ #include "G4HadronPhysicsQGSP_FTFP_BERT.hh" #include "SimG4Core/Physics/interface/PhysicsListFactory.h" -#include "SimG4Core/PhysicsLists/interface/CMSEmStandardPhysics.h" +#include "G4EmStandardPhysics_option1.hh" #include "G4DecayPhysics.hh" #include "G4EmExtraPhysics.hh" #include "G4HadronElasticPhysics.hh" @@ -29,7 +29,7 @@ LaserOpticalPhysics::LaserOpticalPhysics(const edm::ParameterSet &p) : PhysicsLi << std::endl; // EM Physics - RegisterPhysics(new CMSEmStandardPhysics(ver)); + RegisterPhysics(new G4EmStandardPhysics_option1(ver)); // Synchroton Radiation & GN Physics RegisterPhysics(new G4EmExtraPhysics(ver)); // Decays diff --git a/Alignment/MuonAlignment/BuildFile.xml b/Alignment/MuonAlignment/BuildFile.xml index 5d86f492501ad..5b2b355dc9328 100644 --- a/Alignment/MuonAlignment/BuildFile.xml +++ b/Alignment/MuonAlignment/BuildFile.xml @@ -5,6 +5,7 @@ + diff --git a/Alignment/MuonAlignment/interface/AlignableGEMChamber.h b/Alignment/MuonAlignment/interface/AlignableGEMChamber.h new file mode 100644 index 0000000000000..e7dc8e2194b4c --- /dev/null +++ b/Alignment/MuonAlignment/interface/AlignableGEMChamber.h @@ -0,0 +1,27 @@ +#ifndef Alignment_MuonAlignment_AlignableGEMChamber_H +#define Alignment_MuonAlignment_AlignableGEMChamber_H + +/* \class AlignableGEMChamber + * \author Hyunyong Kim - TAMU + */ + +#include +#include +#include + +#include "Alignment/CommonAlignment/interface/StructureType.h" +#include "Alignment/CommonAlignment/interface/AlignableDet.h" + +#include "Geometry/CommonDetUnit/interface/GeomDet.h" +#include "Alignment/CommonAlignment/interface/AlignableComposite.h" + +class AlignableGEMChamber : public AlignableDet { +public: + friend std::ostream& operator<<(std::ostream&, const AlignableGEMChamber&); + + AlignableGEMChamber(const GeomDet* geomDet); + + void update(const GeomDet* geomDet); +}; + +#endif diff --git a/Alignment/MuonAlignment/interface/AlignableGEMEndcap.h b/Alignment/MuonAlignment/interface/AlignableGEMEndcap.h new file mode 100644 index 0000000000000..88ab2474f3a8e --- /dev/null +++ b/Alignment/MuonAlignment/interface/AlignableGEMEndcap.h @@ -0,0 +1,42 @@ +#ifndef Alignment_MuonAlignment_AlignableGEMEndcap_H +#define Alignment_MuonAlignment_AlignableGEMEndcap_H + +/* \class AlignableGEMEndcap + * \author Hyunyong Kim - TAMU + */ + +#include "Alignment/CommonAlignment/interface/Utilities.h" +#include "Alignment/CommonAlignment/interface/AlignableComposite.h" +#include "Alignment/CommonAlignment/interface/AlignableSurface.h" + +#include "Alignment/MuonAlignment/interface/AlignableGEMStation.h" + +#include + +class GeomDet; + +class AlignableGEMEndcap : public AlignableComposite { +public: + AlignableGEMEndcap(const std::vector& GEMStations); + + PositionType computePosition(); + + RotationType computeOrientation(); + + AlignableSurface computeSurface(); + + AlignableGEMStation& station(int i); + + friend std::ostream& operator<<(std::ostream&, const AlignableGEMEndcap&); + + void dump(void) const override; + + Alignments* alignments() const override; + + AlignmentErrorsExtended* alignmentErrors() const override; + +private: + std::vector theGEMStations; +}; + +#endif diff --git a/Alignment/MuonAlignment/interface/AlignableGEMRing.h b/Alignment/MuonAlignment/interface/AlignableGEMRing.h new file mode 100644 index 0000000000000..91cf235b627a1 --- /dev/null +++ b/Alignment/MuonAlignment/interface/AlignableGEMRing.h @@ -0,0 +1,36 @@ +#ifndef Alignment_MuonAlignment_AlignableGEMRing_H +#define Alignment_MuonAlignment_AlignableGEMRing_H + +/* \class AlignableGEMRing + * \author Hyunyong Kim - TAMU + */ + +#include "Alignment/CommonAlignment/interface/Utilities.h" +#include "Alignment/CommonAlignment/interface/AlignableComposite.h" +#include "Alignment/CommonAlignment/interface/AlignableSurface.h" +#include "Alignment/MuonAlignment/interface/AlignableGEMSuperChamber.h" +#include + +class GeomDet; + +class AlignableGEMRing : public AlignableComposite { +public: + AlignableGEMRing(const std::vector& GEMSuperChambers); + + PositionType computePosition(); + + RotationType computeOrientation(); + + AlignableSurface computeSurface(); + + AlignableGEMSuperChamber& superChamber(int i); + + friend std::ostream& operator<<(std::ostream&, const AlignableGEMRing&); + + void dump(void) const override; + +private: + std::vector theGEMSuperChambers; +}; + +#endif diff --git a/Alignment/MuonAlignment/interface/AlignableGEMStation.h b/Alignment/MuonAlignment/interface/AlignableGEMStation.h new file mode 100644 index 0000000000000..a8f025112d1b3 --- /dev/null +++ b/Alignment/MuonAlignment/interface/AlignableGEMStation.h @@ -0,0 +1,39 @@ +#ifndef Alignment_MuonAlignment_AlignableGEMStation_H +#define Alignment_MuonAlignment_AlignableGEMStation_H + +/* \class AlignableGEMRing + * \author Hyunyong Kim - TAMU + */ + +#include "Alignment/CommonAlignment/interface/Utilities.h" +#include "Alignment/CommonAlignment/interface/AlignableComposite.h" +#include "Alignment/CommonAlignment/interface/AlignableSurface.h" + +#include "Alignment/MuonAlignment/interface/AlignableGEMRing.h" + +#include + +class GeomDet; +class AlignableGEMRing; + +class AlignableGEMStation : public AlignableComposite { +public: + AlignableGEMStation(const std::vector& GEMRings); + + PositionType computePosition(); + + RotationType computeOrientation(); + + AlignableSurface computeSurface(); + + AlignableGEMRing& ring(int i); + + friend std::ostream& operator<<(std::ostream&, const AlignableGEMStation&); + + void dump(void) const override; + +private: + std::vector theGEMRings; +}; + +#endif diff --git a/Alignment/MuonAlignment/interface/AlignableGEMSuperChamber.h b/Alignment/MuonAlignment/interface/AlignableGEMSuperChamber.h new file mode 100644 index 0000000000000..8c2bb1986ff22 --- /dev/null +++ b/Alignment/MuonAlignment/interface/AlignableGEMSuperChamber.h @@ -0,0 +1,27 @@ +#ifndef Alignment_MuonAlignment_AlignableGEMSuperChamber_H +#define Alignment_MuonAlignment_AlignableGEMSuperChamber_H + +/* \class AlignableGEMSuperChamber + * \author Hyunyong Kim - TAMU + */ + +#include +#include +#include + +#include "Alignment/CommonAlignment/interface/StructureType.h" +#include "Alignment/CommonAlignment/interface/AlignableDet.h" + +#include "Geometry/CommonDetUnit/interface/GeomDet.h" +#include "Alignment/CommonAlignment/interface/AlignableComposite.h" + +class AlignableGEMSuperChamber : public AlignableDet { +public: + friend std::ostream& operator<<(std::ostream&, const AlignableGEMSuperChamber&); + + AlignableGEMSuperChamber(const GeomDet* geomDet); + + void update(const GeomDet* geomDet); +}; + +#endif diff --git a/Alignment/MuonAlignment/interface/AlignableMuon.h b/Alignment/MuonAlignment/interface/AlignableMuon.h index 9821bd2d256f7..7f5099fba0176 100644 --- a/Alignment/MuonAlignment/interface/AlignableMuon.h +++ b/Alignment/MuonAlignment/interface/AlignableMuon.h @@ -17,6 +17,7 @@ #include "Alignment/CommonAlignment/interface/AlignableObjectId.h" class CSCGeometry; +class GEMGeometry; // Classes that will be used to construct the muon class AlignableDTBarrel; @@ -27,20 +28,24 @@ class AlignableCSCEndcap; class AlignableCSCStation; class AlignableCSCRing; class AlignableCSCChamber; +class AlignableGEMEndcap; +class AlignableGEMStation; +class AlignableGEMRing; +class AlignableGEMSuperChamber; /// Constructor of the full muon geometry. class AlignableMuon : public AlignableComposite { public: /// Constructor from geometries - AlignableMuon(const DTGeometry*, const CSCGeometry*); + AlignableMuon(const DTGeometry*, const CSCGeometry*, const GEMGeometry*); /// Destructor ~AlignableMuon() override; /// Updater using DTGeometry and CSCGeometry. /// The given geometries have to match the current ones. - void update(const DTGeometry*, const CSCGeometry*); + void update(const DTGeometry*, const CSCGeometry*, const GEMGeometry*); /// Return all components const align::Alignables& components() const final { return theMuonComponents; } @@ -60,6 +65,12 @@ class AlignableMuon : public AlignableComposite { align::Alignables CSCStations(); align::Alignables CSCRings(); align::Alignables CSCEndcaps(); + align::Alignables GEMEtaPartitions(); + align::Alignables GEMChambers(); + align::Alignables GEMSuperChambers(); + align::Alignables GEMStations(); + align::Alignables GEMRings(); + align::Alignables GEMEndcaps(); /// Get DT alignments sorted by DetId Alignments* dtAlignments(); @@ -70,9 +81,13 @@ class AlignableMuon : public AlignableComposite { /// Get CSC alignments sorted by DetId Alignments* cscAlignments(); + Alignments* gemAlignments(); + /// Get CSC alignment errors sorted by DetId AlignmentErrorsExtended* cscAlignmentErrorsExtended(); + AlignmentErrorsExtended* gemAlignmentErrorsExtended(); + /// Return muon alignable object ID provider derived from the muon system geometry const AlignableObjectId& objectIdProvider() const { return alignableObjectId_; } @@ -100,6 +115,8 @@ class AlignableMuon : public AlignableComposite { /// Build muon end caps void buildCSCEndcap(const CSCGeometry*, bool update = false); + void buildGEMEndcap(const GEMGeometry*, bool update = false); + /// Set mothers recursively void recursiveSetMothers(Alignable* alignable); @@ -117,6 +134,11 @@ class AlignableMuon : public AlignableComposite { std::vector theCSCRings; std::vector theCSCEndcaps; + std::vector theGEMSuperChambers; + std::vector theGEMStations; + std::vector theGEMRings; + std::vector theGEMEndcaps; + align::Alignables theMuonComponents; }; diff --git a/Alignment/MuonAlignment/interface/MuonAlignment.h b/Alignment/MuonAlignment/interface/MuonAlignment.h index c29ee34f4c29e..ec70e349ca87f 100644 --- a/Alignment/MuonAlignment/interface/MuonAlignment.h +++ b/Alignment/MuonAlignment/interface/MuonAlignment.h @@ -13,9 +13,10 @@ #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "Alignment/MuonAlignment/interface/AlignableMuon.h" -#include +#include "FWCore/Framework/interface/Frameworkfwd.h" #include "Alignment/CommonAlignment/interface/AlignableNavigator.h" #include "Alignment/MuonAlignment/interface/MuonAlignmentInputMethod.h" +#include "Geometry/Records/interface/MuonGeometryRecord.h" class MuonAlignment { public: @@ -52,6 +53,7 @@ class MuonAlignment { void saveDTtoDB(); void saveCSCtoDB(); + void saveGEMtoDB(); void saveToDB(); private: @@ -60,9 +62,14 @@ class MuonAlignment { std::string theDTAlignRecordName, theDTErrorRecordName; std::string theCSCAlignRecordName, theCSCErrorRecordName; + std::string theGEMAlignRecordName, theGEMErrorRecordName; std::string theDTSurveyRecordName, theDTSurveyErrorRecordName; std::string theCSCSurveyRecordName, theCSCSurveyErrorRecordName; + edm::ESGetToken esTokenDT_; + edm::ESGetToken esTokenCSC_; + edm::ESGetToken esTokenGEM_; + align::Scalars displacements; align::Scalars rotations; diff --git a/Alignment/MuonAlignment/interface/MuonAlignmentInputDB.h b/Alignment/MuonAlignment/interface/MuonAlignmentInputDB.h index c6ad85431d7b3..7cd459cbd8531 100644 --- a/Alignment/MuonAlignment/interface/MuonAlignmentInputDB.h +++ b/Alignment/MuonAlignment/interface/MuonAlignmentInputDB.h @@ -29,7 +29,8 @@ class MuonAlignmentInputDB : public MuonAlignmentInputMethod { public: MuonAlignmentInputDB(); - MuonAlignmentInputDB(std::string dtLabel, std::string cscLabel, std::string idealLabel, bool getAPEs); + MuonAlignmentInputDB( + std::string dtLabel, std::string cscLabel, std::string gemLabel, std::string idealLabel, bool getAPEs); ~MuonAlignmentInputDB() override; // ---------- const member functions --------------------- @@ -47,7 +48,7 @@ class MuonAlignmentInputDB : public MuonAlignmentInputMethod { // ---------- member data -------------------------------- - std::string m_dtLabel, m_cscLabel, idealGeometryLabel; + std::string m_dtLabel, m_cscLabel, m_gemLabel, idealGeometryLabel; bool m_getAPEs; }; diff --git a/Alignment/MuonAlignment/interface/MuonScenarioBuilder.h b/Alignment/MuonAlignment/interface/MuonScenarioBuilder.h index d8c4e0bd35e1d..07f503f6aec05 100644 --- a/Alignment/MuonAlignment/interface/MuonScenarioBuilder.h +++ b/Alignment/MuonAlignment/interface/MuonScenarioBuilder.h @@ -33,6 +33,8 @@ class MuonScenarioBuilder : public MisalignmentScenarioBuilder { /// this special method allows to move a CSCsector by a same amount void moveCSCSectors(const edm::ParameterSet& scenario); + void moveGEMSectors(const edm::ParameterSet& scenario); + /// this special method allows to move the complete muon system by a same amount void moveMuon(const edm::ParameterSet& scenario); diff --git a/Alignment/MuonAlignment/plugins/MuonGeometryDBConverter.cc b/Alignment/MuonAlignment/plugins/MuonGeometryDBConverter.cc index 8e61794fa1511..5afd04cf3f02f 100644 --- a/Alignment/MuonAlignment/plugins/MuonGeometryDBConverter.cc +++ b/Alignment/MuonAlignment/plugins/MuonGeometryDBConverter.cc @@ -54,7 +54,7 @@ class MuonGeometryDBConverter : public edm::one::EDAnalyzer<> { bool m_done; std::string m_input, m_output; - std::string m_dtLabel, m_cscLabel; + std::string m_dtLabel, m_cscLabel, m_gemLabel; double m_shiftErr, m_angleErr; std::string m_fileName; bool m_getAPEs; @@ -101,6 +101,7 @@ MuonGeometryDBConverter::MuonGeometryDBConverter(const edm::ParameterSet &iConfi else if (m_input == std::string("db")) { m_dtLabel = iConfig.getParameter("dtLabel"); m_cscLabel = iConfig.getParameter("cscLabel"); + m_gemLabel = iConfig.getParameter("gemLabel"); m_shiftErr = iConfig.getParameter("shiftErr"); m_angleErr = iConfig.getParameter("angleErr"); m_getAPEs = iConfig.getParameter("getAPEs"); @@ -109,6 +110,7 @@ MuonGeometryDBConverter::MuonGeometryDBConverter(const edm::ParameterSet &iConfi else if (m_input == std::string("surveydb")) { m_dtLabel = iConfig.getParameter("dtLabel"); m_cscLabel = iConfig.getParameter("cscLabel"); + m_gemLabel = iConfig.getParameter("gemLabel"); } else if (m_input == std::string("scenario")) { @@ -159,7 +161,7 @@ void MuonGeometryDBConverter::analyze(const edm::Event &iEvent, const edm::Event } else if (m_input == std::string("db")) { - MuonAlignmentInputDB inputMethod(m_dtLabel, m_cscLabel, idealGeometryLabelForInputDB, m_getAPEs); + MuonAlignmentInputDB inputMethod(m_dtLabel, m_cscLabel, m_gemLabel, idealGeometryLabelForInputDB, m_getAPEs); muonAlignment = new MuonAlignment(iSetup, inputMethod); if (m_getAPEs) { muonAlignment->copyAlignmentToSurvey(m_shiftErr, m_angleErr); @@ -222,6 +224,7 @@ void MuonGeometryDBConverter::fillDescriptions(edm::ConfigurationDescriptions &d desc.add("input", "ideal"); desc.add("dtLabel", ""); desc.add("cscLabel", ""); + desc.add("gemLabel", ""); desc.add("shiftErr", 1000.0); desc.add("angleErr", 6.28); desc.add("getAPEs", true); diff --git a/Alignment/MuonAlignment/plugins/MuonMisalignedProducer.cc b/Alignment/MuonAlignment/plugins/MuonMisalignedProducer.cc index 4bda51a0360d8..ae2b1e1872b0b 100644 --- a/Alignment/MuonAlignment/plugins/MuonMisalignedProducer.cc +++ b/Alignment/MuonAlignment/plugins/MuonMisalignedProducer.cc @@ -26,6 +26,7 @@ #include "Alignment/MuonAlignment/interface/AlignableMuon.h" #include "Geometry/CSCGeometry/interface/CSCGeometry.h" #include "Geometry/DTGeometry/interface/DTGeometry.h" +#include "Geometry/GEMGeometry/interface/GEMGeometry.h" #include "Alignment/MuonAlignment/interface/MuonScenarioBuilder.h" #include "Alignment/CommonAlignment/interface/Alignable.h" #include "Geometry/CommonTopologies/interface/GeometryAligner.h" @@ -33,6 +34,8 @@ #include +#include + class MuonMisalignedProducer : public edm::one::EDAnalyzer<> { public: /// Constructor @@ -52,12 +55,18 @@ class MuonMisalignedProducer : public edm::one::EDAnalyzer<> { std::string theDTAlignRecordName, theDTErrorRecordName; std::string theCSCAlignRecordName, theCSCErrorRecordName; - std::string theIdealGeometryLabel; + std::string theGEMAlignRecordName, theGEMErrorRecordName; + + edm::ESGetToken esTokenDT_; + edm::ESGetToken esTokenCSC_; + edm::ESGetToken esTokenGEM_; Alignments* dt_Alignments; AlignmentErrorsExtended* dt_AlignmentErrorsExtended; Alignments* csc_Alignments; AlignmentErrorsExtended* csc_AlignmentErrorsExtended; + Alignments* gem_Alignments; + AlignmentErrorsExtended* gem_AlignmentErrorsExtended; }; //__________________________________________________________________________________________________ @@ -68,7 +77,11 @@ MuonMisalignedProducer::MuonMisalignedProducer(const edm::ParameterSet& p) theDTErrorRecordName("DTAlignmentErrorExtendedRcd"), theCSCAlignRecordName("CSCAlignmentRcd"), theCSCErrorRecordName("CSCAlignmentErrorExtendedRcd"), - theIdealGeometryLabel("idealForMuonMisalignedProducer") {} + theGEMAlignRecordName("GEMAlignmentRcd"), + theGEMErrorRecordName("GEMAlignmentErrorExtendedRcd"), + esTokenDT_(esConsumes(edm::ESInputTag("", "idealForMuonMisalignedProducer"))), + esTokenCSC_(esConsumes(edm::ESInputTag("", "idealForMuonMisalignedProducer"))), + esTokenGEM_(esConsumes(edm::ESInputTag("", "idealForMuonMisalignedProducer"))) {} //__________________________________________________________________________________________________ MuonMisalignedProducer::~MuonMisalignedProducer() {} @@ -77,13 +90,12 @@ MuonMisalignedProducer::~MuonMisalignedProducer() {} void MuonMisalignedProducer::analyze(const edm::Event& event, const edm::EventSetup& eventSetup) { edm::LogInfo("MisalignedMuon") << "Producer called"; // Create the Muon geometry from ideal geometry - edm::ESHandle theDTGeometry; - edm::ESHandle theCSCGeometry; - eventSetup.get().get(theIdealGeometryLabel, theDTGeometry); - eventSetup.get().get(theIdealGeometryLabel, theCSCGeometry); + edm::ESHandle theDTGeometry = eventSetup.getHandle(esTokenDT_); + edm::ESHandle theCSCGeometry = eventSetup.getHandle(esTokenCSC_); + edm::ESHandle theGEMGeometry = eventSetup.getHandle(esTokenGEM_); // Create the alignable hierarchy - AlignableMuon* theAlignableMuon = new AlignableMuon(&(*theDTGeometry), &(*theCSCGeometry)); + AlignableMuon* theAlignableMuon = new AlignableMuon(&(*theDTGeometry), &(*theCSCGeometry), &(*theGEMGeometry)); // Create misalignment scenario MuonScenarioBuilder scenarioBuilder(theAlignableMuon); @@ -94,14 +106,17 @@ void MuonMisalignedProducer::analyze(const edm::Event& event, const edm::EventSe dt_AlignmentErrorsExtended = theAlignableMuon->dtAlignmentErrorsExtended(); csc_Alignments = theAlignableMuon->cscAlignments(); csc_AlignmentErrorsExtended = theAlignableMuon->cscAlignmentErrorsExtended(); + gem_Alignments = theAlignableMuon->gemAlignments(); + gem_AlignmentErrorsExtended = theAlignableMuon->gemAlignmentErrorsExtended(); // Misalign the EventSetup geometry - GeometryAligner aligner; - + /* GeometryAligner aligner; aligner.applyAlignments(&(*theDTGeometry), dt_Alignments, dt_AlignmentErrorsExtended, AlignTransform()); aligner.applyAlignments( &(*theCSCGeometry), csc_Alignments, csc_AlignmentErrorsExtended, AlignTransform()); - + aligner.applyAlignments( + &(*theGEMGeometry), gem_Alignments, gem_AlignmentErrorsExtended, AlignTransform()); + */ // Write alignments to DB if (theSaveToDB) this->saveToDB(); @@ -125,6 +140,9 @@ void MuonMisalignedProducer::saveToDB(void) { poolDbService->writeOne(&(*csc_Alignments), poolDbService->beginOfTime(), theCSCAlignRecordName); poolDbService->writeOne( &(*csc_AlignmentErrorsExtended), poolDbService->beginOfTime(), theCSCErrorRecordName); + poolDbService->writeOne(&(*gem_Alignments), poolDbService->beginOfTime(), theGEMAlignRecordName); + poolDbService->writeOne( + &(*gem_AlignmentErrorsExtended), poolDbService->beginOfTime(), theGEMErrorRecordName); } //____________________________________________________________________________________________ DEFINE_FWK_MODULE(MuonMisalignedProducer); diff --git a/Alignment/MuonAlignment/src/AlignableGEMChamber.cc b/Alignment/MuonAlignment/src/AlignableGEMChamber.cc new file mode 100644 index 0000000000000..d7e89a088449d --- /dev/null +++ b/Alignment/MuonAlignment/src/AlignableGEMChamber.cc @@ -0,0 +1,41 @@ +/* AlignableGEMChamber + * \author Hyunyong Kim - TAMU + */ +#include "Alignment/MuonAlignment/interface/AlignableGEMChamber.h" + +AlignableGEMChamber::AlignableGEMChamber(const GeomDet* geomDet) : AlignableDet(geomDet) { + theStructureType = align::AlignableGEMChamber; + theSurface = geomDet->surface(); +} + +void AlignableGEMChamber::update(const GeomDet* geomDet) { + AlignableDet::update(geomDet); + theSurface = geomDet->surface(); +} + +std::ostream& operator<<(std::ostream& os, const AlignableGEMChamber& r) { + const auto& theDets = r.components(); + + os << " This GEMChamber contains " << theDets.size() << " units" << std::endl; + os << " position = " << r.globalPosition() << std::endl; + os << " (phi, r, z)= (" << r.globalPosition().phi() << "," << r.globalPosition().perp() << "," + << r.globalPosition().z(); + os << "), orientation:" << std::endl << r.globalRotation() << std::endl; + + os << " total displacement and rotation: " << r.displacement() << std::endl; + os << r.rotation() << std::endl; + + for (const auto& idet : theDets) { + const auto& comp = idet->components(); + + for (unsigned int i = 0; i < comp.size(); ++i) { + os << " Det position, phi, r: " << comp[i]->globalPosition() << " , " << comp[i]->globalPosition().phi() + << " , " << comp[i]->globalPosition().perp() << std::endl; + os << " local position, phi, r: " << r.surface().toLocal(comp[i]->globalPosition()) << " , " + << r.surface().toLocal(comp[i]->globalPosition()).phi() << " , " + << r.surface().toLocal(comp[i]->globalPosition()).perp() << std::endl; + } + } + + return os; +} diff --git a/Alignment/MuonAlignment/src/AlignableGEMEndcap.cc b/Alignment/MuonAlignment/src/AlignableGEMEndcap.cc new file mode 100644 index 0000000000000..a2681d3a1f265 --- /dev/null +++ b/Alignment/MuonAlignment/src/AlignableGEMEndcap.cc @@ -0,0 +1,92 @@ +/* AlignableGEMEndcap + * \author Hyunyong Kim - TAMU + */ +#include + +#include "Alignment/MuonAlignment/interface/AlignableGEMEndcap.h" +#include "CondFormats/Alignment/interface/Alignments.h" +#include "CondFormats/Alignment/interface/AlignmentErrorsExtended.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" + +AlignableGEMEndcap::AlignableGEMEndcap(const std::vector& GEMStations) + : AlignableComposite(GEMStations[0]->id(), align::AlignableGEMEndcap) { + theGEMStations.insert(theGEMStations.end(), GEMStations.begin(), GEMStations.end()); + + for (const auto& station : GEMStations) { + const auto mother = station->mother(); + this->addComponent(station); + station->setMother(mother); + } + + setSurface(computeSurface()); + compConstraintType_ = Alignable::CompConstraintType::POSITION_Z; +} + +AlignableGEMStation& AlignableGEMEndcap::station(int i) { + if (i >= size()) + throw cms::Exception("LogicError") << "Station index (" << i << ") out of range"; + + return *theGEMStations[i]; +} + +AlignableSurface AlignableGEMEndcap::computeSurface() { + return AlignableSurface(computePosition(), computeOrientation()); +} + +AlignableGEMEndcap::PositionType AlignableGEMEndcap::computePosition() { + float zz = 0.; + + for (std::vector::iterator ilayer = theGEMStations.begin(); ilayer != theGEMStations.end(); + ilayer++) + zz += (*ilayer)->globalPosition().z(); + + zz /= static_cast(theGEMStations.size()); + + return PositionType(0.0, 0.0, zz); +} + +AlignableGEMEndcap::RotationType AlignableGEMEndcap::computeOrientation() { return RotationType(); } + +std::ostream& operator<<(std::ostream& os, const AlignableGEMEndcap& b) { + os << "This EndCap contains " << b.theGEMStations.size() << " GEM stations" << std::endl; + os << "(phi, r, z) = (" << b.globalPosition().phi() << "," << b.globalPosition().perp() << "," + << b.globalPosition().z(); + os << "), orientation:" << std::endl << b.globalRotation() << std::endl; + return os; +} + +void AlignableGEMEndcap::dump(void) const { + edm::LogInfo("AlignableDump") << (*this); + for (std::vector::const_iterator iLayer = theGEMStations.begin(); + iLayer != theGEMStations.end(); + iLayer++) + (*iLayer)->dump(); +} + +Alignments* AlignableGEMEndcap::alignments(void) const { + Alignments* m_alignments = new Alignments(); + + for (const auto& i : this->components()) { + std::unique_ptr tmpAlignments{i->alignments()}; + std::copy(tmpAlignments->m_align.begin(), tmpAlignments->m_align.end(), std::back_inserter(m_alignments->m_align)); + } + + std::sort(m_alignments->m_align.begin(), m_alignments->m_align.end()); + + return m_alignments; +} + +AlignmentErrorsExtended* AlignableGEMEndcap::alignmentErrors(void) const { + AlignmentErrorsExtended* m_alignmentErrors = new AlignmentErrorsExtended(); + + for (const auto& i : this->components()) { + std::unique_ptr tmpAlignmentErrorsExtended{i->alignmentErrors()}; + std::copy(tmpAlignmentErrorsExtended->m_alignError.begin(), + tmpAlignmentErrorsExtended->m_alignError.end(), + std::back_inserter(m_alignmentErrors->m_alignError)); + } + + std::sort(m_alignmentErrors->m_alignError.begin(), m_alignmentErrors->m_alignError.end()); + + return m_alignmentErrors; +} diff --git a/Alignment/MuonAlignment/src/AlignableGEMRing.cc b/Alignment/MuonAlignment/src/AlignableGEMRing.cc new file mode 100644 index 0000000000000..008220d3e79c8 --- /dev/null +++ b/Alignment/MuonAlignment/src/AlignableGEMRing.cc @@ -0,0 +1,61 @@ +/* AlignableGEMRing + * \author Hyunyong Kim - TAMU + */ +#include "Alignment/MuonAlignment/interface/AlignableGEMRing.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" + +AlignableGEMRing::AlignableGEMRing(const std::vector& GEMSuperChambers) + : AlignableComposite(GEMSuperChambers[0]->id(), align::AlignableGEMRing) { + theGEMSuperChambers.insert(theGEMSuperChambers.end(), GEMSuperChambers.begin(), GEMSuperChambers.end()); + + for (const auto& chamber : GEMSuperChambers) { + const auto mother = chamber->mother(); + this->addComponent(chamber); + chamber->setMother(mother); + } + + setSurface(computeSurface()); + compConstraintType_ = Alignable::CompConstraintType::POSITION_Z; +} + +AlignableGEMSuperChamber& AlignableGEMRing::superChamber(int i) { + if (i >= size()) + throw cms::Exception("LogicError") << "GEM Super Chamber index (" << i << ") out of range"; + + return *theGEMSuperChambers[i]; +} + +AlignableSurface AlignableGEMRing::computeSurface() { + return AlignableSurface(computePosition(), computeOrientation()); +} + +AlignableGEMRing::PositionType AlignableGEMRing::computePosition() { + float zz = 0.; + + for (std::vector::iterator ichamber = theGEMSuperChambers.begin(); + ichamber != theGEMSuperChambers.end(); + ichamber++) + zz += (*ichamber)->globalPosition().z(); + + zz /= static_cast(theGEMSuperChambers.size()); + + return PositionType(0.0, 0.0, zz); +} + +AlignableGEMRing::RotationType AlignableGEMRing::computeOrientation() { return RotationType(); } + +std::ostream& operator<<(std::ostream& os, const AlignableGEMRing& b) { + os << "This GEM Ring contains " << b.theGEMSuperChambers.size() << " GEM Super chambers" << std::endl; + os << "(phi, r, z) = (" << b.globalPosition().phi() << "," << b.globalPosition().perp() << "," + << b.globalPosition().z(); + os << "), orientation:" << std::endl << b.globalRotation() << std::endl; + return os; +} + +void AlignableGEMRing::dump(void) const { + edm::LogInfo("AlignableDump") << (*this); + for (std::vector::const_iterator iChamber = theGEMSuperChambers.begin(); + iChamber != theGEMSuperChambers.end(); + iChamber++) + edm::LogInfo("AlignableDump") << (**iChamber); +} diff --git a/Alignment/MuonAlignment/src/AlignableGEMStation.cc b/Alignment/MuonAlignment/src/AlignableGEMStation.cc new file mode 100644 index 0000000000000..91cefa4a550b3 --- /dev/null +++ b/Alignment/MuonAlignment/src/AlignableGEMStation.cc @@ -0,0 +1,57 @@ +/* AlignableGEMStation + * \author Hyunyong Kim - TAMU + */ +#include "Alignment/MuonAlignment/interface/AlignableGEMStation.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" + +AlignableGEMStation::AlignableGEMStation(const std::vector& GEMRings) + : AlignableComposite(GEMRings[0]->id(), align::AlignableGEMStation) { + theGEMRings.insert(theGEMRings.end(), GEMRings.begin(), GEMRings.end()); + + for (const auto& ring : GEMRings) { + const auto mother = ring->mother(); + this->addComponent(ring); + ring->setMother(mother); + } + + setSurface(computeSurface()); + compConstraintType_ = Alignable::CompConstraintType::POSITION_Z; +} + +AlignableGEMRing& AlignableGEMStation::ring(int i) { + if (i >= size()) + throw cms::Exception("LogicError") << "GEM Ring index (" << i << ") out of range"; + + return *theGEMRings[i]; +} + +AlignableSurface AlignableGEMStation::computeSurface() { + return AlignableSurface(computePosition(), computeOrientation()); +} + +AlignableGEMStation::PositionType AlignableGEMStation::computePosition() { + float zz = 0.; + + for (std::vector::iterator ilayer = theGEMRings.begin(); ilayer != theGEMRings.end(); ilayer++) + zz += (*ilayer)->globalPosition().z(); + + zz /= static_cast(theGEMRings.size()); + + return PositionType(0.0, 0.0, zz); +} + +AlignableGEMStation::RotationType AlignableGEMStation::computeOrientation() { return RotationType(); } + +std::ostream& operator<<(std::ostream& os, const AlignableGEMStation& b) { + os << "This GEM Station contains " << b.theGEMRings.size() << " GEM rings" << std::endl; + os << "(phi, r, z) = (" << b.globalPosition().phi() << "," << b.globalPosition().perp() << "," + << b.globalPosition().z(); + os << "), orientation:" << std::endl << b.globalRotation() << std::endl; + return os; +} + +void AlignableGEMStation::dump(void) const { + edm::LogInfo("AlignableDump") << (*this); + for (std::vector::const_iterator iRing = theGEMRings.begin(); iRing != theGEMRings.end(); iRing++) + edm::LogInfo("AlignableDump") << (**iRing); +} diff --git a/Alignment/MuonAlignment/src/AlignableGEMSuperChamber.cc b/Alignment/MuonAlignment/src/AlignableGEMSuperChamber.cc new file mode 100644 index 0000000000000..3f9a223168ae6 --- /dev/null +++ b/Alignment/MuonAlignment/src/AlignableGEMSuperChamber.cc @@ -0,0 +1,46 @@ +/* AlignableGEMSuperChamber + * \author Hyunyong Kim - TAMU + */ +#include "Alignment/MuonAlignment/interface/AlignableGEMSuperChamber.h" +#include "Alignment/MuonAlignment/interface/AlignableGEMChamber.h" + +AlignableGEMSuperChamber::AlignableGEMSuperChamber(const GeomDet* geomDet) : AlignableDet(geomDet, false) { + theStructureType = align::AlignableGEMSuperChamber; + const std::vector& geomDets = geomDet->components(); + for (std::vector::const_iterator idet = geomDets.begin(); idet != geomDets.end(); ++idet) { + addComponent(new AlignableGEMChamber(*idet)); + } + this->theSurface = geomDet->surface(); +} + +void AlignableGEMSuperChamber::update(const GeomDet* geomDet) { + AlignableDet::update(geomDet); + theSurface = geomDet->surface(); +} + +std::ostream& operator<<(std::ostream& os, const AlignableGEMSuperChamber& r) { + const auto& theDets = r.components(); + + os << " This GEMSuperChamber contains " << theDets.size() << " units" << std::endl; + os << " position = " << r.globalPosition() << std::endl; + os << " (phi, r, z)= (" << r.globalPosition().phi() << "," << r.globalPosition().perp() << "," + << r.globalPosition().z(); + os << "), orientation:" << std::endl << r.globalRotation() << std::endl; + + os << " total displacement and rotation: " << r.displacement() << std::endl; + os << r.rotation() << std::endl; + + for (const auto& idet : theDets) { + const auto& comp = idet->components(); + + for (unsigned int i = 0; i < comp.size(); ++i) { + os << " Det position, phi, r: " << comp[i]->globalPosition() << " , " << comp[i]->globalPosition().phi() + << " , " << comp[i]->globalPosition().perp() << std::endl; + os << " local position, phi, r: " << r.surface().toLocal(comp[i]->globalPosition()) << " , " + << r.surface().toLocal(comp[i]->globalPosition()).phi() << " , " + << r.surface().toLocal(comp[i]->globalPosition()).perp() << std::endl; + } + } + + return os; +} diff --git a/Alignment/MuonAlignment/src/AlignableMuon.cc b/Alignment/MuonAlignment/src/AlignableMuon.cc index faea5591ead99..032b8dbd80f44 100644 --- a/Alignment/MuonAlignment/src/AlignableMuon.cc +++ b/Alignment/MuonAlignment/src/AlignableMuon.cc @@ -11,29 +11,39 @@ #include "Alignment/MuonAlignment/interface/AlignableMuon.h" #include "Geometry/DTGeometry/interface/DTChamber.h" #include "Geometry/CSCGeometry/interface/CSCGeometry.h" +#include "Geometry/GEMGeometry/interface/GEMGeometry.h" #include #include "CondFormats/Alignment/interface/Alignments.h" #include "CondFormats/Alignment/interface/AlignmentErrorsExtended.h" - +#include "Geometry/CommonDetUnit/interface/GeomDet.h" // Muon components -#include "Alignment/MuonAlignment/interface/AlignableDTChamber.h" -#include "Alignment/MuonAlignment/interface/AlignableCSCChamber.h" +#include "Alignment/MuonAlignment/interface/AlignableDTBarrel.h" #include "Alignment/MuonAlignment/interface/AlignableDTStation.h" -#include "Geometry/CommonDetUnit/interface/GeomDet.h" -#include "Alignment/MuonAlignment/interface/AlignableCSCStation.h" #include "Alignment/MuonAlignment/interface/AlignableDTWheel.h" -#include "Alignment/MuonAlignment/interface/AlignableDTBarrel.h" +#include "Alignment/MuonAlignment/interface/AlignableDTChamber.h" #include "Alignment/MuonAlignment/interface/AlignableCSCEndcap.h" +#include "Alignment/MuonAlignment/interface/AlignableCSCStation.h" +#include "Alignment/MuonAlignment/interface/AlignableCSCRing.h" +#include "Alignment/MuonAlignment/interface/AlignableCSCChamber.h" +#include "Alignment/MuonAlignment/interface/AlignableGEMEndcap.h" +#include "Alignment/MuonAlignment/interface/AlignableGEMStation.h" +#include "Alignment/MuonAlignment/interface/AlignableGEMRing.h" +#include "Alignment/MuonAlignment/interface/AlignableGEMSuperChamber.h" + +#include //-------------------------------------------------------------------------------------------------- -AlignableMuon::AlignableMuon(const DTGeometry* dtGeometry, const CSCGeometry* cscGeometry) +AlignableMuon::AlignableMuon(const DTGeometry* dtGeometry, + const CSCGeometry* cscGeometry, + const GEMGeometry* gemGeometry) : AlignableComposite(0, align::AlignableMuon), // cannot yet set id, use 0 - alignableObjectId_(nullptr, dtGeometry, cscGeometry) { + alignableObjectId_(nullptr, dtGeometry, cscGeometry, gemGeometry) { // Build the muon barrel buildDTBarrel(dtGeometry); // Build the muon end caps buildCSCEndcap(cscGeometry); + buildGEMEndcap(gemGeometry); // Set links to mothers recursively recursiveSetMothers(this); @@ -52,12 +62,15 @@ AlignableMuon::~AlignableMuon() { } //------------------------------------------------------------------------------ -void AlignableMuon::update(const DTGeometry* dtGeometry, const CSCGeometry* cscGeometry) { +void AlignableMuon::update(const DTGeometry* dtGeometry, + const CSCGeometry* cscGeometry, + const GEMGeometry* gemGeometry) { // update the muon barrel buildDTBarrel(dtGeometry, /* update = */ true); // update the muon end caps buildCSCEndcap(cscGeometry, /* update = */ true); + buildGEMEndcap(gemGeometry, /* update = */ true); edm::LogInfo("Alignment") << "@SUB=AlignableMuon::update" << "Updating alignable muon objects DONE"; @@ -266,6 +279,63 @@ void AlignableMuon::buildCSCEndcap(const CSCGeometry* pCSC, bool update) { } } +//-------------------------------------------------------------------------------------------------- +void AlignableMuon::buildGEMEndcap(const GEMGeometry* pGEM, bool update) { + LogDebug("Position") << "Constructing AlignableGEMEndcap"; + std::vector tmpGEMStationsInEndcap; + for (int iec = -1; iec < 2; iec = iec + 2) { + std::vector tmpGEMRingsInStation; + + for (int ist = 0; ist < 3; ist++) { + if (ist == 0) + continue; //Run3 GEM dosen't have ME0 + if (ist == 2) + continue; //Run3 GEM dosen't have GE2/1 + std::vector tmpGEMSuperChambersInRing; + int iri = 1; + int iChamber{0}; + auto vc = pGEM->superChambers(); + for (const auto& det : vc) { + GEMDetId gemId = det->id(); + int ec = gemId.region(); + int st = gemId.station(); + int ri = gemId.ring(); + + if (iec == ec && ist == st && iri == ri) { + if (update) { + theGEMEndcaps[iec == -1 ? 0 : 1]->station(ist - 1).ring(iri - 1).superChamber(iChamber).update(det); + } else { + AlignableGEMSuperChamber* tmpGEMSuperChamber = new AlignableGEMSuperChamber(det); + tmpGEMSuperChambersInRing.push_back(tmpGEMSuperChamber); + } + ++iChamber; + } + } + if (!update) { + if (!tmpGEMSuperChambersInRing.empty()) { + theGEMSuperChambers.insert( + theGEMSuperChambers.end(), tmpGEMSuperChambersInRing.begin(), tmpGEMSuperChambersInRing.end()); + AlignableGEMRing* tmpGEMRing = new AlignableGEMRing(tmpGEMSuperChambersInRing); + tmpGEMRingsInStation.push_back(tmpGEMRing); + tmpGEMSuperChambersInRing.clear(); + } + } + if (!update) { + AlignableGEMStation* tmpGEMStation = new AlignableGEMStation(tmpGEMRingsInStation); + theGEMRings.insert(theGEMRings.end(), tmpGEMRingsInStation.begin(), tmpGEMRingsInStation.end()); + tmpGEMStationsInEndcap.push_back(tmpGEMStation); + tmpGEMRingsInStation.clear(); + } + } + if (!update) { + AlignableGEMEndcap* tmpEndcap = new AlignableGEMEndcap(tmpGEMStationsInEndcap); + theGEMStations.insert(theGEMStations.end(), tmpGEMStationsInEndcap.begin(), tmpGEMStationsInEndcap.end()); + theGEMEndcaps.push_back(tmpEndcap); + tmpGEMStationsInEndcap.clear(); + } + } +} + //-------------------------------------------------------------------------------------------------- align::Alignables AlignableMuon::DTLayers() { align::Alignables result; @@ -372,6 +442,71 @@ align::Alignables AlignableMuon::CSCEndcaps() { return result; } +//__________________________________________________________________________________________________ +align::Alignables AlignableMuon::GEMEtaPartitions() { + align::Alignables result; + align::Alignables superChambers = GEMSuperChambers(); + for (align::Alignables::const_iterator superChamberIter = superChambers.begin(); + superChamberIter != superChambers.end(); + ++superChamberIter) { + align::Alignables chambers = (*superChamberIter)->components(); + for (align::Alignables::const_iterator chamberIter = chambers.begin(); chamberIter != chambers.end(); + ++chamberIter) { + align::Alignables etaPartitions = (*chamberIter)->components(); + for (align::Alignables::const_iterator etaPartitionIter = etaPartitions.begin(); + etaPartitionIter != etaPartitions.end(); + ++etaPartitionIter) { + result.push_back(*etaPartitionIter); + } + } + } + return result; +} + +//__________________________________________________________________________________________________ +align::Alignables AlignableMuon::GEMChambers() { + align::Alignables result; + align::Alignables superChambers = GEMSuperChambers(); + for (align::Alignables::const_iterator superChamberIter = superChambers.begin(); + superChamberIter != superChambers.end(); + ++superChamberIter) { + align::Alignables chambers = (*superChamberIter)->components(); + for (align::Alignables::const_iterator chamberIter = chambers.begin(); chamberIter != chambers.end(); + ++chamberIter) { + result.push_back(*chamberIter); + } + } + return result; +} + +//__________________________________________________________________________________________________ +align::Alignables AlignableMuon::GEMSuperChambers() { + align::Alignables result; + copy(theGEMSuperChambers.begin(), theGEMSuperChambers.end(), back_inserter(result)); + return result; +} + +//__________________________________________________________________________________________________ +align::Alignables AlignableMuon::GEMRings() { + align::Alignables result; + copy(theGEMRings.begin(), theGEMRings.end(), back_inserter(result)); + return result; +} + +//__________________________________________________________________________________________________ +align::Alignables AlignableMuon::GEMStations() { + align::Alignables result; + copy(theGEMStations.begin(), theGEMStations.end(), back_inserter(result)); + return result; +} + +//-------------------------------------------------------------------------------------------------- +align::Alignables AlignableMuon::GEMEndcaps() { + align::Alignables result; + copy(theGEMEndcaps.begin(), theGEMEndcaps.end(), back_inserter(result)); + return result; +} + //__________________________________________________________________________________________________ void AlignableMuon::recursiveSetMothers(Alignable* alignable) { for (const auto& iter : alignable->components()) { @@ -457,3 +592,32 @@ AlignmentErrorsExtended* AlignableMuon::cscAlignmentErrorsExtended(void) { return tmpAlignmentErrorsExtended; } + +//__________________________________________________________________________________________________ +Alignments* AlignableMuon::gemAlignments(void) { + Alignments* gemEndCap1 = this->GEMEndcaps().front()->alignments(); + Alignments* gemEndCap2 = this->GEMEndcaps().back()->alignments(); + Alignments* tmpAlignments = new Alignments(); + std::copy(gemEndCap1->m_align.begin(), gemEndCap1->m_align.end(), back_inserter(tmpAlignments->m_align)); + std::copy(gemEndCap2->m_align.begin(), gemEndCap2->m_align.end(), back_inserter(tmpAlignments->m_align)); + std::sort(tmpAlignments->m_align.begin(), tmpAlignments->m_align.end()); + + return tmpAlignments; +} +//__________________________________________________________________________________________________ +AlignmentErrorsExtended* AlignableMuon::gemAlignmentErrorsExtended(void) { + // Retrieve muon endcaps alignment errors + AlignmentErrorsExtended* gemEndCap1Errors = this->GEMEndcaps().front()->alignmentErrors(); + AlignmentErrorsExtended* gemEndCap2Errors = this->GEMEndcaps().back()->alignmentErrors(); + AlignmentErrorsExtended* tmpAlignmentErrorsExtended = new AlignmentErrorsExtended(); + + std::copy(gemEndCap1Errors->m_alignError.begin(), + gemEndCap1Errors->m_alignError.end(), + back_inserter(tmpAlignmentErrorsExtended->m_alignError)); + std::copy(gemEndCap2Errors->m_alignError.begin(), + gemEndCap2Errors->m_alignError.end(), + back_inserter(tmpAlignmentErrorsExtended->m_alignError)); + std::sort(tmpAlignmentErrorsExtended->m_alignError.begin(), tmpAlignmentErrorsExtended->m_alignError.end()); + + return tmpAlignmentErrorsExtended; +} diff --git a/Alignment/MuonAlignment/src/MuonAlignment.cc b/Alignment/MuonAlignment/src/MuonAlignment.cc index 5c47ca195a1f2..2458e49befb2b 100644 --- a/Alignment/MuonAlignment/src/MuonAlignment.cc +++ b/Alignment/MuonAlignment/src/MuonAlignment.cc @@ -9,9 +9,6 @@ #include "FWCore/ServiceRegistry/interface/Service.h" #include "CondCore/DBOutputService/interface/PoolDBOutputService.h" -// Muon geom -#include "Geometry/Records/interface/MuonGeometryRecord.h" - // Alignment #include "CondFormats/Alignment/interface/Alignments.h" #include "CondFormats/Alignment/interface/AlignmentErrorsExtended.h" @@ -33,6 +30,8 @@ void MuonAlignment::init() { theDTErrorRecordName = "DTAlignmentErrorExtendedRcd"; theCSCAlignRecordName = "CSCAlignmentRcd"; theCSCErrorRecordName = "CSCAlignmentErrorExtendedRcd"; + theGEMAlignRecordName = "GEMAlignmentRcd"; + theGEMErrorRecordName = "GEMAlignmentErrorExtendedRcd"; theDTSurveyRecordName = "DTSurveyRcd"; theDTSurveyErrorRecordName = "DTSurveyErrorExtendedRcd"; theCSCSurveyRecordName = "CSCSurveyRcd"; @@ -44,12 +43,11 @@ void MuonAlignment::init() { MuonAlignment::MuonAlignment(const edm::EventSetup& iSetup) { init(); - edm::ESHandle dtGeometry; - edm::ESHandle cscGeometry; - iSetup.get().get(dtGeometry); - iSetup.get().get(cscGeometry); + edm::ESHandle dtGeometry = iSetup.getHandle(esTokenDT_); + edm::ESHandle cscGeometry = iSetup.getHandle(esTokenCSC_); + edm::ESHandle gemGeometry = iSetup.getHandle(esTokenGEM_); - theAlignableMuon = new AlignableMuon(&(*dtGeometry), &(*cscGeometry)); + theAlignableMuon = new AlignableMuon(&(*dtGeometry), &(*cscGeometry), &(*gemGeometry)); theAlignableNavigator = new AlignableNavigator(theAlignableMuon); } @@ -135,10 +133,12 @@ void MuonAlignment::copyAlignmentToSurvey(double shiftErr, double angleErr) { std::map alignableMap; recursiveMap(theAlignableMuon->DTBarrel(), alignableMap); recursiveMap(theAlignableMuon->CSCEndcaps(), alignableMap); + recursiveMap(theAlignableMuon->GEMEndcaps(), alignableMap); // Set the survey error to the alignable error, expanding the matrix as needed AlignmentErrorsExtended* dtAlignmentErrorsExtended = theAlignableMuon->dtAlignmentErrorsExtended(); AlignmentErrorsExtended* cscAlignmentErrorsExtended = theAlignableMuon->cscAlignmentErrorsExtended(); + AlignmentErrorsExtended* gemAlignmentErrorsExtended = theAlignableMuon->gemAlignmentErrorsExtended(); std::vector alignmentErrors; std::copy(dtAlignmentErrorsExtended->m_alignError.begin(), dtAlignmentErrorsExtended->m_alignError.end(), @@ -146,6 +146,9 @@ void MuonAlignment::copyAlignmentToSurvey(double shiftErr, double angleErr) { std::copy(cscAlignmentErrorsExtended->m_alignError.begin(), cscAlignmentErrorsExtended->m_alignError.end(), std::back_inserter(alignmentErrors)); + std::copy(gemAlignmentErrorsExtended->m_alignError.begin(), + gemAlignmentErrorsExtended->m_alignError.end(), + std::back_inserter(alignmentErrors)); for (std::vector::const_iterator alignmentError = alignmentErrors.begin(); alignmentError != alignmentErrors.end(); @@ -342,7 +345,24 @@ void MuonAlignment::saveCSCtoDB(void) { &(*csc_AlignmentErrorsExtended), poolDbService->currentTime(), theCSCErrorRecordName); } +void MuonAlignment::saveGEMtoDB(void) { + // Call service + edm::Service poolDbService; + if (!poolDbService.isAvailable()) // Die if not available + throw cms::Exception("NotAvailable") << "PoolDBOutputService not available"; + + // Get alignments and errors + Alignments* gem_Alignments = theAlignableMuon->gemAlignments(); + AlignmentErrorsExtended* gem_AlignmentErrorsExtended = theAlignableMuon->gemAlignmentErrorsExtended(); + + // Store CSC alignments and errors + poolDbService->writeOne(&(*gem_Alignments), poolDbService->currentTime(), theGEMAlignRecordName); + poolDbService->writeOne( + &(*gem_AlignmentErrorsExtended), poolDbService->currentTime(), theGEMErrorRecordName); +} + void MuonAlignment::saveToDB(void) { saveDTtoDB(); saveCSCtoDB(); + saveGEMtoDB(); } diff --git a/Alignment/MuonAlignment/src/MuonAlignmentInputDB.cc b/Alignment/MuonAlignment/src/MuonAlignmentInputDB.cc index 263cc7e913e1b..e64b4183ad60b 100644 --- a/Alignment/MuonAlignment/src/MuonAlignmentInputDB.cc +++ b/Alignment/MuonAlignment/src/MuonAlignmentInputDB.cc @@ -20,10 +20,12 @@ #include "CondFormats/AlignmentRecord/interface/DTAlignmentErrorExtendedRcd.h" #include "CondFormats/AlignmentRecord/interface/CSCAlignmentRcd.h" #include "CondFormats/AlignmentRecord/interface/CSCAlignmentErrorExtendedRcd.h" +#include "CondFormats/AlignmentRecord/interface/GEMAlignmentRcd.h" +#include "CondFormats/AlignmentRecord/interface/GEMAlignmentErrorExtendedRcd.h" #include "Geometry/CommonTopologies/interface/GeometryAligner.h" #include "CondFormats/Alignment/interface/DetectorGlobalPosition.h" #include "Geometry/Records/interface/MuonGeometryRecord.h" - +#include "Geometry/GEMGeometry/interface/GEMGeometry.h" // // constants, enums and typedefs // @@ -36,13 +38,15 @@ // constructors and destructor // MuonAlignmentInputDB::MuonAlignmentInputDB() - : m_dtLabel(""), m_cscLabel(""), idealGeometryLabel("idealForInputDB"), m_getAPEs(false) {} + : m_dtLabel(""), m_cscLabel(""), m_gemLabel(""), idealGeometryLabel("idealForInputDB"), m_getAPEs(false) {} -MuonAlignmentInputDB::MuonAlignmentInputDB(std::string dtLabel, - std::string cscLabel, - std::string idealLabel, - bool getAPEs) - : m_dtLabel(dtLabel), m_cscLabel(cscLabel), idealGeometryLabel(idealLabel), m_getAPEs(getAPEs) {} +MuonAlignmentInputDB::MuonAlignmentInputDB( + std::string dtLabel, std::string cscLabel, std::string gemLabel, std::string idealLabel, bool getAPEs) + : m_dtLabel(dtLabel), + m_cscLabel(cscLabel), + m_gemLabel(gemLabel), + idealGeometryLabel(idealLabel), + m_getAPEs(getAPEs) {} // MuonAlignmentInputDB::MuonAlignmentInputDB(const MuonAlignmentInputDB& rhs) // { @@ -70,22 +74,28 @@ MuonAlignmentInputDB::~MuonAlignmentInputDB() {} AlignableMuon* MuonAlignmentInputDB::newAlignableMuon(const edm::EventSetup& iSetup) const { edm::ESHandle dtGeometry; edm::ESHandle cscGeometry; + edm::ESHandle gemGeometry; iSetup.get().get(idealGeometryLabel, dtGeometry); iSetup.get().get(idealGeometryLabel, cscGeometry); + iSetup.get().get(idealGeometryLabel, gemGeometry); edm::ESHandle dtAlignments; edm::ESHandle dtAlignmentErrorsExtended; edm::ESHandle cscAlignments; edm::ESHandle cscAlignmentErrorsExtended; + edm::ESHandle gemAlignments; + edm::ESHandle gemAlignmentErrorsExtended; edm::ESHandle globalPositionRcd; iSetup.get().get(m_dtLabel, dtAlignments); iSetup.get().get(m_cscLabel, cscAlignments); + iSetup.get().get(m_gemLabel, gemAlignments); iSetup.get().get(globalPositionRcd); if (m_getAPEs) { iSetup.get().get(m_dtLabel, dtAlignmentErrorsExtended); iSetup.get().get(m_cscLabel, cscAlignmentErrorsExtended); + iSetup.get().get(m_gemLabel, gemAlignmentErrorsExtended); GeometryAligner aligner; aligner.applyAlignments(&(*dtGeometry), @@ -96,8 +106,13 @@ AlignableMuon* MuonAlignmentInputDB::newAlignableMuon(const edm::EventSetup& iSe &(*cscAlignments), &(*cscAlignmentErrorsExtended), align::DetectorGlobalPosition(*globalPositionRcd, DetId(DetId::Muon))); + aligner.applyAlignments(&(*gemGeometry), + &(*gemAlignments), + &(*gemAlignmentErrorsExtended), + align::DetectorGlobalPosition(*globalPositionRcd, DetId(DetId::Muon))); + } else { - AlignmentErrorsExtended dtAlignmentErrorsExtended2, cscAlignmentErrorsExtended2; + AlignmentErrorsExtended dtAlignmentErrorsExtended2, cscAlignmentErrorsExtended2, gemAlignmentErrorsExtended2; for (std::vector::const_iterator i = dtAlignments->m_align.begin(); i != dtAlignments->m_align.end(); @@ -113,6 +128,13 @@ AlignableMuon* MuonAlignmentInputDB::newAlignableMuon(const edm::EventSetup& iSe AlignTransformErrorExtended empty_error(empty_matrix, i->rawId()); cscAlignmentErrorsExtended2.m_alignError.push_back(empty_error); } + for (std::vector::const_iterator i = gemAlignments->m_align.begin(); + i != gemAlignments->m_align.end(); + ++i) { + CLHEP::HepSymMatrix empty_matrix(3, 0); + AlignTransformErrorExtended empty_error(empty_matrix, i->rawId()); + gemAlignmentErrorsExtended2.m_alignError.push_back(empty_error); + } GeometryAligner aligner; aligner.applyAlignments(&(*dtGeometry), @@ -123,9 +145,13 @@ AlignableMuon* MuonAlignmentInputDB::newAlignableMuon(const edm::EventSetup& iSe &(*cscAlignments), &(cscAlignmentErrorsExtended2), align::DetectorGlobalPosition(*globalPositionRcd, DetId(DetId::Muon))); + aligner.applyAlignments(&(*gemGeometry), + &(*gemAlignments), + &(gemAlignmentErrorsExtended2), + align::DetectorGlobalPosition(*globalPositionRcd, DetId(DetId::Muon))); } - return new AlignableMuon(&(*dtGeometry), &(*cscGeometry)); + return new AlignableMuon(&(*dtGeometry), &(*cscGeometry), &(*gemGeometry)); } // diff --git a/Alignment/MuonAlignment/src/MuonAlignmentInputMethod.cc b/Alignment/MuonAlignment/src/MuonAlignmentInputMethod.cc index 6944835fb106c..903baa50cc933 100644 --- a/Alignment/MuonAlignment/src/MuonAlignmentInputMethod.cc +++ b/Alignment/MuonAlignment/src/MuonAlignmentInputMethod.cc @@ -62,9 +62,11 @@ MuonAlignmentInputMethod::~MuonAlignmentInputMethod() {} AlignableMuon* MuonAlignmentInputMethod::newAlignableMuon(const edm::EventSetup& iSetup) const { edm::ESHandle dtGeometry; edm::ESHandle cscGeometry; + edm::ESHandle gemGeometry; iSetup.get().get(idealGeometryLabel, dtGeometry); iSetup.get().get(idealGeometryLabel, cscGeometry); - return new AlignableMuon(&(*dtGeometry), &(*cscGeometry)); + iSetup.get().get(idealGeometryLabel, gemGeometry); + return new AlignableMuon(&(*dtGeometry), &(*cscGeometry), &(*gemGeometry)); } // diff --git a/Alignment/MuonAlignment/src/MuonAlignmentInputSurveyDB.cc b/Alignment/MuonAlignment/src/MuonAlignmentInputSurveyDB.cc index 186b0e049e868..eb0dacf2e2916 100644 --- a/Alignment/MuonAlignment/src/MuonAlignmentInputSurveyDB.cc +++ b/Alignment/MuonAlignment/src/MuonAlignmentInputSurveyDB.cc @@ -68,8 +68,10 @@ MuonAlignmentInputSurveyDB::~MuonAlignmentInputSurveyDB() {} AlignableMuon* MuonAlignmentInputSurveyDB::newAlignableMuon(const edm::EventSetup& iSetup) const { edm::ESHandle dtGeometry; edm::ESHandle cscGeometry; + edm::ESHandle gemGeometry; iSetup.get().get(idealGeometryLabel, dtGeometry); iSetup.get().get(idealGeometryLabel, cscGeometry); + iSetup.get().get(idealGeometryLabel, gemGeometry); edm::ESHandle dtSurvey; edm::ESHandle dtSurveyError; @@ -80,7 +82,7 @@ AlignableMuon* MuonAlignmentInputSurveyDB::newAlignableMuon(const edm::EventSetu iSetup.get().get(m_cscLabel, cscSurvey); iSetup.get().get(m_cscLabel, cscSurveyError); - AlignableMuon* output = new AlignableMuon(&(*dtGeometry), &(*cscGeometry)); + AlignableMuon* output = new AlignableMuon(&(*dtGeometry), &(*cscGeometry), &(*gemGeometry)); unsigned int theSurveyIndex = 0; const Alignments* theSurveyValues = &*dtSurvey; diff --git a/Alignment/MuonAlignment/src/MuonAlignmentInputXML.cc b/Alignment/MuonAlignment/src/MuonAlignmentInputXML.cc index f92ee9797b5f8..855317c929157 100644 --- a/Alignment/MuonAlignment/src/MuonAlignmentInputXML.cc +++ b/Alignment/MuonAlignment/src/MuonAlignmentInputXML.cc @@ -256,15 +256,17 @@ void MuonAlignmentInputXML::fillAliToIdeal(std::map &a AlignableMuon *MuonAlignmentInputXML::newAlignableMuon(const edm::EventSetup &iSetup) const { edm::ESHandle dtGeometry; edm::ESHandle cscGeometry; + edm::ESHandle gemGeometry; iSetup.get().get(idealGeometryLabel, dtGeometry); iSetup.get().get(idealGeometryLabel, cscGeometry); + iSetup.get().get(idealGeometryLabel, gemGeometry); - AlignableMuon *alignableMuon = new AlignableMuon(&(*dtGeometry), &(*cscGeometry)); + AlignableMuon *alignableMuon = new AlignableMuon(&(*dtGeometry), &(*cscGeometry), &(*gemGeometry)); std::map alignableNavigator; // real AlignableNavigators don't have const methods recursiveGetId(alignableNavigator, alignableMuon->DTBarrel()); recursiveGetId(alignableNavigator, alignableMuon->CSCEndcaps()); - AlignableMuon *ideal_alignableMuon = new AlignableMuon(&(*dtGeometry), &(*cscGeometry)); + AlignableMuon *ideal_alignableMuon = new AlignableMuon(&(*dtGeometry), &(*cscGeometry), &(*gemGeometry)); std::map ideal_alignableNavigator; // real AlignableNavigators don't have const methods recursiveGetId(ideal_alignableNavigator, ideal_alignableMuon->DTBarrel()); recursiveGetId(ideal_alignableNavigator, ideal_alignableMuon->CSCEndcaps()); diff --git a/Alignment/MuonAlignment/src/MuonAlignmentOutputXML.cc b/Alignment/MuonAlignment/src/MuonAlignmentOutputXML.cc index f630ea5fe678a..df148df1efc7e 100644 --- a/Alignment/MuonAlignment/src/MuonAlignmentOutputXML.cc +++ b/Alignment/MuonAlignment/src/MuonAlignmentOutputXML.cc @@ -121,10 +121,12 @@ void MuonAlignmentOutputXML::write(AlignableMuon *alignableMuon, const edm::Even if (m_relativeto == 1) { edm::ESHandle dtGeometry; edm::ESHandle cscGeometry; + edm::ESHandle gemGeometry; iSetup.get().get(idealGeometryLabel, dtGeometry); iSetup.get().get(idealGeometryLabel, cscGeometry); + iSetup.get().get(idealGeometryLabel, gemGeometry); - AlignableMuon ideal_alignableMuon(&(*dtGeometry), &(*cscGeometry)); + AlignableMuon ideal_alignableMuon(&(*dtGeometry), &(*cscGeometry), &(*gemGeometry)); align::Alignables ideal_barrels = ideal_alignableMuon.DTBarrel(); align::Alignables ideal_endcaps = ideal_alignableMuon.CSCEndcaps(); diff --git a/Alignment/MuonAlignment/src/MuonScenarioBuilder.cc b/Alignment/MuonAlignment/src/MuonScenarioBuilder.cc index 9e11bdf393a8a..5715d4f4104cd 100644 --- a/Alignment/MuonAlignment/src/MuonScenarioBuilder.cc +++ b/Alignment/MuonAlignment/src/MuonScenarioBuilder.cc @@ -21,10 +21,12 @@ #include "Alignment/CommonAlignment/interface/Alignable.h" #include "DataFormats/MuonDetId/interface/CSCTriggerNumbering.h" +#include "DataFormats/MuonDetId/interface/GEMDetId.h" + //__________________________________________________________________________________________________ MuonScenarioBuilder::MuonScenarioBuilder(Alignable* alignable) : // muon alignable IDs are (currently) independent of the geometry - MisalignmentScenarioBuilder(AlignableObjectId::Geometry::General) { + MisalignmentScenarioBuilder(AlignableObjectId::Geometry::PhaseI) { theAlignableMuon = dynamic_cast(alignable); if (!theAlignableMuon) @@ -46,12 +48,15 @@ void MuonScenarioBuilder::applyScenario(const edm::ParameterSet& scenario) { // DT Barrel const auto& dtBarrel = theAlignableMuon->DTBarrel(); this->decodeMovements_(theScenario, dtBarrel, "DTBarrel"); - // CSC Endcap + // Endcap const auto& cscEndcaps = theAlignableMuon->CSCEndcaps(); this->decodeMovements_(theScenario, cscEndcaps, "CSCEndcap"); + const auto& gemEndcaps = theAlignableMuon->GEMEndcaps(); + this->decodeMovements_(theScenario, gemEndcaps, "GEMEndcap"); this->moveDTSectors(theScenario); this->moveCSCSectors(theScenario); + this->moveGEMSectors(theScenario); this->moveMuon(theScenario); edm::LogInfo("TrackerScenarioBuilder") << "Applied modifications to " << theModifierCounter << " alignables"; @@ -318,9 +323,60 @@ void MuonScenarioBuilder::moveCSCSectors(const edm::ParameterSet& pSet) { } //______________________________________________________________________________________________________ +void MuonScenarioBuilder::moveGEMSectors(const edm::ParameterSet& pSet) { + const auto& GEMSuperChambers = theAlignableMuon->GEMSuperChambers(); + //Take Parameters + align::Scalars param = this->extractParameters(pSet, "GEMSectors"); + double scale_ = param[0]; + double scaleError_ = param[1]; + double phiX_ = param[2]; + double phiY_ = param[3]; + double phiZ_ = param[4]; + double dX_ = param[5]; + double dY_ = param[6]; + double dZ_ = param[7]; + + double dx = scale_ * dX_; + double dy = scale_ * dY_; + double dz = scale_ * dZ_; + double phix = scale_ * phiX_; + double phiy = scale_ * phiY_; + double phiz = scale_ * phiZ_; + double errorx = scaleError_ * dX_; + double errory = scaleError_ * dY_; + double errorz = scaleError_ * dZ_; + double errorphix = scaleError_ * phiX_; + double errorphiy = scaleError_ * phiY_; + double errorphiz = scaleError_ * phiZ_; + align::Scalars errorDisp; + errorDisp.push_back(errorx); + errorDisp.push_back(errory); + errorDisp.push_back(errorz); + align::Scalars errorRotation; + errorRotation.push_back(errorphix); + errorRotation.push_back(errorphiy); + errorRotation.push_back(errorphiz); + + //Create an index for the chambers in the alignable vector + for (const auto& iter : GEMSuperChambers) { + align::Scalars disp; + align::Scalars rotation; + const std::vector disp_ = theMuonModifier.gaussianRandomVector(dx, dy, dz); + disp.push_back(disp_[0]); + disp.push_back(disp_[1]); + disp.push_back(disp_[2]); + const std::vector rotation_ = theMuonModifier.flatRandomVector(phix, phiy, phiz); + rotation.push_back(rotation_[0]); + rotation.push_back(rotation_[1]); + rotation.push_back(rotation_[2]); + this->moveChamberInSector(iter, disp, rotation, errorDisp, errorRotation); + } +} + void MuonScenarioBuilder::moveMuon(const edm::ParameterSet& pSet) { const auto& DTbarrel = theAlignableMuon->DTBarrel(); const auto& CSCendcaps = theAlignableMuon->CSCEndcaps(); + const auto& GEMendcaps = theAlignableMuon->GEMEndcaps(); //Take Parameters align::Scalars param = this->extractParameters(pSet, "Muon"); double scale_ = param[0]; @@ -385,6 +441,12 @@ void MuonScenarioBuilder::moveMuon(const edm::ParameterSet& pSet) { theMuonModifier.addAlignmentPositionError(iter, errorx, errory, errorz); theMuonModifier.addAlignmentPositionErrorFromRotation(iter, errorphix, errorphiy, errorphiz); } + for (const auto& iter : GEMendcaps) { + theMuonModifier.moveAlignable(iter, false, true, disp[0], disp[1], disp[2]); + theMuonModifier.rotateAlignable(iter, false, true, rotation[0], rotation[1], rotation[2]); + theMuonModifier.addAlignmentPositionError(iter, errorx, errory, errorz); + theMuonModifier.addAlignmentPositionErrorFromRotation(iter, errorphix, errorphiy, errorphiz); + } } //______________________________________________________________________________________________________ diff --git a/Alignment/MuonAlignment/test/TestMuonHierarchy.cpp b/Alignment/MuonAlignment/test/TestMuonHierarchy.cpp index 1f2a25e87e641..6e2360a419706 100644 --- a/Alignment/MuonAlignment/test/TestMuonHierarchy.cpp +++ b/Alignment/MuonAlignment/test/TestMuonHierarchy.cpp @@ -46,16 +46,19 @@ class TestMuonHierarchy : public edm::EDAnalyzer { std::unique_ptr alignableMuon_; std::string leaders_, blank_, filled_; + + edm::ESGetToken esTokenDT_; + edm::ESGetToken esTokenCSC_; + edm::ESGetToken esTokenGEM_; }; void TestMuonHierarchy::analyze(const edm::Event&, const edm::EventSetup& setup) { edm::LogInfo("MuonHierarchy") << "Starting!"; - edm::ESHandle dtGeometry; - edm::ESHandle cscGeometry; - setup.get().get(dtGeometry); - setup.get().get(cscGeometry); + edm::ESHandle dtGeometry = setup.getHandle(esTokenDT_); + edm::ESHandle cscGeometry = setup.getHandle(esTokenCSC_); + edm::ESHandle gemGeometry = setup.getHandle(esTokenGEM_); - alignableMuon_ = std::make_unique(&(*dtGeometry), &(*cscGeometry)); + alignableMuon_ = std::make_unique(&(*dtGeometry), &(*cscGeometry), &(*gemGeometry)); leaders_ = ""; blank_ = " "; // These two... diff --git a/Alignment/MuonAlignment/test/TestReader.cpp b/Alignment/MuonAlignment/test/TestReader.cpp index 09f7fa10d6683..ba4b9a43633c2 100644 --- a/Alignment/MuonAlignment/test/TestReader.cpp +++ b/Alignment/MuonAlignment/test/TestReader.cpp @@ -59,7 +59,10 @@ class TestMuonReader : public edm::EDAnalyzer { TFile* theFile; float x, y, z, phi, theta, length, thick, width; TRotMatrix* rot; - std::string idealGeometryLabel; + + edm::ESGetToken esTokenDT_; + edm::ESGetToken esTokenCSC_; + edm::ESGetToken esTokenGEM_; }; // @@ -77,7 +80,9 @@ TestMuonReader::TestMuonReader(const edm::ParameterSet& iConfig) thick(0.), width(0.), rot(0), - idealGeometryLabel("idealForTestReader") {} + esTokenDT_(esConsumes(edm::ESInputTag("", "idealForTestReader"))), + esTokenCSC_(esConsumes(edm::ESInputTag("", "idealForTestReader"))), + esTokenGEM_(esConsumes(edm::ESInputTag("", "idealForTestReader"))) {} TestMuonReader::~TestMuonReader() {} @@ -105,12 +110,11 @@ align::EulerAngles TestMuonReader::toPhiXYZ(const align::RotationType& rot) { void TestMuonReader::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { // first, get chamber alignables from ideal geometry: - edm::ESHandle dtGeometry; - edm::ESHandle cscGeometry; - iSetup.get().get(idealGeometryLabel, dtGeometry); - iSetup.get().get(idealGeometryLabel, cscGeometry); + edm::ESHandle dtGeometry = iSetup.getHandle(esTokenDT_); + edm::ESHandle cscGeometry = iSetup.getHandle(esTokenCSC_); + edm::ESHandle gemGeometry = iSetup.getHandle(esTokenGEM_); - AlignableMuon ideal_alignableMuon(&(*dtGeometry), &(*cscGeometry)); + AlignableMuon ideal_alignableMuon(&(*dtGeometry), &(*cscGeometry), &(*gemGeometry)); const auto& ideal_barrels = ideal_alignableMuon.DTBarrel(); const auto& ideal_endcaps = ideal_alignableMuon.CSCEndcaps(); diff --git a/Alignment/MuonAlignment/test/TestRotation.cpp b/Alignment/MuonAlignment/test/TestRotation.cpp index 60dd4ca792dfa..51a9294b20513 100644 --- a/Alignment/MuonAlignment/test/TestRotation.cpp +++ b/Alignment/MuonAlignment/test/TestRotation.cpp @@ -52,8 +52,9 @@ class TestRotation : public edm::EDAnalyzer { float x, y, z, phi, theta, length, thick, width; TRotMatrix* dir; - // typedef Surface::RotationType RotationType; - // typedef Surface::PositionType PositionType; + edm::ESGetToken esTokenDT_; + edm::ESGetToken esTokenCSC_; + edm::ESGetToken esTokenGEM_; }; // @@ -105,12 +106,11 @@ void TestRotation::analyze(const edm::Event& iEvent, const edm::EventSetup& iSet // // Retrieve ideal geometry from event setup // - edm::ESHandle dtGeometry; - edm::ESHandle cscGeometry; - iSetup.get().get(dtGeometry); - iSetup.get().get(cscGeometry); + edm::ESHandle dtGeometry = iSetup.getHandle(esTokenDT_); + edm::ESHandle cscGeometry = iSetup.getHandle(esTokenCSC_); + edm::ESHandle gemGeometry = iSetup.getHandle(esTokenGEM_); - AlignableMuon* theAlignableMuon = new AlignableMuon(&(*dtGeometry), &(*cscGeometry)); + AlignableMuon* theAlignableMuon = new AlignableMuon(&(*dtGeometry), &(*cscGeometry), &(*gemGeometry)); // Apply alignment diff --git a/Alignment/MuonAlignment/test/TestTranslation.cpp b/Alignment/MuonAlignment/test/TestTranslation.cpp index 893989583c075..758d445308924 100644 --- a/Alignment/MuonAlignment/test/TestTranslation.cpp +++ b/Alignment/MuonAlignment/test/TestTranslation.cpp @@ -109,10 +109,12 @@ void TestTranslation::analyze(const edm::Event& iEvent, const edm::EventSetup& i // edm::ESHandle dtGeometry; edm::ESHandle cscGeometry; + edm::ESHandle gemGeometry; iSetup.get().get(dtGeometry); iSetup.get().get(cscGeometry); + iSetup.get().get(gemGeometry); - AlignableMuon* theAlignableMuon = new AlignableMuon(&(*dtGeometry), &(*cscGeometry)); + AlignableMuon* theAlignableMuon = new AlignableMuon(&(*dtGeometry), &(*cscGeometry), &(*gemGeometry)); // Apply alignment for (const auto& iter : theAlignableMuon->DTChambers()) diff --git a/Alignment/MuonAlignment/test/convertSQLitetoXML_cfg.py b/Alignment/MuonAlignment/test/convertSQLitetoXML_cfg.py new file mode 100644 index 0000000000000..3a3ac8ee39380 --- /dev/null +++ b/Alignment/MuonAlignment/test/convertSQLitetoXML_cfg.py @@ -0,0 +1,127 @@ +import FWCore.ParameterSet.Config as cms + +process = cms.Process("CONVERT") +process.source = cms.Source("EmptySource") +process.maxEvents = cms.untracked.PSet(input = cms.untracked.int32(1)) + +process.load("Configuration.Geometry.GeometryIdeal_cff") +process.load("Geometry.MuonNumbering.muonNumberingInitialization_cfi") +process.load('Configuration.Geometry.GeometryExtended2021_cff') + +process.DTGeometryAlInputDB = cms.ESProducer("DTGeometryESModule", + appendToDataLabel = cms.string('idealForInputDB'), + applyAlignment = cms.bool(False), + alignmentsLabel = cms.string(''), + fromDDD = cms.bool(True) +) + +process.CSCGeometryAlInputDB = cms.ESProducer("CSCGeometryESModule", + appendToDataLabel = cms.string('idealForInputDB'), + debugV = cms.untracked.bool(False), + useGangedStripsInME1a = cms.bool(False), + alignmentsLabel = cms.string(''), + useOnlyWiresInME1a = cms.bool(False), + useRealWireGeometry = cms.bool(True), + useCentreTIOffsets = cms.bool(False), + applyAlignment = cms.bool(False), + fromDDD = cms.bool(True), + fromDD4hep = cms.bool(False) +) + +process.GEMGeometryAlInputDB = cms.ESProducer("GEMGeometryESModule", + appendToDataLabel = cms.string('idealForInputDB'), + fromDDD = cms.bool(True), + fromDD4Hep = cms.bool(False), + alignmentsLabel = cms.string(''), + applyAlignment = cms.bool(False) +) + +process.DTGeometryAlOutputXML = cms.ESProducer("DTGeometryESModule", + appendToDataLabel = cms.string('idealForOutputXML'), + applyAlignment = cms.bool(False), + alignmentsLabel = cms.string(''), + fromDDD = cms.bool(True) +) + +process.CSCGeometryAlOutputXML = cms.ESProducer("CSCGeometryESModule", + appendToDataLabel = cms.string('idealForOutputXML'), + debugV = cms.untracked.bool(False), + useGangedStripsInME1a = cms.bool(False), + alignmentsLabel = cms.string(''), + useOnlyWiresInME1a = cms.bool(False), + useRealWireGeometry = cms.bool(True), + useCentreTIOffsets = cms.bool(False), + applyAlignment = cms.bool(False), + fromDDD = cms.bool(True), + fromDD4hep = cms.bool(False) +) + +process.GEMGeometryAlOutputXML = cms.ESProducer("GEMGeometryESModule", + appendToDataLabel = cms.string('idealForOutputXML'), + fromDDD = cms.bool(True), + fromDD4Hep = cms.bool(False), + alignmentsLabel = cms.string(''), + applyAlignment = cms.bool(False) +) + +process.load("CondCore.DBCommon.CondDBSetup_cfi") +process.PoolDBESSource = cms.ESSource("PoolDBESSource", + process.CondDBSetup, + connect = cms.string("sqlite_file:Alignments.db"), + toGet = cms.VPSet(cms.PSet( + record = cms.string('DTAlignmentRcd'), + tag = cms.string('DT100InversepbScenario') + ), + cms.PSet( + record = cms.string('DTAlignmentErrorExtendedRcd'), + tag = cms.string('DT100InversepbScenarioErrors') + ), + cms.PSet( + record = cms.string('CSCAlignmentRcd'), + tag = cms.string('CSC100InversepbScenario') + ), + cms.PSet( + record = cms.string('CSCAlignmentErrorExtendedRcd'), + tag = cms.string('CSC100InversepbScenarioErrors') + ), + cms.PSet( + record = cms.string('GEMAlignmentRcd'), + tag = cms.string('GEM') + ), + cms.PSet( + record = cms.string('GEMAlignmentErrorExtendedRcd'), + tag = cms.string('test') + ))) +process.inertGlobalPositionRcd = cms.ESSource("PoolDBESSource", + process.CondDBSetup, + connect = cms.string("sqlite_file:inertGlobalPositionRcd.StdTags.746p3.DBv2.db"), + toGet = cms.VPSet(cms.PSet(record = cms.string("GlobalPositionRcd"), tag = cms.string("inertGlobalPositionRcd")))) +process.MuonGeometryDBConverter = cms.EDAnalyzer("MuonGeometryDBConverter", + input = cms.string("db"), + dtLabel = cms.string(""), + cscLabel = cms.string(""), + gemLabel = cms.string(""), + shiftErr = cms.double(1000.), + angleErr = cms.double(6.28), + getAPEs = cms.bool(True), + output = cms.string("xml"), + outputXML = cms.PSet( + fileName = cms.string("REPLACEME.xml"), + relativeto = cms.string("ideal"), + survey = cms.bool(False), + rawIds = cms.bool(False), + eulerAngles = cms.bool(False), + precision = cms.int32(10), + suppressDTBarrel = cms.untracked.bool(True), + suppressDTWheels = cms.untracked.bool(True), + suppressDTStations = cms.untracked.bool(True), + suppressDTChambers = cms.untracked.bool(False), + suppressDTSuperLayers = cms.untracked.bool(False), + suppressDTLayers = cms.untracked.bool(False), + suppressCSCEndcaps = cms.untracked.bool(True), + suppressCSCStations = cms.untracked.bool(True), + suppressCSCRings = cms.untracked.bool(True), + suppressCSCChambers = cms.untracked.bool(False), + suppressCSCLayers = cms.untracked.bool(False))) + +process.Path = cms.Path(process.MuonGeometryDBConverter) diff --git a/Alignment/MuonAlignment/test/muonGeometryDBConverter_cfg.py b/Alignment/MuonAlignment/test/muonGeometryDBConverter_cfg.py index 84f0fcedbba19..c3aa0073be6eb 100644 --- a/Alignment/MuonAlignment/test/muonGeometryDBConverter_cfg.py +++ b/Alignment/MuonAlignment/test/muonGeometryDBConverter_cfg.py @@ -28,7 +28,8 @@ # setting up the process process = cms.Process("CONVERT") process.load("Configuration.StandardSequences.MagneticField_cff") -process.load("Configuration.Geometry.GeometryIdeal_cff") +process.load("Geometry.MuonCommonData.muonIdealGeometryXML_cfi") +process.load('Configuration.Geometry.GeometryExtended2021_cff') process.load("Geometry.MuonNumbering.muonNumberingInitialization_cfi") process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") process.load("Alignment.MuonAlignment.muonGeometryDBConverter_cfi") @@ -53,6 +54,14 @@ fromDD4hep = cms.bool(False) ) +process.GEMGeometryAlInputMethod = cms.ESProducer("GEMGeometryESModule", + appendToDataLabel = cms.string('idealForInputMethod'), + fromDDD = cms.bool(True), + fromDD4Hep = cms.bool(False), + alignmentsLabel = cms.string(''), + applyAlignment = cms.bool(False) +) + process.DTGeometryAlInputDB = cms.ESProducer("DTGeometryESModule", appendToDataLabel = cms.string('idealForInputDB'), applyAlignment = cms.bool(False), @@ -73,6 +82,14 @@ fromDD4hep = cms.bool(False) ) +process.GEMGeometryAlInputDB = cms.ESProducer("GEMGeometryESModule", + appendToDataLabel = cms.string('idealForInputDB'), + fromDDD = cms.bool(True), + fromDD4Hep = cms.bool(False), + alignmentsLabel = cms.string(''), + applyAlignment = cms.bool(False) +) + process.DTGeometryAlOutputXML = cms.ESProducer("DTGeometryESModule", appendToDataLabel = cms.string('idealForOutputXML'), applyAlignment = cms.bool(False), @@ -93,6 +110,14 @@ fromDD4hep = cms.bool(False) ) +process.GEMGeometryAlOutputXML = cms.ESProducer("GEMGeometryESModule", + appendToDataLabel = cms.string('idealForOutputXML'), + fromDDD = cms.bool(True), + fromDD4Hep = cms.bool(False), + alignmentsLabel = cms.string(''), + applyAlignment = cms.bool(False) +) + process.DTGeometryAlInputXML = cms.ESProducer("DTGeometryESModule", appendToDataLabel = cms.string('idealForInputXML'), applyAlignment = cms.bool(False), @@ -113,8 +138,13 @@ fromDD4hep = cms.bool(False) ) - - +process.GEMGeometryAlInputXML = cms.ESProducer("GEMGeometryESModule", + appendToDataLabel = cms.string('idealForInputXML'), + fromDDD = cms.bool(True), + fromDD4Hep = cms.bool(False), + alignmentsLabel = cms.string(''), + applyAlignment = cms.bool(False) +) ################################################################################ # parameters to configure: from Configuration.AlCa.GlobalTag import GlobalTag @@ -135,7 +165,13 @@ tag = cms.string("CSCAlignmentRcd")), cms.PSet(connect = cms.string("sqlite_file:"+options.inputFile), record = cms.string("CSCAlignmentErrorExtendedRcd"), - tag = cms.string("CSCAlignmentErrorExtendedRcd")) + tag = cms.string("CSCAlignmentErrorExtendedRcd")), + cms.PSet(connect = cms.string("sqlite_file:"+options.inputFile), + record = cms.string("GEMAlignmentRcd"), + tag = cms.string("GEMAlignmentRcd")), + cms.PSet(connect = cms.string("sqlite_file:"+options.inputFile), + record = cms.string("GEMAlignmentErrorExtendedRcd"), + tag = cms.string("GEMAlignmentErrorExtendedRcd")) ]) elif options.input == "xml": process.muonGeometryDBConverter.fileName = options.inputFile @@ -154,6 +190,10 @@ tag = cms.string("CSCAlignmentRcd")), cms.PSet(record = cms.string("CSCAlignmentErrorExtendedRcd"), tag = cms.string("CSCAlignmentErrorExtendedRcd")), + cms.PSet(record = cms.string("GEMAlignmentRcd"), + tag = cms.string("GEMAlignmentRcd")), + cms.PSet(record = cms.string("GEMAlignmentErrorExtendedRcd"), + tag = cms.string("GEMAlignmentErrorExtendedRcd")) ) ) process.PoolDBOutputService.connect = "sqlite_file:"+options.outputFile diff --git a/Alignment/MuonAlignment/test/test-misalign_cfg.py b/Alignment/MuonAlignment/test/test-misalign_cfg.py index 48bd4608056fd..89ca87c3b2824 100644 --- a/Alignment/MuonAlignment/test/test-misalign_cfg.py +++ b/Alignment/MuonAlignment/test/test-misalign_cfg.py @@ -4,10 +4,9 @@ # -- Load default module/services configurations -- // # Message logger service process.load("FWCore.MessageService.MessageLogger_cfi") - -# Ideal DT & CSC geometry process.load("Geometry.MuonCommonData.muonIdealGeometryXML_cfi") process.load("Geometry.MuonNumbering.muonNumberingInitialization_cfi") +process.load('Configuration.Geometry.GeometryExtended2021_cff') # Misalignment example scenario producer import Alignment.MuonAlignment.Scenarios_cff as _MuonScenarios @@ -20,11 +19,6 @@ saveToDbase = cms.untracked.bool(True) ) -# or standard stuff -# Reco geometry producer -#process.load("Geometry.DTGeometry.dtGeometry_cfi") -#process.load("Geometry.CSCGeometry.cscGeometry_cfi") - process.MisalignedMuon.scenario = _MuonScenarios.Muon100InversepbScenario process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(1) @@ -52,6 +46,14 @@ fromDD4hep = cms.bool(False) ) +process.GEMGeometryMisalignedMuonProducer = cms.ESProducer("GEMGeometryESModule", + appendToDataLabel = cms.string('idealForMuonMisalignedProducer'), + fromDDD = cms.bool(True), + fromDD4Hep = cms.bool(False), + alignmentsLabel = cms.string(''), + applyAlignment = cms.bool(False) +) + # Database output service if you want to store soemthing in MisalignedMuon from CondCore.DBCommon.CondDBSetup_cfi import CondDBSetup @@ -72,7 +74,16 @@ cms.PSet( record = cms.string('CSCAlignmentErrorExtendedRcd'), tag = cms.string('CSC100InversepbScenarioErrors') + ), + cms.PSet( + record = cms.string('GEMAlignmentRcd'), + tag = cms.string('GEM') + ), + cms.PSet( + record = cms.string('GEMAlignmentErrorExtendedRcd'), + tag = cms.string('test') )), + connect = cms.string('sqlite_file:Alignments.db') ) @@ -80,7 +91,8 @@ fileName = cms.untracked.string('misaligment.root') ) -process.p1 = cms.Path(process.MisalignedMuon+process.prod) +#process.p1 = cms.Path(process.MisalignedMuon+process.prod) +process.p1 = cms.Path(process.MisalignedMuon) process.MessageLogger.cout = cms.untracked.PSet( threshold = cms.untracked.string('INFO'), default = cms.untracked.PSet( diff --git a/Alignment/OfflineValidation/plugins/BuildFile.xml b/Alignment/OfflineValidation/plugins/BuildFile.xml index 8104a365cdaa3..b2795ab05d81e 100644 --- a/Alignment/OfflineValidation/plugins/BuildFile.xml +++ b/Alignment/OfflineValidation/plugins/BuildFile.xml @@ -1,54 +1,55 @@ - - + + + + + - + - + + + + + + + + + + + + - + - - - - - - - - - - - - + + + - - - - + + + + + + + + + - - - - - - - - + - - + - diff --git a/Alignment/OfflineValidation/plugins/DMRChecker.cc b/Alignment/OfflineValidation/plugins/DMRChecker.cc index fd80a19318061..7c111123b0e19 100644 --- a/Alignment/OfflineValidation/plugins/DMRChecker.cc +++ b/Alignment/OfflineValidation/plugins/DMRChecker.cc @@ -53,7 +53,7 @@ #include "CommonTools/TrackerMap/interface/TrackerMap.h" #include "CommonTools/UtilAlgos/interface/TFileService.h" #include "CommonTools/Utils/interface/TFileDirectory.h" -#include "CondCore/SiPixelPlugins/interface/Phase1PixelMaps.h" +#include "DQM/TrackerRemapper/interface/Phase1PixelMaps.h" #include "CondCore/SiPixelPlugins/interface/PixelRegionContainers.h" #include "CondCore/SiPixelPlugins/interface/SiPixelPayloadInspectorHelper.h" #include "CondFormats/DataRecord/interface/RunSummaryRcd.h" @@ -98,7 +98,6 @@ #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/MakerMacros.h" #include "FWCore/Framework/interface/one/EDAnalyzer.h" -#include "FWCore/Framework/src/WorkerMaker.h" #include "FWCore/MessageLogger/interface/ErrorObj.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" @@ -1676,19 +1675,19 @@ class DMRChecker : public edm::one::EDAnalyzer { pixelmap->beautifyAllHistograms(); TCanvas cBX("CanvXBarrel", "CanvXBarrel", 1200, 1000); - pixelmap->DrawBarrelMaps("DMRsX", cBX); + pixelmap->drawBarrelMaps("DMRsX", cBX); cBX.SaveAs("pixelBarrelDMR_x.png"); TCanvas cFX("CanvXForward", "CanvXForward", 1600, 1000); - pixelmap->DrawForwardMaps("DMRsX", cFX); + pixelmap->drawForwardMaps("DMRsX", cFX); cFX.SaveAs("pixelForwardDMR_x.png"); TCanvas cBY("CanvYBarrel", "CanvYBarrel", 1200, 1000); - pixelmap->DrawBarrelMaps("DMRsY", cBY); + pixelmap->drawBarrelMaps("DMRsY", cBY); cBY.SaveAs("pixelBarrelDMR_y.png"); TCanvas cFY("CanvXForward", "CanvXForward", 1600, 1000); - pixelmap->DrawForwardMaps("DMRsY", cFY); + pixelmap->drawForwardMaps("DMRsY", cFY); cFY.SaveAs("pixelForwardDMR_y.png"); } diff --git a/Alignment/OfflineValidation/plugins/GeneralPurposeTrackAnalyzer.cc b/Alignment/OfflineValidation/plugins/GeneralPurposeTrackAnalyzer.cc index 22c1712800aa9..cf5495771c5f2 100644 --- a/Alignment/OfflineValidation/plugins/GeneralPurposeTrackAnalyzer.cc +++ b/Alignment/OfflineValidation/plugins/GeneralPurposeTrackAnalyzer.cc @@ -38,7 +38,7 @@ #include "CondFormats/AlignmentRecord/interface/GlobalPositionRcd.h" #include "CondFormats/DataRecord/interface/SiStripCondDataRecords.h" #include "CondFormats/SiStripObjects/interface/SiStripLatency.h" -#include "CondCore/SiPixelPlugins/interface/Phase1PixelMaps.h" +#include "DQM/TrackerRemapper/interface/Phase1PixelMaps.h" #include "DataFormats/BeamSpot/interface/BeamSpot.h" #include "DataFormats/Common/interface/TriggerResults.h" #include "DataFormats/DetId/interface/DetId.h" @@ -1135,11 +1135,11 @@ class GeneralPurposeTrackAnalyzer : public edm::one::EDAnalyzerbeautifyAllHistograms(); TCanvas cB("CanvBarrel", "CanvBarrel", 1200, 1000); - pixelmap->DrawBarrelMaps("entriesBarrel", cB); + pixelmap->drawBarrelMaps("entriesBarrel", cB); cB.SaveAs("pixelBarrelEntries.png"); TCanvas cF("CanvForward", "CanvForward", 1600, 1000); - pixelmap->DrawForwardMaps("entriesForward", cF); + pixelmap->drawForwardMaps("entriesForward", cF); cF.SaveAs("pixelForwardEntries.png"); } diff --git a/Alignment/OfflineValidation/test/testPVValidation.ini b/Alignment/OfflineValidation/test/testPVValidation.ini index 77ec285ff8315..86c1e2f617eda 100644 --- a/Alignment/OfflineValidation/test/testPVValidation.ini +++ b/Alignment/OfflineValidation/test/testPVValidation.ini @@ -24,7 +24,7 @@ ttrhtype: WithAngleAndTemplate [Conditions:PromptGT] jobname: testingPromptGT -gt: auto:run3_data_promptlike +gt: auto:run3_data_prompt allFromGT: True applyextracond: False alignmentdb: frontier://FrontierProd/CMS_CONDITIONS diff --git a/Alignment/SurveyAnalysis/plugins/SurveyInputCSCfromPins.cc b/Alignment/SurveyAnalysis/plugins/SurveyInputCSCfromPins.cc index 376226d86e32e..6aebc19aa4871 100644 --- a/Alignment/SurveyAnalysis/plugins/SurveyInputCSCfromPins.cc +++ b/Alignment/SurveyAnalysis/plugins/SurveyInputCSCfromPins.cc @@ -162,10 +162,12 @@ void SurveyInputCSCfromPins::analyze(const edm::Event &, const edm::EventSetup & edm::ESHandle dtGeometry; edm::ESHandle cscGeometry; + edm::ESHandle gemGeometry; iSetup.get().get(dtGeometry); iSetup.get().get(cscGeometry); + iSetup.get().get(gemGeometry); - AlignableMuon *theAlignableMuon = new AlignableMuon(&(*dtGeometry), &(*cscGeometry)); + AlignableMuon *theAlignableMuon = new AlignableMuon(&(*dtGeometry), &(*cscGeometry), &(*gemGeometry)); AlignableNavigator *theAlignableNavigator = new AlignableNavigator(theAlignableMuon); const auto &theEndcaps = theAlignableMuon->CSCEndcaps(); diff --git a/Alignment/TrackerAlignment/src/AlignableTracker.cc b/Alignment/TrackerAlignment/src/AlignableTracker.cc index 4483f98f4e312..6dede7a0398ed 100644 --- a/Alignment/TrackerAlignment/src/AlignableTracker.cc +++ b/Alignment/TrackerAlignment/src/AlignableTracker.cc @@ -16,7 +16,7 @@ AlignableTracker ::AlignableTracker(const TrackerGeometry* trackerGeometry, cons AlignableComposite(0, align::Tracker, RotationType()), tTopo_(trackerTopology), trackerNameSpace_(trackerTopology), - alignableObjectId_(trackerGeometry, nullptr, nullptr) { + alignableObjectId_(trackerGeometry, nullptr, nullptr, nullptr) { AlignableTrackerBuilder builder(trackerGeometry, trackerTopology); builder.buildAlignables(this); trackerNameSpace_ = builder.trackerNameSpace(); diff --git a/Alignment/TrackerAlignment/src/AlignableTrackerBuilder.cc b/Alignment/TrackerAlignment/src/AlignableTrackerBuilder.cc index 0ce45578acc58..de9c47766e6bd 100644 --- a/Alignment/TrackerAlignment/src/AlignableTrackerBuilder.cc +++ b/Alignment/TrackerAlignment/src/AlignableTrackerBuilder.cc @@ -25,7 +25,7 @@ AlignableTrackerBuilder ::AlignableTrackerBuilder(const TrackerGeometry* tracker const TrackerTopology* trackerTopology) : trackerGeometry_(trackerGeometry), trackerTopology_(trackerTopology), - alignableObjectId_(trackerGeometry, nullptr, nullptr), + alignableObjectId_(trackerGeometry, nullptr, nullptr, nullptr), alignableMap_(nullptr), trackerAlignmentLevelBuilder_(trackerTopology, trackerGeometry) { std::ostringstream ss; diff --git a/Alignment/TrackerAlignment/src/TrackerAlignmentLevelBuilder.cc b/Alignment/TrackerAlignment/src/TrackerAlignmentLevelBuilder.cc index fd016725dba2f..402618272ef91 100644 --- a/Alignment/TrackerAlignment/src/TrackerAlignmentLevelBuilder.cc +++ b/Alignment/TrackerAlignment/src/TrackerAlignmentLevelBuilder.cc @@ -17,7 +17,7 @@ TrackerAlignmentLevelBuilder ::TrackerAlignmentLevelBuilder(const TrackerTopology* trackerTopology, const TrackerGeometry* trackerGeometry) : trackerTopology_(trackerTopology), - alignableObjectId_(trackerGeometry, nullptr, nullptr), + alignableObjectId_(trackerGeometry, nullptr, nullptr, nullptr), trackerNameSpace_(trackerTopology) {} //_____________________________________________________________________________ diff --git a/Alignment/TrackerAlignment/test/TrackerGeometryAnalyzer.cc b/Alignment/TrackerAlignment/test/TrackerGeometryAnalyzer.cc index 9a34a7985af39..5dc9d448e6478 100644 --- a/Alignment/TrackerAlignment/test/TrackerGeometryAnalyzer.cc +++ b/Alignment/TrackerAlignment/test/TrackerGeometryAnalyzer.cc @@ -78,7 +78,7 @@ void TrackerGeometryAnalyzer ::setTrackerGeometry(const edm::EventSetup& setup) TrackerGeomBuilderFromGeometricDet trackerGeometryBuilder; trackerGeometry = trackerGeometryBuilder.build(&(*geometricDet), *trackerParams, trackerTopology); - alignableObjectId_ = AlignableObjectId{trackerGeometry, nullptr, nullptr}; + alignableObjectId_ = AlignableObjectId{trackerGeometry, nullptr, nullptr, nullptr}; } //_____________________________________________________________________________ diff --git a/CUDADataFormats/BeamSpot/BuildFile.xml b/CUDADataFormats/BeamSpot/BuildFile.xml index 80ed8a88f58c2..f639ac4de6f9b 100644 --- a/CUDADataFormats/BeamSpot/BuildFile.xml +++ b/CUDADataFormats/BeamSpot/BuildFile.xml @@ -1,6 +1,7 @@ + diff --git a/CUDADataFormats/HGCal/BuildFile.xml b/CUDADataFormats/HGCal/BuildFile.xml new file mode 100644 index 0000000000000..60e10acaa6829 --- /dev/null +++ b/CUDADataFormats/HGCal/BuildFile.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/CUDADataFormats/HGCal/interface/ConstHGCRecHitSoA.h b/CUDADataFormats/HGCal/interface/ConstHGCRecHitSoA.h new file mode 100644 index 0000000000000..1096f88b37c49 --- /dev/null +++ b/CUDADataFormats/HGCal/interface/ConstHGCRecHitSoA.h @@ -0,0 +1,16 @@ +#ifndef CUDADataFormats_HGCal_ConstHGCRecHitSoA_h +#define CUDADataFormats_HGCal_ConstHGCRecHitSoA_h + +#include + +class ConstHGCRecHitSoA { //const version of the HGCRecHit class (data in the event should be immutable) +public: + float const *energy_; //calibrated energy of the rechit + float const *time_; //time jitter of the UncalibRecHit + float const *timeError_; //time resolution + uint32_t const *id_; //rechit detId + uint32_t const *flagBits_; //rechit flags describing its status (DataFormats/HGCRecHit/interface/HGCRecHit.h) + uint8_t const *son_; //signal over noise +}; + +#endif //CUDADataFormats_HGCal_ConstHGCRecHitSoA_h diff --git a/CUDADataFormats/HGCal/interface/HGCConditions.h b/CUDADataFormats/HGCal/interface/HGCConditions.h new file mode 100644 index 0000000000000..cef834590c661 --- /dev/null +++ b/CUDADataFormats/HGCal/interface/HGCConditions.h @@ -0,0 +1,203 @@ +#ifndef CUDADataFormats_HGCal_HGCConditions_h +#define CUDADataFormats_HGCal_HGCConditions_h + +#include +#include +#include +#include + +class HeterogeneousHGCSiliconDetId { +public: + constexpr HeterogeneousHGCSiliconDetId(uint32_t id) : id_(id) {} + constexpr std::int32_t type() { return (id_ >> kHGCalTypeOffset) & kHGCalTypeMask; } + constexpr std::int32_t zside() { return (((id_ >> kHGCalZsideOffset) & kHGCalZsideMask) ? -1 : 1); } + constexpr std::int32_t layer() { return (id_ >> kHGCalLayerOffset) & kHGCalLayerMask; } + constexpr std::int32_t waferUAbs() { return (id_ >> kHGCalWaferUOffset) & kHGCalWaferUMask; } + constexpr std::int32_t waferVAbs() { return (id_ >> kHGCalWaferVOffset) & kHGCalWaferVMask; } + constexpr std::int32_t waferU() { + return (((id_ >> kHGCalWaferUSignOffset) & kHGCalWaferUSignMask) ? -waferUAbs() : waferUAbs()); + } + constexpr std::int32_t waferV() { + return (((id_ >> kHGCalWaferVSignOffset) & kHGCalWaferVSignMask) ? -waferVAbs() : waferVAbs()); + } + constexpr std::int32_t waferX() { return (-2 * waferU() + waferV()); } + constexpr std::int32_t waferY() { return (2 * waferV()); } + constexpr std::int32_t cellU() { return (id_ >> kHGCalCellUOffset) & kHGCalCellUMask; } + constexpr std::int32_t cellV() { return (id_ >> kHGCalCellVOffset) & kHGCalCellVMask; } + constexpr std::int32_t nCellsSide() { return (type() == HGCalFine) ? HGCalFineN : HGCalCoarseN; } + constexpr std::int32_t cellX() { + const std::int32_t N = nCellsSide(); + return (3 * (cellV() - N) + 2); + } + constexpr std::int32_t cellY() { + const std::int32_t N = nCellsSide(); + return (2 * cellU() - (N + cellV())); + } + +private: + std::uint32_t id_; + enum waferType { HGCalFine = 0, HGCalCoarseThin = 1, HGCalCoarseThick = 2 }; + static constexpr std::int32_t HGCalFineN = 12; + static constexpr std::int32_t HGCalCoarseN = 8; + static constexpr std::int32_t kHGCalCellUOffset = 0; + static constexpr std::int32_t kHGCalCellUMask = 0x1F; + static constexpr std::int32_t kHGCalCellVOffset = 5; + static constexpr std::int32_t kHGCalCellVMask = 0x1F; + static constexpr std::int32_t kHGCalWaferUOffset = 10; + static constexpr std::int32_t kHGCalWaferUMask = 0xF; + static constexpr std::int32_t kHGCalWaferUSignOffset = 14; + static constexpr std::int32_t kHGCalWaferUSignMask = 0x1; + static constexpr std::int32_t kHGCalWaferVOffset = 15; + static constexpr std::int32_t kHGCalWaferVMask = 0xF; + static constexpr std::int32_t kHGCalWaferVSignOffset = 19; + static constexpr std::int32_t kHGCalWaferVSignMask = 0x1; + static constexpr std::int32_t kHGCalLayerOffset = 20; + static constexpr std::int32_t kHGCalLayerMask = 0x1F; + static constexpr std::int32_t kHGCalZsideOffset = 25; + static constexpr std::int32_t kHGCalZsideMask = 0x1; + static constexpr std::int32_t kHGCalTypeOffset = 26; + static constexpr std::int32_t kHGCalTypeMask = 0x3; +}; + +class HeterogeneousHGCScintillatorDetId { +public: + constexpr HeterogeneousHGCScintillatorDetId(uint32_t id) : id_(id) {} + constexpr std::int32_t type() { return (id_ >> kHGCalTypeOffset) & kHGCalTypeMask; } + constexpr std::int32_t zside() const { return (((id_ >> kHGCalZsideOffset) & kHGCalZsideMask) ? -1 : 1); } + constexpr std::int32_t layer() const { return (id_ >> kHGCalLayerOffset) & kHGCalLayerMask; } + +private: + std::uint32_t id_; + static constexpr std::uint32_t kHGCalPhiOffset = 0; + static constexpr std::uint32_t kHGCalPhiMask = 0x1FF; + static constexpr std::uint32_t kHGCalRadiusOffset = 9; + static constexpr std::uint32_t kHGCalRadiusMask = 0xFF; + static constexpr std::uint32_t kHGCalLayerOffset = 17; + static constexpr std::uint32_t kHGCalLayerMask = 0x1F; + static constexpr std::uint32_t kHGCalTriggerOffset = 22; + static constexpr std::uint32_t kHGCalTriggerMask = 0x1; + static constexpr std::uint32_t kHGCalZsideOffset = 25; + static constexpr std::uint32_t kHGCalZsideMask = 0x1; + static constexpr std::uint32_t kHGCalTypeOffset = 26; + static constexpr std::uint32_t kHGCalTypeMask = 0x3; +}; + +namespace hgcal_conditions { + namespace parameters { + enum class HeterogeneousHGCalEEParametersType { Double, Int32_t }; + enum class HeterogeneousHGCalHEFParametersType { Double, Int32_t }; + enum class HeterogeneousHGCalHEBParametersType { Double, Int32_t }; + + const std::array typesEE = {{HeterogeneousHGCalEEParametersType::Double, + HeterogeneousHGCalEEParametersType::Double, + HeterogeneousHGCalEEParametersType::Double, + HeterogeneousHGCalEEParametersType::Double, + HeterogeneousHGCalEEParametersType::Int32_t}}; + + const std::array typesHEF = { + {HeterogeneousHGCalHEFParametersType::Double, + HeterogeneousHGCalHEFParametersType::Double, + HeterogeneousHGCalHEFParametersType::Double, + HeterogeneousHGCalHEFParametersType::Double, + HeterogeneousHGCalHEFParametersType::Int32_t}}; + + const std::array typesHEB = { + {HeterogeneousHGCalHEBParametersType::Double, HeterogeneousHGCalHEBParametersType::Int32_t}}; + + class HeterogeneousHGCalEEParameters { + public: + //indexed by cell number + double *cellFineX_; + double *cellFineY_; + double *cellCoarseX_; + double *cellCoarseY_; + //index by wafer number + std::int32_t *waferTypeL_; + }; + class HeterogeneousHGCalHEFParameters { + public: + //indexed by cell number + double *cellFineX_; + double *cellFineY_; + double *cellCoarseX_; + double *cellCoarseY_; + //index by wafer number + std::int32_t *waferTypeL_; + }; + class HeterogeneousHGCalHEBParameters { + public: + double *testD_; + std::int32_t *testI_; + }; + + } //namespace parameters + + namespace positions { + + enum class HeterogeneousHGCalPositionsType { Float, Int32_t, Uint32_t }; + + const std::vector types = {HeterogeneousHGCalPositionsType::Float, + HeterogeneousHGCalPositionsType::Float, + HeterogeneousHGCalPositionsType::Float, + HeterogeneousHGCalPositionsType::Int32_t, + HeterogeneousHGCalPositionsType::Int32_t, + HeterogeneousHGCalPositionsType::Int32_t, + HeterogeneousHGCalPositionsType::Uint32_t}; + + struct HGCalPositionsMapping { + std::vector zLayer; //z position per layer + std::vector nCellsLayer; //#cells per layer + std::vector nCellsWaferUChunk; //#cells per U wafer (each in turn including all V wafers) + std::vector nCellsHexagon; //#cells per V wafer + std::vector detid; + //variables required for calculating the positions (x,y) from the detid in the GPU + float waferSize; + float sensorSeparation; + //variables required for the mapping of detid -> cell in the geometry + std::int32_t firstLayer; + std::int32_t lastLayer; + std::int32_t waferMax; + std::int32_t waferMin; + }; + + struct HeterogeneousHGCalPositionsMapping { + //the x, y and z positions will not be filled in the CPU + float *x; + float *y; + float *zLayer; + std::int32_t *nCellsLayer; + std::int32_t *nCellsWaferUChunk; + std::int32_t *nCellsHexagon; + std::uint32_t *detid; + //variables required for calculating the positions (x,y) from the detid in the GPU + float waferSize; + float sensorSeparation; + //variables required for the mapping of detid -> cell in the geometry + std::int32_t firstLayer; + std::int32_t lastLayer; + std::int32_t waferMax; + std::int32_t waferMin; + }; + + } //namespace positions + + struct HeterogeneousEEConditionsESProduct { + parameters::HeterogeneousHGCalEEParameters params; + }; + struct HeterogeneousHEFConditionsESProduct { + parameters::HeterogeneousHGCalHEFParameters params; + //positions::HeterogeneousHGCalPositionsMapping posmap; + //size_t nelems_posmap; + }; + struct HeterogeneousHEBConditionsESProduct { + parameters::HeterogeneousHGCalHEBParameters params; + }; + + struct HeterogeneousHEFCellPositionsConditionsESProduct { + positions::HeterogeneousHGCalPositionsMapping posmap; + std::size_t nelems_posmap; + }; + +} // namespace hgcal_conditions + +#endif //CUDADataFormats_HGCal_HGCConditions_h diff --git a/CUDADataFormats/HGCal/interface/HGCRecHitCPUProduct.h b/CUDADataFormats/HGCal/interface/HGCRecHitCPUProduct.h new file mode 100644 index 0000000000000..b2d4d01bb5020 --- /dev/null +++ b/CUDADataFormats/HGCal/interface/HGCRecHitCPUProduct.h @@ -0,0 +1,65 @@ +#ifndef CUDADAtaFormats_HGCal_HGCRecHitCPUProduct_H +#define CUDADAtaFormats_HGCal_HGCRecHitCPUProduct_H + +#include +#include + +#include "HeterogeneousCore/CUDAUtilities/interface/host_unique_ptr.h" +#include "CUDADataFormats/HGCal/interface/HGCRecHitSoA.h" +#include "CUDADataFormats/HGCal/interface/ConstHGCRecHitSoA.h" +#include "CUDADataFormats/HGCal/interface/HGCUncalibRecHitSoA.h" + +class HGCRecHitCPUProduct { +public: + HGCRecHitCPUProduct() = default; + explicit HGCRecHitCPUProduct(uint32_t nhits, const cudaStream_t &stream) : nhits_(nhits) { + size_tot_ = std::accumulate(sizes_.begin(), sizes_.end(), 0); //this might be done at compile time + pad_ = ((nhits - 1) / 32 + 1) * 32; //align to warp boundary (assumption: warpSize = 32) + mem_ = cms::cuda::make_host_unique(pad_ * size_tot_, stream); + } + ~HGCRecHitCPUProduct() = default; + + HGCRecHitCPUProduct(const HGCRecHitCPUProduct &) = delete; + HGCRecHitCPUProduct &operator=(const HGCRecHitCPUProduct &) = delete; + HGCRecHitCPUProduct(HGCRecHitCPUProduct &&) = default; + HGCRecHitCPUProduct &operator=(HGCRecHitCPUProduct &&) = default; + + HGCRecHitSoA get() { + HGCRecHitSoA soa; + soa.energy_ = reinterpret_cast(mem_.get()); + soa.time_ = soa.energy_ + pad_; + soa.timeError_ = soa.time_ + pad_; + soa.id_ = reinterpret_cast(soa.timeError_ + pad_); + soa.flagBits_ = soa.id_ + pad_; + soa.son_ = reinterpret_cast(soa.flagBits_ + pad_); + soa.nbytes_ = size_tot_; + soa.nhits_ = nhits_; + soa.pad_ = pad_; + return soa; + } + ConstHGCRecHitSoA get() const { + ConstHGCRecHitSoA soa; + soa.energy_ = reinterpret_cast(mem_.get()); + soa.time_ = soa.energy_ + pad_; + soa.timeError_ = soa.time_ + pad_; + soa.id_ = reinterpret_cast(soa.timeError_ + pad_); + soa.flagBits_ = soa.id_ + pad_; + soa.son_ = reinterpret_cast(soa.flagBits_ + pad_); + return soa; + } + uint32_t nHits() const { return nhits_; } + uint32_t pad() const { return pad_; } + uint32_t nBytes() const { return size_tot_; } + +private: + cms::cuda::host::unique_ptr mem_; + static constexpr std::array sizes_ = { + {memory::npointers::float_hgcrechits_soa * sizeof(float), + memory::npointers::uint32_hgcrechits_soa * sizeof(uint32_t), + memory::npointers::uint8_hgcrechits_soa * sizeof(uint8_t)}}; + uint32_t pad_; + uint32_t nhits_; + uint32_t size_tot_; +}; + +#endif //CUDADAtaFormats_HGCal_HGCRecHitCPUProduct_H diff --git a/CUDADataFormats/HGCal/interface/HGCRecHitGPUProduct.h b/CUDADataFormats/HGCal/interface/HGCRecHitGPUProduct.h new file mode 100644 index 0000000000000..663dc6542e832 --- /dev/null +++ b/CUDADataFormats/HGCal/interface/HGCRecHitGPUProduct.h @@ -0,0 +1,69 @@ +#ifndef CUDADAtaFormats_HGCal_HGCRecHitGPUProduct_H +#define CUDADAtaFormats_HGCal_HGCRecHitGPUProduct_H + +#include +#include + +#include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h" +#include "CUDADataFormats/HGCal/interface/HGCRecHitSoA.h" +#include "CUDADataFormats/HGCal/interface/ConstHGCRecHitSoA.h" +#include "CUDADataFormats/HGCal/interface/HGCUncalibRecHitSoA.h" + +class HGCRecHitGPUProduct { +public: + HGCRecHitGPUProduct() = default; + explicit HGCRecHitGPUProduct(uint32_t nhits, const cudaStream_t &stream) : nhits_(nhits) { + size_tot_ = std::accumulate(sizes_.begin(), sizes_.end(), 0); //this might be done at compile time + pad_ = ((nhits - 1) / 32 + 1) * 32; //align to warp boundary (assumption: warpSize = 32) + mem_ = cms::cuda::make_device_unique(pad_ * size_tot_, stream); + } + ~HGCRecHitGPUProduct() = default; + + HGCRecHitGPUProduct(const HGCRecHitGPUProduct &) = delete; + HGCRecHitGPUProduct &operator=(const HGCRecHitGPUProduct &) = delete; + HGCRecHitGPUProduct(HGCRecHitGPUProduct &&) = default; + HGCRecHitGPUProduct &operator=(HGCRecHitGPUProduct &&) = default; + + HGCRecHitSoA get() { + HGCRecHitSoA soa; + soa.energy_ = reinterpret_cast(mem_.get()); + soa.time_ = soa.energy_ + pad_; + soa.timeError_ = soa.time_ + pad_; + soa.id_ = reinterpret_cast(soa.timeError_ + pad_); + soa.flagBits_ = soa.id_ + pad_; + soa.son_ = reinterpret_cast(soa.flagBits_ + pad_); + soa.nbytes_ = size_tot_; + soa.nhits_ = nhits_; + soa.pad_ = pad_; + return soa; + } + ConstHGCRecHitSoA get() const { + ConstHGCRecHitSoA soa; + soa.energy_ = reinterpret_cast(mem_.get()); + soa.time_ = soa.energy_ + pad_; + soa.timeError_ = soa.time_ + pad_; + soa.id_ = reinterpret_cast(soa.timeError_ + pad_); + soa.flagBits_ = soa.id_ + pad_; + soa.son_ = reinterpret_cast(soa.flagBits_ + pad_); + return soa; + } + + //number of hits stored in the SoA + uint32_t nHits() const { return nhits_; } + //pad of memory block (used for warp alignment, slighlty larger than 'nhits_') + uint32_t pad() const { return pad_; } + //number of bytes of the SoA + uint32_t nBytes() const { return size_tot_; } + +private: + cms::cuda::device::unique_ptr mem_; + static constexpr std::array sizes_ = { + {memory::npointers::float_hgcrechits_soa * sizeof(float), + memory::npointers::uint32_hgcrechits_soa * sizeof(uint32_t), + memory::npointers::uint8_hgcrechits_soa * sizeof(uint8_t)}}; + uint32_t pad_; + uint32_t nhits_; + uint32_t size_tot_; +}; + +#endif //CUDADAtaFormats_HGCal_HGCRecHitGPUProduct_H diff --git a/CUDADataFormats/HGCal/interface/HGCRecHitSoA.h b/CUDADataFormats/HGCal/interface/HGCRecHitSoA.h new file mode 100644 index 0000000000000..7d3fb850c9c7f --- /dev/null +++ b/CUDADataFormats/HGCal/interface/HGCRecHitSoA.h @@ -0,0 +1,29 @@ +#ifndef CUDADataFormats_HGCal_HGCRecHitSoA_h +#define CUDADataFormats_HGCal_HGCRecHitSoA_h + +#include + +class HGCRecHitSoA { +public: + float *energy_; //calibrated energy of the rechit + float *time_; //time jitter of the UncalibRecHit + float *timeError_; //time resolution + uint32_t *id_; //rechit detId + uint32_t *flagBits_; //rechit flags describing its status (DataFormats/HGCRecHit/interface/HGCRecHit.h) + uint8_t *son_; //signal over noise + + uint32_t nbytes_; //number of bytes of the SoA + uint32_t nhits_; //number of hits stored in the SoA + uint32_t pad_; //pad of memory block (used for warp alignment, slightly larger than 'nhits_') +}; + +namespace memory { + namespace npointers { + constexpr unsigned float_hgcrechits_soa = 3; //number of float pointers in the rechits SoA + constexpr unsigned uint32_hgcrechits_soa = 2; //number of uint32_t pointers in the rechits SoA + constexpr unsigned uint8_hgcrechits_soa = 1; //number of uint8_t pointers in the rechits SoA + constexpr unsigned ntypes_hgcrechits_soa = 3; //number of different pointer types in the rechits SoA + } // namespace npointers +} // namespace memory + +#endif //CUDADataFormats_HGCal_HGCRecHitSoA_h diff --git a/CUDADataFormats/HGCal/interface/HGCUncalibRecHitDevice.h b/CUDADataFormats/HGCal/interface/HGCUncalibRecHitDevice.h new file mode 100644 index 0000000000000..357c2fa7a9898 --- /dev/null +++ b/CUDADataFormats/HGCal/interface/HGCUncalibRecHitDevice.h @@ -0,0 +1,40 @@ +#ifndef CUDADAtaFormats_HGCal_HGCUncalibRecHitDevice_H +#define CUDADAtaFormats_HGCal_HGCUncalibRecHitDevice_H + +#include +#include + +#include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h" +#include "CUDADataFormats/HGCal/interface/HGCRecHitSoA.h" +#include "CUDADataFormats/HGCal/interface/HGCUncalibRecHitSoA.h" + +class HGCUncalibRecHitDevice { +public: + HGCUncalibRecHitDevice() = default; + explicit HGCUncalibRecHitDevice(uint32_t nhits, const cudaStream_t &stream); + ~HGCUncalibRecHitDevice() = default; + + HGCUncalibRecHitDevice(const HGCUncalibRecHitDevice &) = delete; + HGCUncalibRecHitDevice &operator=(const HGCUncalibRecHitDevice &) = delete; + HGCUncalibRecHitDevice(HGCUncalibRecHitDevice &&) = default; + HGCUncalibRecHitDevice &operator=(HGCUncalibRecHitDevice &&) = default; + + void defineSoAMemoryLayout_(); + HGCUncalibRecHitSoA get() const { return soa_; } + uint32_t nHits() const { return nhits_; } + uint32_t pad() const { return pad_; } + uint32_t nBytes() const { return size_tot_; } + +private: + cms::cuda::device::unique_ptr ptr_; + HGCUncalibRecHitSoA soa_; + static constexpr std::array sizes_ = { + {memory::npointers::float_hgcuncalibrechits_soa * sizeof(float), + memory::npointers::uint32_hgcuncalibrechits_soa * sizeof(uint32_t)}}; + + uint32_t pad_; + uint32_t nhits_; + uint32_t size_tot_; +}; + +#endif //CUDADAtaFormats_HGCal_HGCUncalibRecHitDevice_H diff --git a/CUDADataFormats/HGCal/interface/HGCUncalibRecHitHost.h b/CUDADataFormats/HGCal/interface/HGCUncalibRecHitHost.h new file mode 100644 index 0000000000000..b1cd3c43bb83c --- /dev/null +++ b/CUDADataFormats/HGCal/interface/HGCUncalibRecHitHost.h @@ -0,0 +1,78 @@ +#ifndef CUDADAtaFormats_HGCal_HGCUncalibRecHitHost_H +#define CUDADAtaFormats_HGCal_HGCUncalibRecHitHost_H + +#include +#include + +#include "HeterogeneousCore/CUDAUtilities/interface/host_unique_ptr.h" +#include "CUDADataFormats/HGCal/interface/HGCRecHitSoA.h" +#include "CUDADataFormats/HGCal/interface/HGCUncalibRecHitSoA.h" + +template +class HGCUncalibRecHitHost { +public: + HGCUncalibRecHitHost() = default; + explicit HGCUncalibRecHitHost(uint32_t nhits, const T &hits, const cudaStream_t &stream) : nhits_(nhits) { + size_tot_ = std::accumulate(sizes_.begin(), sizes_.end(), 0); //this might be done at compile time + pad_ = ((nhits - 1) / 32 + 1) * 32; //align to warp boundary (assumption: warpSize = 32) + ptr_ = cms::cuda::make_host_unique(pad_ * size_tot_, stream); + + defineSoAMemoryLayout_(); + fillSoA_(hits); + } + ~HGCUncalibRecHitHost() = default; + + HGCUncalibRecHitHost(const HGCUncalibRecHitHost &) = delete; + HGCUncalibRecHitHost &operator=(const HGCUncalibRecHitHost &) = delete; + HGCUncalibRecHitHost(HGCUncalibRecHitHost &&) = default; + HGCUncalibRecHitHost &operator=(HGCUncalibRecHitHost &&) = default; + + void defineSoAMemoryLayout_() { + soa_.amplitude_ = reinterpret_cast(ptr_.get()); + soa_.pedestal_ = soa_.amplitude_ + pad_; + soa_.jitter_ = soa_.pedestal_ + pad_; + soa_.chi2_ = soa_.jitter_ + pad_; + soa_.OOTamplitude_ = soa_.chi2_ + pad_; + soa_.OOTchi2_ = soa_.OOTamplitude_ + pad_; + soa_.flags_ = reinterpret_cast(soa_.OOTchi2_ + pad_); + soa_.aux_ = soa_.flags_ + pad_; + soa_.id_ = soa_.aux_ + pad_; + soa_.aux_ = soa_.flags_ + pad_; + soa_.id_ = soa_.aux_ + pad_; + + soa_.nbytes_ = size_tot_; + soa_.nhits_ = nhits_; + soa_.pad_ = pad_; + } + + void fillSoA_(const T &c) { + for (unsigned i(0); i < nhits_; ++i) { + soa_.amplitude_[i] = c[i].amplitude(); + soa_.pedestal_[i] = c[i].pedestal(); + soa_.jitter_[i] = c[i].jitter(); + soa_.chi2_[i] = c[i].chi2(); + soa_.OOTamplitude_[i] = c[i].outOfTimeEnergy(); + soa_.OOTchi2_[i] = c[i].outOfTimeChi2(); + soa_.flags_[i] = c[i].flags(); + soa_.aux_[i] = 0; + soa_.id_[i] = c[i].id().rawId(); + } + } + + HGCUncalibRecHitSoA get() const { return soa_; } + uint32_t nHits() const { return nhits_; } + uint32_t pad() const { return pad_; } + uint32_t nBytes() const { return size_tot_; } + +private: + cms::cuda::host::unique_ptr ptr_; + HGCUncalibRecHitSoA soa_; + static constexpr std::array sizes_ = { + {memory::npointers::float_hgcuncalibrechits_soa * sizeof(float), + memory::npointers::uint32_hgcuncalibrechits_soa * sizeof(uint32_t)}}; + uint32_t size_tot_; + uint32_t pad_; + uint32_t nhits_; +}; + +#endif //CUDADAtaFormats_HGCal_HGCUncalibRecHitHost_H diff --git a/CUDADataFormats/HGCal/interface/HGCUncalibRecHitSoA.h b/CUDADataFormats/HGCal/interface/HGCUncalibRecHitSoA.h new file mode 100644 index 0000000000000..9dadc6082ef0e --- /dev/null +++ b/CUDADataFormats/HGCal/interface/HGCUncalibRecHitSoA.h @@ -0,0 +1,33 @@ +#ifndef CUDADataFormats_HGCal_HGCUncalibRecHitSoA_h +#define CUDADataFormats_HGCal_HGCUncalibRecHitSoA_h + +#include + +class HGCUncalibRecHitSoA { +public: + float *amplitude_; //uncalib rechit amplitude, i.e., the average number of MIPs + float *pedestal_; //reconstructed pedestal + float *jitter_; //reconstructed time jitter + float *chi2_; //chi2 of the pulse + float *OOTamplitude_; //out-of-time reconstructed amplitude + float *OOTchi2_; //out-of-time chi2 + std::uint32_t * + flags_; //uncalibrechit flags describing its status (DataFormats/HGCRecHit/interface/HGCUncalibRecHit.h); to be propagated to the rechits + std::uint32_t *aux_; //aux word; first 8 bits contain time (jitter) error + std::uint32_t *id_; //uncalibrechit detector id + + std::uint32_t nbytes_; //number of bytes of the SoA + std::uint32_t nhits_; //number of hits stored in the SoA + std::uint32_t pad_; //pad of memory block (used for warp alignment, slighlty larger than 'nhits_') +}; + +namespace memory { + namespace npointers { + constexpr unsigned float_hgcuncalibrechits_soa = 6; //number of float pointers in the uncalibrated rechits SoA + constexpr unsigned uint32_hgcuncalibrechits_soa = 3; //number of uint32_t pointers in the uncalibrated rechits SoA + constexpr unsigned ntypes_hgcuncalibrechits_soa = + 2; //number of different pointer types in the uncalibrated rechits SoA + } // namespace npointers +} // namespace memory + +#endif diff --git a/CUDADataFormats/HGCal/interface/HGCUncalibRecHitsToRecHitsConstants.h b/CUDADataFormats/HGCal/interface/HGCUncalibRecHitsToRecHitsConstants.h new file mode 100644 index 0000000000000..72e7b718fd4ea --- /dev/null +++ b/CUDADataFormats/HGCal/interface/HGCUncalibRecHitsToRecHitsConstants.h @@ -0,0 +1,73 @@ +#ifndef CUDADataFormats_HGCal_HGCUncalibRecHitsToRecHitsConstants_h +#define CUDADataFormats_HGCal_HGCUncalibRecHitsToRecHitsConstants_h + +#include +#include + +class HGCConstantVectorData { +public: + std::vector fCPerMIP_; + std::vector cce_; + std::vector noise_fC_; + std::vector rcorr_; + std::vector weights_; +}; + +class HGCeeUncalibRecHitConstantData { +public: + static constexpr size_t ee_fCPerMIP = 3; //number of elements pointed by hgcEE_fCPerMIP_ + static constexpr size_t ee_cce = 3; //number of elements pointed by hgcEE_cce_ + static constexpr size_t ee_noise_fC = 3; //number of elements pointed by hgcEE_noise_fC_ + static constexpr size_t ee_rcorr = 3; //number of elements pointed by rcorr_ + static constexpr size_t ee_weights = 51; //number of elements posize_ted by weights_ + + double fCPerMIP_[ee_fCPerMIP]; //femto coloumb to MIP conversion; one value per sensor thickness + double cce_[ee_cce]; //charge collection efficiency, one value per sensor thickness + double noise_fC_[ee_noise_fC]; //noise, one value per sensor thickness + double rcorr_[ee_rcorr]; //thickness correction + double weights_[ee_weights]; //energy weights to recover rechit energy deposited in the absorber + + double keV2DIGI_; //energy to femto coloumb conversion: 1000 eV/3.62 (eV per e) / 6.24150934e3 (e per fC) + double uncalib2GeV_; //sets the ADC; obtained by dividing 1e-6 by hgcEE_keV2DIGI_ + float xmin_; //used for computing the time resolution error + float xmax_; //used for computing the time resolution error + float aterm_; //used for computing the time resolution error + float cterm_; //used for computing the time resolution error +}; + +class HGChefUncalibRecHitConstantData { +public: + static constexpr size_t hef_fCPerMIP = 3; //number of elements pointed by hgcEE_fCPerMIP_ + static constexpr size_t hef_cce = 3; //number of elements pointed by hgcEE_cce_ + static constexpr size_t hef_noise_fC = 3; //number of elements pointed by hgcEE_noise_fC_ + static constexpr size_t hef_rcorr = 3; //number of elements pointed by rcorr_ + static constexpr size_t hef_weights = 51; //number of elements pointed by weights_ + + double fCPerMIP_[hef_fCPerMIP]; //femto coloumb to MIP conversion; one value per sensor thickness + double cce_[hef_cce]; //charge collection efficiency, one value per sensor thickness + double noise_fC_[hef_noise_fC]; //noise, one value per sensor thickness + double rcorr_[hef_rcorr]; //thickness correction + double weights_[hef_weights]; //energy weights to recover rechit energy deposited in the absorber + + double keV2DIGI_; //energy to femto coloumb conversion: 1000 eV/3.62 (eV per e) / 6.24150934e3 (e per fC) + double uncalib2GeV_; //sets the ADC; obtained by dividing 1e-6 by hgcHEF_keV2DIGI_ + float xmin_; //used for computing the time resolution error + float xmax_; //used for computing the time resolution error + float aterm_; //used for computing the time resolution error + float cterm_; //used for computing the time resolution error + std::int32_t layerOffset_; //layer offset relative to layer#1 of the EE subsetector +}; + +class HGChebUncalibRecHitConstantData { +public: + static constexpr size_t heb_weights = 51; //number of elements pointed by weights_ + + double weights_[heb_weights]; //energy weights to recover rechit energy deposited in the absorber + + double keV2DIGI_; //energy to femto coloumb conversion: 1000 eV/3.62 (eV per e) / 6.24150934e3 (e per fC) + double uncalib2GeV_; //sets the ADC; obtained by dividing 1e-6 by hgcHEB_keV2DIGI_ + double noise_MIP_; //noise + std::int32_t layerOffset_; //layer offset relative to layer#1 of the EE subsetector +}; + +#endif diff --git a/CUDADataFormats/HGCal/src/HGCUncalibRecHitDevice.cc b/CUDADataFormats/HGCal/src/HGCUncalibRecHitDevice.cc new file mode 100644 index 0000000000000..bfd0bc1e97e58 --- /dev/null +++ b/CUDADataFormats/HGCal/src/HGCUncalibRecHitDevice.cc @@ -0,0 +1,25 @@ +#include "CUDADataFormats/HGCal/interface/HGCUncalibRecHitDevice.h" + +HGCUncalibRecHitDevice::HGCUncalibRecHitDevice(uint32_t nhits, const cudaStream_t& stream) : nhits_(nhits) { + size_tot_ = std::accumulate(sizes_.begin(), sizes_.end(), 0); //this might be done at compile time + pad_ = ((nhits - 1) / 32 + 1) * 32; //align to warp boundary (assumption: warpSize = 32) + ptr_ = cms::cuda::make_device_unique(pad_ * size_tot_, stream); + + defineSoAMemoryLayout_(); +} + +void HGCUncalibRecHitDevice::defineSoAMemoryLayout_() { + soa_.amplitude_ = reinterpret_cast(ptr_.get()); + soa_.pedestal_ = soa_.amplitude_ + pad_; + soa_.jitter_ = soa_.pedestal_ + pad_; + soa_.chi2_ = soa_.jitter_ + pad_; + soa_.OOTamplitude_ = soa_.chi2_ + pad_; + soa_.OOTchi2_ = soa_.OOTamplitude_ + pad_; + soa_.flags_ = reinterpret_cast(soa_.OOTchi2_ + pad_); + soa_.aux_ = soa_.flags_ + pad_; + soa_.id_ = soa_.aux_ + pad_; + + soa_.nbytes_ = size_tot_; + soa_.nhits_ = nhits_; + soa_.pad_ = pad_; +} diff --git a/CUDADataFormats/HGCal/src/classes.h b/CUDADataFormats/HGCal/src/classes.h new file mode 100644 index 0000000000000..982faea57d046 --- /dev/null +++ b/CUDADataFormats/HGCal/src/classes.h @@ -0,0 +1,9 @@ +#ifndef HGCRECHITSOA_CLASSES_H +#define HGCRECHITSOA_CLASSES_H + +#include "CUDADataFormats/Common/interface/Product.h" +#include "DataFormats/Common/interface/Wrapper.h" +#include "CUDADataFormats/HGCal/interface/HGCRecHitGPUProduct.h" +#include "CUDADataFormats/HGCal/interface/HGCRecHitCPUProduct.h" + +#endif //HGCRECHITSOA_CLASSES_H diff --git a/CUDADataFormats/HGCal/src/classes_def.xml b/CUDADataFormats/HGCal/src/classes_def.xml new file mode 100644 index 0000000000000..632364292ff28 --- /dev/null +++ b/CUDADataFormats/HGCal/src/classes_def.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/CUDADataFormats/SiPixelCluster/interface/gpuClusteringConstants.h b/CUDADataFormats/SiPixelCluster/interface/gpuClusteringConstants.h index e9dfed7bca7a6..77cf567dca681 100644 --- a/CUDADataFormats/SiPixelCluster/interface/gpuClusteringConstants.h +++ b/CUDADataFormats/SiPixelCluster/interface/gpuClusteringConstants.h @@ -4,17 +4,6 @@ #include #include -namespace pixelGPUConstants { -#ifdef GPU_SMALL_EVENTS - // kept for testing and debugging - constexpr uint32_t maxNumberOfHits = 24 * 1024; -#else - // data at pileup 50 has 18300 +/- 3500 hits; 40000 is around 6 sigma away - // tested on MC events with 55-75 pileup events - constexpr uint32_t maxNumberOfHits = 48 * 1024; -#endif -} // namespace pixelGPUConstants - namespace gpuClustering { #ifdef GPU_SMALL_EVENTS // kept for testing and debugging @@ -28,7 +17,6 @@ namespace gpuClustering { constexpr uint16_t maxNumModules = 2000; constexpr int32_t maxNumClustersPerModules = maxHitsInModule(); - constexpr uint32_t maxNumClusters = pixelGPUConstants::maxNumberOfHits; constexpr uint16_t invalidModuleId = std::numeric_limits::max() - 1; static_assert(invalidModuleId > maxNumModules); // invalidModuleId must be > maxNumModules diff --git a/CUDADataFormats/Track/BuildFile.xml b/CUDADataFormats/Track/BuildFile.xml new file mode 100644 index 0000000000000..e3f9a0910bbd8 --- /dev/null +++ b/CUDADataFormats/Track/BuildFile.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/CUDADataFormats/Track/interface/PixelTrackHeterogeneous.h b/CUDADataFormats/Track/interface/PixelTrackHeterogeneous.h new file mode 100644 index 0000000000000..3ee5af80353dd --- /dev/null +++ b/CUDADataFormats/Track/interface/PixelTrackHeterogeneous.h @@ -0,0 +1,9 @@ +#ifndef CUDADataFormats_Track_PixelTrackHeterogeneous_h +#define CUDADataFormats_Track_PixelTrackHeterogeneous_h + +#include "CUDADataFormats/Common/interface/HeterogeneousSoA.h" +#include "CUDADataFormats/Track/interface/TrackSoAHeterogeneousT.h" + +using PixelTrackHeterogeneous = HeterogeneousSoA; + +#endif // #ifndef CUDADataFormats_Track_PixelTrackHeterogeneous_h \ No newline at end of file diff --git a/CUDADataFormats/Track/interface/TrackSoAHeterogeneousT.h b/CUDADataFormats/Track/interface/TrackSoAHeterogeneousT.h new file mode 100644 index 0000000000000..f74717c41e4d7 --- /dev/null +++ b/CUDADataFormats/Track/interface/TrackSoAHeterogeneousT.h @@ -0,0 +1,73 @@ +#ifndef CUDADataFormats_Track_TrackHeterogeneousT_H +#define CUDADataFormats_Track_TrackHeterogeneousT_H + +#include "CUDADataFormats/Track/interface/TrajectoryStateSoAT.h" +#include "HeterogeneousCore/CUDAUtilities/interface/HistoContainer.h" + +#include "CUDADataFormats/Common/interface/HeterogeneousSoA.h" + +namespace pixelTrack { + enum class Quality : uint8_t { bad = 0, dup, loose, strict, tight, highPurity }; +} + +template +class TrackSoAHeterogeneousT { +public: + static constexpr int32_t stride() { return S; } + + using Quality = pixelTrack::Quality; + using hindex_type = uint32_t; + using HitContainer = cms::cuda::OneToManyAssoc; + + // Always check quality is at least loose! + // CUDA does not support enums in __lgc ... +private: + eigenSoA::ScalarSoA quality_; + +public: + constexpr Quality quality(int32_t i) const { return (Quality)(quality_(i)); } + constexpr Quality &quality(int32_t i) { return (Quality &)(quality_(i)); } + constexpr Quality const *qualityData() const { return (Quality const *)(quality_.data()); } + constexpr Quality *qualityData() { return (Quality *)(quality_.data()); } + + // this is chi2/ndof as not necessarely all hits are used in the fit + eigenSoA::ScalarSoA chi2; + + constexpr int nHits(int i) const { return detIndices.size(i); } + + // State at the Beam spot + // phi,tip,1/pt,cotan(theta),zip + TrajectoryStateSoAT stateAtBS; + eigenSoA::ScalarSoA eta; + eigenSoA::ScalarSoA pt; + constexpr float charge(int32_t i) const { return std::copysign(1.f, stateAtBS.state(i)(2)); } + constexpr float phi(int32_t i) const { return stateAtBS.state(i)(0); } + constexpr float tip(int32_t i) const { return stateAtBS.state(i)(1); } + constexpr float zip(int32_t i) const { return stateAtBS.state(i)(4); } + + // state at the detector of the outermost hit + // representation to be decided... + // not yet filled on GPU + // TrajectoryStateSoA stateAtOuterDet; + + HitContainer hitIndices; + HitContainer detIndices; +}; + +namespace pixelTrack { + +#ifdef GPU_SMALL_EVENTS + // kept for testing and debugging + constexpr uint32_t maxNumber() { return 2 * 1024; } +#else + // tested on MC events with 55-75 pileup events + constexpr uint32_t maxNumber() { return 32 * 1024; } +#endif + + using TrackSoA = TrackSoAHeterogeneousT; + using TrajectoryState = TrajectoryStateSoAT; + using HitContainer = TrackSoA::HitContainer; + +} // namespace pixelTrack + +#endif // CUDADataFormats_Track_TrackHeterogeneousT_H diff --git a/CUDADataFormats/Track/interface/TrajectoryStateSoAT.h b/CUDADataFormats/Track/interface/TrajectoryStateSoAT.h new file mode 100644 index 0000000000000..64fcd573a6991 --- /dev/null +++ b/CUDADataFormats/Track/interface/TrajectoryStateSoAT.h @@ -0,0 +1,59 @@ +#ifndef CUDADataFormats_Track_TrajectoryStateSOAT_H +#define CUDADataFormats_Track_TrajectoryStateSOAT_H + +#include +#include "HeterogeneousCore/CUDAUtilities/interface/eigenSoA.h" + +template +struct TrajectoryStateSoAT { + using Vector5f = Eigen::Matrix; + using Vector15f = Eigen::Matrix; + + using Vector5d = Eigen::Matrix; + using Matrix5d = Eigen::Matrix; + + static constexpr int32_t stride() { return S; } + + eigenSoA::MatrixSoA state; + eigenSoA::MatrixSoA covariance; + + template + __host__ __device__ inline void copyFromCircle( + V3 const& cp, M3 const& ccov, V2 const& lp, M2 const& lcov, float b, int32_t i) { + state(i) << cp.template cast(), lp.template cast(); + state(i)(2) *= b; + auto cov = covariance(i); + cov(0) = ccov(0, 0); + cov(1) = ccov(0, 1); + cov(2) = b * float(ccov(0, 2)); + cov(4) = cov(3) = 0; + cov(5) = ccov(1, 1); + cov(6) = b * float(ccov(1, 2)); + cov(8) = cov(7) = 0; + cov(9) = b * b * float(ccov(2, 2)); + cov(11) = cov(10) = 0; + cov(12) = lcov(0, 0); + cov(13) = lcov(0, 1); + cov(14) = lcov(1, 1); + } + + template + __host__ __device__ inline void copyFromDense(V5 const& v, M5 const& cov, int32_t i) { + state(i) = v.template cast(); + for (int j = 0, ind = 0; j < 5; ++j) + for (auto k = j; k < 5; ++k) + covariance(i)(ind++) = cov(j, k); + } + + template + __host__ __device__ inline void copyToDense(V5& v, M5& cov, int32_t i) const { + v = state(i).template cast(); + for (int j = 0, ind = 0; j < 5; ++j) { + cov(j, j) = covariance(i)(ind++); + for (auto k = j + 1; k < 5; ++k) + cov(k, j) = cov(j, k) = covariance(i)(ind++); + } + } +}; + +#endif // CUDADataFormats_Track_TrajectoryStateSOAT_H diff --git a/CUDADataFormats/Track/src/classes.h b/CUDADataFormats/Track/src/classes.h new file mode 100644 index 0000000000000..97c116f6c88d3 --- /dev/null +++ b/CUDADataFormats/Track/src/classes.h @@ -0,0 +1,9 @@ +#ifndef CUDADataFormats_Track_src_classes_h +#define CUDADataFormats_Track_src_classes_h + +#include "CUDADataFormats/Common/interface/Product.h" +#include "CUDADataFormats/Common/interface/HostProduct.h" +#include "CUDADataFormats/Track/interface/TrackSoAHeterogeneousT.h" +#include "DataFormats/Common/interface/Wrapper.h" + +#endif // CUDADataFormats_Track_src_classes_h diff --git a/CUDADataFormats/Track/src/classes_def.xml b/CUDADataFormats/Track/src/classes_def.xml new file mode 100644 index 0000000000000..9c80ae91baf29 --- /dev/null +++ b/CUDADataFormats/Track/src/classes_def.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/CUDADataFormats/Track/test/BuildFile.xml b/CUDADataFormats/Track/test/BuildFile.xml new file mode 100644 index 0000000000000..598b345d4709d --- /dev/null +++ b/CUDADataFormats/Track/test/BuildFile.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/CUDADataFormats/Track/test/TrajectoryStateSOA_t.cpp b/CUDADataFormats/Track/test/TrajectoryStateSOA_t.cpp new file mode 100644 index 0000000000000..d6ff539a642b0 --- /dev/null +++ b/CUDADataFormats/Track/test/TrajectoryStateSOA_t.cpp @@ -0,0 +1 @@ +#include "TrajectoryStateSOA_t.h" diff --git a/CUDADataFormats/Track/test/TrajectoryStateSOA_t.cu b/CUDADataFormats/Track/test/TrajectoryStateSOA_t.cu new file mode 100644 index 0000000000000..d6ff539a642b0 --- /dev/null +++ b/CUDADataFormats/Track/test/TrajectoryStateSOA_t.cu @@ -0,0 +1 @@ +#include "TrajectoryStateSOA_t.h" diff --git a/CUDADataFormats/Track/test/TrajectoryStateSOA_t.h b/CUDADataFormats/Track/test/TrajectoryStateSOA_t.h new file mode 100644 index 0000000000000..97b88873c2613 --- /dev/null +++ b/CUDADataFormats/Track/test/TrajectoryStateSOA_t.h @@ -0,0 +1,75 @@ +#include "CUDADataFormats/Track/interface/TrajectoryStateSoAT.h" + +using Vector5d = Eigen::Matrix; +using Matrix5d = Eigen::Matrix; + +__host__ __device__ Matrix5d loadCov(Vector5d const& e) { + Matrix5d cov; + for (int i = 0; i < 5; ++i) + cov(i, i) = e(i) * e(i); + for (int i = 0; i < 5; ++i) { + for (int j = 0; j < i; ++j) { + double v = 0.3 * std::sqrt(cov(i, i) * cov(j, j)); // this makes the matrix pos defined + cov(i, j) = (i + j) % 2 ? -0.4 * v : 0.1 * v; + cov(j, i) = cov(i, j); + } + } + return cov; +} + +using TS = TrajectoryStateSoAT<128>; + +__global__ void testTSSoA(TS* pts, int n) { + assert(n <= 128); + + Vector5d par0; + par0 << 0.2, 0.1, 3.5, 0.8, 0.1; + Vector5d e0; + e0 << 0.01, 0.01, 0.035, -0.03, -0.01; + auto cov0 = loadCov(e0); + + TS& ts = *pts; + + int first = threadIdx.x + blockIdx.x * blockDim.x; + + for (int i = first; i < n; i += blockDim.x * gridDim.x) { + ts.copyFromDense(par0, cov0, i); + Vector5d par1; + Matrix5d cov1; + ts.copyToDense(par1, cov1, i); + Vector5d delV = par1 - par0; + Matrix5d delM = cov1 - cov0; + for (int j = 0; j < 5; ++j) { + assert(std::abs(delV(j)) < 1.e-5); + for (auto k = j; k < 5; ++k) { + assert(cov0(k, j) == cov0(j, k)); + assert(cov1(k, j) == cov1(j, k)); + assert(std::abs(delM(k, j)) < 1.e-5); + } + } + } +} + +#ifdef __CUDACC__ +#include "HeterogeneousCore/CUDAUtilities/interface/requireDevices.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" +#endif + +int main() { +#ifdef __CUDACC__ + cms::cudatest::requireDevices(); +#endif + + TS ts; + +#ifdef __CUDACC__ + TS* ts_d; + cudaCheck(cudaMalloc(&ts_d, sizeof(TS))); + testTSSoA<<<1, 64>>>(ts_d, 128); + cudaCheck(cudaGetLastError()); + cudaCheck(cudaMemcpy(&ts, ts_d, sizeof(TS), cudaMemcpyDefault)); + cudaCheck(cudaDeviceSynchronize()); +#else + testTSSoA(&ts, 128); +#endif +} diff --git a/CUDADataFormats/TrackingRecHit/BuildFile.xml b/CUDADataFormats/TrackingRecHit/BuildFile.xml index 8dc569d40b6c4..b2035d2be0558 100644 --- a/CUDADataFormats/TrackingRecHit/BuildFile.xml +++ b/CUDADataFormats/TrackingRecHit/BuildFile.xml @@ -1,7 +1,9 @@ + + diff --git a/CUDADataFormats/TrackingRecHit/interface/TrackingRecHit2DHeterogeneous.h b/CUDADataFormats/TrackingRecHit/interface/TrackingRecHit2DHeterogeneous.h index 967b5c6c8282f..7fa73432100f9 100644 --- a/CUDADataFormats/TrackingRecHit/interface/TrackingRecHit2DHeterogeneous.h +++ b/CUDADataFormats/TrackingRecHit/interface/TrackingRecHit2DHeterogeneous.h @@ -34,6 +34,7 @@ class TrackingRecHit2DHeterogeneous { auto hitsModuleStart() const { return m_hitsModuleStart; } auto hitsLayerStart() { return m_hitsLayerStart; } auto phiBinner() { return m_phiBinner; } + auto phiBinnerStorage() { return m_phiBinnerStorage; } auto iphi() { return m_iphi; } // only the local coord and detector index @@ -42,7 +43,7 @@ class TrackingRecHit2DHeterogeneous { private: static constexpr uint32_t n16 = 4; // number of elements in m_store16 - static constexpr uint32_t n32 = 9; // number of elements in m_store32 + static constexpr uint32_t n32 = 10; // number of elements in m_store32 static_assert(sizeof(uint32_t) == sizeof(float)); // just stating the obvious unique_ptr m_store16; //! @@ -59,6 +60,7 @@ class TrackingRecHit2DHeterogeneous { // needed as kernel params... PhiBinner* m_phiBinner; + PhiBinner::index_type* m_phiBinnerStorage; uint32_t* m_hitsLayerStart; int16_t* m_iphi; }; @@ -97,14 +99,20 @@ TrackingRecHit2DHeterogeneous::TrackingRecHit2DHeterogeneous(uint32_t nH // this will break 1to1 correspondence with cluster and module locality // so unless proven VERY inefficient we keep it ordered as generated m_store16 = Traits::template make_device_unique(nHits * n16, stream); - m_store32 = Traits::template make_device_unique(nHits * n32 + 11, stream); + m_store32 = + Traits::template make_device_unique(nHits * n32 + phase1PixelTopology::numberOfLayers + 1, stream); m_PhiBinnerStore = Traits::template make_device_unique(stream); + static_assert(sizeof(TrackingRecHit2DSOAView::hindex_type) == sizeof(float)); + static_assert(sizeof(TrackingRecHit2DSOAView::hindex_type) == sizeof(TrackingRecHit2DSOAView::PhiBinner::index_type)); + auto get16 = [&](int i) { return m_store16.get() + i * nHits; }; auto get32 = [&](int i) { return m_store32.get() + i * nHits; }; // copy all the pointers m_phiBinner = view->m_phiBinner = m_PhiBinnerStore.get(); + m_phiBinnerStorage = view->m_phiBinnerStorage = + reinterpret_cast(get32(9)); view->m_xl = get32(0); view->m_yl = get32(1); diff --git a/CUDADataFormats/TrackingRecHit/interface/TrackingRecHit2DSOAView.h b/CUDADataFormats/TrackingRecHit/interface/TrackingRecHit2DSOAView.h index 7f3c59cd70faf..bebca103158ed 100644 --- a/CUDADataFormats/TrackingRecHit/interface/TrackingRecHit2DSOAView.h +++ b/CUDADataFormats/TrackingRecHit/interface/TrackingRecHit2DSOAView.h @@ -14,11 +14,9 @@ namespace pixelCPEforGPU { class TrackingRecHit2DSOAView { public: - static constexpr uint32_t maxHits() { return gpuClustering::maxNumClusters; } using hindex_type = uint32_t; // if above is <=2^32 - using PhiBinner = - cms::cuda::HistoContainer; + using PhiBinner = cms::cuda::HistoContainer; using AverageGeometry = phase1PixelTopology::AverageGeometry; @@ -95,6 +93,7 @@ class TrackingRecHit2DSOAView { uint32_t* m_hitsLayerStart; PhiBinner* m_phiBinner; + PhiBinner::index_type* m_phiBinnerStorage; uint32_t m_nHits; }; diff --git a/CUDADataFormats/Vertex/BuildFile.xml b/CUDADataFormats/Vertex/BuildFile.xml new file mode 100644 index 0000000000000..f61e4aff7403f --- /dev/null +++ b/CUDADataFormats/Vertex/BuildFile.xml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/CUDADataFormats/Vertex/interface/ZVertexHeterogeneous.h b/CUDADataFormats/Vertex/interface/ZVertexHeterogeneous.h new file mode 100644 index 0000000000000..aacfddc6fe7e2 --- /dev/null +++ b/CUDADataFormats/Vertex/interface/ZVertexHeterogeneous.h @@ -0,0 +1,14 @@ +#ifndef CUDADataFormatsVertexZVertexHeterogeneous_H +#define CUDADataFormatsVertexZVertexHeterogeneous_H + +#include "CUDADataFormats/Vertex/interface/ZVertexSoA.h" +#include "CUDADataFormats/Common/interface/HeterogeneousSoA.h" +#include "CUDADataFormats/Track/interface/PixelTrackHeterogeneous.h" + +using ZVertexHeterogeneous = HeterogeneousSoA; +#ifndef __CUDACC__ +#include "CUDADataFormats/Common/interface/Product.h" +using ZVertexCUDAProduct = cms::cuda::Product; +#endif + +#endif diff --git a/CUDADataFormats/Vertex/interface/ZVertexSoA.h b/CUDADataFormats/Vertex/interface/ZVertexSoA.h new file mode 100644 index 0000000000000..e31b87f30fa11 --- /dev/null +++ b/CUDADataFormats/Vertex/interface/ZVertexSoA.h @@ -0,0 +1,26 @@ +#ifndef CUDADataFormats_Vertex_ZVertexSoA_h +#define CUDADataFormats_Vertex_ZVertexSoA_h + +#include +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCompat.h" + +// SOA for vertices +// These vertices are clusterized and fitted only along the beam line (z) +// to obtain their global coordinate the beam spot position shall be added (eventually correcting for the beam angle as well) +struct ZVertexSoA { + static constexpr uint32_t MAXTRACKS = 32 * 1024; + static constexpr uint32_t MAXVTX = 1024; + + int16_t idv[MAXTRACKS]; // vertex index for each associated (original) track (-1 == not associate) + float zv[MAXVTX]; // output z-posistion of found vertices + float wv[MAXVTX]; // output weight (1/error^2) on the above + float chi2[MAXVTX]; // vertices chi2 + float ptv2[MAXVTX]; // vertices pt^2 + int32_t ndof[MAXTRACKS]; // vertices number of dof (reused as workspace for the number of nearest neighbours FIXME) + uint16_t sortInd[MAXVTX]; // sorted index (by pt2) ascending + uint32_t nvFinal; // the number of vertices + + __host__ __device__ void init() { nvFinal = 0; } +}; + +#endif // CUDADataFormats_Vertex_ZVertexSoA_h diff --git a/CUDADataFormats/Vertex/src/classes.h b/CUDADataFormats/Vertex/src/classes.h new file mode 100644 index 0000000000000..7931beaa8f4bd --- /dev/null +++ b/CUDADataFormats/Vertex/src/classes.h @@ -0,0 +1,8 @@ +#ifndef CUDADataFormats_Vertex_src_classes_h +#define CUDADataFormats_Vertex_src_classes_h + +#include "CUDADataFormats/Vertex/interface/ZVertexHeterogeneous.h" +#include "CUDADataFormats/Common/interface/Product.h" +#include "DataFormats/Common/interface/Wrapper.h" + +#endif // CUDADataFormats_Vertex_src_classes_h diff --git a/CUDADataFormats/Vertex/src/classes_def.xml b/CUDADataFormats/Vertex/src/classes_def.xml new file mode 100644 index 0000000000000..ea633080af9af --- /dev/null +++ b/CUDADataFormats/Vertex/src/classes_def.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/CalibCalorimetry/CaloTPG/src/CaloTPGTranscoderULUT.cc b/CalibCalorimetry/CaloTPG/src/CaloTPGTranscoderULUT.cc index f46dce7bb3771..48595c5ae9cec 100644 --- a/CalibCalorimetry/CaloTPG/src/CaloTPGTranscoderULUT.cc +++ b/CalibCalorimetry/CaloTPG/src/CaloTPGTranscoderULUT.cc @@ -88,7 +88,7 @@ void CaloTPGTranscoderULUT::loadHCALCompress(HcalLutMetadata const& lutMetadata, } } else { for (unsigned int i = threshold; i < lutsize; ++i) - outputLUT_[index][i] = version == 0 ? linearRctLUT[i] : linearNctLUT[i]; + outputLUT_[index][i] = version == 1 ? linearNctLUT[i] : linearRctLUT[i]; } double eta_low = 0., eta_high = 0.; @@ -126,7 +126,7 @@ void CaloTPGTranscoderULUT::loadHCALCompress(HcalLutMetadata const& lutMetadata, for (unsigned int i = 0; i < lutsize; ++i) { if (outputLUT_[index][i] != tpg) { tpg = outputLUT_[index][i]; - hcaluncomp_[index][tpg] = lsb_factor_ * i / (version == 0 ? rct_factor_ : nct_factor_); + hcaluncomp_[index][tpg] = lsb_factor_ * i / (version == 1 ? nct_factor_ : rct_factor_); } } } diff --git a/CalibCalorimetry/EcalLaserAnalyzer/interface/TFParams.h b/CalibCalorimetry/EcalLaserAnalyzer/interface/TFParams.h index 0af886ef14126..15c58ce2c33a7 100644 --- a/CalibCalorimetry/EcalLaserAnalyzer/interface/TFParams.h +++ b/CalibCalorimetry/EcalLaserAnalyzer/interface/TFParams.h @@ -23,10 +23,7 @@ #include "TVirtualX.h" #include "TObject.h" //#include "TMatrixD.h" -#define SDIM2 10 /* number of samples for cristal */ -#define PLSHDIM 650 /* size of the pulse shape array */ - //double pulseShape( Double_t x[1], Double_t par[4] ) ; - // + struct matrice { int nb_lignes; int nb_colonnes; @@ -38,11 +35,14 @@ matrice cree_mat_prod(matrice, matrice); void fill_mat(matrice, matrice); matrice fill_mat_int(matrice, matrice, matrice); -#define dimmat 30 -#define dimout 10 -#define nbmax_cell 1000 - class TFParams : public TObject { +public: + static constexpr unsigned int dimmat = 30; + static constexpr unsigned int dimout = 10; + static constexpr unsigned int nbmax_cell = 1000; + static constexpr int SDIM2 = 10; + static constexpr int PLSHDIM = 650; + private: int ns; // number of samples int nsmin; // beginning of fit @@ -57,6 +57,8 @@ class TFParams : public TObject { int METHODE; public: + /* number of samples for cristal */ + /* size of the pulse shape array */ TFParams(int size = SDIM2, int size_sh = PLSHDIM); ~TFParams() override{}; double fitpj(double **, double *, double **, double noise_val, int debug); diff --git a/CalibCalorimetry/EcalLaserAnalyzer/interface/TMCReader.h b/CalibCalorimetry/EcalLaserAnalyzer/interface/TMCReader.h index 34b76482c15aa..04a1e4ad4a490 100644 --- a/CalibCalorimetry/EcalLaserAnalyzer/interface/TMCReader.h +++ b/CalibCalorimetry/EcalLaserAnalyzer/interface/TMCReader.h @@ -3,69 +3,62 @@ #include "TObject.h" -#define FNPNMAX 10 -#define FNLMODNMAX 9 -#define FNCHANMAX 200 - -#define fNpns 2 -#define fNchans 400 -#define fNbins 102 - -class TMCReader: public TObject -{ - - private: - - int smN,nlmodN,arr[FNLMODNMAX]; - long int timestart,timestop; - float evts[fNpns+1][FNCHANMAX+FNPNMAX]; - double min[fNpns+1][FNCHANMAX+FNPNMAX],max[fNpns+1][FNCHANMAX+FNPNMAX]; - double val[fNpns+1][FNCHANMAX+FNPNMAX],sig[fNpns+1][FNCHANMAX+FNPNMAX]; - double wbin[fNpns+1][FNCHANMAX+FNPNMAX]; +class TMCReader : public TObject { +public: + static constexpr unsigned int FNPNMAX = 10; + static constexpr unsigned int FNLMODNMAX = 9; + static constexpr unsigned int FNCHANMAX = 200; + static constexpr unsigned int fNpns = 2; + static constexpr unsigned int fNchans = 400; + static constexpr unsigned int fNbins = 102; + +private: + int smN, nlmodN, arr[FNLMODNMAX]; + long int timestart, timestop; + float evts[fNpns + 1][FNCHANMAX + FNPNMAX]; + double min[fNpns + 1][FNCHANMAX + FNPNMAX], max[fNpns + 1][FNCHANMAX + FNPNMAX]; + double val[fNpns + 1][FNCHANMAX + FNPNMAX], sig[fNpns + 1][FNCHANMAX + FNPNMAX]; + double wbin[fNpns + 1][FNCHANMAX + FNPNMAX]; float sumprob; - int smlocal,color,lmdir,part; + int smlocal, color, lmdir, part; void init(); - public: +public: // Default Constructor, mainly for Root TMCReader(); // Destructor: Does nothing virtual ~TMCReader(); - void validMCLaser(int,int); - void getMCLaserData(int,int); + void validMCLaser(int, int); + void getMCLaserData(int, int); void validMCPulse(int); void getMCPulseData(int); - int getSMNumb() {return smN;} - int getNbOflmodN() {return nlmodN;} - int getlmodN(int indx) {return arr[indx];} - int getstartime() {return timestart;} - int getstoptime() {return timestop;} - int getnevts(int norm) {return (int) evts[norm][0];} + int getSMNumb() { return smN; } + int getNbOflmodN() { return nlmodN; } + int getlmodN(int indx) { return arr[indx]; } + int getstartime() { return timestart; } + int getstoptime() { return timestop; } + int getnevts(int norm) { return (int)evts[norm][0]; } - void setsmlocal(int sm) {smlocal=sm;} - void setcolor(int c) {color=c;} - void setdirlmodN(int lmp) {lmdir=lmp;} - void setpartition(int p) {part=p;} + void setsmlocal(int sm) { smlocal = sm; } + void setcolor(int c) { color = c; } + void setdirlmodN(int lmp) { lmdir = lmp; } + void setpartition(int p) { part = p; } - void changedatatoraw(int,int,int); - void changedatatopeak(int,int,int); - - void printeinjData(int,int,int); - void printlaserData(int,int,int,int); - void printlaserpeak(int,int,int); - void printnormlaserData(int,int,int,int,int); - void printnormlaserpeak(int,int,int,int); + void changedatatoraw(int, int, int); + void changedatatopeak(int, int, int); + void printeinjData(int, int, int); + void printlaserData(int, int, int, int); + void printlaserpeak(int, int, int); + void printnormlaserData(int, int, int, int, int); + void printnormlaserpeak(int, int, int, int); // ClassDef(TMCReader,1) }; #endif - - - diff --git a/CalibCalorimetry/EcalLaserAnalyzer/interface/TMConfig.h b/CalibCalorimetry/EcalLaserAnalyzer/interface/TMConfig.h index 7cc110071d3ff..3a56395a9ace3 100644 --- a/CalibCalorimetry/EcalLaserAnalyzer/interface/TMConfig.h +++ b/CalibCalorimetry/EcalLaserAnalyzer/interface/TMConfig.h @@ -3,32 +3,31 @@ #include "TObject.h" -#define fNsmNmax 36 //number of SM -#define fNlmodN 9 //number of lmodN in a SM -#define fNmem 10 //number of PNs in a MEM -#define fNmodN 4 //number of modN in a SM -#define fNtt 68 //number of trigger towers in a SM -#define fNmax 8 -#define fNburmax 3 -#define fNseqmax 3 -#define fNcolors 6 //number of laser colors - -class TMConfig: public TObject -{ - - private: +class TMConfig : public TObject { +public: + static constexpr unsigned int fNsmNmax = 36; //number of SM + static constexpr unsigned int fNlmodN = 9; //number of lmodN in a SM + static constexpr unsigned int fNmem = 10; //number of PNs in a MEM + static constexpr unsigned int fNmodN = 4; //number of modN in a SM + static constexpr unsigned int fNtt = 68; //number of trigger towers in a SM + static constexpr unsigned int fNmax = 8; + static constexpr unsigned int fNburmax = 3; + static constexpr unsigned int fNseqmax = 3; + static constexpr unsigned int fNcolors = 6; //number of laser colors + +private: int smin; - int arr[fNsmNmax+1][fNmodN+1]; - int nbof[fNsmNmax+1][fNlmodN+1]; - int towerlist[fNsmNmax+1][fNlmodN][fNmax+1]; - int channlist[fNsmNmax+1][fNlmodN][fNmax+1]; - int addrpn[fNsmNmax+1][fNmodN+1][fNmem]; - int n_pin[fNsmNmax+1][fNmodN+1]; - int seqTypeOfSignal[fNseqmax+1],numbOfEventperBurstAndSignal[fNseqmax+1]; - int numbOfBurstperSignal[fNseqmax+1]; - int ped_size[fNburmax+1],laser_size[fNcolors][fNseqmax+1]; - double alpha[fNcolors],beta[fNcolors]; - double alpha_run[fNcolors][fNsmNmax+1][fNtt],beta_run[fNcolors][fNsmNmax+1][fNtt]; + int arr[fNsmNmax + 1][fNmodN + 1]; + int nbof[fNsmNmax + 1][fNlmodN + 1]; + int towerlist[fNsmNmax + 1][fNlmodN][fNmax + 1]; + int channlist[fNsmNmax + 1][fNlmodN][fNmax + 1]; + int addrpn[fNsmNmax + 1][fNmodN + 1][fNmem]; + int n_pin[fNsmNmax + 1][fNmodN + 1]; + int seqTypeOfSignal[fNseqmax + 1], numbOfEventperBurstAndSignal[fNseqmax + 1]; + int numbOfBurstperSignal[fNseqmax + 1]; + int ped_size[fNburmax + 1], laser_size[fNcolors][fNseqmax + 1]; + double alpha[fNcolors], beta[fNcolors]; + double alpha_run[fNcolors][fNsmNmax + 1][fNtt], beta_run[fNcolors][fNsmNmax + 1][fNtt]; void init(); void readSequenzaConfig(); @@ -46,63 +45,62 @@ class TMConfig: public TObject double alpha_start, beta_start; int firstpnSample, lastpnSample; - int nbofiter,nbofpresamp,samplemin,samplemax; + int nbofiter, nbofpresamp, samplemin, samplemax; int nbofpnpresamp, nbofpnsamp, nbofsamp; - int nbofmtqsamples,nbofmtqpresamp,vlastmtqsample,nbofmtqsigmas; - int nbofmtqsamp1esbeforemax_parab,nbofmtqsamplesaftermax_parab; - int thres_mtq,ampllow_trise,amplhigh_trise; + int nbofmtqsamples, nbofmtqpresamp, vlastmtqsample, nbofmtqsigmas; + int nbofmtqsamp1esbeforemax_parab, nbofmtqsamplesaftermax_parab; + int thres_mtq, ampllow_trise, amplhigh_trise; - public: +public: // Default Constructor, mainly for Root TMConfig(); // Destructor: Does nothing virtual ~TMConfig(); - int getfirstSM() {return smin;} - int getfirstSample() {return firstSample;} - int getlastSample() {return lastSample;} - int getfirstPNSample() {return firstpnSample;} - int getlastPNSample() {return lastpnSample;} - float getalpha0() {return alpha_start;} - float getbeta0() {return beta_start;} - int getsampleMin() {return samplemin;} - int getsampleMax() {return samplemax;} - int getNbOfxtalpresamples() {return nbofpresamp;} - int getNbOfPNpresamples() {return nbofpnpresamp;} - int getNbOfiterations() {return nbofiter;} - int getNbOfPNsamples() { return nbofpnsamp;} - int getNbOfxtalsamples() { return nbofsamp;} - double getalpha_ls(int c) { return alpha[c];} - double getbeta_ls(int c) { return beta[c];} + int getfirstSM() { return smin; } + int getfirstSample() { return firstSample; } + int getlastSample() { return lastSample; } + int getfirstPNSample() { return firstpnSample; } + int getlastPNSample() { return lastpnSample; } + float getalpha0() { return alpha_start; } + float getbeta0() { return beta_start; } + int getsampleMin() { return samplemin; } + int getsampleMax() { return samplemax; } + int getNbOfxtalpresamples() { return nbofpresamp; } + int getNbOfPNpresamples() { return nbofpnpresamp; } + int getNbOfiterations() { return nbofiter; } + int getNbOfPNsamples() { return nbofpnsamp; } + int getNbOfxtalsamples() { return nbofsamp; } + double getalpha_ls(int c) { return alpha[c]; } + double getbeta_ls(int c) { return beta[c]; } void loadPParams(); - double getalpha_run(int,int,int); - double getbeta_run(int,int,int); - - int getNbOf(int,int); - int getTNumb(int,int,int); - int getXNumb(int,int,int); - int getPNaddr(int,int,int); - int getNbOfPNs(int,int); - - int getNbOfMatacqsamples() {return nbofmtqsamples;} - int getNbOfMatacqpresamples() {return nbofmtqpresamp;} - int getvlastMatacqsample() {return vlastmtqsample;} - int getNoiseCutForMatacq() {return nbofmtqsigmas;} - int getNbOfsamplesBefMax() {return nbofmtqsamp1esbeforemax_parab;} - int getNbOfsamplesAftMax() {return nbofmtqsamplesaftermax_parab;} - int getThresForMatacq() {return thres_mtq;} - int getLowLevelForTRise() {return ampllow_trise;} - int getHighLevelForTRise() {return amplhigh_trise;} - - int getSignalTypeForSeq(int seqNumb) { return seqTypeOfSignal[seqNumb];} - int getNbOfBurstperSignalForSeq(int seqNumb) { return numbOfBurstperSignal[seqNumb];} - int getNbOfEventperBurstAndSignalForSeq(int seqNumb) { return numbOfEventperBurstAndSignal[seqNumb];} + double getalpha_run(int, int, int); + double getbeta_run(int, int, int); + + int getNbOf(int, int); + int getTNumb(int, int, int); + int getXNumb(int, int, int); + int getPNaddr(int, int, int); + int getNbOfPNs(int, int); + + int getNbOfMatacqsamples() { return nbofmtqsamples; } + int getNbOfMatacqpresamples() { return nbofmtqpresamp; } + int getvlastMatacqsample() { return vlastmtqsample; } + int getNoiseCutForMatacq() { return nbofmtqsigmas; } + int getNbOfsamplesBefMax() { return nbofmtqsamp1esbeforemax_parab; } + int getNbOfsamplesAftMax() { return nbofmtqsamplesaftermax_parab; } + int getThresForMatacq() { return thres_mtq; } + int getLowLevelForTRise() { return ampllow_trise; } + int getHighLevelForTRise() { return amplhigh_trise; } + + int getSignalTypeForSeq(int seqNumb) { return seqTypeOfSignal[seqNumb]; } + int getNbOfBurstperSignalForSeq(int seqNumb) { return numbOfBurstperSignal[seqNumb]; } + int getNbOfEventperBurstAndSignalForSeq(int seqNumb) { return numbOfEventperBurstAndSignal[seqNumb]; } // ClassDef(TMConfig,1) }; #endif - diff --git a/CalibCalorimetry/EcalLaserAnalyzer/interface/TMEGeom.h b/CalibCalorimetry/EcalLaserAnalyzer/interface/TMEGeom.h index fb27a0413fc63..c2ed19c2daf0c 100644 --- a/CalibCalorimetry/EcalLaserAnalyzer/interface/TMEGeom.h +++ b/CalibCalorimetry/EcalLaserAnalyzer/interface/TMEGeom.h @@ -3,62 +3,59 @@ #include "TObject.h" -#define nTT 25 +class TMEGeom : public TObject { +public: + static constexpr unsigned int nTT = 25; -class TMEGeom: public TObject -{ +private: + int ttindarr[5][5]; - private: - - int ttindarr[5][5]; - - - public: +public: // Default Constructor, mainly for Root TMEGeom(); // Destructor: Does nothing virtual ~TMEGeom(); -int nbOfXTalinmodN(int); -int nbOfXTalinlmodN(int); - -int xtaltoadcn(int); -int adcltoxtal(int,int); -int adcltoadcn(int,int); -int adcltotNumb(int,int); -int adcmtoadcn(int,int); -int adcmtoadcl(int,int,int); -int adcntoadcm(int); -int adcntomodN(int); -int adcntolmodN(int,int); -int adcntoxtal(int); -int tNumbtomodN(int); -int tNumbtomodulN(int); -int tNumbtolmodN(int); -int tNumbtoside(int); -int lmodNtoside(int); -int lmodNtomodN(int); -int lmodNtolmcha(int); - -int modN_offset(int); -int lmodN_offset(int); - -int adcntoij(int); -int adcltoij(int,int); -int ijtoadcn(int,int); -int ijtoadcl(int,int,int); - -int tNumbtolvcha(int); -int tNumbtohvcha(int); -int adcltolvcha(int,int); -int adcltohvcha(int,int); - -int hvchatolvcha(int); - -void tNumbtoij(int); - -// ClassDef(TMEGeom,1) + int nbOfXTalinmodN(int); + int nbOfXTalinlmodN(int); + + int xtaltoadcn(int); + int adcltoxtal(int, int); + int adcltoadcn(int, int); + int adcltotNumb(int, int); + int adcmtoadcn(int, int); + int adcmtoadcl(int, int, int); + int adcntoadcm(int); + int adcntomodN(int); + int adcntolmodN(int, int); + int adcntoxtal(int); + int tNumbtomodN(int); + int tNumbtomodulN(int); + int tNumbtolmodN(int); + int tNumbtoside(int); + int lmodNtoside(int); + int lmodNtomodN(int); + int lmodNtolmcha(int); + + int modN_offset(int); + int lmodN_offset(int); + + int adcntoij(int); + int adcltoij(int, int); + int ijtoadcn(int, int); + int ijtoadcl(int, int, int); + + int tNumbtolvcha(int); + int tNumbtohvcha(int); + int adcltolvcha(int, int); + int adcltohvcha(int, int); + + int hvchatolvcha(int); + + void tNumbtoij(int); + + // ClassDef(TMEGeom,1) }; #endif diff --git a/CalibCalorimetry/EcalLaserAnalyzer/interface/TMatacq.h b/CalibCalorimetry/EcalLaserAnalyzer/interface/TMatacq.h index 7241e9631b9ae..f1a8111388643 100644 --- a/CalibCalorimetry/EcalLaserAnalyzer/interface/TMatacq.h +++ b/CalibCalorimetry/EcalLaserAnalyzer/interface/TMatacq.h @@ -3,10 +3,11 @@ #include "TObject.h" -#define NMAXSAMP 100 -#define NSPARAB 16 - class TMatacq : public TObject { +public: + static constexpr int NMAXSAMP = 100; + static constexpr int NSPARAB = 16; + private: int fNsamples; int fNum_samp_bef_max; diff --git a/CalibCalorimetry/EcalLaserAnalyzer/interface/TPEDestalAnalysis.h b/CalibCalorimetry/EcalLaserAnalyzer/interface/TPEDestalAnalysis.h index cafa6a2ea3231..abcf8f656c8d3 100644 --- a/CalibCalorimetry/EcalLaserAnalyzer/interface/TPEDestalAnalysis.h +++ b/CalibCalorimetry/EcalLaserAnalyzer/interface/TPEDestalAnalysis.h @@ -3,28 +3,26 @@ #include "TObject.h" -#define fNpns 2 -#define fNchans 400 -#define ngains 3 - -class TPEDestalAnalysis: public TObject -{ - - private: +class TPEDestalAnalysis : public TObject { +public: + static constexpr unsigned int fNpns = 2; + static constexpr unsigned int fNchans = 400; + static constexpr unsigned int ngains = 3; +private: int nevt; - long int timestart[ngains],timestop[ngains]; - long int pntimestart[ngains],pntimestop[ngains]; - double valhf[ngains][fNchans+fNpns],sighf[ngains][fNchans+fNpns]; - double valbf[ngains][fNchans+fNpns],sigbf[ngains][fNchans+fNpns]; - double evts[ngains][fNchans+fNpns],evtn[ngains][fNchans+fNpns]; + long int timestart[ngains], timestop[ngains]; + long int pntimestart[ngains], pntimestop[ngains]; + double valhf[ngains][fNchans + fNpns], sighf[ngains][fNchans + fNpns]; + double valbf[ngains][fNchans + fNpns], sigbf[ngains][fNchans + fNpns]; + double evts[ngains][fNchans + fNpns], evtn[ngains][fNchans + fNpns]; - double cuthflow[ngains][fNchans+fNpns],cuthfhig[ngains][fNchans+fNpns]; - double cutbflow[ngains][fNchans+fNpns],cutbfhig[ngains][fNchans+fNpns]; + double cuthflow[ngains][fNchans + fNpns], cuthfhig[ngains][fNchans + fNpns]; + double cutbflow[ngains][fNchans + fNpns], cutbfhig[ngains][fNchans + fNpns]; void init(); - public: +public: // Default Constructor, mainly for Root TPEDestalAnalysis(); @@ -33,18 +31,18 @@ class TPEDestalAnalysis: public TObject void reinit(); void reinit(int); - void putDateStart(int,long int); - void putDateStop(int,long int); - void putpnDateStart(int,long int); - void putpnDateStop(int,long int); + void putDateStart(int, long int); + void putDateStop(int, long int); + void putpnDateStart(int, long int); + void putpnDateStop(int, long int); void getDateStart(int); void getDateStop(int); - double getCuthflow(int g,int i) {return cuthflow[g][i];} - double getCutbfhig(int g,int i) {return cutbfhig[g][i];} - void putValues(int,int,double,double,double); - void putValuesWithCuts(int,int,double,double,double); - void computepedestalcuts(int,int,int,int); - void printpedestalData(int,int,int,int,int,int); + double getCuthflow(int g, int i) { return cuthflow[g][i]; } + double getCutbfhig(int g, int i) { return cutbfhig[g][i]; } + void putValues(int, int, double, double, double); + void putValuesWithCuts(int, int, double, double, double); + void computepedestalcuts(int, int, int, int); + void printpedestalData(int, int, int, int, int, int); // ClassDef(TPEDestalAnalysis,1) }; diff --git a/CalibCalorimetry/EcalLaserAnalyzer/interface/TPNFit.h b/CalibCalorimetry/EcalLaserAnalyzer/interface/TPNFit.h index 15b1d3552b75b..7e768f8b5fde8 100644 --- a/CalibCalorimetry/EcalLaserAnalyzer/interface/TPNFit.h +++ b/CalibCalorimetry/EcalLaserAnalyzer/interface/TPNFit.h @@ -3,9 +3,10 @@ #include "TObject.h" -#define NMAXSAMP2 50 - class TPNFit : public TObject { +public: + static constexpr int NMAXSAMP2 = 50; + private: int fNsamples; int fNum_samp_bef_max; diff --git a/CalibCalorimetry/EcalLaserAnalyzer/interface/TSFit.h b/CalibCalorimetry/EcalLaserAnalyzer/interface/TSFit.h index 2e8d1414d4b02..b88aa72943ffb 100644 --- a/CalibCalorimetry/EcalLaserAnalyzer/interface/TSFit.h +++ b/CalibCalorimetry/EcalLaserAnalyzer/interface/TSFit.h @@ -1,18 +1,17 @@ #ifndef TSFit_H #define TSFit_H -#define SDIM 14 /* default number of samples for cristal */ -#define PLSHDIM 650 /* default size of the pulse shape array */ -//these 2 last parameters are overwritten in constructor - -#define matdim 5 /* parameters fit max matrice size */ -#define diminpar 10 -#define dimoutpar 10 -#define npar_moni 4 - #include "TObject.h" class TSFit : public TObject { +public: + static constexpr unsigned int SDIM = 14; /* default number of samples for cristal */ + static constexpr unsigned int PLSHDIM = 650; /* default size of the pulse shape array */ + static constexpr int matdim = 5; /* parameters fit max matrice size */ + static constexpr unsigned int diminpar = 10; + static constexpr unsigned int dimoutpar = 10; + static constexpr unsigned int npar_moni = 4; + private: /* nbs = nb of samples in sample data array[sdim] nbs<=sdim diff --git a/CalibCalorimetry/EcalLaserAnalyzer/interface/TShapeAnalysis.h b/CalibCalorimetry/EcalLaserAnalyzer/interface/TShapeAnalysis.h index ea4447c345448..d193184207451 100644 --- a/CalibCalorimetry/EcalLaserAnalyzer/interface/TShapeAnalysis.h +++ b/CalibCalorimetry/EcalLaserAnalyzer/interface/TShapeAnalysis.h @@ -5,9 +5,10 @@ #include class TTree; -#define fNchsel 1700 - class TShapeAnalysis : public TObject { +public: + static constexpr int fNchsel = 1700; + private: char filename[80]; long int timestart, timestop; diff --git a/CalibCalorimetry/EcalTPGTools/interface/EcalReadoutTools.h b/CalibCalorimetry/EcalTPGTools/interface/EcalReadoutTools.h index 854539eb90523..9c839995352ff 100644 --- a/CalibCalorimetry/EcalTPGTools/interface/EcalReadoutTools.h +++ b/CalibCalorimetry/EcalTPGTools/interface/EcalReadoutTools.h @@ -3,8 +3,7 @@ #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/ESHandle.h" - +#include "FWCore/Framework/interface/ConsumesCollector.h" #include "Geometry/Records/interface/IdealGeometryRecord.h" #include "Geometry/CaloTopology/interface/EcalTrigTowerConstituentsMap.h" #include "Geometry/EcalMapping/interface/EcalElectronicsMapping.h" @@ -16,7 +15,14 @@ class EcalReadoutTools { const EcalElectronicsMapping* elecMap_; public: - EcalReadoutTools(const edm::Event& iEvent, const edm::EventSetup& iSetup); + struct ESGetTokens { + ESGetTokens(const edm::ParameterSet&, edm::ConsumesCollector&& iC) + : ecalTrigTowerConstituentsMapToken{iC.esConsumes()}, ecalElectronicsMappingToken{iC.esConsumes()} {} + edm::ESGetToken const ecalTrigTowerConstituentsMapToken; + edm::ESGetToken const ecalElectronicsMappingToken; + }; + + EcalReadoutTools(const edm::Event&, const edm::EventSetup&, const ESGetTokens&); EcalReadoutTools(const EcalReadoutTools&) = delete; EcalReadoutTools& operator=(const EcalReadoutTools&) = delete; diff --git a/CalibCalorimetry/EcalTPGTools/plugins/EcalTPGDBCopy.cc b/CalibCalorimetry/EcalTPGTools/plugins/EcalTPGDBCopy.cc index 9b9ab4f45a1d8..836148ae531dc 100644 --- a/CalibCalorimetry/EcalTPGTools/plugins/EcalTPGDBCopy.cc +++ b/CalibCalorimetry/EcalTPGTools/plugins/EcalTPGDBCopy.cc @@ -15,6 +15,9 @@ #include "CondFormats/EcalObjects/interface/EcalTPGLutIdMap.h" #include "CondFormats/EcalObjects/interface/EcalTPGWeightIdMap.h" #include "CondFormats/EcalObjects/interface/EcalTPGWeightGroup.h" +#include "CondFormats/EcalObjects/interface/EcalTPGOddWeightIdMap.h" +#include "CondFormats/EcalObjects/interface/EcalTPGOddWeightGroup.h" +#include "CondFormats/EcalObjects/interface/EcalTPGTPMode.h" #include "CondFormats/EcalObjects/interface/EcalTPGLutGroup.h" #include "CondFormats/EcalObjects/interface/EcalTPGFineGrainEBGroup.h" #include "CondFormats/EcalObjects/interface/EcalTPGPhysicsConst.h" @@ -32,6 +35,9 @@ #include "CondFormats/DataRecord/interface/EcalTPGLutIdMapRcd.h" #include "CondFormats/DataRecord/interface/EcalTPGWeightIdMapRcd.h" #include "CondFormats/DataRecord/interface/EcalTPGWeightGroupRcd.h" +#include "CondFormats/DataRecord/interface/EcalTPGOddWeightIdMapRcd.h" +#include "CondFormats/DataRecord/interface/EcalTPGOddWeightGroupRcd.h" +#include "CondFormats/DataRecord/interface/EcalTPGTPModeRcd.h" #include "CondFormats/DataRecord/interface/EcalTPGLutGroupRcd.h" #include "CondFormats/DataRecord/interface/EcalTPGFineGrainEBGroupRcd.h" #include "CondFormats/DataRecord/interface/EcalTPGPhysicsConstRcd.h" @@ -95,6 +101,12 @@ bool EcalTPGDBCopy::shouldCopy(const edm::EventSetup& evtSetup, std::string cont cacheID = evtSetup.get().cacheIdentifier(); } else if (container == "EcalTPGWeightGroup") { cacheID = evtSetup.get().cacheIdentifier(); + } else if (container == "EcalTPGOddWeightIdMap") { + cacheID = evtSetup.get().cacheIdentifier(); + } else if (container == "EcalTPGOddWeightGroup") { + cacheID = evtSetup.get().cacheIdentifier(); + } else if (container == "EcalTPGTPMode") { + cacheID = evtSetup.get().cacheIdentifier(); } else if (container == "EcalTPGLutGroup") { cacheID = evtSetup.get().cacheIdentifier(); } else if (container == "EcalTPGFineGrainEBGroup") { @@ -194,6 +206,27 @@ void EcalTPGDBCopy::copyToDB(const edm::EventSetup& evtSetup, std::string contai dbOutput->createNewIOV( new EcalTPGWeightGroup(*obj), dbOutput->beginOfTime(), dbOutput->endOfTime(), recordName); + } else if (container == "EcalTPGOddWeightIdMap") { + edm::ESHandle handle; + evtSetup.get().get(handle); + const EcalTPGOddWeightIdMap* obj = handle.product(); + dbOutput->createNewIOV( + new EcalTPGOddWeightIdMap(*obj), dbOutput->beginOfTime(), dbOutput->endOfTime(), recordName); + + } else if (container == "EcalTPGOddWeightGroup") { + edm::ESHandle handle; + evtSetup.get().get(handle); + const EcalTPGOddWeightGroup* obj = handle.product(); + dbOutput->createNewIOV( + new EcalTPGOddWeightGroup(*obj), dbOutput->beginOfTime(), dbOutput->endOfTime(), recordName); + + } else if (container == "EcalTPGTPMode") { + edm::ESHandle handle; + evtSetup.get().get(handle); + const EcalTPGTPMode* obj = handle.product(); + dbOutput->createNewIOV( + new EcalTPGTPMode(*obj), dbOutput->beginOfTime(), dbOutput->endOfTime(), recordName); + } else if (container == "EcalTPGLutGroup") { edm::ESHandle handle; evtSetup.get().get(handle); diff --git a/CalibCalorimetry/EcalTPGTools/plugins/EcalTPGParamBuilder.cc b/CalibCalorimetry/EcalTPGTools/plugins/EcalTPGParamBuilder.cc index 9409777c5a677..789682fb420e5 100644 --- a/CalibCalorimetry/EcalTPGTools/plugins/EcalTPGParamBuilder.cc +++ b/CalibCalorimetry/EcalTPGTools/plugins/EcalTPGParamBuilder.cc @@ -1,6 +1,5 @@ #include "EcalTPGParamBuilder.h" - -#include "CalibCalorimetry/EcalTPGTools/plugins/EcalTPGDBApp.h" +#include "EcalTPGDBApp.h" #include "Geometry/CaloGeometry/interface/CaloGeometry.h" #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h" @@ -30,18 +29,15 @@ #include "SimCalorimetry/EcalSimAlgos/interface/EBShape.h" #include "SimCalorimetry/EcalSimAlgos/interface/EEShape.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" -#include -#include -#include -#include -#include #include #include #include #include +#include #include #include +#include using namespace std; @@ -381,11 +377,11 @@ int EcalTPGParamBuilder::getEtaSlice(int tccId, int towerInTCC) { else { if (tccId >= 1 && tccId <= 18) etaSlice += 21; // inner - - if (tccId >= 19 && tccId <= 36) + else if (tccId >= 19 && tccId <= 36) etaSlice += 17; // outer - - if (tccId >= 91 && tccId <= 108) + else if (tccId >= 91 && tccId <= 108) etaSlice += 21; // inner + - if (tccId >= 73 && tccId <= 90) + else if (tccId >= 73 && tccId <= 90) etaSlice += 17; // outer + } return etaSlice; @@ -1109,13 +1105,11 @@ void EcalTPGParamBuilder::analyze(const edm::Event& evt, const edm::EventSetup& pedDB.setPedMeanG12(itLin->second.pedestal_[i]); linDB.setMultX12(itLin->second.mult_[i]); linDB.setShift12(itLin->second.shift_[i]); - } - if (i == 1) { + } else if (i == 1) { pedDB.setPedMeanG6(itLin->second.pedestal_[i]); linDB.setMultX6(itLin->second.mult_[i]); linDB.setShift6(itLin->second.shift_[i]); - } - if (i == 2) { + } else if (i == 2) { pedDB.setPedMeanG1(itLin->second.pedestal_[i]); linDB.setMultX1(itLin->second.mult_[i]); linDB.setShift1(itLin->second.shift_[i]); @@ -1134,6 +1128,7 @@ void EcalTPGParamBuilder::analyze(const edm::Event& evt, const edm::EventSetup& // general case linStruc lin; int forceBase12 = 0; + double invSinTheta = 1. / sin(theta); for (int i = 0; i < 3; i++) { int mult, shift; bool ok = computeLinearizerParam(theta, coeff.gainRatio_[i], coeff.calibCoeff_, "EB", mult, shift); @@ -1149,12 +1144,10 @@ void EcalTPGParamBuilder::analyze(const edm::Event& evt, const edm::EventSetup& // if (i==2) {mult = 0xc0 ; shift = 0x0 ;} // } //PP end - double base = coeff.pedestals_[i]; if (forcedPedestalValue_ == -3 && i == 0) { double G = mult * pow(2.0, -(shift + 2)); - double g = G / sin(theta); - // int pedestal = coeff.pedestals_[i] ; - base = double(coeff.pedestals_[i]) - pedestal_offset_ / g; + double g = G * invSinTheta; + double base = double(coeff.pedestals_[i]) - pedestal_offset_ / g; if (base < 0.) base = 0; forceBase12 = int(base); @@ -1175,7 +1168,7 @@ void EcalTPGParamBuilder::analyze(const edm::Event& evt, const edm::EventSetup& bool ok(true); if (forcedPedestalValue_ == -2) ok = realignBaseline(lin, 0); - if (forcedPedestalValue_ == -3) + else if (forcedPedestalValue_ == -3) ok = realignBaseline(lin, forceBase12); if (!ok) ss << "SM=" << id.ism() << " xt=" << id.ic() << " " << dec << id.rawId() << "\n"; @@ -1189,13 +1182,11 @@ void EcalTPGParamBuilder::analyze(const edm::Event& evt, const edm::EventSetup& pedDB.setPedMeanG12(lin.pedestal_[i]); linDB.setMultX12(lin.mult_[i]); linDB.setShift12(lin.shift_[i]); - } - if (i == 1) { + } else if (i == 1) { pedDB.setPedMeanG6(lin.pedestal_[i]); linDB.setMultX6(lin.mult_[i]); linDB.setShift6(lin.shift_[i]); - } - if (i == 2) { + } else if (i == 2) { pedDB.setPedMeanG1(lin.pedestal_[i]); linDB.setMultX1(lin.mult_[i]); linDB.setShift1(lin.shift_[i]); @@ -1209,7 +1200,7 @@ void EcalTPGParamBuilder::analyze(const edm::Event& evt, const edm::EventSetup& factor); } double G = lin.mult_[i] * pow(2.0, -(lin.shift_[i] + 2)); - double g = G / sin(theta); + double g = G * invSinTheta; float val[] = {float(i), float(theta), float(G), @@ -1454,13 +1445,11 @@ void EcalTPGParamBuilder::analyze(const edm::Event& evt, const edm::EventSetup& pedDB.setPedMeanG12(itLin->second.pedestal_[i]); linDB.setMultX12(itLin->second.mult_[i]); linDB.setShift12(itLin->second.shift_[i]); - } - if (i == 1) { + } else if (i == 1) { pedDB.setPedMeanG6(itLin->second.pedestal_[i]); linDB.setMultX6(itLin->second.mult_[i]); linDB.setShift6(itLin->second.shift_[i]); - } - if (i == 2) { + } else if (i == 2) { pedDB.setPedMeanG1(itLin->second.pedestal_[i]); linDB.setMultX1(itLin->second.mult_[i]); linDB.setShift1(itLin->second.shift_[i]); @@ -1508,13 +1497,11 @@ void EcalTPGParamBuilder::analyze(const edm::Event& evt, const edm::EventSetup& pedDB.setPedMeanG12(lin.pedestal_[i]); linDB.setMultX12(lin.mult_[i]); linDB.setShift12(lin.shift_[i]); - } - if (i == 1) { + } else if (i == 1) { pedDB.setPedMeanG6(lin.pedestal_[i]); linDB.setMultX6(lin.mult_[i]); linDB.setShift6(lin.shift_[i]); - } - if (i == 2) { + } else if (i == 2) { pedDB.setPedMeanG1(lin.pedestal_[i]); linDB.setMultX1(lin.mult_[i]); linDB.setShift1(lin.shift_[i]); diff --git a/CalibCalorimetry/EcalTPGTools/src/EcalReadoutTools.cc b/CalibCalorimetry/EcalTPGTools/src/EcalReadoutTools.cc index 882f9ee467d9b..b6d3f8d879194 100644 --- a/CalibCalorimetry/EcalTPGTools/src/EcalReadoutTools.cc +++ b/CalibCalorimetry/EcalTPGTools/src/EcalReadoutTools.cc @@ -1,13 +1,8 @@ #include "CalibCalorimetry/EcalTPGTools/interface/EcalReadoutTools.h" -EcalReadoutTools::EcalReadoutTools(const edm::Event& iEvent, const edm::EventSetup& iSetup) { - edm::ESHandle hTriggerTowerMap; - iSetup.get().get(hTriggerTowerMap); - triggerTowerMap_ = hTriggerTowerMap.product(); - - edm::ESHandle ecalmapping; - iSetup.get().get(ecalmapping); - elecMap_ = ecalmapping.product(); +EcalReadoutTools::EcalReadoutTools(const edm::Event&, const edm::EventSetup& iSetup, const ESGetTokens& esGetTokens) { + triggerTowerMap_ = &iSetup.getData(esGetTokens.ecalTrigTowerConstituentsMapToken); + elecMap_ = &iSetup.getData(esGetTokens.ecalElectronicsMappingToken); } EcalTrigTowerDetId EcalReadoutTools::readOutUnitOf(const EBDetId& xtalId) const { diff --git a/CalibCalorimetry/HcalTPGAlgos/interface/HcaluLUTTPGCoder.h b/CalibCalorimetry/HcalTPGAlgos/interface/HcaluLUTTPGCoder.h index 37442ec1a50bc..99133ebc7d479 100644 --- a/CalibCalorimetry/HcalTPGAlgos/interface/HcaluLUTTPGCoder.h +++ b/CalibCalorimetry/HcalTPGAlgos/interface/HcaluLUTTPGCoder.h @@ -69,6 +69,12 @@ class HcaluLUTTPGCoder : public HcalTPGCoder { void set1TSContainHE(bool contain1TSHE) { contain1TSHE_ = contain1TSHE; } void setContainPhaseHB(double containPhaseNSHB) { containPhaseNSHB_ = containPhaseNSHB; } void setContainPhaseHE(double containPhaseNSHE) { containPhaseNSHE_ = containPhaseNSHE; } + void setOverrideDBweightsAndFilterHB(bool overrideDBweightsAndFilterHB) { + overrideDBweightsAndFilterHB_ = overrideDBweightsAndFilterHB; + } + void setOverrideDBweightsAndFilterHE(bool overrideDBweightsAndFilterHE) { + overrideDBweightsAndFilterHE_ = overrideDBweightsAndFilterHE; + } void lookupMSB(const HBHEDataFrame& df, std::vector& msb) const; void lookupMSB(const QIE10DataFrame& df, std::vector>& msb) const; void lookupMSB(const QIE11DataFrame& df, std::vector>& msb) const; @@ -114,9 +120,12 @@ class HcaluLUTTPGCoder : public HcalTPGCoder { double cosh_ieta_28_HE_low_depths_, cosh_ieta_28_HE_high_depths_, cosh_ieta_29_HE_; bool allLinear_; bool contain1TSHB_, contain1TSHE_; - double containPhaseNSHB_, containPhaseNSHE_; + double containPhaseNSHB_ = 6.0; + double containPhaseNSHE_ = 6.0; double linearLSB_QIE8_, linearLSB_QIE11_, linearLSB_QIE11Overlap_; std::unique_ptr pulseCorr_; + bool overrideDBweightsAndFilterHB_ = false; + bool overrideDBweightsAndFilterHE_ = false; }; #endif diff --git a/CalibCalorimetry/HcalTPGAlgos/interface/LutXml.h b/CalibCalorimetry/HcalTPGAlgos/interface/LutXml.h index ce3fc90e5c448..76e2a72b424d9 100644 --- a/CalibCalorimetry/HcalTPGAlgos/interface/LutXml.h +++ b/CalibCalorimetry/HcalTPGAlgos/interface/LutXml.h @@ -35,6 +35,7 @@ class LutXml : public XMLDOMBlock { std::string formatrevision; std::string targetfirmware; int generalizedindex; + int weight; std::vector lut; std::vector mask; } Config; diff --git a/CalibCalorimetry/HcalTPGAlgos/src/HcaluLUTTPGCoder.cc b/CalibCalorimetry/HcalTPGAlgos/src/HcaluLUTTPGCoder.cc index b1b3a490bff48..d6aadc9312574 100644 --- a/CalibCalorimetry/HcalTPGAlgos/src/HcaluLUTTPGCoder.cc +++ b/CalibCalorimetry/HcalTPGAlgos/src/HcaluLUTTPGCoder.cc @@ -337,6 +337,43 @@ void HcaluLUTTPGCoder::update(const HcalDbService& conditions) { make_cosh_ieta_map(); + // Here we will determine if we are using new version of TPs (1TS) + // i.e. are we using a new pulse filter scheme. + const HcalElectronicsMap* emap = conditions.getHcalMapping(); + + int lastHBRing = topo_->lastHBRing(); + int lastHERing = topo_->lastHERing(); + + // First, determine if we should configure for the filter scheme + // Check the tp version to make this determination + bool foundHB = false; + bool foundHE = false; + bool newHBtp = false; + bool newHEtp = false; + std::vector vIds = emap->allElectronicsIdTrigger(); + for (std::vector::const_iterator eId = vIds.begin(); eId != vIds.end(); eId++) { + // The first HB or HE id is enough to tell whether to use new scheme in HB or HE + if (foundHB and foundHE) + break; + + HcalTrigTowerDetId hcalTTDetId(emap->lookupTrigger(*eId)); + if (hcalTTDetId.null()) + continue; + + int aieta = abs(hcalTTDetId.ieta()); + int tp_version = hcalTTDetId.version(); + + if (aieta <= lastHBRing) { + foundHB = true; + if (tp_version > 1) + newHBtp = true; + } else if (aieta > lastHBRing and aieta < lastHERing) { + foundHE = true; + if (tp_version > 1) + newHEtp = true; + } + } + for (const auto& id : metadata->getAllChannels()) { if (not(id.det() == DetId::Hcal and topo_->valid(id))) continue; @@ -419,11 +456,10 @@ void HcaluLUTTPGCoder::update(const HcalDbService& conditions) { double correctionPhaseNS = conditions.getHcalRecoParam(cell)->correctionPhaseNS(); - // When containPhaseNS is not -999.0, and for QIE11 only, override from configuration if (qieType == QIE11) { - if (containPhaseNSHB_ != -999.0 and cell.ietaAbs() <= topo_->lastHBRing()) + if (overrideDBweightsAndFilterHB_ and cell.ietaAbs() <= lastHBRing) correctionPhaseNS = containPhaseNSHB_; - else if (containPhaseNSHE_ != -999.0 and cell.ietaAbs() > topo_->lastHBRing()) + else if (overrideDBweightsAndFilterHE_ and cell.ietaAbs() > lastHBRing) correctionPhaseNS = containPhaseNSHE_; } for (unsigned int adc = 0; adc < SIZE; ++adc) { @@ -444,8 +480,8 @@ void HcaluLUTTPGCoder::update(const HcalDbService& conditions) { pulseCorr_->correction(cell, 2, correctionPhaseNS, correctedCharge); if (qieType == QIE11) { // When contain1TS_ is set, it should still only apply for QIE11-related things - if ((contain1TSHB_ and cell.ietaAbs() <= topo_->lastHBRing()) or - (contain1TSHE_ and cell.ietaAbs() > topo_->lastHBRing())) { + if ((((contain1TSHB_ and overrideDBweightsAndFilterHB_) or newHBtp) and cell.ietaAbs() <= lastHBRing) or + (((contain1TSHE_ and overrideDBweightsAndFilterHE_) or newHEtp) and cell.ietaAbs() > lastHBRing)) { containmentCorrection = containmentCorrection1TS; } else { containmentCorrection = containmentCorrection2TSCorrected; diff --git a/CalibCalorimetry/HcalTPGAlgos/src/LutXml.cc b/CalibCalorimetry/HcalTPGAlgos/src/LutXml.cc index bd7711ba0a442..6c61eb85580c2 100644 --- a/CalibCalorimetry/HcalTPGAlgos/src/LutXml.cc +++ b/CalibCalorimetry/HcalTPGAlgos/src/LutXml.cc @@ -49,6 +49,7 @@ LutXml::Config::_Config() { formatrevision = "default_revision"; targetfirmware = "default_revision"; generalizedindex = -1; + weight = -1; } LutXml::LutXml() : XMLDOMBlock("CFGBrickSet", 1) { init(); } @@ -111,6 +112,7 @@ void LutXml::addLut(LutXml::Config &_config, XMLDOMBlock *checksums_xml) { addParameter("LUT_TYPE", "int", _config.lut_type); addParameter("SLB", "int", _config.fiber); addParameter("SLBCHAN", "int", _config.fiberchan); + addParameter("WEIGHT", "int", _config.weight); addData(to_string(_config.lut.size()), "hex", _config.lut); } else if (_config.lut_type == 5) { // channel masks addParameter("MASK_TYPE", "string", "TRIGGERCHANMASK"); diff --git a/CalibCalorimetry/HcalTPGEventSetup/src/HcalTPGCoderULUT.cc b/CalibCalorimetry/HcalTPGEventSetup/src/HcalTPGCoderULUT.cc index 9b50b10d81f4c..8a3b32aab8d4a 100644 --- a/CalibCalorimetry/HcalTPGEventSetup/src/HcalTPGCoderULUT.cc +++ b/CalibCalorimetry/HcalTPGEventSetup/src/HcalTPGCoderULUT.cc @@ -59,6 +59,7 @@ class HcalTPGCoderULUT : public edm::ESProducer { bool read_FGLut_, read_Ascii_, read_XML_, LUTGenerationMode_, linearLUTs_; bool contain1TSHB_, contain1TSHE_; double containPhaseNSHB_, containPhaseNSHE_; + bool overrideDBweightsAndFilterHB_, overrideDBweightsAndFilterHE_; double linearLSB_QIE8_, linearLSB_QIE11Overlap_, linearLSB_QIE11_; int maskBit_; std::vector FG_HF_thresholds_; @@ -85,6 +86,8 @@ HcalTPGCoderULUT::HcalTPGCoderULUT(const edm::ParameterSet& iConfig) { contain1TSHE_ = iConfig.getParameter("contain1TSHE"); containPhaseNSHB_ = iConfig.getParameter("containPhaseNSHB"); containPhaseNSHE_ = iConfig.getParameter("containPhaseNSHE"); + overrideDBweightsAndFilterHB_ = iConfig.getParameter("overrideDBweightsAndFilterHB"); + overrideDBweightsAndFilterHE_ = iConfig.getParameter("overrideDBweightsAndFilterHE"); //the following line is needed to tell the framework what // data is being produced @@ -110,8 +113,13 @@ HcalTPGCoderULUT::HcalTPGCoderULUT(const edm::ParameterSet& iConfig) { void HcalTPGCoderULUT::buildCoder(const HcalTopology* topo, const HcalTimeSlew* delay, HcaluLUTTPGCoder* theCoder) { using namespace edm::es; theCoder->init(topo, delay); + + theCoder->setOverrideDBweightsAndFilterHB(overrideDBweightsAndFilterHB_); + theCoder->setOverrideDBweightsAndFilterHE(overrideDBweightsAndFilterHE_); + theCoder->set1TSContainHB(contain1TSHB_); theCoder->set1TSContainHE(contain1TSHE_); + theCoder->setContainPhaseHB(containPhaseNSHB_); theCoder->setContainPhaseHE(containPhaseNSHE_); diff --git a/CalibFormats/HcalObjects/interface/HcalDbService.h b/CalibFormats/HcalObjects/interface/HcalDbService.h index c981a1a88252e..a8c5f341961c4 100644 --- a/CalibFormats/HcalObjects/interface/HcalDbService.h +++ b/CalibFormats/HcalObjects/interface/HcalDbService.h @@ -57,7 +57,7 @@ class HcalDbService { const HcalQIEType* getHcalQIEType(const HcalGenericDetId& fId) const; const HcalSiPMParameter* getHcalSiPMParameter(const HcalGenericDetId& fId) const; const HcalSiPMCharacteristics* getHcalSiPMCharacteristics() const; - const HcalTPChannelParameter* getHcalTPChannelParameter(const HcalGenericDetId& fId) const; + const HcalTPChannelParameter* getHcalTPChannelParameter(const HcalGenericDetId& fId, bool throwOnFail = true) const; const HcalTPParameters* getHcalTPParameters() const; const HcalMCParam* getHcalMCParam(const HcalGenericDetId& fId) const; const HcalRecoParam* getHcalRecoParam(const HcalGenericDetId& fId) const; diff --git a/CalibFormats/HcalObjects/src/HcalDbService.cc b/CalibFormats/HcalObjects/src/HcalDbService.cc index bfd8637a346aa..59f5b4bd11c4b 100644 --- a/CalibFormats/HcalObjects/src/HcalDbService.cc +++ b/CalibFormats/HcalObjects/src/HcalDbService.cc @@ -388,9 +388,10 @@ const HcalSiPMParameter* HcalDbService::getHcalSiPMParameter(const HcalGenericDe const HcalSiPMCharacteristics* HcalDbService::getHcalSiPMCharacteristics() const { return mSiPMCharacteristics; } -const HcalTPChannelParameter* HcalDbService::getHcalTPChannelParameter(const HcalGenericDetId& fId) const { +const HcalTPChannelParameter* HcalDbService::getHcalTPChannelParameter(const HcalGenericDetId& fId, + bool throwOnFail) const { if (mTPChannelParameters) { - return mTPChannelParameters->getValues(fId); + return mTPChannelParameters->getValues(fId, throwOnFail); } return nullptr; } diff --git a/Calibration/HcalCalibAlgos/macros/CalibCorr.C b/Calibration/HcalCalibAlgos/macros/CalibCorr.C index 3483354403333..9aaae41d5662d 100644 --- a/Calibration/HcalCalibAlgos/macros/CalibCorr.C +++ b/Calibration/HcalCalibAlgos/macros/CalibCorr.C @@ -179,9 +179,9 @@ double puFactor(int type, int ieta, double pmom, double eHcal, double ediff, boo std::cout << " d2p " << d2p << ":" << DELTA_CUT << " coeff " << icor << ":" << CONST_COR_COEF[icor] << ":" << LINEAR_COR_COEF[icor] << ":" << SQUARE_COR_COEF[icor] << " Fac " << fac; } else { // 21pu - const double CONST_COR_COEF[6] = {0.98555, 0.976956, 0.976892, 0.544262, 0.447506, 0.380405}; - const double LINEAR_COR_COEF[6] = {-0.0452436, -0.140628, -0.229334, -0.0520421, -0.0892927, -0.0810484}; - const double SQUARE_COR_COEF[6] = {0, 0, 0.0333082, 0.00426112, 0.00887433, 0.0085219}; + const double CONST_COR_COEF[6] = {0.98913, 0.982008, 0.974011, 0.496234, 0.368110, 0.294053}; + const double LINEAR_COR_COEF[6] = {-0.0491388, -0.124058, -0.249718, -0.0667390, -0.0770766, -0.0580492}; + const double SQUARE_COR_COEF[6] = {0, 0, 0.0368657, 0.00656337, 0.00724508, 0.00568967}; const int PU_IETA_1 = 7; const int PU_IETA_2 = 16; const int PU_IETA_3 = 25; diff --git a/Calibration/HcalCalibAlgos/macros/CalibFitPlots.C b/Calibration/HcalCalibAlgos/macros/CalibFitPlots.C index d33eb4895d878..7c03062ffcec1 100644 --- a/Calibration/HcalCalibAlgos/macros/CalibFitPlots.C +++ b/Calibration/HcalCalibAlgos/macros/CalibFitPlots.C @@ -20,12 +20,18 @@ // PlotHist(infile, prefix, text, modePlot, kopt, lumi, ener, dataMC, // drawStatBox, save); // Defaults: modePlot=4, kopt=100, lumi=0, ener=13, dataMC=false, -// drawStatBox=true, save=false +// drawStatBox=true, save=0 +// +// For plotting histograms corresponding to individual ieta's +// PlotHistEta(infile, prefix, text, iene, numb, ieta, lumi, ener, dataMC, +// drawStatBox, save); +// Defaults iene=3, numb=50, ieta=0, lumi=0, ener=13.0, dataMC=false, +// drawStatBox=true, save=0 // // For plotting several histograms in the same plot // (fits to different data sets for example) // PlotHists(infile, prefix, text, drawStatBox, save) -// Defaults: drawStatBox=true; save=false; +// Defaults: drawStatBox=true; save=0; // Note prefix is common part for all histograms // // For plotting on the same canvas plots with different @@ -33,7 +39,7 @@ // PlotTwoHists(infile, prefix1, text1, prefix2, text2, text0, type, iname, // lumi, ener, drawStatBox, save); // Defaults: type=0; iname=2; lumi=0; ener=13; drawStatBox=true; -// save=false; +// save=0; // Note prefixN, textN have the same meaning as prefix and text for set N // text0 is the text for general title added within () // type=0 plots response distributions and MPV of response vs ieta @@ -44,24 +50,24 @@ // save, prefix1, text1, prefix2, text2, prefix3, text3, // prefix4, text4, prefix5, text5); // Defaults: type=0; iname=0; drawStatBox=true; normalize=false; -// save=false; prefixN=""; textN=""; (for N > 0) +// save=0; prefixN=""; textN=""; (for N > 0) // Note prefixN, textN have the same meaning as prefix and text for set N // text0 is the text for general title added within () // prefix0 is the tag attached to the canvas name // type has the same meaning as in PlotTwoHists // // PlotHistCorrResults(infile, text, prefixF, save); -// Defaults: save=false +// Defaults: save=0 // // For plotting correction factors // PlotHistCorrFactor(infile, text, prefixF, scale, nmin, dataMC, // drawStatBox, save); -// Defaults: dataMC=true, drwaStatBox=false, nmin=100, save=false +// Defaults: dataMC=true, drwaStatBox=false, nmin=100, save=0 // // For plotting (fractional) asymmetry in the correction factors // // PlotHistCorrAsymmetry(infile, text, prefixF, save); -// Defaults: prefixF="", save=false +// Defaults: prefixF="", save=0 // // For plotting correction factors from upto 5 different runs // on the same canvas @@ -70,43 +76,55 @@ // infile4, text4, infile5, text5, prefixF, ratio, // drawStatBox, nmin, dataMC, year, save) // Defaults: ratio=false, drawStatBox=true, nmin=100, dataMC=false, -// year=2018, save=false +// year=2018, save=0 // // For plotting correction factors including systematics // PlotHistCorrSys(infilec, conds, text, save) -// Defaults: save=false +// Defaults: save=0 // // For plotting uncertainties in correction factors with decreasing // integrated luminpsoties starting from *lumi* // PlotHistCorrLumis(infilec, conds, lumi, save) -// Defaults: save=false +// Defaults: save=0 // // For plotting correlation of correction factors // PlotHistCorrRel(infile1, infile2, text1, text2, save) -// Defaults: save=false +// Defaults: save=0 // // For plotting four histograms // PlotFourHists(infile, prefix0, type, drawStatBox, normalize, save, prefix1, // text1, prefix2, text2, prefix3, text3, prefix4, text4) -// Defaults: type=0, drawStatBox=0, normalize=false, save=false, +// Defaults: type=0, drawStatBox=0, normalize=false, save=0, // prefixN="", textN="" // // For plotting PU corrected histograms (o/p of CalibPlotCombine) // PlotPUCorrHists(infile, prefix drawStatBox, approve, save) // Defaults: infile = "corrfac.root", prefix = "", drawStatBox = 0, -// approve = true, save = false +// approve = true, save = 0 // // For plotting histograms obtained from fits to PU correction // (o/p of CalibFitPU) for a given ieta using 2D/profile/Graphs // PlotHistCorr(infile, prefix, text, eta, mode, drawStatBox, save) // Defaults eta = 0 (all ieta values), mode = 1 (profile histograms), -// drawStatBox = true, save = false +// drawStatBox = true, save = 0 // // For plotting histograms created by CalibPlotProperties // PlotPropertyHist(infile, prefix, text, etaMax, lumi, ener, dataMC, // drawStatBox, save) // Defaults etaMax = 25 (draws for eta = 1 .. etaMax), lumi = 0, -// ener = 13.0, dataMC = false, drawStatBox = true, save = false +// ener = 13.0, dataMC = false, drawStatBox = true, save = 0 +// +// For plotting mean response and resolution as a function of +// particle momentum +// PlotMeanError(infilest, region, resol, save, debug) +// Defaults region = 3 (overall), resol = false (response), save = 0, +// debug = false +// Format of the input file: +// # of energy points, # of types, # of regions +// Then for each type, energy point +// Type, lower and higher edge of momentum +// Mean response and its error for the 4 regions +// Width of response and uts error for the 4 regions // // where: // infile (std::string) = Name of the input ROOT file @@ -134,11 +152,15 @@ // o>0 to carry out pol0 fit, o>1 to restrict // fit region between -20 & 20; d=1 to show grid; // h=0,1 to show plots with 2- or 1-Gaussian fit +// ieta (int) = specific ieta histogram to be plotted; if 0 +// histograms for all ieta's from -numb/2 to numb/2 +// will be plotted // lumi (double) = Integrated luminosity of the dataset used which // needs to be drawn on the top of the canvas // along with CM energy (if lumi > 0) // ener (double) = CM energy of the dataset used -// save (bool) = if true it saves the canvas as a pdf file +// save (int) = if > 0 it saves the canvas as a pdf file; or +// if < 0 it saves the canvas as a C file // normalize(bool) = if the histograms to be scaled to get // normalization to 1 // prefixF (string) = string to be included to the pad name @@ -156,28 +178,38 @@ // and 1..conds for the variations) // conds (int) = number of variations in estimating systematic // checks +// infilest (string) = input file name containing the responses and +// resolutions for barrel, transition, endcap, +// overall regions at 5 energies using 3 methods +// region (int) = region to be selected: 0 = barrel, 1 = transition, +// 2 = endcap, 3 = overall (3) +// resol (bool) = parameter to be plotted: true = resolution, +// false = response (false) ////////////////////////////////////////////////////////////////////////////// -#include +#include #include -#include -#include -#include -#include #include +#include +#include #include #include -#include -#include +#include #include +#include +#include +#include +#include #include #include -#include -#include +#include +#include +#include +#include #include #include -#include -#include +#include +#include #include "CalibCorr.C" @@ -947,27 +979,14 @@ void PlotHist(const char* infile, double ener = 13.0, bool dataMC = false, bool drawStatBox = true, - bool save = false) { + int save = 0) { std::string name0[6] = {"ratio00", "ratio10", "ratio20", "ratio30", "ratio40", "ratio50"}; std::string name1[5] = {"Z0", "Z1", "Z2", "Z3", "Z4"}; std::string name2[5] = {"L0", "L1", "L2", "L3", "L4"}; std::string name3[5] = {"V0", "V1", "V2", "V3", "V4"}; - std::string name4[16] = {"etaB31", - "etaB32", - "etaB33", - "etaB34", - "etaB21", - "etaB22", - "etaB23", - "etaB24", - "etaB11", - "etaB12", - "etaB13", - "etaB14", - "etaB01", - "etaB02", - "etaB03", - "etaB04"}; + std::string name4[20] = {"etaB41", "etaB42", "etaB43", "etaB44", "etaB31", "etaB32", "etaB33", + "etaB34", "etaB21", "etaB22", "etaB23", "etaB24", "etaB11", "etaB12", + "etaB13", "etaB14", "etaB01", "etaB02", "etaB03", "etaB04"}; std::string name5[5] = {"W0", "W1", "W2", "W3", "W4"}; std::string title[6] = {"Tracks with p = 10:20 GeV", "Tracks with p = 20:30 GeV", @@ -975,22 +994,16 @@ void PlotHist(const char* infile, "Tracks with p = 40:60 GeV", "Tracks with p = 60:100 GeV", "Tracks with p = 20:100 GeV"}; - std::string title1[16] = {"Tracks with p = 40:60 GeV (Barrel)", - "Tracks with p = 40:60 GeV (Transition)", - "Tracks with p = 40:60 GeV (Endcap)", - "Tracks with p = 40:60 GeV", - "Tracks with p = 30:40 GeV (Barrel)", - "Tracks with p = 30:40 GeV (Transition)", - "Tracks with p = 30:40 GeV (Endcap)", - "Tracks with p = 30:40 GeV", - "Tracks with p = 20:30 GeV (Barrel)", - "Tracks with p = 20:30 GeV (Transition)", - "Tracks with p = 20:30 GeV (Endcap)", - "Tracks with p = 20:30 GeV", - "Tracks with p = 10:20 GeV (Barrel)", - "Tracks with p = 10:20 GeV (Transition)", - "Tracks with p = 10:20 GeV (Endcap)", - "Tracks with p = 10:20 GeV"}; + std::string title1[20] = {"Tracks with p = 60:100 GeV (Barrel)", "Tracks with p = 60:100 GeV (Transition)", + "Tracks with p = 60:100 GeV (Endcap)", "Tracks with p = 60:100 GeV", + "Tracks with p = 40:60 GeV (Barrel)", "Tracks with p = 40:60 GeV (Transition)", + "Tracks with p = 40:60 GeV (Endcap)", "Tracks with p = 40:60 GeV", + "Tracks with p = 30:40 GeV (Barrel)", "Tracks with p = 30:40 GeV (Transition)", + "Tracks with p = 30:40 GeV (Endcap)", "Tracks with p = 30:40 GeV", + "Tracks with p = 20:30 GeV (Barrel)", "Tracks with p = 20:30 GeV (Transition)", + "Tracks with p = 20:30 GeV (Endcap)", "Tracks with p = 20:30 GeV", + "Tracks with p = 10:20 GeV (Barrel)", "Tracks with p = 10:20 GeV (Transition)", + "Tracks with p = 10:20 GeV (Endcap)", "Tracks with p = 10:20 GeV"}; std::string xtitl[5] = {"E_{HCAL}/(p-E_{ECAL})", "i#eta", "d_{L1}", "# Vertex", "E_{HCAL}/(p-E_{ECAL})"}; std::string ytitl[5] = { "Tracks", "MPV(E_{HCAL}/(p-E_{ECAL}))", "MPV(E_{HCAL}/(p-E_{ECAL}))", "MPV(E_{HCAL}/(p-E_{ECAL}))", "Tracks"}; @@ -1015,7 +1028,7 @@ void PlotHist(const char* infile, TFile* file = new TFile(infile); TLine* line(0); char name[100], namep[100]; - int kmax = (mode == 4) ? 16 : (((mode < 1) && (mode > 5)) ? 6 : 5); + int kmax = (mode == 4) ? 20 : (((mode < 1) && (mode > 5)) ? 6 : 5); for (int k = 0; k < kmax; ++k) { if (mode == 1) { sprintf(name, "%s%s", prefix.c_str(), name1[k].c_str()); @@ -1156,15 +1169,133 @@ void PlotHist(const char* infile, txt2->Draw("same"); pad->Modified(); pad->Update(); - if (save) { + if (save > 0) { + sprintf(name, "%s.pdf", pad->GetName()); + pad->Print(name); + } else if (save < 0) { + sprintf(name, "%s.C", pad->GetName()); + pad->Print(name); + } + } + } +} + +void PlotHistEta(const char* infile, + std::string prefix, + std::string text, + int iene = 3, + int numb = 50, + int ieta = 0, + double lumi = 0, + double ener = 13.0, + bool dataMC = false, + bool drawStatBox = true, + int save = 0) { + std::string name0 = "ratio"; + std::string title[5] = {"10:20", "20:30", "30:40", "40:60", "60:100"}; + std::string xtitl = "E_{HCAL}/(p-E_{ECAL})"; + std::string ytitl = "Tracks"; + + gStyle->SetCanvasBorderMode(0); + gStyle->SetCanvasColor(kWhite); + gStyle->SetPadColor(kWhite); + gStyle->SetFillColor(kWhite); + gStyle->SetOptTitle(0); + if (drawStatBox) { + int iopt(1110); + gStyle->SetOptStat(iopt); + gStyle->SetOptFit(1); + } else { + gStyle->SetOptStat(0); + gStyle->SetOptFit(0); + } + if (iene < 0 || iene >= 5) + iene = 3; + int numb2 = numb / 2; + if (ieta < -numb2 || ieta > numb2) + ieta = 0; + int ietaMin = ((ieta == 0) ? 1 : ((ieta > 0) ? (numb2 + ieta) : (numb2 + ieta + 1))); + int ietaMax = (ieta == 0) ? numb : ietaMin; + TFile* file = new TFile(infile); + char name[100], namep[100]; + for (int k = ietaMin; k <= ietaMax; ++k) { + int eta = (k > numb2) ? (k - numb2) : (k - numb2 - 1); + sprintf(name, "%s%s%d%d", prefix.c_str(), name0.c_str(), iene, k); + TH1D* hist1 = (TH1D*)file->FindObjectAny(name); + if (hist1 != nullptr) { + TH1D* hist = (TH1D*)(hist1->Clone()); + double ymin(0.90); + sprintf(namep, "c_%s", name); + TCanvas* pad = new TCanvas(namep, namep, 700, 500); + pad->SetRightMargin(0.10); + pad->SetTopMargin(0.10); + hist->GetXaxis()->SetTitleSize(0.04); + hist->GetXaxis()->SetTitle(xtitl.c_str()); + hist->GetYaxis()->SetTitle(ytitl.c_str()); + hist->GetYaxis()->SetLabelOffset(0.005); + hist->GetYaxis()->SetTitleSize(0.04); + hist->GetYaxis()->SetLabelSize(0.035); + hist->GetYaxis()->SetTitleOffset(1.10); + hist->GetXaxis()->SetRangeUser(0.25, 2.25); + hist->SetMarkerStyle(20); + hist->SetMarkerColor(2); + hist->SetLineColor(2); + hist->Draw(); + pad->Update(); + TPaveStats* st1 = (TPaveStats*)hist->GetListOfFunctions()->FindObject("stats"); + if (st1 != nullptr) { + ymin = 0.70; + st1->SetY1NDC(ymin); + st1->SetY2NDC(0.90); + st1->SetX1NDC(0.65); + st1->SetX2NDC(0.90); + } + double ymx(0.96), xmi(0.25), xmx(0.90); + char txt[100]; + if (lumi > 0.1) { + ymx = ymin - 0.005; + xmi = 0.45; + TPaveText* txt0 = new TPaveText(0.65, 0.91, 0.90, 0.96, "blNDC"); + txt0->SetFillColor(0); + sprintf(txt, "%4.1f TeV %5.1f fb^{-1}", ener, lumi); + txt0->AddText(txt); + txt0->Draw("same"); + } + double ymi = ymx - 0.05; + TPaveText* txt1 = new TPaveText(xmi, ymi, xmx, ymx, "blNDC"); + txt1->SetFillColor(0); + if (text == "") { + sprintf(txt, "Tracks with p = %s GeV at i#eta = %d", title[iene].c_str(), eta); + } else { + sprintf(txt, "Tracks with p = %s GeV at i#eta = %d (%s)", title[iene].c_str(), eta, text.c_str()); + } + txt1->AddText(txt); + txt1->Draw("same"); + double xmax = (dataMC) ? 0.33 : 0.44; + ymi = (lumi > 0.1) ? 0.91 : 0.84; + ymx = ymi + 0.05; + TPaveText* txt2 = new TPaveText(0.11, ymi, xmax, ymx, "blNDC"); + txt2->SetFillColor(0); + if (dataMC) + sprintf(txt, "CMS Preliminary"); + else + sprintf(txt, "CMS Simulation Preliminary"); + txt2->AddText(txt); + txt2->Draw("same"); + pad->Modified(); + pad->Update(); + if (save > 0) { sprintf(name, "%s.pdf", pad->GetName()); pad->Print(name); + } else if (save < 0) { + sprintf(name, "%s.C", pad->GetName()); + pad->Print(name); } } } } -void PlotHists(std::string infile, std::string prefix, std::string text, bool drawStatBox = true, bool save = false) { +void PlotHists(std::string infile, std::string prefix, std::string text, bool drawStatBox = true, int save = 0) { int colors[6] = {1, 6, 4, 7, 2, 9}; std::string types[6] = {"B", "C", "D", "E", "F", "G"}; std::string names[3] = {"ratio20", "Z2", "W2"}; @@ -1273,9 +1404,12 @@ void PlotHists(std::string infile, std::string prefix, std::string text, bool dr } pad->Modified(); pad->Update(); - if (save) { + if (save > 0) { sprintf(name, "%s.pdf", pad->GetName()); pad->Print(name); + } else if (save < 0) { + sprintf(name, "%s.C", pad->GetName()); + pad->Print(name); } } } @@ -1292,7 +1426,7 @@ void PlotTwoHists(std::string infile, double lumi = 0, double ener = 13.0, int drawStatBox = 0, - bool save = false) { + int save = 0) { int colors[2] = {2, 4}; int numb[2] = {5, 1}; std::string names0[5] = {"ratio00", "ratio00One", "etaB04One", "Z0", "W0"}; @@ -1458,9 +1592,12 @@ void PlotTwoHists(std::string infile, pad->Update(); } pad->Update(); - if (save) { + if (save > 0) { sprintf(name, "%s.pdf", pad->GetName()); pad->Print(name); + } else if (save < 0) { + sprintf(name, "%s.C", pad->GetName()); + pad->Print(name); } } } @@ -1473,7 +1610,7 @@ void PlotFiveHists(std::string infile, int iname = 3, int drawStatBox = 0, bool normalize = false, - bool save = false, + int save = 0, std::string prefix1 = "", std::string text1 = "", std::string prefix2 = "", @@ -1676,15 +1813,18 @@ void PlotFiveHists(std::string infile, pad->Update(); } pad->Update(); - if (save) { + if (save > 0) { sprintf(name, "%s.pdf", pad->GetName()); pad->Print(name); + } else if (save < 0) { + sprintf(name, "%s.C", pad->GetName()); + pad->Print(name); } } } } -void PlotHistCorrResults(std::string infile, std::string text, std::string prefixF, bool save = false) { +void PlotHistCorrResults(std::string infile, std::string text, std::string prefixF, int save = 0) { std::string name[5] = {"Eta1Bf", "Eta2Bf", "Eta1Af", "Eta2Af", "Cvg0"}; std::string title[5] = {"Mean at the start of itertions", "Median at the start of itertions", @@ -1753,9 +1893,12 @@ void PlotHistCorrResults(std::string infile, std::string text, std::string prefi txt1->Draw("same"); pad->Modified(); pad->Update(); - if (save) { + if (save > 0) { sprintf(namep, "%s.pdf", pad->GetName()); pad->Print(namep); + } else if (save < 0) { + sprintf(namep, "%s.C", pad->GetName()); + pad->Print(namep); } } } @@ -1768,7 +1911,7 @@ void PlotHistCorrFactor(char* infile, int nmin = 100, bool dataMC = false, bool drawStatBox = true, - bool save = false) { + int save = 0) { std::map cfacs; int etamin(100), etamax(-100), maxdepth(0); readCorrFactors(infile, scale, cfacs, etamin, etamax, maxdepth); @@ -1882,13 +2025,16 @@ void PlotHistCorrFactor(char* infile, txt2->Draw("same"); pad->Modified(); pad->Update(); - if (save) { + if (save > 0) { sprintf(name, "%s.pdf", pad->GetName()); pad->Print(name); + } else if (save < 0) { + sprintf(name, "%s.C", pad->GetName()); + pad->Print(name); } } -void PlotHistCorrAsymmetry(char* infile, std::string text, std::string prefixF = "", bool save = false) { +void PlotHistCorrAsymmetry(char* infile, std::string text, std::string prefixF = "", int save = 0) { std::map cfacs; int etamin(100), etamax(-100), maxdepth(0); double scale(1.0); @@ -1972,9 +2118,12 @@ void PlotHistCorrAsymmetry(char* infile, std::string text, std::string prefixF = line->Draw("same"); pad->Update(); - if (save) { + if (save > 0) { sprintf(name, "%s.pdf", pad->GetName()); pad->Print(name); + } else if (save < 0) { + sprintf(name, "%s.C", pad->GetName()); + pad->Print(name); } } @@ -1994,7 +2143,7 @@ void PlotHistCorrFactors(char* infile1, int nmin = 100, bool dataMC = false, int year = 2018, - bool save = false) { + int save = 0) { std::map cfacs[5]; std::vector texts; int nfile(0), etamin(100), etamax(-100), maxdepth(0); @@ -2201,14 +2350,17 @@ void PlotHistCorrFactors(char* infile1, line->Draw("same"); pad->Update(); } - if (save) { + if (save > 0) { sprintf(name, "%s.pdf", pad->GetName()); pad->Print(name); + } else if (save < 0) { + sprintf(name, "%s.C", pad->GetName()); + pad->Print(name); } } } -void PlotHistCorrSys(std::string infilec, int conds, std::string text, bool save = false) { +void PlotHistCorrSys(std::string infilec, int conds, std::string text, int save = 0) { char fname[100]; sprintf(fname, "%s_cond0.txt", infilec.c_str()); int etamin(100), etamax(-100), maxdepth(0); @@ -2314,14 +2466,17 @@ void PlotHistCorrSys(std::string infilec, int conds, std::string text, bool save } legend->Draw("same"); pad->Update(); - if (save) { + if (save > 0) { sprintf(name, "%s.pdf", pad->GetName()); pad->Print(name); + } else if (save < 0) { + sprintf(name, "%s.C", pad->GetName()); + pad->Print(name); } } } -void PlotHistCorrLumis(std::string infilec, int conds, double lumi, bool save = false) { +void PlotHistCorrLumis(std::string infilec, int conds, double lumi, int save = 0) { char fname[100]; sprintf(fname, "%s_0.txt", infilec.c_str()); std::map cfacs; @@ -2393,14 +2548,17 @@ void PlotHistCorrLumis(std::string infilec, int conds, double lumi, bool save = } legend->Draw("same"); pad->Update(); - if (save) { + if (save > 0) { sprintf(name, "%s.pdf", pad->GetName()); pad->Print(name); + } else if (save < 0) { + sprintf(name, "%s.C", pad->GetName()); + pad->Print(name); } } } -void PlotHistCorrRel(char* infile1, char* infile2, std::string text1, std::string text2, bool save = false) { +void PlotHistCorrRel(char* infile1, char* infile2, std::string text1, std::string text2, int save = 0) { std::map cfacs1, cfacs2; int etamin(100), etamax(-100), maxdepth(0); readCorrFactors(infile1, 1.0, cfacs1, etamin, etamax, maxdepth); @@ -2509,9 +2667,12 @@ void PlotHistCorrRel(char* infile1, char* infile2, std::string text1, std::strin } legend->Draw("same"); pad->Update(); - if (save) { + if (save > 0) { sprintf(name, "%s.pdf", pad->GetName()); pad->Print(name); + } else if (save < 0) { + sprintf(name, "%s.C", pad->GetName()); + pad->Print(name); } } } @@ -2521,7 +2682,7 @@ void PlotFourHists(std::string infile, int type = 0, int drawStatBox = 0, bool normalize = false, - bool save = false, + int save = 0, std::string prefix1 = "", std::string text1 = "", std::string prefix2 = "", @@ -2648,9 +2809,12 @@ void PlotFourHists(std::string infile, */ pad->Modified(); pad->Update(); - if (save) { + if (save > 0) { sprintf(name, "%s.pdf", pad->GetName()); pad->Print(name); + } else if (save < 0) { + sprintf(name, "%s.C", pad->GetName()); + pad->Print(name); } } } @@ -2659,7 +2823,7 @@ void PlotPUCorrHists(std::string infile = "corrfac.root", std::string prefix = "", int drawStatBox = 0, bool approve = true, - bool save = false) { + int save = 0) { std::string name1[4] = {"W0", "W1", "W2", "P"}; std::string name2[4] = {"All", "Barrel", "Endcap", ""}; std::string name3[2] = {"", "p = 40:60 GeV"}; @@ -2755,9 +2919,12 @@ void PlotPUCorrHists(std::string infile = "corrfac.root", } pad->Modified(); pad->Update(); - if (save) { + if (save > 0) { sprintf(name, "%s.pdf", pad->GetName()); pad->Print(name); + } else if (save < 0) { + sprintf(name, "%s.C", pad->GetName()); + pad->Print(name); } } } @@ -2772,7 +2939,7 @@ void PlotHistCorr(const char* infile, int eta = 0, int mode = 1, bool drawStatBox = true, - bool save = false) { + int save = 0) { gStyle->SetCanvasBorderMode(0); gStyle->SetCanvasColor(kWhite); gStyle->SetPadColor(kWhite); @@ -2854,9 +3021,12 @@ void PlotHistCorr(const char* infile, txt1->Draw("same"); pad->Modified(); pad->Update(); - if (save) { + if (save > 0) { sprintf(name, "%s.pdf", pad->GetName()); pad->Print(name); + } else if (save < 0) { + sprintf(name, "%s.C", pad->GetName()); + pad->Print(name); } } } @@ -2869,7 +3039,7 @@ void PlotPropertyHist(const char* infile, double ener = 13.0, bool dataMC = false, bool drawStatBox = true, - bool save = false) { + int save = 0) { std::string name0[3] = {"energyE2", "energyH2", "energyP2"}; std::string title0[3] = {"Energy in ECAL", "Energy in HCAL", "Track Momentum"}; std::string xtitl0[3] = {"Energy (GeV)", "Energy (GeV)", "p (GeV)"}; @@ -2964,9 +3134,12 @@ void PlotPropertyHist(const char* infile, txt2->Draw("same"); pad->Modified(); pad->Update(); - if (save) { + if (save > 0) { sprintf(name, "%s.pdf", pad->GetName()); pad->Print(name); + } else if (save < 0) { + sprintf(name, "%s.C", pad->GetName()); + pad->Print(name); } } } @@ -3050,11 +3223,146 @@ void PlotPropertyHist(const char* infile, txt2->Draw("same"); pad->Modified(); pad->Update(); - if (save) { + if (save > 0) { sprintf(name, "%s.pdf", pad->GetName()); pad->Print(name); + } else if (save < 0) { + sprintf(name, "%s.C", pad->GetName()); + pad->Print(name); } } } } } + +void PlotMeanError(const std::string infilest, int reg = 3, bool resol = false, int save = 0, bool debug = false) { + bool ok(false); + const int ntypmx = 3; + const int nregmx = 4; + if (reg < 0 || reg >= nregmx) + reg = nregmx - 1; + int nEner(0), nType(0), nPts(0); + std::vector energy[ntypmx], denergy[ntypmx], value[ntypmx], dvalue[ntypmx]; + // First read the data + std::ifstream fInput(infilest.c_str()); + if (!fInput.good()) { + std::cout << "Cannot open file " << infilest << std::endl; + } else { + ok = true; + fInput >> nEner >> nType >> nPts; + int nmax = nEner * nType; + int type, elow, ehigh; + double v1[4], e1[4], v2[4], e2[4]; + for (int n = 0; n < nmax; ++n) { + fInput >> type >> elow >> ehigh; + fInput >> v1[0] >> e1[0] >> v1[1] >> e1[1] >> v1[2] >> e1[2] >> v1[3] >> e1[3]; + fInput >> v2[0] >> e2[0] >> v2[1] >> e2[1] >> v2[2] >> e2[2] >> v2[3] >> e2[3]; + double ener = 0.5 * (ehigh + elow); + double dene = 0.5 * (ehigh - elow); + energy[type].push_back(ener); + denergy[type].push_back(dene); + if (resol) { + value[type].push_back(v2[reg]); + dvalue[type].push_back(e2[reg]); + } else { + value[type].push_back(v1[reg]); + dvalue[type].push_back(e1[reg]); + } + } + fInput.close(); + std::cout << "Reads " << (nmax + 1) << " cards from " << infilest << " with measurements for " << nEner + << " energies and " << nType << " types" << std::endl; + if (debug) { + for (int n = 0; n < nType; ++n) { + std::cout << "Type " << n << " with " << energy[n].size() << " points\n"; + for (unsigned int k = 0; k < energy[n].size(); ++k) + std::cout << " [" << k << "] " << energy[n][k] << " +- " << denergy[n][k] << " Value " << value[n][k] + << " +- " << dvalue[n][k] << std::endl; + } + } + } + + // Now the plots + if (ok) { + int mvsres = (resol) ? 1 : 0; + std::string names[2] = {"Mean", "Resol"}; + std::string namet[nregmx] = {"Barrel", "Transition", "Endcap", "Combined"}; + char cname[100]; + sprintf(cname, "c_%s%s", names[mvsres].c_str(), namet[reg].c_str()); + int color[ntypmx] = {2, 4, 1}; + int mtype[ntypmx] = {20, 21, 22}; + double ymin[2] = {0.65, 0.10}; + double ymax[2] = {1.30, 0.50}; + gStyle->SetCanvasBorderMode(0); + gStyle->SetCanvasColor(kWhite); + gStyle->SetPadColor(kWhite); + gStyle->SetFillColor(kWhite); + gStyle->SetOptTitle(kFALSE); + gStyle->SetPadBorderMode(0); + gStyle->SetCanvasBorderMode(0); + gStyle->SetOptStat(0); + TCanvas* canvas = new TCanvas(cname, cname, 500, 500); + canvas->SetTopMargin(0.05); + canvas->SetBottomMargin(0.14); + canvas->SetLeftMargin(0.15); + canvas->SetRightMargin(0.10); + TH1F* vFrame = canvas->DrawFrame(0.0, ymin[mvsres], 120.0, ymax[mvsres]); + vFrame->GetXaxis()->SetRangeUser(0.0, 120.0); + vFrame->GetYaxis()->SetRangeUser(ymin[mvsres], ymax[mvsres]); + vFrame->GetXaxis()->SetLabelSize(0.04); + vFrame->GetYaxis()->SetLabelSize(0.04); + vFrame->GetXaxis()->SetTitleSize(0.04); + vFrame->GetYaxis()->SetTitleSize(0.04); + vFrame->GetXaxis()->SetTitleOffset(1.2); + vFrame->GetYaxis()->SetTitleOffset(1.6); + vFrame->GetXaxis()->SetLabelOffset(0.0); + vFrame->GetXaxis()->SetTitle("p_{Beam} (GeV/c)"); + if (resol) { + vFrame->GetYaxis()->SetTitle("Width(E_{HCAL}/(p-E_{ECAL}))"); + } else { + vFrame->GetYaxis()->SetTitle("MPV(E_{HCAL}/(p-E_{ECAL}))"); + } + TLegend* legend = new TLegend(0.70, 0.80, 0.90, 0.94); + legend->SetFillColor(kWhite); + std::string nameg[ntypmx] = {"MAHI", "M0", "M2"}; + for (int n = 0; n < nType; ++n) { + unsigned int nmax0 = energy[n].size(); + double mom[nmax0], dmom[nmax0], mean[nmax0], dmean[nmax0]; + for (unsigned int k = 0; k < nmax0; ++k) { + mom[k] = energy[n][k]; + dmom[k] = denergy[n][k]; + mean[k] = value[n][k]; + dmean[k] = dvalue[n][k]; + } + TGraphErrors* graph = new TGraphErrors(nmax0, mom, mean, dmom, dmean); + graph->SetMarkerStyle(mtype[n]); + graph->SetMarkerColor(color[n]); + graph->SetMarkerSize(1.4); + graph->SetLineColor(color[n]); + graph->SetLineWidth(2); + sprintf(cname, "%s", nameg[n].c_str()); + legend->AddEntry(graph, cname, "lp"); + graph->Draw("P"); + } + legend->Draw("same"); + std::string regions[nregmx] = {"20118B Barrel", "2018B Transition", "2018B Endcap", "2018B"}; + sprintf(cname, "%s", regions[reg].c_str()); + TPaveText* txt0 = new TPaveText(0.16, 0.90, 0.40, 0.94, "blNDC"); + txt0->SetFillColor(0); + txt0->AddText(cname); + txt0->Draw("same"); + TPaveText* txt1 = new TPaveText(0.15, 0.95, 0.40, 0.99, "blNDC"); + txt1->SetFillColor(0); + sprintf(cname, "CMS Preliminary"); + txt1->AddText(cname); + txt1->Draw("same"); + canvas->Update(); + if (save > 0) { + sprintf(cname, "%s.pdf", canvas->GetName()); + canvas->Print(cname); + } else if (save < 0) { + sprintf(cname, "%s.C", canvas->GetName()); + canvas->Print(cname); + } + } +} diff --git a/Calibration/HcalCalibAlgos/macros/CalibMonitor.C b/Calibration/HcalCalibAlgos/macros/CalibMonitor.C index f5f5fbaf0085b..48fc9f819346b 100644 --- a/Calibration/HcalCalibAlgos/macros/CalibMonitor.C +++ b/Calibration/HcalCalibAlgos/macros/CalibMonitor.C @@ -618,12 +618,12 @@ void CalibMonitor::Init(TChain *tree, const char *dupFileName, const char *comFi for (int i = 0; i < 4; ++i) ietas_.push_back(ietas[i]); int nxbin(100); - double xlow(0.25), xhigh(5.25); + double xlow(0.0), xhigh(5.0); if (coarseBin_ == 1) { + xlow = 0.25; + xhigh = 5.25; nxbin = 50; } else if (coarseBin_ > 1) { - xlow = 0.0; - xhigh = 5.0; if (coarseBin_ == 2) nxbin = 500; else @@ -1242,7 +1242,7 @@ void CalibMonitor::Loop() { fileout_.close(); std::cout << "Writes " << good << " events in the file " << outFileName_ << std::endl; } - std::cout << "Finds " << duplicate << " Duplicate events out of " << kount << " evnts in this file with p>20 Gev" + std::cout << "Finds " << duplicate << " Duplicate events out of " << kount << " evnts in this file with p>10 Gev" << std::endl; std::cout << "Number of selected events:" << std::endl; for (unsigned int k = 1; k < ps_.size(); ++k) diff --git a/Calibration/HcalCalibAlgos/macros/CalibPlotProperties.C b/Calibration/HcalCalibAlgos/macros/CalibPlotProperties.C index 313f185be47f8..ec16398c0f7ab 100644 --- a/Calibration/HcalCalibAlgos/macros/CalibPlotProperties.C +++ b/Calibration/HcalCalibAlgos/macros/CalibPlotProperties.C @@ -7,12 +7,15 @@ // phimin, phimax, zside, nvxlo, nvxhi, rbx, exclude, // etamax); // c1.Loop(); -// c1.savePlot(histFileName,append,all,debug); +// c1.savePlot(histFileName, append, all, debug); // // This will prepare a set of histograms with properties of the tracks // which can be displayed by the method in this file // -// PlotHist(histFileName, prefix, flagC, etalo, etahi, save) +// PlotHist(histFileName, prefix, text, flagC, etalo, etahi, save) +// +// This will plot the heistograms and save the canvases +// // // where: // @@ -85,6 +88,7 @@ // all (bool) = true/false if all histograms to be saved or // not (def false) // +// text (string) = string to be put in the title // flagC (int) = 3 digit integer (hdo) with control // information (h=0/1 for plottting the depth // depedendent histograms; @@ -291,6 +295,7 @@ private: std::vector h_etaEH[CalibPlots::npbin0]; std::vector h_etaEp[CalibPlots::npbin0]; std::vector h_etaEE[CalibPlots::npbin0]; + std::vector h_etaEE0[CalibPlots::npbin0]; std::vector h_mom, h_eEcal, h_eHcal; std::vector h_bvlist, h_bvlist2, h_evlist, h_evlist2; std::vector h_bvlist3, h_evlist3; @@ -626,6 +631,10 @@ void CalibPlotProperties::Init(TChain *tree, const char *dupFileName) { h_etaEE[k].push_back(new TH1D(name, title, 100, 0, 10)); kk = h_etaEE[k].size() - 1; h_etaEE[k][kk]->Sumw2(); + sprintf(name, "%senergyER%d%d", prefix_.c_str(), k, j); + h_etaEE0[k].push_back(new TH1D(name, title, 100, 0, 1)); + kk = h_etaEE0[k].size() - 1; + h_etaEE0[k][kk]->Sumw2(); } } @@ -906,6 +915,8 @@ void CalibPlotProperties::Loop(Long64_t nentries) { h_etaEp[kp][jp2]->Fill(pmom, t_EventWeight); h_etaEE[kp][jp1]->Fill(t_eMipDR, t_EventWeight); h_etaEE[kp][jp2]->Fill(t_eMipDR, t_EventWeight); + h_etaEE0[kp][jp1]->Fill(t_eMipDR, t_EventWeight); + h_etaEE0[kp][jp2]->Fill(t_eMipDR, t_EventWeight); } if (kp == kp50) { if (je1 != CalibPlots::netabin) { @@ -1092,6 +1103,10 @@ void CalibPlotProperties::savePlot(const std::string &theName, bool append, bool TH1D *hist = (TH1D *)h_etaEE[k][j]->Clone(); hist->Write(); } + if (h_etaEE0[k].size() > j && h_etaEE0[k][j] != nullptr && (all || (k == kp50))) { + TH1D *hist = (TH1D *)h_etaEE0[k][j]->Clone(); + hist->Write(); + } } } @@ -1164,7 +1179,7 @@ void CalibPlotProperties::correctEnergy(double &eHcal) { } } -void PlotThisHist(TH1D *hist, int save) { +void PlotThisHist(TH1D *hist, const std::string &text, int save) { char namep[120]; sprintf(namep, "c_%s", hist->GetName()); TCanvas *pad = new TCanvas(namep, namep, 700, 500); @@ -1183,6 +1198,17 @@ void PlotThisHist(TH1D *hist, int save) { pad->Modified(); pad->Update(); TPaveStats *st1 = (TPaveStats *)hist->GetListOfFunctions()->FindObject("stats"); + TPaveText *txt0 = new TPaveText(0.12, 0.91, 0.49, 0.96, "blNDC"); + txt0->SetFillColor(0); + char txt[100]; + sprintf(txt, "CMS Simulation Preliminary"); + txt0->AddText(txt); + txt0->Draw("same"); + TPaveText *txt1 = new TPaveText(0.51, 0.91, 0.90, 0.96, "blNDC"); + txt1->SetFillColor(0); + sprintf(txt, "%s", text.c_str()); + txt1->AddText(txt); + txt1->Draw("same"); if (st1 != nullptr) { st1->SetY1NDC(0.70); st1->SetY2NDC(0.90); @@ -1201,6 +1227,7 @@ void PlotThisHist(TH1D *hist, int save) { void PlotHist(const char *hisFileName, const std::string &prefix = "", + const std::string &text = "", int flagC = 111, int etalo = 0, int etahi = 30, @@ -1227,14 +1254,14 @@ void PlotHist(const char *hisFileName, if (hist != nullptr) { sprintf(title, "Momentum for %s (GeV)", CalibPlots::getTitle(k).c_str()); hist->GetXaxis()->SetTitle(title); - PlotThisHist(hist, save); + PlotThisHist(hist, text, save); } sprintf(name, "%seta%d", prefix.c_str(), k); hist = (TH1D *)(file->FindObjectAny(name)); if (hist != nullptr) { sprintf(title, "#eta for %s", CalibPlots::getTitle(k).c_str()); hist->GetXaxis()->SetTitle(title); - PlotThisHist(hist, save); + PlotThisHist(hist, text, save); } } for (int k = 0; k < CalibPlots::npbin; ++k) { @@ -1247,7 +1274,7 @@ void PlotHist(const char *hisFileName, CalibPlots::getP(k), CalibPlots::getP(k + 1)); hist->GetXaxis()->SetTitle(title); - PlotThisHist(hist, save); + PlotThisHist(hist, text, save); } sprintf(name, "%seta1%d", prefix.c_str(), k); hist = (TH1D *)(file->FindObjectAny(name)); @@ -1258,7 +1285,7 @@ void PlotHist(const char *hisFileName, CalibPlots::getP(k), CalibPlots::getP(k + 1)); hist->GetXaxis()->SetTitle(title); - PlotThisHist(hist, save); + PlotThisHist(hist, text, save); } sprintf(name, "%seta2%d", prefix.c_str(), k); hist = (TH1D *)(file->FindObjectAny(name)); @@ -1269,7 +1296,7 @@ void PlotHist(const char *hisFileName, CalibPlots::getP(k), CalibPlots::getP(k + 1)); hist->GetXaxis()->SetTitle(title); - PlotThisHist(hist, save); + PlotThisHist(hist, text, save); } sprintf(name, "%seta3%d", prefix.c_str(), k); hist = (TH1D *)(file->FindObjectAny(name)); @@ -1280,7 +1307,7 @@ void PlotHist(const char *hisFileName, CalibPlots::getP(k), CalibPlots::getP(k + 1)); hist->GetXaxis()->SetTitle(title); - PlotThisHist(hist, save); + PlotThisHist(hist, text, save); } sprintf(name, "%seta4%d", prefix.c_str(), k); hist = (TH1D *)(file->FindObjectAny(name)); @@ -1291,21 +1318,21 @@ void PlotHist(const char *hisFileName, CalibPlots::getP(k), CalibPlots::getP(k + 1)); hist->GetXaxis()->SetTitle(title); - PlotThisHist(hist, save); + PlotThisHist(hist, text, save); } sprintf(name, "%sdl1%d", prefix.c_str(), k); hist = (TH1D *)(file->FindObjectAny(name)); if (hist != nullptr) { sprintf(title, "Distance from L1 (p = %d:%d GeV)", CalibPlots::getP(k), CalibPlots::getP(k + 1)); hist->GetXaxis()->SetTitle(title); - PlotThisHist(hist, save); + PlotThisHist(hist, text, save); } sprintf(name, "%svtx%d", prefix.c_str(), k); hist = (TH1D *)(file->FindObjectAny(name)); if (hist != nullptr) { sprintf(title, "N_{Vertex} (p = %d:%d GeV)", CalibPlots::getP(k), CalibPlots::getP(k + 1)); hist->GetXaxis()->SetTitle(title); - PlotThisHist(hist, save); + PlotThisHist(hist, text, save); } } } @@ -1333,7 +1360,7 @@ void PlotHist(const char *hisFileName, CalibPlots::getP(k + 1), j); hist->GetXaxis()->SetTitle(title); - PlotThisHist(hist, save); + PlotThisHist(hist, text, save); } sprintf(name, "%senergyP%d%d", prefix.c_str(), k, j); hist = (TH1D *)(file->FindObjectAny(name)); @@ -1354,7 +1381,7 @@ void PlotHist(const char *hisFileName, CalibPlots::getP(k + 1), j); hist->GetXaxis()->SetTitle(title); - PlotThisHist(hist, save); + PlotThisHist(hist, text, save); } sprintf(name, "%senergyE%d%d", prefix.c_str(), k, j); hist = (TH1D *)(file->FindObjectAny(name)); @@ -1375,7 +1402,13 @@ void PlotHist(const char *hisFileName, CalibPlots::getP(k + 1), j); hist->GetXaxis()->SetTitle(title); - PlotThisHist(hist, save); + PlotThisHist(hist, text, save); + } + sprintf(name, "%senergyER%d%d", prefix.c_str(), k, j); + hist = (TH1D *)(file->FindObjectAny(name)); + if (hist != nullptr) { + std::cout << name << " Mean " << hist->GetMean() << " +- " << hist->GetMeanError() << " Entries " + << hist->GetEntries() << " RMS " << hist->GetRMS() << std::endl; } } } @@ -1393,7 +1426,7 @@ void PlotHist(const char *hisFileName, CalibPlots::getEta(j - 1), CalibPlots::getEta(j)); hist->GetXaxis()->SetTitle(title); - PlotThisHist(hist, save); + PlotThisHist(hist, text, save); } sprintf(name, "%senergyP%d", prefix.c_str(), j); hist = (TH1D *)(file->FindObjectAny(name)); @@ -1407,7 +1440,7 @@ void PlotHist(const char *hisFileName, CalibPlots::getEta(j - 1), CalibPlots::getEta(j)); hist->GetXaxis()->SetTitle(title); - PlotThisHist(hist, save); + PlotThisHist(hist, text, save); } sprintf(name, "%senergyE%d", prefix.c_str(), j); hist = (TH1D *)(file->FindObjectAny(name)); @@ -1421,7 +1454,7 @@ void PlotHist(const char *hisFileName, CalibPlots::getEta(j - 1), CalibPlots::getEta(j)); hist->GetXaxis()->SetTitle(title); - PlotThisHist(hist, save); + PlotThisHist(hist, text, save); } } } @@ -1430,7 +1463,7 @@ void PlotHist(const char *hisFileName, hist = (TH1D *)(file->FindObjectAny("hnvtx")); if (hist != nullptr) { hist->GetXaxis()->SetTitle("Number of vertices"); - PlotThisHist(hist, save); + PlotThisHist(hist, text, save); } for (int i = 0; i < CalibPlots::ndepth; i++) { sprintf(name, "b_edepth%d", i); @@ -1438,42 +1471,42 @@ void PlotHist(const char *hisFileName, if (hist != nullptr) { sprintf(title, "Total RecHit energy in depth %d (Barrel)", i + 1); hist->GetXaxis()->SetTitle(title); - PlotThisHist(hist, save); + PlotThisHist(hist, text, save); } sprintf(name, "b_recedepth%d", i); hist = (TH1D *)(file->FindObjectAny(name)); if (hist != nullptr) { sprintf(title, "RecHit energy in depth %d (Barrel)", i + 1); hist->GetXaxis()->SetTitle(title); - PlotThisHist(hist, save); + PlotThisHist(hist, text, save); } sprintf(name, "b_nrecdepth%d", i); hist = (TH1D *)(file->FindObjectAny(name)); if (hist != nullptr) { sprintf(title, "#RecHits in depth %d (Barrel)", i + 1); hist->GetXaxis()->SetTitle(title); - PlotThisHist(hist, save); + PlotThisHist(hist, text, save); } sprintf(name, "e_edepth%d", i); hist = (TH1D *)(file->FindObjectAny(name)); if (hist != nullptr) { sprintf(title, "Total RecHit energy in depth %d (Endcap)", i + 1); hist->GetXaxis()->SetTitle(title); - PlotThisHist(hist, save); + PlotThisHist(hist, text, save); } sprintf(name, "e_recedepth%d", i); hist = (TH1D *)(file->FindObjectAny(name)); if (hist != nullptr) { sprintf(title, "RecHit energy in depth %d (Endcap)", i + 1); hist->GetXaxis()->SetTitle(title); - PlotThisHist(hist, save); + PlotThisHist(hist, text, save); } sprintf(name, "e_nrecdepth%d", i); hist = (TH1D *)(file->FindObjectAny(name)); if (hist != nullptr) { sprintf(title, "#RecHits in depth %d (Endcap)", i + 1); hist->GetXaxis()->SetTitle(title); - PlotThisHist(hist, save); + PlotThisHist(hist, text, save); } } TH2F *h_etaE = (TH2F *)(file->FindObjectAny("heta")); diff --git a/Calibration/HcalCalibAlgos/macros/CalibTree.C b/Calibration/HcalCalibAlgos/macros/CalibTree.C index 74b43c7e6356f..a24e186e3347c 100644 --- a/Calibration/HcalCalibAlgos/macros/CalibTree.C +++ b/Calibration/HcalCalibAlgos/macros/CalibTree.C @@ -42,7 +42,7 @@ // -1 loose, -2 flexible, > 0 for systematic // puCorr (int) = PU correction to be applied or not: 0 no // correction; < 0 use eDelta; > 0 rho dependent -// correction (-2) +// correction (-5: 2018 version) // applyL1Cut (int) = Flag to see if closeness to L1 object to be // applied: 0 no check; 1 only to events with // datatype not equal to 1; 2 to all (1) @@ -124,7 +124,7 @@ void Run(const char *inFileName = "Silver.root", int ietaMax = 25, int ietaTrack = -1, int sysmode = -1, - int puCorr = -2, + int puCorr = -5, int applyL1Cut = 1, double l1Cut = 0.5, int truncateFlag = 0, @@ -339,7 +339,7 @@ void doIt(const char *infile, const char *dup) { 25, -1, -1, - -2, + -5, 1, 0.5, 0, diff --git a/Calibration/HcalCalibAlgos/plugins/HcalIsoTrkAnalyzer.cc b/Calibration/HcalCalibAlgos/plugins/HcalIsoTrkAnalyzer.cc index c1ef9912fe9d4..bc32ef3278ee6 100644 --- a/Calibration/HcalCalibAlgos/plugins/HcalIsoTrkAnalyzer.cc +++ b/Calibration/HcalCalibAlgos/plugins/HcalIsoTrkAnalyzer.cc @@ -849,7 +849,7 @@ void HcalIsoTrkAnalyzer::fillDescriptions(edm::ConfigurationDescriptions& descri desc.add("maxInMiss", 0); desc.add("maxOutMiss", 0); // Minimum momentum of selected isolated track and signal zone - desc.add("minimumTrackP", 20.0); + desc.add("minimumTrackP", 10.0); desc.add("coneRadius", 34.98); // signal zone in ECAL and MIP energy cutoff desc.add("coneRadiusMIP", 14.0); diff --git a/Calibration/HcalCalibAlgos/test/HcalIsoTrackStudy.cc b/Calibration/HcalCalibAlgos/test/HcalIsoTrackStudy.cc index 69d6b099b6a26..4a99a8f88e8a0 100644 --- a/Calibration/HcalCalibAlgos/test/HcalIsoTrackStudy.cc +++ b/Calibration/HcalCalibAlgos/test/HcalIsoTrackStudy.cc @@ -83,7 +83,7 @@ #include "SimDataFormats/GeneratorProducts/interface/GenEventInfoProduct.h" -//#define EDM_ML_DEBUG +#define EDM_ML_DEBUG class HcalIsoTrackStudy : public edm::one::EDAnalyzer { public: @@ -141,6 +141,7 @@ class HcalIsoTrackStudy : public edm::one::EDAnalyzer& trkDirs, double dR); + double eThreshold(const DetId& id, double eta) const; l1t::L1TGlobalUtil* l1GtUtils_; edm::Service fs; @@ -155,7 +156,7 @@ class HcalIsoTrackStudy : public edm::one::EDAnalyzer tok_ew_; edm::EDGetTokenT> tok_alg_; - edm::ESGetToken tok_ddrec_; - edm::ESGetToken tok_bFieldH_; - edm::ESGetToken tok_ecalChStatus_; - edm::ESGetToken tok_sevlv_; - edm::ESGetToken tok_geom_; - edm::ESGetToken tok_caloTopology_; - edm::ESGetToken tok_htopo_; - edm::ESGetToken tok_resp_; - TTree *tree, *tree2; unsigned int t_RunNo, t_EventNo; int t_Run, t_Event, t_DataType, t_ieta, t_iphi; @@ -242,6 +234,7 @@ HcalIsoTrackStudy::HcalIsoTrackStudy(const edm::ParameterSet& iConfig) prescaleHigh_(iConfig.getParameter("prescaleHigh")), useRaw_(iConfig.getUntrackedParameter("useRaw", 0)), dataType_(iConfig.getUntrackedParameter("dataType", 0)), + mode_(iConfig.getUntrackedParameter("outMode", 11)), ignoreTrigger_(iConfig.getUntrackedParameter("ignoreTriggers", false)), useL1Trigger_(iConfig.getUntrackedParameter("useL1Trigger", false)), unCorrect_(iConfig.getUntrackedParameter("unCorrect", false)), @@ -299,7 +292,7 @@ HcalIsoTrackStudy::HcalIsoTrackStudy(const edm::ParameterSet& iConfig) std::string prdnam = iConfig.getUntrackedParameter("producerName", ""); edm::InputTag algTag = iConfig.getParameter("algInputTag"); edm::InputTag extTag = iConfig.getParameter("extInputTag"); - l1GtUtils_ = new l1t::L1TGlobalUtil(iConfig, consumesCollector(), *this, algTag, extTag, l1t::UseEventSetupIn::Event); + l1GtUtils_ = new l1t::L1TGlobalUtil(iConfig, consumesCollector(), *this, algTag, extTag); // define tokens for access tok_trigEvt_ = consumes(triggerEvent_); tok_trigRes_ = consumes(theTriggerResultsLabel_); @@ -332,38 +325,33 @@ HcalIsoTrackStudy::HcalIsoTrackStudy(const edm::ParameterSet& iConfig) << edm::InputTag(modnam, labelHBHE_, prdnam) << " " << labelTower_; } - edm::LogVerbatim("HcalIsoTrack") - << "Parameters read from config file \n" - << "\t minPt " << selectionParameter_.minPt << "\t theTrackQuality " << theTrackQuality_ << "\t minQuality " - << selectionParameter_.minQuality << "\t maxDxyPV " << selectionParameter_.maxDxyPV << "\t maxDzPV " - << selectionParameter_.maxDzPV << "\t maxChi2 " << selectionParameter_.maxChi2 << "\t maxDpOverP " - << selectionParameter_.maxDpOverP << "\t minOuterHit " << selectionParameter_.minOuterHit << "\t minLayerCrossed " - << selectionParameter_.minLayerCrossed << "\t maxInMiss " << selectionParameter_.maxInMiss << "\t maxOutMiss " - << selectionParameter_.maxOutMiss << "\t a_coneR " << a_coneR_ << ":" << a_coneR1_ << ":" << a_coneR2_ - << "\t a_charIsoR " << a_charIsoR_ << "\t a_mipR " << a_mipR_ << "\n pTrackMin_ " << pTrackMin_ << "\t eEcalMax_ " - << eEcalMax_ << "\t maxRestrictionP_ " << maxRestrictionP_ << "\t slopeRestrictionP_ " << slopeRestrictionP_ - << "\t eIsolateStrong_ " << eIsolate1_ << "\t eIsolateSoft_ " << eIsolate2_ << "\t hcalScale_ " << hcalScale_ - << "\n\t momentumLow_ " << pTrackLow_ << "\t prescaleLow_ " << prescaleLow_ << "\t momentumHigh_ " << pTrackHigh_ - << "\t prescaleHigh_ " << prescaleHigh_ << "\n\t useRaw_ " << useRaw_ << "\t ignoreTrigger_ " << ignoreTrigger_ - << "\n\t useL1Trigegr_ " << useL1Trigger_ << "\t dataType_ " << dataType_ << "\t unCorrect_ " - << unCorrect_ << "\t collapseDepth_ " << collapseDepth_ << "\t L1TrigName_ " << l1TrigName_ - << "\nThreshold for EB " << hitEthrEB_ << " EE " << hitEthrEE0_ << ":" << hitEthrEE1_ << ":" << hitEthrEE2_ << ":" - << hitEthrEE3_ << ":" << hitEthrEELo_ << ":" << hitEthrEEHi_; + edm::LogVerbatim("HcalIsoTrack") << "Parameters read from config file \n" + << "\t minPt " << selectionParameter_.minPt << "\t theTrackQuality " + << theTrackQuality_ << "\t minQuality " << selectionParameter_.minQuality + << "\t maxDxyPV " << selectionParameter_.maxDxyPV << "\t maxDzPV " + << selectionParameter_.maxDzPV << "\t maxChi2 " << selectionParameter_.maxChi2 + << "\t maxDpOverP " << selectionParameter_.maxDpOverP << "\t minOuterHit " + << selectionParameter_.minOuterHit << "\t minLayerCrossed " + << selectionParameter_.minLayerCrossed << "\t maxInMiss " + << selectionParameter_.maxInMiss << "\t maxOutMiss " + << selectionParameter_.maxOutMiss << "\t a_coneR " << a_coneR_ << ":" << a_coneR1_ + << ":" << a_coneR2_ << "\t a_charIsoR " << a_charIsoR_ << "\t a_mipR " << a_mipR_ + << "\n pTrackMin_ " << pTrackMin_ << "\t eEcalMax_ " << eEcalMax_ + << "\t maxRestrictionP_ " << maxRestrictionP_ << "\t slopeRestrictionP_ " + << slopeRestrictionP_ << "\t eIsolateStrong_ " << eIsolate1_ << "\t eIsolateSoft_ " + << eIsolate2_ << "\t hcalScale_ " << hcalScale_ << "\n\t momentumLow_ " << pTrackLow_ + << "\t prescaleLow_ " << prescaleLow_ << "\t momentumHigh_ " << pTrackHigh_ + << "\t prescaleHigh_ " << prescaleHigh_ << "\n\t useRaw_ " << useRaw_ + << "\t ignoreTrigger_ " << ignoreTrigger_ << "\n\t useL1Trigegr_ " << useL1Trigger_ + << "\t dataType_ " << dataType_ << "\t mode_ " << mode_ + << "\t unCorrect_ " << unCorrect_ << "\t collapseDepth_ " << collapseDepth_ + << "\t L1TrigName_ " << l1TrigName_; edm::LogVerbatim("HcalIsoTrack") << "Process " << processName_ << " L1Filter:" << l1Filter_ << " L2Filter:" << l2Filter_ << " L3Filter:" << l3Filter_; for (unsigned int k = 0; k < trigNames_.size(); ++k) { edm::LogVerbatim("HcalIsoTrack") << "Trigger[" << k << "] " << trigNames_[k]; } - tok_ddrec_ = esConsumes(); - tok_bFieldH_ = esConsumes(); - tok_ecalChStatus_ = esConsumes(); - tok_sevlv_ = esConsumes(); - tok_geom_ = esConsumes(); - tok_caloTopology_ = esConsumes(); - tok_htopo_ = esConsumes(); - tok_resp_ = esConsumes(); - for (int i = 0; i < 10; i++) phibins_.push_back(-M_PI + 0.1 * (2 * i + 1) * M_PI); for (int i = 0; i < 8; ++i) @@ -394,16 +382,34 @@ void HcalIsoTrackStudy::analyze(edm::Event const& iEvent, edm::EventSetup const& << " Luminosity " << iEvent.luminosityBlock() << " Bunch " << iEvent.bunchCrossing(); #endif //Get magnetic field and ECAL channel status - const MagneticField* bField = &iSetup.getData(tok_bFieldH_); - const EcalChannelStatus* theEcalChStatus = &iSetup.getData(tok_ecalChStatus_); - const EcalSeverityLevelAlgo* theEcalSevlv = &iSetup.getData(tok_sevlv_); + edm::ESHandle bFieldH; + iSetup.get().get(bFieldH); + const MagneticField* bField = bFieldH.product(); + + edm::ESHandle ecalChStatus; + iSetup.get().get(ecalChStatus); + const EcalChannelStatus* theEcalChStatus = ecalChStatus.product(); + + edm::ESHandle sevlv; + iSetup.get().get(sevlv); + const EcalSeverityLevelAlgo* theEcalSevlv = sevlv.product(); // get handles to calogeometry and calotopology - const CaloGeometry* geo = &iSetup.getData(tok_geom_); - const CaloTopology* caloTopology = &iSetup.getData(tok_caloTopology_); - const HcalTopology* theHBHETopology = &iSetup.getData(tok_htopo_); - const HcalRespCorrs resp = iSetup.getData(tok_resp_); - HcalRespCorrs* respCorrs = new HcalRespCorrs(resp); + edm::ESHandle pG; + iSetup.get().get(pG); + const CaloGeometry* geo = pG.product(); + + edm::ESHandle theCaloTopology; + iSetup.get().get(theCaloTopology); + const CaloTopology* caloTopology = theCaloTopology.product(); + + edm::ESHandle htopo; + iSetup.get().get(htopo); + const HcalTopology* theHBHETopology = htopo.product(); + + edm::ESHandle resp; + iSetup.get().get(resp); + HcalRespCorrs* respCorrs = new HcalRespCorrs(*resp.product()); respCorrs->setTopo(theHBHETopology); //=== genParticle information @@ -692,7 +698,7 @@ void HcalIsoTrackStudy::analyze(edm::Event const& iEvent, edm::EventSetup const& } void HcalIsoTrackStudy::beginJob() { - tree = fs->make("CalibTreeExtended", "CalibTreeExtended"); + tree = fs->make("CalibTree", "CalibTree"); tree->Branch("t_Run", &t_Run, "t_Run/I"); tree->Branch("t_Event", &t_Event, "t_Event/I"); @@ -703,12 +709,14 @@ void HcalIsoTrackStudy::beginJob() { tree->Branch("t_nVtx", &t_nVtx, "t_nVtx/I"); tree->Branch("t_nTrk", &t_nTrk, "t_nTrk/I"); tree->Branch("t_goodPV", &t_goodPV, "t_goodPV/I"); - tree->Branch("t_l1pt", &t_l1pt, "t_l1pt/D"); - tree->Branch("t_l1eta", &t_l1eta, "t_l1eta/D"); - tree->Branch("t_l1phi", &t_l1phi, "t_l1phi/D"); - tree->Branch("t_l3pt", &t_l3pt, "t_l3pt/D"); - tree->Branch("t_l3eta", &t_l3eta, "t_l3eta/D"); - tree->Branch("t_l3phi", &t_l3phi, "t_l3phi/D"); + if (((mode_ / 10) % 10) == 1) { + tree->Branch("t_l1pt", &t_l1pt, "t_l1pt/D"); + tree->Branch("t_l1eta", &t_l1eta, "t_l1eta/D"); + tree->Branch("t_l1phi", &t_l1phi, "t_l1phi/D"); + tree->Branch("t_l3pt", &t_l3pt, "t_l3pt/D"); + tree->Branch("t_l3eta", &t_l3eta, "t_l3eta/D"); + tree->Branch("t_l3phi", &t_l3phi, "t_l3phi/D"); + } tree->Branch("t_p", &t_p, "t_p/D"); tree->Branch("t_pt", &t_pt, "t_pt/D"); tree->Branch("t_phi", &t_phi, "t_phi/D"); @@ -755,19 +763,23 @@ void HcalIsoTrackStudy::beginJob() { t_trgbits = new std::vector(); tree->Branch("t_DetIds", "std::vector", &t_DetIds); tree->Branch("t_HitEnergies", "std::vector", &t_HitEnergies); - tree->Branch("t_trgbits", "std::vector", &t_trgbits); - tree->Branch("t_DetIds1", "std::vector", &t_DetIds1); - tree->Branch("t_HitEnergies1", "std::vector", &t_HitEnergies1); - tree->Branch("t_DetIds3", "std::vector", &t_DetIds3); - tree->Branch("t_HitEnergies3", "std::vector", &t_HitEnergies3); - tree->Branch("t_DetIdEC", "std::vector", &t_DetIdEC); - tree->Branch("t_HitEnergyEC", "std::vector", &t_HitEnergyEC); - tree->Branch("t_HitDistEC", "std::vector", &t_HitDistEC); - tree->Branch("t_DetIdHC", "std::vector", &t_DetIdHC); - tree->Branch("t_HitEnergyHC", "std::vector", &t_HitEnergyHC); - tree->Branch("t_HitDistHC", "std::vector", &t_HitDistHC); - + if (((mode_ / 10) % 10) == 1) { + tree->Branch("t_trgbits", "std::vector", &t_trgbits); + } + if ((mode_ % 10) == 1) { + tree->Branch("t_DetIds1", "std::vector", &t_DetIds1); + tree->Branch("t_HitEnergies1", "std::vector", &t_HitEnergies1); + tree->Branch("t_DetIds3", "std::vector", &t_DetIds3); + tree->Branch("t_HitEnergies3", "std::vector", &t_HitEnergies3); + tree->Branch("t_DetIdEC", "std::vector", &t_DetIdEC); + tree->Branch("t_HitEnergyEC", "std::vector", &t_HitEnergyEC); + tree->Branch("t_HitDistEC", "std::vector", &t_HitDistEC); + tree->Branch("t_DetIdHC", "std::vector", &t_DetIdHC); + tree->Branch("t_HitEnergyHC", "std::vector", &t_HitEnergyHC); + tree->Branch("t_HitDistHC", "std::vector", &t_HitDistHC); + } tree2 = fs->make("EventInfo", "Event Information"); + tree2->Branch("t_RunNo", &t_RunNo, "t_RunNo/i"); tree2->Branch("t_EventNo", &t_EventNo, "t_EventNo/i"); tree2->Branch("t_Tracks", &t_Tracks, "t_Tracks/I"); @@ -791,7 +803,9 @@ void HcalIsoTrackStudy::beginJob() { // ------------ method called when starting to processes a run ------------ void HcalIsoTrackStudy::beginRun(edm::Run const& iRun, edm::EventSetup const& iSetup) { - hdc_ = &iSetup.getData(tok_ddrec_); + edm::ESHandle pHRNDC; + iSetup.get().get(pHRNDC); + hdc_ = pHRNDC.product(); bool changed_(true); bool flag = hltConfig_.init(iRun, iSetup, processName_, changed_); @@ -853,7 +867,7 @@ void HcalIsoTrackStudy::fillDescriptions(edm::ConfigurationDescriptions& descrip desc.add("maxInMiss", 0); desc.add("maxOutMiss", 0); // Minimum momentum of selected isolated track and signal zone - desc.add("minimumTrackP", 20.0); + desc.add("minimumTrackP", 10.0); desc.add("coneRadius", 34.98); // signal zone in ECAL and MIP energy cutoff desc.add("coneRadiusMIP", 14.0); @@ -864,12 +878,12 @@ void HcalIsoTrackStudy::fillDescriptions(edm::ConfigurationDescriptions& descrip desc.add("isolationEnergyTight", 2.0); desc.add("isolationEnergyLoose", 10.0); // energy thershold for ECAL (from Egamma group) - desc.add("EBHitEnergyThreshold", 0.08); - desc.add("EEHitEnergyThreshold0", 0.30); - desc.add("EEHitEnergyThreshold1", 0.00); - desc.add("EEHitEnergyThreshold2", 0.00); - desc.add("EEHitEnergyThreshold3", 0.00); - desc.add("EEHitEnergyThresholdLow", 0.30); + desc.add("EBHitEnergyThreshold", 0.10); + desc.add("EEHitEnergyThreshold0", -41.0664); + desc.add("EEHitEnergyThreshold1", 68.7950); + desc.add("EEHitEnergyThreshold2", -38.1483); + desc.add("EEHitEnergyThreshold3", 7.04303); + desc.add("EEHitEnergyThresholdLow", 0.08); desc.add("EEHitEnergyThresholdHigh", 0.30); // prescale factors desc.add("momentumLow", 40.0); @@ -897,6 +911,7 @@ void HcalIsoTrackStudy::fillDescriptions(edm::ConfigurationDescriptions& descrip desc.addUntracked("useL1Trigger", false); desc.addUntracked("hcalScale", 1.0); desc.addUntracked("dataType", 0); + desc.addUntracked("outMode", 11); desc.addUntracked("unCorrect", false); desc.addUntracked("collapseDepth", false); desc.addUntracked("l1TrigName", "L1_SingleJet60"); @@ -1000,15 +1015,7 @@ std::array HcalIsoTrackStudy::fillTree(std::vectorgetPosition(eIds[k]); double eta = std::abs(pos.eta()); - double eThr(hitEthrEB_); - if (eIds[k].subdetId() != EcalBarrel) { - eThr = (((eta * hitEthrEE3_ + hitEthrEE2_) * eta + hitEthrEE1_) * eta + hitEthrEE0_); - if (eThr < hitEthrEELo_) - eThr = hitEthrEELo_; - else if (eThr > hitEthrEEHi_) - eThr = hitEthrEEHi_; - } - if (eHit[k] > eThr) + if (eHit[k] > eThreshold(eIds[k], eta)) eEcal += eHit[k]; } #ifdef EDM_ML_DEBUG @@ -1444,5 +1451,17 @@ void HcalIsoTrackStudy::TrackMap(unsigned int trkIndex, } } +double HcalIsoTrackStudy::eThreshold(const DetId& id, double eta) const { + double eThr(hitEthrEB_); + if (id.subdetId() != EcalBarrel) { + eThr = (((eta * hitEthrEE3_ + hitEthrEE2_) * eta + hitEthrEE1_) * eta + hitEthrEE0_); + if (eThr < hitEthrEELo_) + eThr = hitEthrEELo_; + else if (eThr > hitEthrEEHi_) + eThr = hitEthrEEHi_; + } + return eThr; +} + //define this as a plug-in DEFINE_FWK_MODULE(HcalIsoTrackStudy); diff --git a/Calibration/LumiAlCaRecoProducers/plugins/AlcaPCCProducer.cc b/Calibration/LumiAlCaRecoProducers/plugins/AlcaPCCProducer.cc index 6a6bda913de6e..83b504f1ff8a2 100644 --- a/Calibration/LumiAlCaRecoProducers/plugins/AlcaPCCProducer.cc +++ b/Calibration/LumiAlCaRecoProducers/plugins/AlcaPCCProducer.cc @@ -21,62 +21,43 @@ ________________________________________________________________**/ #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/Utilities/interface/EDGetToken.h" -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/LuminosityBlock.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" -#include "TMath.h" //The class -class AlcaPCCProducer : public edm::one::EDProducer { +class AlcaPCCProducer + : public edm::one::EDProducer> { public: explicit AlcaPCCProducer(const edm::ParameterSet&); - ~AlcaPCCProducer() override; private: - void beginLuminosityBlock(edm::LuminosityBlock const& lumiSeg, const edm::EventSetup& iSetup) override; - void endLuminosityBlock(edm::LuminosityBlock const& lumiSeg, const edm::EventSetup& iSetup) override; - void endLuminosityBlockProduce(edm::LuminosityBlock& lumiSeg, const edm::EventSetup& iSetup) override; - void produce(edm::Event& iEvent, const edm::EventSetup& iSetup) override; - - edm::EDGetTokenT > pixelToken; - edm::InputTag fPixelClusterLabel; - - std::string trigstring_; //specifies the trigger Rand or ZeroBias - int countEvt_; //counter - int countLumi_; //counter - - std::unique_ptr thePCCob; + std::shared_ptr globalBeginLuminosityBlock(edm::LuminosityBlock const& lumiSeg, + edm::EventSetup const& iSetup) const final; + void endLuminosityBlockProduce(edm::LuminosityBlock& lumiSeg, const edm::EventSetup& iSetup) final; + void globalEndLuminosityBlock(edm::LuminosityBlock const&, edm::EventSetup const&) final {} + void produce(edm::Event& iEvent, const edm::EventSetup& iSetup) final; + + edm::EDGetTokenT> pixelToken_; + edm::EDPutTokenT putToken_; }; //-------------------------------------------------------------------------------------------------- -AlcaPCCProducer::AlcaPCCProducer(const edm::ParameterSet& iConfig) { - fPixelClusterLabel = iConfig.getParameter("pixelClusterLabel"); - trigstring_ = iConfig.getUntrackedParameter("trigstring", "alcaPCC"); - - countLumi_ = 0; - - produces(trigstring_); - pixelToken = consumes >(fPixelClusterLabel); -} - -//-------------------------------------------------------------------------------------------------- -AlcaPCCProducer::~AlcaPCCProducer() {} +AlcaPCCProducer::AlcaPCCProducer(const edm::ParameterSet& iConfig) + : pixelToken_(consumes(iConfig.getParameter("pixelClusterLabel"))), + //specifies the trigger Rand or ZeroBias + putToken_(produces( + iConfig.getUntrackedParameter("trigstring", "alcaPCC"))) {} //-------------------------------------------------------------------------------------------------- void AlcaPCCProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { - countEvt_++; - unsigned int bx = iEvent.bunchCrossing(); //std::cout<<"The Bunch Crossing"<eventCounter(bx); + auto* pccOb = luminosityBlockCache(iEvent.getLuminosityBlock().index()); + pccOb->eventCounter(bx); //Looping over the clusters and adding the counts up - edm::Handle > hClusterColl; - iEvent.getByToken(pixelToken, hClusterColl); - - const edmNew::DetSetVector& clustColl = *(hClusterColl.product()); + const edmNew::DetSetVector& clustColl = iEvent.get(pixelToken_); // ---------------------------------------------------------------------- // -- Clusters without tracks for (auto const& mod : clustColl) { @@ -94,24 +75,21 @@ void AlcaPCCProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) // nClusterCount++; //} int nCluster = mod.size(); - thePCCob->increment(detId(), bx, nCluster); + pccOb->increment(detId(), bx, nCluster); } } //-------------------------------------------------------------------------------------------------- -void AlcaPCCProducer::beginLuminosityBlock(edm::LuminosityBlock const& lumiSeg, const edm::EventSetup& iSetup) { +std::shared_ptr AlcaPCCProducer::globalBeginLuminosityBlock( + edm::LuminosityBlock const& lumiSeg, edm::EventSetup const& iSetup) const { //New PCC object at the beginning of each lumi section - thePCCob = std::make_unique(); - countLumi_++; + return std::make_shared(); } -//-------------------------------------------------------------------------------------------------- -void AlcaPCCProducer::endLuminosityBlock(edm::LuminosityBlock const& lumiSeg, const edm::EventSetup& iSetup) {} - //-------------------------------------------------------------------------------------------------- void AlcaPCCProducer::endLuminosityBlockProduce(edm::LuminosityBlock& lumiSeg, const edm::EventSetup& iSetup) { //Saving the PCC object - lumiSeg.put(std::move(thePCCob), std::string(trigstring_)); + lumiSeg.emplace(putToken_, std::move(*luminosityBlockCache(lumiSeg.index()))); } DEFINE_FWK_MODULE(AlcaPCCProducer); diff --git a/CaloOnlineTools/HcalOnlineDb/src/HcalLutManager.cc b/CaloOnlineTools/HcalOnlineDb/src/HcalLutManager.cc index e3870c67e4053..757ac9fc102f9 100644 --- a/CaloOnlineTools/HcalOnlineDb/src/HcalLutManager.cc +++ b/CaloOnlineTools/HcalOnlineDb/src/HcalLutManager.cc @@ -978,6 +978,9 @@ std::map> HcalLutManager::getCompressionLutXmlFromC _cfg.generalizedindex = _cfg.iphi * 10000 + (row->ieta > 0) * 100 + abs(row->ieta); //is this used for anything? _cfg.lut = _coder.getCompressionLUT(_detid); + auto pWeight = conditions->getHcalTPChannelParameter(_detid, false); + if (pWeight) + _cfg.weight = pWeight->getauxi1(); int crot = 100 * row->crate + row->slot; unsigned int size = _cfg.lut.size(); diff --git a/CaloOnlineTools/HcalOnlineDb/test/genLUT.sh b/CaloOnlineTools/HcalOnlineDb/test/genLUT.sh index 7c5a2706fe4d9..5b2c93758c7d3 100755 --- a/CaloOnlineTools/HcalOnlineDb/test/genLUT.sh +++ b/CaloOnlineTools/HcalOnlineDb/test/genLUT.sh @@ -170,17 +170,23 @@ then echo "Creating Trigger Key..." echo - dd=$(date +"%Y-%m-%d %H:%M:%S") + HcalInput=( "${inputConditions[@]/#/Hcal}" ) + declare -A tagMap + eval $(conddb list $GlobalTag | grep -E "$(export IFS="|"; echo "${HcalInput[*]}")" | \ + awk '{if($2=="-" || $2=="effective") if(!($1~/^HcalPed/ && $2=="-")) print "tagMap["$1"]="$3}') + individualInputTags="" for i in ${inputConditions[@]}; do t=$i v=${!t} - if [[ -n $v ]]; then - individualInputTags="""$individualInputTags + if [[ -z $v ]]; then + v=${tagMap[Hcal${i}Rcd]} + fi + individualInputTags="""$individualInputTags $v""" - fi done + dd=$(date +"%Y-%m-%d %H:%M:%S") echo """ diff --git a/CondCore/EcalPlugins/src/plugin.cc b/CondCore/EcalPlugins/src/plugin.cc index 8a80718d7b948..3472afa007f91 100644 --- a/CondCore/EcalPlugins/src/plugin.cc +++ b/CondCore/EcalPlugins/src/plugin.cc @@ -108,6 +108,15 @@ #include "CondFormats/EcalObjects/interface/EcalTPGWeightIdMap.h" #include "CondFormats/DataRecord/interface/EcalTPGWeightIdMapRcd.h" +#include "CondFormats/EcalObjects/interface/EcalTPGOddWeightGroup.h" +#include "CondFormats/DataRecord/interface/EcalTPGOddWeightGroupRcd.h" + +#include "CondFormats/EcalObjects/interface/EcalTPGOddWeightIdMap.h" +#include "CondFormats/DataRecord/interface/EcalTPGOddWeightIdMapRcd.h" + +#include "CondFormats/EcalObjects/interface/EcalTPGTPMode.h" +#include "CondFormats/DataRecord/interface/EcalTPGTPModeRcd.h" + #include "CondFormats/EcalObjects/interface/EcalTPGCrystalStatus.h" #include "CondFormats/DataRecord/interface/EcalTPGCrystalStatusRcd.h" @@ -207,6 +216,11 @@ REGISTER_PLUGIN(EcalTPGPhysicsConstRcd, EcalTPGPhysicsConst); REGISTER_PLUGIN(EcalTPGSlidingWindowRcd, EcalTPGSlidingWindow); REGISTER_PLUGIN(EcalTPGWeightGroupRcd, EcalTPGWeightGroup); REGISTER_PLUGIN(EcalTPGWeightIdMapRcd, EcalTPGWeightIdMap); +REGISTER_PLUGIN(EcalTPGOddWeightGroupRcd, EcalTPGOddWeightGroup); +REGISTER_PLUGIN(EcalTPGOddWeightIdMapRcd, EcalTPGOddWeightIdMap); + +REGISTER_PLUGIN(EcalTPGTPModeRcd, EcalTPGTPMode); + REGISTER_PLUGIN(EcalTPGCrystalStatusRcd, EcalCondObjectContainer); REGISTER_PLUGIN(EcalTPGTowerStatusRcd, EcalTPGTowerStatus); REGISTER_PLUGIN(EcalTPGStripStatusRcd, EcalTPGStripStatus); diff --git a/CondCore/SiPixelPlugins/BuildFile.xml b/CondCore/SiPixelPlugins/BuildFile.xml index a555b7101e54c..22ef1cfd09494 100644 --- a/CondCore/SiPixelPlugins/BuildFile.xml +++ b/CondCore/SiPixelPlugins/BuildFile.xml @@ -1,3 +1,4 @@ + diff --git a/CondCore/SiPixelPlugins/interface/Phase1PixelMaps.h b/CondCore/SiPixelPlugins/interface/Phase1PixelMaps.h deleted file mode 100644 index ad36f13eff12a..0000000000000 --- a/CondCore/SiPixelPlugins/interface/Phase1PixelMaps.h +++ /dev/null @@ -1,472 +0,0 @@ -#ifndef CONDCORE_SIPIXELPLUGINS_PHASE1PIXELMAPS_H -#define CONDCORE_SIPIXELPLUGINS_PHASE1PIXELMAPS_H - -#include "TH2Poly.h" -#include "TGraph.h" -#include "TH1.h" -#include "TH2.h" -#include "TStyle.h" -#include "TCanvas.h" - -#include -#include -#include - -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "CalibTracker/StandaloneTrackerTopology/interface/StandaloneTrackerTopology.h" - -#define MYOUT LogDebug("Phase1PixelMaps") - -using indexedCorners = std::map, std::vector>>; - -/*-------------------------------------------------------------------- -/ Ancillary class to build pixel phase-1 tracker maps -/--------------------------------------------------------------------*/ -class Phase1PixelMaps { -public: - Phase1PixelMaps(const char* option) - : m_option{option}, - m_trackerTopo{StandaloneTrackerTopology::fromTrackerParametersXMLFile( - edm::FileInPath("Geometry/TrackerCommonData/data/PhaseI/trackerParameters.xml").fullPath())} { - // set the rescale to true by default - m_autorescale = true; - - // store the file in path for the corners (BPIX) - for (unsigned int i = 1; i <= 4; i++) { - m_cornersBPIX.push_back(edm::FileInPath(Form("DQM/SiStripMonitorClient/data/Geometry/vertices_barrel_%i", i))); - } - - // store the file in path for the corners (BPIX) - for (int j : {-3, -2, -1, 1, 2, 3}) { - m_cornersFPIX.push_back(edm::FileInPath(Form("DQM/SiStripMonitorClient/data/Geometry/vertices_forward_%i", j))); - } - } - - ~Phase1PixelMaps() {} - - // set of no rescale - void setNoRescale() { m_autorescale = false; } - - /*--------------------------------------------------------------------*/ - const indexedCorners retrieveCorners(const std::vector& cornerFiles, const unsigned int reads) - /*--------------------------------------------------------------------*/ - { - indexedCorners theOutMap; - - for (const auto& file : cornerFiles) { - auto cornerFileName = file.fullPath(); - std::ifstream cornerFile(cornerFileName.c_str()); - if (!cornerFile.good()) { - throw cms::Exception("FileError") << "Problem opening corner file: " << cornerFileName; - } - std::string line; - while (std::getline(cornerFile, line)) { - if (!line.empty()) { - std::istringstream iss(line); - unsigned int id; - std::string name; - std::vector corners(reads, ""); - std::vector xP, yP; - - iss >> id >> name; - for (unsigned int i = 0; i < reads; ++i) { - iss >> corners.at(i); - } - - MYOUT << id << " : "; - for (unsigned int i = 0; i < reads; i++) { - // remove the leading and trailing " signs in the corners list - (corners[i]).erase(std::remove(corners[i].begin(), corners[i].end(), '"'), corners[i].end()); - MYOUT << corners.at(i) << " "; - typedef boost::tokenizer> tokenizer; - boost::char_separator sep{","}; - tokenizer tok{corners.at(i), sep}; - for (const auto& t : tok | boost::adaptors::indexed(0)) { - if (t.index() == 0) { - xP.push_back(atof((t.value()).c_str())); - } else if (t.index() == 1) { - yP.push_back(atof((t.value()).c_str())); - } else { - edm::LogError("LogicError") << "There should not be any token with index " << t.index() << std::endl; - } - } - } - MYOUT << std::endl; - - xP.push_back(xP.front()); - yP.push_back(yP.front()); - - for (unsigned int i = 0; i < xP.size(); i++) { - MYOUT << "x[" << i << "]=" << xP[i] << " y[" << i << "]" << yP[i] << std::endl; - } - - theOutMap[id] = std::make_pair(xP, yP); - - } // if line is empty - } // loop on lines - } // loop on files - return theOutMap; - } - - /*--------------------------------------------------------------------*/ - void makeNicePlotStyle(TH1* hist) - /*--------------------------------------------------------------------*/ - { - hist->SetStats(kFALSE); - hist->SetLineWidth(2); - hist->GetXaxis()->CenterTitle(true); - hist->GetYaxis()->CenterTitle(true); - hist->GetXaxis()->SetTitleFont(42); - hist->GetYaxis()->SetTitleFont(42); - hist->GetXaxis()->SetTitleSize(0.05); - hist->GetYaxis()->SetTitleSize(0.05); - hist->GetXaxis()->SetTitleOffset(1.1); - hist->GetYaxis()->SetTitleOffset(1.3); - hist->GetXaxis()->SetLabelFont(42); - hist->GetYaxis()->SetLabelFont(42); - hist->GetYaxis()->SetLabelSize(.05); - hist->GetXaxis()->SetLabelSize(.05); - - if (hist->InheritsFrom(TH2::Class())) { - hist->GetZaxis()->SetLabelFont(42); - hist->GetZaxis()->SetLabelFont(42); - hist->GetZaxis()->SetLabelSize(.05); - hist->GetZaxis()->SetLabelSize(.05); - } - } - - /*--------------------------------------------------------------------*/ - void adjustCanvasMargins(TVirtualPad* pad, float top, float bottom, float left, float right) - /*--------------------------------------------------------------------*/ - { - if (top > 0) - pad->SetTopMargin(top); - if (bottom > 0) - pad->SetBottomMargin(bottom); - if (left > 0) - pad->SetLeftMargin(left); - if (right > 0) - pad->SetRightMargin(right); - } - - //============================================================================ - void bookBarrelHistograms(const std::string& currentHistoName, const char* what, const char* zaxis) { - std::string histName; - std::shared_ptr th2p; - - for (unsigned i = 0; i < 4; ++i) { - histName = "barrel_layer_"; - - th2p = std::make_shared((histName + std::to_string(i + 1)).c_str(), - Form("PXBMap of %s - Layer %i", what, i + 1), - -15.0, - 15.0, - 0.0, - 5.0); - - th2p->SetFloat(); - - th2p->GetXaxis()->SetTitle("z [cm]"); - th2p->GetYaxis()->SetTitle("ladder"); - th2p->GetZaxis()->SetTitle(zaxis); - th2p->GetZaxis()->CenterTitle(); - th2p->SetStats(false); - th2p->SetOption(m_option); - pxbTh2PolyBarrel[currentHistoName].push_back(th2p); - } - - th2p = std::make_shared("barrel_summary", "PXBMap", -5.0, 5.0, 0.0, 5.0); - th2p->SetFloat(); - - th2p->GetXaxis()->SetTitle(""); - th2p->GetYaxis()->SetTitle("~ladder"); - th2p->SetStats(false); - th2p->SetOption(m_option); - pxbTh2PolyBarrelSummary[currentHistoName] = th2p; - } - - //============================================================================ - void bookForwardHistograms(const std::string& currentHistoName, const char* what, const char* zaxis) { - std::string histName; - std::shared_ptr th2p; - - for (unsigned side = 1; side <= 2; ++side) { - for (unsigned disk = 1; disk <= 3; ++disk) { - histName = "forward_disk_"; - - th2p = std::make_shared((histName + std::to_string((side == 1 ? -(int(disk)) : (int)disk))).c_str(), - Form("PXFMap of %s - Side %i Disk %i", what, side, disk), - -15.0, - 15.0, - -15.0, - 15.0); - th2p->SetFloat(); - th2p->GetXaxis()->SetTitle("x [cm]"); - th2p->GetYaxis()->SetTitle("y [cm]"); - th2p->GetZaxis()->SetTitle(zaxis); - th2p->GetZaxis()->CenterTitle(); - th2p->SetStats(false); - th2p->SetOption(m_option); - pxfTh2PolyForward[currentHistoName].push_back(th2p); - } - } - - th2p = std::make_shared("forward_summary", "PXFMap", -40.0, 50.0, -20.0, 90.0); - th2p->SetFloat(); - - th2p->GetXaxis()->SetTitle(""); - th2p->GetYaxis()->SetTitle(""); - th2p->SetStats(false); - th2p->SetOption(m_option); - pxfTh2PolyForwardSummary[currentHistoName] = th2p; - } - - //============================================================================ - void bookBarrelBins(const std::string& currentHistoName) { - auto theIndexedCorners = this->retrieveCorners(m_cornersBPIX, 4); - - for (const auto& entry : theIndexedCorners) { - auto id = entry.first; - auto detid = DetId(id); - if (detid.subdetId() != PixelSubdetector::PixelBarrel) - continue; - - int layer = m_trackerTopo.pxbLayer(detid); - int ladder = m_trackerTopo.pxbLadder(detid); - - auto theVectX = entry.second.first; - auto theVectY = entry.second.second; - - float vertX[] = {theVectX[0], theVectX[1], theVectX[2], theVectX[3], theVectX[4]}; - float vertY[] = {(ladder - 1.0f), (ladder - 1.0f), (float)ladder, (float)ladder, (ladder - 1.0f)}; - - bins[id] = std::make_shared(5, vertX, vertY); - bins[id]->SetName(TString::Format("%u", id)); - - // Summary plot - for (unsigned k = 0; k < 5; ++k) { - vertX[k] += ((layer == 2 || layer == 3) ? 0.0f : -60.0f); - vertY[k] += ((layer > 2) ? 30.0f : 0.0f); - } - - binsSummary[id] = std::make_shared(5, vertX, vertY); - binsSummary[id]->SetName(TString::Format("%u", id)); - - if (pxbTh2PolyBarrel.find(currentHistoName) != pxbTh2PolyBarrel.end()) { - pxbTh2PolyBarrel[currentHistoName][layer - 1]->AddBin(bins[id]->Clone()); - } else { - throw cms::Exception("LogicError") << currentHistoName << " is not found in the Barrel map! Aborting."; - } - - if (pxbTh2PolyBarrelSummary.find(currentHistoName) != pxbTh2PolyBarrelSummary.end()) { - pxbTh2PolyBarrelSummary[currentHistoName]->AddBin(binsSummary[id]->Clone()); - } else { - throw cms::Exception("LocalError") << currentHistoName << " is not found in the Barrel Summary map! Aborting."; - } - } - } - - //============================================================================ - void bookForwardBins(const std::string& currentHistoName) { - auto theIndexedCorners = this->retrieveCorners(m_cornersFPIX, 3); - - for (const auto& entry : theIndexedCorners) { - auto id = entry.first; - auto detid = DetId(id); - if (detid.subdetId() != PixelSubdetector::PixelEndcap) - continue; - - int disk = m_trackerTopo.pxfDisk(detid); - int side = m_trackerTopo.pxfSide(detid); - - unsigned mapIdx = disk + (side - 1) * 3 - 1; - - auto theVectX = entry.second.first; - auto theVectY = entry.second.second; - - float vertX[] = {theVectX[0], theVectX[1], theVectX[2], theVectX[3]}; - float vertY[] = {theVectY[0], theVectY[1], theVectY[2], theVectY[3]}; - - bins[id] = std::make_shared(4, vertX, vertY); - bins[id]->SetName(TString::Format("%u", id)); - - // Summary plot - for (unsigned k = 0; k < 4; ++k) { - vertX[k] += (float(side) - 1.5f) * 40.0f; - vertY[k] += (disk - 1) * 35.0f; - } - - binsSummary[id] = std::make_shared(4, vertX, vertY); - binsSummary[id]->SetName(TString::Format("%u", id)); - - if (pxfTh2PolyForward.find(currentHistoName) != pxfTh2PolyForward.end()) { - pxfTh2PolyForward[currentHistoName][mapIdx]->AddBin(bins[id]->Clone()); - } else { - throw cms::Exception("LogicError") << currentHistoName << " is not found in the Forward map! Aborting."; - } - - if (pxfTh2PolyForwardSummary.find(currentHistoName) != pxfTh2PolyForwardSummary.end()) { - pxfTh2PolyForwardSummary[currentHistoName]->AddBin(binsSummary[id]->Clone()); - } else { - throw cms::Exception("LogicError") << currentHistoName << " is not found in the Forward Summary map! Aborting."; - } - } - } - - //============================================================================ - template - void fillBarrelBin(const std::string& currentHistoName, unsigned int id, type value) { - auto detid = DetId(id); - if (detid.subdetId() != PixelSubdetector::PixelBarrel) { - edm::LogError("Phase1PixelMaps") << "fillBarrelBin() The following detid " << id << " is not Pixel Barrel!" - << std::endl; - return; - } - int layer = m_trackerTopo.pxbLayer(id); - pxbTh2PolyBarrel[currentHistoName][layer - 1]->Fill(TString::Format("%u", id), value); - } - - //============================================================================ - template - void fillForwardBin(const std::string& currentHistoName, unsigned int id, type value) { - auto detid = DetId(id); - if (detid.subdetId() != PixelSubdetector::PixelEndcap) { - edm::LogError("Phase1PixelMaps") << "fillForwardBin() The following detid " << id << " is not Pixel Forward!" - << std::endl; - return; - } - int disk = m_trackerTopo.pxfDisk(id); - int side = m_trackerTopo.pxfSide(id); - unsigned mapIdx = disk + (side - 1) * 3 - 1; - pxfTh2PolyForward[currentHistoName][mapIdx]->Fill(TString::Format("%u", id), value); - } - - //============================================================================ - void beautifyAllHistograms() { - for (const auto& vec : pxbTh2PolyBarrel) { - for (const auto& plot : vec.second) { - this->makeNicePlotStyle(plot.get()); - plot->GetXaxis()->SetTitleOffset(0.9); - plot->GetYaxis()->SetTitleOffset(0.9); - plot->GetZaxis()->SetTitleOffset(1.2); - plot->GetZaxis()->SetTitleSize(0.05); - } - } - - for (const auto& vec : pxfTh2PolyForward) { - for (const auto& plot : vec.second) { - this->makeNicePlotStyle(plot.get()); - plot->GetXaxis()->SetTitleOffset(0.9); - plot->GetYaxis()->SetTitleOffset(0.9); - plot->GetZaxis()->SetTitleOffset(1.2); - plot->GetZaxis()->SetTitleSize(0.05); - } - } - } - - //============================================================================ - void rescaleAllBarrel(const std::string& currentHistoName) { - std::vector maxima; - std::transform(pxbTh2PolyBarrel[currentHistoName].begin(), - pxbTh2PolyBarrel[currentHistoName].end(), - std::back_inserter(maxima), - [](std::shared_ptr thp) -> float { return thp->GetMaximum(); }); - std::vector minima; - std::transform(pxbTh2PolyBarrel[currentHistoName].begin(), - pxbTh2PolyBarrel[currentHistoName].end(), - std::back_inserter(minima), - [](std::shared_ptr thp) -> float { return thp->GetMinimum(); }); - - auto globalMax = *std::max_element(maxima.begin(), maxima.end()); - auto globalMin = *std::min_element(minima.begin(), minima.end()); - - for (auto& histo : pxbTh2PolyBarrel[currentHistoName]) { - histo->GetZaxis()->SetRangeUser(globalMin, globalMax); - } - } - - //============================================================================ - void rescaleAllForward(const std::string& currentHistoName) { - std::vector maxima; - std::transform(pxfTh2PolyForward[currentHistoName].begin(), - pxfTh2PolyForward[currentHistoName].end(), - std::back_inserter(maxima), - [](std::shared_ptr thp) -> float { return thp->GetMaximum(); }); - std::vector minima; - std::transform(pxfTh2PolyForward[currentHistoName].begin(), - pxfTh2PolyForward[currentHistoName].end(), - std::back_inserter(minima), - [](std::shared_ptr thp) -> float { return thp->GetMinimum(); }); - - auto globalMax = *std::max_element(maxima.begin(), maxima.end()); - auto globalMin = *std::min_element(minima.begin(), minima.end()); - - for (auto& histo : pxfTh2PolyForward[currentHistoName]) { - histo->GetZaxis()->SetRangeUser(globalMin, globalMax); - } - } - - //============================================================================ - void setBarrelScale(const std::string& currentHistoName, std::pair extrema) { - for (auto& histo : pxbTh2PolyBarrel[currentHistoName]) { - histo->GetZaxis()->SetRangeUser(extrema.first, extrema.second); - } - } - - //============================================================================ - void setForwardScale(const std::string& currentHistoName, std::pair extrema) { - for (auto& histo : pxfTh2PolyForward[currentHistoName]) { - histo->GetZaxis()->SetRangeUser(extrema.first, extrema.second); - } - } - - //============================================================================ - void DrawBarrelMaps(const std::string& currentHistoName, TCanvas& canvas) { - canvas.Divide(2, 2); - for (int i = 1; i <= 4; i++) { - canvas.cd(i); - if (strcmp(m_option, "text") == 0) { - canvas.cd(i)->SetRightMargin(0.02); - pxbTh2PolyBarrel[currentHistoName].at(i - 1)->SetMarkerColor(kRed); - } else { - if (m_autorescale) - rescaleAllBarrel(currentHistoName); - adjustCanvasMargins(canvas.cd(i), 0.07, 0.12, 0.10, 0.18); - } - pxbTh2PolyBarrel[currentHistoName].at(i - 1)->Draw(); - } - } - - //============================================================================ - void DrawForwardMaps(const std::string& currentHistoName, TCanvas& canvas) { - canvas.Divide(3, 2); - for (int i = 1; i <= 6; i++) { - canvas.cd(i); - if (strcmp(m_option, "text") == 0) { - canvas.cd(i)->SetRightMargin(0.02); - pxfTh2PolyForward[currentHistoName].at(i - 1)->SetMarkerColor(kRed); - } else { - if (m_autorescale) - rescaleAllForward(currentHistoName); - adjustCanvasMargins(canvas.cd(i), 0.07, 0.12, 0.10, 0.18); - } - pxfTh2PolyForward[currentHistoName].at(i - 1)->Draw(); - } - } - -private: - Option_t* m_option; - bool m_autorescale; - TrackerTopology m_trackerTopo; - - std::map> bins, binsSummary; - std::map>> pxbTh2PolyBarrel; - std::map> pxbTh2PolyBarrelSummary; - std::map>> pxfTh2PolyForward; - std::map> pxfTh2PolyForwardSummary; - - std::vector m_cornersBPIX; - std::vector m_cornersFPIX; -}; - -#endif diff --git a/CondCore/SiPixelPlugins/interface/SiPixelGainCalibHelper.h b/CondCore/SiPixelPlugins/interface/SiPixelGainCalibHelper.h index 23910e09e36d3..b1444f88055f3 100644 --- a/CondCore/SiPixelPlugins/interface/SiPixelGainCalibHelper.h +++ b/CondCore/SiPixelPlugins/interface/SiPixelGainCalibHelper.h @@ -12,6 +12,7 @@ #include "CondFormats/SiPixelObjects/interface/SiPixelGainCalibrationOffline.h" #include "CondFormats/SiPixelObjects/interface/SiPixelGainCalibrationForHLT.h" #include "CondCore/SiPixelPlugins/interface/PixelRegionContainers.h" +#include "DQM/TrackerRemapper/interface/Phase1PixelROCMaps.h" #include #include @@ -1374,27 +1375,8 @@ namespace gainCalibHelper { std::shared_ptr payload = this->fetchPayload(std::get<1>(iov)); - static const int n_layers = 4; - int nlad_list[n_layers] = {6, 14, 22, 32}; - int divide_roc = 1; - - // --------------------- BOOK HISTOGRAMS - std::array h_bpix_Gains; - - for (unsigned int lay = 1; lay <= 4; lay++) { - int nlad = nlad_list[lay - 1]; - - std::string name = "occ_Gain_Layer_" + std::to_string(lay); - std::string title = "; Module # ; Ladder #"; - h_bpix_Gains[lay - 1] = new TH2D(name.c_str(), - title.c_str(), - 72 * divide_roc, - -4.5, - 4.5, - (nlad * 4 + 2) * divide_roc, - -nlad - 0.5, - nlad + 0.5); - } + Phase1PixelROCMaps theBPixGainsMap(""); + static constexpr int n_layers = 4; std::map GainCalibMap_; gainCalibPI::fillThePerModuleMap(payload, GainCalibMap_, myType); @@ -1408,49 +1390,40 @@ namespace gainCalibHelper { } // hard-coded phase-I - std::array minima = {{999., 999., 999., 999.}}; + std::array minima = {{999., 999., 999., 999.}}; for (const auto& element : GainCalibMap_) { int subid = DetId(element.first).subdetId(); if (subid == PixelSubdetector::PixelBarrel) { auto layer = m_trackerTopo.pxbLayer(DetId(element.first)); - auto s_ladder = SiPixelPI::signed_ladder(DetId(element.first), m_trackerTopo, true); - auto s_module = SiPixelPI::signed_module(DetId(element.first), m_trackerTopo, true); - - auto ladder = m_trackerTopo.pxbLadder(DetId(element.first)); - auto module = m_trackerTopo.pxbModule(DetId(element.first)); - COUT << "layer:" << layer << " ladder:" << ladder << " module:" << module << " signed ladder: " << s_ladder - << " signed module: " << s_module << std::endl; if (element.second < minima.at(layer - 1)) minima.at(layer - 1) = element.second; - auto rocsToMask = SiPixelPI::maskedBarrelRocsToBins(layer, s_ladder, s_module); - for (const auto& bin : rocsToMask) { - h_bpix_Gains[layer - 1]->SetBinContent(bin.first, bin.second, element.second); - } + theBPixGainsMap.fillWholeModule(element.first, element.second); } } gStyle->SetOptStat(0); //========================= TCanvas canvas("Summary", "Summary", 1200, 1200); - canvas.Divide(2, 2); + theBPixGainsMap.drawBarrelMaps(canvas); - for (unsigned int lay = 1; lay <= 4; lay++) { + for (unsigned int lay = 1; lay <= n_layers; lay++) { SiPixelPI::adjustCanvasMargins(canvas.cd(lay), -1, 0.08, 0.1, 0.13); + auto h_bpix_Gains = theBPixGainsMap.getLayerMaps(); + COUT << " layer:" << lay << " max:" << h_bpix_Gains[lay - 1]->GetMaximum() << " min: " << minima.at(lay - 1) << std::endl; - SiPixelPI::dress_occup_plot(canvas, h_bpix_Gains[lay - 1], lay, 0, 1, true, true, false); h_bpix_Gains[lay - 1]->GetZaxis()->SetRangeUser(minima.at(lay - 1) - 0.001, h_bpix_Gains[lay - 1]->GetMaximum() + 0.001); } auto unpacked = SiPixelPI::unpack(std::get<0>(iov)); - for (unsigned int lay = 1; lay <= 4; lay++) { + for (unsigned int lay = 1; lay <= n_layers; lay++) { canvas.cd(lay); auto ltx = TLatex(); ltx.SetTextFont(62); @@ -1505,20 +1478,8 @@ namespace gainCalibHelper { auto iov = tag.iovs.front(); std::shared_ptr payload = this->fetchPayload(std::get<1>(iov)); - static const int n_rings = 2; - std::array h_fpix_Gains; - int divide_roc = 1; - - // --------------------- BOOK HISTOGRAMS - for (unsigned int ring = 1; ring <= n_rings; ring++) { - int n = ring == 1 ? 92 : 140; - float y = ring == 1 ? 11.5 : 17.5; - std::string name = "occ_Gains_ring_" + std::to_string(ring); - std::string title = "; Disk # ; Blade/Panel #"; - - h_fpix_Gains[ring - 1] = - new TH2D(name.c_str(), title.c_str(), 56 * divide_roc, -3.5, 3.5, n * divide_roc, -y, y); - } + Phase1PixelROCMaps theFPixGainsMap(""); + static constexpr int n_rings = 2; std::map GainCalibMap_; gainCalibPI::fillThePerModuleMap(payload, GainCalibMap_, myType); @@ -1532,42 +1493,33 @@ namespace gainCalibHelper { } // hardcoded phase-I - std::array minima = {{999., 999.}}; + std::array minima = {{999., 999.}}; for (const auto& element : GainCalibMap_) { int subid = DetId(element.first).subdetId(); if (subid == PixelSubdetector::PixelEndcap) { auto ring = SiPixelPI::ring(DetId(element.first), m_trackerTopo, true); - auto s_blade = SiPixelPI::signed_blade(DetId(element.first), m_trackerTopo, true); - auto s_disk = SiPixelPI::signed_disk(DetId(element.first), m_trackerTopo, true); - auto s_blade_panel = SiPixelPI::signed_blade_panel(DetId(element.first), m_trackerTopo, true); - auto panel = m_trackerTopo.pxfPanel(element.first); - - COUT << "ring:" << ring << " blade: " << s_blade << " panel: " << panel - << " signed blade/panel: " << s_blade_panel << " disk: " << s_disk << std::endl; if (element.second < minima.at(ring - 1)) minima.at(ring - 1) = element.second; - auto rocsToMask = SiPixelPI::maskedForwardRocsToBins(ring, s_blade, panel, s_disk); - for (const auto& bin : rocsToMask) { - h_fpix_Gains[ring - 1]->SetBinContent(bin.first, bin.second, element.second); - } + theFPixGainsMap.fillWholeModule(element.first, element.second); } } gStyle->SetOptStat(0); //========================= TCanvas canvas("Summary", "Summary", 1200, 600); - canvas.Divide(2, 1); + theFPixGainsMap.drawForwardMaps(canvas); for (unsigned int ring = 1; ring <= n_rings; ring++) { SiPixelPI::adjustCanvasMargins(canvas.cd(ring), -1, 0.08, 0.1, 0.13); - COUT << " ringer:" << ring << " max:" << h_fpix_Gains[ring - 1]->GetMaximum() << " min: " << minima.at(ring - 1) + auto h_fpix_Gains = theFPixGainsMap.getRingMaps(); + + COUT << " ring:" << ring << " max:" << h_fpix_Gains[ring - 1]->GetMaximum() << " min: " << minima.at(ring - 1) << std::endl; - SiPixelPI::dress_occup_plot(canvas, h_fpix_Gains[ring - 1], 0, ring, 1, true, true, false); h_fpix_Gains[ring - 1]->GetZaxis()->SetRangeUser(minima.at(ring - 1) - 0.001, h_fpix_Gains[ring - 1]->GetMaximum() + 0.001); } diff --git a/CondCore/SiPixelPlugins/interface/SiPixelPayloadInspectorHelper.h b/CondCore/SiPixelPlugins/interface/SiPixelPayloadInspectorHelper.h index b6f61b1168d07..26449903518cb 100644 --- a/CondCore/SiPixelPlugins/interface/SiPixelPayloadInspectorHelper.h +++ b/CondCore/SiPixelPlugins/interface/SiPixelPayloadInspectorHelper.h @@ -571,7 +571,7 @@ namespace SiPixelPI { } } - enum DetType { t_barrel = 0, t_forward = 1 }; + enum DetType { t_barrel = 0, t_forward = 1, t_all = 2 }; enum regions { BPixL1o, //0 Barrel Pixel Layer 1 outer @@ -777,218 +777,6 @@ namespace SiPixelPI { return ret; } - // overloaded method: mask entire module - /*--------------------------------------------------------------------*/ - std::vector> maskedBarrelRocsToBins(int layer, int ladder, int module) - /*--------------------------------------------------------------------*/ - { - std::vector> rocsToMask; - - int nlad_list[4] = {6, 14, 22, 32}; - int nlad = nlad_list[layer - 1]; - - int start_x = module > 0 ? ((module + 4) * 8) + 1 : ((4 - (std::abs(module))) * 8) + 1; - int start_y = ladder > 0 ? ((ladder + nlad) * 2) + 1 : ((nlad - (std::abs(ladder))) * 2) + 1; - - int end_x = start_x + 7; - int end_y = start_y + 1; - - COUT << "module: " << module << " start_x:" << start_x << " end_x:" << end_x << std::endl; - COUT << "ladder: " << ladder << " start_y:" << start_y << " end_y:" << end_y << std::endl; - COUT << "==================================================================" << std::endl; - - for (int bin_x = 1; bin_x <= 72; bin_x++) { - for (int bin_y = 1; bin_y <= (nlad * 4 + 2); bin_y++) { - if (bin_x >= start_x && bin_x <= end_x && bin_y >= start_y && bin_y <= end_y) { - rocsToMask.push_back(std::make_pair(bin_x, bin_y)); - } - } - } - return rocsToMask; - } - - // overloaded method: mask single ROCs - /*--------------------------------------------------------------------*/ - std::vector> maskedBarrelRocsToBins( - int layer, int ladder, int module, std::bitset<16> bad_rocs, bool isFlipped) - /*--------------------------------------------------------------------*/ - { - std::vector> rocsToMask; - - int nlad_list[4] = {6, 14, 22, 32}; - int nlad = nlad_list[layer - 1]; - - int start_x = module > 0 ? ((module + 4) * 8) + 1 : ((4 - (std::abs(module))) * 8) + 1; - int start_y = ladder > 0 ? ((ladder + nlad) * 2) + 1 : ((nlad - (std::abs(ladder))) * 2) + 1; - - int roc0_x = ((layer == 1) || (layer > 1 && module > 0)) ? start_x + 7 : start_x; - int roc0_y = start_y - 1; - - size_t idx = 0; - while (idx < bad_rocs.size()) { - if (bad_rocs.test(idx)) { - ////////////////////////////////////////////////////////////////////////////////////// - // | // - // In BPix Layer1 and module>0 in L2,3,4 | In BPix Layer 2,3,4 module > 0 // - // | // - // ROCs are ordered in the following | ROCs are ordered in the following // - // fashion for unplipped modules | fashion for unplipped modules // - // | // - // +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ // - // | 8 |9 |10 |11 |12 |13 |14 |15 | | |15 |14 |13 |12 |11 |10 | 9 | 8 | // - // +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ // - // | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | // - // +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ // - // | // - // if the module is flipped the ordering | if the module is flipped the ordering // - // is reveresed | is reversed // - // | // - // +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ // - // | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | // - // +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ // - // | 8 | 9 |10 |11 |12 |13 |14 |15 | | |15 |14 |13 |12 |11 |10 | 9 | 8 | // - // +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ // - ////////////////////////////////////////////////////////////////////////////////////// - - int roc_x(0), roc_y(0); - - if ((layer == 1) || (layer > 1 && module > 0)) { - if (!isFlipped) { - roc_x = idx < 8 ? roc0_x - idx : (start_x - 8) + idx; - roc_y = idx < 8 ? roc0_y + 1 : roc0_y + 2; - } else { - roc_x = idx < 8 ? roc0_x - idx : (start_x - 8) + idx; - roc_y = idx < 8 ? roc0_y + 2 : roc0_y + 1; - } - } else { - if (!isFlipped) { - roc_x = idx < 8 ? roc0_x + idx : (roc0_x + 7) - (idx - 8); - roc_y = idx < 8 ? roc0_y + 1 : roc0_y + 2; - } else { - roc_x = idx < 8 ? roc0_x + idx : (roc0_x + 7) - (idx - 8); - roc_y = idx < 8 ? roc0_y + 2 : roc0_y + 1; - } - } - - COUT << bad_rocs << " : (idx)= " << idx << std::endl; - COUT << " layer: " << layer << std::endl; - COUT << "module: " << module << " roc_x:" << roc_x << std::endl; - COUT << "ladder: " << ladder << " roc_y:" << roc_y << std::endl; - COUT << "==================================================================" << std::endl; - - rocsToMask.push_back(std::make_tuple(roc_x, roc_y, idx)); - } - ++idx; - } - return rocsToMask; - } - - // overloaded method: mask entire module - /*--------------------------------------------------------------------*/ - std::vector> maskedForwardRocsToBins(int ring, int blade, int panel, int disk) - /*--------------------------------------------------------------------*/ - { - std::vector> rocsToMask; - int nybins_list[2] = {92, 140}; - int nybins = nybins_list[ring - 1]; - - int start_x = disk > 0 ? ((disk + 3) * 8) + 1 : ((3 - (std::abs(disk))) * 8) + 1; - int start_y = blade > 0 ? (nybins / 2) + (blade * 4) - (panel * 2) + 3 - : ((nybins / 2) - (std::abs(blade) * 4) - panel * 2) + 3; - - int end_x = start_x + 7; - int end_y = start_y + 1; - - COUT << "==================================================================" << std::endl; - COUT << "disk: " << disk << " start_x:" << start_x << " end_x:" << end_x << std::endl; - COUT << "blade: " << blade << " start_y:" << start_y << " end_y:" << end_y << std::endl; - - for (int bin_x = 1; bin_x <= 56; bin_x++) { - for (int bin_y = 1; bin_y <= nybins; bin_y++) { - if (bin_x >= start_x && bin_x <= end_x && bin_y >= start_y && bin_y <= end_y) { - rocsToMask.push_back(std::make_pair(bin_x, bin_y)); - } - } - } - return rocsToMask; - } - - // overloaded method: mask single ROCs - /*--------------------------------------------------------------------*/ - std::vector> maskedForwardRocsToBins( - int ring, int blade, int panel, int disk, std::bitset<16> bad_rocs, bool isFlipped) - /*--------------------------------------------------------------------*/ - { - std::vector> rocsToMask; - int nybins_list[2] = {92, 140}; - int nybins = nybins_list[ring - 1]; - - int start_x = disk > 0 ? ((disk + 3) * 8) + 1 : ((3 - (std::abs(disk))) * 8) + 1; - int start_y = blade > 0 ? (nybins / 2) + (blade * 4) - (panel * 2) + 3 - : ((nybins / 2) - (std::abs(blade) * 4) - panel * 2) + 3; - - int roc0_x = disk > 0 ? start_x + 7 : start_x; - int roc0_y = start_y - 1; - - size_t idx = 0; - while (idx < bad_rocs.size()) { - if (bad_rocs.test(idx)) { - int roc_x(0), roc_y(0); - - ////////////////////////////////////////////////////////////////////////////////////// - // | // - // In FPix + (Disk 1,2,3) | In FPix - (Disk -1,-2,-3) // - // | // - // ROCs are ordered in the following | ROCs are ordered in the following // - // fashion for unplipped modules | fashion for unplipped modules // - // | // - // +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ // - // | 8 |9 |10 |11 |12 |13 |14 |15 | | |15 |14 |13 |12 |11 |10 | 9 | 8 | // - // +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ // - // | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | // - // +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ // - // | // - // if the module is flipped the ordering | if the module is flipped the ordering // - // is reveresed | is reversed // - // | // - // +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ // - // | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | // - // +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ // - // | 8 | 9 |10 |11 |12 |13 |14 |15 | | |15 |14 |13 |12 |11 |10 | 9 | 8 | // - // +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ // - ////////////////////////////////////////////////////////////////////////////////////// - - if (disk > 0) { - if (!isFlipped) { - roc_x = idx < 8 ? roc0_x - idx : (start_x - 8) + idx; - roc_y = idx < 8 ? roc0_y + 1 : roc0_y + 2; - } else { - roc_x = idx < 8 ? roc0_x - idx : (start_x - 8) + idx; - roc_y = idx < 8 ? roc0_y + 2 : roc0_y + 1; - } - } else { - if (!isFlipped) { - roc_x = idx < 8 ? roc0_x + idx : (roc0_x + 7) - (idx - 8); - roc_y = idx < 8 ? roc0_y + 1 : roc0_y + 2; - } else { - roc_x = idx < 8 ? roc0_x + idx : (roc0_x + 7) - (idx - 8); - roc_y = idx < 8 ? roc0_y + 2 : roc0_y + 1; - } - } - - COUT << bad_rocs << " : (idx)= " << idx << std::endl; - COUT << " panel: " << panel << " isFlipped: " << isFlipped << std::endl; - COUT << " disk: " << disk << " roc_x:" << roc_x << std::endl; - COUT << " blade: " << blade << " roc_y:" << roc_y << std::endl; - COUT << "===============================" << std::endl; - - rocsToMask.push_back(std::make_tuple(roc_x, roc_y, idx)); - } - ++idx; - } - return rocsToMask; - } - /*--------------------------------------------------------------------*/ void displayNotSupported(TCanvas& canv, const unsigned int size) /*--------------------------------------------------------------------*/ diff --git a/CondCore/SiPixelPlugins/interface/SiPixelTemplateHelper.h b/CondCore/SiPixelPlugins/interface/SiPixelTemplateHelper.h index 8f5d4fdf7b175..7682524100803 100644 --- a/CondCore/SiPixelPlugins/interface/SiPixelTemplateHelper.h +++ b/CondCore/SiPixelPlugins/interface/SiPixelTemplateHelper.h @@ -9,11 +9,14 @@ #include "CondFormats/SiPixelObjects/interface/SiPixelTemplateDBObject.h" #include "CondFormats/SiPixelObjects/interface/SiPixelGenErrorDBObject.h" #include "CondFormats/SiPixelTransient/interface/SiPixelTemplate.h" +#include "DQM/TrackerRemapper/interface/Phase1PixelMaps.h" +#include "DQM/TrackerRemapper/interface/Phase1PixelSummaryMap.h" #include #include #include #include +#include // include ROOT #include "TH2F.h" @@ -29,15 +32,16 @@ namespace templateHelper { - using namespace cond::payloadInspector; - //************************************************ // Display of Template/GenError Titles // *************************************************/ template - class SiPixelTitles_Display : public PlotImage { + class SiPixelTitles_Display + : public cond::payloadInspector::PlotImage { public: - SiPixelTitles_Display() : PlotImage("Table of SiPixelTemplate/GenError titles") { + SiPixelTitles_Display() + : cond::payloadInspector::PlotImage( + "Table of SiPixelTemplate/GenError titles") { if constexpr (std::is_same_v) { isTemplate_ = false; label_ = "SiPixelGenErrorDBObject_PayloadInspector"; @@ -48,7 +52,7 @@ namespace templateHelper { } bool fill() override { - auto tag = PlotBase::getTag<0>(); + auto tag = cond::payloadInspector::PlotBase::getTag<0>(); auto iov = tag.iovs.front(); auto tagname = tag.name; std::vector thePixelTemp_; @@ -133,7 +137,7 @@ namespace templateHelper { std::string fileName(this->m_imageFileName); canvas.SaveAs(fileName.c_str()); - } // if paylaod.get() + } // if payload.get() return true; } @@ -146,9 +150,11 @@ namespace templateHelper { // header plotting *************************************************/ template - class SiPixelHeaderTable : public PlotImage { + class SiPixelHeaderTable : public cond::payloadInspector::PlotImage { public: - SiPixelHeaderTable() : PlotImage("SiPixel CPE Header summary") { + SiPixelHeaderTable() + : cond::payloadInspector::PlotImage( + "SiPixel CPE Conditions Header summary") { if constexpr (std::is_same_v) { isTemplate_ = false; label_ = "SiPixelGenErrorDBObject_PayloadInspector"; @@ -162,7 +168,7 @@ namespace templateHelper { gStyle->SetHistMinimumZero(); // will display zero as zero in the text map gStyle->SetPalette(kMint); // for the ghost plot (colored BPix and FPix bins) - auto tag = PlotBase::getTag<0>(); + auto tag = cond::payloadInspector::PlotBase::getTag<0>(); auto iov = tag.iovs.front(); auto tagname = tag.name; std::vector thePixelTemp_; @@ -302,9 +308,11 @@ namespace templateHelper { // TH2Poly Map of IDs //***********************************************/ template - class SiPixelIDs : public PlotImage { + class SiPixelIDs : public cond::payloadInspector::PlotImage { public: - SiPixelIDs() : PlotImage("SiPixelMap of Template / GenError ID Values") { + SiPixelIDs() + : cond::payloadInspector::PlotImage( + "SiPixelMap of Template / GenError ID Values") { if constexpr (std::is_same_v) { isTemplate_ = false; label_ = "SiPixelGenErrorDBObject_PayloadInspector"; @@ -317,7 +325,7 @@ namespace templateHelper { bool fill() override { gStyle->SetPalette(kRainBow); - auto tag = PlotBase::getTag<0>(); + auto tag = cond::payloadInspector::PlotBase::getTag<0>(); auto iov = tag.iovs.front(); std::shared_ptr payload = this->fetchPayload(std::get<1>(iov)); @@ -385,9 +393,9 @@ namespace templateHelper { TCanvas canvas("Canv", "Canv", (myType == SiPixelPI::t_barrel) ? 1200 : 1500, 1000); if (myType == SiPixelPI::t_barrel) { - theMaps.DrawBarrelMaps(barrelName_, canvas); + theMaps.drawBarrelMaps(barrelName_, canvas); } else if (myType == SiPixelPI::t_forward) { - theMaps.DrawForwardMaps(endcapName_, canvas); + theMaps.drawForwardMaps(endcapName_, canvas); } canvas.cd(); @@ -402,6 +410,99 @@ namespace templateHelper { bool isTemplate_; std::string label_; }; + + /************************************************ + Full Pixel Tracker Map class + *************************************************/ + template + class SiPixelFullPixelIDMap + : public cond::payloadInspector::PlotImage { + public: + SiPixelFullPixelIDMap() + : cond::payloadInspector::PlotImage( + "SiPixel CPE conditions Map of IDs") { + if constexpr (std::is_same_v) { + isTemplate_ = false; + label_ = "SiPixelGenErrorDBObject_PayloadInspector"; + } else { + isTemplate_ = true; + label_ = "SiPixelTemplateDBObject_PayloadInspector"; + } + } + + bool fill() override { + gStyle->SetPalette(1); + auto tag = cond::payloadInspector::PlotBase::getTag<0>(); + auto iov = tag.iovs.front(); + std::vector thePixelTemp_; + std::shared_ptr payload = this->fetchPayload(std::get<1>(iov)); + + std::string payloadString = (isTemplate_ ? "Templates" : "GenErrors"); + + if (payload.get()) { + if (!TransientType::pushfile(*payload, thePixelTemp_)) { + throw cms::Exception(label_) << "\nERROR: " << payloadString + << " not filled correctly. Check the conditions. Using " + << (isTemplate_ ? "SiPixelTemplateDBObject" : "SiPixelGenErrorDBObject") + << payload->version() << "\n\n"; + } + + Phase1PixelSummaryMap fullMap("", fmt::sprintf("%s IDs", payloadString), fmt::sprintf("%s ID", payloadString)); + fullMap.createTrackerBaseMap(); + + std::map templMap; + if constexpr (std::is_same_v) { + templMap = payload->getGenErrorIDs(); + } else { + templMap = payload->getTemplateIDs(); + } + + for (const auto& entry : templMap) { + fullMap.fillTrackerMap(entry.first, entry.second); + } + + if (templMap.size() == SiPixelPI::phase0size || templMap.size() > SiPixelPI::phase1size) { + edm::LogError(label_) + << "There are " << templMap.size() + << " DetIds in this payload. SiPixelIDs maps are not supported for non-Phase1 Pixel geometries !"; + TCanvas canvas("Canv", "Canv", 1200, 1000); + SiPixelPI::displayNotSupported(canvas, templMap.size()); + std::string fileName(this->m_imageFileName); + canvas.SaveAs(fileName.c_str()); + return false; + } else { + if (templMap.size() < SiPixelPI::phase1size) { + edm::LogWarning(label_) << "\n ********* WARNING! ********* \n There are " << templMap.size() + << " DetIds in this payload !" + << "\n **************************** \n"; + } + } + + TCanvas canvas("Canv", "Canv", 3000, 2000); + fullMap.printTrackerMap(canvas); + + //fmt::sprintf("#color[2]{%s, IOV %i}",tag.name,std::get<0>(iov)); + + auto ltx = TLatex(); + ltx.SetTextFont(62); + ltx.SetTextSize(0.025); + ltx.SetTextAlign(11); + ltx.DrawLatexNDC( + gPad->GetLeftMargin() + 0.01, + gPad->GetBottomMargin() + 0.01, + ("#color[4]{" + tag.name + "}, IOV: #color[4]{" + std::to_string(std::get<0>(iov)) + "}").c_str()); + + std::string fileName(this->m_imageFileName); + canvas.SaveAs(fileName.c_str()); + } + return true; + } + + protected: + bool isTemplate_; + std::string label_; + }; + } // namespace templateHelper #endif diff --git a/CondCore/SiPixelPlugins/plugins/BuildFile.xml b/CondCore/SiPixelPlugins/plugins/BuildFile.xml index 8745d3be21ea8..5a9d524c8ebf4 100644 --- a/CondCore/SiPixelPlugins/plugins/BuildFile.xml +++ b/CondCore/SiPixelPlugins/plugins/BuildFile.xml @@ -2,6 +2,7 @@ + @@ -10,12 +11,14 @@ + + @@ -23,6 +26,7 @@ + @@ -55,20 +59,20 @@ + - - - - + + + - - - - + + + + diff --git a/CondCore/SiPixelPlugins/plugins/SiPixel2DTemplateDBObject_PayloadInspector.cc b/CondCore/SiPixelPlugins/plugins/SiPixel2DTemplateDBObject_PayloadInspector.cc index fa8083434656d..8815ac9168ac3 100644 --- a/CondCore/SiPixelPlugins/plugins/SiPixel2DTemplateDBObject_PayloadInspector.cc +++ b/CondCore/SiPixelPlugins/plugins/SiPixel2DTemplateDBObject_PayloadInspector.cc @@ -12,7 +12,6 @@ #include "CondCore/Utilities/interface/PayloadInspector.h" #include "CondCore/CondDB/interface/Time.h" #include "CondCore/SiPixelPlugins/interface/SiPixelPayloadInspectorHelper.h" -#include "CondCore/SiPixelPlugins/interface/Phase1PixelMaps.h" #include "CondCore/SiPixelPlugins/interface/SiPixelTemplateHelper.h" #include "CalibTracker/StandaloneTrackerTopology/interface/StandaloneTrackerTopology.h" @@ -68,6 +67,12 @@ namespace { using SiPixel2DTemplateIDsBPixMap = SiPixelIDs; using SiPixel2DTemplateIDsFPixMap = SiPixelIDs; + //************************************************ + // Full Pixel Tracker Map of Template IDs + // ***********************************************/ + using SiPixel2DTemplateIDsFullPixelMap = + SiPixelFullPixelIDMap; + } // namespace // Register the classes as boost python plugin @@ -76,4 +81,5 @@ PAYLOAD_INSPECTOR_MODULE(SiPixel2DTemplateDBObject) { PAYLOAD_INSPECTOR_CLASS(SiPixel2DTemplateHeaderTable); PAYLOAD_INSPECTOR_CLASS(SiPixel2DTemplateIDsBPixMap); PAYLOAD_INSPECTOR_CLASS(SiPixel2DTemplateIDsFPixMap); + PAYLOAD_INSPECTOR_CLASS(SiPixel2DTemplateIDsFullPixelMap); } diff --git a/CondCore/SiPixelPlugins/plugins/SiPixelFEDChannelContainer_PayloadInspector.cc b/CondCore/SiPixelPlugins/plugins/SiPixelFEDChannelContainer_PayloadInspector.cc index 0aa7ac3eec571..c1cccb1a411b7 100644 --- a/CondCore/SiPixelPlugins/plugins/SiPixelFEDChannelContainer_PayloadInspector.cc +++ b/CondCore/SiPixelPlugins/plugins/SiPixelFEDChannelContainer_PayloadInspector.cc @@ -31,6 +31,7 @@ #include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h" #include "DataFormats/DetId/interface/DetId.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "DQM/TrackerRemapper/interface/Phase1PixelROCMaps.h" #include #include @@ -95,38 +96,7 @@ namespace { the_scenarios.push_back("all"); } - int nlad_list[n_layers] = {6, 14, 22, 32}; - int divide_roc = 1; - - // --------------------- BOOK HISTOGRAMS - std::array h_bpix_occ; - std::array h_fpix_occ; - - // barrel - for (unsigned int lay = 1; lay <= 4; lay++) { - int nlad = nlad_list[lay - 1]; - - std::string name = "occ_Layer_" + std::to_string(lay); - std::string title = "; Module # ; Ladder #"; - h_bpix_occ[lay - 1] = new TH2D(name.c_str(), - title.c_str(), - 72 * divide_roc, - -4.5, - 4.5, - (nlad * 4 + 2) * divide_roc, - -nlad - 0.5, - nlad + 0.5); - } - - // endcaps - for (unsigned int ring = 1; ring <= n_rings; ring++) { - int n = ring == 1 ? 92 : 140; - float y = ring == 1 ? 11.5 : 17.5; - std::string name = "occ_ring_" + std::to_string(ring); - std::string title = "; Disk # ; Blade/Panel #"; - - h_fpix_occ[ring - 1] = new TH2D(name.c_str(), title.c_str(), 56 * divide_roc, -3.5, 3.5, n * divide_roc, -y, y); - } + Phase1PixelROCMaps theROCMap(""); auto tag = PlotBase::getTag<0>(); auto iov = tag.iovs.front(); @@ -234,76 +204,21 @@ namespace { auto myDetId = DetId(t_detid); if (subid == PixelSubdetector::PixelBarrel) { - auto layer = m_trackerTopo.pxbLayer(myDetId); - auto s_ladder = SiPixelPI::signed_ladder(myDetId, m_trackerTopo, true); - auto s_module = SiPixelPI::signed_module(myDetId, m_trackerTopo, true); - - bool isFlipped = SiPixelPI::isBPixOuterLadder(myDetId, m_trackerTopo, false); - if ((layer > 1 && s_module < 0)) - isFlipped = !isFlipped; - - auto ladder = m_trackerTopo.pxbLadder(myDetId); - auto module = m_trackerTopo.pxbModule(myDetId); - LogDebug("SiPixelFEDChannelContainerTest") - << "layer:" << layer << " ladder:" << ladder << " module:" << module << " signed ladder: " << s_ladder - << " signed module: " << s_module << std::endl; - - auto rocsToMask = - SiPixelPI::maskedBarrelRocsToBins(layer, s_ladder, s_module, badRocsFromFEDChannels, isFlipped); - for (const auto& bin : rocsToMask) { - double x = h_bpix_occ[layer - 1]->GetXaxis()->GetBinCenter(std::get<0>(bin)); - double y = h_bpix_occ[layer - 1]->GetYaxis()->GetBinCenter(std::get<1>(bin)); - h_bpix_occ[layer - 1]->Fill(x, y, 1); - } + theROCMap.fillSelectedRocs(myDetId, badRocsFromFEDChannels, 1.); } // if it's barrel else if (subid == PixelSubdetector::PixelEndcap) { - auto ring = SiPixelPI::ring(myDetId, m_trackerTopo, true); - auto s_blade = SiPixelPI::signed_blade(myDetId, m_trackerTopo, true); - auto s_disk = SiPixelPI::signed_disk(myDetId, m_trackerTopo, true); - auto s_blade_panel = SiPixelPI::signed_blade_panel(myDetId, m_trackerTopo, true); - auto panel = m_trackerTopo.pxfPanel(t_detid); - - //bool isFlipped = (s_disk > 0) ? (std::abs(s_blade)%2==0) : (std::abs(s_blade)%2==1); - bool isFlipped = (s_disk > 0) ? (panel == 1) : (panel == 2); - - LogDebug("SiPixelFEDChannelContainerTest") - << "ring:" << ring << " blade: " << s_blade << " panel: " << panel - << " signed blade/panel: " << s_blade_panel << " disk: " << s_disk << std::endl; - - auto rocsToMask = - SiPixelPI::maskedForwardRocsToBins(ring, s_blade, panel, s_disk, badRocsFromFEDChannels, isFlipped); - for (const auto& bin : rocsToMask) { - double x = h_fpix_occ[ring - 1]->GetXaxis()->GetBinCenter(std::get<0>(bin)); - double y = h_fpix_occ[ring - 1]->GetYaxis()->GetBinCenter(std::get<1>(bin)); - h_fpix_occ[ring - 1]->Fill(x, y, 1); - } // if it's endcap - } else { + theROCMap.fillSelectedRocs(myDetId, badRocsFromFEDChannels, 1.); + } // if it's endcap + else { throw cms::Exception("LogicError") << "Unknown Pixel SubDet ID " << std::endl; - } - } // loop on the channels - } // loop on the scenarios + } // else nonsense + } // loop on the channels + } // loop on the scenarios gStyle->SetOptStat(0); //========================= TCanvas canvas("Summary", "Summary", 1200, 1600); - canvas.Divide(2, 3); - canvas.SetBottomMargin(0.11); - canvas.SetLeftMargin(0.13); - canvas.SetRightMargin(0.05); - canvas.Modified(); - - // dress the plots - for (unsigned int lay = 1; lay <= n_layers; lay++) { - SiPixelPI::dress_occup_plot(canvas, h_bpix_occ[lay - 1], lay, 0, 1); - } - - canvas.Update(); - canvas.Modified(); - canvas.cd(); - - for (unsigned int ring = 1; ring <= n_rings; ring++) { - SiPixelPI::dress_occup_plot(canvas, h_fpix_occ[ring - 1], 0, n_layers + ring, 1); - } + theROCMap.drawMaps(canvas); auto unpacked = SiPixelPI::unpack(std::get<0>(iov)); diff --git a/CondCore/SiPixelPlugins/plugins/SiPixelGenErrorDBObject_PayloadInspector.cc b/CondCore/SiPixelPlugins/plugins/SiPixelGenErrorDBObject_PayloadInspector.cc index 02f93e99515e3..afb387fa473d2 100644 --- a/CondCore/SiPixelPlugins/plugins/SiPixelGenErrorDBObject_PayloadInspector.cc +++ b/CondCore/SiPixelPlugins/plugins/SiPixelGenErrorDBObject_PayloadInspector.cc @@ -12,9 +12,7 @@ #include "CondCore/Utilities/interface/PayloadInspector.h" #include "CondCore/CondDB/interface/Time.h" #include "CondCore/SiPixelPlugins/interface/SiPixelPayloadInspectorHelper.h" -#include "CondCore/SiPixelPlugins/interface/Phase1PixelMaps.h" #include "CondCore/SiPixelPlugins/interface/SiPixelTemplateHelper.h" - #include "CalibTracker/StandaloneTrackerTopology/interface/StandaloneTrackerTopology.h" // the data format of the condition to be inspected @@ -29,7 +27,6 @@ #include #include #include -#include // include ROOT #include "TH2.h" @@ -66,6 +63,13 @@ namespace { //***********************************************/ using SiPixelGenErrorIDsBPixMap = SiPixelIDs; using SiPixelGenErrorIDsFPixMap = SiPixelIDs; + using SiPixelGenErrorIDsMap = SiPixelIDs; + + //************************************************ + // Full Pixel Tracker Map of Template IDs + // ***********************************************/ + using SiPixelGenErrorIDsFullPixelMap = + SiPixelFullPixelIDMap; } // namespace @@ -75,4 +79,6 @@ PAYLOAD_INSPECTOR_MODULE(SiPixelGenErrorDBObject) { PAYLOAD_INSPECTOR_CLASS(SiPixelGenErrorHeaderTable); PAYLOAD_INSPECTOR_CLASS(SiPixelGenErrorIDsBPixMap); PAYLOAD_INSPECTOR_CLASS(SiPixelGenErrorIDsFPixMap); + PAYLOAD_INSPECTOR_CLASS(SiPixelGenErrorIDsMap); + PAYLOAD_INSPECTOR_CLASS(SiPixelGenErrorIDsFullPixelMap); } diff --git a/CondCore/SiPixelPlugins/plugins/SiPixelLorentzAngle_PayloadInspector.cc b/CondCore/SiPixelPlugins/plugins/SiPixelLorentzAngle_PayloadInspector.cc index cc80f01b93614..276f381252e5f 100644 --- a/CondCore/SiPixelPlugins/plugins/SiPixelLorentzAngle_PayloadInspector.cc +++ b/CondCore/SiPixelPlugins/plugins/SiPixelLorentzAngle_PayloadInspector.cc @@ -14,6 +14,8 @@ #include "CalibTracker/StandaloneTrackerTopology/interface/StandaloneTrackerTopology.h" #include "CondCore/SiPixelPlugins/interface/SiPixelPayloadInspectorHelper.h" #include "CondCore/SiPixelPlugins/interface/PixelRegionContainers.h" +#include "DQM/TrackerRemapper/interface/Phase1PixelROCMaps.h" +#include "DQM/TrackerRemapper/interface/Phase1PixelSummaryMap.h" #include #include @@ -32,16 +34,17 @@ namespace { + using namespace cond::payloadInspector; + /************************************************ 1d histogram of SiPixelLorentzAngle of 1 IOV *************************************************/ // inherit from one of the predefined plot class: Histogram1D - class SiPixelLorentzAngleValue - : public cond::payloadInspector::Histogram1D { + class SiPixelLorentzAngleValue : public Histogram1D { public: SiPixelLorentzAngleValue() - : cond::payloadInspector::Histogram1D( + : Histogram1D( "SiPixel LorentzAngle values", "SiPixel LorentzAngle values", 100, 0.0, 0.1) {} bool fill() override { @@ -63,12 +66,9 @@ namespace { /************************************************ 1d histogram of SiPixelLorentzAngle of 1 IOV *************************************************/ - class SiPixelLorentzAngleValues - : public cond::payloadInspector::PlotImage { + class SiPixelLorentzAngleValues : public PlotImage { public: - SiPixelLorentzAngleValues() - : cond::payloadInspector::PlotImage( - "SiPixelLorentzAngle Values") {} + SiPixelLorentzAngleValues() : PlotImage("SiPixelLorentzAngle Values") {} bool fill() override { gStyle->SetOptStat("emr"); @@ -138,12 +138,10 @@ namespace { 1d histogram of SiPixelLorentzAngle of 1 IOV per region *************************************************/ template - class SiPixelLorentzAngleValuesPerRegion - : public cond::payloadInspector::PlotImage { + class SiPixelLorentzAngleValuesPerRegion : public PlotImage { public: SiPixelLorentzAngleValuesPerRegion() - : cond::payloadInspector::PlotImage( - "SiPixelLorentzAngle Values per region") {} + : PlotImage("SiPixelLorentzAngle Values per region") {} bool fill() override { gStyle->SetOptStat("emr"); @@ -231,20 +229,19 @@ namespace { /************************************************ 1d histogram of SiPixelLorentzAngle of 2 IOV per region *************************************************/ - template - class SiPixelLorentzAngleValuesComparisonPerRegion - : public cond::payloadInspector::PlotImage { + template + class SiPixelLorentzAngleValuesComparisonPerRegion : public PlotImage { public: SiPixelLorentzAngleValuesComparisonPerRegion() - : cond::payloadInspector::PlotImage( + : PlotImage( Form("SiPixelLorentzAngle Values Comparisons per region %i tag(s)", ntags)) {} bool fill() override { gStyle->SetOptStat("emr"); // trick to deal with the multi-ioved tag and two tag case at the same time - auto theIOVs = cond::payloadInspector::PlotBase::getTag<0>().iovs; - auto f_tagname = cond::payloadInspector::PlotBase::getTag<0>().name; + auto theIOVs = PlotBase::getTag<0>().iovs; + auto f_tagname = PlotBase::getTag<0>().name; std::string l_tagname = ""; auto firstiov = theIOVs.front(); std::tuple lastiov; @@ -253,8 +250,8 @@ namespace { assert(this->m_plotAnnotations.ntags < 3); if (this->m_plotAnnotations.ntags == 2) { - auto tag2iovs = cond::payloadInspector::PlotBase::getTag<1>().iovs; - l_tagname = cond::payloadInspector::PlotBase::getTag<1>().name; + auto tag2iovs = PlotBase::getTag<1>().iovs; + l_tagname = PlotBase::getTag<1>().name; lastiov = tag2iovs.front(); } else { lastiov = theIOVs.back(); @@ -397,22 +394,22 @@ namespace { }; using SiPixelLorentzAngleValuesBarrelCompareSingleTag = - SiPixelLorentzAngleValuesComparisonPerRegion; + SiPixelLorentzAngleValuesComparisonPerRegion; using SiPixelLorentzAngleValuesEndcapCompareSingleTag = - SiPixelLorentzAngleValuesComparisonPerRegion; + SiPixelLorentzAngleValuesComparisonPerRegion; using SiPixelLorentzAngleValuesBarrelCompareTwoTags = - SiPixelLorentzAngleValuesComparisonPerRegion; + SiPixelLorentzAngleValuesComparisonPerRegion; using SiPixelLorentzAngleValuesEndcapCompareTwoTags = - SiPixelLorentzAngleValuesComparisonPerRegion; + SiPixelLorentzAngleValuesComparisonPerRegion; /************************************************ 1d histogram of SiPixelLorentzAngle of 1 IOV *************************************************/ - class SiPixelLorentzAngleValueComparisonBase : public cond::payloadInspector::PlotImage { + class SiPixelLorentzAngleValueComparisonBase : public PlotImage { public: SiPixelLorentzAngleValueComparisonBase() - : cond::payloadInspector::PlotImage("SiPixelLorentzAngle Values Comparison") {} + : PlotImage("SiPixelLorentzAngle Values Comparison") {} bool fill(const std::vector> &iovs) override { TH1F::SetDefaultSumw2(true); std::vector> sorted_iovs = iovs; @@ -524,20 +521,19 @@ namespace { /************************************************ Summary Comparison per region of SiPixelLorentzAngle between 2 IOVs *************************************************/ - template - class SiPixelLorentzAngleByRegionComparisonBase - : public cond::payloadInspector::PlotImage { + template + class SiPixelLorentzAngleByRegionComparisonBase : public PlotImage { public: SiPixelLorentzAngleByRegionComparisonBase() - : cond::payloadInspector::PlotImage( + : PlotImage( Form("SiPixelLorentzAngle Comparison by Region %i tag(s)", ntags)) {} bool fill() override { gStyle->SetPaintTextFormat(".3f"); // trick to deal with the multi-ioved tag and two tag case at the same time - auto theIOVs = cond::payloadInspector::PlotBase::getTag<0>().iovs; - auto f_tagname = cond::payloadInspector::PlotBase::getTag<0>().name; + auto theIOVs = PlotBase::getTag<0>().iovs; + auto f_tagname = PlotBase::getTag<0>().name; std::string l_tagname = ""; auto firstiov = theIOVs.front(); std::tuple lastiov; @@ -546,8 +542,8 @@ namespace { assert(this->m_plotAnnotations.ntags < 3); if (this->m_plotAnnotations.ntags == 2) { - auto tag2iovs = cond::payloadInspector::PlotBase::getTag<1>().iovs; - l_tagname = cond::payloadInspector::PlotBase::getTag<1>().name; + auto tag2iovs = PlotBase::getTag<1>().iovs; + l_tagname = PlotBase::getTag<1>().name; lastiov = tag2iovs.front(); } else { lastiov = theIOVs.back(); @@ -740,21 +736,17 @@ namespace { } }; - using SiPixelLorentzAngleByRegionComparisonSingleTag = - SiPixelLorentzAngleByRegionComparisonBase; - using SiPixelLorentzAngleByRegionComparisonTwoTags = - SiPixelLorentzAngleByRegionComparisonBase; + using SiPixelLorentzAngleByRegionComparisonSingleTag = SiPixelLorentzAngleByRegionComparisonBase; + using SiPixelLorentzAngleByRegionComparisonTwoTags = SiPixelLorentzAngleByRegionComparisonBase; /************************************************ occupancy style map BPix *************************************************/ - class SiPixelBPixLorentzAngleMap - : public cond::payloadInspector::PlotImage { + class SiPixelBPixLorentzAngleMap : public PlotImage { public: SiPixelBPixLorentzAngleMap() - : cond::payloadInspector::PlotImage( - "SiPixelLorentzAngle Barrel Pixel Map"), + : PlotImage("SiPixelLorentzAngle Barrel Pixel Map"), m_trackerTopo{StandaloneTrackerTopology::fromTrackerParametersXMLFile( edm::FileInPath("Geometry/TrackerCommonData/data/PhaseI/trackerParameters.xml").fullPath())} {} @@ -763,27 +755,8 @@ namespace { auto iov = tag.iovs.front(); std::shared_ptr payload = fetchPayload(std::get<1>(iov)); - static const int n_layers = 4; - int nlad_list[n_layers] = {6, 14, 22, 32}; - int divide_roc = 1; - - // --------------------- BOOK HISTOGRAMS - std::array h_bpix_LA; - - for (unsigned int lay = 1; lay <= 4; lay++) { - int nlad = nlad_list[lay - 1]; - - std::string name = "occ_LA_Layer_" + std::to_string(lay); - std::string title = "; Module # ; Ladder #"; - h_bpix_LA[lay - 1] = new TH2D(name.c_str(), - title.c_str(), - 72 * divide_roc, - -4.5, - 4.5, - (nlad * 4 + 2) * divide_roc, - -nlad - 0.5, - nlad + 0.5); - } + Phase1PixelROCMaps theBPixLAMap(""); + static constexpr int n_layers = 4; std::map LAMap_ = payload->getLorentzAngles(); if (LAMap_.size() != SiPixelPI::phase1size) { @@ -797,51 +770,42 @@ namespace { } // hard-coded phase-I - std::array minima = {{999., 999., 999., 999.}}; + std::array minima = {{999., 999., 999., 999.}}; for (const auto &element : LAMap_) { int subid = DetId(element.first).subdetId(); if (subid == PixelSubdetector::PixelBarrel) { auto layer = m_trackerTopo.pxbLayer(DetId(element.first)); - auto s_ladder = SiPixelPI::signed_ladder(DetId(element.first), m_trackerTopo, true); - auto s_module = SiPixelPI::signed_module(DetId(element.first), m_trackerTopo, true); - - auto ladder = m_trackerTopo.pxbLadder(DetId(element.first)); - auto module = m_trackerTopo.pxbModule(DetId(element.first)); - COUT << "layer:" << layer << " ladder:" << ladder << " module:" << module << " signed ladder: " << s_ladder - << " signed module: " << s_module << std::endl; if (element.second < minima.at(layer - 1)) minima.at(layer - 1) = element.second; - auto rocsToMask = SiPixelPI::maskedBarrelRocsToBins(layer, s_ladder, s_module); - for (const auto &bin : rocsToMask) { - h_bpix_LA[layer - 1]->SetBinContent(bin.first, bin.second, element.second); - } + theBPixLAMap.fillWholeModule(element.first, element.second); } } gStyle->SetOptStat(0); //========================= TCanvas canvas("Summary", "Summary", 1200, 1200); - canvas.Divide(2, 2); + theBPixLAMap.drawBarrelMaps(canvas); - for (unsigned int lay = 1; lay <= 4; lay++) { + for (unsigned int lay = 1; lay <= n_layers; lay++) { canvas.cd(lay)->SetBottomMargin(0.08); canvas.cd(lay)->SetLeftMargin(0.1); canvas.cd(lay)->SetRightMargin(0.13); + auto h_bpix_LA = theBPixLAMap.getLayerMaps(); + COUT << " layer:" << lay << " max:" << h_bpix_LA[lay - 1]->GetMaximum() << " min: " << minima.at(lay - 1) << std::endl; - SiPixelPI::dress_occup_plot(canvas, h_bpix_LA[lay - 1], lay, 0, 1, true, true, false); h_bpix_LA[lay - 1]->GetZaxis()->SetRangeUser(minima.at(lay - 1) - 0.001, h_bpix_LA[lay - 1]->GetMaximum() + 0.001); } auto unpacked = SiPixelPI::unpack(std::get<0>(iov)); - for (unsigned int lay = 1; lay <= 4; lay++) { + for (unsigned int lay = 1; lay <= n_layers; lay++) { canvas.cd(lay); auto ltx = TLatex(); ltx.SetTextFont(62); @@ -872,12 +836,10 @@ namespace { occupancy style map FPix *************************************************/ - class SiPixelFPixLorentzAngleMap - : public cond::payloadInspector::PlotImage { + class SiPixelFPixLorentzAngleMap : public PlotImage { public: SiPixelFPixLorentzAngleMap() - : cond::payloadInspector::PlotImage( - "SiPixelLorentzAngle Forward Pixel Map"), + : PlotImage("SiPixelLorentzAngle Forward Pixel Map"), m_trackerTopo{StandaloneTrackerTopology::fromTrackerParametersXMLFile( edm::FileInPath("Geometry/TrackerCommonData/data/PhaseI/trackerParameters.xml").fullPath())} {} @@ -886,19 +848,8 @@ namespace { auto iov = tag.iovs.front(); std::shared_ptr payload = fetchPayload(std::get<1>(iov)); - static const int n_rings = 2; - std::array h_fpix_LA; - int divide_roc = 1; - - // --------------------- BOOK HISTOGRAMS - for (unsigned int ring = 1; ring <= n_rings; ring++) { - int n = ring == 1 ? 92 : 140; - float y = ring == 1 ? 11.5 : 17.5; - std::string name = "occ_LA_ring_" + std::to_string(ring); - std::string title = "; Disk # ; Blade/Panel #"; - - h_fpix_LA[ring - 1] = new TH2D(name.c_str(), title.c_str(), 56 * divide_roc, -3.5, 3.5, n * divide_roc, -y, y); - } + Phase1PixelROCMaps theFPixLAMap(""); + static constexpr int n_rings = 2; std::map LAMap_ = payload->getLorentzAngles(); if (LAMap_.size() != SiPixelPI::phase1size) { @@ -912,44 +863,35 @@ namespace { } // hardcoded phase-I - std::array minima = {{999., 999.}}; + std::array minima = {{999., 999.}}; for (const auto &element : LAMap_) { int subid = DetId(element.first).subdetId(); if (subid == PixelSubdetector::PixelEndcap) { auto ring = SiPixelPI::ring(DetId(element.first), m_trackerTopo, true); - auto s_blade = SiPixelPI::signed_blade(DetId(element.first), m_trackerTopo, true); - auto s_disk = SiPixelPI::signed_disk(DetId(element.first), m_trackerTopo, true); - auto s_blade_panel = SiPixelPI::signed_blade_panel(DetId(element.first), m_trackerTopo, true); - auto panel = m_trackerTopo.pxfPanel(element.first); - - COUT << "ring:" << ring << " blade: " << s_blade << " panel: " << panel - << " signed blade/panel: " << s_blade_panel << " disk: " << s_disk << std::endl; if (element.second < minima.at(ring - 1)) minima.at(ring - 1) = element.second; - auto rocsToMask = SiPixelPI::maskedForwardRocsToBins(ring, s_blade, panel, s_disk); - for (const auto &bin : rocsToMask) { - h_fpix_LA[ring - 1]->SetBinContent(bin.first, bin.second, element.second); - } + theFPixLAMap.fillWholeModule(element.first, element.second); } } gStyle->SetOptStat(0); //========================= TCanvas canvas("Summary", "Summary", 1200, 600); - canvas.Divide(2, 1); + theFPixLAMap.drawForwardMaps(canvas); for (unsigned int ring = 1; ring <= n_rings; ring++) { canvas.cd(ring)->SetBottomMargin(0.08); canvas.cd(ring)->SetLeftMargin(0.1); canvas.cd(ring)->SetRightMargin(0.13); + auto h_fpix_LA = theFPixLAMap.getRingMaps(); + COUT << " ringer:" << ring << " max:" << h_fpix_LA[ring - 1]->GetMaximum() << " min: " << minima.at(ring - 1) << std::endl; - SiPixelPI::dress_occup_plot(canvas, h_fpix_LA[ring - 1], 0, ring, 1, true, true, false); h_fpix_LA[ring - 1]->GetZaxis()->SetRangeUser(minima.at(ring - 1) - 0.001, h_fpix_LA[ring - 1]->GetMaximum() + 0.001); } @@ -983,6 +925,73 @@ namespace { TrackerTopology m_trackerTopo; }; + /************************************************ + Full Pixel Tracker Map class + *************************************************/ + class SiPixelLorentzAngleFullPixelMap : public PlotImage { + public: + SiPixelLorentzAngleFullPixelMap() : PlotImage("SiPixelLorentzAngle Map") { + label_ = "SiPixelLorentzAngleFullPixelMap"; + payloadString = "Lorentz Angle"; + } + + bool fill() override { + gStyle->SetPalette(1); + auto tag = PlotBase::getTag<0>(); + auto iov = tag.iovs.front(); + std::shared_ptr payload = this->fetchPayload(std::get<1>(iov)); + + if (payload.get()) { + Phase1PixelSummaryMap fullMap( + "", fmt::sprintf("%s", payloadString), fmt::sprintf("%s #mu_{H} [1/T]", payloadString)); + fullMap.createTrackerBaseMap(); + + std::map LAMap_ = payload->getLorentzAngles(); + + if (LAMap_.size() == SiPixelPI::phase0size || LAMap_.size() > SiPixelPI::phase1size) { + edm::LogError(label_) << "There are " << LAMap_.size() + << " DetIds in this payload. SiPixelLorentzAngleFullPixelMap maps are not supported " + "for non-Phase1 Pixel geometries !"; + TCanvas canvas("Canv", "Canv", 1200, 1000); + SiPixelPI::displayNotSupported(canvas, LAMap_.size()); + std::string fileName(this->m_imageFileName); + canvas.SaveAs(fileName.c_str()); + return false; + } else { + if (LAMap_.size() < SiPixelPI::phase1size) { + edm::LogWarning(label_) << "\n ********* WARNING! ********* \n There are " << LAMap_.size() + << " DetIds in this payload !" + << "\n **************************** \n"; + } + } + + for (const auto &entry : LAMap_) { + fullMap.fillTrackerMap(entry.first, entry.second); + } + + TCanvas canvas("Canv", "Canv", 3000, 2000); + fullMap.printTrackerMap(canvas); + + auto ltx = TLatex(); + ltx.SetTextFont(62); + ltx.SetTextSize(0.025); + ltx.SetTextAlign(11); + ltx.DrawLatexNDC( + gPad->GetLeftMargin() + 0.01, + gPad->GetBottomMargin() + 0.01, + ("#color[4]{" + tag.name + "}, IOV: #color[4]{" + std::to_string(std::get<0>(iov)) + "}").c_str()); + + std::string fileName(this->m_imageFileName); + canvas.SaveAs(fileName.c_str()); + } + return true; + } + + protected: + std::string payloadString; + std::string label_; + }; + } // namespace PAYLOAD_INSPECTOR_MODULE(SiPixelLorentzAngle) { @@ -1000,4 +1009,5 @@ PAYLOAD_INSPECTOR_MODULE(SiPixelLorentzAngle) { PAYLOAD_INSPECTOR_CLASS(SiPixelLorentzAngleByRegionComparisonTwoTags); PAYLOAD_INSPECTOR_CLASS(SiPixelBPixLorentzAngleMap); PAYLOAD_INSPECTOR_CLASS(SiPixelFPixLorentzAngleMap); + PAYLOAD_INSPECTOR_CLASS(SiPixelLorentzAngleFullPixelMap); } diff --git a/CondCore/SiPixelPlugins/plugins/SiPixelQuality_PayloadInspector.cc b/CondCore/SiPixelPlugins/plugins/SiPixelQuality_PayloadInspector.cc index fe399b26a9ef5..2dfed132eb296 100644 --- a/CondCore/SiPixelPlugins/plugins/SiPixelQuality_PayloadInspector.cc +++ b/CondCore/SiPixelPlugins/plugins/SiPixelQuality_PayloadInspector.cc @@ -20,6 +20,7 @@ #include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h" #include "DataFormats/DetId/interface/DetId.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "DQM/TrackerRemapper/interface/Phase1PixelROCMaps.h" #include #include @@ -99,6 +100,7 @@ namespace { //========================= TCanvas canvas("Partion summary", "partition summary", 1200, 1000); + SiPixelPI::displayNotSupported(canvas, 0); canvas.cd(); canvas.SetBottomMargin(0.11); canvas.SetLeftMargin(0.13); @@ -159,57 +161,17 @@ namespace { auto iov = tag.iovs.front(); std::shared_ptr payload = fetchPayload(std::get<1>(iov)); - static const int n_layers = 4; - int nlad_list[n_layers] = {6, 14, 22, 32}; - int divide_roc = 1; - - // --------------------- BOOK HISTOGRAMS - std::array h_bpix_occ; - - for (unsigned int lay = 1; lay <= 4; lay++) { - int nlad = nlad_list[lay - 1]; - - std::string name = "occ_Layer_" + std::to_string(lay); - std::string title = "; Module # ; Ladder #"; - h_bpix_occ[lay - 1] = new TH2D(name.c_str(), - title.c_str(), - 72 * divide_roc, - -4.5, - 4.5, - (nlad * 4 + 2) * divide_roc, - -nlad - 0.5, - nlad + 0.5); - } + Phase1PixelROCMaps theBPixMap(""); auto theDisabledModules = payload->getBadComponentList(); for (const auto& mod : theDisabledModules) { - int coded_badRocs = mod.BadRocs; int subid = DetId(mod.DetID).subdetId(); - std::bitset<16> bad_rocs(coded_badRocs); + std::bitset<16> bad_rocs(mod.BadRocs); if (subid == PixelSubdetector::PixelBarrel) { - auto layer = m_trackerTopo.pxbLayer(DetId(mod.DetID)); - auto s_ladder = SiPixelPI::signed_ladder(DetId(mod.DetID), m_trackerTopo, true); - auto s_module = SiPixelPI::signed_module(DetId(mod.DetID), m_trackerTopo, true); - - bool isFlipped = SiPixelPI::isBPixOuterLadder(DetId(mod.DetID), m_trackerTopo, false); - if ((layer > 1 && s_module < 0)) - isFlipped = !isFlipped; - - auto ladder = m_trackerTopo.pxbLadder(DetId(mod.DetID)); - auto module = m_trackerTopo.pxbModule(DetId(mod.DetID)); - COUT << "layer:" << layer << " ladder:" << ladder << " module:" << module << " signed ladder: " << s_ladder - << " signed module: " << s_module << std::endl; - if (payload->IsModuleBad(mod.DetID)) { - auto rocsToMask = SiPixelPI::maskedBarrelRocsToBins(layer, s_ladder, s_module); - for (const auto& bin : rocsToMask) { - h_bpix_occ[layer - 1]->SetBinContent(bin.first, bin.second, 1); - } + theBPixMap.fillWholeModule(mod.DetID, 1.); } else { - auto rocsToMask = SiPixelPI::maskedBarrelRocsToBins(layer, s_ladder, s_module, bad_rocs, isFlipped); - for (const auto& bin : rocsToMask) { - h_bpix_occ[layer - 1]->SetBinContent(std::get<0>(bin), std::get<1>(bin), 1); - } + theBPixMap.fillSelectedRocs(mod.DetID, bad_rocs, 1.); } } } @@ -217,15 +179,7 @@ namespace { gStyle->SetOptStat(0); //========================= TCanvas canvas("Summary", "Summary", 1200, 1200); - canvas.Divide(2, 2); - canvas.SetBottomMargin(0.11); - canvas.SetLeftMargin(0.13); - canvas.SetRightMargin(0.05); - canvas.Modified(); - - for (unsigned int lay = 1; lay <= 4; lay++) { - SiPixelPI::dress_occup_plot(canvas, h_bpix_occ[lay - 1], lay, 0, 1); - } + theBPixMap.drawBarrelMaps(canvas); auto unpacked = SiPixelPI::unpack(std::get<0>(iov)); @@ -274,48 +228,17 @@ namespace { auto iov = tag.iovs.front(); std::shared_ptr payload = fetchPayload(std::get<1>(iov)); - static const int n_rings = 2; - std::array h_fpix_occ; - int divide_roc = 1; - - // --------------------- BOOK HISTOGRAMS - for (unsigned int ring = 1; ring <= n_rings; ring++) { - int n = ring == 1 ? 92 : 140; - float y = ring == 1 ? 11.5 : 17.5; - std::string name = "occ_ring_" + std::to_string(ring); - std::string title = "; Disk # ; Blade/Panel #"; - - h_fpix_occ[ring - 1] = new TH2D(name.c_str(), title.c_str(), 56 * divide_roc, -3.5, 3.5, n * divide_roc, -y, y); - } + Phase1PixelROCMaps theFPixMap(""); auto theDisabledModules = payload->getBadComponentList(); for (const auto& mod : theDisabledModules) { - int coded_badRocs = mod.BadRocs; int subid = DetId(mod.DetID).subdetId(); - std::bitset<16> bad_rocs(coded_badRocs); + std::bitset<16> bad_rocs(mod.BadRocs); if (subid == PixelSubdetector::PixelEndcap) { - auto ring = SiPixelPI::ring(DetId(mod.DetID), m_trackerTopo, true); - auto s_blade = SiPixelPI::signed_blade(DetId(mod.DetID), m_trackerTopo, true); - auto s_disk = SiPixelPI::signed_disk(DetId(mod.DetID), m_trackerTopo, true); - auto s_blade_panel = SiPixelPI::signed_blade_panel(DetId(mod.DetID), m_trackerTopo, true); - auto panel = m_trackerTopo.pxfPanel(mod.DetID); - - //bool isFlipped = (s_disk > 0) ? (std::abs(s_blade)%2==0) : (std::abs(s_blade)%2==1); - bool isFlipped = (s_disk > 0) ? (panel == 1) : (panel == 2); - - COUT << "ring:" << ring << " blade: " << s_blade << " panel: " << panel - << " signed blade/panel: " << s_blade_panel << " disk: " << s_disk << std::endl; - if (payload->IsModuleBad(mod.DetID)) { - auto rocsToMask = SiPixelPI::maskedForwardRocsToBins(ring, s_blade, panel, s_disk); - for (const auto& bin : rocsToMask) { - h_fpix_occ[ring - 1]->SetBinContent(bin.first, bin.second, 1); - } + theFPixMap.fillWholeModule(mod.DetID, 1.); } else { - auto rocsToMask = SiPixelPI::maskedForwardRocsToBins(ring, s_blade, panel, s_disk, bad_rocs, isFlipped); - for (const auto& bin : rocsToMask) { - h_fpix_occ[ring - 1]->SetBinContent(std::get<0>(bin), std::get<1>(bin), 1); - } + theFPixMap.fillSelectedRocs(mod.DetID, bad_rocs, 1.); } } // if it's endcap } // loop on disable moduels @@ -323,19 +246,11 @@ namespace { gStyle->SetOptStat(0); //========================= TCanvas canvas("Summary", "Summary", 1200, 600); - canvas.Divide(2, 1); - canvas.SetBottomMargin(0.11); - canvas.SetLeftMargin(0.13); - canvas.SetRightMargin(0.05); - canvas.Modified(); - - for (unsigned int ring = 1; ring <= n_rings; ring++) { - SiPixelPI::dress_occup_plot(canvas, h_fpix_occ[ring - 1], 0, ring, 1); - } + theFPixMap.drawForwardMaps(canvas); auto unpacked = SiPixelPI::unpack(std::get<0>(iov)); - for (unsigned int ring = 1; ring <= n_rings; ring++) { + for (unsigned int ring = 1; ring <= 2; ring++) { canvas.cd(ring); auto ltx = TLatex(); ltx.SetTextFont(62); diff --git a/CondCore/SiPixelPlugins/plugins/SiPixelTemplateDBObject_PayloadInspector.cc b/CondCore/SiPixelPlugins/plugins/SiPixelTemplateDBObject_PayloadInspector.cc index 322cfdc8244f6..7ba830d51f970 100644 --- a/CondCore/SiPixelPlugins/plugins/SiPixelTemplateDBObject_PayloadInspector.cc +++ b/CondCore/SiPixelPlugins/plugins/SiPixelTemplateDBObject_PayloadInspector.cc @@ -12,9 +12,8 @@ #include "CondCore/Utilities/interface/PayloadInspector.h" #include "CondCore/CondDB/interface/Time.h" #include "CondCore/SiPixelPlugins/interface/SiPixelPayloadInspectorHelper.h" -#include "CondCore/SiPixelPlugins/interface/Phase1PixelMaps.h" #include "CondCore/SiPixelPlugins/interface/SiPixelTemplateHelper.h" - +#include "DQM/TrackerRemapper/interface/Phase1PixelMaps.h" #include "CalibTracker/StandaloneTrackerTopology/interface/StandaloneTrackerTopology.h" // the data format of the condition to be inspected @@ -29,7 +28,6 @@ #include #include #include -#include // include ROOT #include "TH2.h" @@ -172,7 +170,12 @@ namespace { } // Book the TH2Poly - Phase1PixelMaps theMaps("COLZ L"); + Phase1PixelMaps theMaps(""); + if (myType == SiPixelPI::t_all) { + theMaps.resetOption("COLZA L"); + } else { + theMaps.resetOption("COLZL"); + } if (myType == SiPixelPI::t_barrel) { theMaps.bookBarrelHistograms("templateLABarrel", "#muH", "#mu_{H} [1/T]"); @@ -180,6 +183,15 @@ namespace { } else if (myType == SiPixelPI::t_forward) { theMaps.bookForwardHistograms("templateLAForward", "#muH", "#mu_{H} [1/T]"); theMaps.bookForwardBins("templateLAForward"); + } else if (myType == SiPixelPI::t_all) { + theMaps.bookBarrelHistograms("templateLA", "#muH", "#mu_{H} [1/T]"); + theMaps.bookBarrelBins("templateLA"); + theMaps.bookForwardHistograms("templateLA", "#muH", "#mu_{H} [1/T]"); + theMaps.bookForwardBins("templateLA"); + } else { + edm::LogError("SiPixelTemplateDBObject_PayloadInspector") + << " un-recognized detector type " << myType << std::endl; + return false; } std::map templMap = payload->getTemplateIDs(); @@ -210,7 +222,14 @@ namespace { << " B-field: " << theInfos[entry.second].Bfield << std::endl; auto detid = DetId(entry.first); - if ((detid.subdetId() == PixelSubdetector::PixelBarrel) && (myType == SiPixelPI::t_barrel)) { + if (myType == SiPixelPI::t_all) { + if ((detid.subdetId() == PixelSubdetector::PixelBarrel)) { + theMaps.fillBarrelBin("templateLA", entry.first, uH); + } + if ((detid.subdetId() == PixelSubdetector::PixelEndcap)) { + theMaps.fillForwardBin("templateLA", entry.first, uH); + } + } else if ((detid.subdetId() == PixelSubdetector::PixelBarrel) && (myType == SiPixelPI::t_barrel)) { theMaps.fillBarrelBin("templateLABarrel", entry.first, uH); } else if ((detid.subdetId() == PixelSubdetector::PixelEndcap) && (myType == SiPixelPI::t_forward)) { theMaps.fillForwardBin("templateLAForward", entry.first, uH); @@ -221,9 +240,11 @@ namespace { TCanvas canvas("Canv", "Canv", (myType == SiPixelPI::t_barrel) ? 1200 : 1600, 1000); if (myType == SiPixelPI::t_barrel) { - theMaps.DrawBarrelMaps("templateLABarrel", canvas); + theMaps.drawBarrelMaps("templateLABarrel", canvas); } else if (myType == SiPixelPI::t_forward) { - theMaps.DrawForwardMaps("templateLAForward", canvas); + theMaps.drawForwardMaps("templateLAForward", canvas); + } else if (myType == SiPixelPI::t_all) { + theMaps.drawSummaryMaps("templateLA", canvas); } canvas.cd(); @@ -236,12 +257,19 @@ namespace { using SiPixelTemplateLABPixMap = SiPixelTemplateLA; using SiPixelTemplateLAFPixMap = SiPixelTemplateLA; + using SiPixelTemplateLAMap = SiPixelTemplateLA; using namespace templateHelper; + //************************************************ + // Full Pixel Tracker Map of Template IDs + // ***********************************************/ + using SiPixelTemplateIDsFullPixelMap = + SiPixelFullPixelIDMap; + //************************************************ // Display of Template Titles - // *************************************************/ + // **********************************************/ using SiPixelTemplateTitles_Display = SiPixelTitles_Display; @@ -255,16 +283,20 @@ namespace { //***********************************************/ using SiPixelTemplateIDsBPixMap = SiPixelIDs; using SiPixelTemplateIDsFPixMap = SiPixelIDs; + using SiPixelTemplateIDsMap = SiPixelIDs; } // namespace // Register the classes as boost python plugin PAYLOAD_INSPECTOR_MODULE(SiPixelTemplateDBObject) { PAYLOAD_INSPECTOR_CLASS(SiPixelTemplateDBObjectTest); + PAYLOAD_INSPECTOR_CLASS(SiPixelTemplateIDsFullPixelMap); PAYLOAD_INSPECTOR_CLASS(SiPixelTemplateTitles_Display); PAYLOAD_INSPECTOR_CLASS(SiPixelTemplateHeaderTable); + PAYLOAD_INSPECTOR_CLASS(SiPixelTemplateIDsMap); PAYLOAD_INSPECTOR_CLASS(SiPixelTemplateIDsBPixMap); PAYLOAD_INSPECTOR_CLASS(SiPixelTemplateIDsFPixMap); + PAYLOAD_INSPECTOR_CLASS(SiPixelTemplateLAMap); PAYLOAD_INSPECTOR_CLASS(SiPixelTemplateLABPixMap); PAYLOAD_INSPECTOR_CLASS(SiPixelTemplateLAFPixMap); } diff --git a/CondCore/SiPixelPlugins/test/BuildFile.xml b/CondCore/SiPixelPlugins/test/BuildFile.xml index f0b9658319323..b2d044f873abc 100644 --- a/CondCore/SiPixelPlugins/test/BuildFile.xml +++ b/CondCore/SiPixelPlugins/test/BuildFile.xml @@ -4,4 +4,5 @@ + diff --git a/CondCore/SiPixelPlugins/test/testLorentzAngleMap.sh b/CondCore/SiPixelPlugins/test/testLorentzAngleMap.sh index d9e6c29db7d76..74020cb2c0dd0 100755 --- a/CondCore/SiPixelPlugins/test/testLorentzAngleMap.sh +++ b/CondCore/SiPixelPlugins/test/testLorentzAngleMap.sh @@ -6,12 +6,44 @@ SCRAM_ARCH=slc6_amd64_gcc630; export SCRAM_ARCH; source /afs/cern.ch/cms/cmsset_default.sh; eval `scram run -sh`; +# Go back to original working directory +cd $W_DIR; +# Run get payload data script +if [ -d $W_DIR/plots_LAMap ]; then + rm -fr $W_DIR/plots_LAMap +fi -getPayloadData.py --plugin pluginSiPixelLorentzAngle_PayloadInspector --plot plot_SiPixelBPixLorentzAngleMap --tag SiPixelLorentzAngle_v11_offline --time_type Run --iovs '{"start_iov": "324245", "end_iov": "324245"}' --db Prod --test ; +mkdir $W_DIR/plots_LAMap -mv *.png $HOME/www/display/BPixPixelLAMap.png +getPayloadData.py \ + --plugin pluginSiPixelLorentzAngle_PayloadInspector \ + --plot plot_SiPixelBPixLorentzAngleMap \ + --tag SiPixelLorentzAngle_v11_offline \ + --time_type Run \ + --iovs '{"start_iov": "324245", "end_iov": "324245"}' \ + --db Prod \ + --test ; +mv *.png $W_DIR/plots_LAMap/BPixPixelLAMap.png -getPayloadData.py --plugin pluginSiPixelLorentzAngle_PayloadInspector --plot plot_SiPixelFPixLorentzAngleMap --tag SiPixelLorentzAngle_v11_offline --time_type Run --iovs '{"start_iov": "324245", "end_iov": "324245"}' --db Prod --test ; +getPayloadData.py \ + --plugin pluginSiPixelLorentzAngle_PayloadInspector \ + --plot plot_SiPixelFPixLorentzAngleMap \ + --tag SiPixelLorentzAngle_v11_offline \ + --time_type Run \ + --iovs '{"start_iov": "324245", "end_iov": "324245"}' \ + --db Prod \ + --test ; -mv *.png $HOME/www/display/FPixPixelLAMap.png +mv *.png $W_DIR/plots_LAMap/FPixPixelLAMap.png + +getPayloadData.py \ + --plugin pluginSiPixelLorentzAngle_PayloadInspector \ + --plot plot_SiPixelLorentzAngleFullPixelMap \ + --tag SiPixelLorentzAngle_v11_offline \ + --time_type Run \ + --iovs '{"start_iov": "324245", "end_iov": "324245"}' \ + --db Prod \ + --test ; + +mv *.png $W_DIR/plots_LAMap/FullPixelLAMap.png diff --git a/CondCore/SiPixelPlugins/test/testMiscellanea.sh b/CondCore/SiPixelPlugins/test/testMiscellanea.sh new file mode 100755 index 0000000000000..27a2971b8bf91 --- /dev/null +++ b/CondCore/SiPixelPlugins/test/testMiscellanea.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# Save current working dir so img can be outputted there later +W_DIR=$(pwd); +# Set SCRAM architecture var +SCRAM_ARCH=slc6_amd64_gcc630; +export SCRAM_ARCH; +source /afs/cern.ch/cms/cmsset_default.sh; +eval `scram run -sh`; + +mkdir -p $W_DIR/display + +getPayloadData.py \ + --plugin pluginSiPixelTemplateDBObject_PayloadInspector \ + --plot plot_SiPixelTemplateIDsFullPixelMap \ + --tag SiPixelTemplateDBObject_phase1_38T_2018_ultralegacymc_v1 \ + --time_type Run \ + --iovs '{"start_iov": "1", "end_iov" : "1"}' \ + --db Prod \ + --test ; + +mv *.png $W_DIR/display/testPixelMap.png diff --git a/CondCore/SiPixelPlugins/test/testSiPixelPayloadInspector.cpp b/CondCore/SiPixelPlugins/test/testSiPixelPayloadInspector.cpp index 18c594ee4e255..dc0f175bd4cb9 100644 --- a/CondCore/SiPixelPlugins/test/testSiPixelPayloadInspector.cpp +++ b/CondCore/SiPixelPlugins/test/testSiPixelPayloadInspector.cpp @@ -86,11 +86,11 @@ int main(int argc, char** argv) { edm::LogPrint("testSiPixelPayloadInspector") << "## Exercising SiPixelQuality plots " << std::endl; SiPixelBPixQualityMap histo8; - histo8.process(connectionString, PI::mk_input(tag, start, start)); + histo8.process(connectionString, PI::mk_input(tag, start, end)); edm::LogPrint("testSiPixelPayloadInspector") << histo8.data() << std::endl; SiPixelFPixQualityMap histo9; - histo9.process(connectionString, PI::mk_input(tag, start, start)); + histo9.process(connectionString, PI::mk_input(tag, start, end)); edm::LogPrint("testSiPixelPayloadInspector") << histo9.data() << std::endl; // SiPixelGainCalibrationOffline @@ -102,19 +102,19 @@ int main(int argc, char** argv) { edm::LogPrint("testSiPixelPayloadInspector") << "## Exercising SiPixelGainCalibrationOffline plots " << std::endl; SiPixelGainCalibrationOfflineGainsValues histo10; - histo10.process(connectionString, PI::mk_input(tag, start, start)); + histo10.process(connectionString, PI::mk_input(tag, start, end)); edm::LogPrint("testSiPixelPayloadInspector") << histo10.data() << std::endl; SiPixelGainCalibrationOfflinePedestalsValues histo11; - histo11.process(connectionString, PI::mk_input(tag, start, start)); + histo11.process(connectionString, PI::mk_input(tag, start, end)); edm::LogPrint("testSiPixelPayloadInspector") << histo11.data() << std::endl; SiPixelGainCalibrationOfflineGainsByPart histo12; - histo12.process(connectionString, PI::mk_input(tag, start, start)); + histo12.process(connectionString, PI::mk_input(tag, start, end)); edm::LogPrint("testSiPixelPayloadInspector") << histo12.data() << std::endl; SiPixelGainCalibrationOfflinePedestalsByPart histo13; - histo13.process(connectionString, PI::mk_input(tag, start, start)); + histo13.process(connectionString, PI::mk_input(tag, start, end)); edm::LogPrint("testSiPixelPayloadInspector") << histo13.data() << std::endl; end = boost::lexical_cast(326851); @@ -148,11 +148,11 @@ int main(int argc, char** argv) { edm::LogPrint("testSiPixelPayloadInspector") << "## Exercising SiPixelTemplates plots " << std::endl; SiPixelTemplateIDsBPixMap histo18; - histo18.process(connectionString, PI::mk_input(tag, end, end)); + histo18.process(connectionString, PI::mk_input(tag, start, end)); edm::LogPrint("testSiPixelPayloadInspector") << histo18.data() << std::endl; SiPixelTemplateLAFPixMap histo19; - histo19.process(connectionString, PI::mk_input(tag, end, end)); + histo19.process(connectionString, PI::mk_input(tag, start, end)); edm::LogPrint("testSiPixelPayloadInspector") << histo19.data() << std::endl; // SiPixelVCal @@ -182,11 +182,11 @@ int main(int argc, char** argv) { edm::LogPrint("testSiPixelPayloadInspector") << "## Exercising SiPixelGenErrors plots " << std::endl; SiPixelGenErrorHeaderTable histo23; - histo23.process(connectionString, PI::mk_input(tag, end, end)); + histo23.process(connectionString, PI::mk_input(tag, start, end)); edm::LogPrint("testSiPixelPayloadInspector") << histo23.data() << std::endl; SiPixelGenErrorIDsBPixMap histo24; - histo24.process(connectionString, PI::mk_input(tag, end, end)); + histo24.process(connectionString, PI::mk_input(tag, start, end)); edm::LogPrint("testSiPixelPayloadInspector") << histo24.data() << std::endl; // SiPixelQualityProbabilities @@ -198,7 +198,7 @@ int main(int argc, char** argv) { std::cout << "## Exercising SiPixelQualityProbabilities plots " << std::endl; SiPixelQualityProbabilitiesScenariosCount histo25; - histo25.process(connectionString, PI::mk_input(tag, start, start)); + histo25.process(connectionString, PI::mk_input(tag, start, end)); std::cout << histo25.data() << std::endl; inputs.clear(); diff --git a/CondCore/SiStripPlugins/interface/SiStripTkMaps.h b/CondCore/SiStripPlugins/interface/SiStripTkMaps.h deleted file mode 100644 index bb60f52b80ac1..0000000000000 --- a/CondCore/SiStripPlugins/interface/SiStripTkMaps.h +++ /dev/null @@ -1,340 +0,0 @@ -#ifndef CONDCORE_SISTRIPPLUGINS_SISTRIPTKMAPS_H -#define CONDCORE_SISTRIPPLUGINS_SISTRIPTKMAPS_H - -// CMSSW includes -#include "CalibTracker/StandaloneTrackerTopology/interface/StandaloneTrackerTopology.h" -#include "DataFormats/SiPixelDetId/interface/PXBDetId.h" -#include "DataFormats/SiPixelDetId/interface/PXFDetId.h" -#include "DataFormats/TrackerCommon/interface/PixelBarrelName.h" -#include "DataFormats/TrackerCommon/interface/PixelEndcapName.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" - -// ROOT includes -#include "TArrow.h" -#include "TPaletteAxis.h" -#include "TGaxis.h" -#include "TCanvas.h" -#include "TColor.h" -#include "TGraph.h" -#include "TLatex.h" -#include "TH2Poly.h" -#include "TStyle.h" - -// STL includes -#include -#include -#include -#include -#include - -// boost includes -#include -#include - -#define MYOUT LogDebug("SiStripTkMaps") - -/*-------------------------------------------------------------------- -/ Ancillary class to build SiStrip Tracker maps -/--------------------------------------------------------------------*/ -class SiStripTkMaps { -public: - SiStripTkMaps(const char* option) - : m_option{option}, - m_trackerTopo{StandaloneTrackerTopology::fromTrackerParametersXMLFile( - edm::FileInPath("Geometry/TrackerCommonData/data/PhaseI/trackerParameters.xml").fullPath())} {} - - ~SiStripTkMaps() = default; - - //============================================================================ - void bookMap(const std::string mapTitle, const std::string zAxisTitle) { - double minx = 0xFFFFFF, maxx = -0xFFFFFF, miny = 0xFFFFFF, maxy = -0xFFFFFFF; - readVertices(minx, maxx, miny, maxy); - - // set the titles - m_zAxisTitle = zAxisTitle; - m_mapTitle = mapTitle; - - TGaxis::SetMaxDigits(2); - - // margin of the box - static constexpr int margin = 5; - m_trackerMap = - new TH2Poly("Tracker Map", m_mapTitle.c_str(), minx - margin, maxx + margin, miny - margin, maxy + margin); - m_trackerMap->SetFloat(); - m_trackerMap->SetOption(m_option); - m_trackerMap->SetStats(false); - m_trackerMap->GetZaxis()->SetLabelSize(0.03); - m_trackerMap->GetZaxis()->SetTitleOffset(0.5); - m_trackerMap->GetZaxis()->SetTitleSize(0.05); - m_trackerMap->GetZaxis()->SetTitle(m_zAxisTitle.c_str()); - m_trackerMap->GetZaxis()->CenterTitle(); - - for (const auto& pair : m_bins) { - m_trackerMap->AddBin(pair.second->Clone()); - } - } - - //============================================================================ - void fill(long rawid, double val) { - m_trackerMap->Fill(TString::Format("%ld", rawid), val); - m_values.push_back(val); - } - - //============================================================================ - void drawMap(TCanvas& canvas, std::string option = "") { - // margins - static constexpr float tmargin_ = 0.08; - static constexpr float bmargin_ = 0.02; - static constexpr float lmargin_ = 0.02; - static constexpr float rmargin_ = 0.08; - - // window size - static constexpr int wH_ = 3000; - static constexpr int hH_ = 850; - - canvas.cd(); - adjustCanvasMargins(canvas.cd(), tmargin_, bmargin_, lmargin_, rmargin_); - canvas.Update(); - - m_trackerMap->SetTitle(""); - if (!option.empty()) { - m_trackerMap->Draw(option.c_str()); - } else { - m_trackerMap->Draw(); - } - - canvas.SetFrameLineColor(0); - gPad->Update(); - TPaletteAxis* palette = (TPaletteAxis*)m_trackerMap->GetListOfFunctions()->FindObject("palette"); - if (palette != nullptr) { - palette->SetLabelSize(0.02); - palette->SetX1NDC(1 - rmargin_); - palette->SetX2NDC(1 - rmargin_ + lmargin_); - } - - // if not right size, and not drawn in same mode - if (canvas.GetWindowHeight() != hH_ && canvas.GetWindowWidth() != wH_ && option.find("same") == std::string::npos) { - canvas.SetWindowSize(wH_, hH_); - } - - // call the map dressing - dressMap(canvas); - } - - //============================================================================ - const TH2Poly* getTheMap() { return m_trackerMap; } - - //============================================================================ - inline const std::string& getTheMapTitle() { return m_mapTitle; } - - //============================================================================ - inline const std::string& getTheZAxisTitle() { return m_zAxisTitle; } - - //============================================================================ - inline const std::vector& getTheFilledIds() { return m_detIdVector; } - - //============================================================================ - inline const std::vector& getTheFilledValues() { return m_values; } - - //============================================================================ - void setZAxisRange(double xmin, double xmax) { m_trackerMap->GetZaxis()->SetRangeUser(xmin, xmax); } - -private: - // private members - Option_t* m_option; - std::string m_mapTitle = ""; - std::string m_zAxisTitle = ""; - double m_axmin, m_axmax; - std::map> m_bins; - std::vector m_detIdVector; - std::vector m_values; - TrackerTopology m_trackerTopo; - TH2Poly* m_trackerMap{nullptr}; - - // private methods - //============================================================================ - void dressMap(TCanvas& canv) { - std::array barrelNames = { - {"TIB L2", "TIB L1", "TIB L4", "TIB L3", "TOB L2", "TOB L1", "TOB L4", " TOB L3", "TOB L6", "TOB L5"}}; - std::array endcapNames = {{"TID", "TEC", "TID", "TEC"}}; - std::array disknumbering = {{"+1", "+2", "+3", "+1", "+2", "+3", "+4", "+5", - "+6", "+7", "+8", "+9", "-1", "-2", "-3", "-1", - "-2", "-3", "-4", "-5", "-6", "-7", "-8", "-9"}}; - - static constexpr std::array b_coordx = { - {0.1, 0.1, 0.26, 0.26, 0.41, 0.41, 0.56, 0.56, 0.725, 0.725, 0.05, 0.17}}; - static constexpr std::array b_coordy = { - {0.70, 0.45, 0.70, 0.45, 0.70, 0.46, 0.70, 0.46, 0.70, 0.46, 0.85, 0.85}}; - - static constexpr std::array e_coordx = {{0.01, 0.21, 0.01, 0.21}}; - static constexpr std::array e_coordy = {{0.89, 0.89, 0.17, 0.17}}; - - static constexpr std::array n_coordx = {{0.01, 0.087, 0.165, 0.227, 0.305, 0.383, 0.461, 0.539, - 0.616, 0.694, 0.772, 0.850, 0.01, 0.087, 0.165, 0.227, - 0.305, 0.383, 0.461, 0.539, 0.617, 0.695, 0.773, 0.851}}; - - static constexpr std::array n_coordy = {{0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, - 0.85, 0.85, 0.85, 0.85, 0.13, 0.13, 0.13, 0.13, - 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13}}; - - canv.cd(); - for (const auto& name : barrelNames | boost::adaptors::indexed(0)) { - auto ltx = TLatex(); - ltx.SetTextFont(62); - ltx.SetTextSize(0.035); - ltx.SetTextAlign(11); - ltx.DrawLatexNDC(b_coordx[name.index()], b_coordy[name.index()], name.value().c_str()); - } - - for (const auto& name : endcapNames | boost::adaptors::indexed(0)) { - auto ltx = TLatex(); - ltx.SetTextFont(62); - ltx.SetTextSize(0.05); - ltx.SetTextAlign(11); - ltx.DrawLatexNDC(e_coordx[name.index()], e_coordy[name.index()], name.value().c_str()); - } - - for (const auto& name : disknumbering | boost::adaptors::indexed(0)) { - auto ltx = TLatex(); - ltx.SetTextFont(62); - ltx.SetTextSize(0.035); - ltx.SetTextAlign(11); - ltx.DrawLatexNDC(n_coordx[name.index()], n_coordy[name.index()], name.value().c_str()); - } - - auto ltx = TLatex(); - ltx.SetTextFont(62); - ltx.SetTextSize(0.045); - ltx.SetTextAlign(11); - ltx.DrawLatexNDC(gPad->GetLeftMargin(), 1 - gPad->GetTopMargin() + 0.03, m_mapTitle.c_str()); - - // barrel axes - drawArrows(0.09, 0.23, 0.24, 0.45, "#phi", "z"); - // endcap axes - drawArrows(0.85, 0.89, 0.83, 0.95, "x", "y"); - - canv.Modified(); - canv.Update(); // make sure it's really (re)drawn - } - - //============================================================================ - void drawArrows(const float x_X1, - const float x_X2, - const float x_Y1, - const float y_Y2, - const char* x_label, - const char* y_label) { - auto arrow_X = TArrow(); - arrow_X.SetLineColor(kBlue); - arrow_X.SetLineWidth(2); - arrow_X.SetOption("|>"); - arrow_X.SetArrowSize(10); - arrow_X.DrawLineNDC(x_X1, x_Y1, x_X2, x_Y1); - - auto arrow_Y = TArrow(); - arrow_Y.SetLineColor(kBlue); - arrow_Y.SetLineWidth(2); - arrow_Y.SetOption("|>"); - arrow_Y.SetArrowSize(10); - arrow_Y.DrawLineNDC(x_X2, x_Y1, x_X2, y_Y2); - - auto text_X = TLatex(); - text_X.SetTextSize(0.04); - text_X.SetTextAlign(11); - text_X.SetTextColor(kBlue); - text_X.DrawLatexNDC(x_X1, x_Y1 - 0.03, x_label); - - auto text_Y = TLatex(); - text_Y.SetTextSize(0.04); - text_Y.SetTextAlign(11); - text_Y.SetTextColor(kBlue); - text_Y.DrawLatexNDC(x_X2 + 0.005, y_Y2 - 0.01, y_label); - } - - //============================================================================ - void adjustCanvasMargins(TVirtualPad* pad, const float top, const float bottom, const float left, const float right) { - if (top > 0) { - pad->SetTopMargin(top); - } - if (bottom > 0) { - pad->SetBottomMargin(bottom); - } - if (left > 0) { - pad->SetLeftMargin(left); - } - if (right > 0) { - pad->SetRightMargin(right); - } - } - - //============================================================================ - void readVertices(double& minx, double& maxx, double& miny, double& maxy) { - std::ifstream in; - - // TPolyline vertices stored at https://github.com/cms-data/DQM-SiStripMonitorClient - in.open(edm::FileInPath("DQM/SiStripMonitorClient/data/Geometry/tracker_map_bare").fullPath().c_str()); - - if (!in.good()) { - throw cms::Exception("FileError") << "SiStripTkMaps: problem opening vertices file!!" << std::endl; - return; - } - - while (in.good()) { - long detid = 0; - double x[5], y[5]; - - std::string line; - std::getline(in, line); - typedef boost::tokenizer> tokenizer; - boost::char_separator sep{" "}; - tokenizer tok{line, sep}; - - int ix{0}, iy{0}; - bool isPixel{false}; - for (const auto& t : tok | boost::adaptors::indexed(0)) { - int i = t.index(); - if (i == 0) { - detid = atoll((t.value()).c_str()); - - // Drop Pixel Data - DetId detId(detid); - if (detId.subdetId() == PixelSubdetector::PixelBarrel || detId.subdetId() == PixelSubdetector::PixelEndcap) { - isPixel = true; - break; - } - } else { - if (i % 2 == 0) { - x[ix] = atof((t.value()).c_str()); - if (x[ix] < minx) { - minx = x[ix]; - } - if (x[ix] > maxx) { - maxx = x[ix]; - } - ++ix; - } else { - y[iy] = atof((t.value()).c_str()); - if (y[iy] < miny) { - miny = y[iy]; - } - if (y[iy] > maxy) { - maxy = y[iy]; - } - ++iy; - } // else - } // else - } // loop on entries - - if (isPixel) { - continue; - } - - m_bins[detid] = std::make_shared(ix, x, y); - m_bins[detid]->SetName(TString::Format("%ld", detid)); - m_bins[detid]->SetTitle(TString::Format("Module ID=%ld", detid)); - m_detIdVector.push_back(detid); - } - } -}; - -#endif diff --git a/CondCore/SiStripPlugins/plugins/BuildFile.xml b/CondCore/SiStripPlugins/plugins/BuildFile.xml index a8f487dae7221..f4dd06768a787 100644 --- a/CondCore/SiStripPlugins/plugins/BuildFile.xml +++ b/CondCore/SiStripPlugins/plugins/BuildFile.xml @@ -19,6 +19,7 @@ + @@ -28,6 +29,7 @@ + diff --git a/CondCore/SiStripPlugins/plugins/SiStripApvGain_PayloadInspector.cc b/CondCore/SiStripPlugins/plugins/SiStripApvGain_PayloadInspector.cc index 93aeb2d9f7185..bc21118b11bc0 100644 --- a/CondCore/SiStripPlugins/plugins/SiStripApvGain_PayloadInspector.cc +++ b/CondCore/SiStripPlugins/plugins/SiStripApvGain_PayloadInspector.cc @@ -984,7 +984,7 @@ namespace { edm::LogWarning("LogicError") << "Unknown estimator: " << est; break; } - + return 0.; } // payload }; diff --git a/CondCore/SiStripPlugins/plugins/SiStripBadStrip_PayloadInspector.cc b/CondCore/SiStripPlugins/plugins/SiStripBadStrip_PayloadInspector.cc index c9bc2f20f944a..030ac02522bf7 100644 --- a/CondCore/SiStripPlugins/plugins/SiStripBadStrip_PayloadInspector.cc +++ b/CondCore/SiStripPlugins/plugins/SiStripBadStrip_PayloadInspector.cc @@ -22,7 +22,7 @@ // needed for the tracker map #include "CommonTools/TrackerMap/interface/TrackerMap.h" -#include "CondCore/SiStripPlugins/interface/SiStripTkMaps.h" +#include "DQM/TrackerRemapper/interface/SiStripTkMaps.h" // auxilliary functions #include "CondCore/SiStripPlugins/interface/SiStripPayloadInspectorHelper.h" diff --git a/CondCore/SiStripPlugins/plugins/SiStripLorentzAngle_PayloadInspector.cc b/CondCore/SiStripPlugins/plugins/SiStripLorentzAngle_PayloadInspector.cc index 6c11481e65438..cf81133689c26 100644 --- a/CondCore/SiStripPlugins/plugins/SiStripLorentzAngle_PayloadInspector.cc +++ b/CondCore/SiStripPlugins/plugins/SiStripLorentzAngle_PayloadInspector.cc @@ -15,7 +15,7 @@ #include "CommonTools/TrackerMap/interface/TrackerMap.h" #include "CondCore/SiStripPlugins/interface/SiStripPayloadInspectorHelper.h" -#include "CondCore/SiStripPlugins/interface/SiStripTkMaps.h" +#include "DQM/TrackerRemapper/interface/SiStripTkMaps.h" #include "CalibTracker/StandaloneTrackerTopology/interface/StandaloneTrackerTopology.h" diff --git a/CondCore/SiStripPlugins/test/BuildFile.xml b/CondCore/SiStripPlugins/test/BuildFile.xml index 9c66b2210ad9d..91856acb355dc 100644 --- a/CondCore/SiStripPlugins/test/BuildFile.xml +++ b/CondCore/SiStripPlugins/test/BuildFile.xml @@ -3,5 +3,6 @@ + diff --git a/CondCore/SiStripPlugins/test/testSiStripPayloadInspector.cpp b/CondCore/SiStripPlugins/test/testSiStripPayloadInspector.cpp index 1b0a6e2823c59..285202ed5293c 100644 --- a/CondCore/SiStripPlugins/test/testSiStripPayloadInspector.cpp +++ b/CondCore/SiStripPlugins/test/testSiStripPayloadInspector.cpp @@ -141,7 +141,7 @@ int main(int argc, char** argv) { edm::LogPrint("testSiStripPayloadInspector") << "## Exercising Threshold plots " << std::endl; SiStripThresholdValueHigh histo14; - histo14.process(connectionString, PI::mk_input(tag, start, start)); + histo14.process(connectionString, PI::mk_input(tag, start, end)); edm::LogPrint("testSiStripPayloadInspector") << histo14.data() << std::endl; // test SiStripTkMaps @@ -152,7 +152,7 @@ int main(int argc, char** argv) { edm::LogPrint("testSiStripPayloadInspector") << "## Exercising SiStripTkMaps plots " << std::endl; SiStripBadStripFractionTkMap histoTkMap; - histoTkMap.process(connectionString, PI::mk_input(tag, start, start)); + histoTkMap.process(connectionString, PI::mk_input(tag, start, end)); edm::LogPrint("testSiStripPayloadInspector") << histoTkMap.data() << std::endl; inputs.clear(); diff --git a/CondCore/Utilities/plugins/Module_2XML.cc b/CondCore/Utilities/plugins/Module_2XML.cc index e9bf734cb1501..29315adf8f158 100644 --- a/CondCore/Utilities/plugins/Module_2XML.cc +++ b/CondCore/Utilities/plugins/Module_2XML.cc @@ -85,6 +85,8 @@ PAYLOAD_2XML_MODULE(pluginUtilities_payload2xml) { PAYLOAD_2XML_CLASS(EcalCondTowerObjectContainer); PAYLOAD_2XML_CLASS(EcalFunParams); PAYLOAD_2XML_CLASS(EcalLaserAPDPNRatios); + PAYLOAD_2XML_CLASS(EcalMustacheSCParameters); + PAYLOAD_2XML_CLASS(EcalSCDynamicDPhiParameters); PAYLOAD_2XML_CLASS(EcalSRSettings); PAYLOAD_2XML_CLASS(EcalSampleMask); PAYLOAD_2XML_CLASS(EcalSamplesCorrelation); @@ -103,6 +105,9 @@ PAYLOAD_2XML_MODULE(pluginUtilities_payload2xml) { PAYLOAD_2XML_CLASS(EcalTPGTowerStatus); PAYLOAD_2XML_CLASS(EcalTPGWeightGroup); PAYLOAD_2XML_CLASS(EcalTPGWeightIdMap); + PAYLOAD_2XML_CLASS(EcalTPGOddWeightGroup); + PAYLOAD_2XML_CLASS(EcalTPGOddWeightIdMap); + PAYLOAD_2XML_CLASS(EcalTPGTPMode); PAYLOAD_2XML_CLASS(EcalTimeBiasCorrections); PAYLOAD_2XML_CLASS(EcalTimeDependentCorrections); PAYLOAD_2XML_CLASS(EcalTimeOffsetConstant); diff --git a/CondCore/Utilities/scripts/conddb b/CondCore/Utilities/scripts/conddb index 50acef57e2999..0692224a1a24c 100755 --- a/CondCore/Utilities/scripts/conddb +++ b/CondCore/Utilities/scripts/conddb @@ -750,6 +750,38 @@ class run_to_timestamp( object ): newiovs[bestRunTime] = iovs[since] return newiovs +class timestamp_to_run( object ): + def __init__( self, session ): + self.session = session + + def convertIovs( self, iovs ): + ks = sorted(iovs.keys()) + logging.info('Converting %s time-based iovs to run-based' %len(iovs) ) + RunInfo = self.session.get_dbtype(conddb.RunInfo) + minTs = datetime.datetime.utcfromtimestamp( int(ks[0]) >> 32 ) + maxTs = datetime.datetime.utcfromtimestamp( int(ks[len(ks)-1]) >> 32 ) + firstRun = self.session.query(sqlalchemy.func.min(RunInfo.run_number)).filter(RunInfo.end_time > minTs).one()[0] + lastRun = self.session.query(sqlalchemy.func.max(RunInfo.run_number)).filter(RunInfo.start_time < maxTs).one()[0] + runs = self.session.query(RunInfo.run_number,RunInfo.start_time,RunInfo.end_time).filter(RunInfo.run_number >= firstRun).filter(RunInfo.run_number <= lastRun ).order_by(RunInfo.run_number).all() + newiovs = {} + prevRun = None + for since in ks: + ts = datetime.datetime.utcfromtimestamp( since >> 32 ) + run = None + for r in runs: + if ts >= r[1] and ts <= r[2]: + run = r[0] + break + if run is not None: + if run == prevRun: + logging.info('Skipping iov with since %s, because it corresponds to an already mapped run %s' %(since,run)) + else: + prevRun = run + newiovs[run] = iovs[since] + else: + logging.info('Skipping iov with since %s, because no run is matching that time.'%since ) + return newiovs + def _convert_time( session, toTimeType, runNumber ): if toTimeType == 'Run': return runNumber @@ -1614,31 +1646,53 @@ def _copy_tag(args, copyTime, session1, session2, first, second, fromIOV=None, t destPayloadType = t['object_type'] destTimeType = t['time_type'] destSynchro = t['synchronization'] - if args.convertTime: - if not tag['time_type']=='Run': - logging.error('Time conversion from %s is not supported.' %tag['time_type']) - raise Exception("Cannot execute the copy.") + if args.toTimestamp: + if tag['time_type'] == 'Time': + logging.info('Source Tag timeType=Time. Ignoring request of conversion to Timestamp') + args.toTimestamp = False + else: + if not tag['time_type']=='Run': + logging.error('Conversion from %s to Timestamp is not supported.' %tag['time_type']) + raise Exception("Cannot execute the copy.") + if args.toRun: + if tag['time_type'] == 'Run': + logging.info('Source Tag timeType=Run. Ignoring request of conversion to Run') + args.toRun = False + else: + if not tag['time_type']=='Time': + logging.error('Conversion from %s to Run is not supported.' %tag['time_type']) + raise Exception("Cannot execute the copy.") if destExists: logging.warning('Destination tag "%s" already exists.' %second ) if destPayloadType != tag['object_type']: logging.error('Cannot copy iovs from tag %s (object type: %s) to tag %s (object type: %s), since the object types are different.' %(first,tag['object_type'],second,destPayloadType)) raise Exception('Object type mismatch, bailing out.') - if destTimeType != tag['time_type']: - if args.convertTime: - if not destTimeType=='Time': - logging.error('Time conversion to %s is not supported.' %destTimeType) - raise Exception("Cannot execute the copy.") + destTimeTypeOk = (destTimeType == tag['time_type']) + if args.toTimestamp: + if not destTimeType=='Time': + logging.error('TimeType of target tag %s does not allow conversion to Time.' %destTimeType) + raise Exception("Cannot execute the copy.") + else: + destTimeTypeOk = True + if args.toRun: + if not destTimeType=='Run': + logging.error('TimeType of target tag %s does not allow conversion to Run.' %destTimeType) + raise Exception("Cannot execute the copy.") else: - logging.error('Cannot copy iovs from tag %s (time type: %s) to tag %s (time type: %s), since the time types are different.' %(first,tag['time_type'],second,destTimeType)) - raise Exception('Time type mismatch, bailing out.') + destTimeTypeOk = True + if not destTimeTypeOk: + logging.error('Cannot copy iovs from tag %s (time type: %s) to tag %s (time type: %s), since the time types are different.' %(first,tag['time_type'],second,destTimeType)) + raise Exception('Time type mismatch, bailing out.') if not args.yes: output(args, 'Confirm the update of the existing tag "%s" in %s [n]?' %(second,args.destdb), newline=False) if raw_input().lower() not in ['y', 'yes']: raise Exception('Aborted by the user.') else: destSynchro = 'any' - if args.convertTime: + if args.toTimestamp: tag['time_type'] = 'Time' + if args.toRun: + tag['time_type'] = 'Run' destTimeType = tag['time_type'] dest = Tag2(**tag) dest.synchronization = destSynchro @@ -1710,10 +1764,12 @@ def _copy_tag(args, copyTime, session1, session2, first, second, fromIOV=None, t policy_type = _get_synchro_policy( destSynchro ) synchro_policy = policy_type( session1, session2, destTimeType, second ) ret, iovs = synchro_policy.validate( iovs ) - if args.convertTime: + if args.toTimestamp: converter = run_to_timestamp( conddb.getSessionOnMasterDB( session1, session2 ) ) iovs = converter.convertIovs( iovs ) - + if args.toRun: + converter = timestamp_to_run( conddb.getSessionOnMasterDB( session1, session2 ) ) + iovs = converter.convertIovs( iovs ) # making the list of the payloads to export... for since in iovs.keys(): hashes.add( iovs[since] ) @@ -1847,8 +1903,8 @@ def copy(args): if args.note is None or args.note=='' or args.note==' ': raise Exception('Cannot run in force edit mode without to provide a non-empty editing note.') if args.o2oTest: - if args.to is not None or getattr(args, 'from') is not None or args.snapshot is not None or args.override or args.nosynchro or args.convertTime: - raise Exception('Cannot execute the copy for the o2o test with the options from, to, override, nosynchro, snapshot or convertTime.') + if args.to is not None or getattr(args, 'from') is not None or args.snapshot is not None or args.override or args.nosynchro or args.toTimestamp: + raise Exception('Cannot execute the copy for the o2o test with the options from, to, override, nosynchro, snapshot or toTimestamp.') try: ret, niovs = _copy_tag(args, copyTime, session1, session2, args.first, args.second, getattr(args, 'from'), args.to) @@ -2554,9 +2610,9 @@ def main(): parser_copy.add_argument('--o2oTest', action='store_true', help='Special copy for o2o test. Copy the second to last iov of the source tag, to allow to run the o2o procedure to add the last iov. It cannot be executed with the from, to, ovveride and snapshot options.') parser_copy.add_argument('--synchronize',action='store_true',help='No effect, since the synchronization is applied by default for tags. The option is kept for backward compatibility') parser_copy.add_argument('--nosynchro',action='store_true',help='For tags, disable the synchronization of the destination iovs. No effect for other object type copy') - parser_copy.add_argument('--convertTime',action='store_true',help='For tags, triggers the convertion from run-based iovs to timestamp-based iovs. It will return an error for any combination with input tag non run-based, and existing destination tag non timestamp-based. Not supported with synchronization.') + parser_copy.add_argument('--toTimestamp',action='store_true',help='For tags, triggers the conversion from run-based iovs to timestamp-based iovs. It will return an error for any combination with input tag non run-based, and existing destination tag non timestamp-based. Not supported with synchronization.') + parser_copy.add_argument('--toRun',action='store_true',help='For tags, triggers the conversion from timestamp-based iovs to run-based iovs. When multiple timestamped IOVs are found matching the same run, only the first is considered. IOVs with timestamp not matching any run are skipped. It will return an error for any combination with input tag non timestamp-based, and existing destination tag non run-based. Not supported with synchronization.') parser_copy.set_defaults(func=copy) - parser_edit = parser_subparsers.add_parser('edit', description='Edits an object. Opens up your $EDITOR with prefilled text about the object. There you can modify the data. Save the file and quit the editor. The modified data will be written into the database. e.g. for a tag, its attributes and the list of IOVs/payloads appears and are modifiable.') parser_edit.add_argument('name', help="Name of the object. This can be a tag's name (edits its attributes and its IOVs/payloads), a global tag's name (edits its attributes and its mapping records <-> tags) or a payload's SHA1 hexadecimal hash (or a prefix if unique; TODO: edits its attributes). It must exactly match -- if needed, use the search command first to look for it.") parser_edit.add_argument('--header', default=False, action='store_true', help='Edit the header attributes of the object.') diff --git a/CondCore/Utilities/src/CondFormats.h b/CondCore/Utilities/src/CondFormats.h index c6d5fa054aa5a..b317327cfd1b8 100644 --- a/CondCore/Utilities/src/CondFormats.h +++ b/CondCore/Utilities/src/CondFormats.h @@ -174,7 +174,9 @@ #include "CondFormats/EcalObjects/interface/EcalDQMTowerStatus.h" #include "CondFormats/EcalObjects/interface/EcalGainRatios.h" #include "CondFormats/EcalObjects/interface/EcalMappingElectronics.h" +#include "CondFormats/EcalObjects/interface/EcalMustacheSCParameters.h" #include "CondFormats/EcalObjects/interface/EcalPedestals.h" +#include "CondFormats/EcalObjects/interface/EcalSCDynamicDPhiParameters.h" #include "CondFormats/EcalObjects/interface/EcalTPGCrystalStatus.h" #include "CondFormats/EcalObjects/interface/EcalTPGFineGrainEBGroup.h" #include "CondFormats/EcalObjects/interface/EcalTPGFineGrainEBIdMap.h" @@ -191,6 +193,9 @@ #include "CondFormats/EcalObjects/interface/EcalTPGTowerStatus.h" #include "CondFormats/EcalObjects/interface/EcalTPGWeightGroup.h" #include "CondFormats/EcalObjects/interface/EcalTPGWeightIdMap.h" +#include "CondFormats/EcalObjects/interface/EcalTPGOddWeightGroup.h" +#include "CondFormats/EcalObjects/interface/EcalTPGOddWeightIdMap.h" +#include "CondFormats/EcalObjects/interface/EcalTPGTPMode.h" #include "CondFormats/EcalObjects/interface/EcalWeightXtalGroups.h" #include "CondFormats/EcalObjects/interface/EcalSimPulseShape.h" #include "CondFormats/Common/interface/FileBlob.h" diff --git a/CondFormats/DataRecord/BuildFile.xml b/CondFormats/DataRecord/BuildFile.xml index 17416828206ee..b7fe9d82aa519 100644 --- a/CondFormats/DataRecord/BuildFile.xml +++ b/CondFormats/DataRecord/BuildFile.xml @@ -1,4 +1,5 @@ + diff --git a/CondFormats/DataRecord/interface/EcalTPGOddWeightGroupRcd.h b/CondFormats/DataRecord/interface/EcalTPGOddWeightGroupRcd.h new file mode 100644 index 0000000000000..120ea016810ae --- /dev/null +++ b/CondFormats/DataRecord/interface/EcalTPGOddWeightGroupRcd.h @@ -0,0 +1,6 @@ +#ifndef CondFormats_DataRecord_EcalTPGOddWeightGroupRcd_h +#define CondFormats_DataRecord_EcalTPGOddWeightGroupRcd_h + +#include "FWCore/Framework/interface/EventSetupRecordImplementation.h" +class EcalTPGOddWeightGroupRcd : public edm::eventsetup::EventSetupRecordImplementation {}; +#endif diff --git a/CondFormats/DataRecord/interface/EcalTPGOddWeightIdMapRcd.h b/CondFormats/DataRecord/interface/EcalTPGOddWeightIdMapRcd.h new file mode 100644 index 0000000000000..a571353e0b555 --- /dev/null +++ b/CondFormats/DataRecord/interface/EcalTPGOddWeightIdMapRcd.h @@ -0,0 +1,6 @@ +#ifndef CondFormats_DataRecord_EcalTPGOddWeightIdMapRcd_h +#define CondFormats_DataRecord_EcalTPGOddWeightIdMapRcd_h + +#include "FWCore/Framework/interface/EventSetupRecordImplementation.h" +class EcalTPGOddWeightIdMapRcd : public edm::eventsetup::EventSetupRecordImplementation {}; +#endif diff --git a/CondFormats/DataRecord/interface/EcalTPGTPModeRcd.h b/CondFormats/DataRecord/interface/EcalTPGTPModeRcd.h new file mode 100644 index 0000000000000..f7b51d9a281cf --- /dev/null +++ b/CondFormats/DataRecord/interface/EcalTPGTPModeRcd.h @@ -0,0 +1,13 @@ +#ifndef CondFormats_DataRecord_EcalTPGTPModeRcd_h +#define CondFormats_DataRecord_EcalTPGTPModeRcd_h + +// +// Author: Davide Valsecchi +// Created: Thu, 11 Feb 2021 08:50:49 GMT +// + +#include "FWCore/Framework/interface/EventSetupRecordImplementation.h" + +class EcalTPGTPModeRcd : public edm::eventsetup::EventSetupRecordImplementation {}; + +#endif diff --git a/CondFormats/DataRecord/interface/HeterogeneousHGCalHEFCellPositionsConditionsRecord.h b/CondFormats/DataRecord/interface/HeterogeneousHGCalHEFCellPositionsConditionsRecord.h new file mode 100644 index 0000000000000..b125b2ee14302 --- /dev/null +++ b/CondFormats/DataRecord/interface/HeterogeneousHGCalHEFCellPositionsConditionsRecord.h @@ -0,0 +1,12 @@ +#ifndef CondFormats_DataRecord_HeterogeneousHGCalHEFCellPositionsConditionsRecord_h +#define CondFormats_DataRecord_HeterogeneousHGCalHEFCellPositionsConditionsRecord_h + +#include "FWCore/Framework/interface/DependentRecordImplementation.h" +#include "Geometry/Records/interface/IdealGeometryRecord.h" +#include "FWCore/Utilities/interface/mplVector.h" + +class HeterogeneousHGCalHEFCellPositionsConditionsRecord + : public edm::eventsetup::DependentRecordImplementation> {}; + +#endif //CondFormats_DataRecord_HeterogeneousHGCalHEFCellPositionsConditionsRecord_h diff --git a/CondFormats/DataRecord/src/EcalTPGOddWeightGroupRcd.cc b/CondFormats/DataRecord/src/EcalTPGOddWeightGroupRcd.cc new file mode 100644 index 0000000000000..03924ba26eb48 --- /dev/null +++ b/CondFormats/DataRecord/src/EcalTPGOddWeightGroupRcd.cc @@ -0,0 +1,4 @@ +#include "CondFormats/DataRecord/interface/EcalTPGOddWeightGroupRcd.h" +#include "FWCore/Framework/interface/eventsetuprecord_registration_macro.h" + +EVENTSETUP_RECORD_REG(EcalTPGOddWeightGroupRcd); diff --git a/CondFormats/DataRecord/src/EcalTPGOddWeightIdMapRcd.cc b/CondFormats/DataRecord/src/EcalTPGOddWeightIdMapRcd.cc new file mode 100644 index 0000000000000..8cffd5f499aa9 --- /dev/null +++ b/CondFormats/DataRecord/src/EcalTPGOddWeightIdMapRcd.cc @@ -0,0 +1,4 @@ +#include "CondFormats/DataRecord/interface/EcalTPGOddWeightIdMapRcd.h" +#include "FWCore/Framework/interface/eventsetuprecord_registration_macro.h" + +EVENTSETUP_RECORD_REG(EcalTPGOddWeightIdMapRcd); diff --git a/CondFormats/DataRecord/src/EcalTPGTPModeRcd.cc b/CondFormats/DataRecord/src/EcalTPGTPModeRcd.cc new file mode 100644 index 0000000000000..0b899c26a11a5 --- /dev/null +++ b/CondFormats/DataRecord/src/EcalTPGTPModeRcd.cc @@ -0,0 +1,15 @@ +// -*- C++ -*- +// +// Package: CondFormats/DataRecord +// Class : EcalTPGTPMode +// +// Implementation: +// [Notes on implementation] +// +// Author: Davide Valsecchi +// Created: Thu, 11 Feb 2021 08:50:49 GMT + +#include "CondFormats/DataRecord/interface/EcalTPGTPModeRcd.h" +#include "FWCore/Framework/interface/eventsetuprecord_registration_macro.h" + +EVENTSETUP_RECORD_REG(EcalTPGTPModeRcd); diff --git a/CondFormats/DataRecord/src/HeterogeneousHGCalHEFCellPositionsConditionsRecord.cc b/CondFormats/DataRecord/src/HeterogeneousHGCalHEFCellPositionsConditionsRecord.cc new file mode 100644 index 0000000000000..b456c2de41bbc --- /dev/null +++ b/CondFormats/DataRecord/src/HeterogeneousHGCalHEFCellPositionsConditionsRecord.cc @@ -0,0 +1,4 @@ +#include "CondFormats/DataRecord/interface/HeterogeneousHGCalHEFCellPositionsConditionsRecord.h" +#include "FWCore/Framework/interface/eventsetuprecord_registration_macro.h" + +EVENTSETUP_RECORD_REG(HeterogeneousHGCalHEFCellPositionsConditionsRecord); diff --git a/CondFormats/EcalObjects/BuildFile.xml b/CondFormats/EcalObjects/BuildFile.xml index aa87dacc6a043..11a0a25bec707 100644 --- a/CondFormats/EcalObjects/BuildFile.xml +++ b/CondFormats/EcalObjects/BuildFile.xml @@ -3,10 +3,13 @@ + + + diff --git a/RecoLocalCalo/EcalRecAlgos/interface/EcalGainRatiosGPU.h b/CondFormats/EcalObjects/interface/EcalGainRatiosGPU.h similarity index 65% rename from RecoLocalCalo/EcalRecAlgos/interface/EcalGainRatiosGPU.h rename to CondFormats/EcalObjects/interface/EcalGainRatiosGPU.h index a3f65d0b509fc..27a4236acd6e1 100644 --- a/RecoLocalCalo/EcalRecAlgos/interface/EcalGainRatiosGPU.h +++ b/CondFormats/EcalObjects/interface/EcalGainRatiosGPU.h @@ -1,7 +1,9 @@ -#ifndef RecoLocalCalo_EcalRecAlgos_interface_EcalGainRatiosGPU_h -#define RecoLocalCalo_EcalRecAlgos_interface_EcalGainRatiosGPU_h +#ifndef CondFormats_EcalObjects_interface_EcalGainRatiosGPU_h +#define CondFormats_EcalObjects_interface_EcalGainRatiosGPU_h #include "CondFormats/EcalObjects/interface/EcalGainRatios.h" +#include "FWCore/Utilities/interface/propagate_const_array.h" +#include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h" #ifndef __CUDACC__ #include "HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h" @@ -11,8 +13,8 @@ class EcalGainRatiosGPU { public: struct Product { - ~Product(); - float *gain12Over6 = nullptr, *gain6Over1 = nullptr; + edm::propagate_const_array> gain12Over6; + edm::propagate_const_array> gain6Over1; }; #ifndef __CUDACC__ @@ -40,4 +42,4 @@ class EcalGainRatiosGPU { #endif // __CUDACC__ }; -#endif // RecoLocalCalo_EcalRecAlgos_interface_EcalGainRatiosGPU_h +#endif // CondFormats_EcalObjects_interface_EcalGainRatiosGPU_h diff --git a/RecoLocalCalo/EcalRecAlgos/interface/EcalIntercalibConstantsGPU.h b/CondFormats/EcalObjects/interface/EcalIntercalibConstantsGPU.h similarity index 60% rename from RecoLocalCalo/EcalRecAlgos/interface/EcalIntercalibConstantsGPU.h rename to CondFormats/EcalObjects/interface/EcalIntercalibConstantsGPU.h index 4b5401ff0316f..35c172a2920af 100644 --- a/RecoLocalCalo/EcalRecAlgos/interface/EcalIntercalibConstantsGPU.h +++ b/CondFormats/EcalObjects/interface/EcalIntercalibConstantsGPU.h @@ -1,7 +1,9 @@ -#ifndef RecoLocalCalo_EcalRecAlgos_interface_EcalIntercalibConstantsGPU_h -#define RecoLocalCalo_EcalRecAlgos_interface_EcalIntercalibConstantsGPU_h +#ifndef CondFormats_EcalObjects_interface_EcalIntercalibConstantsGPU_h +#define CondFormats_EcalObjects_interface_EcalIntercalibConstantsGPU_h #include "CondFormats/EcalObjects/interface/EcalIntercalibConstants.h" +#include "FWCore/Utilities/interface/propagate_const_array.h" +#include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h" #ifndef __CUDACC__ #include "HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h" @@ -11,8 +13,7 @@ class EcalIntercalibConstantsGPU { public: struct Product { - ~Product(); - float* values = nullptr; + edm::propagate_const_array> values; }; #ifndef __CUDACC__ @@ -27,17 +28,17 @@ class EcalIntercalibConstantsGPU { // TODO: do this centrally // get offset for hashes. equals number of barrel items - uint32_t getOffset() const { return valuesEB_.size(); } + uint32_t getOffset() const { return offset_; } // static std::string name() { return std::string{"ecalIntercalibConstantsGPU"}; } private: - std::vector const& valuesEB_; - std::vector const& valuesEE_; + std::vector> values_; + uint32_t offset_; cms::cuda::ESProduct product_; #endif // __CUDACC__ }; -#endif // RecoLocalCalo_EcalRecAlgos_interface_EcalIntercalibConstantsGPU_h +#endif // CondFormats_EcalObjects_interface_EcalIntercalibConstantsGPU_h diff --git a/CondFormats/EcalObjects/interface/EcalLaserAPDPNRatiosGPU.h b/CondFormats/EcalObjects/interface/EcalLaserAPDPNRatiosGPU.h new file mode 100644 index 0000000000000..f68c405470556 --- /dev/null +++ b/CondFormats/EcalObjects/interface/EcalLaserAPDPNRatiosGPU.h @@ -0,0 +1,54 @@ +#ifndef CondFormats_EcalObjects_interface_EcalLaserAPDPNRatiosGPU_h +#define CondFormats_EcalObjects_interface_EcalLaserAPDPNRatiosGPU_h + +#include "CondFormats/EcalObjects/interface/EcalLaserAPDPNRatios.h" +#include "FWCore/Utilities/interface/propagate_const_array.h" +#include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h" + +#ifndef __CUDACC__ +#include "HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h" +#include "HeterogeneousCore/CUDACore/interface/ESProduct.h" +#endif // __CUDACC__ + +class EcalLaserAPDPNRatiosGPU { +public: + struct Product { + edm::propagate_const_array> p1; + edm::propagate_const_array> p2; + edm::propagate_const_array> p3; + edm::propagate_const_array> t1; + edm::propagate_const_array> t2; + edm::propagate_const_array> t3; + }; + +#ifndef __CUDACC__ + + // + EcalLaserAPDPNRatiosGPU(EcalLaserAPDPNRatios const &); + + // will call dealloation for Product thru ~Product + ~EcalLaserAPDPNRatiosGPU() = default; + + // get device pointers + Product const &getProduct(cudaStream_t) const; + + // + static std::string name() { return std::string{"ecalLaserAPDPNRatiosGPU"}; } + +private: + // in the future, we need to arrange so to avoid this copy on the host + // store eb first then ee + std::vector> p1_; + std::vector> p2_; + std::vector> p3_; + + std::vector> t1_; + std::vector> t2_; + std::vector> t3_; + + cms::cuda::ESProduct product_; + +#endif // __CUDACC__ +}; + +#endif // CondFormats_EcalObjects_interface_EcalLaserAPDPNRatiosGPU_h diff --git a/RecoLocalCalo/EcalRecAlgos/interface/EcalLaserAPDPNRatiosRefGPU.h b/CondFormats/EcalObjects/interface/EcalLaserAPDPNRatiosRefGPU.h similarity index 60% rename from RecoLocalCalo/EcalRecAlgos/interface/EcalLaserAPDPNRatiosRefGPU.h rename to CondFormats/EcalObjects/interface/EcalLaserAPDPNRatiosRefGPU.h index 985bfd9579f7c..2b9514a081c14 100644 --- a/RecoLocalCalo/EcalRecAlgos/interface/EcalLaserAPDPNRatiosRefGPU.h +++ b/CondFormats/EcalObjects/interface/EcalLaserAPDPNRatiosRefGPU.h @@ -1,7 +1,9 @@ -#ifndef RecoLocalCalo_EcalRecAlgos_interface_EcalLaserAPDPNRatiosRefGPU_h -#define RecoLocalCalo_EcalRecAlgos_interface_EcalLaserAPDPNRatiosRefGPU_h +#ifndef CondFormats_EcalObjects_interface_EcalLaserAPDPNRatiosRefGPU_h +#define CondFormats_EcalObjects_interface_EcalLaserAPDPNRatiosRefGPU_h #include "CondFormats/EcalObjects/interface/EcalLaserAPDPNRatiosRef.h" +#include "FWCore/Utilities/interface/propagate_const_array.h" +#include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h" #ifndef __CUDACC__ #include "HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h" @@ -11,8 +13,7 @@ class EcalLaserAPDPNRatiosRefGPU { public: struct Product { - ~Product(); - float* values = nullptr; + edm::propagate_const_array> values; }; #ifndef __CUDACC__ @@ -27,17 +28,17 @@ class EcalLaserAPDPNRatiosRefGPU { // TODO: do this centrally // get offset for hashes. equals number of barrel items - uint32_t getOffset() const { return valuesEB_.size(); } + uint32_t getOffset() const { return offset_; } + uint32_t offset_; // static std::string name() { return std::string{"ecalLaserAPDPNRatiosRefGPU"}; } private: - std::vector const& valuesEB_; - std::vector const& valuesEE_; + std::vector> values_; cms::cuda::ESProduct product_; #endif // __CUDACC__ }; -#endif // RecoLocalCalo_EcalRecAlgos_interface_EcalLaserAPDPNRatiosRefGPU_h +#endif // CondFormats_EcalObjects_interface_EcalLaserAPDPNRatiosRefGPU_h diff --git a/RecoLocalCalo/EcalRecAlgos/interface/EcalLaserAlphasGPU.h b/CondFormats/EcalObjects/interface/EcalLaserAlphasGPU.h similarity index 59% rename from RecoLocalCalo/EcalRecAlgos/interface/EcalLaserAlphasGPU.h rename to CondFormats/EcalObjects/interface/EcalLaserAlphasGPU.h index 9dd05e9ee3c4d..50599a6afb43f 100644 --- a/RecoLocalCalo/EcalRecAlgos/interface/EcalLaserAlphasGPU.h +++ b/CondFormats/EcalObjects/interface/EcalLaserAlphasGPU.h @@ -1,7 +1,9 @@ -#ifndef RecoLocalCalo_EcalRecAlgos_interface_EcalLaserAlphasGPU_h -#define RecoLocalCalo_EcalRecAlgos_interface_EcalLaserAlphasGPU_h +#ifndef CondFormats_EcalObjects_interface_EcalLaserAlphasGPU_h +#define CondFormats_EcalObjects_interface_EcalLaserAlphasGPU_h #include "CondFormats/EcalObjects/interface/EcalLaserAlphas.h" +#include "FWCore/Utilities/interface/propagate_const_array.h" +#include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h" #ifndef __CUDACC__ #include "HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h" @@ -11,8 +13,7 @@ class EcalLaserAlphasGPU { public: struct Product { - ~Product(); - float* values = nullptr; + edm::propagate_const_array> values; }; #ifndef __CUDACC__ @@ -27,17 +28,17 @@ class EcalLaserAlphasGPU { // TODO: do this centrally // get offset for hashes. equals number of barrel items - uint32_t getOffset() const { return valuesEB_.size(); } + uint32_t getOffset() const { return offset_; } // static std::string name() { return std::string{"ecalLaserAlphasGPU"}; } private: - std::vector const& valuesEB_; - std::vector const& valuesEE_; + std::vector> values_; + uint32_t offset_; cms::cuda::ESProduct product_; #endif // __CUDACC__ }; -#endif // RecoLocalCalo_EcalRecAlgos_interface_EcalLaserAlphasGPU_h +#endif // CondFormats_EcalObjects_interface_EcalLaserAlphasGPU_h diff --git a/RecoLocalCalo/EcalRecAlgos/interface/EcalLinearCorrectionsGPU.h b/CondFormats/EcalObjects/interface/EcalLinearCorrectionsGPU.h similarity index 60% rename from RecoLocalCalo/EcalRecAlgos/interface/EcalLinearCorrectionsGPU.h rename to CondFormats/EcalObjects/interface/EcalLinearCorrectionsGPU.h index 343bdf1dd1afc..8513224071f9d 100644 --- a/RecoLocalCalo/EcalRecAlgos/interface/EcalLinearCorrectionsGPU.h +++ b/CondFormats/EcalObjects/interface/EcalLinearCorrectionsGPU.h @@ -1,7 +1,9 @@ -#ifndef RecoLocalCalo_EcalRecAlgos_interface_EcalLinearCorrectionsGPU_h -#define RecoLocalCalo_EcalRecAlgos_interface_EcalLinearCorrectionsGPU_h +#ifndef CondFormats_EcalObjects_interface_EcalLinearCorrectionsGPU_h +#define CondFormats_EcalObjects_interface_EcalLinearCorrectionsGPU_h #include "CondFormats/EcalObjects/interface/EcalLinearCorrections.h" +#include "FWCore/Utilities/interface/propagate_const_array.h" +#include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h" #ifndef __CUDACC__ #include "HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h" @@ -11,13 +13,12 @@ class EcalLinearCorrectionsGPU { public: struct Product { - ~Product(); - float *p1 = nullptr; - float *p2 = nullptr; - float *p3 = nullptr; - edm::TimeValue_t *t1 = nullptr; - edm::TimeValue_t *t2 = nullptr; - edm::TimeValue_t *t3 = nullptr; + edm::propagate_const_array> p1; + edm::propagate_const_array> p2; + edm::propagate_const_array> p3; + edm::propagate_const_array> t1; + edm::propagate_const_array> t2; + edm::propagate_const_array> t3; }; #ifndef __CUDACC__ @@ -50,4 +51,4 @@ class EcalLinearCorrectionsGPU { #endif // __CUDACC__ }; -#endif // RecoLocalCalo_EcalRecAlgos_interface_EcalLinearCorrectionsGPU_h +#endif // CondFormats_EcalObjects_interface_EcalLinearCorrectionsGPU_h diff --git a/RecoLocalCalo/EcalRecAlgos/interface/EcalMultifitParametersGPU.h b/CondFormats/EcalObjects/interface/EcalMultifitParametersGPU.h similarity index 57% rename from RecoLocalCalo/EcalRecAlgos/interface/EcalMultifitParametersGPU.h rename to CondFormats/EcalObjects/interface/EcalMultifitParametersGPU.h index 56aa0579ff77f..399cfc14ada40 100644 --- a/RecoLocalCalo/EcalRecAlgos/interface/EcalMultifitParametersGPU.h +++ b/CondFormats/EcalObjects/interface/EcalMultifitParametersGPU.h @@ -1,9 +1,11 @@ -#ifndef RecoLocalCalo_EcalRecAlgos_interface_EcalMultifitParametersGPU_h -#define RecoLocalCalo_EcalRecAlgos_interface_EcalMultifitParametersGPU_h +#ifndef CondFormats_EcalObjects_interface_EcalMultifitParametersGPU_h +#define CondFormats_EcalObjects_interface_EcalMultifitParametersGPU_h #include #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Utilities/interface/propagate_const_array.h" +#include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h" #ifndef __CUDACC__ #include "HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h" @@ -13,8 +15,10 @@ class EcalMultifitParametersGPU { public: struct Product { - ~Product(); - double *amplitudeFitParametersEB, *amplitudeFitParametersEE, *timeFitParametersEB, *timeFitParametersEE; + edm::propagate_const_array> amplitudeFitParametersEB; + edm::propagate_const_array> amplitudeFitParametersEE; + edm::propagate_const_array> timeFitParametersEB; + edm::propagate_const_array> timeFitParametersEE; }; #ifndef __CUDACC__ @@ -36,4 +40,4 @@ class EcalMultifitParametersGPU { #endif // __CUDACC__ }; -#endif // RecoLocalCalo_EcalRecAlgos_interface_EcalMultifitParametersGPU_h +#endif // CondFormats_EcalObjects_interface_EcalMultifitParametersGPU_h diff --git a/RecoLocalCalo/EcalRecAlgos/interface/EcalPedestalsGPU.h b/CondFormats/EcalObjects/interface/EcalPedestalsGPU.h similarity index 59% rename from RecoLocalCalo/EcalRecAlgos/interface/EcalPedestalsGPU.h rename to CondFormats/EcalObjects/interface/EcalPedestalsGPU.h index 5387c422ddd9e..80bc2d3a3fb80 100644 --- a/RecoLocalCalo/EcalRecAlgos/interface/EcalPedestalsGPU.h +++ b/CondFormats/EcalObjects/interface/EcalPedestalsGPU.h @@ -1,7 +1,9 @@ -#ifndef RecoLocalCalo_EcalRecAlgos_interface_EcalPedestalsGPU_h -#define RecoLocalCalo_EcalRecAlgos_interface_EcalPedestalsGPU_h +#ifndef CondFormats_EcalObjects_interface_EcalPedestalsGPU_h +#define CondFormats_EcalObjects_interface_EcalPedestalsGPU_h #include "CondFormats/EcalObjects/interface/EcalPedestals.h" +#include "FWCore/Utilities/interface/propagate_const_array.h" +#include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h" #ifndef __CUDACC__ #include "HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h" @@ -11,9 +13,12 @@ class EcalPedestalsGPU { public: struct Product { - ~Product(); - float *mean_x12 = nullptr, *mean_x6 = nullptr, *mean_x1 = nullptr; - float *rms_x12 = nullptr, *rms_x6 = nullptr, *rms_x1 = nullptr; + edm::propagate_const_array> mean_x12; + edm::propagate_const_array> mean_x6; + edm::propagate_const_array> mean_x1; + edm::propagate_const_array> rms_x12; + edm::propagate_const_array> rms_x6; + edm::propagate_const_array> rms_x1; }; #ifndef __CUDACC__ @@ -44,4 +49,4 @@ class EcalPedestalsGPU { #endif // __CUDACC__ }; -#endif // RecoLocalCalo_EcalRecAlgos_interface_EcalPedestalsGPU_h +#endif // CondFormats_EcalObjects_interface_EcalPedestalsGPU_h diff --git a/RecoLocalCalo/EcalRecAlgos/interface/EcalPulseCovariancesGPU.h b/CondFormats/EcalObjects/interface/EcalPulseCovariancesGPU.h similarity index 82% rename from RecoLocalCalo/EcalRecAlgos/interface/EcalPulseCovariancesGPU.h rename to CondFormats/EcalObjects/interface/EcalPulseCovariancesGPU.h index 6c5a3d9b95e2e..56207d8cb4ab3 100644 --- a/RecoLocalCalo/EcalRecAlgos/interface/EcalPulseCovariancesGPU.h +++ b/CondFormats/EcalObjects/interface/EcalPulseCovariancesGPU.h @@ -1,5 +1,5 @@ -#ifndef RecoLocalCalo_EcalRecAlgos_interface_EcalPulseCovariancesGPU_h -#define RecoLocalCalo_EcalRecAlgos_interface_EcalPulseCovariancesGPU_h +#ifndef CondFormats_EcalObjects_interface_EcalPulseCovariancesGPU_h +#define CondFormats_EcalObjects_interface_EcalPulseCovariancesGPU_h #include "CondFormats/EcalObjects/interface/EcalPulseCovariances.h" @@ -37,4 +37,4 @@ class EcalPulseCovariancesGPU { #endif // __CUDACC__ }; -#endif // RecoLocalCalo_EcalRecAlgos_interface_EcalPulseCovariancesGPU_h +#endif // CondFormats_EcalObjects_interface_EcalPulseCovariancesGPU_h diff --git a/RecoLocalCalo/EcalRecAlgos/interface/EcalPulseShapesGPU.h b/CondFormats/EcalObjects/interface/EcalPulseShapesGPU.h similarity index 82% rename from RecoLocalCalo/EcalRecAlgos/interface/EcalPulseShapesGPU.h rename to CondFormats/EcalObjects/interface/EcalPulseShapesGPU.h index 3edb2c9bcdfd3..0caf954409b18 100644 --- a/RecoLocalCalo/EcalRecAlgos/interface/EcalPulseShapesGPU.h +++ b/CondFormats/EcalObjects/interface/EcalPulseShapesGPU.h @@ -1,5 +1,5 @@ -#ifndef RecoLocalCalo_EcalRecAlgos_interface_EcalPulseShapesGPU_h -#define RecoLocalCalo_EcalRecAlgos_interface_EcalPulseShapesGPU_h +#ifndef CondFormats_EcalObjects_interface_EcalPulseShapesGPU_h +#define CondFormats_EcalObjects_interface_EcalPulseShapesGPU_h #include "CondFormats/EcalObjects/interface/EcalPulseShapes.h" @@ -37,4 +37,4 @@ class EcalPulseShapesGPU { #endif // __CUDACC__ }; -#endif // RecoLocalCalo_EcalRecAlgos_interface_EcalPulseShapesGPU_h +#endif // CondFormats_EcalObjects_interface_EcalPulseShapesGPU_h diff --git a/RecoLocalCalo/EcalRecAlgos/interface/EcalRecHitParametersGPU.h b/CondFormats/EcalObjects/interface/EcalRecHitParametersGPU.h similarity index 58% rename from RecoLocalCalo/EcalRecAlgos/interface/EcalRecHitParametersGPU.h rename to CondFormats/EcalObjects/interface/EcalRecHitParametersGPU.h index c5d3dd0388d15..050fc51bc5036 100644 --- a/RecoLocalCalo/EcalRecAlgos/interface/EcalRecHitParametersGPU.h +++ b/CondFormats/EcalObjects/interface/EcalRecHitParametersGPU.h @@ -1,9 +1,11 @@ -#ifndef RecoLocalCalo_EcalRecAlgos_interface_EcalRecHitParametersGPU_h -#define RecoLocalCalo_EcalRecAlgos_interface_EcalRecHitParametersGPU_h +#ifndef CondFormats_EcalObjects_interface_EcalRecHitParametersGPU_h +#define CondFormats_EcalObjects_interface_EcalRecHitParametersGPU_h #include #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Utilities/interface/propagate_const_array.h" +#include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h" #ifndef __CUDACC__ #include "HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h" @@ -13,9 +15,10 @@ class EcalRecHitParametersGPU { public: struct Product { - ~Product(); - int *ChannelStatusToBeExcluded, *expanded_v_DB_reco_flags; - uint32_t *expanded_Sizes_v_DB_reco_flags, *expanded_flagbit_v_DB_reco_flags; + edm::propagate_const_array> channelStatusToBeExcluded; + edm::propagate_const_array> expanded_v_DB_reco_flags; + edm::propagate_const_array> expanded_Sizes_v_DB_reco_flags; + edm::propagate_const_array> expanded_flagbit_v_DB_reco_flags; }; #ifndef __CUDACC__ @@ -28,14 +31,14 @@ class EcalRecHitParametersGPU { using intvec = std::reference_wrapper> const>; using uint32vec = std::reference_wrapper> const>; std::tuple getValues() const { - return {ChannelStatusToBeExcluded_, + return {channelStatusToBeExcluded_, expanded_v_DB_reco_flags_, expanded_Sizes_v_DB_reco_flags_, expanded_flagbit_v_DB_reco_flags_}; } private: - std::vector> ChannelStatusToBeExcluded_; + std::vector> channelStatusToBeExcluded_; std::vector> expanded_v_DB_reco_flags_; std::vector> expanded_Sizes_v_DB_reco_flags_, expanded_flagbit_v_DB_reco_flags_; @@ -44,4 +47,4 @@ class EcalRecHitParametersGPU { #endif // __CUDACC__ }; -#endif // RecoLocalCalo_EcalRecAlgos_interface_EcalRecHitParametersGPU_h +#endif // CondFormats_EcalObjects_interface_EcalRecHitParametersGPU_h diff --git a/RecoLocalCalo/EcalRecAlgos/interface/EcalRechitADCToGeVConstantGPU.h b/CondFormats/EcalObjects/interface/EcalRechitADCToGeVConstantGPU.h similarity index 68% rename from RecoLocalCalo/EcalRecAlgos/interface/EcalRechitADCToGeVConstantGPU.h rename to CondFormats/EcalObjects/interface/EcalRechitADCToGeVConstantGPU.h index 7d4d3cc60fd5c..a4f2dc1e555b5 100644 --- a/RecoLocalCalo/EcalRecAlgos/interface/EcalRechitADCToGeVConstantGPU.h +++ b/CondFormats/EcalObjects/interface/EcalRechitADCToGeVConstantGPU.h @@ -1,7 +1,9 @@ -#ifndef RecoLocalCalo_EcalRecAlgos_interface_EcalRechitADCToGeVConstantGPU_h -#define RecoLocalCalo_EcalRecAlgos_interface_EcalRechitADCToGeVConstantGPU_h +#ifndef CondFormats_EcalObjects_interface_EcalRechitADCToGeVConstantGPU_h +#define CondFormats_EcalObjects_interface_EcalRechitADCToGeVConstantGPU_h #include "CondFormats/EcalObjects/interface/EcalADCToGeVConstant.h" +#include "FWCore/Utilities/interface/propagate_const_array.h" +#include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h" #ifndef __CUDACC__ #include "HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h" @@ -11,8 +13,7 @@ class EcalRechitADCToGeVConstantGPU { public: struct Product { - ~Product(); - float* adc2gev = nullptr; + edm::propagate_const_array> adc2gev; }; #ifndef __CUDACC__ @@ -39,4 +40,4 @@ class EcalRechitADCToGeVConstantGPU { #endif // __CUDACC__ }; -#endif // RecoLocalCalo_EcalRecAlgos_interface_EcalRechitADCToGeVConstantGPU_h +#endif // CondFormats_EcalObjects_interface_EcalRechitADCToGeVConstantGPU_h diff --git a/RecoLocalCalo/EcalRecAlgos/interface/EcalRechitChannelStatusGPU.h b/CondFormats/EcalObjects/interface/EcalRechitChannelStatusGPU.h similarity index 68% rename from RecoLocalCalo/EcalRecAlgos/interface/EcalRechitChannelStatusGPU.h rename to CondFormats/EcalObjects/interface/EcalRechitChannelStatusGPU.h index bab99ab656c2d..93e0f6a8dd7c0 100644 --- a/RecoLocalCalo/EcalRecAlgos/interface/EcalRechitChannelStatusGPU.h +++ b/CondFormats/EcalObjects/interface/EcalRechitChannelStatusGPU.h @@ -1,7 +1,9 @@ -#ifndef RecoLocalCalo_EcalRecAlgos_interface_EcalRechitChannelStatusGPU_h -#define RecoLocalCalo_EcalRecAlgos_interface_EcalRechitChannelStatusGPU_h +#ifndef CondFormats_EcalObjects_interface_EcalRechitChannelStatusGPU_h +#define CondFormats_EcalObjects_interface_EcalRechitChannelStatusGPU_h #include "CondFormats/EcalObjects/interface/EcalChannelStatus.h" +#include "FWCore/Utilities/interface/propagate_const_array.h" +#include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h" #ifndef __CUDACC__ #include "HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h" @@ -11,8 +13,7 @@ class EcalRechitChannelStatusGPU { public: struct Product { - ~Product(); - uint16_t* status = nullptr; + edm::propagate_const_array> status; }; #ifndef __CUDACC__ @@ -39,4 +40,4 @@ class EcalRechitChannelStatusGPU { #endif // __CUDACC__ }; -#endif // RecoLocalCalo_EcalRecAlgos_interface_EcalRechitChannelStatusGPU_h +#endif // CondFormats_EcalObjects_interface_EcalRechitChannelStatusGPU_h diff --git a/CondFormats/EcalObjects/interface/EcalSamplesCorrelationGPU.h b/CondFormats/EcalObjects/interface/EcalSamplesCorrelationGPU.h new file mode 100644 index 0000000000000..dd6d48b16a6fa --- /dev/null +++ b/CondFormats/EcalObjects/interface/EcalSamplesCorrelationGPU.h @@ -0,0 +1,49 @@ +#ifndef CondFormats_EcalObjects_interface_EcalSamplesCorrelationGPU_h +#define CondFormats_EcalObjects_interface_EcalSamplesCorrelationGPU_h + +#include "CondFormats/EcalObjects/interface/EcalSamplesCorrelation.h" +#include "FWCore/Utilities/interface/propagate_const_array.h" +#include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h" + +#ifndef __CUDACC__ +#include "HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h" +#include "HeterogeneousCore/CUDACore/interface/ESProduct.h" +#endif // __CUDACC__ + +class EcalSamplesCorrelationGPU { +public: + struct Product { + edm::propagate_const_array> EBG12SamplesCorrelation; + edm::propagate_const_array> EBG6SamplesCorrelation; + edm::propagate_const_array> EBG1SamplesCorrelation; + edm::propagate_const_array> EEG12SamplesCorrelation; + edm::propagate_const_array> EEG6SamplesCorrelation; + edm::propagate_const_array> EEG1SamplesCorrelation; + }; + +#ifndef __CUDACC__ + // rearrange pedestals + EcalSamplesCorrelationGPU(EcalSamplesCorrelation const&); + + // will call dealloation for Product thru ~Product + ~EcalSamplesCorrelationGPU() = default; + + // get device pointers + Product const& getProduct(cudaStream_t) const; + + // + static std::string name() { return std::string{"ecalSamplesCorrelationGPU"}; } + +private: + std::vector> EBG12SamplesCorrelation_; + std::vector> EBG6SamplesCorrelation_; + std::vector> EBG1SamplesCorrelation_; + std::vector> EEG12SamplesCorrelation_; + std::vector> EEG6SamplesCorrelation_; + std::vector> EEG1SamplesCorrelation_; + + cms::cuda::ESProduct product_; +#endif // __CUDACC__ +}; + +#endif // CondFormats_EcalObjects_interface_EcalSamplesCorrelationGPU_h diff --git a/CondFormats/EcalObjects/interface/EcalTPGOddWeightGroup.h b/CondFormats/EcalObjects/interface/EcalTPGOddWeightGroup.h new file mode 100644 index 0000000000000..37431140b2758 --- /dev/null +++ b/CondFormats/EcalObjects/interface/EcalTPGOddWeightGroup.h @@ -0,0 +1,21 @@ +#ifndef EcalTPGOddWeightGroup_h +#define EcalTPGOddWeightGroup_h + +#include "CondFormats/Serialization/interface/Serializable.h" + +#include "CondFormats/EcalObjects/interface/EcalTPGGroups.h" + +/* + +P.P. +*/ + +class EcalTPGOddWeightGroup : public EcalTPGGroups { +public: + EcalTPGOddWeightGroup(); + ~EcalTPGOddWeightGroup(); + + COND_SERIALIZABLE; +}; + +#endif diff --git a/CondFormats/EcalObjects/interface/EcalTPGOddWeightIdMap.h b/CondFormats/EcalObjects/interface/EcalTPGOddWeightIdMap.h new file mode 100644 index 0000000000000..5af6c6c05c3fe --- /dev/null +++ b/CondFormats/EcalObjects/interface/EcalTPGOddWeightIdMap.h @@ -0,0 +1,27 @@ +#ifndef EcalTPGOddWeightIdMap_h +#define EcalTPGOddWeightIdMap_h + +#include "CondFormats/Serialization/interface/Serializable.h" + +#include +#include "CondFormats/EcalObjects/interface/EcalTPGWeights.h" +#include + +class EcalTPGOddWeightIdMap { +public: + typedef std::map EcalTPGWeightMap; + typedef std::map::const_iterator EcalTPGWeightMapItr; + + EcalTPGOddWeightIdMap(); + ~EcalTPGOddWeightIdMap(); + + const EcalTPGWeightMap& getMap() const { return map_; } + void setValue(const uint32_t& id, const EcalTPGWeights& value); + +private: + EcalTPGWeightMap map_; + + COND_SERIALIZABLE; +}; + +#endif diff --git a/CondFormats/EcalObjects/interface/EcalTPGTPMode.h b/CondFormats/EcalObjects/interface/EcalTPGTPMode.h new file mode 100644 index 0000000000000..f1f96404ba8db --- /dev/null +++ b/CondFormats/EcalObjects/interface/EcalTPGTPMode.h @@ -0,0 +1,48 @@ +#ifndef EcalTPGTPMode_h +#define EcalTPGTPMode_h + +#include "CondFormats/Serialization/interface/Serializable.h" + +/* +Author: Davide Valsecchi +Date: 11/02/2021 + +*/ + +class EcalTPGTPMode { +public: + EcalTPGTPMode(); + ~EcalTPGTPMode(); + + bool EnableEBOddFilter; + bool EnableEEOddFilter; + bool EnableEBOddPeakFinder; + bool EnableEEOddPeakFinder; + bool DisableEBEvenPeakFinder; + bool DisableEEEvenPeakFinder; + uint16_t FenixEBStripOutput; + uint16_t FenixEEStripOutput; + uint16_t FenixEBStripInfobit2; + uint16_t FenixEEStripInfobit2; + uint16_t EBFenixTcpOutput; + uint16_t EBFenixTcpInfobit1; + uint16_t EEFenixTcpOutput; + uint16_t EEFenixTcpInfobit1; + // Wildcard parameters for future use + uint16_t FenixPar15; + uint16_t FenixPar16; + uint16_t FenixPar17; + uint16_t FenixPar18; + + // print parameters to stream: + void print(std::ostream&) const; + + friend std::ostream& operator<<(std::ostream& out, const EcalTPGTPMode& params) { + params.print(out); + return out; + } + + COND_SERIALIZABLE; +}; + +#endif diff --git a/CondFormats/EcalObjects/interface/EcalTPGWeightGroup.h b/CondFormats/EcalObjects/interface/EcalTPGWeightGroup.h index 0984696e336a6..b19b97f1b36d0 100644 --- a/CondFormats/EcalObjects/interface/EcalTPGWeightGroup.h +++ b/CondFormats/EcalObjects/interface/EcalTPGWeightGroup.h @@ -5,11 +5,6 @@ #include "CondFormats/EcalObjects/interface/EcalTPGGroups.h" -/* - -P.P. -*/ - class EcalTPGWeightGroup : public EcalTPGGroups { public: EcalTPGWeightGroup(); diff --git a/CondFormats/EcalObjects/interface/EcalTimeBiasCorrectionsGPU.h b/CondFormats/EcalObjects/interface/EcalTimeBiasCorrectionsGPU.h new file mode 100644 index 0000000000000..086decb53f01b --- /dev/null +++ b/CondFormats/EcalObjects/interface/EcalTimeBiasCorrectionsGPU.h @@ -0,0 +1,49 @@ +#ifndef CondFormats_EcalObjects_interface_EcalTimeBiasCorrectionsGPU_h +#define CondFormats_EcalObjects_interface_EcalTimeBiasCorrectionsGPU_h + +#include "CondFormats/EcalObjects/interface/EcalTimeBiasCorrections.h" +#include "FWCore/Utilities/interface/propagate_const_array.h" +#include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h" + +#ifndef __CUDACC__ +#include "HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h" +#include "HeterogeneousCore/CUDACore/interface/ESProduct.h" +#endif // __CUDACC__ + +class EcalTimeBiasCorrectionsGPU { +public: + struct Product { + edm::propagate_const_array> ebTimeCorrAmplitudeBins; + edm::propagate_const_array> ebTimeCorrShiftBins; + edm::propagate_const_array> eeTimeCorrAmplitudeBins; + edm::propagate_const_array> eeTimeCorrShiftBins; + int ebTimeCorrAmplitudeBinsSize, eeTimeCorrAmplitudeBinsSize; + }; + + // rearrange pedestals + EcalTimeBiasCorrectionsGPU(EcalTimeBiasCorrections const&); + +#ifndef __CUDACC__ + + // will call dealloation for Product thru ~Product + ~EcalTimeBiasCorrectionsGPU() = default; + + // get device pointers + Product const& getProduct(cudaStream_t) const; + + // + static std::string name() { return std::string{"ecalTimeBiasCorrectionsGPU"}; } +#endif // __CUDACC__ + +private: + std::vector> ebTimeCorrAmplitudeBins_; + std::vector> ebTimeCorrShiftBins_; + std::vector> eeTimeCorrAmplitudeBins_; + std::vector> eeTimeCorrShiftBins_; + +#ifndef __CUDACC__ + cms::cuda::ESProduct product_; +#endif // __CUDACC__ +}; + +#endif // CondFormats_EcalObjects_interface_EcalTimeBiasCorrectionsGPU_h diff --git a/RecoLocalCalo/EcalRecAlgos/interface/EcalTimeCalibConstantsGPU.h b/CondFormats/EcalObjects/interface/EcalTimeCalibConstantsGPU.h similarity index 60% rename from RecoLocalCalo/EcalRecAlgos/interface/EcalTimeCalibConstantsGPU.h rename to CondFormats/EcalObjects/interface/EcalTimeCalibConstantsGPU.h index 823334d433cc2..410e7699bdf7b 100644 --- a/RecoLocalCalo/EcalRecAlgos/interface/EcalTimeCalibConstantsGPU.h +++ b/CondFormats/EcalObjects/interface/EcalTimeCalibConstantsGPU.h @@ -1,7 +1,9 @@ -#ifndef RecoLocalCalo_EcalRecAlgos_interface_EcalTimeCalibConstantsGPU_h -#define RecoLocalCalo_EcalRecAlgos_interface_EcalTimeCalibConstantsGPU_h +#ifndef CondFormats_EcalObjects_interface_EcalTimeCalibConstantsGPU_h +#define CondFormats_EcalObjects_interface_EcalTimeCalibConstantsGPU_h #include "CondFormats/EcalObjects/interface/EcalTimeCalibConstants.h" +#include "FWCore/Utilities/interface/propagate_const_array.h" +#include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h" #ifndef __CUDACC__ #include "HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h" @@ -11,8 +13,7 @@ class EcalTimeCalibConstantsGPU { public: struct Product { - ~Product(); - float* values = nullptr; + edm::propagate_const_array> values; }; #ifndef __CUDACC__ @@ -27,17 +28,17 @@ class EcalTimeCalibConstantsGPU { // TODO: do this centrally // get offset for hashes. equals number of barrel items - uint32_t getOffset() const { return valuesEB_.size(); } + uint32_t getOffset() const { return offset_; } // static std::string name() { return std::string{"ecalTimeCalibConstantsGPU"}; } private: - std::vector const& valuesEB_; - std::vector const& valuesEE_; + std::vector> values_; + uint32_t offset_; cms::cuda::ESProduct product_; #endif // __CUDACC__ }; -#endif // RecoLocalCalo_EcalRecAlgos_interface_EcalTimeCalibConstantsGPU_h +#endif // CondFormats_EcalObjects_interface_EcalTimeCalibConstantsGPU_h diff --git a/EventFilter/EcalRawToDigi/interface/ElectronicsMappingGPU.h b/CondFormats/EcalObjects/interface/ElectronicsMappingGPU.h similarity index 71% rename from EventFilter/EcalRawToDigi/interface/ElectronicsMappingGPU.h rename to CondFormats/EcalObjects/interface/ElectronicsMappingGPU.h index 004821afe3ed8..4c0cb30222bb9 100644 --- a/EventFilter/EcalRawToDigi/interface/ElectronicsMappingGPU.h +++ b/CondFormats/EcalObjects/interface/ElectronicsMappingGPU.h @@ -1,7 +1,9 @@ -#ifndef EventFilter_EcalRawToDigi_interface_ElectronicsMappingGPU_h -#define EventFilter_EcalRawToDigi_interface_ElectronicsMappingGPU_h +#ifndef CondFormats_EcalObjects_interface_ElectronicsMappingGPU_h +#define CondFormats_EcalObjects_interface_ElectronicsMappingGPU_h #include "CondFormats/EcalObjects/interface/EcalMappingElectronics.h" +#include "FWCore/Utilities/interface/propagate_const_array.h" +#include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h" #ifndef __CUDACC__ #include "HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h" @@ -14,8 +16,7 @@ namespace ecal { class ElectronicsMappingGPU { public: struct Product { - ~Product(); - uint32_t* eid2did; + edm::propagate_const_array> eid2did; }; #ifndef __CUDACC__ @@ -44,4 +45,4 @@ namespace ecal { } // namespace raw } // namespace ecal -#endif // EventFilter_EcalRawToDigi_interface_ElectronicsMappingGPU_h +#endif // CondFormats_EcalObjects_interface_ElectronicsMappingGPU_h diff --git a/CondFormats/EcalObjects/src/EcalGainRatiosGPU.cc b/CondFormats/EcalObjects/src/EcalGainRatiosGPU.cc new file mode 100644 index 0000000000000..9e509430c4276 --- /dev/null +++ b/CondFormats/EcalObjects/src/EcalGainRatiosGPU.cc @@ -0,0 +1,38 @@ +#include "CondFormats/EcalObjects/interface/EcalGainRatiosGPU.h" + +#include "FWCore/Utilities/interface/typelookup.h" +#include "HeterogeneousCore/CUDAUtilities/interface/copyAsync.h" + +EcalGainRatiosGPU::EcalGainRatiosGPU(EcalGainRatios const& values) + : gain12Over6_(values.size()), gain6Over1_(values.size()) { + // fill in eb + auto const& barrelValues = values.barrelItems(); + for (unsigned int i = 0; i < barrelValues.size(); i++) { + gain12Over6_[i] = barrelValues[i].gain12Over6(); + gain6Over1_[i] = barrelValues[i].gain6Over1(); + } + + // fill in ee + auto const& endcapValues = values.endcapItems(); + auto const offset = barrelValues.size(); + for (unsigned int i = 0; i < endcapValues.size(); i++) { + gain12Over6_[offset + i] = endcapValues[i].gain12Over6(); + gain6Over1_[offset + i] = endcapValues[i].gain6Over1(); + } +} + +EcalGainRatiosGPU::Product const& EcalGainRatiosGPU::getProduct(cudaStream_t cudaStream) const { + auto const& product = product_.dataForCurrentDeviceAsync( + cudaStream, [this](EcalGainRatiosGPU::Product& product, cudaStream_t cudaStream) { + // allocate + product.gain12Over6 = cms::cuda::make_device_unique(gain12Over6_.size(), cudaStream); + product.gain6Over1 = cms::cuda::make_device_unique(gain6Over1_.size(), cudaStream); + // transfer + cms::cuda::copyAsync(product.gain12Over6, gain12Over6_, cudaStream); + cms::cuda::copyAsync(product.gain6Over1, gain6Over1_, cudaStream); + }); + + return product; +} + +TYPELOOKUP_DATA_REG(EcalGainRatiosGPU); diff --git a/CondFormats/EcalObjects/src/EcalIntercalibConstantsGPU.cc b/CondFormats/EcalObjects/src/EcalIntercalibConstantsGPU.cc new file mode 100644 index 0000000000000..c1e462a8c5a75 --- /dev/null +++ b/CondFormats/EcalObjects/src/EcalIntercalibConstantsGPU.cc @@ -0,0 +1,24 @@ +#include "CondFormats/EcalObjects/interface/EcalIntercalibConstantsGPU.h" + +#include "FWCore/Utilities/interface/typelookup.h" +#include "HeterogeneousCore/CUDAUtilities/interface/copyAsync.h" + +EcalIntercalibConstantsGPU::EcalIntercalibConstantsGPU(EcalIntercalibConstants const& values) { + values_.reserve(values.size()); + std::copy(values.begin(), values.end(), values_.begin()); + offset_ = values.barrelItems().size(); +} + +EcalIntercalibConstantsGPU::Product const& EcalIntercalibConstantsGPU::getProduct(cudaStream_t cudaStream) const { + auto const& product = product_.dataForCurrentDeviceAsync( + cudaStream, [this](EcalIntercalibConstantsGPU::Product& product, cudaStream_t cudaStream) { + // allocate + product.values = cms::cuda::make_device_unique(values_.size(), cudaStream); + // transfer + cms::cuda::copyAsync(product.values, values_, cudaStream); + }); + + return product; +} + +TYPELOOKUP_DATA_REG(EcalIntercalibConstantsGPU); diff --git a/CondFormats/EcalObjects/src/EcalLaserAPDPNRatiosGPU.cc b/CondFormats/EcalObjects/src/EcalLaserAPDPNRatiosGPU.cc new file mode 100644 index 0000000000000..3a74f029ec185 --- /dev/null +++ b/CondFormats/EcalObjects/src/EcalLaserAPDPNRatiosGPU.cc @@ -0,0 +1,61 @@ +#include "CondFormats/EcalObjects/interface/EcalLaserAPDPNRatiosGPU.h" + +#include "FWCore/Utilities/interface/typelookup.h" +#include "HeterogeneousCore/CUDAUtilities/interface/copyAsync.h" + +EcalLaserAPDPNRatiosGPU::EcalLaserAPDPNRatiosGPU(EcalLaserAPDPNRatios const& values) + : p1_(values.getLaserMap().size()), + p2_(values.getLaserMap().size()), + p3_(values.getLaserMap().size()), + t1_(values.getTimeMap().size()), + t2_(values.getTimeMap().size()), + t3_(values.getTimeMap().size()) { + // fill in eb + // auto const& barrelValues = values.barrelItems(); + for (unsigned int i = 0; i < values.getLaserMap().barrelItems().size(); i++) { + p1_[i] = values.getLaserMap().barrelItems()[i].p1; + p2_[i] = values.getLaserMap().barrelItems()[i].p2; + p3_[i] = values.getLaserMap().barrelItems()[i].p3; + } + + // fill in ee + // auto const& endcapValues = values.endcapItems(); + auto const offset_laser = values.getLaserMap().barrelItems().size(); + for (unsigned int i = 0; i < values.getLaserMap().endcapItems().size(); i++) { + p1_[offset_laser + i] = values.getLaserMap().endcapItems()[i].p1; + p2_[offset_laser + i] = values.getLaserMap().endcapItems()[i].p2; + p3_[offset_laser + i] = values.getLaserMap().endcapItems()[i].p3; + } + + // Time is a simple std::vector + // typedef std::vector EcalLaserTimeStampMap; + for (unsigned int i = 0; i < values.getTimeMap().size(); i++) { + t1_[i] = values.getTimeMap()[i].t1.value(); + t2_[i] = values.getTimeMap()[i].t2.value(); + t3_[i] = values.getTimeMap()[i].t3.value(); + } +} + +EcalLaserAPDPNRatiosGPU::Product const& EcalLaserAPDPNRatiosGPU::getProduct(cudaStream_t cudaStream) const { + auto const& product = product_.dataForCurrentDeviceAsync( + cudaStream, [this](EcalLaserAPDPNRatiosGPU::Product& product, cudaStream_t cudaStream) { + // allocate + product.p1 = cms::cuda::make_device_unique(p1_.size(), cudaStream); + product.p2 = cms::cuda::make_device_unique(p2_.size(), cudaStream); + product.p3 = cms::cuda::make_device_unique(p3_.size(), cudaStream); + product.t1 = cms::cuda::make_device_unique(t1_.size(), cudaStream); + product.t2 = cms::cuda::make_device_unique(t2_.size(), cudaStream); + product.t3 = cms::cuda::make_device_unique(t3_.size(), cudaStream); + // transfer + cms::cuda::copyAsync(product.p1, p1_, cudaStream); + cms::cuda::copyAsync(product.p2, p2_, cudaStream); + cms::cuda::copyAsync(product.p3, p3_, cudaStream); + cms::cuda::copyAsync(product.t1, t1_, cudaStream); + cms::cuda::copyAsync(product.t2, t2_, cudaStream); + cms::cuda::copyAsync(product.t3, t3_, cudaStream); + }); + + return product; +} + +TYPELOOKUP_DATA_REG(EcalLaserAPDPNRatiosGPU); diff --git a/CondFormats/EcalObjects/src/EcalLaserAPDPNRatiosRefGPU.cc b/CondFormats/EcalObjects/src/EcalLaserAPDPNRatiosRefGPU.cc new file mode 100644 index 0000000000000..ed06c6591597d --- /dev/null +++ b/CondFormats/EcalObjects/src/EcalLaserAPDPNRatiosRefGPU.cc @@ -0,0 +1,24 @@ +#include "CondFormats/EcalObjects/interface/EcalLaserAPDPNRatiosRefGPU.h" + +#include "FWCore/Utilities/interface/typelookup.h" +#include "HeterogeneousCore/CUDAUtilities/interface/copyAsync.h" + +EcalLaserAPDPNRatiosRefGPU::EcalLaserAPDPNRatiosRefGPU(EcalLaserAPDPNRatiosRef const& values) { + values_.reserve(values.size()); + std::copy(values.begin(), values.end(), values_.begin()); + offset_ = values.barrelItems().size(); +} + +EcalLaserAPDPNRatiosRefGPU::Product const& EcalLaserAPDPNRatiosRefGPU::getProduct(cudaStream_t cudaStream) const { + auto const& product = product_.dataForCurrentDeviceAsync( + cudaStream, [this](EcalLaserAPDPNRatiosRefGPU::Product& product, cudaStream_t cudaStream) { + // allocate + product.values = cms::cuda::make_device_unique(values_.size(), cudaStream); + // transfer + cms::cuda::copyAsync(product.values, values_, cudaStream); + }); + + return product; +} + +TYPELOOKUP_DATA_REG(EcalLaserAPDPNRatiosRefGPU); diff --git a/CondFormats/EcalObjects/src/EcalLaserAlphasGPU.cc b/CondFormats/EcalObjects/src/EcalLaserAlphasGPU.cc new file mode 100644 index 0000000000000..b16742f4964c8 --- /dev/null +++ b/CondFormats/EcalObjects/src/EcalLaserAlphasGPU.cc @@ -0,0 +1,24 @@ +#include "CondFormats/EcalObjects/interface/EcalLaserAlphasGPU.h" + +#include "FWCore/Utilities/interface/typelookup.h" +#include "HeterogeneousCore/CUDAUtilities/interface/copyAsync.h" + +EcalLaserAlphasGPU::EcalLaserAlphasGPU(EcalLaserAlphas const& values) { + values_.reserve(values.size()); + std::copy(values.begin(), values.end(), values_.begin()); + offset_ = values.barrelItems().size(); +} + +EcalLaserAlphasGPU::Product const& EcalLaserAlphasGPU::getProduct(cudaStream_t cudaStream) const { + auto const& product = product_.dataForCurrentDeviceAsync( + cudaStream, [this](EcalLaserAlphasGPU::Product& product, cudaStream_t cudaStream) { + // allocate + product.values = cms::cuda::make_device_unique(values_.size(), cudaStream); + // transfer + cms::cuda::copyAsync(product.values, values_, cudaStream); + }); + + return product; +} + +TYPELOOKUP_DATA_REG(EcalLaserAlphasGPU); diff --git a/CondFormats/EcalObjects/src/EcalLinearCorrectionsGPU.cc b/CondFormats/EcalObjects/src/EcalLinearCorrectionsGPU.cc new file mode 100644 index 0000000000000..b6b706d6b18e8 --- /dev/null +++ b/CondFormats/EcalObjects/src/EcalLinearCorrectionsGPU.cc @@ -0,0 +1,59 @@ +#include "CondFormats/EcalObjects/interface/EcalLinearCorrectionsGPU.h" + +#include "FWCore/Utilities/interface/typelookup.h" +#include "HeterogeneousCore/CUDAUtilities/interface/copyAsync.h" + +EcalLinearCorrectionsGPU::EcalLinearCorrectionsGPU(EcalLinearCorrections const& values) + : p1_(values.getValueMap().size()), + p2_(values.getValueMap().size()), + p3_(values.getValueMap().size()), + t1_(values.getTimeMap().size()), + t2_(values.getTimeMap().size()), + t3_(values.getTimeMap().size()) { + // fill in eb + for (unsigned int i = 0; i < values.getValueMap().barrelItems().size(); i++) { + p1_[i] = values.getValueMap().barrelItems()[i].p1; + p2_[i] = values.getValueMap().barrelItems()[i].p2; + p3_[i] = values.getValueMap().barrelItems()[i].p3; + } + + // fill in ee + auto const offset_laser = values.getValueMap().barrelItems().size(); + for (unsigned int i = 0; i < values.getValueMap().endcapItems().size(); i++) { + p1_[offset_laser + i] = values.getValueMap().endcapItems()[i].p1; + p2_[offset_laser + i] = values.getValueMap().endcapItems()[i].p2; + p3_[offset_laser + i] = values.getValueMap().endcapItems()[i].p3; + } + + // Time is a simple std::vector + // typedef std::vector EcalLaserTimeStampMap; + for (unsigned int i = 0; i < values.getTimeMap().size(); i++) { + t1_[i] = values.getTimeMap()[i].t1.value(); + t2_[i] = values.getTimeMap()[i].t2.value(); + t3_[i] = values.getTimeMap()[i].t3.value(); + } +} + +EcalLinearCorrectionsGPU::Product const& EcalLinearCorrectionsGPU::getProduct(cudaStream_t cudaStream) const { + auto const& product = product_.dataForCurrentDeviceAsync( + cudaStream, [this](EcalLinearCorrectionsGPU::Product& product, cudaStream_t cudaStream) { + // allocate + product.p1 = cms::cuda::make_device_unique(p1_.size(), cudaStream); + product.p2 = cms::cuda::make_device_unique(p2_.size(), cudaStream); + product.p3 = cms::cuda::make_device_unique(p3_.size(), cudaStream); + product.t1 = cms::cuda::make_device_unique(t1_.size(), cudaStream); + product.t2 = cms::cuda::make_device_unique(t2_.size(), cudaStream); + product.t3 = cms::cuda::make_device_unique(t3_.size(), cudaStream); + // transfer + cms::cuda::copyAsync(product.p1, p1_, cudaStream); + cms::cuda::copyAsync(product.p2, p2_, cudaStream); + cms::cuda::copyAsync(product.p3, p3_, cudaStream); + cms::cuda::copyAsync(product.t1, t1_, cudaStream); + cms::cuda::copyAsync(product.t2, t2_, cudaStream); + cms::cuda::copyAsync(product.t3, t3_, cudaStream); + }); + + return product; +} + +TYPELOOKUP_DATA_REG(EcalLinearCorrectionsGPU); diff --git a/CondFormats/EcalObjects/src/EcalMultifitParametersGPU.cc b/CondFormats/EcalObjects/src/EcalMultifitParametersGPU.cc new file mode 100644 index 0000000000000..204db7e0a58ab --- /dev/null +++ b/CondFormats/EcalObjects/src/EcalMultifitParametersGPU.cc @@ -0,0 +1,42 @@ +#include "CondFormats/EcalObjects/interface/EcalMultifitParametersGPU.h" + +#include "FWCore/Utilities/interface/typelookup.h" +#include "HeterogeneousCore/CUDAUtilities/interface/copyAsync.h" + +EcalMultifitParametersGPU::EcalMultifitParametersGPU(edm::ParameterSet const& ps) { + auto const& amplitudeFitParametersEB = ps.getParameter>("EBamplitudeFitParameters"); + auto const& amplitudeFitParametersEE = ps.getParameter>("EEamplitudeFitParameters"); + auto const& timeFitParametersEB = ps.getParameter>("EBtimeFitParameters"); + auto const& timeFitParametersEE = ps.getParameter>("EEtimeFitParameters"); + + amplitudeFitParametersEB_.resize(amplitudeFitParametersEB.size()); + amplitudeFitParametersEE_.resize(amplitudeFitParametersEE.size()); + timeFitParametersEB_.resize(timeFitParametersEB.size()); + timeFitParametersEE_.resize(timeFitParametersEE.size()); + + std::copy(amplitudeFitParametersEB.begin(), amplitudeFitParametersEB.end(), amplitudeFitParametersEB_.begin()); + std::copy(amplitudeFitParametersEE.begin(), amplitudeFitParametersEE.end(), amplitudeFitParametersEE_.begin()); + std::copy(timeFitParametersEB.begin(), timeFitParametersEB.end(), timeFitParametersEB_.begin()); + std::copy(timeFitParametersEE.begin(), timeFitParametersEE.end(), timeFitParametersEE_.begin()); +} + +EcalMultifitParametersGPU::Product const& EcalMultifitParametersGPU::getProduct(cudaStream_t cudaStream) const { + auto const& product = product_.dataForCurrentDeviceAsync( + cudaStream, [this](EcalMultifitParametersGPU::Product& product, cudaStream_t cudaStream) { + // allocate + product.amplitudeFitParametersEB = + cms::cuda::make_device_unique(amplitudeFitParametersEB_.size(), cudaStream); + product.amplitudeFitParametersEE = + cms::cuda::make_device_unique(amplitudeFitParametersEE_.size(), cudaStream); + product.timeFitParametersEB = cms::cuda::make_device_unique(timeFitParametersEB_.size(), cudaStream); + product.timeFitParametersEE = cms::cuda::make_device_unique(timeFitParametersEE_.size(), cudaStream); + // transfer + cms::cuda::copyAsync(product.amplitudeFitParametersEB, amplitudeFitParametersEB_, cudaStream); + cms::cuda::copyAsync(product.amplitudeFitParametersEE, amplitudeFitParametersEE_, cudaStream); + cms::cuda::copyAsync(product.timeFitParametersEB, timeFitParametersEB_, cudaStream); + cms::cuda::copyAsync(product.timeFitParametersEE, timeFitParametersEE_, cudaStream); + }); + return product; +} + +TYPELOOKUP_DATA_REG(EcalMultifitParametersGPU); diff --git a/CondFormats/EcalObjects/src/EcalPedestalsGPU.cc b/CondFormats/EcalObjects/src/EcalPedestalsGPU.cc new file mode 100644 index 0000000000000..2528dab1665fb --- /dev/null +++ b/CondFormats/EcalObjects/src/EcalPedestalsGPU.cc @@ -0,0 +1,59 @@ +#include "CondFormats/EcalObjects/interface/EcalPedestalsGPU.h" + +#include "FWCore/Utilities/interface/typelookup.h" +#include "HeterogeneousCore/CUDAUtilities/interface/copyAsync.h" + +EcalPedestalsGPU::EcalPedestalsGPU(EcalPedestals const& pedestals) + : mean_x12_(pedestals.size()), + rms_x12_(pedestals.size()), + mean_x6_(pedestals.size()), + rms_x6_(pedestals.size()), + mean_x1_(pedestals.size()), + rms_x1_(pedestals.size()) { + // fill in eb + auto const& barrelValues = pedestals.barrelItems(); + for (unsigned int i = 0; i < barrelValues.size(); i++) { + mean_x12_[i] = barrelValues[i].mean_x12; + rms_x12_[i] = barrelValues[i].rms_x12; + mean_x6_[i] = barrelValues[i].mean_x6; + rms_x6_[i] = barrelValues[i].rms_x6; + mean_x1_[i] = barrelValues[i].mean_x1; + rms_x1_[i] = barrelValues[i].rms_x1; + } + + // fill in ee + auto const& endcapValues = pedestals.endcapItems(); + auto const offset = barrelValues.size(); + for (unsigned int i = 0; i < endcapValues.size(); i++) { + mean_x12_[offset + i] = endcapValues[i].mean_x12; + rms_x12_[offset + i] = endcapValues[i].rms_x12; + mean_x6_[offset + i] = endcapValues[i].mean_x6; + rms_x6_[offset + i] = endcapValues[i].rms_x6; + mean_x1_[offset + i] = endcapValues[i].mean_x1; + rms_x1_[offset + i] = endcapValues[i].rms_x1; + } +} + +EcalPedestalsGPU::Product const& EcalPedestalsGPU::getProduct(cudaStream_t cudaStream) const { + auto const& product = product_.dataForCurrentDeviceAsync( + cudaStream, [this](EcalPedestalsGPU::Product& product, cudaStream_t cudaStream) { + // allocate + product.mean_x12 = cms::cuda::make_device_unique(mean_x12_.size(), cudaStream); + product.mean_x6 = cms::cuda::make_device_unique(mean_x6_.size(), cudaStream); + product.mean_x1 = cms::cuda::make_device_unique(mean_x1_.size(), cudaStream); + product.rms_x12 = cms::cuda::make_device_unique(rms_x12_.size(), cudaStream); + product.rms_x6 = cms::cuda::make_device_unique(rms_x6_.size(), cudaStream); + product.rms_x1 = cms::cuda::make_device_unique(rms_x1_.size(), cudaStream); + // transfer + cms::cuda::copyAsync(product.mean_x12, mean_x12_, cudaStream); + cms::cuda::copyAsync(product.mean_x6, mean_x6_, cudaStream); + cms::cuda::copyAsync(product.mean_x1, mean_x1_, cudaStream); + cms::cuda::copyAsync(product.rms_x12, rms_x12_, cudaStream); + cms::cuda::copyAsync(product.rms_x6, rms_x6_, cudaStream); + cms::cuda::copyAsync(product.rms_x1, rms_x1_, cudaStream); + }); + + return product; +} + +TYPELOOKUP_DATA_REG(EcalPedestalsGPU); diff --git a/RecoLocalCalo/EcalRecAlgos/src/EcalPulseCovariancesGPU.cc b/CondFormats/EcalObjects/src/EcalPulseCovariancesGPU.cc similarity index 95% rename from RecoLocalCalo/EcalRecAlgos/src/EcalPulseCovariancesGPU.cc rename to CondFormats/EcalObjects/src/EcalPulseCovariancesGPU.cc index bbeda99652e22..05586080bff6a 100644 --- a/RecoLocalCalo/EcalRecAlgos/src/EcalPulseCovariancesGPU.cc +++ b/CondFormats/EcalObjects/src/EcalPulseCovariancesGPU.cc @@ -1,4 +1,4 @@ -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalPulseCovariancesGPU.h" +#include "CondFormats/EcalObjects/interface/EcalPulseCovariancesGPU.h" #include "FWCore/Utilities/interface/typelookup.h" #include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" diff --git a/RecoLocalCalo/EcalRecAlgos/src/EcalPulseShapesGPU.cc b/CondFormats/EcalObjects/src/EcalPulseShapesGPU.cc similarity index 96% rename from RecoLocalCalo/EcalRecAlgos/src/EcalPulseShapesGPU.cc rename to CondFormats/EcalObjects/src/EcalPulseShapesGPU.cc index aee122a01627d..96b492f3ad335 100644 --- a/RecoLocalCalo/EcalRecAlgos/src/EcalPulseShapesGPU.cc +++ b/CondFormats/EcalObjects/src/EcalPulseShapesGPU.cc @@ -1,4 +1,4 @@ -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalPulseShapesGPU.h" +#include "CondFormats/EcalObjects/interface/EcalPulseShapesGPU.h" #include "FWCore/Utilities/interface/typelookup.h" #include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" diff --git a/CondFormats/EcalObjects/src/EcalRecHitParametersGPU.cc b/CondFormats/EcalObjects/src/EcalRecHitParametersGPU.cc new file mode 100644 index 0000000000000..a74232bc93e8b --- /dev/null +++ b/CondFormats/EcalObjects/src/EcalRecHitParametersGPU.cc @@ -0,0 +1,57 @@ +#include "CondFormats/EcalObjects/interface/EcalRecHitParametersGPU.h" + +#include "FWCore/Utilities/interface/typelookup.h" +#include "HeterogeneousCore/CUDAUtilities/interface/copyAsync.h" +#include "CommonTools/Utils/interface/StringToEnumValue.h" +#include "CondFormats/EcalObjects/interface/EcalRechitChannelStatusGPU.h" +#include "DataFormats/EcalRecHit/interface/EcalRecHit.h" + +EcalRecHitParametersGPU::EcalRecHitParametersGPU(edm::ParameterSet const& ps) { + auto const& channelStatusToBeExcluded = StringToEnumValue( + ps.getParameter>("ChannelStatusToBeExcluded")); + + channelStatusToBeExcluded_.resize(channelStatusToBeExcluded.size()); + std::copy(channelStatusToBeExcluded.begin(), channelStatusToBeExcluded.end(), channelStatusToBeExcluded_.begin()); + + // https://github.com/cms-sw/cmssw/blob/266e21cfc9eb409b093e4cf064f4c0a24c6ac293/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitWorkerSimple.cc + + // Translate string representation of flagsMapDBReco into enum values + const edm::ParameterSet& p = ps.getParameter("flagsMapDBReco"); + std::vector recoflagbitsStrings = p.getParameterNames(); + + for (unsigned int i = 0; i != recoflagbitsStrings.size(); ++i) { + EcalRecHit::Flags recoflagbit = (EcalRecHit::Flags)StringToEnumValue(recoflagbitsStrings[i]); + std::vector dbstatus_s = p.getParameter>(recoflagbitsStrings[i]); + for (unsigned int j = 0; j != dbstatus_s.size(); ++j) { + EcalChannelStatusCode::Code dbstatus = + (EcalChannelStatusCode::Code)StringToEnumValue(dbstatus_s[j]); + expanded_v_DB_reco_flags_.push_back(dbstatus); + } + + expanded_Sizes_v_DB_reco_flags_.push_back(dbstatus_s.size()); + expanded_flagbit_v_DB_reco_flags_.push_back(recoflagbit); + } +} + +EcalRecHitParametersGPU::Product const& EcalRecHitParametersGPU::getProduct(cudaStream_t cudaStream) const { + auto const& product = product_.dataForCurrentDeviceAsync( + cudaStream, [this](EcalRecHitParametersGPU::Product& product, cudaStream_t cudaStream) { + // allocate + product.channelStatusToBeExcluded = + cms::cuda::make_device_unique(channelStatusToBeExcluded_.size(), cudaStream); + product.expanded_v_DB_reco_flags = + cms::cuda::make_device_unique(expanded_v_DB_reco_flags_.size(), cudaStream); + product.expanded_Sizes_v_DB_reco_flags = + cms::cuda::make_device_unique(expanded_Sizes_v_DB_reco_flags_.size(), cudaStream); + product.expanded_flagbit_v_DB_reco_flags = + cms::cuda::make_device_unique(expanded_flagbit_v_DB_reco_flags_.size(), cudaStream); + // transfer + cms::cuda::copyAsync(product.channelStatusToBeExcluded, channelStatusToBeExcluded_, cudaStream); + cms::cuda::copyAsync(product.expanded_v_DB_reco_flags, expanded_v_DB_reco_flags_, cudaStream); + cms::cuda::copyAsync(product.expanded_Sizes_v_DB_reco_flags, expanded_Sizes_v_DB_reco_flags_, cudaStream); + cms::cuda::copyAsync(product.expanded_flagbit_v_DB_reco_flags, expanded_flagbit_v_DB_reco_flags_, cudaStream); + }); + return product; +} + +TYPELOOKUP_DATA_REG(EcalRecHitParametersGPU); diff --git a/RecoLocalCalo/EcalRecAlgos/src/EcalRechitADCToGeVConstantGPU.cc b/CondFormats/EcalObjects/src/EcalRechitADCToGeVConstantGPU.cc similarity index 50% rename from RecoLocalCalo/EcalRecAlgos/src/EcalRechitADCToGeVConstantGPU.cc rename to CondFormats/EcalObjects/src/EcalRechitADCToGeVConstantGPU.cc index 5f01068f95186..a71266d1615dc 100644 --- a/RecoLocalCalo/EcalRecAlgos/src/EcalRechitADCToGeVConstantGPU.cc +++ b/CondFormats/EcalObjects/src/EcalRechitADCToGeVConstantGPU.cc @@ -1,7 +1,7 @@ -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalRechitADCToGeVConstantGPU.h" +#include "CondFormats/EcalObjects/interface/EcalRechitADCToGeVConstantGPU.h" #include "FWCore/Utilities/interface/typelookup.h" -#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" +#include "HeterogeneousCore/CUDAUtilities/interface/copyAsync.h" EcalRechitADCToGeVConstantGPU::EcalRechitADCToGeVConstantGPU(EcalADCToGeVConstant const& values) : adc2gev_(2) // size is 2, one form EB and one for EE @@ -10,22 +10,13 @@ EcalRechitADCToGeVConstantGPU::EcalRechitADCToGeVConstantGPU(EcalADCToGeVConstan adc2gev_[1] = values.getEEValue(); } -EcalRechitADCToGeVConstantGPU::Product::~Product() { - // deallocation - cudaCheck(cudaFree(adc2gev)); -} - EcalRechitADCToGeVConstantGPU::Product const& EcalRechitADCToGeVConstantGPU::getProduct(cudaStream_t cudaStream) const { auto const& product = product_.dataForCurrentDeviceAsync( cudaStream, [this](EcalRechitADCToGeVConstantGPU::Product& product, cudaStream_t cudaStream) { - // malloc - cudaCheck(cudaMalloc((void**)&product.adc2gev, this->adc2gev_.size() * sizeof(float))); + // allocate + product.adc2gev = cms::cuda::make_device_unique(adc2gev_.size(), cudaStream); // transfer - cudaCheck(cudaMemcpyAsync(product.adc2gev, - this->adc2gev_.data(), - this->adc2gev_.size() * sizeof(float), - cudaMemcpyHostToDevice, - cudaStream)); + cms::cuda::copyAsync(product.adc2gev, adc2gev_, cudaStream); }); return product; diff --git a/RecoLocalCalo/EcalRecAlgos/src/EcalRechitChannelStatusGPU.cc b/CondFormats/EcalObjects/src/EcalRechitChannelStatusGPU.cc similarity index 60% rename from RecoLocalCalo/EcalRecAlgos/src/EcalRechitChannelStatusGPU.cc rename to CondFormats/EcalObjects/src/EcalRechitChannelStatusGPU.cc index 1e6801fbd326a..2a0740828f6cf 100644 --- a/RecoLocalCalo/EcalRecAlgos/src/EcalRechitChannelStatusGPU.cc +++ b/CondFormats/EcalObjects/src/EcalRechitChannelStatusGPU.cc @@ -1,7 +1,7 @@ -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalRechitChannelStatusGPU.h" +#include "CondFormats/EcalObjects/interface/EcalRechitChannelStatusGPU.h" #include "FWCore/Utilities/interface/typelookup.h" -#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" +#include "HeterogeneousCore/CUDAUtilities/interface/copyAsync.h" EcalRechitChannelStatusGPU::EcalRechitChannelStatusGPU(EcalChannelStatus const& values) : status_(values.size()) { // fill in eb @@ -18,22 +18,13 @@ EcalRechitChannelStatusGPU::EcalRechitChannelStatusGPU(EcalChannelStatus const& } } -EcalRechitChannelStatusGPU::Product::~Product() { - // deallocation - cudaCheck(cudaFree(status)); -} - EcalRechitChannelStatusGPU::Product const& EcalRechitChannelStatusGPU::getProduct(cudaStream_t cudaStream) const { auto const& product = product_.dataForCurrentDeviceAsync( cudaStream, [this](EcalRechitChannelStatusGPU::Product& product, cudaStream_t cudaStream) { - // malloc - cudaCheck(cudaMalloc((void**)&product.status, this->status_.size() * sizeof(uint16_t))); + // allocate + product.status = cms::cuda::make_device_unique(status_.size(), cudaStream); // transfer - cudaCheck(cudaMemcpyAsync(product.status, - this->status_.data(), - this->status_.size() * sizeof(uint16_t), - cudaMemcpyHostToDevice, - cudaStream)); + cms::cuda::copyAsync(product.status, status_, cudaStream); }); return product; diff --git a/CondFormats/EcalObjects/src/EcalSamplesCorrelationGPU.cc b/CondFormats/EcalObjects/src/EcalSamplesCorrelationGPU.cc new file mode 100644 index 0000000000000..9e355045149ea --- /dev/null +++ b/CondFormats/EcalObjects/src/EcalSamplesCorrelationGPU.cc @@ -0,0 +1,66 @@ +#include "CondFormats/EcalObjects/interface/EcalSamplesCorrelationGPU.h" + +#include "FWCore/Utilities/interface/typelookup.h" +#include "HeterogeneousCore/CUDAUtilities/interface/copyAsync.h" + +EcalSamplesCorrelationGPU::EcalSamplesCorrelationGPU(EcalSamplesCorrelation const& values) { + EBG12SamplesCorrelation_.reserve(values.EBG12SamplesCorrelation.size()); + for (const auto& EBG12SamplesCorrelation : values.EBG12SamplesCorrelation) { + EBG12SamplesCorrelation_.emplace_back(EBG12SamplesCorrelation); + } + + EBG6SamplesCorrelation_.reserve(values.EBG6SamplesCorrelation.size()); + for (const auto& EBG6SamplesCorrelation : values.EBG6SamplesCorrelation) { + EBG6SamplesCorrelation_.emplace_back(EBG6SamplesCorrelation); + } + + EBG1SamplesCorrelation_.reserve(values.EBG1SamplesCorrelation.size()); + for (const auto& EBG1SamplesCorrelation : values.EBG1SamplesCorrelation) { + EBG1SamplesCorrelation_.emplace_back(EBG1SamplesCorrelation); + } + + EEG12SamplesCorrelation_.reserve(values.EEG12SamplesCorrelation.size()); + for (const auto& EEG12SamplesCorrelation : values.EEG12SamplesCorrelation) { + EEG12SamplesCorrelation_.emplace_back(EEG12SamplesCorrelation); + } + + EEG6SamplesCorrelation_.reserve(values.EEG6SamplesCorrelation.size()); + for (const auto& EEG6SamplesCorrelation : values.EEG6SamplesCorrelation) { + EEG6SamplesCorrelation_.emplace_back(EEG6SamplesCorrelation); + } + + EEG1SamplesCorrelation_.reserve(values.EEG1SamplesCorrelation.size()); + for (const auto& EEG1SamplesCorrelation : values.EEG1SamplesCorrelation) { + EEG1SamplesCorrelation_.emplace_back(EEG1SamplesCorrelation); + } +} + +EcalSamplesCorrelationGPU::Product const& EcalSamplesCorrelationGPU::getProduct(cudaStream_t cudaStream) const { + auto const& product = product_.dataForCurrentDeviceAsync( + cudaStream, [this](EcalSamplesCorrelationGPU::Product& product, cudaStream_t cudaStream) { + // allocate + product.EBG12SamplesCorrelation = + cms::cuda::make_device_unique(EBG12SamplesCorrelation_.size(), cudaStream); + product.EBG6SamplesCorrelation = + cms::cuda::make_device_unique(EBG6SamplesCorrelation_.size(), cudaStream); + product.EBG1SamplesCorrelation = + cms::cuda::make_device_unique(EBG1SamplesCorrelation_.size(), cudaStream); + product.EEG12SamplesCorrelation = + cms::cuda::make_device_unique(EEG12SamplesCorrelation_.size(), cudaStream); + product.EEG6SamplesCorrelation = + cms::cuda::make_device_unique(EEG6SamplesCorrelation_.size(), cudaStream); + product.EEG1SamplesCorrelation = + cms::cuda::make_device_unique(EEG1SamplesCorrelation_.size(), cudaStream); + // transfer + cms::cuda::copyAsync(product.EBG12SamplesCorrelation, EBG12SamplesCorrelation_, cudaStream); + cms::cuda::copyAsync(product.EBG6SamplesCorrelation, EBG6SamplesCorrelation_, cudaStream); + cms::cuda::copyAsync(product.EBG1SamplesCorrelation, EBG1SamplesCorrelation_, cudaStream); + cms::cuda::copyAsync(product.EEG12SamplesCorrelation, EEG12SamplesCorrelation_, cudaStream); + cms::cuda::copyAsync(product.EEG6SamplesCorrelation, EEG6SamplesCorrelation_, cudaStream); + cms::cuda::copyAsync(product.EEG1SamplesCorrelation, EEG1SamplesCorrelation_, cudaStream); + }); + + return product; +} + +TYPELOOKUP_DATA_REG(EcalSamplesCorrelationGPU); diff --git a/CondFormats/EcalObjects/src/EcalTPGOddWeightGroup.cc b/CondFormats/EcalObjects/src/EcalTPGOddWeightGroup.cc new file mode 100644 index 0000000000000..81f088b4f9d29 --- /dev/null +++ b/CondFormats/EcalObjects/src/EcalTPGOddWeightGroup.cc @@ -0,0 +1,5 @@ +#include "CondFormats/EcalObjects/interface/EcalTPGOddWeightGroup.h" + +EcalTPGOddWeightGroup::EcalTPGOddWeightGroup() {} + +EcalTPGOddWeightGroup::~EcalTPGOddWeightGroup() {} diff --git a/CondFormats/EcalObjects/src/EcalTPGOddWeightIdMap.cc b/CondFormats/EcalObjects/src/EcalTPGOddWeightIdMap.cc new file mode 100644 index 0000000000000..a78633ac76b48 --- /dev/null +++ b/CondFormats/EcalObjects/src/EcalTPGOddWeightIdMap.cc @@ -0,0 +1,7 @@ +#include "CondFormats/EcalObjects/interface/EcalTPGOddWeightIdMap.h" + +EcalTPGOddWeightIdMap::EcalTPGOddWeightIdMap() {} + +EcalTPGOddWeightIdMap::~EcalTPGOddWeightIdMap() {} + +void EcalTPGOddWeightIdMap::setValue(const uint32_t& id, const EcalTPGWeights& value) { map_[id] = value; } diff --git a/CondFormats/EcalObjects/src/EcalTPGTPMode.cc b/CondFormats/EcalObjects/src/EcalTPGTPMode.cc new file mode 100644 index 0000000000000..cc7608c4ec63b --- /dev/null +++ b/CondFormats/EcalObjects/src/EcalTPGTPMode.cc @@ -0,0 +1,42 @@ +#include "CondFormats/EcalObjects/interface/EcalTPGTPMode.h" +#include +#include "FWCore/MessageLogger/interface/MessageLogger.h" + +EcalTPGTPMode::EcalTPGTPMode() {} + +EcalTPGTPMode::~EcalTPGTPMode() {} + +void EcalTPGTPMode::print(std::ostream& out) const { + out << ">>> Trigger primitive mode: " << std::endl; + out << " enable EE odd filter " << EnableEEOddFilter << std::endl; + out << " enable EB odd filter " << EnableEBOddFilter << std::endl; + out << " enable EE odd peak finder " << EnableEEOddPeakFinder << std::endl; + out << " enable EB odd peak finder " << EnableEBOddPeakFinder << std::endl; + out << " disable EE even peak finder " << DisableEEEvenPeakFinder << std::endl; + out << " disable EB even peak finder " << DisableEBEvenPeakFinder << std::endl; + if (FenixEEStripOutput == 0) + out << " EE strip formatter output: even filter " << std::endl; + if (FenixEEStripOutput == 1) + out << " EE strip formatter output: odd filter " << std::endl; + if (FenixEEStripOutput == 2) + out << " EE strip formatter output: larger of odd and even " << std::endl; + if (FenixEEStripOutput == 3) + out << " EE strip formatter output: odd + even " << std::endl; + if (FenixEBStripOutput == 0) + out << " EB strip formatter output: even filter " << std::endl; + if (FenixEBStripOutput == 1) + out << " EB strip formatter output: odd filter " << std::endl; + if (FenixEBStripOutput == 2) + out << " EB strip formatter output: larger of odd and even " << std::endl; + if (FenixEBStripOutput == 3) + out << " EB strip formatter output: odd + even " << std::endl; + out << " Flag EE odd>even strip " << FenixEEStripInfobit2 << std::endl; + out << " Flag EB odd>even strip " << FenixEBStripInfobit2 << std::endl; + if (EBFenixTcpOutput == 0) + out << " EB tcp formatter output: even filter " << std::endl; + if (EBFenixTcpOutput == 1) + out << " EB tcp formatter output: larger of odd and even " << std::endl; + if (EBFenixTcpOutput == 2) + out << " EB tcp formatter output: even + odd " << std::endl; + out << " Flag EB odd>even TCP " << EBFenixTcpInfobit1 << std::endl; +} \ No newline at end of file diff --git a/CondFormats/EcalObjects/src/EcalTimeBiasCorrectionsGPU.cc b/CondFormats/EcalObjects/src/EcalTimeBiasCorrectionsGPU.cc new file mode 100644 index 0000000000000..268a22f7182f5 --- /dev/null +++ b/CondFormats/EcalObjects/src/EcalTimeBiasCorrectionsGPU.cc @@ -0,0 +1,53 @@ +#include "CondFormats/EcalObjects/interface/EcalTimeBiasCorrectionsGPU.h" + +#include "FWCore/Utilities/interface/typelookup.h" +#include "HeterogeneousCore/CUDAUtilities/interface/copyAsync.h" + +EcalTimeBiasCorrectionsGPU::EcalTimeBiasCorrectionsGPU(EcalTimeBiasCorrections const& values) { + ebTimeCorrAmplitudeBins_.reserve(values.EBTimeCorrAmplitudeBins.size()); + for (const auto& ebTimeCorrAmplitudeBin : values.EBTimeCorrAmplitudeBins) { + ebTimeCorrAmplitudeBins_.emplace_back(ebTimeCorrAmplitudeBin); + } + + ebTimeCorrShiftBins_.reserve(values.EBTimeCorrAmplitudeBins.size()); + for (const auto& ebTimeCorrShiftBin : values.EBTimeCorrShiftBins) { + ebTimeCorrShiftBins_.emplace_back(ebTimeCorrShiftBin); + } + + eeTimeCorrAmplitudeBins_.reserve(values.EETimeCorrAmplitudeBins.size()); + for (const auto& eeTimeCorrAmplitudeBin : values.EETimeCorrAmplitudeBins) { + eeTimeCorrAmplitudeBins_.emplace_back(eeTimeCorrAmplitudeBin); + } + + eeTimeCorrShiftBins_.reserve(values.EETimeCorrAmplitudeBins.size()); + for (const auto& eeTimeCorrShiftBin : values.EETimeCorrShiftBins) { + eeTimeCorrShiftBins_.emplace_back(eeTimeCorrShiftBin); + } +} + +EcalTimeBiasCorrectionsGPU::Product const& EcalTimeBiasCorrectionsGPU::getProduct(cudaStream_t cudaStream) const { + auto const& product = product_.dataForCurrentDeviceAsync( + cudaStream, [this](EcalTimeBiasCorrectionsGPU::Product& product, cudaStream_t cudaStream) { + // to get the size of vectors later on + // should be removed and host conditions' objects used directly + product.ebTimeCorrAmplitudeBinsSize = this->ebTimeCorrAmplitudeBins_.size(); + product.eeTimeCorrAmplitudeBinsSize = this->eeTimeCorrAmplitudeBins_.size(); + + // allocate + product.ebTimeCorrAmplitudeBins = + cms::cuda::make_device_unique(ebTimeCorrAmplitudeBins_.size(), cudaStream); + product.ebTimeCorrShiftBins = cms::cuda::make_device_unique(ebTimeCorrShiftBins_.size(), cudaStream); + product.eeTimeCorrAmplitudeBins = + cms::cuda::make_device_unique(eeTimeCorrAmplitudeBins_.size(), cudaStream); + product.eeTimeCorrShiftBins = cms::cuda::make_device_unique(eeTimeCorrShiftBins_.size(), cudaStream); + // transfer + cms::cuda::copyAsync(product.ebTimeCorrAmplitudeBins, ebTimeCorrAmplitudeBins_, cudaStream); + cms::cuda::copyAsync(product.ebTimeCorrShiftBins, ebTimeCorrShiftBins_, cudaStream); + cms::cuda::copyAsync(product.eeTimeCorrAmplitudeBins, eeTimeCorrAmplitudeBins_, cudaStream); + cms::cuda::copyAsync(product.eeTimeCorrShiftBins, eeTimeCorrShiftBins_, cudaStream); + }); + + return product; +} + +TYPELOOKUP_DATA_REG(EcalTimeBiasCorrectionsGPU); diff --git a/CondFormats/EcalObjects/src/EcalTimeCalibConstantsGPU.cc b/CondFormats/EcalObjects/src/EcalTimeCalibConstantsGPU.cc new file mode 100644 index 0000000000000..80537fa9f07c8 --- /dev/null +++ b/CondFormats/EcalObjects/src/EcalTimeCalibConstantsGPU.cc @@ -0,0 +1,26 @@ +#include "CondFormats/EcalObjects/interface/EcalTimeCalibConstantsGPU.h" + +#include "FWCore/Utilities/interface/typelookup.h" +#include "HeterogeneousCore/CUDAUtilities/interface/copyAsync.h" + +EcalTimeCalibConstantsGPU::EcalTimeCalibConstantsGPU(EcalTimeCalibConstants const& values) { + values_.reserve(values.size()); + for (size_t i = 0; i < values.size(); ++i) { + values_.emplace_back(values[i]); + } + offset_ = values.barrelItems().size(); +} + +EcalTimeCalibConstantsGPU::Product const& EcalTimeCalibConstantsGPU::getProduct(cudaStream_t cudaStream) const { + auto const& product = product_.dataForCurrentDeviceAsync( + cudaStream, [this](EcalTimeCalibConstantsGPU::Product& product, cudaStream_t cudaStream) { + // allocate + product.values = cms::cuda::make_device_unique(values_.size(), cudaStream); + // transfer + cms::cuda::copyAsync(product.values, values_, cudaStream); + }); + + return product; +} + +TYPELOOKUP_DATA_REG(EcalTimeCalibConstantsGPU); diff --git a/EventFilter/EcalRawToDigi/src/ElectronicsMappingGPU.cc b/CondFormats/EcalObjects/src/ElectronicsMappingGPU.cc similarity index 67% rename from EventFilter/EcalRawToDigi/src/ElectronicsMappingGPU.cc rename to CondFormats/EcalObjects/src/ElectronicsMappingGPU.cc index 8264c501a896c..343441e5d059a 100644 --- a/EventFilter/EcalRawToDigi/src/ElectronicsMappingGPU.cc +++ b/CondFormats/EcalObjects/src/ElectronicsMappingGPU.cc @@ -1,7 +1,7 @@ -#include "EventFilter/EcalRawToDigi/interface/ElectronicsMappingGPU.h" +#include "CondFormats/EcalObjects/interface/ElectronicsMappingGPU.h" #include "FWCore/Utilities/interface/typelookup.h" -#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" +#include "HeterogeneousCore/CUDAUtilities/interface/copyAsync.h" #include "DataFormats/EcalDetId/interface/EcalElectronicsId.h" @@ -29,23 +29,13 @@ namespace ecal { } } - ElectronicsMappingGPU::Product::~Product() { - // deallocation - cudaCheck(cudaFree(eid2did)); - } - ElectronicsMappingGPU::Product const& ElectronicsMappingGPU::getProduct(cudaStream_t cudaStream) const { auto const& product = product_.dataForCurrentDeviceAsync( cudaStream, [this](ElectronicsMappingGPU::Product& product, cudaStream_t cudaStream) { - // malloc - cudaCheck(cudaMalloc((void**)&product.eid2did, this->eid2did_.size() * sizeof(uint32_t))); - + // allocate + product.eid2did = cms::cuda::make_device_unique(eid2did_.size(), cudaStream); // transfer - cudaCheck(cudaMemcpyAsync(product.eid2did, - this->eid2did_.data(), - this->eid2did_.size() * sizeof(uint32_t), - cudaMemcpyHostToDevice, - cudaStream)); + cms::cuda::copyAsync(product.eid2did, eid2did_, cudaStream); }); return product; diff --git a/CondFormats/EcalObjects/src/T_EventSetup_EcalTPGOddWeightGroup.cc b/CondFormats/EcalObjects/src/T_EventSetup_EcalTPGOddWeightGroup.cc new file mode 100644 index 0000000000000..fe44799b398ec --- /dev/null +++ b/CondFormats/EcalObjects/src/T_EventSetup_EcalTPGOddWeightGroup.cc @@ -0,0 +1,5 @@ +// user include files +#include "CondFormats/EcalObjects/interface/EcalTPGOddWeightGroup.h" +#include "FWCore/Utilities/interface/typelookup.h" + +TYPELOOKUP_DATA_REG(EcalTPGOddWeightGroup); diff --git a/CondFormats/EcalObjects/src/T_EventSetup_EcalTPGOddWeightIdMap.cc b/CondFormats/EcalObjects/src/T_EventSetup_EcalTPGOddWeightIdMap.cc new file mode 100644 index 0000000000000..c5a1c7bc79329 --- /dev/null +++ b/CondFormats/EcalObjects/src/T_EventSetup_EcalTPGOddWeightIdMap.cc @@ -0,0 +1,5 @@ +// user include files +#include "CondFormats/EcalObjects/interface/EcalTPGOddWeightIdMap.h" +#include "FWCore/Utilities/interface/typelookup.h" + +TYPELOOKUP_DATA_REG(EcalTPGOddWeightIdMap); diff --git a/CondFormats/EcalObjects/src/T_EventSetup_EcalTPGTPMode.cc b/CondFormats/EcalObjects/src/T_EventSetup_EcalTPGTPMode.cc new file mode 100644 index 0000000000000..3262cf46b4a44 --- /dev/null +++ b/CondFormats/EcalObjects/src/T_EventSetup_EcalTPGTPMode.cc @@ -0,0 +1,5 @@ +// user include files +#include "CondFormats/EcalObjects/interface/EcalTPGTPMode.h" +#include "FWCore/Utilities/interface/typelookup.h" + +TYPELOOKUP_DATA_REG(EcalTPGTPMode); diff --git a/CondFormats/EcalObjects/src/classes.h b/CondFormats/EcalObjects/src/classes.h index 220714ded1644..f35fcf033ea60 100644 --- a/CondFormats/EcalObjects/src/classes.h +++ b/CondFormats/EcalObjects/src/classes.h @@ -45,6 +45,7 @@ #include "CondFormats/EcalObjects/interface/EcalTPGLutIdMap.h" #include "CondFormats/EcalObjects/interface/EcalTPGPedestals.h" #include "CondFormats/EcalObjects/interface/EcalTPGWeightIdMap.h" +#include "CondFormats/EcalObjects/interface/EcalTPGOddWeightIdMap.h" #include "CondFormats/EcalObjects/interface/EcalTPGSlidingWindow.h" #include "CondFormats/EcalObjects/interface/EcalMappingElectronics.h" #include "CondFormats/EcalObjects/interface/EcalFunctionParameters.h" @@ -57,6 +58,8 @@ #include "CondFormats/EcalObjects/interface/EcalTPGFineGrainEBGroup.h" #include "CondFormats/EcalObjects/interface/EcalTPGLutGroup.h" #include "CondFormats/EcalObjects/interface/EcalTPGWeightGroup.h" +#include "CondFormats/EcalObjects/interface/EcalTPGOddWeightGroup.h" +#include "CondFormats/EcalObjects/interface/EcalTPGTPMode.h" #include "CondFormats/EcalObjects/interface/EcalTPGPhysicsConst.h" #include "CondFormats/EcalObjects/interface/EcalTPGCrystalStatus.h" #include "CondFormats/EcalObjects/interface/EcalTPGCrystalStatusCode.h" diff --git a/CondFormats/EcalObjects/src/classes_def.xml b/CondFormats/EcalObjects/src/classes_def.xml index 8a64c5b637176..ea50b1da79b67 100644 --- a/CondFormats/EcalObjects/src/classes_def.xml +++ b/CondFormats/EcalObjects/src/classes_def.xml @@ -214,6 +214,10 @@ + + + + @@ -223,6 +227,7 @@ + diff --git a/CondFormats/EcalObjects/src/headers.h b/CondFormats/EcalObjects/src/headers.h index 35296d9e63edb..11b173bbaec83 100644 --- a/CondFormats/EcalObjects/src/headers.h +++ b/CondFormats/EcalObjects/src/headers.h @@ -8,6 +8,11 @@ #include "CondFormats/EcalObjects/interface/EcalSimPulseShape.h" #include "CondFormats/EcalObjects/interface/EcalMustacheSCParameters.h" #include "CondFormats/EcalObjects/interface/EcalSCDynamicDPhiParameters.h" +#include "CondFormats/EcalObjects/interface/EcalTPGWeightGroup.h" +#include "CondFormats/EcalObjects/interface/EcalTPGWeightIdMap.h" +#include "CondFormats/EcalObjects/interface/EcalTPGOddWeightGroup.h" +#include "CondFormats/EcalObjects/interface/EcalTPGOddWeightIdMap.h" +#include "CondFormats/EcalObjects/interface/EcalTPGTPMode.h" #include "CondFormats/External/interface/EcalDetID.h" #include "CondFormats/External/interface/SMatrix.h" diff --git a/CondFormats/HGCalObjects/BuildFile.xml b/CondFormats/HGCalObjects/BuildFile.xml new file mode 100644 index 0000000000000..e017925437cac --- /dev/null +++ b/CondFormats/HGCalObjects/BuildFile.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/CondFormats/HGCalObjects/interface/HeterogeneousHGCalHEFCellPositionsConditions.h b/CondFormats/HGCalObjects/interface/HeterogeneousHGCalHEFCellPositionsConditions.h new file mode 100644 index 0000000000000..5dea507cc7432 --- /dev/null +++ b/CondFormats/HGCalObjects/interface/HeterogeneousHGCalHEFCellPositionsConditions.h @@ -0,0 +1,76 @@ +#ifndef CondFormats_HGCalObjects_HeterogeneousHGCalHEFConditions_h +#define CondFormats_HGCalObjects_HeterogeneousHGCalHEFConditions_h + +#include //accumulate +#include + +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "HeterogeneousCore/CUDACore/interface/ESProduct.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" +#include "CUDADataFormats/HGCal/interface/HGCConditions.h" +#include "Geometry/HGCalCommonData/interface/HGCalDDDConstants.h" +#include "Geometry/HGCalCommonData/interface/HGCalParameters.h" +#include "RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalCellPositions.h" + +namespace cpar = hgcal_conditions::parameters; +namespace cpos = hgcal_conditions::positions; + +// Declare the wrapper ESProduct. The corresponding ESProducer should +// produce objects of this type. +class HeterogeneousHGCalHEFCellPositionsConditions { +public: + // Constructor takes the standard CPU ESProduct, and transforms the + // necessary data to array(s) in pinned host memory + HeterogeneousHGCalHEFCellPositionsConditions(cpos::HGCalPositionsMapping*); + + // Deallocates all pinned host memory + ~HeterogeneousHGCalHEFCellPositionsConditions(); + + // Function to return the actual payload on the memory of the current device + hgcal_conditions::HeterogeneousHEFCellPositionsConditionsESProduct const* getHeterogeneousConditionsESProductAsync( + cudaStream_t stream) const; + +private: + // Holds the data in pinned CPU memory + // Contrary to its non-heterogeneous counterpart (constructor argument) it is *not* a pointer (so to avoid an extra allocation) + cpos::HeterogeneousHGCalPositionsMapping posmap_; + size_t nelems_posmap_; + + std::vector sizes_; + size_t chunk_; + const size_t number_position_arrays = + 2; //x and y; required due to the assymetry between cpos::HeterogeneousHGCalPositionsMapping and cpos::HGCalPositionsMapping + + std::vector calculate_memory_bytes_(cpos::HGCalPositionsMapping*); + size_t allocate_memory_(const std::vector&); + void transfer_data_to_heterogeneous_pointers_(const std::vector&, cpos::HGCalPositionsMapping*); + void transfer_data_to_heterogeneous_vars_(const cpos::HGCalPositionsMapping*); + + /*methods for managing SoA's pointers*/ + //float + float*& select_pointer_f_(cpos::HeterogeneousHGCalPositionsMapping*, const unsigned int&) const; + std::vector& select_pointer_f_(cpos::HGCalPositionsMapping*, const unsigned int&); + //int32_t + int32_t*& select_pointer_i_(cpos::HeterogeneousHGCalPositionsMapping*, const unsigned int&) const; + std::vector& select_pointer_i_(cpos::HGCalPositionsMapping*, const unsigned int&); + //uint32_t + uint32_t*& select_pointer_u_(cpos::HeterogeneousHGCalPositionsMapping*, const unsigned int&) const; + std::vector& select_pointer_u_(cpos::HGCalPositionsMapping*, const unsigned int&); + + // Helper struct to hold all information that has to be allocated and + // deallocated per device + struct GPUData { + // Destructor should free all member pointers + ~GPUData(); + // internal pointers are on device, struct itself is on CPU + hgcal_conditions::HeterogeneousHEFCellPositionsConditionsESProduct* host = nullptr; + // internal pounters and struct are on device + hgcal_conditions::HeterogeneousHEFCellPositionsConditionsESProduct* device = nullptr; + }; + + // Helper that takes care of complexity of transferring the data to + // multiple devices + cms::cuda::ESProduct gpuData_; +}; + +#endif //CondFormats_HGCalObjects_HeterogeneousHGCalHEFConditions_h diff --git a/CondFormats/HGCalObjects/src/T_EventSetup_HeterogeneousHGCalHEFCellPositionsConditions.cc b/CondFormats/HGCalObjects/src/T_EventSetup_HeterogeneousHGCalHEFCellPositionsConditions.cc new file mode 100644 index 0000000000000..75c7efd7751c6 --- /dev/null +++ b/CondFormats/HGCalObjects/src/T_EventSetup_HeterogeneousHGCalHEFCellPositionsConditions.cc @@ -0,0 +1,3 @@ +#include "CondFormats/HGCalObjects/interface/HeterogeneousHGCalHEFCellPositionsConditions.h" +#include "FWCore/Utilities/interface/typelookup.h" +TYPELOOKUP_DATA_REG(HeterogeneousHGCalHEFCellPositionsConditions); diff --git a/CondTools/DQM/test/DQMXMLFileEventSetupAnalyzer_cfg.py b/CondTools/DQM/test/DQMXMLFileEventSetupAnalyzer_cfg.py index 51f905a965a18..e55ec890cedf7 100644 --- a/CondTools/DQM/test/DQMXMLFileEventSetupAnalyzer_cfg.py +++ b/CondTools/DQM/test/DQMXMLFileEventSetupAnalyzer_cfg.py @@ -22,7 +22,7 @@ #################################################################### process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:run3_data_promptlike', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:run3_data_prompt', '') #process.GlobalTag.DumpStat = cms.untracked.bool(True) # optional if you want it to be verbose # import of standard configurations diff --git a/CondTools/Ecal/interface/EcalTPGOddWeightGroupHandler.h b/CondTools/Ecal/interface/EcalTPGOddWeightGroupHandler.h new file mode 100644 index 0000000000000..950e932f92b80 --- /dev/null +++ b/CondTools/Ecal/interface/EcalTPGOddWeightGroupHandler.h @@ -0,0 +1,95 @@ +#ifndef CONDTOOLS_ECAL_ECALTPGODDWEIGHTGROUPHANDLER_H +#define CONDTOOLS_ECAL_ECALTPGODDWEIGHTGROUPHANDLER_H + +#include +#include +#include +#include +#include +#include + +#include "CondCore/PopCon/interface/PopConSourceHandler.h" +#include "FWCore/ParameterSet/interface/ParameterSetfwd.h" + +#include "FWCore/ServiceRegistry/interface/Service.h" +#include "CondCore/DBOutputService/interface/PoolDBOutputService.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "DataFormats/Common/interface/Handle.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/EventSetupRecordKey.h" + +#include "CondFormats/EcalObjects/interface/EcalTPGOddWeightGroup.h" +#include "CondFormats/DataRecord/interface/EcalTPGOddWeightGroupRcd.h" + +#include "OnlineDB/EcalCondDB/interface/all_monitoring_types.h" +#include "OnlineDB/Oracle/interface/Oracle.h" +#include "OnlineDB/EcalCondDB/interface/EcalCondDBInterface.h" + +#include "DataFormats/EcalDetId/interface/EEDetId.h" +#include "DataFormats/EcalDetId/interface/EBDetId.h" +#include "DataFormats/Provenance/interface/Timestamp.h" + +class EcalElectronicsMapping; + +namespace edm { + class ParameterSet; + class Event; + class EventSetup; +} // namespace edm + +namespace popcon { + + class EcalTPGOddWeightGroupHandler : public popcon::PopConSourceHandler { + public: + EcalTPGOddWeightGroupHandler(edm::ParameterSet const&); + ~EcalTPGOddWeightGroupHandler() override; + + std::map makeStripId(); + + void getNewObjects() override; + + std::string id() const override { return m_name; } + + void readtxtFile(); + void readxmlFile(); + + void readFromFile(const char* inputFile); + void writeFile(const char* inputFile); + + EcalCondDBInterface* econn; + + private: + std::string to_string(char value[]) { + std::ostringstream streamOut; + streamOut << value; + return streamOut.str(); + } + + unsigned int m_firstRun; + unsigned int m_lastRun; + + std::map correspId; + + const EcalElectronicsMapping* ecalMapping_; + std::string m_location; + std::string m_gentag; + std::string m_sid; + std::string m_user; + std::string m_pass; + std::string m_locationsource; + std::string m_name; + unsigned int m_runnr; + std::string m_runtype; + std::string m_i_tag; + std::string m_file_type; + std::string m_file_name; + int m_i_version; + unsigned int m_i_run_number; + int m_i_oddweightGroup; + }; +} // namespace popcon +#endif diff --git a/CondTools/Ecal/interface/EcalTPGOddWeightIdMapHandler.h b/CondTools/Ecal/interface/EcalTPGOddWeightIdMapHandler.h new file mode 100644 index 0000000000000..2a1d0f03a3549 --- /dev/null +++ b/CondTools/Ecal/interface/EcalTPGOddWeightIdMapHandler.h @@ -0,0 +1,90 @@ +#ifndef CONDTOOLS_ECAL_ECALTPGODDWEIGHTIDMAPHANDLER_H +#define CONDTOOLS_ECAL_ECALTPGODDWEIGHTIDMAPHANDLER_H + +#include +#include +#include +#include +#include +#include + +#include "CondCore/PopCon/interface/PopConSourceHandler.h" +#include "FWCore/ParameterSet/interface/ParameterSetfwd.h" + +#include "FWCore/ServiceRegistry/interface/Service.h" +#include "CondCore/DBOutputService/interface/PoolDBOutputService.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "DataFormats/Common/interface/Handle.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/EventSetupRecordKey.h" + +#include "CondFormats/EcalObjects/interface/EcalTPGOddWeightIdMap.h" +#include "CondFormats/DataRecord/interface/EcalTPGOddWeightIdMapRcd.h" + +#include "OnlineDB/EcalCondDB/interface/all_monitoring_types.h" +#include "OnlineDB/Oracle/interface/Oracle.h" +#include "OnlineDB/EcalCondDB/interface/EcalCondDBInterface.h" + +#include "DataFormats/EcalDetId/interface/EEDetId.h" +#include "DataFormats/EcalDetId/interface/EBDetId.h" +#include "DataFormats/Provenance/interface/Timestamp.h" + +namespace edm { + class ParameterSet; + class Event; + class EventSetup; +} // namespace edm + +namespace popcon { + + class EcalTPGOddWeightIdMapHandler : public popcon::PopConSourceHandler { + public: + EcalTPGOddWeightIdMapHandler(edm::ParameterSet const&); + ~EcalTPGOddWeightIdMapHandler() override; + + void getNewObjects() override; + + std::string id() const override { return m_name; } + + void readtxtFile(); + void readxmlFile(); + + void readFromFile(const char* inputFile); + void writeFile(const char* inputFile); + + EcalCondDBInterface* econn; + + private: + std::string to_string(char value[]) { + std::ostringstream streamOut; + streamOut << value; + return streamOut.str(); + } + + const EcalTPGOddWeightIdMap* myweightIdMap; + + unsigned int m_firstRun; + unsigned int m_lastRun; + + std::string m_location; + std::string m_gentag; + std::string m_sid; + std::string m_user; + std::string m_pass; + std::string m_locationsource; + std::string m_name; + unsigned int m_runnr; + std::string m_runtype; + std::string m_i_tag; + std::string m_file_type; + std::string m_file_name; + int m_i_version; + unsigned int m_i_run_number; + int m_i_oddweightIdMap; + }; +} // namespace popcon +#endif diff --git a/CondTools/Ecal/interface/EcalTPGTPModeHandler.h b/CondTools/Ecal/interface/EcalTPGTPModeHandler.h new file mode 100644 index 0000000000000..c15dccb71d604 --- /dev/null +++ b/CondTools/Ecal/interface/EcalTPGTPModeHandler.h @@ -0,0 +1,88 @@ +#ifndef CONDTOOLS_ECAL_ECALTPGTPMODEHANDLER_H +#define CONDTOOLS_ECAL_ECALTPGTPMODEHANDLER_H + +#include +#include +#include +#include +#include +#include + +#include "CondCore/PopCon/interface/PopConSourceHandler.h" +#include "FWCore/ParameterSet/interface/ParameterSetfwd.h" + +#include "FWCore/ServiceRegistry/interface/Service.h" +#include "CondCore/DBOutputService/interface/PoolDBOutputService.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "DataFormats/Common/interface/Handle.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/EventSetupRecordKey.h" + +#include "CondFormats/EcalObjects/interface/EcalTPGTPMode.h" +#include "CondFormats/DataRecord/interface/EcalTPGTPModeRcd.h" + +#include "OnlineDB/EcalCondDB/interface/all_monitoring_types.h" +#include "OnlineDB/Oracle/interface/Oracle.h" +#include "OnlineDB/EcalCondDB/interface/EcalCondDBInterface.h" + +#include "DataFormats/Provenance/interface/Timestamp.h" + +class EcalElectronicsMapping; + +namespace edm { + class ParameterSet; + class Event; + class EventSetup; +} // namespace edm + +namespace popcon { + + class EcalTPGTPModeHandler : public popcon::PopConSourceHandler { + public: + EcalTPGTPModeHandler(edm::ParameterSet const&); + ~EcalTPGTPModeHandler() override; + + void getNewObjects() override; + + std::string id() const override { return m_name; } + + void readtxtFile(); + // void readxmlFile(); + + void readFromFile(const char* inputFile); + void writeFile(const char* inputFile); + + EcalCondDBInterface* econn; + + private: + std::string to_string(char value[]) { + std::ostringstream streamOut; + streamOut << value; + return streamOut.str(); + } + + unsigned int m_firstRun; + unsigned int m_lastRun; + + std::string m_location; + std::string m_gentag; + std::string m_sid; + std::string m_user; + std::string m_pass; + std::string m_locationsource; + std::string m_name; + unsigned int m_runnr; + std::string m_runtype; + std::string m_i_tag; + std::string m_file_type; + std::string m_file_name; + int m_i_version; + unsigned int m_i_run_number; + int m_i_TPMode; + }; +} // namespace popcon +#endif diff --git a/CondTools/Ecal/python/copyTPMode_cfg.py b/CondTools/Ecal/python/copyTPMode_cfg.py new file mode 100644 index 0000000000000..022b4612e8c99 --- /dev/null +++ b/CondTools/Ecal/python/copyTPMode_cfg.py @@ -0,0 +1,59 @@ +import FWCore.ParameterSet.Config as cms +import CondTools.Ecal.conddb_init as conddb_init +import CondTools.Ecal.db_credentials as auth + +process = cms.Process("ProcessOne") + +process.MessageLogger = cms.Service("MessageLogger", + debugModules = cms.untracked.vstring('*'), + cout = cms.untracked.PSet( + threshold = cms.untracked.string('DEBUG') + ), + destinations = cms.untracked.vstring('cout') +) + + +process.source = cms.Source("EmptyIOVSource", + lastValue = cms.uint64(100000000), + timetype = cms.string('runnumber'), + firstValue = cms.uint64(100000000), + interval = cms.uint64(1) +) + +process.load("CondCore.CondDB.CondDB_cfi") + +process.CondDB.connect = conddb_init.options.destinationDatabase +process.CondDB.DBParameters.authenticationPath = '' + +process.PoolDBOutputService = cms.Service("PoolDBOutputService", + process.CondDB, + toPut = cms.VPSet(cms.PSet( + record = cms.string('EcalTPGTPModeRcd'), + tag = cms.string(conddb_init.options.destinationTag) + )) +) + +db_reader_account = 'CMS_ECAL_R' +db_service,db_user,db_pwd = auth.get_db_credentials( db_reader_account ) + +process.Test1 = cms.EDAnalyzer("ExTestEcalTPGTPModeAnalyzer", + record = cms.string('EcalTPGTPModeRcd'), + loggingOn= cms.untracked.bool(True), + IsDestDbCheckedInQueryLog=cms.untracked.bool(True), + SinceAppendMode=cms.bool(True), + Source=cms.PSet( + firstRun = cms.string('340400'), + lastRun = cms.string('10000000'), + OnlineDBSID = cms.string(db_service), + OnlineDBUser = cms.string(db_user), + OnlineDBPassword = cms.string( db_pwd ), + LocationSource = cms.string('P5'), + Location = cms.string('P5_Co'), + GenTag = cms.string('GLOBAL'), + RunType = cms.string('PHYSICS'), + fileType = cms.string(''), + fileName = cms.string('') + ) +) + +process.p = cms.Path(process.Test1) diff --git a/CondTools/Ecal/python/copyWOddGroup_cfg.py b/CondTools/Ecal/python/copyWOddGroup_cfg.py new file mode 100644 index 0000000000000..302dc828e0881 --- /dev/null +++ b/CondTools/Ecal/python/copyWOddGroup_cfg.py @@ -0,0 +1,59 @@ +import FWCore.ParameterSet.Config as cms +import CondTools.Ecal.conddb_init as conddb_init +import CondTools.Ecal.db_credentials as auth + +process = cms.Process("ProcessOne") + +process.MessageLogger = cms.Service("MessageLogger", + debugModules = cms.untracked.vstring('*'), + cout = cms.untracked.PSet( + threshold = cms.untracked.string('DEBUG') + ), + destinations = cms.untracked.vstring('cout') +) + + +process.source = cms.Source("EmptyIOVSource", + lastValue = cms.uint64(100000000), + timetype = cms.string('runnumber'), + firstValue = cms.uint64(100000000), + interval = cms.uint64(1) +) + +process.load("CondCore.CondDB.CondDB_cfi") + +process.CondDB.connect = conddb_init.options.destinationDatabase +process.CondDB.DBParameters.authenticationPath = '' + +process.PoolDBOutputService = cms.Service("PoolDBOutputService", + process.CondDB, + toPut = cms.VPSet(cms.PSet( + record = cms.string('EcalTPGOddWeightGroupRcd'), + tag = cms.string(conddb_init.options.destinationTag) + )) +) + +db_reader_account = 'CMS_ECAL_R' +db_service,db_user,db_pwd = auth.get_db_credentials( db_reader_account ) + +process.Test1 = cms.EDAnalyzer("ExTestEcalTPGOddWeightGroupAnalyzer", + record = cms.string('EcalTPGOddWeightGroupRcd'), + loggingOn= cms.untracked.bool(True), + IsDestDbCheckedInQueryLog=cms.untracked.bool(True), + SinceAppendMode=cms.bool(True), + Source=cms.PSet( + firstRun = cms.string('340400'), + lastRun = cms.string('10000000'), + OnlineDBSID = cms.string(db_service), + OnlineDBUser = cms.string(db_user), + OnlineDBPassword = cms.string( db_pwd ), + LocationSource = cms.string('P5'), + Location = cms.string('P5_Co'), + GenTag = cms.string('GLOBAL'), + RunType = cms.string('PHYSICS'), + fileType = cms.string(''), + fileName = cms.string('') + ) +) + +process.p = cms.Path(process.Test1) diff --git a/CondTools/Ecal/python/copyWOddIdMap_cfg.py b/CondTools/Ecal/python/copyWOddIdMap_cfg.py new file mode 100644 index 0000000000000..3464ebcbaf630 --- /dev/null +++ b/CondTools/Ecal/python/copyWOddIdMap_cfg.py @@ -0,0 +1,59 @@ +import FWCore.ParameterSet.Config as cms +import CondTools.Ecal.conddb_init as conddb_init +import CondTools.Ecal.db_credentials as auth + +process = cms.Process("ProcessOne") + +process.MessageLogger = cms.Service("MessageLogger", + debugModules = cms.untracked.vstring('*'), + cout = cms.untracked.PSet( + threshold = cms.untracked.string('DEBUG') + ), + destinations = cms.untracked.vstring('cout') +) + + +process.source = cms.Source("EmptyIOVSource", + lastValue = cms.uint64(100000000), + timetype = cms.string('runnumber'), + firstValue = cms.uint64(100000000), + interval = cms.uint64(1) +) + +process.load("CondCore.CondDB.CondDB_cfi") + +process.CondDB.connect = conddb_init.options.destinationDatabase +process.CondDB.DBParameters.authenticationPath = '' + +process.PoolDBOutputService = cms.Service("PoolDBOutputService", + process.CondDB, + toPut = cms.VPSet(cms.PSet( + record = cms.string('EcalTPGOddWeightIdMapRcd'), + tag = cms.string(conddb_init.options.destinationTag) + )) +) + +db_reader_account = 'CMS_ECAL_R' +db_service,db_user,db_pwd = auth.get_db_credentials( db_reader_account ) + +process.Test1 = cms.EDAnalyzer("ExTestEcalTPGOddWeightIdMapAnalyzer", + record = cms.string('EcalTPGOddWeightIdMapRcd'), + loggingOn= cms.untracked.bool(True), + IsDestDbCheckedInQueryLog=cms.untracked.bool(True), + SinceAppendMode=cms.bool(True), + Source=cms.PSet( + firstRun = cms.string('340400'), + lastRun = cms.string('10000000'), + OnlineDBSID = cms.string(db_service), + OnlineDBUser = cms.string(db_user), + OnlineDBPassword = cms.string( db_pwd ), + LocationSource = cms.string('P5'), + Location = cms.string('P5_Co'), + GenTag = cms.string('GLOBAL'), + RunType = cms.string('PHYSICS'), + fileType = cms.string(''), + fileName = cms.string('') + ) +) + +process.p = cms.Path(process.Test1) diff --git a/CondTools/Ecal/src/EcalTPGOddWeightGroupHandler.cc b/CondTools/Ecal/src/EcalTPGOddWeightGroupHandler.cc new file mode 100644 index 0000000000000..ab3ea70e69ce1 --- /dev/null +++ b/CondTools/Ecal/src/EcalTPGOddWeightGroupHandler.cc @@ -0,0 +1,444 @@ +#include "CondTools/Ecal/interface/EcalLaserHandler.h" + +#include "CondTools/Ecal/interface/EcalTPGOddWeightGroupHandler.h" +#include "OnlineDB/EcalCondDB/interface/EcalLogicID.h" +#include "OnlineDB/EcalCondDB/interface/RunTPGConfigDat.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigMainInfo.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigSlidingInfo.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigSlidingDat.h" +#include "FWCore/ParameterSet/interface/ParameterSetfwd.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" + +#include "DataFormats/EcalDetId/interface/EcalSubdetector.h" +#include "Geometry/EcalMapping/interface/EcalElectronicsMapping.h" +#include "Geometry/EcalMapping/interface/EcalMappingRcd.h" +#include "FWCore/Framework/interface/eventsetuprecord_registration_macro.h" + +#include +#include + +#include +#include + +#include +#include +#include +#include + +const Int_t kEBStrips = 12240, kEEStrips = 2936; + +popcon::EcalTPGOddWeightGroupHandler::EcalTPGOddWeightGroupHandler(const edm::ParameterSet& ps) + : m_name(ps.getUntrackedParameter("name", "EcalTPGOddWeightGroupHandler")) { + edm::LogInfo("EcalTPGOddWeightGroupHandler") << "EcalTPGOddWeightGroup Source handler constructor."; + m_firstRun = static_cast(atoi(ps.getParameter("firstRun").c_str())); + m_lastRun = static_cast(atoi(ps.getParameter("lastRun").c_str())); + m_sid = ps.getParameter("OnlineDBSID"); + m_user = ps.getParameter("OnlineDBUser"); + m_pass = ps.getParameter("OnlineDBPassword"); + m_locationsource = ps.getParameter("LocationSource"); + m_location = ps.getParameter("Location"); + m_gentag = ps.getParameter("GenTag"); + m_runtype = ps.getParameter("RunType"); + m_file_type = ps.getParameter("fileType"); // xml/txt + m_file_name = ps.getParameter("fileName"); + + edm::LogInfo("EcalTPGOddWeightGroupHandler") << m_sid << "/" << m_user << "/" << m_location << "/" << m_gentag; +} + +popcon::EcalTPGOddWeightGroupHandler::~EcalTPGOddWeightGroupHandler() {} + +void popcon::EcalTPGOddWeightGroupHandler::getNewObjects() { + if (m_file_type == "txt") { + readtxtFile(); + } else if (m_file_type == "xml") { + readxmlFile(); + } else { + edm::LogInfo("EcalTPGOddWeightGroupHandler") << "Started GetNewObjects!!!"; + + //check whats already inside of database + if (tagInfo().size) { + //check whats already inside of database + std::cout << "got offlineInfo = " << std::endl; + std::cout << "tag name = " << tagInfo().name << std::endl; + std::cout << "size = " << tagInfo().size << std::endl; + } else { + std::cout << " First object for this tag " << std::endl; + } + + unsigned int max_since = 0; + max_since = static_cast(tagInfo().lastInterval.since); + edm::LogInfo("EcalTPGOddWeightGroupHandler") << "max_since : " << max_since; + + edm::LogInfo("EcalTPGOddWeightGroupHandler") << "retrieved last payload "; + + // here we retrieve all the runs after the last from online DB + + edm::LogInfo("EcalTPGOddWeightGroupHandler") << "Retrieving run list from ONLINE DB ... "; + + edm::LogInfo("EcalTPGOddWeightGroupHandler") << "Making connection..."; + econn = new EcalCondDBInterface(m_sid, m_user, m_pass); + edm::LogInfo("EcalTPGOddWeightGroupHandler") << "Done."; + + if (!econn) { + std::cout << " connection parameters " << m_sid << "/" << m_user << std::endl; + // cerr << e.what() << std::endl; + throw cms::Exception("OMDS not available"); + } + + LocationDef my_locdef; + my_locdef.setLocation(m_location); + + RunTypeDef my_rundef; + my_rundef.setRunType(m_runtype); + + RunTag my_runtag; + my_runtag.setLocationDef(my_locdef); + my_runtag.setRunTypeDef(my_rundef); + my_runtag.setGeneralTag(m_gentag); + + readFromFile("last_tpg_OddweightGroup_settings.txt"); + + unsigned int min_run = m_i_run_number + 1; + + if (m_firstRun < m_i_run_number) { + min_run = m_i_run_number + 1; + } else { + min_run = m_firstRun; + } + + if (min_run < max_since) { + min_run = max_since + 1; // we have to add 1 to the last transferred one + } + + std::cout << "m_i_run_number" << m_i_run_number << "m_firstRun " << m_firstRun << "max_since " << max_since + << std::endl; + + unsigned int max_run = m_lastRun; + edm::LogInfo("EcalTPGOddWeightGroupHandler") << "min_run= " << min_run << " max_run= " << max_run; + + RunList my_list; + my_list = econn->fetchGlobalRunListByLocation(my_runtag, min_run, max_run, my_locdef); + // my_list=econn->fetchRunListByLocation(my_runtag,min_run,max_run,my_locdef); + + std::vector run_vec = my_list.getRuns(); + size_t num_runs = run_vec.size(); + + std::cout << "number of runs is : " << num_runs << std::endl; + + unsigned int irun = 0; + if (num_runs > 0) { + // going to query the ecal logic id + std::vector my_StripEcalLogicId_EE; + my_StripEcalLogicId_EE = + econn->getEcalLogicIDSetOrdered("ECAL_readout_strip", 1, 2000, 1, 70, 0, 5, "EE_offline_stripid", 123); + + std::cout << " GOT the logic ID for the EE trigger strips " << std::endl; + + for (size_t kr = 0; kr < run_vec.size(); kr++) { + irun = static_cast(run_vec[kr].getRunNumber()); + + std::cout << " **************** " << std::endl; + std::cout << " **************** " << std::endl; + std::cout << " run= " << irun << std::endl; + + // retrieve the data : + std::map dataset; + econn->fetchDataSet(&dataset, &run_vec[kr]); + + std::string the_config_tag = ""; + int the_config_version = 0; + + std::map::const_iterator it; + + int nr = 0; + for (it = dataset.begin(); it != dataset.end(); it++) { + ++nr; + //EcalLogicID ecalid = it->first; + + RunTPGConfigDat dat = it->second; + the_config_tag = dat.getConfigTag(); + the_config_version = dat.getVersion(); + } + + // it is all the same for all SM... get the last one + + std::cout << " run= " << irun << " tag " << the_config_tag << " version=" << the_config_version << std::endl; + + // here we should check if it is the same as previous run. + + if ((the_config_tag != m_i_tag || the_config_version != m_i_version) && nr > 0) { + std::cout << "the tag is different from last transferred run ... retrieving last config set from DB" + << std::endl; + + FEConfigMainInfo fe_main_info; + fe_main_info.setConfigTag(the_config_tag); + fe_main_info.setVersion(the_config_version); + + try { + std::cout << " before fetch config set" << std::endl; + econn->fetchConfigSet(&fe_main_info); + std::cout << " after fetch config set" << std::endl; + + // now get TPGOddWeightGroup + int wId = fe_main_info.getWei2Id(); + + if (wId != m_i_oddweightGroup) { + FEConfigOddWeightInfo fe_oddw_info; + fe_oddw_info.setId(wId); + econn->fetchConfigSet(&fe_oddw_info); + std::map dataset_TpgW; + econn->fetchDataSet(&dataset_TpgW, &fe_oddw_info); + + EcalTPGOddWeightGroup* weightG = new EcalTPGOddWeightGroup; + typedef std::map::const_iterator CIfesli; + EcalLogicID ecid_xt; + int weightGroup; + int icells = 0; + + std::map map; + std::string str; + + for (CIfesli p = dataset_TpgW.begin(); p != dataset_TpgW.end(); p++) { + ecid_xt = p->first; + weightGroup = p->second.getWeightGroupId(); + + std::string ecid_name = ecid_xt.getName(); + + // EB data + if (ecid_name == "EB_VFE") { + int sm = ecid_xt.getID1(); + int tt = ecid_xt.getID2(); + int strip = ecid_xt.getID3(); + int tcc = sm + 54; + if (sm > 18) + tcc = sm + 18; + + // simple formula to calculate the Srip EB identifier + + unsigned int stripEBId = 303176 + (tt - 1) * 64 + (strip - 1) * 8 + (tcc - 37) * 8192; + + weightG->setValue(stripEBId, weightGroup); + ++icells; + } else if (ecid_name == "ECAL_readout_strip") { + // EE data to add + int id1 = ecid_xt.getID1(); + int id2 = ecid_xt.getID2(); + int id3 = ecid_xt.getID3(); + + bool set_the_strip = false; + int stripEEId; + for (size_t istrip = 0; istrip < my_StripEcalLogicId_EE.size(); istrip++) { + if (!set_the_strip) { + if (my_StripEcalLogicId_EE[istrip].getID1() == id1 && + my_StripEcalLogicId_EE[istrip].getID2() == id2 && + my_StripEcalLogicId_EE[istrip].getID3() == id3) { + stripEEId = my_StripEcalLogicId_EE[istrip].getLogicID(); + set_the_strip = true; + break; + } + } + } + + if (set_the_strip) { + weightG->setValue(stripEEId, weightGroup); + + } else { + std::cout << " these may be the additional towers TCC/TT " << id1 << "/" << id2 << std::endl; + } + + ++icells; + } + } + + Time_t snc = (Time_t)irun; + + m_to_transfer.push_back(std::make_pair((EcalTPGOddWeightGroup*)weightG, snc)); + + m_i_run_number = irun; + m_i_tag = the_config_tag; + m_i_version = the_config_version; + m_i_oddweightGroup = wId; + + writeFile("last_tpg_OddweightGroup_settings.txt"); + + } else { + m_i_run_number = irun; + m_i_tag = the_config_tag; + m_i_version = the_config_version; + + writeFile("last_tpg_OddweightGroup_settings.txt"); + + std::cout + << " even if the tag/version is not the same, the weight group id is the same -> no transfer needed " + << std::endl; + } + + } + + catch (std::exception& e) { + std::cout << "ERROR: THIS CONFIG DOES NOT EXIST: tag=" << the_config_tag + << " version=" << the_config_version << std::endl; + std::cout << e.what() << std::endl; + m_i_run_number = irun; + } + std::cout << " **************** " << std::endl; + + } else if (nr == 0) { + m_i_run_number = irun; + std::cout << " no tag saved to RUN_TPGCONFIG_DAT by EcalSupervisor -> no transfer needed " << std::endl; + std::cout << " **************** " << std::endl; + } else { + m_i_run_number = irun; + m_i_tag = the_config_tag; + m_i_version = the_config_version; + std::cout << " the tag/version is the same -> no transfer needed " << std::endl; + std::cout << " **************** " << std::endl; + writeFile("last_tpg_OddweightGroup_settings.txt"); + } + } + } + + delete econn; + } // usual way + edm::LogInfo("EcalTPGOddWeightGroupHandler") << "Ecal - > end of getNewObjects -----------"; +} + +void popcon::EcalTPGOddWeightGroupHandler::readtxtFile() { + std::cout << " reading the input file " << m_file_name << std::endl; + std::ifstream fInput; + fInput.open(m_file_name); + if (!fInput.is_open()) { + std::cout << "ERROR : cannot open file " << m_file_name << std::endl; + exit(1); + } + int weightGroup, stripEBId, stripEEId; + EcalTPGOddWeightGroup* weightG = new EcalTPGOddWeightGroup; + for (int strip = 0; strip < kEBStrips; strip++) { + fInput >> stripEBId >> weightGroup; + weightG->setValue(stripEBId, weightGroup); + } + for (int strip = 0; strip < kEEStrips; strip++) { + fInput >> stripEEId >> weightGroup; + weightG->setValue(stripEEId, weightGroup); + } + try { + Time_t snc = (Time_t)m_firstRun; + m_to_transfer.push_back(std::make_pair((EcalTPGOddWeightGroup*)weightG, snc)); + } catch (std::exception& e) { + std::cout << "EcalTPGOddWeightGroupHandler::readtxtFile error : " << e.what() << std::endl; + } + std::cout << " **************** " << std::endl; +} + +void popcon::EcalTPGOddWeightGroupHandler::readxmlFile() { + std::cout << " reading the input file " << m_file_name << std::endl; + std::ifstream fxml; + fxml.open(m_file_name); + if (!fxml.is_open()) { + std::cout << "ERROR : cannot open file " << m_file_name << std::endl; + exit(1); + } + std::string dummyLine, bid; + int weightGroup, stripEBId, stripEEId; + EcalTPGOddWeightGroup* weightG = new EcalTPGOddWeightGroup; + for (int i = 0; i < 6; i++) + std::getline(fxml, dummyLine); // skip first lines + fxml >> bid; + // std::cout << bid << std::endl; + std::size_t found = bid.find("0 + for (int strip = 0; strip < kEBStrips; strip++) { + std::getline(fxml, dummyLine); // > bid; // > stripEBId; + std::getline(fxml, dummyLine); + fxml >> bid; // > weightGroup; + weightG->setValue(stripEBId, weightGroup); + for (int i = 0; i < 2; i++) + std::getline(fxml, dummyLine); // + } + for (int strip = 0; strip < kEEStrips; strip++) { + std::getline(fxml, dummyLine); // > bid; // > stripEEId; + std::getline(fxml, dummyLine); + fxml >> bid; // > weightGroup; + weightG->setValue(stripEEId, weightGroup); + for (int i = 0; i < 2; i++) + std::getline(fxml, dummyLine); // + } + try { + Time_t snc = (Time_t)m_firstRun; + m_to_transfer.push_back(std::make_pair((EcalTPGOddWeightGroup*)weightG, snc)); + } catch (std::exception& e) { + std::cout << "EcalTPGOddWeightGroupHandler::readtxtFile error : " << e.what() << std::endl; + } + std::cout << " **************** " << std::endl; +} + +void popcon::EcalTPGOddWeightGroupHandler::readFromFile(const char* inputFile) { + //------------------------------------------------------------- + + m_i_tag = ""; + m_i_version = 0; + m_i_run_number = 0; + m_i_oddweightGroup = 0; + + FILE* inpFile; // input file + inpFile = fopen(inputFile, "r"); + if (!inpFile) { + edm::LogError("EcalTPGOddWeightGroupHandler") << "*** Can not open file: " << inputFile; + return; + } + + char line[256]; + + std::ostringstream str; + + fgets(line, 255, inpFile); + m_i_tag = to_string(line); + str << "gen tag " << m_i_tag << std::endl; // should I use this? + + fgets(line, 255, inpFile); + m_i_version = atoi(line); + str << "version= " << m_i_version << std::endl; + + fgets(line, 255, inpFile); + m_i_run_number = atoi(line); + str << "run_number= " << m_i_run_number << std::endl; + + fgets(line, 255, inpFile); + m_i_oddweightGroup = atoi(line); + str << "weightGroup_config= " << m_i_oddweightGroup << std::endl; + + fclose(inpFile); // close inp. file +} + +void popcon::EcalTPGOddWeightGroupHandler::writeFile(const char* inputFile) { + //------------------------------------------------------------- + + std::ofstream myfile; + myfile.open(inputFile); + myfile << m_i_tag << std::endl; + myfile << m_i_version << std::endl; + myfile << m_i_run_number << std::endl; + myfile << m_i_oddweightGroup << std::endl; + + myfile.close(); +} diff --git a/CondTools/Ecal/src/EcalTPGOddWeightIdMapHandler.cc b/CondTools/Ecal/src/EcalTPGOddWeightIdMapHandler.cc new file mode 100644 index 0000000000000..f744a85bd144e --- /dev/null +++ b/CondTools/Ecal/src/EcalTPGOddWeightIdMapHandler.cc @@ -0,0 +1,392 @@ +#include "CondTools/Ecal/interface/EcalLaserHandler.h" + +#include "CondTools/Ecal/interface/EcalTPGOddWeightIdMapHandler.h" +#include "OnlineDB/EcalCondDB/interface/EcalLogicID.h" +#include "OnlineDB/EcalCondDB/interface/RunTPGConfigDat.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigMainInfo.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigWeightInfo.h" +#include "FWCore/ParameterSet/interface/ParameterSetfwd.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" + +#include +#include + +#include +#include + +#include +#include +#include +#include + +popcon::EcalTPGOddWeightIdMapHandler::EcalTPGOddWeightIdMapHandler(const edm::ParameterSet& ps) + : m_name(ps.getUntrackedParameter("name", "EcalTPGOddWeightIdMapHandler")) { + edm::LogInfo("EcalTPGOddWeightIdMapHandler") << "EcalTPGOddWeightIdMap Source handler constructor"; + m_firstRun = static_cast(atoi(ps.getParameter("firstRun").c_str())); + m_lastRun = static_cast(atoi(ps.getParameter("lastRun").c_str())); + m_sid = ps.getParameter("OnlineDBSID"); + m_user = ps.getParameter("OnlineDBUser"); + m_pass = ps.getParameter("OnlineDBPassword"); + m_locationsource = ps.getParameter("LocationSource"); + m_location = ps.getParameter("Location"); + m_gentag = ps.getParameter("GenTag"); + m_runtype = ps.getParameter("RunType"); + m_file_type = ps.getParameter("fileType"); // xml/txt + m_file_name = ps.getParameter("fileName"); + + edm::LogInfo("EcalTPGOddWeightIdMapHandler") << m_sid << "/" << m_user << "/" << m_location << "/" << m_gentag; +} + +popcon::EcalTPGOddWeightIdMapHandler::~EcalTPGOddWeightIdMapHandler() {} + +void popcon::EcalTPGOddWeightIdMapHandler::getNewObjects() { + if (m_file_type == "txt") { + readtxtFile(); + } else if (m_file_type == "xml") { + readxmlFile(); + } else { + edm::LogInfo("EcalTPGOddWeightIdMapHandler") << "Started GetNewObjects!!!"; + + //check whats already inside of database + if (tagInfo().size) { + //check whats already inside of database + std::cout << "got offlineInfo = " << std::endl; + std::cout << "tag name = " << tagInfo().name << std::endl; + std::cout << "size = " << tagInfo().size << std::endl; + } else { + std::cout << " First object for this tag " << std::endl; + } + + unsigned int max_since = 0; + max_since = static_cast(tagInfo().lastInterval.since); + edm::LogInfo("EcalTPGOddWeightIdMapHandler") << "max_since : " << max_since; + //Ref weightIdMap_db = lastPayload(); + + edm::LogInfo("EcalTPGOddWeightIdMapHandler") << "retrieved last payload "; + + // here we retrieve all the runs after the last from online DB + edm::LogInfo("EcalTPGOddWeightIdMapHandler") << "Retrieving run list from ONLINE DB ... "; + + edm::LogInfo("EcalTPGOddWeightIdMapHandler") << "Making connection..."; + econn = new EcalCondDBInterface(m_sid, m_user, m_pass); + edm::LogInfo("EcalTPGOddWeightIdMapHandler") << "Done."; + + if (!econn) { + std::cout << " connection parameters " << m_sid << "/" << m_user << std::endl; + // cerr << e.what() << std::endl; + throw cms::Exception("OMDS not available"); + } + + LocationDef my_locdef; + my_locdef.setLocation(m_location); + + RunTypeDef my_rundef; + my_rundef.setRunType(m_runtype); + + RunTag my_runtag; + my_runtag.setLocationDef(my_locdef); + my_runtag.setRunTypeDef(my_rundef); + my_runtag.setGeneralTag(m_gentag); + + readFromFile("last_tpg_OddweightIdMap_settings.txt"); + + unsigned int min_run = m_i_run_number + 1; + + if (m_firstRun < m_i_run_number) { + min_run = m_i_run_number + 1; + } else { + min_run = m_firstRun; + } + + if (min_run < max_since) { + min_run = max_since + 1; // we have to add 1 to the last transferred one + } + + std::cout << "m_i_run_number" << m_i_run_number << "m_firstRun " << m_firstRun << "max_since " << max_since + << std::endl; + + unsigned int max_run = m_lastRun; + edm::LogInfo("EcalTPGOddWeightIdMapHandler") << "min_run= " << min_run << "max_run= " << max_run; + + RunList my_list; + my_list = econn->fetchGlobalRunListByLocation(my_runtag, min_run, max_run, my_locdef); + // my_list=econn->fetchRunListByLocation(my_runtag,min_run,max_run,my_locdef); + + std::vector run_vec = my_list.getRuns(); + size_t num_runs = run_vec.size(); + edm::LogInfo("EcalTPGOddWeightIdMapHandler") << "number of Mon runs is : " << num_runs; + + unsigned int irun; + if (num_runs > 0) { + for (size_t kr = 0; kr < run_vec.size(); kr++) { + irun = static_cast(run_vec[kr].getRunNumber()); + + std::cout << " **************** " << std::endl; + std::cout << " **************** " << std::endl; + std::cout << " run= " << irun << std::endl; + + // retrieve the data : + std::map dataset; + econn->fetchDataSet(&dataset, &run_vec[kr]); + + std::string the_config_tag = ""; + int the_config_version = 0; + + std::map::const_iterator it; + + int nr = 0; + for (it = dataset.begin(); it != dataset.end(); it++) { + ++nr; + //EcalLogicID ecalid = it->first; + RunTPGConfigDat dat = it->second; + the_config_tag = dat.getConfigTag(); + the_config_version = dat.getVersion(); + } + + // it is all the same for all SM... get the last one + + std::cout << " run= " << irun << " tag " << the_config_tag << " version=" << the_config_version << std::endl; + + // here we should check if it is the same as previous run. + + if ((the_config_tag != m_i_tag || the_config_version != m_i_version) && nr > 0) { + std::cout << "the tag is different from last transferred run ... retrieving last config set from DB" + << std::endl; + + FEConfigMainInfo fe_main_info; + fe_main_info.setConfigTag(the_config_tag); + fe_main_info.setVersion(the_config_version); + + try { + std::cout << " before fetch config set" << std::endl; + econn->fetchConfigSet(&fe_main_info); + std::cout << " after fetch config set" << std::endl; + + // now get TPGOddWeightIdMap + int weightId = fe_main_info.getWei2Id(); + + if (weightId != m_i_oddweightIdMap) { + FEConfigOddWeightInfo fe_odd_weight_info; + fe_odd_weight_info.setId(weightId); + econn->fetchConfigSet(&fe_odd_weight_info); + std::map dataset_TpgWeight; + econn->fetchDataSet(&dataset_TpgWeight, &fe_odd_weight_info); + edm::LogInfo("EcalTPGOddWeightIdMapHandler") << "Got object!"; + EcalTPGOddWeightIdMap* weightMap = new EcalTPGOddWeightIdMap; + typedef std::map::const_iterator CIfeweight; + EcalLogicID ecid_xt; + FEConfigOddWeightGroupDat rd_w; + + int igroups = 0; + for (CIfeweight p = dataset_TpgWeight.begin(); p != dataset_TpgWeight.end(); p++) { + rd_w = p->second; + // EB and EE data + EcalTPGWeights w; + unsigned int weight0 = static_cast(rd_w.getWeight4()); + unsigned int weight1 = static_cast(rd_w.getWeight3()); + unsigned int weight2 = static_cast(rd_w.getWeight2()); + unsigned int weight3 = static_cast(rd_w.getWeight1() - 0x80); + unsigned int weight4 = static_cast(rd_w.getWeight0()); + + w.setValues(weight0, weight1, weight2, weight3, weight4); + weightMap->setValue(rd_w.getWeightGroupId(), w); + + ++igroups; + } + + edm::LogInfo("EcalTPGOddWeightIdMapHandler") << "found " << igroups << "Weight groups"; + + Time_t snc = (Time_t)irun; + m_to_transfer.push_back(std::make_pair((EcalTPGOddWeightIdMap*)weightMap, snc)); + + m_i_run_number = irun; + m_i_tag = the_config_tag; + m_i_version = the_config_version; + m_i_oddweightIdMap = weightId; + + writeFile("last_tpg_OddweightIdMap_settings.txt"); + + } else { + m_i_run_number = irun; + m_i_tag = the_config_tag; + m_i_version = the_config_version; + + writeFile("last_tpg_OddweightIdMap_settings.txt"); + + std::cout + << " even if the tag/version is not the same, the weightIdMap id is the same -> no transfer needed " + << std::endl; + } + + } catch (std::exception& e) { + std::cout << "ERROR: THIS CONFIG DOES NOT EXIST: tag=" << the_config_tag + << " version=" << the_config_version << std::endl; + std::cout << e.what() << std::endl; + m_i_run_number = irun; + } + std::cout << " **************** " << std::endl; + + } else if (nr == 0) { + m_i_run_number = irun; + std::cout << " no tag saved to RUN_TPGCONFIG_DAT by EcalSupervisor -> no transfer needed " << std::endl; + std::cout << " **************** " << std::endl; + } else { + m_i_run_number = irun; + m_i_tag = the_config_tag; + m_i_version = the_config_version; + std::cout << " the tag/version is the same -> no transfer needed " << std::endl; + std::cout << " **************** " << std::endl; + writeFile("last_tpg_OddweightIdMap_settings.txt"); + } + } + } + + delete econn; + } // usual way + edm::LogInfo("EcalTPGOddWeightIdMapHandler") << "Ecal - > end of getNewObjects -----------"; +} +void popcon::EcalTPGOddWeightIdMapHandler::readtxtFile() { + std::cout << " reading the input file " << m_file_name << std::endl; + std::ifstream fInput; + fInput.open(m_file_name); + if (!fInput.is_open()) { + std::cout << "ERROR : cannot open file " << m_file_name << std::endl; + exit(1); + } + unsigned int wloc[5]; + EcalTPGWeights w; + EcalTPGOddWeightIdMap* weightMap = new EcalTPGOddWeightIdMap; + int igroups = 0; + std::string line; + while (!fInput.eof()) { + getline(fInput, line); + if (!line.empty()) { + std::stringstream ss; + ss << line; + ss >> wloc[0] >> wloc[1] >> wloc[2] >> wloc[3] >> wloc[4]; + // std::cout << wloc[0] << " " << wloc[1] << " " << wloc[2] << " " << wloc[3] << " " << wloc[4] << std::endl; + w.setValues(wloc[0], wloc[1], wloc[2], wloc[3], wloc[4]); + weightMap->setValue(igroups, w); + igroups++; + } + } + edm::LogInfo("EcalTPGOddWeightIdMapHandler") << "found " << igroups << " Weight groups"; + try { + Time_t snc = (Time_t)m_firstRun; + m_to_transfer.push_back(std::make_pair((EcalTPGOddWeightIdMap*)weightMap, snc)); + } catch (std::exception& e) { + std::cout << "EcalTPGOddWeightIdMapHandler::readtxtFile error : " << e.what() << std::endl; + } + std::cout << " **************** " << std::endl; +} + +void popcon::EcalTPGOddWeightIdMapHandler::readxmlFile() { + std::cout << " reading the input file " << m_file_name << std::endl; + std::ifstream fxml; + fxml.open(m_file_name); + if (!fxml.is_open()) { + std::cout << "ERROR : cannot open file " << m_file_name << std::endl; + exit(1); + } + std::string dummyLine, bid; + unsigned int wloc[5]; + EcalTPGWeights w; + EcalTPGOddWeightIdMap* weightMap = new EcalTPGOddWeightIdMap; + int ngroups, igroups; + for (int i = 0; i < 5; i++) + std::getline(fxml, dummyLine); // skip first lines + // get the Weight group number + fxml >> bid; + std::string stt = bid.substr(7, 1); + std::istringstream sc(stt); + sc >> ngroups; + edm::LogInfo("EcalTPGOddWeightIdMapHandler") << "found " << ngroups << " Weight groups"; + for (int i = 0; i < 2; i++) + std::getline(fxml, dummyLine); // 0 + // std::cout << dummyLine << std::endl; + for (int i = 0; i < ngroups; i++) { + std::getline(fxml, dummyLine); // > bid; // > igroups; + if (igroups != i) { + std::cout << " group " << i << ": " << bid << " igroups " << igroups << std::endl; + exit(-1); + } + for (int i = 0; i < 2; i++) + std::getline(fxml, dummyLine); // < second + for (int i = 0; i < 5; i++) { + fxml >> bid; + found = bid.find("> wloc[i]; + } + w.setValues(wloc[0], wloc[1], wloc[2], wloc[3], wloc[4]); + weightMap->setValue(igroups, w); + for (int i = 0; i < 3; i++) + std::getline(fxml, dummyLine); // + // std::cout << " group " << i << " last line " << dummyLine << std::endl; + } + try { + Time_t snc = (Time_t)m_firstRun; + m_to_transfer.push_back(std::make_pair((EcalTPGOddWeightIdMap*)weightMap, snc)); + } catch (std::exception& e) { + std::cout << "EcalTPGOddWeightIdMapHandler::readxmlFile error : " << e.what() << std::endl; + } + std::cout << " **************** " << std::endl; +} + +void popcon::EcalTPGOddWeightIdMapHandler::readFromFile(const char* inputFile) { + //------------------------------------------------------------- + + m_i_tag = ""; + m_i_version = 0; + m_i_run_number = 0; + m_i_oddweightIdMap = 0; + + FILE* inpFile; // input file + inpFile = fopen(inputFile, "r"); + if (!inpFile) { + edm::LogError("EcalTPGOddWeightIdMapHandler") << "*** Can not open file: " << inputFile; + return; + } + + char line[256]; + + std::ostringstream str; + + fgets(line, 255, inpFile); + m_i_tag = to_string(line); + str << "gen tag " << m_i_tag << std::endl; // should I use this? + + fgets(line, 255, inpFile); + m_i_version = atoi(line); + str << "version= " << m_i_version << std::endl; + + fgets(line, 255, inpFile); + m_i_run_number = atoi(line); + str << "run_number= " << m_i_run_number << std::endl; + + fgets(line, 255, inpFile); + m_i_oddweightIdMap = atoi(line); + str << "weightIdMap_config= " << m_i_oddweightIdMap << std::endl; + + fclose(inpFile); // close inp. file +} + +void popcon::EcalTPGOddWeightIdMapHandler::writeFile(const char* inputFile) { + //------------------------------------------------------------- + + std::ofstream myfile; + myfile.open(inputFile); + myfile << m_i_tag << std::endl; + myfile << m_i_version << std::endl; + myfile << m_i_run_number << std::endl; + myfile << m_i_oddweightIdMap << std::endl; + + myfile.close(); +} diff --git a/CondTools/Ecal/src/EcalTPGTPModeHandler.cc b/CondTools/Ecal/src/EcalTPGTPModeHandler.cc new file mode 100644 index 0000000000000..869f6aa6ec1e9 --- /dev/null +++ b/CondTools/Ecal/src/EcalTPGTPModeHandler.cc @@ -0,0 +1,388 @@ +#include "CondTools/Ecal/interface/EcalLaserHandler.h" + +#include "CondTools/Ecal/interface/EcalTPGTPModeHandler.h" +#include "OnlineDB/EcalCondDB/interface/EcalLogicID.h" +#include "OnlineDB/EcalCondDB/interface/RunTPGConfigDat.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigMainInfo.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigSlidingInfo.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigSlidingDat.h" +#include "FWCore/ParameterSet/interface/ParameterSetfwd.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" + +#include "FWCore/Framework/interface/eventsetuprecord_registration_macro.h" + +#include +#include +#include + +#include +#include + +#include +#include +#include +#include + +popcon::EcalTPGTPModeHandler::EcalTPGTPModeHandler(const edm::ParameterSet& ps) + : m_name(ps.getUntrackedParameter("name", "EcalTPGTPModeHandler")) { + edm::LogInfo("EcalTPGTPModeHandler") << "Ecal TPG TPMode Source handler constructor."; + m_firstRun = static_cast(atoi(ps.getParameter("firstRun").c_str())); + m_lastRun = static_cast(atoi(ps.getParameter("lastRun").c_str())); + m_sid = ps.getParameter("OnlineDBSID"); + m_user = ps.getParameter("OnlineDBUser"); + m_pass = ps.getParameter("OnlineDBPassword"); + m_locationsource = ps.getParameter("LocationSource"); + m_location = ps.getParameter("Location"); + m_gentag = ps.getParameter("GenTag"); + m_runtype = ps.getParameter("RunType"); + m_file_type = ps.getParameter("fileType"); // xml/txt + m_file_name = ps.getParameter("fileName"); + + edm::LogInfo("EcalTPGTPModeHandler") << m_sid << "/" << m_user << "/" << m_location << "/" << m_gentag; +} + +popcon::EcalTPGTPModeHandler::~EcalTPGTPModeHandler() {} + +void popcon::EcalTPGTPModeHandler::getNewObjects() { + if (m_file_type == "txt") { + readtxtFile(); + } + // else if(m_file_type == "xml") { + // readxmlFile(); + // } + else { + edm::LogInfo("EcalTPGTPModeHandler") << "Started GetNewObjects!!!"; + + //check whats already inside of database + if (tagInfo().size) { + //check whats already inside of database + std::cout << "got offlineInfo = " << std::endl; + std::cout << "tag name = " << tagInfo().name << std::endl; + std::cout << "size = " << tagInfo().size << std::endl; + } else { + std::cout << " First object for this tag " << std::endl; + } + + unsigned int max_since = 0; + max_since = static_cast(tagInfo().lastInterval.since); + edm::LogInfo("EcalTPGTPModeHandler") << "max_since : " << max_since; + + edm::LogInfo("EcalTPGTPModeHandler") << "retrieved last payload "; + + // here we retrieve all the runs after the last from online DB + + edm::LogInfo("EcalTPGTPModeHandler") << "Retrieving run list from ONLINE DB ... "; + + edm::LogInfo("EcalTPGTPModeHandler") << "Making connection..."; + econn = new EcalCondDBInterface(m_sid, m_user, m_pass); + edm::LogInfo("EcalTPGTPModeHandler") << "Done."; + + if (!econn) { + std::cout << " connection parameters " << m_sid << "/" << m_user << std::endl; + // cerr << e.what() << std::endl; + throw cms::Exception("OMDS not available"); + } + + LocationDef my_locdef; + my_locdef.setLocation(m_location); + + RunTypeDef my_rundef; + my_rundef.setRunType(m_runtype); + + RunTag my_runtag; + my_runtag.setLocationDef(my_locdef); + my_runtag.setRunTypeDef(my_rundef); + my_runtag.setGeneralTag(m_gentag); + + readFromFile("last_tpg_TPMode_settings.txt"); + + unsigned int min_run = m_i_run_number + 1; + + if (m_firstRun < m_i_run_number) { + min_run = m_i_run_number + 1; + } else { + min_run = m_firstRun; + } + + if (min_run < max_since) { + min_run = max_since + 1; // we have to add 1 to the last transferred one + } + + std::cout << "m_i_run_number" << m_i_run_number << "m_firstRun " << m_firstRun << "max_since " << max_since + << std::endl; + + unsigned int max_run = m_lastRun; + edm::LogInfo("EcalTPGTPModeHandler") << "min_run= " << min_run << " max_run= " << max_run; + + RunList my_list; + my_list = econn->fetchGlobalRunListByLocation(my_runtag, min_run, max_run, my_locdef); + // my_list=econn->fetchRunListByLocation(my_runtag,min_run,max_run,my_locdef); + + std::vector run_vec = my_list.getRuns(); + size_t num_runs = run_vec.size(); + + std::cout << "number of runs is : " << num_runs << std::endl; + + unsigned int irun = 0; + if (num_runs > 0) { + for (size_t kr = 0; kr < run_vec.size(); kr++) { + irun = static_cast(run_vec[kr].getRunNumber()); + + std::cout << " **************** " << std::endl; + std::cout << " **************** " << std::endl; + std::cout << " run= " << irun << std::endl; + + // retrieve the data : + std::map dataset; + econn->fetchDataSet(&dataset, &run_vec[kr]); + + std::string the_config_tag = ""; + int the_config_version = 0; + + std::map::const_iterator it; + + int nr = 0; + for (it = dataset.begin(); it != dataset.end(); it++) { + ++nr; + EcalLogicID ecalid = it->first; + RunTPGConfigDat dat = it->second; + the_config_tag = dat.getConfigTag(); + the_config_version = dat.getVersion(); + } + + // it is all the same for all SM... get the last one + + std::cout << " run= " << irun << " tag " << the_config_tag << " version=" << the_config_version << std::endl; + + // here we should check if it is the same as previous run. + + if ((the_config_tag != m_i_tag || the_config_version != m_i_version) && nr > 0) { + std::cout << "the tag is different from last transferred run ... retrieving last config set from DB" + << std::endl; + + FEConfigMainInfo fe_main_info; + fe_main_info.setConfigTag(the_config_tag); + fe_main_info.setVersion(the_config_version); + + try { + std::cout << " before fetch config set" << std::endl; + econn->fetchConfigSet(&fe_main_info); + std::cout << " after fetch config set" << std::endl; + + // now get TPGTPMode + int wId = fe_main_info.getWei2Id(); + if (wId != m_i_TPMode) { + FEConfigOddWeightInfo fe_odd_weight_info; + fe_odd_weight_info.setId(wId); + econn->fetchConfigSet(&fe_odd_weight_info); + std::map dataset_mode; + econn->fetchDataSet(&dataset_mode, &fe_odd_weight_info); + + typedef std::map::const_iterator CIfem; + FEConfigOddWeightModeDat rd_mode; + + int rd_modev[19] = {0}; + int k = 0; + for (CIfem p = dataset_mode.begin(); p != dataset_mode.end(); p++) { + rd_mode = p->second; + rd_modev[0] = rd_mode.getEnableEBOddFilter(); + rd_modev[1] = rd_mode.getEnableEEOddFilter(); + rd_modev[2] = rd_mode.getEnableEBOddPeakFinder(); + rd_modev[3] = rd_mode.getEnableEEOddPeakFinder(); + rd_modev[4] = rd_mode.getDisableEBEvenPeakFinder(); + rd_modev[5] = rd_mode.getDisableEEEvenPeakFinder(); + rd_modev[6] = rd_mode.getFenixEBStripOutput(); + rd_modev[7] = rd_mode.getFenixEEStripOutput(); + rd_modev[8] = rd_mode.getFenixEBStripInfobit2(); + rd_modev[9] = rd_mode.getFenixEEStripInfobit2(); + rd_modev[10] = rd_mode.getFenixEBTcpOutput(); + rd_modev[11] = rd_mode.getFenixEBTcpInfobit1(); + rd_modev[12] = rd_mode.getFenixEETcpOutput(); + rd_modev[13] = rd_mode.getFenixEETcpInfobit1(); + // ... + std::cout << "here is the value for the weight mode: " << std::endl + << " EnableEBOddFilter:" << rd_modev[0] << std::endl + << " EnableEEOddFilter:" << rd_modev[1] << std::endl + << " EnableEBOddPeakFinder:" << rd_modev[2] << std::endl + << " EnableEEOddPeakFinder:" << rd_modev[3] << std::endl + << " DisableEBEvenPeakFinder:" << rd_modev[4] << std::endl + << " DisableEEEvenPeakFinder:" << rd_modev[5] << std::endl + << " FenixEBStripOutput:" << rd_modev[6] << std::endl + << " FenixEEStripOutput:" << rd_modev[7] << std::endl + << " FenixEBStripInfobit2:" << rd_modev[8] << std::endl + << " FenixEEStripInfobit2:" << rd_modev[9] << std::endl + << " FenixEBTcpOutput:" << rd_modev[10] << std::endl + << " FenixEBTcpinfobit1:" << rd_modev[11] << std::endl + << " FenixEETcpOutput:" << rd_modev[12] << std::endl + << " FenixEETcpinfobit1:" << rd_modev[13] << std::endl; + k = k + 1; + } + + std::cout << "*****************************************" << std::endl; + std::cout << "read done " << wId << std::endl; + std::cout << "*****************************************" << std::endl; + + EcalTPGTPMode* tpMode = new EcalTPGTPMode; + tpMode->EnableEBOddFilter = rd_modev[0]; + tpMode->EnableEEOddFilter = rd_modev[1]; + tpMode->EnableEBOddPeakFinder = rd_modev[2]; + tpMode->EnableEEOddPeakFinder = rd_modev[3]; + tpMode->DisableEBEvenPeakFinder = rd_modev[4]; + tpMode->DisableEEEvenPeakFinder = rd_modev[5]; + tpMode->FenixEBStripOutput = rd_modev[6]; + tpMode->FenixEEStripOutput = rd_modev[7]; + tpMode->FenixEBStripInfobit2 = rd_modev[8]; + tpMode->FenixEEStripInfobit2 = rd_modev[9]; + tpMode->EBFenixTcpOutput = rd_modev[10]; + tpMode->EBFenixTcpInfobit1 = rd_modev[11]; + tpMode->EEFenixTcpOutput = rd_modev[12]; + tpMode->EEFenixTcpInfobit1 = rd_modev[13]; + tpMode->FenixPar15 = 0; + tpMode->FenixPar16 = 0; + tpMode->FenixPar17 = 0; + tpMode->FenixPar18 = 0; + Time_t snc = (Time_t)irun; + m_to_transfer.push_back(std::make_pair((EcalTPGTPMode*)tpMode, snc)); + + m_i_run_number = irun; + m_i_tag = the_config_tag; + m_i_version = the_config_version; + m_i_TPMode = wId; + + writeFile("last_tpg_TPMode_settings.txt"); + + } else { + m_i_run_number = irun; + m_i_tag = the_config_tag; + m_i_version = the_config_version; + + writeFile("last_tpg_TPMode_settings.txt"); + + std::cout + << " even if the tag/version is not the same, the weight group id is the same -> no transfer needed " + << std::endl; + } + + } + + catch (std::exception& e) { + std::cout << "ERROR: THIS CONFIG DOES NOT EXIST: tag=" << the_config_tag + << " version=" << the_config_version << std::endl; + std::cout << e.what() << std::endl; + m_i_run_number = irun; + } + std::cout << " **************** " << std::endl; + + } else if (nr == 0) { + m_i_run_number = irun; + std::cout << " no tag saved to RUN_TPGCONFIG_DAT by EcalSupervisor -> no transfer needed " << std::endl; + std::cout << " **************** " << std::endl; + } else { + m_i_run_number = irun; + m_i_tag = the_config_tag; + m_i_version = the_config_version; + std::cout << " the tag/version is the same -> no transfer needed " << std::endl; + std::cout << " **************** " << std::endl; + writeFile("last_tpg_TPMode_settings.txt"); + } + } + } + + delete econn; + } // usual way + edm::LogInfo("EcalTPGTPModeHandler") << "Ecal - > end of getNewObjects -----------"; +} + +void popcon::EcalTPGTPModeHandler::readtxtFile() { + std::cout << " reading the input file " << m_file_name << std::endl; + std::ifstream fInput; + fInput.open(m_file_name); + if (!fInput.is_open()) { + std::cout << "ERROR : cannot open file " << m_file_name << std::endl; + exit(1); + } + std::map values; + EcalTPGTPMode* tpMode = new EcalTPGTPMode; + + std::string key; + int value; + while (fInput.good()) { + fInput >> key >> value; + values[key] = value; + } + + try { + tpMode->EnableEBOddFilter = values["EnableEBOddFilter"]; + tpMode->EnableEEOddFilter = values["EnableEEOddFilter"]; + tpMode->EnableEBOddPeakFinder = values["EnableEBOddPeakFinder"]; + tpMode->EnableEEOddPeakFinder = values["EnableEEOddPeakFinder"]; + tpMode->DisableEBEvenPeakFinder = values["DisableEBEvenPeakFinder"]; + tpMode->DisableEEEvenPeakFinder = values["DisableEEEvenPeakFinder"]; + tpMode->FenixEBStripOutput = values["FenixEBStripOutput"]; + tpMode->FenixEEStripOutput = values["FenixEEStripOutput"]; + tpMode->FenixEBStripInfobit2 = values["FenixEBStripInfobit2"]; + tpMode->FenixEEStripInfobit2 = values["FenixEEStripInfobit2"]; + tpMode->EBFenixTcpOutput = values["EBFenixTcpOutput"]; + tpMode->EBFenixTcpInfobit1 = values["EBFenixTcpInfobit1"]; + tpMode->EEFenixTcpOutput = values["EEFenixTcpOutput"]; + tpMode->EEFenixTcpInfobit1 = values["EEFenixTcpInfobit1"]; + + Time_t snc = (Time_t)m_firstRun; + m_to_transfer.push_back(std::make_pair((EcalTPGTPMode*)tpMode, snc)); + + } catch (std::exception& e) { + std::cout << "EcalTPGTPModeHandler::readtxtFile error : " << e.what() << std::endl; + } + std::cout << " **************** " << std::endl; +} + +void popcon::EcalTPGTPModeHandler::readFromFile(const char* inputFile) { + //------------------------------------------------------------- + + m_i_tag = ""; + m_i_version = 0; + m_i_run_number = 0; + m_i_TPMode = 0; + + FILE* inpFile; // input file + inpFile = fopen(inputFile, "r"); + if (!inpFile) { + edm::LogError("EcalTPGTPModeHandler") << "*** Can not open file: " << inputFile; + return; + } + + char line[256]; + + std::ostringstream str; + + fgets(line, 255, inpFile); + m_i_tag = to_string(line); + str << "gen tag " << m_i_tag << std::endl; // should I use this? + + fgets(line, 255, inpFile); + m_i_version = atoi(line); + str << "version= " << m_i_version << std::endl; + + fgets(line, 255, inpFile); + m_i_run_number = atoi(line); + str << "run_number= " << m_i_run_number << std::endl; + + fgets(line, 255, inpFile); + m_i_TPMode = atoi(line); + str << "TPMode_config= " << m_i_TPMode << std::endl; + + fclose(inpFile); // close inp. file +} + +void popcon::EcalTPGTPModeHandler::writeFile(const char* inputFile) { + //------------------------------------------------------------- + + std::ofstream myfile; + myfile.open(inputFile); + myfile << m_i_tag << std::endl; + myfile << m_i_version << std::endl; + myfile << m_i_run_number << std::endl; + myfile << m_i_TPMode << std::endl; + + myfile.close(); +} diff --git a/CondTools/Hcal/plugins/HcalDumpConditions.cc b/CondTools/Hcal/plugins/HcalDumpConditions.cc index d9bcbad238841..4061182459d49 100644 --- a/CondTools/Hcal/plugins/HcalDumpConditions.cc +++ b/CondTools/Hcal/plugins/HcalDumpConditions.cc @@ -42,6 +42,39 @@ namespace edmtest { mDumpRequest = p.getUntrackedParameter >("dump", std::vector()); m_toktopo = esConsumes(); m_tokdb = esConsumes(); + + tok_ElectronicsMap = esConsumes(); + tok_FrontEndMap = esConsumes(); + tok_QIEData = esConsumes(); + tok_QIETypes = esConsumes(); + tok_Pedestals = esConsumes(); + tok_PedestalWidths = esConsumes(); + tok_Pedestals_effective = esConsumes(edm::ESInputTag("", "effective")); + tok_PedestalWidths_effective = + esConsumes(edm::ESInputTag("", "effective")); + tok_Gains = esConsumes(); + tok_GainWidths = esConsumes(); + tok_ChannelQuality = esConsumes(); + tok_RespCorrs = esConsumes(); + tok_ZSThresholds = esConsumes(); + tok_L1TriggerObjects = esConsumes(); + tok_TimeCorrs = esConsumes(); + tok_LUTCorrs = esConsumes(); + tok_PFCorrs = esConsumes(); + tok_ValidationCorrs = esConsumes(); + tok_LutMetadata = esConsumes(); + tok_DcsValues = esConsumes(); + tok_DcsMap = esConsumes(); + tok_RecoParams = esConsumes(); + tok_TimingParams = esConsumes(); + tok_LongRecoParams = esConsumes(); + tok_ZDCLowGainFractions = esConsumes(); + tok_MCParams = esConsumes(); + tok_FlagHFDigiTimeParams = esConsumes(); + tok_SiPMParameters = esConsumes(); + tok_SiPMCharacteristics = esConsumes(); + tok_TPChannelParameters = esConsumes(); + tok_TPParameters = esConsumes(); } explicit HcalDumpConditions(int i) {} @@ -53,13 +86,14 @@ namespace edmtest { const edm::Event& e, const edm::EventSetup& context, const std::string name, - const HcalTopology* topo, - const std::string label = ""); + const edm::ESGetToken tok); template void dumpIt(const std::vector& mDumpRequest, const edm::Event& e, const edm::EventSetup& context, - const std::string name); + const std::string name, + const HcalTopology* topo, + const edm::ESGetToken tok); template void writeToFile(const S& myS, const edm::Event& e, const std::string name); @@ -68,6 +102,37 @@ namespace edmtest { std::vector mDumpRequest; edm::ESGetToken m_toktopo; edm::ESGetToken m_tokdb; + edm::ESGetToken tok_ElectronicsMap; + edm::ESGetToken tok_FrontEndMap; + edm::ESGetToken tok_QIEData; + edm::ESGetToken tok_QIETypes; + edm::ESGetToken tok_Pedestals; + edm::ESGetToken tok_PedestalWidths; + edm::ESGetToken tok_Pedestals_effective; + edm::ESGetToken tok_PedestalWidths_effective; + edm::ESGetToken tok_Gains; + edm::ESGetToken tok_GainWidths; + edm::ESGetToken tok_ChannelQuality; + edm::ESGetToken tok_RespCorrs; + edm::ESGetToken tok_ZSThresholds; + edm::ESGetToken tok_L1TriggerObjects; + edm::ESGetToken tok_TimeCorrs; + edm::ESGetToken tok_LUTCorrs; + edm::ESGetToken tok_PFCorrs; + edm::ESGetToken tok_ValidationCorrs; + edm::ESGetToken tok_LutMetadata; + edm::ESGetToken tok_DcsValues; + edm::ESGetToken tok_DcsMap; + edm::ESGetToken tok_RecoParams; + edm::ESGetToken tok_TimingParams; + edm::ESGetToken tok_LongRecoParams; + edm::ESGetToken tok_ZDCLowGainFractions; + edm::ESGetToken tok_MCParams; + edm::ESGetToken tok_FlagHFDigiTimeParams; + edm::ESGetToken tok_SiPMParameters; + edm::ESGetToken tok_SiPMCharacteristics; + edm::ESGetToken tok_TPChannelParameters; + edm::ESGetToken tok_TPParameters; }; template @@ -75,14 +140,9 @@ namespace edmtest { const edm::Event& e, const edm::EventSetup& context, const std::string name, - const HcalTopology* topo, - const std::string label) { + const edm::ESGetToken tok) { if (std::find(mDumpRequest.begin(), mDumpRequest.end(), name) != mDumpRequest.end()) { - edm::ESGetToken tok = - ((!label.empty()) ? esConsumes(edm::ESInputTag("", label)) : esConsumes()); - S myobject = context.getData(tok); - if (topo) - myobject.setTopo(topo); + const S& myobject = context.getData(tok); writeToFile(myobject, e, name); @@ -95,10 +155,13 @@ namespace edmtest { void HcalDumpConditions::dumpIt(const std::vector& mDumpRequest, const edm::Event& e, const edm::EventSetup& context, - const std::string name) { + const std::string name, + const HcalTopology* topo, + const edm::ESGetToken tok) { if (std::find(mDumpRequest.begin(), mDumpRequest.end(), name) != mDumpRequest.end()) { - edm::ESGetToken tok = esConsumes(); - const S& myobject = context.getData(tok); + S myobject = context.getData(tok); + if (topo) + myobject.setTopo(topo); writeToFile(myobject, e, name); @@ -127,52 +190,50 @@ namespace edmtest { return; // dumpIt called for all possible ValueMaps. The function checks if the dump is actually requested. - dumpIt(mDumpRequest, e, context, "ElectronicsMap"); - dumpIt(mDumpRequest, e, context, "FrontEndMap"); - dumpIt(mDumpRequest, e, context, "QIEData", topo); - dumpIt(mDumpRequest, e, context, "QIETypes", topo); - dumpIt(mDumpRequest, e, context, "Pedestals", topo); - dumpIt(mDumpRequest, e, context, "PedestalWidths", topo); - dumpIt(mDumpRequest, e, context, "EffectivePedestals", topo, "effective"); + + dumpIt(mDumpRequest, e, context, "ElectronicsMap", tok_ElectronicsMap); + dumpIt(mDumpRequest, e, context, "FrontEndMap", tok_FrontEndMap); + dumpIt(mDumpRequest, e, context, "QIEData", topo, tok_QIEData); + dumpIt(mDumpRequest, e, context, "QIETypes", topo, tok_QIETypes); + dumpIt(mDumpRequest, e, context, "Pedestals", topo, tok_Pedestals); dumpIt( - mDumpRequest, e, context, "EffectivePedestalWidths", topo, "effective"); - dumpIt(mDumpRequest, e, context, "Gains", topo); - dumpIt(mDumpRequest, e, context, "GainWidths", topo); - dumpIt(mDumpRequest, e, context, "ChannelQuality", topo, "withTopo"); - dumpIt(mDumpRequest, e, context, "RespCorrs", topo); - dumpIt(mDumpRequest, e, context, "ZSThresholds", topo); - dumpIt(mDumpRequest, e, context, "L1TriggerObjects", topo); - dumpIt(mDumpRequest, e, context, "TimeCorrs", topo); - dumpIt(mDumpRequest, e, context, "LUTCorrs", topo); - dumpIt(mDumpRequest, e, context, "PFCorrs", topo); - dumpIt(mDumpRequest, e, context, "ValidationCorrs", topo); - dumpIt(mDumpRequest, e, context, "LutMetadata", topo); - dumpIt(mDumpRequest, e, context, "DcsValues"); - dumpIt(mDumpRequest, e, context, "DcsMap"); - dumpIt(mDumpRequest, e, context, "RecoParams", topo); - dumpIt(mDumpRequest, e, context, "TimingParams", topo); - dumpIt(mDumpRequest, e, context, "LongRecoParams", topo); - dumpIt(mDumpRequest, e, context, "ZDCLowGainFractions", topo); - dumpIt(mDumpRequest, e, context, "MCParams", topo); + mDumpRequest, e, context, "PedestalWidths", topo, tok_PedestalWidths); + dumpIt( + mDumpRequest, e, context, "EffectivePedestals", topo, tok_Pedestals_effective); + dumpIt( + mDumpRequest, e, context, "EffectivePedestalWidths", topo, tok_PedestalWidths_effective); + dumpIt(mDumpRequest, e, context, "Gains", topo, tok_Gains); + dumpIt(mDumpRequest, e, context, "GainWidths", topo, tok_GainWidths); + dumpIt( + mDumpRequest, e, context, "ChannelQuality", topo, tok_ChannelQuality); + dumpIt(mDumpRequest, e, context, "RespCorrs", topo, tok_RespCorrs); + dumpIt(mDumpRequest, e, context, "ZSThresholds", topo, tok_ZSThresholds); + dumpIt( + mDumpRequest, e, context, "L1TriggerObjects", topo, tok_L1TriggerObjects); + dumpIt(mDumpRequest, e, context, "TimeCorrs", topo, tok_TimeCorrs); + dumpIt(mDumpRequest, e, context, "LUTCorrs", topo, tok_LUTCorrs); + dumpIt(mDumpRequest, e, context, "PFCorrs", topo, tok_PFCorrs); + dumpIt( + mDumpRequest, e, context, "ValidationCorrs", topo, tok_ValidationCorrs); + dumpIt(mDumpRequest, e, context, "LutMetadata", topo, tok_LutMetadata); + dumpIt(mDumpRequest, e, context, "DcsValues", tok_DcsValues); + dumpIt(mDumpRequest, e, context, "DcsMap", tok_DcsMap); + dumpIt(mDumpRequest, e, context, "RecoParams", topo, tok_RecoParams); + dumpIt(mDumpRequest, e, context, "TimingParams", topo, tok_TimingParams); + dumpIt( + mDumpRequest, e, context, "LongRecoParams", topo, tok_LongRecoParams); + dumpIt( + mDumpRequest, e, context, "ZDCLowGainFractions", topo, tok_ZDCLowGainFractions); + dumpIt(mDumpRequest, e, context, "MCParams", topo, tok_MCParams); dumpIt( - mDumpRequest, e, context, "FlagHFDigiTimeParams", topo); - dumpIt(mDumpRequest, e, context, "SiPMParameters", topo); - dumpIt(mDumpRequest, e, context, "SiPMCharacteristics"); - dumpIt(mDumpRequest, e, context, "TPChannelParameters", topo); - dumpIt(mDumpRequest, e, context, "TPParameters"); - - const HcalDbService* pSetup = &context.getData(m_tokdb); - if (std::find(mDumpRequest.begin(), mDumpRequest.end(), std::string("CalibrationsSet")) != mDumpRequest.end() || - std::find(mDumpRequest.begin(), mDumpRequest.end(), std::string("CalibrationWidthsSet")) != - mDumpRequest.end()) { - if (std::find(mDumpRequest.begin(), mDumpRequest.end(), std::string("CalibrationsSet")) != mDumpRequest.end()) { - writeToFile(*(pSetup->getHcalCalibrationsSet()), e, "CalibrationsSet"); - } - if (std::find(mDumpRequest.begin(), mDumpRequest.end(), std::string("CalibrationWidthsSet")) != - mDumpRequest.end()) { - writeToFile(*pSetup->getHcalCalibrationWidthsSet(), e, "CalibrationWidthsSet"); - } - } + mDumpRequest, e, context, "FlagHFDigiTimeParams", topo, tok_FlagHFDigiTimeParams); + dumpIt( + mDumpRequest, e, context, "SiPMParameters", topo, tok_SiPMParameters); + dumpIt( + mDumpRequest, e, context, "SiPMCharacteristics", tok_SiPMCharacteristics); + dumpIt( + mDumpRequest, e, context, "TPChannelParameters", topo, tok_TPChannelParameters); + dumpIt(mDumpRequest, e, context, "TPParameters", tok_TPParameters); } DEFINE_FWK_MODULE(HcalDumpConditions); } // namespace edmtest diff --git a/CondTools/Hcal/test/makeDump_Run3.csh b/CondTools/Hcal/test/makeDump_Run3.csh new file mode 100755 index 0000000000000..912e26221184e --- /dev/null +++ b/CondTools/Hcal/test/makeDump_Run3.csh @@ -0,0 +1,55 @@ +#!/bin/csh +cmsenv + +if ("$4" == "test") then + echo "connectstring = sqlite_file:test.db" + set connectstring = sqlite_file:test.db +else if ( $#argv == 3 ) then + echo "connectstring = frontier://FrontierProd/CMS_CONDITIONS" + set connectstring = frontier://FrontierProd/CMS_CONDITIONS +else + echo "connectstring = $4" + set connectstring = $4 +endif + +cat >! temp_dump_cfg.py <<% + +# Usage example: +# ./makeDump_Run3.csh ElectronicsMap HcalElectronicsMap_v9.0_hlt 309055 frontier://FrontierProd/CMS_CONDITIONS +import FWCore.ParameterSet.Config as cms +from Configuration.StandardSequences.Eras import eras +process = cms.Process("DUMP",eras.Run3) + +process.load("Configuration.Geometry.GeometryExtended2021_cff") +process.load("Configuration.Geometry.GeometryExtended2021Reco_cff") + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(1) +) + +process.source = cms.Source("EmptySource", + numberEventsInRun = cms.untracked.uint32(1), + firstRun = cms.untracked.uint32($3) +) + +process.load("CondCore.CondDB.CondDB_cfi") +process.CondDB.connect = '$connectstring' + +process.PoolDBESSource = cms.ESSource("PoolDBESSource", + process.CondDB, + toGet = cms.VPSet(cms.PSet(record = cms.string("Hcal$1Rcd"), + tag = cms.string("$2") + ) + ) +) + +process.dumpcond = cms.EDAnalyzer("HcalDumpConditions", + dump = cms.untracked.vstring("$1") + ) + +process.p = cms.Path(process.dumpcond) + +% +cmsRun temp_dump_cfg.py +rm temp_dump_cfg.py + diff --git a/CondTools/Hcal/test/runDumpHcalCond_cfg.py b/CondTools/Hcal/test/runDumpHcalCond_cfg.py index ad691ce9a3831..3a7bc2575f458 100644 --- a/CondTools/Hcal/test/runDumpHcalCond_cfg.py +++ b/CondTools/Hcal/test/runDumpHcalCond_cfg.py @@ -79,7 +79,7 @@ from Configuration.StandardSequences.Eras import eras process = cms.Process("DUMP",getattr(eras,options.era)) -process.load("CondCore.DBCommon.CondDBSetup_cfi") +process.load("CondCore.CondDB.CondDB_cfi") process.load('Configuration.StandardSequences.Services_cff') if options.globaltag: diff --git a/Configuration/AlCa/python/autoCond.py b/Configuration/AlCa/python/autoCond.py index 1858744627cd8..5fba69d26aff0 100644 --- a/Configuration/AlCa/python/autoCond.py +++ b/Configuration/AlCa/python/autoCond.py @@ -25,29 +25,22 @@ 'run2_mc_hi' : '113X_mcRun2_HeavyIon_v3', # GlobalTag for MC production (p-Pb collisions) with realistic alignment and calibrations for Run2 'run2_mc_pa' : '113X_mcRun2_pA_v3', - # GlobalTag for Run1 data reprocessing - 'run1_data' : '113X_dataRun2_v4', # GlobalTag for Run2 data reprocessing - 'run2_data' : '113X_dataRun2_v4', + 'run2_data' : '113X_dataRun2_v5', # GlobalTag for Run2 data 2018B relvals only: HEM-15-16 fail - 'run2_data_HEfail' : '113X_dataRun2_HEfail_v4', + 'run2_data_HEfail' : '113X_dataRun2_HEfail_v5', # GlobalTag for Run2 data relvals: allows customization to run with fixed L1 menu - 'run2_data_relval' : '113X_dataRun2_relval_v4', + 'run2_data_relval' : '113X_dataRun2_relval_v5', # GlobalTag for Run2 HI data - 'run2_data_promptlike_hi' : '113X_dataRun2_PromptLike_HI_v4', - # GlobalTag for Run1 HLT: it points to the online GT - 'run1_hlt' : '101X_dataRun2_HLT_frozen_v11', - # GlobalTag for Run2 HLT: it points to the online GT - 'run2_hlt' : '101X_dataRun2_HLT_frozen_v11', - # GlobalTag for Run2 HLT RelVals: customizations to run with fixed L1 Menu - 'run2_hlt_relval' : '112X_dataRun2_HLT_relval_v4', - 'run2_hlt_relval_hi' : '112X_dataRun2_HLT_relval_HI_v3', - # GlobalTag for Run2 HLT for HI (not 2018 HI): it points to the online GT - 'run2_hlt_hi' : '101X_dataRun2_HLTHI_frozen_v11', + 'run2_data_promptlike_hi' : '113X_dataRun2_PromptLike_HI_v5', + # GlobalTag for Run3 HLT: it points to the online GT + 'run3_hlt' : '112X_dataRun3_HLT_v3', + # GlobalTag with fixed snapshot time for Run2 HLT RelVals: customizations to run with fixed L1 Menu + 'run2_hlt_relval' : '112X_dataRun2_HLT_relval_v6', # GlobalTag for Run3 data relvals (express GT) - 'run3_data_express' : '112X_dataRun3_Express_v3', + 'run3_data_express' : '112X_dataRun3_Express_v5', # GlobalTag for Run3 data relvals - 'run3_data_promptlike' : '112X_dataRun3_Prompt_v3', + 'run3_data_prompt' : '112X_dataRun3_Prompt_v5', # GlobalTag for MC production with perfectly aligned and calibrated detector for Phase1 2017 (and 0,0,~0-centred beamspot) 'phase1_2017_design' : '113X_mc2017_design_v4', # GlobalTag for MC production with realistic conditions for Phase1 2017 detector @@ -71,17 +64,17 @@ # GlobalTag for MC production (cosmics) with realistic conditions for full Phase1 2018 detector, Strip tracker in PEAK mode 'phase1_2018_cosmics_peak' : '113X_upgrade2018cosmics_realistic_peak_v4', # GlobalTag for MC production with perfectly aligned and calibrated detector for Phase1 2021 - 'phase1_2021_design' : '113X_mcRun3_2021_design_v5', # GT containing design conditions for Phase1 2021 + 'phase1_2021_design' : '113X_mcRun3_2021_design_v7', # GT containing design conditions for Phase1 2021 # GlobalTag for MC production with realistic conditions for Phase1 2021 - 'phase1_2021_realistic' : '113X_mcRun3_2021_realistic_v7', # GT containing realistic conditions for Phase1 2021 + 'phase1_2021_realistic' : '113X_mcRun3_2021_realistic_v9', # GT containing realistic conditions for Phase1 2021 # GlobalTag for MC production (cosmics) with realistic conditions for Phase1 2021, Strip tracker in DECO mode - 'phase1_2021_cosmics' : '113X_mcRun3_2021cosmics_realistic_deco_v6', + 'phase1_2021_cosmics' : '113X_mcRun3_2021cosmics_realistic_deco_v8', # GlobalTag for MC production with realistic conditions for Phase1 2021 detector for Heavy Ion - 'phase1_2021_realistic_hi' : '113X_mcRun3_2021_realistic_HI_v5', + 'phase1_2021_realistic_hi' : '113X_mcRun3_2021_realistic_HI_v7', # GlobalTag for MC production with realistic conditions for Phase1 2023 - 'phase1_2023_realistic' : '113X_mcRun3_2023_realistic_v5', # GT containing realistic conditions for Phase1 2023 + 'phase1_2023_realistic' : '113X_mcRun3_2023_realistic_v7', # GT containing realistic conditions for Phase1 2023 # GlobalTag for MC production with realistic conditions for Phase1 2024 - 'phase1_2024_realistic' : '113X_mcRun3_2024_realistic_v5', # GT containing realistic conditions for Phase1 2024 + 'phase1_2024_realistic' : '113X_mcRun3_2024_realistic_v7', # GT containing realistic conditions for Phase1 2024 # GlobalTag for MC production with realistic conditions for Phase2 'phase2_realistic' : '113X_mcRun4_realistic_v6' } @@ -91,6 +84,12 @@ 'BASEGT' : 'BASE1_V1|BASE2_V1' } +### Run 1 data GTs ### + # GlobalTag with fixed snapshot time for Run1 HLT RelVals: customizations to run with fixed L1 Menu +autoCond['run1_hlt_relval'] = autoCond['run2_hlt_relval'] + # GlobalTag for Run1 data reprocessing +autoCond['run1_data'] = autoCond['run2_data'] + # dedicated GlobalTags for HLT from Configuration.HLT.autoCondHLT import autoCondHLT autoCond = autoCondHLT(autoCond) @@ -103,6 +102,10 @@ from Configuration.AlCa.autoCondModifiers import autoCond0T autoCond = autoCond0T(autoCond) +# special GT for 2015 HLT HI run +from Configuration.AlCa.autoCondModifiers import autoCondHLTHI +autoCond = autoCondHLTHI(autoCond) + ### OLD KEYS ### kept for backward compatibility # GlobalTag for MC production with perfectly aligned and calibrated detector autoCond['mc'] = ( autoCond['run1_design'] ) @@ -115,7 +118,7 @@ # GlobalTag for data reprocessing autoCond['com10'] = ( autoCond['run1_data'] ) # GlobalTag for running HLT on recent data: it points to the online GT (remove the snapshot!) -autoCond['hltonline'] = ( autoCond['run1_hlt'] ) +autoCond['hltonline'] = ( autoCond['run3_hlt'] ) # GlobalTag for POSTLS1 upgrade studies: autoCond['upgradePLS1'] = ( autoCond['run2_mc'] ) autoCond['upgradePLS150ns'] = ( autoCond['run2_mc_50ns'] ) diff --git a/Configuration/AlCa/python/autoCondModifiers.py b/Configuration/AlCa/python/autoCondModifiers.py index 19acc692f9f25..2c6254be7e587 100644 --- a/Configuration/AlCa/python/autoCondModifiers.py +++ b/Configuration/AlCa/python/autoCondModifiers.py @@ -11,8 +11,23 @@ def autoCond0T(autoCond): ConditionsFor0T = ','.join( ['RunInfo_0T_v1_mc', "RunInfoRcd", connectionString, "", "2020-07-01 12:00:00.000"] ) GlobalTags0T = {} for key,val in six.iteritems(autoCond): - if "phase" in key: # restric to phase1 upgrade GTs + if "phase" in key: # restrict to phase1 upgrade GTs GlobalTags0T[key+"_0T"] = (autoCond[key], ConditionsFor0T) autoCond.update(GlobalTags0T) return autoCond + +def autoCondHLTHI(autoCond): + + GlobalTagsHLTHI = {} + + # emulate hybrid ZeroSuppression on the VirginRaw data of 2015 + FullPedestalsForHLTHI = ','.join( ['SiStripFullPedestals_GR10_v1_hlt', "SiStripPedestalsRcd", connectionString, "", "2021-03-11 12:00:00.000"] ) + MenuForHLTHI = ','.join( ['L1Menu_CollisionsHeavyIons2015_v5_uGT_xml', "L1TUtmTriggerMenuRcd", connectionString, "", "2021-03-11 12:00:00.000"] ) + + for key,val in six.iteritems(autoCond): + if key == 'run2_hlt_relval': # modification of HLT relval GT + GlobalTagsHLTHI['run2_hlt_hi'] = (autoCond[key], FullPedestalsForHLTHI, MenuForHLTHI) + + autoCond.update(GlobalTagsHLTHI) + return autoCond diff --git a/Configuration/DataProcessing/python/RecoTLR.py b/Configuration/DataProcessing/python/RecoTLR.py index 5c606690085f0..fda3a2ae70d58 100644 --- a/Configuration/DataProcessing/python/RecoTLR.py +++ b/Configuration/DataProcessing/python/RecoTLR.py @@ -9,17 +9,6 @@ def _swapOfflineBSwithOnline(process): process.offlineBeamSpot = onlineBeamSpotProducer.clone() return process -def _addLumiProducer(process): - if not hasattr(process,'lumiProducer'): - #unscheduled.. - from RecoLuminosity.LumiProducer.lumiProducer_cff import lumiProducer,LumiDBService - process.lumiProducer=lumiProducer - #if it's scheduled - if hasattr(process, 'reconstruction_step'): - process.reconstruction_step+=process.lumiProducer - - return process - def _overridesFor50ns(process): process.bunchSpacingProducer.bunchSpacingOverride = cms.uint32(50) process.bunchSpacingProducer.overrideBunchSpacing = cms.bool(True) @@ -150,7 +139,6 @@ def customiseExpress(process): ############################################################################## def customisePrompt(process): process= customisePPData(process) - process = _addLumiProducer(process) return process @@ -172,8 +160,6 @@ def customiseExpressHI(process): def customisePromptHI(process): process = customiseCommonHI(process) - process = _addLumiProducer(process) - return process ############################################################################## diff --git a/Configuration/Eras/python/Era_Run2_2016_cff.py b/Configuration/Eras/python/Era_Run2_2016_cff.py index 4c340f053eff4..b0100810f4af5 100644 --- a/Configuration/Eras/python/Era_Run2_2016_cff.py +++ b/Configuration/Eras/python/Era_Run2_2016_cff.py @@ -3,6 +3,7 @@ from Configuration.Eras.Modifier_run2_common_cff import run2_common from Configuration.Eras.Modifier_run2_25ns_specific_cff import run2_25ns_specific from Configuration.Eras.Modifier_stage2L1Trigger_cff import stage2L1Trigger +from Configuration.Eras.Modifier_ctpps_cff import ctpps from Configuration.Eras.Modifier_ctpps_2016_cff import ctpps_2016 from Configuration.Eras.Modifier_run2_HLTconditions_2016_cff import run2_HLTconditions_2016 from Configuration.Eras.Modifier_run2_muon_2016_cff import run2_muon_2016 @@ -14,5 +15,5 @@ from Configuration.Eras.Modifier_run2_ECAL_2016_cff import run2_ECAL_2016 Run2_2016 = cms.ModifierChain(run2_common, run2_25ns_specific, - stage2L1Trigger, ctpps_2016, run2_HLTconditions_2016, run2_ECAL_2016, run2_muon_2016, run2_egamma_2016, run2_L1prefiring, pixel_2016, run2_jme_2016, strips_vfp30_2016) + stage2L1Trigger, ctpps, ctpps_2016, run2_HLTconditions_2016, run2_ECAL_2016, run2_muon_2016, run2_egamma_2016, run2_L1prefiring, pixel_2016, run2_jme_2016, strips_vfp30_2016) diff --git a/Configuration/Eras/python/Era_Run2_2017_cff.py b/Configuration/Eras/python/Era_Run2_2017_cff.py index aad81da12e95b..0fbe87a05e9d8 100644 --- a/Configuration/Eras/python/Era_Run2_2017_cff.py +++ b/Configuration/Eras/python/Era_Run2_2017_cff.py @@ -17,13 +17,14 @@ from Configuration.Eras.Modifier_run2_muon_2016_cff import run2_muon_2016 from Configuration.Eras.Modifier_run2_egamma_2017_cff import run2_egamma_2017 from Configuration.Eras.Modifier_run2_egamma_2016_cff import run2_egamma_2016 +from Configuration.Eras.Modifier_ctpps_2016_cff import ctpps_2016 from Configuration.Eras.Modifier_ctpps_2017_cff import ctpps_2017 from Configuration.Eras.Modifier_pixel_2016_cff import pixel_2016 from Configuration.Eras.Modifier_run2_jme_2017_cff import run2_jme_2017 from Configuration.Eras.Modifier_run2_jme_2016_cff import run2_jme_2016 from Configuration.Eras.Modifier_strips_vfp30_2016_cff import strips_vfp30_2016 -Run2_2017 = cms.ModifierChain(Run2_2016.copyAndExclude([run2_muon_2016, run2_HLTconditions_2016, run2_ECAL_2016, run2_egamma_2016,pixel_2016,run2_jme_2016, strips_vfp30_2016]), +Run2_2017 = cms.ModifierChain(Run2_2016.copyAndExclude([run2_muon_2016, run2_HLTconditions_2016, run2_ECAL_2016, run2_egamma_2016,pixel_2016,run2_jme_2016, strips_vfp30_2016, ctpps_2016]), phase1Pixel, run2_ECAL_2017, run2_HF_2017, run2_HCAL_2017, run2_HE_2017, run2_HEPlan1_2017, trackingPhase1, run2_GEM_2017, stage2L1Trigger_2017, run2_HLTconditions_2017, run2_muon_2017,run2_egamma_2017, ctpps_2017, run2_jme_2017) diff --git a/Configuration/Eras/python/Modifier_ctpps_cff.py b/Configuration/Eras/python/Modifier_ctpps_cff.py new file mode 100644 index 0000000000000..9f39c97ec0fa5 --- /dev/null +++ b/Configuration/Eras/python/Modifier_ctpps_cff.py @@ -0,0 +1,4 @@ +import FWCore.ParameterSet.Config as cms + +ctpps = cms.Modifier() + diff --git a/Configuration/EventContent/python/EventContent_cff.py b/Configuration/EventContent/python/EventContent_cff.py index e7bd292dbf241..15c2f93f807fb 100644 --- a/Configuration/EventContent/python/EventContent_cff.py +++ b/Configuration/EventContent/python/EventContent_cff.py @@ -212,7 +212,7 @@ def SwapKeepAndDrop(l): RECOEventContent.outputCommands.extend(CommonEventContent.outputCommands) RECOEventContent.outputCommands.extend(EITopPAGEventContent.outputCommands) -from Configuration.Eras.Modifier_ctpps_2016_cff import ctpps_2016 +from Configuration.Eras.Modifier_ctpps_cff import ctpps from Configuration.Eras.Modifier_phase2_hgcal_cff import phase2_hgcal from Configuration.Eras.Modifier_phase2_tracker_cff import phase2_tracker from Configuration.Eras.Modifier_phase2_muon_cff import phase2_muon @@ -223,7 +223,7 @@ def SwapKeepAndDrop(l): from RecoLocalFastTime.Configuration.RecoLocalFastTime_EventContent_cff import * from RecoMTD.Configuration.RecoMTD_EventContent_cff import * -ctpps_2016.toModify(RECOEventContent, +ctpps.toModify(RECOEventContent, outputCommands = RECOEventContent.outputCommands + RecoCTPPSRECO.outputCommands) phase2_hgcal.toModify(RECOEventContent, outputCommands = RECOEventContent.outputCommands + TICL_RECO.outputCommands) @@ -276,7 +276,7 @@ def SwapKeepAndDrop(l): AODEventContent.outputCommands.extend(TcdsEventContent.outputCommands) AODEventContent.outputCommands.extend(CommonEventContent.outputCommands) -ctpps_2016.toModify(AODEventContent, +ctpps.toModify(AODEventContent, outputCommands = AODEventContent.outputCommands + RecoCTPPSAOD.outputCommands) phase2_hgcal.toModify(AODEventContent, outputCommands = AODEventContent.outputCommands + TICL_AOD.outputCommands) @@ -486,7 +486,7 @@ def SwapKeepAndDrop(l): FEVTEventContent.outputCommands.extend(CommonEventContent.outputCommands) FEVTEventContent.outputCommands.extend(EITopPAGEventContent.outputCommands) -ctpps_2016.toModify(FEVTEventContent, +ctpps.toModify(FEVTEventContent, outputCommands = FEVTEventContent.outputCommands + RecoCTPPSFEVT.outputCommands) phase2_hgcal.toModify(FEVTEventContent, outputCommands = FEVTEventContent.outputCommands + TICL_FEVT.outputCommands) diff --git a/Configuration/Generator/python/Herwig7Settings/Herwig7CommonMergingSettings_cfi.py b/Configuration/Generator/python/Herwig7Settings/Herwig7CommonMergingSettings_cfi.py deleted file mode 100644 index 9f66d379f674b..0000000000000 --- a/Configuration/Generator/python/Herwig7Settings/Herwig7CommonMergingSettings_cfi.py +++ /dev/null @@ -1,58 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -herwig7CommonMergingSettingsBlock = cms.PSet( - hw_common_merging_settings = cms.vstring( - 'read snippets/PPCollider.in', - 'cd /Herwig/EventHandlers', - 'library FxFx.so', - 'create Herwig::FxFxEventHandler theLesHouchesHandler', - 'cd /Herwig/EventHandlers', - 'library FxFx.so', - 'create Herwig::FxFxFileReader theLHReader', - 'cd /Herwig/Shower', - 'library FxFxHandler.so', - 'create Herwig::FxFxHandler FxFxHandler', - 'set /Herwig/Shower/FxFxHandler:ShowerModel /Herwig/Shower/ShowerModel', - 'set /Herwig/Shower/FxFxHandler:SplittingGenerator /Herwig/Shower/SplittingGenerator', - 'cd /Herwig/EventHandlers', - 'create ThePEG::Cuts /Herwig/Cuts/NoCuts', - 'cd /Herwig/EventHandlers', - 'insert theLesHouchesHandler:FxFxReaders[0] theLHReader', - 'set theLesHouchesHandler:WeightOption VarNegWeight', - 'set theLesHouchesHandler:PartonExtractor /Herwig/Partons/PPExtractor', - 'set theLesHouchesHandler:CascadeHandler /Herwig/Shower/FxFxHandler', - 'set theLesHouchesHandler:HadronizationHandler /Herwig/Hadronization/ClusterHadHandler', - 'set theLesHouchesHandler:DecayHandler /Herwig/Decays/DecayHandler', - 'set /Herwig/Shower/ShowerHandler:MaxPtIsMuF Yes', - 'set /Herwig/Shower/ShowerHandler:RestrictPhasespace Yes', - 'set /Herwig/Shower/PartnerFinder:PartnerMethod Random', - 'set /Herwig/Shower/PartnerFinder:ScaleChoice Partner', - 'cd /Herwig/EventHandlers', - 'set theLHReader:AllowedToReOpen No', - 'set theLHReader:WeightWarnings false', - 'set theLHReader:FileName cmsgrid_final.lhe', - 'set theLHReader:MomentumTreatment RescaleEnergy', - 'set theLHReader:Cuts /Herwig/Cuts/NoCuts', - 'cd /Herwig/Generators', - 'set EventGenerator:EventHandler /Herwig/EventHandlers/theLesHouchesHandler', - 'set EventGenerator:PrintEvent 1', - 'set EventGenerator:MaxErrors 10000', - 'cd /Herwig/Shower', - 'set /Herwig/Shower/FxFxHandler:MPIHandler /Herwig/UnderlyingEvent/MPIHandler', - 'set /Herwig/Shower/FxFxHandler:RemDecayer /Herwig/Partons/RemnantDecayer', - 'set /Herwig/Shower/FxFxHandler:ShowerAlpha AlphaQCD', - 'set FxFxHandler:HeavyQVeto Yes', - 'set FxFxHandler:HardProcessDetection Automatic', - 'set FxFxHandler:ihrd 3', - 'set FxFxHandler:njetsmax 4', - 'set FxFxHandler:drjmin 0', - 'cd /Herwig/Shower', - 'set FxFxHandler:VetoIsTurnedOff VetoingIsOn', - 'set FxFxHandler:MergeMode TreeMG5', - 'set FxFxHandler:ETClus 20*GeV', - 'set FxFxHandler:RClus 1.0', - 'set FxFxHandler:EtaClusMax 5', - 'set FxFxHandler:RClusFactor 1.5' - - ) -) diff --git a/Configuration/Generator/python/Herwig7Settings/Herwig7LHECommonSettings_cfi.py b/Configuration/Generator/python/Herwig7Settings/Herwig7LHECommonSettings_cfi.py index 280bf2fdff54e..3fbc11971098d 100644 --- a/Configuration/Generator/python/Herwig7Settings/Herwig7LHECommonSettings_cfi.py +++ b/Configuration/Generator/python/Herwig7Settings/Herwig7LHECommonSettings_cfi.py @@ -1,9 +1,9 @@ import FWCore.ParameterSet.Config as cms +# Settings from $HERWIGPATH/LHE.in + herwig7LHECommonSettingsBlock = cms.PSet( hw_lhe_common_settings = cms.vstring( - 'read snippets/PPCollider.in', - 'cd /Herwig/Generators', 'cd /Herwig/EventHandlers', 'library LesHouches.so', 'create ThePEG::LesHouchesEventHandler LesHouchesHandler', @@ -11,8 +11,10 @@ 'set LesHouchesHandler:CascadeHandler /Herwig/Shower/ShowerHandler', 'set LesHouchesHandler:DecayHandler /Herwig/Decays/DecayHandler', 'set LesHouchesHandler:HadronizationHandler /Herwig/Hadronization/ClusterHadHandler', + + # set the weight option (e.g. for MC@NLO) 'set LesHouchesHandler:WeightOption VarNegWeight', - 'set LesHouchesHandler:Weighted On', + 'set /Herwig/Generators/EventGenerator:EventHandler /Herwig/EventHandlers/LesHouchesHandler', 'create ThePEG::Cuts /Herwig/Cuts/NoCuts', 'create ThePEG::LHAPDF /Herwig/Partons/LHAPDF ThePEGLHAPDF.so', @@ -30,6 +32,10 @@ 'set LesHouchesReader:MomentumTreatment RescaleEnergy', 'set LesHouchesReader:PDFA /Herwig/Partons/LHAPDF', 'set LesHouchesReader:PDFB /Herwig/Partons/LHAPDF', - 'insert LesHouchesHandler:LesHouchesReaders 0 LesHouchesReader' + 'insert LesHouchesHandler:LesHouchesReaders 0 LesHouchesReader', + 'set /Herwig/Shower/ShowerHandler:MaxPtIsMuF Yes', + 'set /Herwig/Shower/ShowerHandler:RestrictPhasespace Yes', + 'set /Herwig/Shower/PartnerFinder:PartnerMethod Random', + 'set /Herwig/Shower/PartnerFinder:ScaleChoice Partner' ) ) diff --git a/Configuration/Generator/python/Herwig7Settings/Herwig7LHEMG5aMCatNLOSettings_cfi.py b/Configuration/Generator/python/Herwig7Settings/Herwig7LHEMG5aMCatNLOSettings_cfi.py index f9db2dac221d0..89c9b2200122c 100644 --- a/Configuration/Generator/python/Herwig7Settings/Herwig7LHEMG5aMCatNLOSettings_cfi.py +++ b/Configuration/Generator/python/Herwig7Settings/Herwig7LHEMG5aMCatNLOSettings_cfi.py @@ -1,5 +1,7 @@ import FWCore.ParameterSet.Config as cms +# Settings from $HERWIGPATH/LHE-MCatNLO.in, should be used together with the Herwig7LHECommonSettings + herwig7LHEMG5aMCatNLOSettingsBlock = cms.PSet( hw_lhe_MG5aMCatNLO_settings = cms.vstring( 'set /Herwig/Shower/KinematicsReconstructor:InitialInitialBoostOption LongTransBoost', diff --git a/Configuration/Generator/python/Herwig7Settings/Herwig7LHEPowhegSettings_cfi.py b/Configuration/Generator/python/Herwig7Settings/Herwig7LHEPowhegSettings_cfi.py index 0c0e94c714fbd..d5d15327e7597 100644 --- a/Configuration/Generator/python/Herwig7Settings/Herwig7LHEPowhegSettings_cfi.py +++ b/Configuration/Generator/python/Herwig7Settings/Herwig7LHEPowhegSettings_cfi.py @@ -1,13 +1,13 @@ import FWCore.ParameterSet.Config as cms +# Settings from $HERWIGPATH/LHE-POWHEG.in, should be used together with the Herwig7LHECommonSettings + herwig7LHEPowhegSettingsBlock = cms.PSet( - hw_lhe_Powheg_settings = cms.vstring( + hw_lhe_powheg_settings = cms.vstring( 'set /Herwig/Shower/ShowerHandler:MaxPtIsMuF Yes', 'set /Herwig/Shower/ShowerHandler:RestrictPhasespace Yes', 'set /Herwig/Shower/PartnerFinder:PartnerMethod Random', 'set /Herwig/Shower/PartnerFinder:ScaleChoice Partner', - 'set /Herwig/Shower/GtoQQbarSplitFn:AngularOrdered Yes', - 'set /Herwig/Shower/GammatoQQbarSplitFn:AngularOrdered Yes', 'set /Herwig/Particles/t:NominalMass 172.5' ) ) diff --git a/Configuration/Generator/python/Herwig7Settings/Herwig7LHESettings_cfi.py b/Configuration/Generator/python/Herwig7Settings/Herwig7LHESettings_cfi.py deleted file mode 100644 index 3f1478989e5df..0000000000000 --- a/Configuration/Generator/python/Herwig7Settings/Herwig7LHESettings_cfi.py +++ /dev/null @@ -1,106 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -herwig7LHESettingsBlock = cms.PSet( - hw_lhe_settings = cms.vstring( - '##################################################', - '# Example generator based on LHC parameters', - '# usage: Herwig read LHE.in', - '##################################################', - 'read snippets/PPCollider.in', - '##################################################', - '# Technical parameters for this run', - '##################################################', - 'cd /Herwig/Generators', - '#set EventGenerator:NumberOfEvents 10000000', - '#set EventGenerator:RandomNumberGenerator:Seed 31122001', - '#set EventGenerator:DebugLevel 0', - '#set EventGenerator:PrintEvent 10', - '#set EventGenerator:MaxErrors 10000', - '##################################################', - '# Create the Les Houches file handler and reader', - '##################################################', - 'cd /Herwig/EventHandlers', - 'library LesHouches.so', - '# create the event handler', - 'create ThePEG::LesHouchesEventHandler LesHouchesHandler', - '# set the various step handlers', - 'set LesHouchesHandler:PartonExtractor /Herwig/Partons/PPExtractor', - 'set LesHouchesHandler:CascadeHandler /Herwig/Shower/ShowerHandler', - 'set LesHouchesHandler:DecayHandler /Herwig/Decays/DecayHandler', - 'set LesHouchesHandler:HadronizationHandler /Herwig/Hadronization/ClusterHadHandler', - '# set the weight option (e.g. for MC@NLO)', - 'set LesHouchesHandler:WeightOption VarNegWeight', - '# set event hander as one to be used', - 'set /Herwig/Generators/EventGenerator:EventHandler /Herwig/EventHandlers/LesHouchesHandler', - '# Set up an EMPTY CUTS object', - '# Normally you will have imposed any cuts you want', - '# when generating the event file and do not want any more', - '# in particular for POWHEG and MC@NLO you must not apply cuts on the', - '# the extra jet', - 'create ThePEG::Cuts /Herwig/Cuts/NoCuts', - '# You may wish to use the same PDF as the events were generated with', - 'create ThePEG::LHAPDF /Herwig/Partons/LHAPDF ThePEGLHAPDF.so', - 'set /Herwig/Partons/LHAPDF:PDFName NNPDF31_nnlo_as_0118', - 'set /Herwig/Partons/LHAPDF:RemnantHandler /Herwig/Partons/HadronRemnants', - 'set /Herwig/Particles/p+:PDF /Herwig/Partons/LHAPDF', - 'set /Herwig/Particles/pbar-:PDF /Herwig/Partons/LHAPDF', - 'set /Herwig/Partons/PPExtractor:FirstPDF /Herwig/Partons/LHAPDF', - 'set /Herwig/Partons/PPExtractor:SecondPDF /Herwig/Partons/LHAPDF', - '# We would recommend the shower uses the default PDFs with which it was tuned.', - '# However it can be argued that the same set as for the sample should be used for', - '# matched samples, i.e. MC@NLO (and less so POWHEG)', - '#set /Herwig/Shower/ShowerHandler:PDFA /Herwig/Partons/LHAPDF', - '#set /Herwig/Shower/ShowerHandler:PDFB /Herwig/Partons/LHAPDF', - '# You can in principle also change the PDFs for the remnant extraction and', - '# multiple scattering. As the generator was tuned with the default values', - '# this is STRONGLY DISCOURAGED without retuning the MPI parameters', - '# create the reader and set cuts', - 'create ThePEG::LesHouchesFileReader LesHouchesReader', - 'set LesHouchesReader:FileName cmsgrid_final.lhe', - 'set LesHouchesReader:AllowedToReOpen No', - 'set LesHouchesReader:InitPDFs 0', - 'set LesHouchesReader:Cuts /Herwig/Cuts/NoCuts', - '# option to ensure momentum conservation is O.K. due rounding errors (recommended)', - 'set LesHouchesReader:MomentumTreatment RescaleEnergy', - '# set the pdfs', - 'set LesHouchesReader:PDFA /Herwig/Partons/LHAPDF', - 'set LesHouchesReader:PDFB /Herwig/Partons/LHAPDF', - '# if using BSM models with QNUMBER info', - '#set LesHouchesReader:QNumbers Yes', - '#set LesHouchesReader:Decayer /Herwig/Decays/Mambo', - '# and add to handler', - 'insert LesHouchesHandler:LesHouchesReaders 0 LesHouchesReader', - '##################################################', - '# Shower parameters', - '##################################################', - '# normally, especially for POWHEG, you want', - '# the scale supplied in the event files (SCALUP)', - '# to be used as a pT veto scale in the parton shower', - 'set /Herwig/Shower/ShowerHandler:MaxPtIsMuF Yes', - 'set /Herwig/Shower/ShowerHandler:RestrictPhasespace Yes', - '# Shower parameters', - '# treatment of wide angle radiation', - 'set /Herwig/Shower/PartnerFinder:PartnerMethod Random', - 'set /Herwig/Shower/PartnerFinder:ScaleChoice Partner', - '# fix issue before 7.0.5 (not needed after this)', - 'set /Herwig/Shower/GtoQQbarSplitFn:AngularOrdered Yes', - 'set /Herwig/Shower/GammatoQQbarSplitFn:AngularOrdered Yes', - '# with MC@NLO these parameters are required for consistency of the subtraction terms', - '# suggested parameters (give worse physics results with POWHEG)', - '#set /Herwig/Shower/KinematicsReconstructor:InitialInitialBoostOption LongTransBoost', - '#set /Herwig/Shower/KinematicsReconstructor:ReconstructionOption General', - '#set /Herwig/Shower/KinematicsReconstructor:FinalStateReconOption Default', - '#set /Herwig/Shower/KinematicsReconstructor:InitialStateReconOption Rapidity', - '#set /Herwig/Shower/ShowerHandler:SpinCorrelations No', - '##################################################', - '# LHC physics parameters (override defaults here) ', - '##################################################', - '# e.g if different top mass used', - 'set /Herwig/Particles/t:NominalMass 172.5', - '##################################################', - '# Save run for later usage with `Herwig run`', - '##################################################', - 'cd /Herwig/Generators', - 'saverun LHE EventGenerator' - ) -) diff --git a/Configuration/Generator/python/Herwig7Settings/Herwig7MGMergingSettings_cfi.py b/Configuration/Generator/python/Herwig7Settings/Herwig7MGMergingSettings_cfi.py new file mode 100644 index 0000000000000..c78bd73a1885a --- /dev/null +++ b/Configuration/Generator/python/Herwig7Settings/Herwig7MGMergingSettings_cfi.py @@ -0,0 +1,68 @@ +import FWCore.ParameterSet.Config as cms + +# Settings from $HERWIGPATH/LHE-MGMerging.in, including reading in the LHE file- do not use this together with Herwig7LHECommonSettings +# User needs to include the following lines in their user settings block: +# 'set FxFxHandler:MergeMode TreeMG5' (for mlm merging) OR 'set FxFxHandler:MergeMode FxFx' (for FxFx merging) +# 'set FxFxHandler:njetsmax MAXIMUM_NUMBER_OF_PARTONS_IN_LHE_FILE' + +herwig7MGMergingSettingsBlock = cms.PSet( + hw_mg_merging_settings = cms.vstring( + 'cd /Herwig/EventHandlers', + 'library HwFxFx.so', + 'create Herwig::FxFxEventHandler LesHouchesHandler', + 'set LesHouchesHandler:PartonExtractor /Herwig/Partons/PPExtractor', + 'set LesHouchesHandler:HadronizationHandler /Herwig/Hadronization/ClusterHadHandler', + 'set LesHouchesHandler:DecayHandler /Herwig/Decays/DecayHandler', + 'set LesHouchesHandler:WeightOption VarNegWeight', + 'set /Herwig/Generators/EventGenerator:EventHandler /Herwig/EventHandlers/LesHouchesHandler', + 'create ThePEG::Cuts /Herwig/Cuts/NoCuts', + 'cd /Herwig/EventHandlers', + 'create Herwig::FxFxFileReader FxFxLHReader', + 'insert LesHouchesHandler:FxFxReaders[0] FxFxLHReader', + 'cd /Herwig/Shower', + 'library HwFxFxHandler.so', + 'create Herwig::FxFxHandler FxFxHandler', + 'set /Herwig/Shower/FxFxHandler:SplittingGenerator /Herwig/Shower/SplittingGenerator', + 'set /Herwig/Shower/FxFxHandler:KinematicsReconstructor /Herwig/Shower/KinematicsReconstructor', + 'set /Herwig/Shower/FxFxHandler:PartnerFinder /Herwig/Shower/PartnerFinder', + 'set /Herwig/EventHandlers/LesHouchesHandler:CascadeHandler /Herwig/Shower/FxFxHandler', + 'set /Herwig/Partons/PDFSet_nnlo:PDFName NNPDF31_nnlo_as_0118', + 'set /Herwig/Partons/RemnantDecayer:AllowTop Yes', + 'set /Herwig/Partons/PDFSet_nnlo:RemnantHandler /Herwig/Partons/HadronRemnants', + 'set /Herwig/Particles/p+:PDF /Herwig/Partons/PDFSet_nnlo', + 'set /Herwig/Particles/pbar-:PDF /Herwig/Partons/PDFSet_nnlo', + 'set /Herwig/Partons/PPExtractor:FirstPDF /Herwig/Partons/PDFSet_nnlo', + 'set /Herwig/Partons/PPExtractor:SecondPDF /Herwig/Partons/PDFSet_nnlo', + 'set /Herwig/Shower/ShowerHandler:PDFA /Herwig/Partons/PDFSet_nnlo', + 'set /Herwig/Shower/ShowerHandler:PDFB /Herwig/Partons/PDFSet_nnlo', + 'set /Herwig/EventHandlers/FxFxLHReader:FileName cmsgrid_final.lhe', + 'set /Herwig/EventHandlers/FxFxLHReader:WeightWarnings false', + 'set /Herwig/EventHandlers/FxFxLHReader:AllowedToReOpen No', + 'set /Herwig/EventHandlers/FxFxLHReader:InitPDFs 0', + 'set /Herwig/EventHandlers/FxFxLHReader:Cuts /Herwig/Cuts/NoCuts', + 'set /Herwig/EventHandlers/FxFxLHReader:MomentumTreatment RescaleEnergy', + 'set /Herwig/EventHandlers/FxFxLHReader:PDFA /Herwig/Partons/PDFSet_nnlo', + 'set /Herwig/EventHandlers/FxFxLHReader:PDFB /Herwig/Partons/PDFSet_nnlo', + 'set /Herwig/Shower/ShowerHandler:MaxPtIsMuF Yes', + 'set /Herwig/Shower/ShowerHandler:RestrictPhasespace Yes', + 'set /Herwig/Shower/PartnerFinder:PartnerMethod Random', + 'set /Herwig/Shower/PartnerFinder:ScaleChoice Partner', + 'set /Herwig/Shower/KinematicsReconstructor:InitialInitialBoostOption LongTransBoost', + 'set /Herwig/Shower/KinematicsReconstructor:ReconstructionOption General', + 'set /Herwig/Shower/KinematicsReconstructor:InitialStateReconOption Rapidity', + 'set /Herwig/Shower/ShowerHandler:SpinCorrelations Yes', + 'cd /Herwig/Shower', + 'set /Herwig/Shower/FxFxHandler:MPIHandler /Herwig/UnderlyingEvent/MPIHandler', + 'set /Herwig/Shower/FxFxHandler:RemDecayer /Herwig/Partons/RemnantDecayer', + 'set /Herwig/Shower/FxFxHandler:ShowerAlpha AlphaQCD', + 'set FxFxHandler:HeavyQVeto Yes', + 'set FxFxHandler:HardProcessDetection Automatic', + 'set FxFxHandler:drjmin 0', + 'cd /Herwig/Shower', + 'set FxFxHandler:VetoIsTurnedOff VetoingIsOn', + 'set FxFxHandler:ETClus 20*GeV', # Note this is the default, but this parameter should be tuned in future + 'set FxFxHandler:RClus 1.0', + 'set FxFxHandler:EtaClusMax 10', + 'set FxFxHandler:RClusFactor 1.5', + ) +) diff --git a/Configuration/Generator/python/TT_13TeV_Pow_Herwig7_cff.py b/Configuration/Generator/python/TT_13TeV_Pow_Herwig7_cff.py index 4231085495743..c2ff018b3a23b 100644 --- a/Configuration/Generator/python/TT_13TeV_Pow_Herwig7_cff.py +++ b/Configuration/Generator/python/TT_13TeV_Pow_Herwig7_cff.py @@ -1,96 +1,25 @@ import FWCore.ParameterSet.Config as cms from Configuration.Generator.TTbar_Pow_LHE_13TeV_cff import externalLHEProducer +from Configuration.Generator.Herwig7Settings.Herwig7CH3TuneSettings_cfi import * +from Configuration.Generator.Herwig7Settings.Herwig7StableParticlesForDetector_cfi import * +from Configuration.Generator.Herwig7Settings.Herwig7LHECommonSettings_cfi import * +from Configuration.Generator.Herwig7Settings.Herwig7LHEPowhegSettings_cfi import * -generator = cms.EDFilter("Herwig7GeneratorFilter", +generator = cms.EDFilter("Herwig7GeneratorFilter", + herwig7CH3SettingsBlock, + herwig7StableParticlesForDetectorBlock, + herwig7LHECommonSettingsBlock, + herwig7LHEPowhegSettingsBlock, configFiles = cms.vstring(), - - hw_nnpdf31 = cms.vstring( - 'cd /Herwig/Partons', - 'create ThePEG::LHAPDF PDFSet ThePEGLHAPDF.so', - 'set PDFSet:PDFName NNPDF31_nnlo_as_0118.LHgrid', - 'set PDFSet:RemnantHandler HadronRemnants', - 'set /Herwig/Particles/p+:PDF PDFSet', - 'set /Herwig/Particles/pbar-:PDF PDFSet', - 'set /Herwig/Shower/ShowerHandler:PDFA PDFSet', - 'set /Herwig/Shower/ShowerHandler:PDFB PDFSet', - 'set /Herwig/DipoleShower/DipoleShowerHandler:PDFA PDFSet', - 'set /Herwig/DipoleShower/DipoleShowerHandler:PDFB PDFSet', - - 'set /Herwig/Shower/ShowerHandler:PDFARemnant PDFSet', - 'set /Herwig/Shower/ShowerHandler:PDFBRemnant PDFSet', - 'set /Herwig/DipoleShower/DipoleShowerHandler:PDFARemnant PDFSet', - 'set /Herwig/DipoleShower/DipoleShowerHandler:PDFBRemnant PDFSet', - 'set /Herwig/Partons/MPIExtractor:FirstPDF PDFSet', - 'set /Herwig/Partons/MPIExtractor:SecondPDF PDFSet', - - 'cd /', - ), - hw_alphas = cms.vstring( - 'cd /Herwig/Shower', - 'set AlphaQCD:AlphaMZ 0.118', - 'cd /Herwig/DipoleShower', - 'set NLOAlphaS:input_alpha_s 0.118' - ), - hw_LHEsettings = cms.vstring( - 'read snippets/PPCollider.in', - - 'cd /Herwig/Generators', - 'set EventGenerator:NumberOfEvents 10000000', - #'set EventGenerator:RandomNumberGenerator:Seed 31122001' - 'set EventGenerator:DebugLevel 0', - 'set EventGenerator:PrintEvent 10', - 'set EventGenerator:MaxErrors 10000', - - 'cd /Herwig/EventHandlers', - 'library LesHouches.so', - 'create ThePEG::LesHouchesEventHandler LesHouchesHandler', - - 'set LesHouchesHandler:PartonExtractor /Herwig/Partons/PPExtractor', - 'set LesHouchesHandler:CascadeHandler /Herwig/Shower/ShowerHandler', - 'set LesHouchesHandler:DecayHandler /Herwig/Decays/DecayHandler', - 'set LesHouchesHandler:HadronizationHandler /Herwig/Hadronization/ClusterHadHandler', - - 'set LesHouchesHandler:WeightOption VarNegWeight', - - 'set /Herwig/Generators/EventGenerator:EventHandler /Herwig/EventHandlers/LesHouchesHandler', - - 'create ThePEG::Cuts /Herwig/Cuts/NoCuts', - - 'create ThePEG::LHAPDF /Herwig/Partons/LHAPDF ThePEGLHAPDF.so', - 'set /Herwig/Partons/LHAPDF:PDFName NNPDF30_nlo_as_0118', - 'set /Herwig/Partons/LHAPDF:RemnantHandler /Herwig/Partons/HadronRemnants', - 'set /Herwig/Particles/p+:PDF /Herwig/Partons/LHAPDF', - 'set /Herwig/Particles/pbar-:PDF /Herwig/Partons/LHAPDF', - 'set /Herwig/Partons/PPExtractor:FirstPDF /Herwig/Partons/LHAPDF', - 'set /Herwig/Partons/PPExtractor:SecondPDF /Herwig/Partons/LHAPDF', - - 'create ThePEG::LesHouchesFileReader LesHouchesReader', - 'set LesHouchesReader:FileName cmsgrid_final.lhe', - 'set LesHouchesReader:AllowedToReOpen No', - 'set LesHouchesReader:InitPDFs 0', - 'set LesHouchesReader:Cuts /Herwig/Cuts/NoCuts', - - 'set LesHouchesReader:MomentumTreatment RescaleEnergy', - 'set LesHouchesReader:PDFA /Herwig/Partons/LHAPDF', - 'set LesHouchesReader:PDFB /Herwig/Partons/LHAPDF', - - 'insert LesHouchesHandler:LesHouchesReaders 0 LesHouchesReader', - - 'set /Herwig/Shower/ShowerHandler:MaxPtIsMuF Yes', - 'set /Herwig/Shower/ShowerHandler:RestrictPhasespace Yes', - - - 'set /Herwig/Shower/PartnerFinder:PartnerMethod Random', - 'set /Herwig/Shower/PartnerFinder:ScaleChoice Partner', - - 'set /Herwig/Shower/GtoQQbarSplitFn:AngularOrdered Yes', - 'set /Herwig/Shower/GammatoQQbarSplitFn:AngularOrdered Yes', - 'set /Herwig/Particles/t:NominalMass 172.5', - 'cd /Herwig/Generators', - 'saverun LHE EventGenerator'), - parameterSets = cms.vstring('hw_LHEsettings', 'hw_nnpdf31','hw_alphas'), + parameterSets = cms.vstring( + 'herwig7CH3PDF', + 'herwig7CH3AlphaS', + 'herwig7CH3MPISettings', + 'herwig7StableParticlesForDetector', + 'hw_lhe_common_settings', + 'hw_lhe_powheg_settings'), crossSection = cms.untracked.double(-1), dataLocation = cms.string('${HERWIGPATH:-6}'), eventHandlers = cms.string('/Herwig/EventHandlers'), diff --git a/Configuration/Geometry/README.md b/Configuration/Geometry/README.md index 7e7045fefb287..fdfbb1be39045 100644 --- a/Configuration/Geometry/README.md +++ b/Configuration/Geometry/README.md @@ -59,6 +59,7 @@ Calorimeters: * C12: HGCal (as in C11) + HFNose with corrected wafer size + Phase2 HCAL and EB * C13: HGCal (reading the constants of the flat file and made provision to be used downstream) + Phase2 HCAL and EB * C14: HGCal (reading the constants of the flat file and use it to create geometry) + Phase2 HCAL and EB +* C15: HGCal (as in C14) + HFNose with corrected wafer size + Phase2 HCAL and EB Muon system: * M4: Phase2 muon system for TDR w/ GE2/1, ME0, RE3/1, RE4/1 (incl. granularity in ME0, staggered GE2/1), 96 iRPC strips, no overlaps, MB4Shields @@ -83,27 +84,17 @@ The script also handles the common and forward elements of the geometry: * F4: same as F2 but with modifications needed to forward shield * F5: same as F4 but changes due to HFNose * F6: same as F4 with modifications needed for BRM and forward shield +* F7: same as F6 with modifications needed for HFNose Several detector combinations have been generated: -* D49 = T15+C9+M4+I10+O4+F2 -* D50 = T15+C9+M4+I11+O4+F2 -* D60 = T15+C10+M4+I10+O4+F3 -* D64 = T22+C11+M4+I11+O5+F4 -* D65 = T23+C11+M4+I11+O5+F4 -* D66 = T21+C11+M8+I11+O5+F4 -* D67 = T21+C11+M9+I11+O5+F4 -* D68 = T21+C11+M6+I11+O5+F4 -* D69 = T21+C12+M6+I11+O5+F5 -* D70 = T21+C13+M7+I11+O6+F6 -* D71 = T21+C14+M7+I11+O7+F6 -* D72 = T21+C11+M6+I12+O5+F4 -* D74 = T21+C14+M9+I11+O7+F6 -* D75 = T21+C14+M7+I13+O7+F6 +* D49 = T15+C9+M4+I10+O4+F2 (HLT TDR baseline) +* D60 = T15+C10+M4+I10+O4+F3 (With HFNose) +* D68 = T21+C11+M6+I11+O5+F4 (For HGCAL study on evolution of detector) +* D70 = T21+C13+M7+I11+O6+F6 (For HGCAL study on evolution of detector) * D76 = T21+C14+M9+I13+O7+F6 * D77 = T24+C14+M9+I13+O7+F6 * D78 = T22+C14+M9+I13+O7+F6 * D79 = T23+C14+M9+I13+O7+F6 * D80 = T25+C14+M9+I13+O7+F6 * D81 = T26+C14+M9+I13+O7+F6 - -D49 is the HLT TDR baseline. +* D82 = T21+C15+M9+I13+O7+F7 diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2026D50Reco_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2026D50Reco_cff.py deleted file mode 100644 index 2081aa0ce6261..0000000000000 --- a/Configuration/Geometry/python/GeometryDD4hepExtended2026D50Reco_cff.py +++ /dev/null @@ -1,60 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryDD4hepExtended2026D50_cff import * - -# tracker -from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * -from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * -from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * -from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * -from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * -trackerGeometry.applyAlignment = cms.bool(False) - -# calo -from Geometry.CaloEventSetup.HGCalV9Topology_cfi import * -from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import * -from Geometry.CaloEventSetup.CaloTopology_cfi import * -from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * -CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", - SelectedCalos = cms.vstring("HCAL", - "ZDC", - "EcalBarrel", - "TOWER", - "HGCalEESensitive", - "HGCalHESiliconSensitive", - "HGCalHEScintillatorSensitive" - ) -) -from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import * -from Geometry.HcalEventSetup.HcalGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * -from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * -from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * -from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * -from Geometry.EcalMapping.EcalMapping_cfi import * -from Geometry.EcalMapping.EcalMappingRecord_cfi import * - -# muon -from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * -from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * -from Geometry.GEMGeometryBuilder.gemGeometry_cfi import * -from Geometry.GEMGeometryBuilder.me0Geometry_cfi import * -from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * -from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * - -# forward -from Geometry.ForwardGeometry.ForwardGeometry_cfi import * - -# timing -from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import * -from Geometry.MTDGeometryBuilder.mtdParameters_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * -from Geometry.MTDNumberingBuilder.mtdTopology_cfi import * -from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import * -from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import * -mtdGeometry.applyAlignment = cms.bool(False) - diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2026D50_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2026D50_cff.py deleted file mode 100644 index 3b2e84f716ad6..0000000000000 --- a/Configuration/Geometry/python/GeometryDD4hepExtended2026D50_cff.py +++ /dev/null @@ -1,16 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryDD4hep_cff import * -DDDetectorESProducer.confGeomXMLFiles = cms.FileInPath("Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D50.xml") - -from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import * -from Geometry.EcalCommonData.ecalSimulationParameters_cff import * -from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * -from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import * -from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import * -from Geometry.MuonNumbering.muonGeometryConstants_cff import * -from Geometry.MuonNumbering.muonOffsetESProducer_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2026D64Reco_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2026D64Reco_cff.py deleted file mode 100644 index 631836cc5ca92..0000000000000 --- a/Configuration/Geometry/python/GeometryDD4hepExtended2026D64Reco_cff.py +++ /dev/null @@ -1,60 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryDD4hepExtended2026D64_cff import * - -# tracker -from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * -from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * -from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * -from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * -from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * -trackerGeometry.applyAlignment = cms.bool(False) - -# calo -from Geometry.CaloEventSetup.HGCalV9Topology_cfi import * -from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import * -from Geometry.CaloEventSetup.CaloTopology_cfi import * -from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * -CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", - SelectedCalos = cms.vstring("HCAL", - "ZDC", - "EcalBarrel", - "TOWER", - "HGCalEESensitive", - "HGCalHESiliconSensitive", - "HGCalHEScintillatorSensitive" - ) -) -from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import * -from Geometry.HcalEventSetup.HcalGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * -from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * -from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * -from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * -from Geometry.EcalMapping.EcalMapping_cfi import * -from Geometry.EcalMapping.EcalMappingRecord_cfi import * - -# muon -from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * -from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * -from Geometry.GEMGeometryBuilder.gemGeometry_cfi import * -from Geometry.GEMGeometryBuilder.me0Geometry_cfi import * -from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * -from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * - -# forward -from Geometry.ForwardGeometry.ForwardGeometry_cfi import * - -# timing -from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import * -from Geometry.MTDGeometryBuilder.mtdParameters_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * -from Geometry.MTDNumberingBuilder.mtdTopology_cfi import * -from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import * -from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import * -mtdGeometry.applyAlignment = cms.bool(False) - diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2026D64_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2026D64_cff.py deleted file mode 100644 index 8deb2242f40e7..0000000000000 --- a/Configuration/Geometry/python/GeometryDD4hepExtended2026D64_cff.py +++ /dev/null @@ -1,16 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryDD4hep_cff import * -DDDetectorESProducer.confGeomXMLFiles = cms.FileInPath("Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D64.xml") - -from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import * -from Geometry.EcalCommonData.ecalSimulationParameters_cff import * -from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * -from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import * -from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import * -from Geometry.MuonNumbering.muonGeometryConstants_cff import * -from Geometry.MuonNumbering.muonOffsetESProducer_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2026D65Reco_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2026D65Reco_cff.py deleted file mode 100644 index 7846090e60532..0000000000000 --- a/Configuration/Geometry/python/GeometryDD4hepExtended2026D65Reco_cff.py +++ /dev/null @@ -1,60 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryDD4hepExtended2026D65_cff import * - -# tracker -from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * -from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * -from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * -from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * -from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * -trackerGeometry.applyAlignment = cms.bool(False) - -# calo -from Geometry.CaloEventSetup.HGCalV9Topology_cfi import * -from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import * -from Geometry.CaloEventSetup.CaloTopology_cfi import * -from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * -CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", - SelectedCalos = cms.vstring("HCAL", - "ZDC", - "EcalBarrel", - "TOWER", - "HGCalEESensitive", - "HGCalHESiliconSensitive", - "HGCalHEScintillatorSensitive" - ) -) -from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import * -from Geometry.HcalEventSetup.HcalGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * -from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * -from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * -from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * -from Geometry.EcalMapping.EcalMapping_cfi import * -from Geometry.EcalMapping.EcalMappingRecord_cfi import * - -# muon -from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * -from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * -from Geometry.GEMGeometryBuilder.gemGeometry_cfi import * -from Geometry.GEMGeometryBuilder.me0Geometry_cfi import * -from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * -from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * - -# forward -from Geometry.ForwardGeometry.ForwardGeometry_cfi import * - -# timing -from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import * -from Geometry.MTDGeometryBuilder.mtdParameters_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * -from Geometry.MTDNumberingBuilder.mtdTopology_cfi import * -from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import * -from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import * -mtdGeometry.applyAlignment = cms.bool(False) - diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2026D65_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2026D65_cff.py deleted file mode 100644 index b6d75569eed62..0000000000000 --- a/Configuration/Geometry/python/GeometryDD4hepExtended2026D65_cff.py +++ /dev/null @@ -1,16 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryDD4hep_cff import * -DDDetectorESProducer.confGeomXMLFiles = cms.FileInPath("Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D65.xml") - -from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import * -from Geometry.EcalCommonData.ecalSimulationParameters_cff import * -from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * -from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import * -from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import * -from Geometry.MuonNumbering.muonGeometryConstants_cff import * -from Geometry.MuonNumbering.muonOffsetESProducer_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2026D66Reco_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2026D66Reco_cff.py deleted file mode 100644 index 01fb2322a241e..0000000000000 --- a/Configuration/Geometry/python/GeometryDD4hepExtended2026D66Reco_cff.py +++ /dev/null @@ -1,60 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryDD4hepExtended2026D66_cff import * - -# tracker -from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * -from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * -from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * -from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * -from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * -trackerGeometry.applyAlignment = cms.bool(False) - -# calo -from Geometry.CaloEventSetup.HGCalV9Topology_cfi import * -from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import * -from Geometry.CaloEventSetup.CaloTopology_cfi import * -from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * -CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", - SelectedCalos = cms.vstring("HCAL", - "ZDC", - "EcalBarrel", - "TOWER", - "HGCalEESensitive", - "HGCalHESiliconSensitive", - "HGCalHEScintillatorSensitive" - ) -) -from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import * -from Geometry.HcalEventSetup.HcalGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * -from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * -from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * -from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * -from Geometry.EcalMapping.EcalMapping_cfi import * -from Geometry.EcalMapping.EcalMappingRecord_cfi import * - -# muon -from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * -from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * -from Geometry.GEMGeometryBuilder.gemGeometry_cfi import * -from Geometry.GEMGeometryBuilder.me0Geometry_cfi import * -from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * -from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * - -# forward -from Geometry.ForwardGeometry.ForwardGeometry_cfi import * - -# timing -from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import * -from Geometry.MTDGeometryBuilder.mtdParameters_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * -from Geometry.MTDNumberingBuilder.mtdTopology_cfi import * -from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import * -from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import * -mtdGeometry.applyAlignment = cms.bool(False) - diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2026D66_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2026D66_cff.py deleted file mode 100644 index 75292a34fa2e9..0000000000000 --- a/Configuration/Geometry/python/GeometryDD4hepExtended2026D66_cff.py +++ /dev/null @@ -1,16 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryDD4hep_cff import * -DDDetectorESProducer.confGeomXMLFiles = cms.FileInPath("Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D66.xml") - -from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import * -from Geometry.EcalCommonData.ecalSimulationParameters_cff import * -from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * -from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import * -from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import * -from Geometry.MuonNumbering.muonGeometryConstants_cff import * -from Geometry.MuonNumbering.muonOffsetESProducer_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2026D67Reco_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2026D67Reco_cff.py deleted file mode 100644 index 9cb5f558e45c8..0000000000000 --- a/Configuration/Geometry/python/GeometryDD4hepExtended2026D67Reco_cff.py +++ /dev/null @@ -1,59 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryDD4hepExtended2026D67_cff import * - -# tracker -from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * -from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * -from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * -from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * -from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * -trackerGeometry.applyAlignment = cms.bool(False) - -# calo -from Geometry.CaloEventSetup.HGCalV9Topology_cfi import * -from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import * -from Geometry.CaloEventSetup.CaloTopology_cfi import * -from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * -CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", - SelectedCalos = cms.vstring("HCAL", - "ZDC", - "EcalBarrel", - "TOWER", - "HGCalEESensitive", - "HGCalHESiliconSensitive", - "HGCalHEScintillatorSensitive" - ) -) -from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import * -from Geometry.HcalEventSetup.HcalGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * -from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * -from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * -from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * -from Geometry.EcalMapping.EcalMapping_cfi import * -from Geometry.EcalMapping.EcalMappingRecord_cfi import * - -# muon -from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * -from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * -from Geometry.GEMGeometryBuilder.gemGeometry_cfi import * -from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * -from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * - -# forward -from Geometry.ForwardGeometry.ForwardGeometry_cfi import * - -# timing -from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import * -from Geometry.MTDGeometryBuilder.mtdParameters_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * -from Geometry.MTDNumberingBuilder.mtdTopology_cfi import * -from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import * -from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import * -mtdGeometry.applyAlignment = cms.bool(False) - diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2026D67_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2026D67_cff.py deleted file mode 100644 index ca12955cebbd6..0000000000000 --- a/Configuration/Geometry/python/GeometryDD4hepExtended2026D67_cff.py +++ /dev/null @@ -1,16 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryDD4hep_cff import * -DDDetectorESProducer.confGeomXMLFiles = cms.FileInPath("Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D67.xml") - -from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import * -from Geometry.EcalCommonData.ecalSimulationParameters_cff import * -from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * -from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import * -from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import * -from Geometry.MuonNumbering.muonGeometryConstants_cff import * -from Geometry.MuonNumbering.muonOffsetESProducer_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2026D71Reco_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2026D71Reco_cff.py deleted file mode 100644 index 0c49d715c6c4c..0000000000000 --- a/Configuration/Geometry/python/GeometryDD4hepExtended2026D71Reco_cff.py +++ /dev/null @@ -1,60 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryDD4hepExtended2026D71_cff import * - -# tracker -from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * -from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * -from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * -from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * -from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * -trackerGeometry.applyAlignment = cms.bool(False) - -# calo -from Geometry.CaloEventSetup.HGCalV9Topology_cfi import * -from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import * -from Geometry.CaloEventSetup.CaloTopology_cfi import * -from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * -CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", - SelectedCalos = cms.vstring("HCAL", - "ZDC", - "EcalBarrel", - "TOWER", - "HGCalEESensitive", - "HGCalHESiliconSensitive", - "HGCalHEScintillatorSensitive" - ) -) -from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import * -from Geometry.HcalEventSetup.HcalGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * -from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * -from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * -from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * -from Geometry.EcalMapping.EcalMapping_cfi import * -from Geometry.EcalMapping.EcalMappingRecord_cfi import * - -# muon -from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * -from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * -from Geometry.GEMGeometryBuilder.gemGeometry_cfi import * -from Geometry.GEMGeometryBuilder.me0Geometry_cfi import * -from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * -from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * - -# forward -from Geometry.ForwardGeometry.ForwardGeometry_cfi import * - -# timing -from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import * -from Geometry.MTDGeometryBuilder.mtdParameters_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * -from Geometry.MTDNumberingBuilder.mtdTopology_cfi import * -from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import * -from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import * -mtdGeometry.applyAlignment = cms.bool(False) - diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2026D71_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2026D71_cff.py deleted file mode 100644 index 348528ee1888e..0000000000000 --- a/Configuration/Geometry/python/GeometryDD4hepExtended2026D71_cff.py +++ /dev/null @@ -1,16 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryDD4hep_cff import * -DDDetectorESProducer.confGeomXMLFiles = cms.FileInPath("Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D71.xml") - -from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import * -from Geometry.EcalCommonData.ecalSimulationParameters_cff import * -from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * -from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import * -from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import * -from Geometry.MuonNumbering.muonGeometryConstants_cff import * -from Geometry.MuonNumbering.muonOffsetESProducer_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2026D72Reco_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2026D72Reco_cff.py deleted file mode 100644 index ae62f5530f736..0000000000000 --- a/Configuration/Geometry/python/GeometryDD4hepExtended2026D72Reco_cff.py +++ /dev/null @@ -1,60 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryDD4hepExtended2026D72_cff import * - -# tracker -from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * -from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * -from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * -from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * -from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * -trackerGeometry.applyAlignment = cms.bool(False) - -# calo -from Geometry.CaloEventSetup.HGCalV9Topology_cfi import * -from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import * -from Geometry.CaloEventSetup.CaloTopology_cfi import * -from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * -CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", - SelectedCalos = cms.vstring("HCAL", - "ZDC", - "EcalBarrel", - "TOWER", - "HGCalEESensitive", - "HGCalHESiliconSensitive", - "HGCalHEScintillatorSensitive" - ) -) -from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import * -from Geometry.HcalEventSetup.HcalGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * -from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * -from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * -from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * -from Geometry.EcalMapping.EcalMapping_cfi import * -from Geometry.EcalMapping.EcalMappingRecord_cfi import * - -# muon -from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * -from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * -from Geometry.GEMGeometryBuilder.gemGeometry_cfi import * -from Geometry.GEMGeometryBuilder.me0Geometry_cfi import * -from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * -from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * - -# forward -from Geometry.ForwardGeometry.ForwardGeometry_cfi import * - -# timing -from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import * -from Geometry.MTDGeometryBuilder.mtdParameters_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * -from Geometry.MTDNumberingBuilder.mtdTopology_cfi import * -from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import * -from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import * -mtdGeometry.applyAlignment = cms.bool(False) - diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2026D72_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2026D72_cff.py deleted file mode 100644 index 1f8f45f2837de..0000000000000 --- a/Configuration/Geometry/python/GeometryDD4hepExtended2026D72_cff.py +++ /dev/null @@ -1,16 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryDD4hep_cff import * -DDDetectorESProducer.confGeomXMLFiles = cms.FileInPath("Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D72.xml") - -from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import * -from Geometry.EcalCommonData.ecalSimulationParameters_cff import * -from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * -from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import * -from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import * -from Geometry.MuonNumbering.muonGeometryConstants_cff import * -from Geometry.MuonNumbering.muonOffsetESProducer_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2026D74Reco_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2026D74Reco_cff.py deleted file mode 100644 index d75ccdbb604b7..0000000000000 --- a/Configuration/Geometry/python/GeometryDD4hepExtended2026D74Reco_cff.py +++ /dev/null @@ -1,59 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryDD4hepExtended2026D74_cff import * - -# tracker -from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * -from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * -from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * -from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * -from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * -trackerGeometry.applyAlignment = cms.bool(False) - -# calo -from Geometry.CaloEventSetup.HGCalV9Topology_cfi import * -from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import * -from Geometry.CaloEventSetup.CaloTopology_cfi import * -from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * -CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", - SelectedCalos = cms.vstring("HCAL", - "ZDC", - "EcalBarrel", - "TOWER", - "HGCalEESensitive", - "HGCalHESiliconSensitive", - "HGCalHEScintillatorSensitive" - ) -) -from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import * -from Geometry.HcalEventSetup.HcalGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * -from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * -from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * -from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * -from Geometry.EcalMapping.EcalMapping_cfi import * -from Geometry.EcalMapping.EcalMappingRecord_cfi import * - -# muon -from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * -from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * -from Geometry.GEMGeometryBuilder.gemGeometry_cfi import * -from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * -from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * - -# forward -from Geometry.ForwardGeometry.ForwardGeometry_cfi import * - -# timing -from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import * -from Geometry.MTDGeometryBuilder.mtdParameters_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * -from Geometry.MTDNumberingBuilder.mtdTopology_cfi import * -from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import * -from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import * -mtdGeometry.applyAlignment = cms.bool(False) - diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2026D74_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2026D74_cff.py deleted file mode 100644 index b23db60fffa0e..0000000000000 --- a/Configuration/Geometry/python/GeometryDD4hepExtended2026D74_cff.py +++ /dev/null @@ -1,16 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryDD4hep_cff import * -DDDetectorESProducer.confGeomXMLFiles = cms.FileInPath("Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D74.xml") - -from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import * -from Geometry.EcalCommonData.ecalSimulationParameters_cff import * -from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * -from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import * -from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import * -from Geometry.MuonNumbering.muonGeometryConstants_cff import * -from Geometry.MuonNumbering.muonOffsetESProducer_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2026D75Reco_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2026D75Reco_cff.py deleted file mode 100644 index c8dee1f2babbe..0000000000000 --- a/Configuration/Geometry/python/GeometryDD4hepExtended2026D75Reco_cff.py +++ /dev/null @@ -1,60 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryDD4hepExtended2026D75_cff import * - -# tracker -from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * -from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * -from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * -from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * -from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * -trackerGeometry.applyAlignment = cms.bool(False) - -# calo -from Geometry.CaloEventSetup.HGCalV9Topology_cfi import * -from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import * -from Geometry.CaloEventSetup.CaloTopology_cfi import * -from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * -CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", - SelectedCalos = cms.vstring("HCAL", - "ZDC", - "EcalBarrel", - "TOWER", - "HGCalEESensitive", - "HGCalHESiliconSensitive", - "HGCalHEScintillatorSensitive" - ) -) -from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import * -from Geometry.HcalEventSetup.HcalGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * -from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * -from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * -from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * -from Geometry.EcalMapping.EcalMapping_cfi import * -from Geometry.EcalMapping.EcalMappingRecord_cfi import * - -# muon -from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * -from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * -from Geometry.GEMGeometryBuilder.gemGeometry_cfi import * -from Geometry.GEMGeometryBuilder.me0Geometry_cfi import * -from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * -from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * - -# forward -from Geometry.ForwardGeometry.ForwardGeometry_cfi import * - -# timing -from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import * -from Geometry.MTDGeometryBuilder.mtdParameters_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * -from Geometry.MTDNumberingBuilder.mtdTopology_cfi import * -from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import * -from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import * -mtdGeometry.applyAlignment = cms.bool(False) - diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2026D75_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2026D75_cff.py deleted file mode 100644 index 4c50773a5cea7..0000000000000 --- a/Configuration/Geometry/python/GeometryDD4hepExtended2026D75_cff.py +++ /dev/null @@ -1,16 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryDD4hep_cff import * -DDDetectorESProducer.confGeomXMLFiles = cms.FileInPath("Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D75.xml") - -from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import * -from Geometry.EcalCommonData.ecalSimulationParameters_cff import * -from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * -from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import * -from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import * -from Geometry.MuonNumbering.muonGeometryConstants_cff import * -from Geometry.MuonNumbering.muonOffsetESProducer_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2026D69Reco_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2026D82Reco_cff.py similarity index 95% rename from Configuration/Geometry/python/GeometryDD4hepExtended2026D69Reco_cff.py rename to Configuration/Geometry/python/GeometryDD4hepExtended2026D82Reco_cff.py index 1e98783f4aa57..a75e1525a9f8b 100644 --- a/Configuration/Geometry/python/GeometryDD4hepExtended2026D69Reco_cff.py +++ b/Configuration/Geometry/python/GeometryDD4hepExtended2026D82Reco_cff.py @@ -3,7 +3,7 @@ # This config was generated automatically using generate2026Geometry.py # If you notice a mistake, please update the generating script, not just this config -from Configuration.Geometry.GeometryDD4hepExtended2026D69_cff import * +from Configuration.Geometry.GeometryDD4hepExtended2026D82_cff import * # tracker from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * @@ -45,7 +45,6 @@ from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * from Geometry.GEMGeometryBuilder.gemGeometry_cfi import * -from Geometry.GEMGeometryBuilder.me0Geometry_cfi import * from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * diff --git a/Configuration/Geometry/python/GeometryDD4hepExtended2026D69_cff.py b/Configuration/Geometry/python/GeometryDD4hepExtended2026D82_cff.py similarity index 94% rename from Configuration/Geometry/python/GeometryDD4hepExtended2026D69_cff.py rename to Configuration/Geometry/python/GeometryDD4hepExtended2026D82_cff.py index ead9fd7cd8154..29501f2713501 100644 --- a/Configuration/Geometry/python/GeometryDD4hepExtended2026D69_cff.py +++ b/Configuration/Geometry/python/GeometryDD4hepExtended2026D82_cff.py @@ -4,7 +4,7 @@ # If you notice a mistake, please update the generating script, not just this config from Configuration.Geometry.GeometryDD4hep_cff import * -DDDetectorESProducer.confGeomXMLFiles = cms.FileInPath("Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D69.xml") +DDDetectorESProducer.confGeomXMLFiles = cms.FileInPath("Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D82.xml") from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import * from Geometry.EcalCommonData.ecalSimulationParameters_cff import * @@ -15,5 +15,4 @@ from Geometry.ForwardCommonData.hfnoseNumberingInitialization_cfi import * from Geometry.MuonNumbering.muonGeometryConstants_cff import * from Geometry.MuonNumbering.muonOffsetESProducer_cff import * - from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * diff --git a/Configuration/Geometry/python/GeometryExtended2026D50Reco_cff.py b/Configuration/Geometry/python/GeometryExtended2026D50Reco_cff.py deleted file mode 100644 index 1983a41358f44..0000000000000 --- a/Configuration/Geometry/python/GeometryExtended2026D50Reco_cff.py +++ /dev/null @@ -1,60 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryExtended2026D50_cff import * - -# tracker -from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * -from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * -from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * -from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * -from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * -trackerGeometry.applyAlignment = cms.bool(False) - -# calo -from Geometry.CaloEventSetup.HGCalV9Topology_cfi import * -from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import * -from Geometry.CaloEventSetup.CaloTopology_cfi import * -from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * -CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", - SelectedCalos = cms.vstring("HCAL", - "ZDC", - "EcalBarrel", - "TOWER", - "HGCalEESensitive", - "HGCalHESiliconSensitive", - "HGCalHEScintillatorSensitive" - ) -) -from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import * -from Geometry.HcalEventSetup.HcalGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * -from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * -from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * -from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * -from Geometry.EcalMapping.EcalMapping_cfi import * -from Geometry.EcalMapping.EcalMappingRecord_cfi import * - -# muon -from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * -from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * -from Geometry.GEMGeometryBuilder.gemGeometry_cfi import * -from Geometry.GEMGeometryBuilder.me0Geometry_cfi import * -from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * -from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * - -# forward -from Geometry.ForwardGeometry.ForwardGeometry_cfi import * - -# timing -from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import * -from Geometry.MTDGeometryBuilder.mtdParameters_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * -from Geometry.MTDNumberingBuilder.mtdTopology_cfi import * -from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import * -from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import * -mtdGeometry.applyAlignment = cms.bool(False) - diff --git a/Configuration/Geometry/python/GeometryExtended2026D50_cff.py b/Configuration/Geometry/python/GeometryExtended2026D50_cff.py deleted file mode 100644 index 25d4f2c5eec02..0000000000000 --- a/Configuration/Geometry/python/GeometryExtended2026D50_cff.py +++ /dev/null @@ -1,14 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Geometry.CMSCommonData.cmsExtendedGeometry2026D50XML_cfi import * -from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import * -from Geometry.EcalCommonData.ecalSimulationParameters_cff import * -from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * -from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import * -from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import * -from Geometry.MuonNumbering.muonGeometryConstants_cff import * -from Geometry.MuonNumbering.muonOffsetESProducer_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * diff --git a/Configuration/Geometry/python/GeometryExtended2026D64Reco_cff.py b/Configuration/Geometry/python/GeometryExtended2026D64Reco_cff.py deleted file mode 100644 index 1d0db33d2f4be..0000000000000 --- a/Configuration/Geometry/python/GeometryExtended2026D64Reco_cff.py +++ /dev/null @@ -1,60 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryExtended2026D64_cff import * - -# tracker -from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * -from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * -from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * -from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * -from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * -trackerGeometry.applyAlignment = cms.bool(False) - -# calo -from Geometry.CaloEventSetup.HGCalV9Topology_cfi import * -from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import * -from Geometry.CaloEventSetup.CaloTopology_cfi import * -from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * -CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", - SelectedCalos = cms.vstring("HCAL", - "ZDC", - "EcalBarrel", - "TOWER", - "HGCalEESensitive", - "HGCalHESiliconSensitive", - "HGCalHEScintillatorSensitive" - ) -) -from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import * -from Geometry.HcalEventSetup.HcalGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * -from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * -from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * -from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * -from Geometry.EcalMapping.EcalMapping_cfi import * -from Geometry.EcalMapping.EcalMappingRecord_cfi import * - -# muon -from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * -from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * -from Geometry.GEMGeometryBuilder.gemGeometry_cfi import * -from Geometry.GEMGeometryBuilder.me0Geometry_cfi import * -from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * -from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * - -# forward -from Geometry.ForwardGeometry.ForwardGeometry_cfi import * - -# timing -from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import * -from Geometry.MTDGeometryBuilder.mtdParameters_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * -from Geometry.MTDNumberingBuilder.mtdTopology_cfi import * -from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import * -from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import * -mtdGeometry.applyAlignment = cms.bool(False) - diff --git a/Configuration/Geometry/python/GeometryExtended2026D64_cff.py b/Configuration/Geometry/python/GeometryExtended2026D64_cff.py deleted file mode 100644 index 188611cf598d7..0000000000000 --- a/Configuration/Geometry/python/GeometryExtended2026D64_cff.py +++ /dev/null @@ -1,14 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Geometry.CMSCommonData.cmsExtendedGeometry2026D64XML_cfi import * -from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import * -from Geometry.EcalCommonData.ecalSimulationParameters_cff import * -from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * -from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import * -from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import * -from Geometry.MuonNumbering.muonGeometryConstants_cff import * -from Geometry.MuonNumbering.muonOffsetESProducer_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * diff --git a/Configuration/Geometry/python/GeometryExtended2026D65Reco_cff.py b/Configuration/Geometry/python/GeometryExtended2026D65Reco_cff.py deleted file mode 100644 index ee54b29e97f61..0000000000000 --- a/Configuration/Geometry/python/GeometryExtended2026D65Reco_cff.py +++ /dev/null @@ -1,60 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryExtended2026D65_cff import * - -# tracker -from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * -from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * -from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * -from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * -from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * -trackerGeometry.applyAlignment = cms.bool(False) - -# calo -from Geometry.CaloEventSetup.HGCalV9Topology_cfi import * -from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import * -from Geometry.CaloEventSetup.CaloTopology_cfi import * -from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * -CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", - SelectedCalos = cms.vstring("HCAL", - "ZDC", - "EcalBarrel", - "TOWER", - "HGCalEESensitive", - "HGCalHESiliconSensitive", - "HGCalHEScintillatorSensitive" - ) -) -from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import * -from Geometry.HcalEventSetup.HcalGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * -from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * -from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * -from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * -from Geometry.EcalMapping.EcalMapping_cfi import * -from Geometry.EcalMapping.EcalMappingRecord_cfi import * - -# muon -from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * -from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * -from Geometry.GEMGeometryBuilder.gemGeometry_cfi import * -from Geometry.GEMGeometryBuilder.me0Geometry_cfi import * -from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * -from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * - -# forward -from Geometry.ForwardGeometry.ForwardGeometry_cfi import * - -# timing -from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import * -from Geometry.MTDGeometryBuilder.mtdParameters_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * -from Geometry.MTDNumberingBuilder.mtdTopology_cfi import * -from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import * -from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import * -mtdGeometry.applyAlignment = cms.bool(False) - diff --git a/Configuration/Geometry/python/GeometryExtended2026D65_cff.py b/Configuration/Geometry/python/GeometryExtended2026D65_cff.py deleted file mode 100644 index d7cd75f8ac60c..0000000000000 --- a/Configuration/Geometry/python/GeometryExtended2026D65_cff.py +++ /dev/null @@ -1,14 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Geometry.CMSCommonData.cmsExtendedGeometry2026D65XML_cfi import * -from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import * -from Geometry.EcalCommonData.ecalSimulationParameters_cff import * -from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * -from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import * -from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import * -from Geometry.MuonNumbering.muonGeometryConstants_cff import * -from Geometry.MuonNumbering.muonOffsetESProducer_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * diff --git a/Configuration/Geometry/python/GeometryExtended2026D66Reco_cff.py b/Configuration/Geometry/python/GeometryExtended2026D66Reco_cff.py deleted file mode 100644 index 936159c1bc98f..0000000000000 --- a/Configuration/Geometry/python/GeometryExtended2026D66Reco_cff.py +++ /dev/null @@ -1,60 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryExtended2026D66_cff import * - -# tracker -from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * -from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * -from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * -from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * -from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * -trackerGeometry.applyAlignment = cms.bool(False) - -# calo -from Geometry.CaloEventSetup.HGCalV9Topology_cfi import * -from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import * -from Geometry.CaloEventSetup.CaloTopology_cfi import * -from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * -CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", - SelectedCalos = cms.vstring("HCAL", - "ZDC", - "EcalBarrel", - "TOWER", - "HGCalEESensitive", - "HGCalHESiliconSensitive", - "HGCalHEScintillatorSensitive" - ) -) -from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import * -from Geometry.HcalEventSetup.HcalGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * -from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * -from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * -from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * -from Geometry.EcalMapping.EcalMapping_cfi import * -from Geometry.EcalMapping.EcalMappingRecord_cfi import * - -# muon -from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * -from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * -from Geometry.GEMGeometryBuilder.gemGeometry_cfi import * -from Geometry.GEMGeometryBuilder.me0Geometry_cfi import * -from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * -from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * - -# forward -from Geometry.ForwardGeometry.ForwardGeometry_cfi import * - -# timing -from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import * -from Geometry.MTDGeometryBuilder.mtdParameters_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * -from Geometry.MTDNumberingBuilder.mtdTopology_cfi import * -from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import * -from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import * -mtdGeometry.applyAlignment = cms.bool(False) - diff --git a/Configuration/Geometry/python/GeometryExtended2026D66_cff.py b/Configuration/Geometry/python/GeometryExtended2026D66_cff.py deleted file mode 100644 index 37d3fe483fc2a..0000000000000 --- a/Configuration/Geometry/python/GeometryExtended2026D66_cff.py +++ /dev/null @@ -1,14 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Geometry.CMSCommonData.cmsExtendedGeometry2026D66XML_cfi import * -from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import * -from Geometry.EcalCommonData.ecalSimulationParameters_cff import * -from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * -from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import * -from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import * -from Geometry.MuonNumbering.muonGeometryConstants_cff import * -from Geometry.MuonNumbering.muonOffsetESProducer_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * diff --git a/Configuration/Geometry/python/GeometryExtended2026D67Reco_cff.py b/Configuration/Geometry/python/GeometryExtended2026D67Reco_cff.py deleted file mode 100644 index b6f6681175ed7..0000000000000 --- a/Configuration/Geometry/python/GeometryExtended2026D67Reco_cff.py +++ /dev/null @@ -1,59 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryExtended2026D67_cff import * - -# tracker -from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * -from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * -from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * -from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * -from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * -trackerGeometry.applyAlignment = cms.bool(False) - -# calo -from Geometry.CaloEventSetup.HGCalV9Topology_cfi import * -from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import * -from Geometry.CaloEventSetup.CaloTopology_cfi import * -from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * -CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", - SelectedCalos = cms.vstring("HCAL", - "ZDC", - "EcalBarrel", - "TOWER", - "HGCalEESensitive", - "HGCalHESiliconSensitive", - "HGCalHEScintillatorSensitive" - ) -) -from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import * -from Geometry.HcalEventSetup.HcalGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * -from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * -from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * -from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * -from Geometry.EcalMapping.EcalMapping_cfi import * -from Geometry.EcalMapping.EcalMappingRecord_cfi import * - -# muon -from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * -from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * -from Geometry.GEMGeometryBuilder.gemGeometry_cfi import * -from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * -from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * - -# forward -from Geometry.ForwardGeometry.ForwardGeometry_cfi import * - -# timing -from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import * -from Geometry.MTDGeometryBuilder.mtdParameters_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * -from Geometry.MTDNumberingBuilder.mtdTopology_cfi import * -from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import * -from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import * -mtdGeometry.applyAlignment = cms.bool(False) - diff --git a/Configuration/Geometry/python/GeometryExtended2026D67_cff.py b/Configuration/Geometry/python/GeometryExtended2026D67_cff.py deleted file mode 100644 index a9541cfeb6d1e..0000000000000 --- a/Configuration/Geometry/python/GeometryExtended2026D67_cff.py +++ /dev/null @@ -1,14 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Geometry.CMSCommonData.cmsExtendedGeometry2026D67XML_cfi import * -from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import * -from Geometry.EcalCommonData.ecalSimulationParameters_cff import * -from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * -from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import * -from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import * -from Geometry.MuonNumbering.muonGeometryConstants_cff import * -from Geometry.MuonNumbering.muonOffsetESProducer_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * diff --git a/Configuration/Geometry/python/GeometryExtended2026D71Reco_cff.py b/Configuration/Geometry/python/GeometryExtended2026D71Reco_cff.py deleted file mode 100644 index ae729bee658a0..0000000000000 --- a/Configuration/Geometry/python/GeometryExtended2026D71Reco_cff.py +++ /dev/null @@ -1,60 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryExtended2026D71_cff import * - -# tracker -from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * -from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * -from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * -from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * -from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * -trackerGeometry.applyAlignment = cms.bool(False) - -# calo -from Geometry.CaloEventSetup.HGCalV9Topology_cfi import * -from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import * -from Geometry.CaloEventSetup.CaloTopology_cfi import * -from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * -CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", - SelectedCalos = cms.vstring("HCAL", - "ZDC", - "EcalBarrel", - "TOWER", - "HGCalEESensitive", - "HGCalHESiliconSensitive", - "HGCalHEScintillatorSensitive" - ) -) -from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import * -from Geometry.HcalEventSetup.HcalGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * -from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * -from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * -from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * -from Geometry.EcalMapping.EcalMapping_cfi import * -from Geometry.EcalMapping.EcalMappingRecord_cfi import * - -# muon -from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * -from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * -from Geometry.GEMGeometryBuilder.gemGeometry_cfi import * -from Geometry.GEMGeometryBuilder.me0Geometry_cfi import * -from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * -from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * - -# forward -from Geometry.ForwardGeometry.ForwardGeometry_cfi import * - -# timing -from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import * -from Geometry.MTDGeometryBuilder.mtdParameters_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * -from Geometry.MTDNumberingBuilder.mtdTopology_cfi import * -from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import * -from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import * -mtdGeometry.applyAlignment = cms.bool(False) - diff --git a/Configuration/Geometry/python/GeometryExtended2026D71_cff.py b/Configuration/Geometry/python/GeometryExtended2026D71_cff.py deleted file mode 100644 index 6ce66b4ab85f8..0000000000000 --- a/Configuration/Geometry/python/GeometryExtended2026D71_cff.py +++ /dev/null @@ -1,14 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Geometry.CMSCommonData.cmsExtendedGeometry2026D71XML_cfi import * -from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import * -from Geometry.EcalCommonData.ecalSimulationParameters_cff import * -from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * -from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import * -from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import * -from Geometry.MuonNumbering.muonGeometryConstants_cff import * -from Geometry.MuonNumbering.muonOffsetESProducer_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * diff --git a/Configuration/Geometry/python/GeometryExtended2026D72Reco_cff.py b/Configuration/Geometry/python/GeometryExtended2026D72Reco_cff.py deleted file mode 100644 index ecec6f15dc219..0000000000000 --- a/Configuration/Geometry/python/GeometryExtended2026D72Reco_cff.py +++ /dev/null @@ -1,60 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryExtended2026D72_cff import * - -# tracker -from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * -from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * -from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * -from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * -from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * -trackerGeometry.applyAlignment = cms.bool(False) - -# calo -from Geometry.CaloEventSetup.HGCalV9Topology_cfi import * -from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import * -from Geometry.CaloEventSetup.CaloTopology_cfi import * -from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * -CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", - SelectedCalos = cms.vstring("HCAL", - "ZDC", - "EcalBarrel", - "TOWER", - "HGCalEESensitive", - "HGCalHESiliconSensitive", - "HGCalHEScintillatorSensitive" - ) -) -from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import * -from Geometry.HcalEventSetup.HcalGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * -from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * -from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * -from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * -from Geometry.EcalMapping.EcalMapping_cfi import * -from Geometry.EcalMapping.EcalMappingRecord_cfi import * - -# muon -from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * -from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * -from Geometry.GEMGeometryBuilder.gemGeometry_cfi import * -from Geometry.GEMGeometryBuilder.me0Geometry_cfi import * -from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * -from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * - -# forward -from Geometry.ForwardGeometry.ForwardGeometry_cfi import * - -# timing -from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import * -from Geometry.MTDGeometryBuilder.mtdParameters_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * -from Geometry.MTDNumberingBuilder.mtdTopology_cfi import * -from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import * -from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import * -mtdGeometry.applyAlignment = cms.bool(False) - diff --git a/Configuration/Geometry/python/GeometryExtended2026D72_cff.py b/Configuration/Geometry/python/GeometryExtended2026D72_cff.py deleted file mode 100644 index 32df40dfa384f..0000000000000 --- a/Configuration/Geometry/python/GeometryExtended2026D72_cff.py +++ /dev/null @@ -1,14 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Geometry.CMSCommonData.cmsExtendedGeometry2026D72XML_cfi import * -from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import * -from Geometry.EcalCommonData.ecalSimulationParameters_cff import * -from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * -from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import * -from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import * -from Geometry.MuonNumbering.muonGeometryConstants_cff import * -from Geometry.MuonNumbering.muonOffsetESProducer_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * diff --git a/Configuration/Geometry/python/GeometryExtended2026D74Reco_cff.py b/Configuration/Geometry/python/GeometryExtended2026D74Reco_cff.py deleted file mode 100644 index 166ce744342d9..0000000000000 --- a/Configuration/Geometry/python/GeometryExtended2026D74Reco_cff.py +++ /dev/null @@ -1,59 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryExtended2026D74_cff import * - -# tracker -from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * -from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * -from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * -from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * -from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * -trackerGeometry.applyAlignment = cms.bool(False) - -# calo -from Geometry.CaloEventSetup.HGCalV9Topology_cfi import * -from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import * -from Geometry.CaloEventSetup.CaloTopology_cfi import * -from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * -CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", - SelectedCalos = cms.vstring("HCAL", - "ZDC", - "EcalBarrel", - "TOWER", - "HGCalEESensitive", - "HGCalHESiliconSensitive", - "HGCalHEScintillatorSensitive" - ) -) -from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import * -from Geometry.HcalEventSetup.HcalGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * -from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * -from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * -from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * -from Geometry.EcalMapping.EcalMapping_cfi import * -from Geometry.EcalMapping.EcalMappingRecord_cfi import * - -# muon -from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * -from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * -from Geometry.GEMGeometryBuilder.gemGeometry_cfi import * -from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * -from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * - -# forward -from Geometry.ForwardGeometry.ForwardGeometry_cfi import * - -# timing -from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import * -from Geometry.MTDGeometryBuilder.mtdParameters_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * -from Geometry.MTDNumberingBuilder.mtdTopology_cfi import * -from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import * -from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import * -mtdGeometry.applyAlignment = cms.bool(False) - diff --git a/Configuration/Geometry/python/GeometryExtended2026D74_cff.py b/Configuration/Geometry/python/GeometryExtended2026D74_cff.py deleted file mode 100644 index 2562a6f421fd0..0000000000000 --- a/Configuration/Geometry/python/GeometryExtended2026D74_cff.py +++ /dev/null @@ -1,14 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Geometry.CMSCommonData.cmsExtendedGeometry2026D74XML_cfi import * -from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import * -from Geometry.EcalCommonData.ecalSimulationParameters_cff import * -from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * -from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import * -from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import * -from Geometry.MuonNumbering.muonGeometryConstants_cff import * -from Geometry.MuonNumbering.muonOffsetESProducer_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * diff --git a/Configuration/Geometry/python/GeometryExtended2026D75Reco_cff.py b/Configuration/Geometry/python/GeometryExtended2026D75Reco_cff.py deleted file mode 100644 index abf7c8d989dab..0000000000000 --- a/Configuration/Geometry/python/GeometryExtended2026D75Reco_cff.py +++ /dev/null @@ -1,60 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Configuration.Geometry.GeometryExtended2026D75_cff import * - -# tracker -from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * -from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import * -from Geometry.TrackerGeometryBuilder.trackerParameters_cff import * -from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import * -from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import * -trackerGeometry.applyAlignment = cms.bool(False) - -# calo -from Geometry.CaloEventSetup.HGCalV9Topology_cfi import * -from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import * -from Geometry.CaloEventSetup.CaloTopology_cfi import * -from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import * -CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder", - SelectedCalos = cms.vstring("HCAL", - "ZDC", - "EcalBarrel", - "TOWER", - "HGCalEESensitive", - "HGCalHESiliconSensitive", - "HGCalHEScintillatorSensitive" - ) -) -from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import * -from Geometry.HcalEventSetup.HcalGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import * -from Geometry.HcalEventSetup.CaloTowerTopology_cfi import * -from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import * -from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import * -from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import * -from Geometry.EcalMapping.EcalMapping_cfi import * -from Geometry.EcalMapping.EcalMappingRecord_cfi import * - -# muon -from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * -from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * -from Geometry.GEMGeometryBuilder.gemGeometry_cfi import * -from Geometry.GEMGeometryBuilder.me0Geometry_cfi import * -from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * -from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * - -# forward -from Geometry.ForwardGeometry.ForwardGeometry_cfi import * - -# timing -from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import * -from Geometry.MTDGeometryBuilder.mtdParameters_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * -from Geometry.MTDNumberingBuilder.mtdTopology_cfi import * -from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import * -from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import * -mtdGeometry.applyAlignment = cms.bool(False) - diff --git a/Configuration/Geometry/python/GeometryExtended2026D75_cff.py b/Configuration/Geometry/python/GeometryExtended2026D75_cff.py deleted file mode 100644 index 1b6328cbf541e..0000000000000 --- a/Configuration/Geometry/python/GeometryExtended2026D75_cff.py +++ /dev/null @@ -1,14 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -from Geometry.CMSCommonData.cmsExtendedGeometry2026D75XML_cfi import * -from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import * -from Geometry.EcalCommonData.ecalSimulationParameters_cff import * -from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * -from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import * -from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import * -from Geometry.MuonNumbering.muonGeometryConstants_cff import * -from Geometry.MuonNumbering.muonOffsetESProducer_cff import * -from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * diff --git a/Configuration/Geometry/python/GeometryExtended2026D69Reco_cff.py b/Configuration/Geometry/python/GeometryExtended2026D82Reco_cff.py similarity index 95% rename from Configuration/Geometry/python/GeometryExtended2026D69Reco_cff.py rename to Configuration/Geometry/python/GeometryExtended2026D82Reco_cff.py index e8d869724eafa..3d2e43b66af90 100644 --- a/Configuration/Geometry/python/GeometryExtended2026D69Reco_cff.py +++ b/Configuration/Geometry/python/GeometryExtended2026D82Reco_cff.py @@ -3,7 +3,7 @@ # This config was generated automatically using generate2026Geometry.py # If you notice a mistake, please update the generating script, not just this config -from Configuration.Geometry.GeometryExtended2026D69_cff import * +from Configuration.Geometry.GeometryExtended2026D82_cff import * # tracker from Geometry.CommonTopologies.globalTrackingGeometry_cfi import * @@ -45,7 +45,6 @@ from Geometry.MuonNumbering.muonNumberingInitialization_cfi import * from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import * from Geometry.GEMGeometryBuilder.gemGeometry_cfi import * -from Geometry.GEMGeometryBuilder.me0Geometry_cfi import * from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import * from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import * diff --git a/Configuration/Geometry/python/GeometryExtended2026D69_cff.py b/Configuration/Geometry/python/GeometryExtended2026D82_cff.py similarity index 93% rename from Configuration/Geometry/python/GeometryExtended2026D69_cff.py rename to Configuration/Geometry/python/GeometryExtended2026D82_cff.py index 2e385ef81c7e3..e6d683b8e84b3 100644 --- a/Configuration/Geometry/python/GeometryExtended2026D69_cff.py +++ b/Configuration/Geometry/python/GeometryExtended2026D82_cff.py @@ -3,7 +3,7 @@ # This config was generated automatically using generate2026Geometry.py # If you notice a mistake, please update the generating script, not just this config -from Geometry.CMSCommonData.cmsExtendedGeometry2026D69XML_cfi import * +from Geometry.CMSCommonData.cmsExtendedGeometry2026D82XML_cfi import * from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi import * from Geometry.EcalCommonData.ecalSimulationParameters_cff import * from Geometry.HcalCommonData.hcalDDDSimConstants_cff import * @@ -13,5 +13,4 @@ from Geometry.ForwardCommonData.hfnoseNumberingInitialization_cfi import * from Geometry.MuonNumbering.muonGeometryConstants_cff import * from Geometry.MuonNumbering.muonOffsetESProducer_cff import * - from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import * diff --git a/Configuration/Geometry/python/dict2021Geometry.py b/Configuration/Geometry/python/dict2021Geometry.py index 238366a036290..0a8bef7a8026a 100644 --- a/Configuration/Geometry/python/dict2021Geometry.py +++ b/Configuration/Geometry/python/dict2021Geometry.py @@ -557,7 +557,7 @@ "T3" : { 1 : [ 'Geometry/TrackerCommonData/data/PhaseI/trackerParameters.xml', - 'Geometry/TrackerCommonData/data/pixfwdMaterials/2021/v2/pixfwdMaterials.xml', + 'Geometry/TrackerCommonData/data/pixfwdMaterials/2021/v3/pixfwdMaterials.xml', 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdCylinder.xml', 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdDisks.xml', @@ -1784,7 +1784,7 @@ "default" : 1, "C1" : { 1 : [ - 'Geometry/EcalCommonData/data/ebcon.xml', + 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/eecon.xml', 'Geometry/EcalCommonData/data/escon.xml', 'Geometry/EcalCommonData/data/eregalgo/2017/v1/eregalgo.xml', @@ -1994,8 +1994,8 @@ 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_124.xml', 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_125.xml', 'Geometry/VeryForwardData/data/RP_Device.xml', - 'Geometry/VeryForwardData/data/RP_Vertical_Device.xml', - 'Geometry/VeryForwardData/data/RP_Horizontal_Device.xml', + 'Geometry/VeryForwardData/data/RP_Vertical_Device/2021/v1/RP_Vertical_Device.xml', + 'Geometry/VeryForwardData/data/RP_Horizontal_Device/2021/v1/RP_Horizontal_Device.xml', 'Geometry/VeryForwardData/data/CTPPS_2018/CTPPS_220_Right_Station.xml', 'Geometry/VeryForwardData/data/CTPPS_2018/CTPPS_220_Left_Station.xml', 'Geometry/VeryForwardData/data/CTPPS_2018/CTPPS_210_Right_Station.xml', @@ -2097,8 +2097,8 @@ 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_124.xml', 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_125.xml', 'Geometry/VeryForwardData/data/RP_Device.xml', - 'Geometry/VeryForwardData/data/RP_Vertical_Device.xml', - 'Geometry/VeryForwardData/data/RP_Horizontal_Device.xml', + 'Geometry/VeryForwardData/data/RP_Vertical_Device/2021/v1/RP_Vertical_Device.xml', + 'Geometry/VeryForwardData/data/RP_Horizontal_Device/2021/v1/RP_Horizontal_Device.xml', 'Geometry/VeryForwardData/data/CTPPS_2018/CTPPS_220_Right_Station.xml', 'Geometry/VeryForwardData/data/CTPPS_2018/CTPPS_220_Left_Station.xml', 'Geometry/VeryForwardData/data/CTPPS_2018/CTPPS_210_Right_Station.xml', @@ -2200,8 +2200,8 @@ 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_124.xml', 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_125.xml', 'Geometry/VeryForwardData/data/RP_Device.xml', - 'Geometry/VeryForwardData/data/RP_Vertical_Device.xml', - 'Geometry/VeryForwardData/data/RP_Horizontal_Device.xml', + 'Geometry/VeryForwardData/data/RP_Vertical_Device/2021/v1/RP_Vertical_Device.xml', + 'Geometry/VeryForwardData/data/RP_Horizontal_Device/2021/v1/RP_Horizontal_Device.xml', 'Geometry/VeryForwardData/data/CTPPS_2018/CTPPS_220_Right_Station/v1/CTPPS_220_Right_Station.xml', 'Geometry/VeryForwardData/data/CTPPS_2018/CTPPS_220_Left_Station/v1/CTPPS_220_Left_Station.xml', 'Geometry/VeryForwardData/data/CTPPS_2018/CTPPS_210_Right_Station/v1/CTPPS_210_Right_Station.xml', diff --git a/Configuration/Geometry/python/dict2026Geometry.py b/Configuration/Geometry/python/dict2026Geometry.py index d0199c57456c0..6df083cbff50f 100644 --- a/Configuration/Geometry/python/dict2026Geometry.py +++ b/Configuration/Geometry/python/dict2026Geometry.py @@ -309,7 +309,6 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackersens.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/pixelsens.xml', 'Geometry/TrackerRecoData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/trackerRecoMaterial.xml', - 'SimTracker/TrackerMaterialAnalysis/data/trackingMaterialGroups_ForPhaseII/v1/trackingMaterialGroups_ForPhaseII.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', @@ -344,7 +343,6 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackersens.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/pixelsens.xml', 'Geometry/TrackerRecoData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/trackerRecoMaterial.xml', - 'SimTracker/TrackerMaterialAnalysis/data/trackingMaterialGroups_ForPhaseII/v1/trackingMaterialGroups_ForPhaseII.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', @@ -599,7 +597,7 @@ ], "era" : "phase2_ecal, phase2_hcal, phase2_hgcal, hcalHardcodeConditions, phase2_hgcalV10, phase2_hgcalV11, phase2_hgcalV12", }, - "C12" : { + "C13" : { 1 : [ 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', @@ -617,18 +615,14 @@ 'Geometry/HcalCommonData/data/hcalRecNumbering/NoHE/hcalRecNumbering.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', 'Geometry/HGCalCommonData/data/hgcalMaterial/v1/hgcalMaterial.xml', - 'Geometry/HGCalCommonData/data/hgcal/v12/hgcal.xml', + 'Geometry/HGCalCommonData/data/hgcal/v13/hgcal.xml', 'Geometry/HGCalCommonData/data/hgcalcell/v9/hgcalcell.xml', 'Geometry/HGCalCommonData/data/hgcalwafer/v9/hgcalwafer.xml', 'Geometry/HGCalCommonData/data/hgcalEE/v12/hgcalEE.xml', 'Geometry/HGCalCommonData/data/hgcalHEsil/v12/hgcalHEsil.xml', 'Geometry/HGCalCommonData/data/hgcalHEmix/v12/hgcalHEmix.xml', - 'Geometry/HGCalCommonData/data/hgcalCons/v12/hgcalCons.xml', - 'Geometry/ForwardCommonData/data/hfnose/v4/hfnose.xml', - 'Geometry/ForwardCommonData/data/hfnoseCell/v1/hfnoseCell.xml', - 'Geometry/ForwardCommonData/data/hfnoseWafer/v1/hfnoseWafer.xml', - 'Geometry/ForwardCommonData/data/hfnoseLayer/v2/hfnoseLayer.xml', - 'Geometry/ForwardCommonData/data/hfnoseCons/v1m/hfnoseCons.xml', + 'Geometry/HGCalCommonData/data/hgcalCons/v13/hgcalCons.xml', + 'Geometry/HGCalCommonData/data/hgcalConsData/v13/hgcalConsData.xml', ], 3 : [ 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml', @@ -636,29 +630,23 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v5/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2026/v2/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv9.xml', - 'Geometry/ForwardSimData/data/hfnosesens.xml', ], 4 : [ 'Geometry/HcalSimData/data/HcalProdCuts/2021/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv9.xml', - 'Geometry/ForwardSimData/data/hfnoseProdCuts.xml', ], "sim" : [ 'from Geometry.EcalCommonData.ecalSimulationParameters_cff import *', 'from Geometry.HcalCommonData.hcalDDDSimConstants_cff import *', 'from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import *', - 'from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import *', - 'from Geometry.ForwardCommonData.hfnoseParametersInitialization_cfi import *', - 'from Geometry.ForwardCommonData.hfnoseNumberingInitialization_cfi import *', + 'from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import *' ], "reco" : [ 'from Geometry.CaloEventSetup.HGCalV9Topology_cfi import *', 'from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import *', - 'from Geometry.CaloEventSetup.HFNoseTopology_cfi import *', - 'from Geometry.ForwardGeometry.HFNoseGeometryESProducer_cfi import *', 'from Geometry.CaloEventSetup.CaloTopology_cfi import *', 'from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import *', 'CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder",', @@ -668,8 +656,7 @@ ' "TOWER",', ' "HGCalEESensitive",', ' "HGCalHESiliconSensitive",', - ' "HGCalHEScintillatorSensitive",', - ' "HGCalHFNoseSensitive",', + ' "HGCalHEScintillatorSensitive"', ' )', ')', 'from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import *', @@ -684,7 +671,7 @@ ], "era" : "phase2_ecal, phase2_hcal, phase2_hgcal, hcalHardcodeConditions, phase2_hgcalV10, phase2_hgcalV11, phase2_hgcalV12, phase2_hfnose", }, - "C13" : { + "C14" : { 1 : [ 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', @@ -696,19 +683,19 @@ 'Geometry/HcalCommonData/data/hcal/v2/hcalalgo.xml', 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', 'Geometry/HcalCommonData/data/hcalcablealgo/v2/hcalcablealgo.xml', - 'Geometry/HcalCommonData/data/hcalouteralgo.xml', + 'Geometry/HcalCommonData/data/hcalouteralgo/v1/hcalouteralgo.xml', 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', 'Geometry/HcalCommonData/data/hcalSimNumbering/NoHE/hcalSimNumbering.xml', 'Geometry/HcalCommonData/data/hcalRecNumbering/NoHE/hcalRecNumbering.xml', 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', 'Geometry/HGCalCommonData/data/hgcalMaterial/v1/hgcalMaterial.xml', - 'Geometry/HGCalCommonData/data/hgcal/v13/hgcal.xml', + 'Geometry/HGCalCommonData/data/hgcal/v14/hgcal.xml', 'Geometry/HGCalCommonData/data/hgcalcell/v9/hgcalcell.xml', 'Geometry/HGCalCommonData/data/hgcalwafer/v9/hgcalwafer.xml', - 'Geometry/HGCalCommonData/data/hgcalEE/v12/hgcalEE.xml', - 'Geometry/HGCalCommonData/data/hgcalHEsil/v12/hgcalHEsil.xml', - 'Geometry/HGCalCommonData/data/hgcalHEmix/v12/hgcalHEmix.xml', - 'Geometry/HGCalCommonData/data/hgcalCons/v13/hgcalCons.xml', + 'Geometry/HGCalCommonData/data/hgcalEE/v14/hgcalEE.xml', + 'Geometry/HGCalCommonData/data/hgcalHEsil/v14/hgcalHEsil.xml', + 'Geometry/HGCalCommonData/data/hgcalHEmix/v14/hgcalHEmix.xml', + 'Geometry/HGCalCommonData/data/hgcalCons/v14/hgcalCons.xml', 'Geometry/HGCalCommonData/data/hgcalConsData/v13/hgcalConsData.xml', ], 3 : [ @@ -717,7 +704,7 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv9.xml', ], 4 : [ @@ -758,7 +745,7 @@ ], "era" : "phase2_ecal, phase2_hcal, phase2_hgcal, hcalHardcodeConditions, phase2_hgcalV10, phase2_hgcalV11, phase2_hgcalV12, phase2_hfnose", }, - "C14" : { + "C15" : { 1 : [ 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', @@ -784,6 +771,11 @@ 'Geometry/HGCalCommonData/data/hgcalHEmix/v14/hgcalHEmix.xml', 'Geometry/HGCalCommonData/data/hgcalCons/v14/hgcalCons.xml', 'Geometry/HGCalCommonData/data/hgcalConsData/v13/hgcalConsData.xml', + 'Geometry/ForwardCommonData/data/hfnose/v4/hfnose.xml', + 'Geometry/ForwardCommonData/data/hfnoseCell/v1/hfnoseCell.xml', + 'Geometry/ForwardCommonData/data/hfnoseWafer/v1/hfnoseWafer.xml', + 'Geometry/ForwardCommonData/data/hfnoseLayer/v2/hfnoseLayer.xml', + 'Geometry/ForwardCommonData/data/hfnoseCons/v1m/hfnoseCons.xml', ], 3 : [ 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml', @@ -791,23 +783,29 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2026/v5c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv9.xml', + 'Geometry/ForwardSimData/data/hfnosesens.xml', ], 4 : [ 'Geometry/HcalSimData/data/HcalProdCuts/2021/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv9.xml', + 'Geometry/ForwardSimData/data/hfnoseProdCuts.xml', ], "sim" : [ 'from Geometry.EcalCommonData.ecalSimulationParameters_cff import *', 'from Geometry.HcalCommonData.hcalDDDSimConstants_cff import *', 'from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import *', - 'from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import *' + 'from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import *', + 'from Geometry.ForwardCommonData.hfnoseParametersInitialization_cfi import *', + 'from Geometry.ForwardCommonData.hfnoseNumberingInitialization_cfi import *', ], "reco" : [ 'from Geometry.CaloEventSetup.HGCalV9Topology_cfi import *', 'from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import *', + 'from Geometry.CaloEventSetup.HFNoseTopology_cfi import *', + 'from Geometry.ForwardGeometry.HFNoseGeometryESProducer_cfi import *', 'from Geometry.CaloEventSetup.CaloTopology_cfi import *', 'from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import *', 'CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder",', @@ -817,7 +815,8 @@ ' "TOWER",', ' "HGCalEESensitive",', ' "HGCalHESiliconSensitive",', - ' "HGCalHEScintillatorSensitive"', + ' "HGCalHEScintillatorSensitive",', + ' "HGCalHFNoseSensitive",', ' )', ')', 'from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import *', @@ -980,53 +979,6 @@ ], "era" : "phase2_muon, phase2_GEM", }, - "M8" : { - 1 : [ - 'Geometry/MuonCommonData/data/mbCommon/2021/v1/mbCommon.xml', - 'Geometry/MuonCommonData/data/mb1/2015/v2/mb1.xml', - 'Geometry/MuonCommonData/data/mb2/2015/v2/mb2.xml', - 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', - 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', - 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v1/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v6/mf.xml', - 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', - 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', - 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v4/mfshield.xml', - 'Geometry/MuonCommonData/data/me0/TDR_Dev/v3/me0.xml', - ], - 2 : [ - 'Geometry/MuonCommonData/data/muonNumbering/TDR_DeV/v1/muonNumbering.xml', - ], - 3 : [ - 'Geometry/MuonSimData/data/PhaseII/ME0EtaPart/muonSens.xml', - 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', - 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', - 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', - 'Geometry/GEMGeometryBuilder/data/v11/GEMSpecsFilter.xml', - 'Geometry/GEMGeometryBuilder/data/v11/GEMSpecs.xml', - ], - 4 : [ - 'Geometry/MuonSimData/data/PhaseII/muonProdCuts.xml', - ], - "sim" : [ - 'from Geometry.MuonNumbering.muonGeometryConstants_cff import *', - 'from Geometry.MuonNumbering.muonOffsetESProducer_cff import *', - ], - "reco" : [ - 'from Geometry.MuonNumbering.muonNumberingInitialization_cfi import *', - 'from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import *', - 'from Geometry.GEMGeometryBuilder.gemGeometry_cfi import *', - 'from Geometry.GEMGeometryBuilder.me0Geometry_cfi import *', - 'from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import *', - 'from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import *', - ], - "era" : "phase2_muon, phase2_GEM", - }, "M9" : { 1 : [ 'Geometry/MuonCommonData/data/mbCommon/2021/v1/mbCommon.xml', @@ -1156,11 +1108,11 @@ 'from Geometry.ForwardGeometry.ForwardGeometry_cfi import *', ] }, - "F5" : { + "F6" : { 1 : [ - 'Geometry/ForwardCommonData/data/forwardshield/2026/v3/forwardshield.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/brmrotations.xml', - 'Geometry/ForwardCommonData/data/brm/2026/v2/brm.xml', + 'Geometry/ForwardCommonData/data/brm/2026/v1/brm.xml', 'Geometry/ForwardCommonData/data/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', @@ -1177,17 +1129,15 @@ 'Geometry/ForwardSimData/data/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', ], - "sim" : [ - ], "reco" :[ 'from Geometry.ForwardGeometry.ForwardGeometry_cfi import *', ] }, - "F6" : { + "F7" : { 1 : [ 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/brmrotations.xml', - 'Geometry/ForwardCommonData/data/brm/2026/v1/brm.xml', + 'Geometry/ForwardCommonData/data/brm/2026/v3/brm.xml', 'Geometry/ForwardCommonData/data/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', @@ -1270,34 +1220,6 @@ ], "era" : "phase2_timing, phase2_timing_layer", }, - "I12" : { - 1 : [ - 'Geometry/MTDCommonData/data/mtdMaterial/v2/mtdMaterial.xml', - 'Geometry/MTDCommonData/data/btl/v1/btl.xml', - 'Geometry/MTDCommonData/data/etl/v4/etl.xml', - 'Geometry/MTDCommonData/data/mtdParameters/v2/mtdStructureTopology.xml', - 'Geometry/MTDCommonData/data/mtdParameters/v2/mtdParameters.xml', - ], - 3 : [ - 'Geometry/MTDSimData/data/v2/mtdsens.xml' - ], - 4 : [ - 'Geometry/MTDSimData/data/v2/mtdProdCuts.xml' - ], - "sim" : [ - 'from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import *', - ], - "reco" :[ - 'from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import *', - 'from Geometry.MTDGeometryBuilder.mtdParameters_cff import *', - 'from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import *', - 'from Geometry.MTDNumberingBuilder.mtdTopology_cfi import *', - 'from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import *', - 'from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import *', - 'mtdGeometry.applyAlignment = cms.bool(False)' - ], - "era" : "phase2_timing, phase2_timing_layer, phase2_etlV4", - }, "I13" : { 1 : [ 'Geometry/MTDCommonData/data/mtdMaterial/v2/mtdMaterial.xml', @@ -1332,26 +1254,17 @@ detectorVersionDict = { ("O4","T15","C9","M4","F2","I10") : "D49", - ("O4","T15","C9","M4","F2","I11") : "D50", ("O4","T15","C10","M4","F3","I10") : "D60", - ("O5","T22","C11","M4","F4","I11") : "D64", - ("O5","T23","C11","M4","F4","I11") : "D65", - ("O5","T21","C11","M8","F4","I11") : "D66", - ("O5","T21","C11","M9","F4","I11") : "D67", ("O5","T21","C11","M6","F4","I11") : "D68", - ("O5","T21","C12","M6","F5","I11") : "D69", ("O6","T21","C13","M7","F6","I11") : "D70", - ("O7","T21","C14","M7","F6","I11") : "D71", - ("O5","T21","C11","M6","F4","I12") : "D72", - ("O7","T21","C14","M9","F6","I11") : "D74", - ("O7","T21","C14","M7","F6","I13") : "D75", ("O7","T21","C14","M9","F6","I13") : "D76", ("O7","T24","C14","M9","F6","I13") : "D77", ("O7","T22","C14","M9","F6","I13") : "D78", ("O7","T23","C14","M9","F6","I13") : "D79", ("O7","T25","C14","M9","F6","I13") : "D80", ("O7","T26","C14","M9","F6","I13") : "D81", + ("O7","T21","C15","M9","F7","I13") : "D82", } -deprecatedDets = set([ "D1", "D2", "D3", "D5", "D6" , "D7", "D4", "D8" , "D9", "D12", "D13", "D15", "D10", "D11", "D14", "D16", "D17", "D18", "D19", "D20", "D21", "D22", "D23", "D24", "D25", "D26", "D27", "D28", "D29", "D30", "D31", "D32", "D33", "D34", "D36", "D37", "D38", "D39", "D40", "D42", "D35", "D41", "D43", "D44", "D45", "D46", "D48", "D47", "D51", "D52", "D53", "D54", "D55", "D56", "D57", "D58", "D59", "D61", "D62", "D63", "D73" ]) -deprecatedSubdets = set([ "T1", "T2" ,"T3", "T4", "T5", "T6", "T7", "T8", "T9", "T10", "T11", "T12", "T13", "T14", "T16", "T17", "T18", "T19", "T20", "C1", "C2", "C3", "C5", "C7", "M1", "I1", "I2", "I3", "I4", "I6", "I8", "O1", "F1", "C4", "C6", "C8", "M2", "M3", "I5", "I7", "I9", "O2", "O3", "M5" ]) +deprecatedDets = set([ "D1", "D2", "D3", "D5", "D6" , "D7", "D4", "D8" , "D9", "D12", "D13", "D15", "D10", "D11", "D14", "D16", "D17", "D18", "D19", "D20", "D21", "D22", "D23", "D24", "D25", "D26", "D27", "D28", "D29", "D30", "D31", "D32", "D33", "D34", "D36", "D37", "D38", "D39", "D40", "D42", "D35", "D41", "D43", "D44", "D45", "D46", "D48", "D47", "D50", "D51", "D52", "D53", "D54", "D55", "D56", "D57", "D58", "D59", "D61", "D62", "D63", "D64", "D65", "D66", "D67", "D69", "D71", "D72", "D73", "D74", "D75"]) +deprecatedSubdets = set([ "T1", "T2" ,"T3", "T4", "T5", "T6", "T7", "T8", "T9", "T10", "T11", "T12", "T13", "T14", "T16", "T17", "T18", "T19", "T20", "C1", "C2", "C3", "C4", "C5", "C6", "C7", "C8", "C12", "M1", "M2", "M3", "M5", "M8", "I1", "I2", "I3", "I4", "I5", "I6", "I7", "I8", "I9", "I12", "O1", "O2", "O3", "F1", "F5"]) diff --git a/Configuration/HLT/python/addOnTestsHLT.py b/Configuration/HLT/python/addOnTestsHLT.py index 46e02a4679e3d..c49ace09eef0a 100644 --- a/Configuration/HLT/python/addOnTestsHLT.py +++ b/Configuration/HLT/python/addOnTestsHLT.py @@ -33,16 +33,16 @@ def addOnTestsHLT(): 'cmsDriver.py RelVal -s HLT:Fake2,RAW2DIGI,L1Reco,RECO --data --scenario=pp -n 10 --conditions auto:run2_data_Fake2 --relval 9000,50 --datatier "RAW-HLT-RECO" --eventcontent FEVTDEBUGHLT --customise=HLTrigger/Configuration/CustomConfigs.L1THLT --era Run2_2016 --processName=HLTRECO --filein file:RelVal_Raw_Fake2_DATA.root --fileout file:RelVal_Raw_Fake2_DATA_HLT_RECO.root'], 'hlt_data_GRun' : ['cmsDriver.py RelVal -s L1REPACK:Full --data --scenario=pp -n 10 --conditions auto:run3_hlt_GRun --relval 9000,50 --datatier "RAW" --eventcontent RAW --customise=HLTrigger/Configuration/CustomConfigs.L1T --era Run3 --fileout file:RelVal_Raw_GRun_DATA.root --filein /store/data/Run2018D/EphemeralHLTPhysics1/RAW/v1/000/323/775/00000/2E066536-5CF2-B340-A73B-209640F29FF6.root --customise_commands=\'if hasattr(process,"simMuonGEMPadTask"): setattr(process,"simMuonGEMPadTask",cms.Task())\'', 'HLTrigger/Configuration/test/OnLine_HLT_GRun.py', - 'cmsDriver.py RelVal -s HLT:GRun,RAW2DIGI,L1Reco,RECO --data --scenario=pp -n 10 --conditions auto:run3_data_GRun --relval 9000,50 --datatier "RAW-HLT-RECO" --eventcontent FEVTDEBUGHLT --customise=HLTrigger/Configuration/CustomConfigs.L1THLT --era Run3 --processName=HLTRECO --filein file:RelVal_Raw_GRun_DATA.root --fileout file:RelVal_Raw_GRun_DATA_HLT_RECO.root'], + 'cmsDriver.py RelVal -s HLT:GRun,RAW2DIGI,L1Reco,RECO --data --scenario=pp -n 10 --conditions auto:run3_data_GRun --relval 9000,50 --datatier "RAW-HLT-RECO" --eventcontent FEVTDEBUGHLT --customise=HLTrigger/Configuration/CustomConfigs.L1THLT,HLTrigger/Configuration/CustomConfigs.CTPPSRun2Geometry --era Run3 --processName=HLTRECO --filein file:RelVal_Raw_GRun_DATA.root --fileout file:RelVal_Raw_GRun_DATA_HLT_RECO.root'], 'hlt_data_HIon' : ['cmsDriver.py RelVal -s L1REPACK:Full --data --scenario=pp -n 10 --conditions auto:run3_hlt_HIon --relval 9000,50 --datatier "RAW" --eventcontent RAW --customise=HLTrigger/Configuration/CustomConfigs.L1T --era Run3_pp_on_PbPb --fileout file:RelVal_Raw_HIon_DATA.root --filein /store/data/Run2018D/HIMinimumBias0/RAW/v1/000/325/112/00000/660F62BB-9932-D645-A4A4-0BBBDA3963E8.root --customise_commands=\'if hasattr(process,"simMuonGEMPadTask"): setattr(process,"simMuonGEMPadTask",cms.Task()); from FWCore.ParameterSet.MassReplace import massSearchReplaceAnyInputTag; massSearchReplaceAnyInputTag(process.SimL1Emulator,"rawDataCollector","rawDataRepacker",False,True)\'', 'HLTrigger/Configuration/test/OnLine_HLT_HIon.py', - 'cmsDriver.py RelVal -s HLT:HIon,RAW2DIGI,L1Reco,RECO --data --scenario=pp -n 10 --conditions auto:run3_data_HIon --relval 9000,50 --datatier "RAW-HLT-RECO" --eventcontent FEVTDEBUGHLT --customise=HLTrigger/Configuration/CustomConfigs.L1THLT --era Run3_pp_on_PbPb --processName=HLTRECO --filein file:RelVal_Raw_HIon_DATA.root --fileout file:RelVal_Raw_HIon_DATA_HLT_RECO.root'], + 'cmsDriver.py RelVal -s HLT:HIon,RAW2DIGI,L1Reco,RECO --data --scenario=pp -n 10 --conditions auto:run3_data_HIon --relval 9000,50 --datatier "RAW-HLT-RECO" --eventcontent FEVTDEBUGHLT --customise=HLTrigger/Configuration/CustomConfigs.L1THLT,HLTrigger/Configuration/CustomConfigs.CTPPSRun2Geometry --era Run3_pp_on_PbPb --processName=HLTRECO --filein file:RelVal_Raw_HIon_DATA.root --fileout file:RelVal_Raw_HIon_DATA_HLT_RECO.root'], 'hlt_data_PIon' : ['cmsDriver.py RelVal -s L1REPACK:Full --data --scenario=pp -n 10 --conditions auto:run3_hlt_PIon --relval 9000,50 --datatier "RAW" --customise=HLTrigger/Configuration/CustomConfigs.L1T --era Run3 --eventcontent RAW --fileout file:RelVal_Raw_PIon_DATA.root --filein /store/data/Run2018D/EphemeralHLTPhysics1/RAW/v1/000/323/775/00000/2E066536-5CF2-B340-A73B-209640F29FF6.root --customise_commands=\'if hasattr(process,"simMuonGEMPadTask"): setattr(process,"simMuonGEMPadTask",cms.Task())\'', 'HLTrigger/Configuration/test/OnLine_HLT_PIon.py', - 'cmsDriver.py RelVal -s HLT:PIon,RAW2DIGI,L1Reco,RECO --data --scenario=pp -n 10 --conditions auto:run3_data_PIon --relval 9000,50 --datatier "RAW-HLT-RECO" --eventcontent FEVTDEBUGHLT --customise=HLTrigger/Configuration/CustomConfigs.L1THLT --era Run3 --processName=HLTRECO --filein file:RelVal_Raw_PIon_DATA.root --fileout file:RelVal_Raw_PIon_DATA_HLT_RECO.root'], + 'cmsDriver.py RelVal -s HLT:PIon,RAW2DIGI,L1Reco,RECO --data --scenario=pp -n 10 --conditions auto:run3_data_PIon --relval 9000,50 --datatier "RAW-HLT-RECO" --eventcontent FEVTDEBUGHLT --customise=HLTrigger/Configuration/CustomConfigs.L1THLT,HLTrigger/Configuration/CustomConfigs.CTPPSRun2Geometry --era Run3 --processName=HLTRECO --filein file:RelVal_Raw_PIon_DATA.root --fileout file:RelVal_Raw_PIon_DATA_HLT_RECO.root'], 'hlt_data_PRef' : ['cmsDriver.py RelVal -s L1REPACK:Full --data --scenario=pp -n 10 --conditions auto:run3_hlt_PRef --relval 9000,50 --datatier "RAW" --customise=HLTrigger/Configuration/CustomConfigs.L1T --era Run3 --eventcontent RAW --fileout file:RelVal_Raw_PRef_DATA.root --filein /store/data/Run2018D/EphemeralHLTPhysics1/RAW/v1/000/323/775/00000/2E066536-5CF2-B340-A73B-209640F29FF6.root --customise_commands=\'if hasattr(process,"simMuonGEMPadTask"): setattr(process,"simMuonGEMPadTask",cms.Task())\'', 'HLTrigger/Configuration/test/OnLine_HLT_PRef.py', - 'cmsDriver.py RelVal -s HLT:PRef,RAW2DIGI,L1Reco,RECO --data --scenario=pp -n 10 --conditions auto:run3_data_PRef --relval 9000,50 --datatier "RAW-HLT-RECO" --eventcontent FEVTDEBUGHLT --customise=HLTrigger/Configuration/CustomConfigs.L1THLT --era Run3 --processName=HLTRECO --filein file:RelVal_Raw_PRef_DATA.root --fileout file:RelVal_Raw_PRef_DATA_HLT_RECO.root'], + 'cmsDriver.py RelVal -s HLT:PRef,RAW2DIGI,L1Reco,RECO --data --scenario=pp -n 10 --conditions auto:run3_data_PRef --relval 9000,50 --datatier "RAW-HLT-RECO" --eventcontent FEVTDEBUGHLT --customise=HLTrigger/Configuration/CustomConfigs.L1THLT,HLTrigger/Configuration/CustomConfigs.CTPPSRun2Geometry --era Run3 --processName=HLTRECO --filein file:RelVal_Raw_PRef_DATA.root --fileout file:RelVal_Raw_PRef_DATA_HLT_RECO.root'], } return addOnTestsHLT diff --git a/Configuration/HLT/python/autoCondHLT.py b/Configuration/HLT/python/autoCondHLT.py index e6fe26bee0bdb..f79c5f2d6f3a4 100644 --- a/Configuration/HLT/python/autoCondHLT.py +++ b/Configuration/HLT/python/autoCondHLT.py @@ -39,13 +39,13 @@ 'run3_mc_PIon' : ('phase1_2021_realistic' ,l1Menus['PIon']), 'run3_mc_PRef' : ('phase1_2021_realistic' ,l1Menus['PRef']), - 'run1_hlt_Fake' : ('run1_hlt' ,l1Menus['Fake']), + 'run1_hlt_Fake' : ('run1_hlt_relval' ,l1Menus['Fake']), 'run2_hlt_Fake' : ('run2_hlt_relval' ,l1Menus['Fake']), 'run2_hlt_Fake1' : ('run2_hlt_relval' ,l1Menus['Fake1']), 'run2_hlt_Fake2' : ('run2_hlt_relval' ,l1Menus['Fake2']), 'run3_hlt_FULL' : ('run2_hlt_relval' ,l1Menus['FULL']), 'run3_hlt_GRun' : ('run2_hlt_relval' ,l1Menus['GRun']), - 'run3_hlt_HIon' : ('run2_hlt_relval_hi' ,l1Menus['HIon']), + 'run3_hlt_HIon' : ('run2_hlt_relval' ,l1Menus['HIon']), 'run3_hlt_PIon' : ('run2_hlt_relval' ,l1Menus['PIon']), 'run3_hlt_PRef' : ('run2_hlt_relval' ,l1Menus['PRef']), diff --git a/Configuration/PyReleaseValidation/README.md b/Configuration/PyReleaseValidation/README.md index bc96f79aa2f69..a4caaddabebfa 100644 --- a/Configuration/PyReleaseValidation/README.md +++ b/Configuration/PyReleaseValidation/README.md @@ -31,6 +31,14 @@ The offsets currently in use are: * 0.3: 0.1 + 0.2 * 0.4: LowPU tracking era, `Run2_2017_trackingLowPU` * 0.5: Pixel tracking only + 0.1 +* 0.501: Patatrack, pixel only quadruplets, on CPU +* 0.502: Patatrack, pixel only quadruplets, on GPU +* 0.505: Patatrack, pixel only triplets, on CPU +* 0.506: Patatrack, pixel only triplets, on GPU +* 0.511: Patatrack, ECAL only CPU +* 0.512: Patatrack, ECAL only GPU +* 0.521: Patatrack, HCAL only CPU +* 0.522: Patatrack, HCAL only GPU * 0.6: HE Collapse (old depth segmentation for 2018) * 0.7: trackingMkFit modifier * 0.8: BPH Parking (Run-2) @@ -52,10 +60,4 @@ The offsets currently in use are: * 0.911: DD4Hep * 0.101: Phase-2 aging, 1000fb-1 * 0.103: Phase-2 aging, 3000fb-1 -* 0.501: Patatrack, pixel only CPU -* 0.502: Patatrack, pixel only GPU -* 0.511: Patatrack, ECAL only CPU -* 0.512: Patatrack, ECAL only GPU -* 0.521: Patatrack, HCAL only CPU -* 0.522: Patatrack, HCAL only GPU * 0.9001: Sonic Triton diff --git a/Configuration/PyReleaseValidation/python/MatrixInjector.py b/Configuration/PyReleaseValidation/python/MatrixInjector.py index 102f822a2dea5..6d8a1223ef32e 100644 --- a/Configuration/PyReleaseValidation/python/MatrixInjector.py +++ b/Configuration/PyReleaseValidation/python/MatrixInjector.py @@ -65,16 +65,29 @@ def __init__(self,opt,mode='init',options=''): if(opt.batchName): self.batchName = '__'+opt.batchName+'-'+self.batchTime - #wagemt stuff + # WMagent url if not self.wmagent: - self.wmagent=os.getenv('WMAGENT_REQMGR') + # Overwrite with env variable + self.wmagent = os.getenv('WMAGENT_REQMGR') + if not self.wmagent: - if not opt.testbed : + # Default values + if not opt.testbed: self.wmagent = 'cmsweb.cern.ch' - self.DbsUrl = "https://"+self.wmagent+"/dbs/prod/global/DBSReader" - else : + else: self.wmagent = 'cmsweb-testbed.cern.ch' - self.DbsUrl = "https://"+self.wmagent+"/dbs/int/global/DBSReader" + + # DBSReader url + if opt.dbsUrl is not None: + self.DbsUrl = opt.dbsUrl + elif os.getenv('CMS_DBSREADER_URL') is not None: + self.DbsUrl = os.getenv('CMS_DBSREADER_URL') + else: + # Default values + if not opt.testbed: + self.DbsUrl = "https://cmsweb-prod.cern.ch/dbs/prod/global/DBSReader" + else: + self.DbsUrl = "https://cmsweb-testbed.cern.ch/dbs/int/global/DBSReader" if not self.dqmgui: self.dqmgui="https://cmsweb.cern.ch/dqm/relval" diff --git a/Configuration/PyReleaseValidation/python/MatrixReader.py b/Configuration/PyReleaseValidation/python/MatrixReader.py index e67034266b47f..c2f9fd9fac47c 100644 --- a/Configuration/PyReleaseValidation/python/MatrixReader.py +++ b/Configuration/PyReleaseValidation/python/MatrixReader.py @@ -316,7 +316,7 @@ def showRaw(self, useInput, refRel=None, fromScratch=None, what='all',step1Only= self.reset(what) - if self.what != 'all' and self.what not in matrixFile: + if self.what != 'all' and not any(el in matrixFile for el in self.what.split(",")): print("ignoring non-requested file",matrixFile) continue @@ -492,7 +492,7 @@ def createWorkFlows(self, fileNameIn): def prepare(self, useInput=None, refRel='', fromScratch=None): for matrixFile in self.files: - if self.what != 'all' and self.what not in matrixFile: + if self.what != 'all' and not any(el in matrixFile for el in self.what.split(",")): print("ignoring non-requested file",matrixFile) continue if self.what == 'all' and not self.filesDefault[matrixFile]: diff --git a/Configuration/PyReleaseValidation/python/relval_2017.py b/Configuration/PyReleaseValidation/python/relval_2017.py index 193ab79bcd384..59f92409218f6 100644 --- a/Configuration/PyReleaseValidation/python/relval_2017.py +++ b/Configuration/PyReleaseValidation/python/relval_2017.py @@ -1,4 +1,3 @@ - # import the definition of the steps and input files: from Configuration.PyReleaseValidation.relval_steps import * @@ -24,16 +23,16 @@ # (HE collapse: TTbar, TTbar PU, TTbar design) # (ParkingBPH: TTbar) # (TTbar PU with JME NanoAOD) -# (Patatrack pixel-only: ZMM - on CPU) -# (Patatrack pixel-only: TTbar - on CPU) +# (Patatrack pixel-only: ZMM - on CPU: quadruplets, triplets) +# (Patatrack pixel-only: TTbar - on CPU: quadruplets, triplets) # (Patatrack ECAL-only: TTbar - on CPU) # (Patatrack HCAL-only: TTbar - on CPU) # 2021 (DD4HEP: TTbar, ZMM) # (ele guns 10, 35, 1000; pho guns 10, 35; mu guns 1, 10, 100, 1000, QCD 3TeV, QCD Flat) -# (ZMM, TTbar, ZEE, MinBias, TTbar PU, TTbar PU premix, ZEE PU, TTbar design) +# (ZMM, TTbar, ZEE, MinBias, TTbar PU, TTbar PU premix, ZEE PU, TTbar design, GluGluTo2Jets, GluGluTo2Jets PU) # (TTbar trackingOnly, pixelTrackingOnly, trackingMkFit, trackdnn) -# (Patatrack pixel-only: ZMM - on CPU) -# (Patatrack pixel-only: TTbar - on CPU) +# (Patatrack pixel-only: ZMM - on CPU: quadruplets, triplets) +# (Patatrack pixel-only: TTbar - on CPU: quadruplets, triplets) # (Patatrack ECAL-only: TTbar - on CPU) # (Patatrack HCAL-only: TTbar - on CPU) # (TTbar 0T, TTbar PU 0T) @@ -51,16 +50,16 @@ 10824.6,11024.6,11224.6, 10824.8, 11024.15, - 10842.501, - 10824.501, + 10842.501,10842.505, + 10824.501,10824.505, 10824.511, 10824.521, 11634.911, 11650.911, 11601.0,11602.0,11603.0,11604.0,11605.0,11606.0,11607.0,11608.0,11609.0,11630.0,11643.0, - 11650.0,11634.0,11646.0,11640.0,11834.0,11834.99,11846.0,12024.0, + 11650.0,11634.0,11646.0,11640.0,11834.0,11834.99,11846.0,12034.0,11725.0,11925.0, 11634.1,11634.5,11634.7,11634.91, - 11650.501, - 11634.501, + 11650.501,11650.505, + 11634.501,11634.505, 11634.511, 11634.521, 11634.24,11834.24, diff --git a/Configuration/PyReleaseValidation/python/relval_2026.py b/Configuration/PyReleaseValidation/python/relval_2026.py index b796058cfc092..4dd1257b5e540 100644 --- a/Configuration/PyReleaseValidation/python/relval_2026.py +++ b/Configuration/PyReleaseValidation/python/relval_2026.py @@ -21,17 +21,8 @@ numWFIB.extend([23234.103]) #2026D49 aging numWFIB.extend([23234.9]) #2026D49 vector hits numWFIB.extend([28234.0]) #2026D60 -numWFIB.extend([29834.0]) #2026D64 -numWFIB.extend([30234.0]) #2026D65 -numWFIB.extend([30634.0]) #2026D66 -numWFIB.extend([31034.0]) #2026D67 numWFIB.extend([31434.0]) #2026D68 -numWFIB.extend([31834.0]) #2026D69 numWFIB.extend([32234.0]) #2026D70 -numWFIB.extend([32634.0]) #2026D71 -numWFIB.extend([33034.0]) #2026D72 -numWFIB.extend([33834.0]) #2026D74 -numWFIB.extend([34234.0]) #2026D75 numWFIB.extend([34634.0]) #2026D76 numWFIB.extend([34834.999]) #2026D76 premixing combined stage1+stage2 (ttbar+PU50 for PR test) numWFIB.extend([35034.0]) #2026D77 @@ -39,6 +30,7 @@ numWFIB.extend([35834.0]) #2026D79 numWFIB.extend([36234.0]) #2026D80 numWFIB.extend([36634.0]) #2026D81 +numWFIB.extend([37034.0]) #2026D82 for numWF in numWFIB: workflows[numWF] = _upgrade_workflows[numWF] diff --git a/Configuration/PyReleaseValidation/python/relval_gpu.py b/Configuration/PyReleaseValidation/python/relval_gpu.py index 4e49467a0e2e8..db417a2a94365 100644 --- a/Configuration/PyReleaseValidation/python/relval_gpu.py +++ b/Configuration/PyReleaseValidation/python/relval_gpu.py @@ -14,21 +14,29 @@ #just define all of them #WFs to run in IB: -# mc 2018 (Patatrack pixel-only: ZMM - on GPU, both CPU and GPU, auto) -# (Patatrack pixel-only: TTbar - on GPU, both CPU and GPU, auto) +# mc 2018 (Patatrack pixel-only quadruplets: ZMM - on GPU, both CPU and GPU, auto) +# (Patatrack pixel-only triplets: ZMM - on GPU, both CPU and GPU, auto) +# (Patatrack pixel-only quadruplets: TTbar - on GPU, both CPU and GPU, auto) +# (Patatrack pixel-only triplets: TTbar - on GPU, both CPU and GPU, auto) # (Patatrack ECAL-only: TTbar - on GPU, both CPU and GPU, auto) # (Patatrack HCAL-only: TTbar - on GPU, both CPU and GPU, auto) -# mc 2021 (Patatrack pixel-only: ZMM - on GPU, both CPU and GPU, auto) -# (Patatrack pixel-only: TTbar - on GPU, both CPU and GPU, auto) +# mc 2021 (Patatrack pixel-only quadruplets: ZMM - on GPU, both CPU and GPU, auto) +# (Patatrack pixel-only triplets: ZMM - on GPU, both CPU and GPU, auto) +# (Patatrack pixel-only quadruplets: TTbar - on GPU, both CPU and GPU, auto) +# (Patatrack pixel-only triplets: TTbar - on GPU, both CPU and GPU, auto) # (Patatrack ECAL-only: TTbar - on GPU, both CPU and GPU, auto) # (Patatrack HCAL-only: TTbar - on GPU, both CPU and GPU, auto) numWFIB = [ 10842.502, # 10842.503,10842.504, + 10842.506, # 10842.507,10842.508, 10824.502, # 10824.503,10824.504, + 10824.506, # 10824.507,10824.508, 10824.512, # 10824.513,10824.514, 10824.522, # 10824.523,10824.524, 11650.502, # 11650.503,11650.504, + 11650.506, # 11650.507,11650.508, 11634.502, # 11634.503,11634.504, + 11634.506, # 11634.507,11634.508, 11634.512, # 11634.513,11634.514, 11634.522, # 11634.523,11634.524 ] diff --git a/Configuration/PyReleaseValidation/python/relval_steps.py b/Configuration/PyReleaseValidation/python/relval_steps.py index 3556eda005ada..97235248c83b6 100644 --- a/Configuration/PyReleaseValidation/python/relval_steps.py +++ b/Configuration/PyReleaseValidation/python/relval_steps.py @@ -2129,7 +2129,7 @@ def lhegensim2018ml(fragment,howMuch): },dataReco]) steps['RECOCOSDRUN2']=merge([{'--conditions':'auto:run2_data','--era':'Run2_2016'},steps['RECOCOSD']]) -steps['RECOCOSDRUN3']=merge([{'--conditions':'auto:run3_data_promptlike','--era':'Run3'},steps['RECOCOSD']]) +steps['RECOCOSDRUN3']=merge([{'--conditions':'auto:run3_data_prompt','--era':'Run3'},steps['RECOCOSD']]) steps['RECOCOSDEXPRUN3']=merge([{'--conditions':'auto:run3_data_express','--era':'Run3'},steps['RECOCOSD']]) # step1 gensim for HI mixing @@ -2186,8 +2186,11 @@ def gen2021HiMix(fragment,howMuch): '--era' :'Run2_2016' } -step3_pixelNtupleFit = { - '--procModifiers': 'pixelNtupleFit', +step3_pixel_ntuplet_cpu = { + '--customise': 'RecoPixelVertexing/Configuration/customizePixelTracksSoAonCPU.customizePixelTracksSoAonCPU' +} +step3_pixel_triplets = { + '--customise': 'RecoPixelVertexing/Configuration/customizePixelTracksSoAonCPU.customizePixelTracksForTriplets' } step3_gpu = { '--procModifiers': 'gpu', @@ -2320,8 +2323,11 @@ def gen2021HiMix(fragment,howMuch): steps['RECODR2_2018reHLT_Prompt']=merge([{'--conditions':'auto:run2_data'},steps['RECODR2_2018reHLT']]) steps['RECODR2_2018reHLT_ZBPrompt']=merge([{'--conditions':'auto:run2_data','-s':'RAW2DIGI,L1Reco,RECO,EI,PAT,ALCA:SiStripCalZeroBias+SiStripCalMinBias+TkAlMinBias+EcalESAlign,DQM:@rerecoZeroBias+@ExtraHLT+@miniAODDQM'},steps['RECODR2_2018reHLT']]) steps['RECODR2_2018reHLT_Prompt_pixelTrackingOnly']=merge([{'-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,DQM:@pixelTrackingOnlyDQM'},steps['RECODR2_2018reHLT_Prompt']]) -steps['RECODR2_2018reHLT_Patatrack_PixelOnlyCPU']=merge([step3_pixelNtupleFit, steps['RECODR2_2018reHLT_Prompt_pixelTrackingOnly']]) +steps['RECODR2_2018reHLT_Patatrack_PixelOnlyCPU']=merge([step3_pixel_ntuplet_cpu, steps['RECODR2_2018reHLT_Prompt_pixelTrackingOnly']]) steps['RECODR2_2018reHLT_Patatrack_PixelOnlyGPU']=merge([step3_gpu, steps['RECODR2_2018reHLT_Prompt_pixelTrackingOnly']]) +steps['RECODR2_2018reHLT_Patatrack_PixelOnlyTripletsCPU']=merge([step3_pixel_ntuplet_cpu, step3_pixel_triplets, steps['RECODR2_2018reHLT_Prompt_pixelTrackingOnly']]) +steps['RECODR2_2018reHLT_Patatrack_PixelOnlyTripletsGPU']=merge([step3_gpu, step3_pixel_triplets, steps['RECODR2_2018reHLT_Prompt_pixelTrackingOnly']]) + steps['RECODR2_2018reHLT_ECALOnlyCPU']=merge([{'-s': 'RAW2DIGI:RawToDigi_ecalOnly,RECO:reconstruction_ecalOnly,DQM:@ecalOnly'},steps['RECODR2_2018reHLT_Prompt']]) steps['RECODR2_2018reHLT_ECALOnlyGPU']=merge([step3_gpu, steps['RECODR2_2018reHLT_ECALOnlyCPU']]) steps['RECODR2_2018reHLT_HCALOnlyCPU']=merge([{'-s': 'RAW2DIGI:RawToDigi_hcalOnly,RECO:reconstruction_hcalOnly,DQM:@hcalOnly+@hcal2Only'},steps['RECODR2_2018reHLT_Prompt']]) @@ -2539,7 +2545,7 @@ def gen2021HiMix(fragment,howMuch): steps['ALCACOSDRUN2']=merge([{'--conditions':'auto:run2_data','--era':'Run2_2016','-s':'ALCA:SiPixelCalCosmics+TkAlCosmics0T+SiStripCalCosmics+MuAlGlobalCosmics+HcalCalHOCosmics+DQM'},steps['ALCACOSD']]) -steps['ALCACOSDRUN3']=merge([{'--conditions':'auto:run3_data_promptlike','--era':'Run3','-s':'ALCA:SiPixelCalCosmics+TkAlCosmics0T+SiStripCalCosmics+MuAlGlobalCosmics+HcalCalHOCosmics+DQM'},steps['ALCACOSD']]) +steps['ALCACOSDRUN3']=merge([{'--conditions':'auto:run3_data_prompt','--era':'Run3','-s':'ALCA:SiPixelCalCosmics+TkAlCosmics0T+SiStripCalCosmics+MuAlGlobalCosmics+HcalCalHOCosmics+DQM'},steps['ALCACOSD']]) steps['ALCACOSDEXPRUN3']=merge([{'--conditions':'auto:run3_data_express','--era':'Run3','-s':'ALCA:SiPixelCalCosmics+TkAlCosmics0T+SiStripCalCosmics+MuAlGlobalCosmics+HcalCalHOCosmics+DQM'},steps['ALCACOSD']]) steps['ALCAPROMPT']={'-s':'ALCA:PromptCalibProd', @@ -2761,7 +2767,7 @@ def gen2021HiMix(fragment,howMuch): steps['HARVESTDCRUN2']=merge([{'--conditions':'auto:run2_data','--era':'Run2_2016'},steps['HARVESTDC']]) -steps['HARVESTDCRUN3']=merge([{'--conditions':'auto:run3_data_promptlike','--era':'Run3'},steps['HARVESTDC']]) +steps['HARVESTDCRUN3']=merge([{'--conditions':'auto:run3_data_prompt','--era':'Run3'},steps['HARVESTDC']]) steps['HARVESTDCEXPRUN3']=merge([{'--conditions':'auto:run3_data_express','--era':'Run3'},steps['HARVESTDC']]) steps['HARVESTDR2_REMINIAOD_data2016']=merge([{'--data':'', '-s':'HARVESTING:@miniAODDQM','--era':'Run2_2016,run2_miniAOD_80XLegacy'},steps['HARVESTDR2']]) @@ -3221,15 +3227,15 @@ def gen2021HiMix(fragment,howMuch): from Configuration.PyReleaseValidation.upgradeWorkflowComponents import * # imported from above, only non-empty values should be provided here -defaultDataSets['2017']='CMSSW_11_2_0_pre8-112X_mc2017_realistic_v3-v' -defaultDataSets['2017Design']='CMSSW_11_2_0_pre8-112X_mc2017_design_v1-v' -defaultDataSets['2018']='CMSSW_11_2_0_pre8-112X_upgrade2018_realistic_v4-v' -defaultDataSets['2018Design']='CMSSW_11_2_0_pre8-112X_upgrade2018_design_v3-v' -defaultDataSets['2021']='CMSSW_11_2_0_pre8-112X_mcRun3_2021_realistic_v10-v' -defaultDataSets['2021Design']='CMSSW_11_2_0_pre8-112X_mcRun3_2021_design_v10-v' -defaultDataSets['2023']='CMSSW_11_2_0_pre8-112X_mcRun3_2023_realistic_v10-v' -defaultDataSets['2024']='CMSSW_11_2_0_pre8-112X_mcRun3_2024_realistic_v10-v' -defaultDataSets['2026D49']='CMSSW_11_2_0_pre8-112X_mcRun4_realistic_v3_2026D49noPU-v' +defaultDataSets['2017']='CMSSW_11_3_0_pre4-113X_mc2017_realistic_v4-v' +defaultDataSets['2017Design']='CMSSW_11_3_0_pre4-113X_mc2017_design_v4-v' +defaultDataSets['2018']='CMSSW_11_3_0_pre4-113X_upgrade2018_realistic_v4-v' +defaultDataSets['2018Design']='CMSSW_11_3_0_pre4-113X_upgrade2018_design_v4-v' +defaultDataSets['2021']='CMSSW_11_3_0_pre4-113X_mcRun3_2021_realistic_v7-v' +defaultDataSets['2021Design']='CMSSW_11_3_0_pre4-113X_mcRun3_2021_design_v5-v' +defaultDataSets['2023']='CMSSW_11_3_0_pre4-113X_mcRun3_2023_realistic_v5-v' +defaultDataSets['2024']='CMSSW_11_3_0_pre4-113X_mcRun3_2024_realistic_v5-v' +defaultDataSets['2026D49']='CMSSW_11_3_0_pre4-113X_mcRun4_realistic_v4_2026D49noPU_rsb-v' defaultDataSets['2026D76']='CMSSW_11_3_0_pre3-113X_mcRun4_realistic_v3_2026D76noPU-v' puDataSets = {} diff --git a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py index 9ff0ae9f22e0d..8b7ccd217e6c2 100644 --- a/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py +++ b/Configuration/PyReleaseValidation/python/upgradeWorkflowComponents.py @@ -32,28 +32,10 @@ '2026D49PU', '2026D60', '2026D60PU', - '2026D64', - '2026D64PU', - '2026D65', - '2026D65PU', - '2026D66', - '2026D66PU', - '2026D67', - '2026D67PU', '2026D68', '2026D68PU', - '2026D69', - '2026D69PU', '2026D70', '2026D70PU', - '2026D71', - '2026D71PU', - '2026D72', - '2026D72PU', - '2026D74', - '2026D74PU', - '2026D75', - '2026D75PU', '2026D76', '2026D76PU', '2026D77', @@ -66,6 +48,8 @@ '2026D80PU', '2026D81', '2026D81PU', + '2026D82', + '2026D82PU', ] # pre-generation of WF numbers @@ -75,7 +59,7 @@ } numWFSkip=200 # temporary measure to keep other WF numbers the same -numWFConflict = [[20000,23200],[23600,28200],[28600,29800],[33400,33800],[50000,51000]] +numWFConflict = [[20000,23200],[23600,28200],[28600,31400],[31800,32200],[32600,34600],[50000,51000]] numWFAll={ 2017: [], 2026: [] @@ -453,7 +437,26 @@ def condition_(self, fragment, stepList, key, hasHarvest): '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM', '--datatier': 'GEN-SIM-RECO,DQMIO', '--eventcontent': 'RECOSIM,DQM', - '--procModifiers': 'pixelNtupleFit' + '--customise' : 'RecoPixelVertexing/Configuration/customizePixelTracksSoAonCPU.customizePixelTracksSoAonCPU' +} + +upgradeWFs['PatatrackPixelOnlyTripletsCPU'] = UpgradeWorkflowPatatrack_PixelOnlyCPU( + steps = [ + 'Reco', + 'HARVEST', + 'RecoGlobal', + 'HARVESTGlobal', + ], + PU = [], + suffix = 'Patatrack_PixelOnlyTripletsCPU', + offset = 0.505, +) + +upgradeWFs['PatatrackPixelOnlyTripletsCPU'].step3 = { + '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM', + '--datatier': 'GEN-SIM-RECO,DQMIO', + '--eventcontent': 'RECOSIM,DQM', + '--customise' : 'RecoPixelVertexing/Configuration/customizePixelTracksSoAonCPU.customizePixelTracksSoAonCPU,RecoPixelVertexing/Configuration/customizePixelTracksSoAonCPU.customizePixelTracksForTriplets' } class UpgradeWorkflowPatatrack_PixelOnlyGPU(UpgradeWorkflowPatatrack): @@ -487,6 +490,26 @@ def condition_(self, fragment, stepList, key, hasHarvest): '--procModifiers': 'gpu' } +upgradeWFs['PatatrackPixelOnlyTripletsGPU'] = UpgradeWorkflowPatatrack_PixelOnlyGPU( + steps = [ + 'Reco', + 'HARVEST', + 'RecoGlobal', + 'HARVESTGlobal', + ], + PU = [], + suffix = 'Patatrack_PixelOnlyTripletsGPU', + offset = 0.506, +) + +upgradeWFs['PatatrackPixelOnlyTripletsGPU'].step3 = { + '-s': 'RAW2DIGI:RawToDigi_pixelOnly,RECO:reconstruction_pixelTrackingOnly,VALIDATION:@pixelTrackingOnlyValidation,DQM:@pixelTrackingOnlyDQM', + '--datatier': 'GEN-SIM-RECO,DQMIO', + '--eventcontent': 'RECOSIM,DQM', + '--procModifiers': 'gpu', + '--customise': 'RecoPixelVertexing/Configuration/customizePixelTracksSoAonCPU.customizePixelTracksForTriplets' +} + class UpgradeWorkflowPatatrack_ECALOnlyCPU(UpgradeWorkflowPatatrack): def setup_(self, step, stepName, stepDict, k, properties): if 'Reco' in step: @@ -1178,36 +1201,6 @@ def condition(self, fragment, stepList, key, hasHarvest): 'Era' : 'Phase2C10', 'ScenToRun' : ['GenSimHLBeamSpot','DigiTrigger','RecoGlobal', 'HARVESTGlobal'], }, - '2026D64' : { - 'Geom' : 'Extended2026D64', # N.B.: Geometry with square 50x50 um2 pixels in the Inner Tracker. - 'HLTmenu': '@fake2', - 'GT' : 'auto:phase2_realistic_T22', - 'ProcessModifier': 'PixelCPEGeneric', # This swaps template reco CPE for generic reco CPE - 'Era' : 'Phase2C11T22', # customized for square pixels - 'ScenToRun' : ['GenSimHLBeamSpot','DigiTrigger','RecoGlobal', 'HARVESTGlobal'], - }, - '2026D65' : { - 'Geom' : 'Extended2026D65', # N.B.: Geometry with 3D pixels in the Inner Tracker. - 'HLTmenu': '@fake2', - 'GT' : 'auto:phase2_realistic_T23', # This symbolic GT has no pixel template / GenError informations. - 'ProcessModifier': 'PixelCPEGeneric', # This swaps template reco CPE for generic reco CPE - 'Era' : 'Phase2C11T23', # customizes for 3D Pixels - 'ScenToRun' : ['GenSimHLBeamSpot','DigiTrigger','RecoGlobal', 'HARVESTGlobal'], - }, - '2026D66' : { - 'Geom' : 'Extended2026D66', - 'HLTmenu': '@fake2', - 'GT' : 'auto:phase2_realistic_T21', - 'Era' : 'Phase2C11', - 'ScenToRun' : ['GenSimHLBeamSpot','DigiTrigger','RecoGlobal', 'HARVESTGlobal'], - }, - '2026D67' : { - 'Geom' : 'Extended2026D67', - 'HLTmenu': '@fake2', - 'GT' : 'auto:phase2_realistic_T21', - 'Era' : 'Phase2C11M9', - 'ScenToRun' : ['GenSimHLBeamSpot','DigiTrigger','RecoGlobal', 'HARVESTGlobal'], - }, '2026D68' : { 'Geom' : 'Extended2026D68', 'HLTmenu': '@fake2', @@ -1215,13 +1208,6 @@ def condition(self, fragment, stepList, key, hasHarvest): 'Era' : 'Phase2C11', 'ScenToRun' : ['GenSimHLBeamSpot','DigiTrigger','RecoGlobal', 'HARVESTGlobal'], }, - '2026D69' : { - 'Geom' : 'Extended2026D69', - 'HLTmenu': '@fake2', - 'GT' : 'auto:phase2_realistic_T21', - 'Era' : 'Phase2C12', - 'ScenToRun' : ['GenSimHLBeamSpot','DigiTrigger','RecoGlobal', 'HARVESTGlobal'], - }, '2026D70' : { 'Geom' : 'Extended2026D70', 'HLTmenu': '@fake2', @@ -1229,34 +1215,6 @@ def condition(self, fragment, stepList, key, hasHarvest): 'Era' : 'Phase2C11', 'ScenToRun' : ['GenSimHLBeamSpot','DigiTrigger','RecoGlobal', 'HARVESTGlobal'], }, - '2026D71' : { - 'Geom' : 'Extended2026D71', - 'HLTmenu': '@fake2', - 'GT' : 'auto:phase2_realistic_T21', - 'Era' : 'Phase2C11', - 'ScenToRun' : ['GenSimHLBeamSpot','DigiTrigger','RecoGlobal', 'HARVESTGlobal'], - }, - '2026D72' : { - 'Geom' : 'Extended2026D72', - 'HLTmenu': '@fake2', - 'GT' : 'auto:phase2_realistic_T21', - 'Era' : 'Phase2C11I13', - 'ScenToRun' : ['GenSimHLBeamSpot','DigiTrigger','RecoGlobal', 'HARVESTGlobal'], - }, - '2026D74' : { - 'Geom' : 'Extended2026D74', - 'HLTmenu': '@fake2', - 'GT' : 'auto:phase2_realistic_T21', - 'Era' : 'Phase2C11M9', - 'ScenToRun' : ['GenSimHLBeamSpot','DigiTrigger','RecoGlobal', 'HARVESTGlobal'], - }, - '2026D75' : { - 'Geom' : 'Extended2026D75', - 'HLTmenu': '@fake2', - 'GT' : 'auto:phase2_realistic_T21', - 'Era' : 'Phase2C11I13', - 'ScenToRun' : ['GenSimHLBeamSpot','DigiTrigger','RecoGlobal', 'HARVESTGlobal'], - }, '2026D76' : { 'Geom' : 'Extended2026D76', 'HLTmenu': '@fake2', @@ -1301,6 +1259,13 @@ def condition(self, fragment, stepList, key, hasHarvest): 'Era' : 'Phase2C11I13T26M9', # customized for square pixels and Muon M9 'ScenToRun' : ['GenSimHLBeamSpot','DigiTrigger','RecoGlobal', 'HARVESTGlobal'], }, + '2026D82' : { + 'Geom' : 'Extended2026D82', + 'HLTmenu': '@fake2', + 'GT' : 'auto:phase2_realistic_T21', + 'Era' : 'Phase2C11I13M9', + 'ScenToRun' : ['GenSimHLBeamSpot','DigiTrigger','RecoGlobal', 'HARVESTGlobal'], + }, } # standard PU sequences diff --git a/Configuration/PyReleaseValidation/scripts/README.md b/Configuration/PyReleaseValidation/scripts/README.md new file mode 100644 index 0000000000000..6edccd7c8f7f7 --- /dev/null +++ b/Configuration/PyReleaseValidation/scripts/README.md @@ -0,0 +1,248 @@ +# Interactive `runTheMatrix` shell + +## Introduction + +The interactive shell is a place where users can search and explore the many +different workflows that are regularly run via `runTheMatrix`. The interactive +shell is *not* meant to execute any workflow, but simply to explore and +understand all the possibilities made available through the `runTheMatrix` +script. + +To enter the `runTheMatrix` interactive shell, issue the command: + +``` +runTheMatrix.py --interactive +``` + +If the `--interactive` option is specified at run-time, it will take precedence +over all other specified options and workflows that, therefore, will not be +executed. + +To exit the shell, use the command `q` or `Ctrl-D`. + +To display the help menu, use the command `?`. + + +## Available commands + +All commands have an accompanying help that is meant to illustrate the correct +syntax to be used to run them. A brief explanation is also provided. +To show the help for a specific command, issue the command: `help +specific_command`. + +If, for example, at the prompt, you type: +``` +matrix> help search +search search_regexp + +This command will search for a match within all workflows registered. +The search is done on both the workflow name and the names of steps registered to it. +matrix> +``` + +You will get an explanation of the command together with its correct syntax. + +### Generic Search + +This is the most inclusive search available and it could be useful to search for +a specific workflow among *all* workflows. + +For example, if you want to know all workflows that use the geometry `D49` and +generate `SingleElectron`, you could use something like: + +``` +matrix> search .*D49.*SingleElectron.* +Found 0 compatible workflows inside relval_gpu +Found 0 compatible workflows inside relval_production +Found 0 compatible workflows inside relval_identity +Found 0 compatible workflows inside relval_ged +Found 0 compatible workflows inside relval_highstats +Found 0 compatible workflows inside relval_generator +Found 0 compatible workflows inside relval_standard +Found 0 compatible workflows inside relval_extendedgen +Found 0 compatible workflows inside relval_premix +Found 0 compatible workflows inside relval_2026 +Found 0 compatible workflows inside relval_machine +Found 0 compatible workflows inside relval_pileup +Found 0 compatible workflows inside relval_2017 +23201.0 SingleElectronPt10 2026D49+SingleElectronPt10_pythia8_GenSimHLBeamSpot+DigiTrigger+RecoGlobal+HARVESTGlobal +23202.0 SingleElectronPt35 2026D49+SingleElectronPt35_pythia8_GenSimHLBeamSpot+DigiTrigger+RecoGlobal+HARVESTGlobal +23203.0 SingleElectronPt1000 2026D49+SingleElectronPt1000_pythia8_GenSimHLBeamSpot+DigiTrigger+RecoGlobal+HARVESTGlobal +23291.0 SingleElectronPt15Eta1p7_2p7 2026D49+SingleElectronPt15Eta1p7_2p7_GenSimHLBeamSpot+DigiTrigger+RecoGlobal+HARVESTGlobal +23302.0 SingleEFlatPt2To100 2026D49+SingleElectronFlatPt2To100_GenSimHLBeamSpot+DigiTrigger+RecoGlobal+HARVESTGlobal +23401.0 SingleElectronPt10 2026D49PU+SingleElectronPt10_pythia8_GenSimHLBeamSpot+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23401.98 SingleElectronPt10 2026D49PU_PMXS2+SingleElectronPt10_pythia8_GenSimHLBeamSpot+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23401.99 SingleElectronPt10 2026D49PU_PMXS1S2+SingleElectronPt10_pythia8_GenSimHLBeamSpot+PREMIX_PremixHLBeamSpotPU+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23401.999 SingleElectronPt10 2026D49PU_PMXS1S2PR+SingleElectronPt10_pythia8_GenSimHLBeamSpot+PREMIX_PremixHLBeamSpotPU+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23402.0 SingleElectronPt35 2026D49PU+SingleElectronPt35_pythia8_GenSimHLBeamSpot+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23402.98 SingleElectronPt35 2026D49PU_PMXS2+SingleElectronPt35_pythia8_GenSimHLBeamSpot+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23402.99 SingleElectronPt35 2026D49PU_PMXS1S2+SingleElectronPt35_pythia8_GenSimHLBeamSpot+PREMIX_PremixHLBeamSpotPU+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23402.999 SingleElectronPt35 2026D49PU_PMXS1S2PR+SingleElectronPt35_pythia8_GenSimHLBeamSpot+PREMIX_PremixHLBeamSpotPU+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23403.0 SingleElectronPt1000 2026D49PU+SingleElectronPt1000_pythia8_GenSimHLBeamSpot+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23403.98 SingleElectronPt1000 2026D49PU_PMXS2+SingleElectronPt1000_pythia8_GenSimHLBeamSpot+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23403.99 SingleElectronPt1000 2026D49PU_PMXS1S2+SingleElectronPt1000_pythia8_GenSimHLBeamSpot+PREMIX_PremixHLBeamSpotPU+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23403.999 SingleElectronPt1000 2026D49PU_PMXS1S2PR+SingleElectronPt1000_pythia8_GenSimHLBeamSpot+PREMIX_PremixHLBeamSpotPU+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23491.0 SingleElectronPt15Eta1p7_2p7 2026D49PU+SingleElectronPt15Eta1p7_2p7_GenSimHLBeamSpot+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23491.98 SingleElectronPt15Eta1p7_2p7 2026D49PU_PMXS2+SingleElectronPt15Eta1p7_2p7_GenSimHLBeamSpot+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23491.99 SingleElectronPt15Eta1p7_2p7 2026D49PU_PMXS1S2+SingleElectronPt15Eta1p7_2p7_GenSimHLBeamSpot+PREMIX_PremixHLBeamSpotPU+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23491.999 SingleElectronPt15Eta1p7_2p7 2026D49PU_PMXS1S2PR+SingleElectronPt15Eta1p7_2p7_GenSimHLBeamSpot+PREMIX_PremixHLBeamSpotPU+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23502.0 SingleEFlatPt2To100 2026D49PU+SingleElectronFlatPt2To100_GenSimHLBeamSpot+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23502.98 SingleEFlatPt2To100 2026D49PU_PMXS2+SingleElectronFlatPt2To100_GenSimHLBeamSpot+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23502.99 SingleEFlatPt2To100 2026D49PU_PMXS1S2+SingleElectronFlatPt2To100_GenSimHLBeamSpot+PREMIX_PremixHLBeamSpotPU+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23502.999 SingleEFlatPt2To100 2026D49PU_PMXS1S2PR+SingleElectronFlatPt2To100_GenSimHLBeamSpot+PREMIX_PremixHLBeamSpotPU+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +Found 25 compatible workflows inside relval_upgrade +matrix> +``` + +The search terms in this and in all other commands should be *valid regular +expressions*. Those are the most powerful tool for this kind of job. +Maybe not the most intuitive one, if you are not too familiar with them. + +### Search in a specific set of workflows + +If, instead, you would like to limit the search to a specific _macro area_, e.g. +relval_upgrade, you could use the same regular expression but a different +command: + +``` +matrix> help searchInWorkflow +searchInWorkflow wfl_name search_regexp + +This command will search for a match within all workflows registered to wfl_name. +The search is done on both the workflow name and the names of steps registered to it. +``` + +Example: + +``` +matrix> searchInWorkflow relval_upgrade .*D49.*SingleElectron.* +23201.0 SingleElectronPt10 2026D49+SingleElectronPt10_pythia8_GenSimHLBeamSpot+DigiTrigger+RecoGlobal+HARVESTGlobal +23202.0 SingleElectronPt35 2026D49+SingleElectronPt35_pythia8_GenSimHLBeamSpot+DigiTrigger+RecoGlobal+HARVESTGlobal +23203.0 SingleElectronPt1000 2026D49+SingleElectronPt1000_pythia8_GenSimHLBeamSpot+DigiTrigger+RecoGlobal+HARVESTGlobal +23291.0 SingleElectronPt15Eta1p7_2p7 2026D49+SingleElectronPt15Eta1p7_2p7_GenSimHLBeamSpot+DigiTrigger+RecoGlobal+HARVESTGlobal +23302.0 SingleEFlatPt2To100 2026D49+SingleElectronFlatPt2To100_GenSimHLBeamSpot+DigiTrigger+RecoGlobal+HARVESTGlobal +23401.0 SingleElectronPt10 2026D49PU+SingleElectronPt10_pythia8_GenSimHLBeamSpot+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23401.98 SingleElectronPt10 2026D49PU_PMXS2+SingleElectronPt10_pythia8_GenSimHLBeamSpot+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23401.99 SingleElectronPt10 2026D49PU_PMXS1S2+SingleElectronPt10_pythia8_GenSimHLBeamSpot+PREMIX_PremixHLBeamSpotPU+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23401.999 SingleElectronPt10 2026D49PU_PMXS1S2PR+SingleElectronPt10_pythia8_GenSimHLBeamSpot+PREMIX_PremixHLBeamSpotPU+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23402.0 SingleElectronPt35 2026D49PU+SingleElectronPt35_pythia8_GenSimHLBeamSpot+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23402.98 SingleElectronPt35 2026D49PU_PMXS2+SingleElectronPt35_pythia8_GenSimHLBeamSpot+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23402.99 SingleElectronPt35 2026D49PU_PMXS1S2+SingleElectronPt35_pythia8_GenSimHLBeamSpot+PREMIX_PremixHLBeamSpotPU+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23402.999 SingleElectronPt35 2026D49PU_PMXS1S2PR+SingleElectronPt35_pythia8_GenSimHLBeamSpot+PREMIX_PremixHLBeamSpotPU+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23403.0 SingleElectronPt1000 2026D49PU+SingleElectronPt1000_pythia8_GenSimHLBeamSpot+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23403.98 SingleElectronPt1000 2026D49PU_PMXS2+SingleElectronPt1000_pythia8_GenSimHLBeamSpot+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23403.99 SingleElectronPt1000 2026D49PU_PMXS1S2+SingleElectronPt1000_pythia8_GenSimHLBeamSpot+PREMIX_PremixHLBeamSpotPU+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23403.999 SingleElectronPt1000 2026D49PU_PMXS1S2PR+SingleElectronPt1000_pythia8_GenSimHLBeamSpot+PREMIX_PremixHLBeamSpotPU+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23491.0 SingleElectronPt15Eta1p7_2p7 2026D49PU+SingleElectronPt15Eta1p7_2p7_GenSimHLBeamSpot+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23491.98 SingleElectronPt15Eta1p7_2p7 2026D49PU_PMXS2+SingleElectronPt15Eta1p7_2p7_GenSimHLBeamSpot+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23491.99 SingleElectronPt15Eta1p7_2p7 2026D49PU_PMXS1S2+SingleElectronPt15Eta1p7_2p7_GenSimHLBeamSpot+PREMIX_PremixHLBeamSpotPU+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23491.999 SingleElectronPt15Eta1p7_2p7 2026D49PU_PMXS1S2PR+SingleElectronPt15Eta1p7_2p7_GenSimHLBeamSpot+PREMIX_PremixHLBeamSpotPU+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23502.0 SingleEFlatPt2To100 2026D49PU+SingleElectronFlatPt2To100_GenSimHLBeamSpot+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23502.98 SingleEFlatPt2To100 2026D49PU_PMXS2+SingleElectronFlatPt2To100_GenSimHLBeamSpot+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23502.99 SingleEFlatPt2To100 2026D49PU_PMXS1S2+SingleElectronFlatPt2To100_GenSimHLBeamSpot+PREMIX_PremixHLBeamSpotPU+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +23502.999 SingleEFlatPt2To100 2026D49PU_PMXS1S2PR+SingleElectronFlatPt2To100_GenSimHLBeamSpot+PREMIX_PremixHLBeamSpotPU+DigiTriggerPU+RecoGlobalPU+HARVESTGlobalPU +Found 25 compatible workflows inside relval_upgrade +matrix> +``` + +### Explore/Dump a specific workflow + +Suppose now that you want to know what are the commands run by the workflow +`23291`. You could do by doing: + +``` +matrix> dumpWorkflowId 23291 +23291.0 2026D49+SingleElectronPt15Eta1p7_2p7_GenSimHLBeamSpot+DigiTrigger+RecoGlobal+HARVESTGlobal +[1]: cmsDriver.py SingleElectronPt15Eta1p7_2p7_cfi --conditions auto:phase2_realistic_T15 -n 10 --era Phase2C9 --eventcontent FEVTDEBUG --relval 9000,100 -s GEN,SIM --datatier GEN-SIM --beamspot HLLHC --geometry Extended2026D49 + +[2]: cmsDriver.py step2 --conditions auto:phase2_realistic_T15 -s DIGI:pdigi_valid,L1TrackTrigger,L1,DIGI2RAW,HLT:@fake2 --datatier GEN-SIM-DIGI-RAW -n 10 --geometry Extended2026D49 --era Phase2C9 --eventcontent FEVTDEBUGHLT + +[3]: cmsDriver.py step3 --conditions auto:phase2_realistic_T15 -s RAW2DIGI,L1Reco,RECO,RECOSIM,PAT,VALIDATION:@phase2Validation+@miniAODValidation,DQM:@phase2+@miniAODDQM --datatier GEN-SIM-RECO,MINIAODSIM,DQMIO -n 10 --geometry Extended2026D49 --era Phase2C9 --eventcontent FEVTDEBUGHLT,MINIAODSIM,DQM + +[4]: cmsDriver.py step4 --conditions auto:phase2_realistic_T15 -s HARVESTING:@phase2Validation+@phase2+@miniAODValidation+@miniAODDQM --scenario pp --filetype DQM --geometry Extended2026D49 --era Phase2C9 --mc -n 100 + + +Workflow found in relval_upgrade. +matrix> +``` + + +### Predefined set of workflows + +The `predefined` command, instead, could be used to know what is the list of +predefined workflows that have been bundled together and, for each of them, +query the list of registered workflow numbers. E.g.: + +``` +matrix> help predefined +predefined [predef1 [...]] + +Run w/o argument, it will print the list of known predefined workflows. +Run with space-separated predefined workflows, it will print the workflow-ids registered to them +``` + +Example: +``` +matrix> predefined +List of predefined workflows +['jetmc', 'limited', 'muonmc', 'metmc'] +matrix> predefined jetmc +List of predefined workflows +Predefined Set: jetmc +[5.1, 13, 15, 25, 38, 39] +matrix> +``` + +### Explore "macro-workflows" + +The last command is `showWorkflow`, that does the following: + +``` +matrix> help showWorkflow +showWorkflow [workflow1 [...]] + +Run w/o arguments, it will print the list of registered macro-workflows. +Run with space-separated workflows, it will print the full list of workflow-ids registered to them +``` + +Example: +``` +matrix> showWorkflow +Available workflows: +relval_gpu +relval_production +relval_identity +relval_ged +relval_highstats +relval_generator +relval_standard +relval_extendedgen +relval_premix +relval_2026 +relval_machine +relval_pileup +relval_2017 +relval_upgrade +matrix> showWorkflow relval_gpu +136.885502 RunHLTPhy2018D RunHLTPhy2018D+HLTDR2_2018+RECODR2_2018reHLT_Patatrack_PixelOnlyGPU+HARVEST2018_pixelTrackingOnly +136.885512 RunHLTPhy2018D RunHLTPhy2018D+HLTDR2_2018+RECODR2_2018reHLT_ECALOnlyGPU+HARVEST2018_ECALOnly +136.885522 RunHLTPhy2018D RunHLTPhy2018D+HLTDR2_2018+RECODR2_2018reHLT_HCALOnlyGPU+HARVEST2018_HCALOnly +136.888502 RunJetHT2018D RunJetHT2018D+HLTDR2_2018+RECODR2_2018reHLT_Patatrack_PixelOnlyGPU+HARVEST2018_pixelTrackingOnly +136.888512 RunJetHT2018D RunJetHT2018D+HLTDR2_2018+RECODR2_2018reHLT_ECALOnlyGPU+HARVEST2018_ECALOnly +136.888522 RunJetHT2018D RunJetHT2018D+HLTDR2_2018+RECODR2_2018reHLT_HCALOnlyGPU+HARVEST2018_HCALOnly +10824.502 TTbar_13 2018_Patatrack_PixelOnlyGPU+TTbar_13TeV_TuneCUETP8M1_GenSim+Digi+RecoFakeHLT+HARVESTFakeHLT +10824.512 TTbar_13 2018_Patatrack_ECALOnlyGPU+TTbar_13TeV_TuneCUETP8M1_GenSim+Digi+RecoFakeHLT+HARVESTFakeHLT +10824.522 TTbar_13 2018_Patatrack_HCALOnlyGPU+TTbar_13TeV_TuneCUETP8M1_GenSim+Digi+RecoFakeHLT+HARVESTFakeHLT +10842.502 ZMM_13 2018_Patatrack_PixelOnlyGPU+ZMM_13TeV_TuneCUETP8M1_GenSim+Digi+RecoFakeHLT+HARVESTFakeHLT +11634.502 TTbar_14TeV 2021_Patatrack_PixelOnlyGPU+TTbar_14TeV_TuneCP5_GenSim+Digi+Reco+HARVEST +11634.512 TTbar_14TeV 2021_Patatrack_ECALOnlyGPU+TTbar_14TeV_TuneCP5_GenSim+Digi+Reco+HARVEST +11634.522 TTbar_14TeV 2021_Patatrack_HCALOnlyGPU+TTbar_14TeV_TuneCP5_GenSim+Digi+Reco+HARVEST +11650.502 ZMM_14 2021_Patatrack_PixelOnlyGPU+ZMM_14TeV_TuneCP5_GenSim+Digi+Reco+HARVEST +relval_gpu contains 14 workflows +matrix> +``` + +All commands come with dynamic TAB-completion. There's also a transient history +of the commands issues within a single session. Transient means that, after a +session is closed, the history is lost. + diff --git a/Configuration/PyReleaseValidation/scripts/runTheMatrix.py b/Configuration/PyReleaseValidation/scripts/runTheMatrix.py index d726ef440f958..55d89e6913634 100755 --- a/Configuration/PyReleaseValidation/scripts/runTheMatrix.py +++ b/Configuration/PyReleaseValidation/scripts/runTheMatrix.py @@ -5,7 +5,7 @@ from Configuration.PyReleaseValidation.MatrixReader import MatrixReader from Configuration.PyReleaseValidation.MatrixRunner import MatrixRunner from Configuration.PyReleaseValidation.MatrixInjector import MatrixInjector,performInjectionOptionTest - + # ================================================================================ def showRaw(opt): @@ -14,7 +14,7 @@ def showRaw(opt): mrd.showRaw(opt.useInput, opt.refRel, opt.fromScratch, opt.raw, opt.step1Only, selected=opt.testList) return 0 - + # ================================================================================ def runSelected(opt): @@ -24,10 +24,13 @@ def runSelected(opt): # test for wrong input workflows if opt.testList: - definedSet = set([dwf.numId for dwf in mrd.workFlows]) + definedWf = [dwf.numId for dwf in mrd.workFlows] + definedSet = set(definedWf) testSet = set(opt.testList) undefSet = testSet - definedSet if len(undefSet)>0: raise ValueError('Undefined workflows: '+', '.join(map(str,list(undefSet)))) + duplicates = [wf for wf in testSet if definedWf.count(wf)>1 ] + if len(duplicates)>0: raise ValueError('Duplicated workflows: '+', '.join(map(str,list(duplicates)))) ret = 0 if opt.show: @@ -84,7 +87,7 @@ def runSelected(opt): 10024.0, #2017 ttbar 10224.0, #2017 ttbar PU 10824.0, #2018 ttbar -#temporarly remove DD4HEP from the short matrix 11634.911, #2021 DD4hep ttbar + 11634.911, #2021 DD4hep ttbar 11634.0, #2021 ttbar 12434.0, #2023 ttbar 23234.0, #2026D49 ttbar (HLT TDR baseline w/ HGCal v11) @@ -98,7 +101,7 @@ def runSelected(opt): 'metmc' : [5.1, 15, 25, 37, 38, 39], #MC 'muonmc' : [5.1, 124.4, 124.5, 20, 21, 22, 23, 25, 30], #MC } - + import optparse usage = 'usage: runTheMatrix.py --show -s ' @@ -175,7 +178,7 @@ def runSelected(opt): default=None ) parser.add_option('-w','--what', - help='Specify the set to be used. Argument must be the name of the set (standard, pileup,...)', + help='Specify the set to be used. Argument must be the name of a set (standard, pileup,...) or multiple sets separated by commas (--what standard,pileup )', dest='what', default='all' ) @@ -277,7 +280,7 @@ def runSelected(opt): dest='jobReports', default=False, action='store_true') - + parser.add_option('--ibeos', help='Use IB EOS site configuration', dest='IBEos', @@ -289,6 +292,16 @@ def runSelected(opt): dest='dasSites', default='T2_CH_CERN', action='store') + parser.add_option('--interactive', + help="Open the Matrix interactive shell", + action='store_true', + default=False) + + parser.add_option('--dbs-url', + help='Overwrite DbsUrl value in JSON submitted to ReqMgr2', + dest='dbsUrl', + default=None, + action='store') opt,args = parser.parse_args() os.environ["CMSSW_DAS_QUERY_SITES"]=opt.dasSites @@ -329,9 +342,9 @@ def stepOrIndex(s): opt.apply=map(stepOrIndex,opt.apply.split(',')) if opt.keep: opt.keep=map(stepOrIndex,opt.keep.split(',')) - - - + + + if opt.testList: testList=[] for entry in opt.testList.split(','): @@ -347,7 +360,7 @@ def stepOrIndex(s): testList.append(float(entry)) except: print(entry,'is not a possible selected entry') - + opt.testList = list(set(testList)) @@ -364,6 +377,166 @@ def stepOrIndex(s): performInjectionOptionTest(opt) if opt.overWrite: opt.overWrite=eval(opt.overWrite) + if opt.interactive: + import cmd + + class TheMatrix(cmd.Cmd): + intro = "Welcome to the Matrix (? for help)" + prompt = "matrix> " + + def __init__(self, opt): + cmd.Cmd.__init__(self) + self.opt_ = opt + self.matrices_ = {} + tmp = MatrixReader(self.opt_) + for what in tmp.files: + self.opt_.what = what + self.matrices_[what] = MatrixReader(self.opt_) + self.matrices_[what].prepare(self.opt_.useInput, self.opt_.refRel, + self.opt_.fromScratch) + os.system("clear") + + def do_clear(self, arg): + """Clear the screen, put prompt at the top""" + os.system("clear") + + def do_exit(self, arg): + print("Leaving the Matrix") + return True + + def default(self, inp): + if inp == 'x' or inp == 'q': + return self.do_exit(inp) + + def help_predefined(self): + print("\n".join(["predefined [predef1 [...]]\n", + "Run w/o argument, it will print the list of known predefined workflows.", + "Run with space-separated predefined workflows, it will print the workflow-ids registered to them"])) + + def complete_predefined(self, text, line, start_idx, end_idx): + if text and len(text) > 0: + return [t for t in predefinedSet.keys() if t.startswith(text)] + else: + return predefinedSet.keys() + + def do_predefined(self, arg): + """Print the list of predefined workflows""" + print("List of predefined workflows") + if arg: + for w in arg.split(): + if w in predefinedSet.keys(): + print("Predefined Set: %s" % w) + print(predefinedSet[w]) + else: + print("Unknown Set: %s" % w) + else: + print(predefinedSet.keys()) + + def help_showWorkflow(self): + print("\n".join(["showWorkflow [workflow1 [...]]\n", + "Run w/o arguments, it will print the list of registered macro-workflows.", + "Run with space-separated workflows, it will print the full list of workflow-ids registered to them"])) + + def complete_showWorkflow(self, text, line, start_idx, end_idx): + if text and len(text) > 0: + return [t for t in self.matrices_.keys() if t.startswith(text)] + else: + return self.matrices_.keys() + + def do_showWorkflow(self, arg): + if arg == '': + print("Available workflows:") + for k in self.matrices_.keys(): + print(k) + else: + selected = arg.split() + for k in selected: + if k not in self.matrices_.keys(): + print("Unknown workflow %s: skipping" % k) + else: + for wfl in self.matrices_[k].workFlows: + wfName, stepNames = wfl.nameId.split('+',1) + print("%s %s %s" % (wfl.numId, wfName, stepNames)) + print("%s contains %d workflows" % (k, len(self.matrices_[k].workFlows))) + + def help_searchInWorkflow(self): + print("\n".join(["searchInWorkflow wfl_name search_regexp\n", + "This command will search for a match within all workflows registered to wfl_name.", + "The search is done on both the workflow name and the names of steps registered to it."])) + + def complete_searchInWorkflow(self, text, line, start_idx, end_idx): + if text and len(text) > 0: + return [t for t in self.matrices_.keys() if t.startswith(text)] + else: + return self.matrices_.keys() + + def do_searchInWorkflow(self, arg): + args = arg.split() + if len(args) < 2: + print("searchInWorkflow name regexp") + return + if args[0] not in self.matrices_.keys(): + print("Unknown workflow") + return + import re + pattern = None + try: + pattern = re.compile(args[1]) + except: + print("Failed to compile regexp %s" % args[1]) + return + counter = 0 + for wfl in self.matrices_[args[0]].workFlows: + wfName, stepNames = wfl.nameId.split('+',1) + if re.match(pattern, wfName) or re.match(pattern, stepNames): + print("%s %s %s" % (wfl.numId, wfName, stepNames)) + counter += 1 + print("Found %d compatible workflows inside %s" % (counter, args[0])) + + def help_search(self): + print("\n".join(["search search_regexp\n", + "This command will search for a match within all workflows registered.", + "The search is done on both the workflow name and the names of steps registered to it."])) + + def do_search(self, arg): + args = arg.split() + if len(args) < 1: + print("search regexp") + return + for wfl in self.matrices_.keys(): + self.do_searchInWorkflow(' '.join([wfl, args[0]])) + + def help_dumpWorkflowId(self): + print("\n".join(["dumpWorkflowId [wfl-id1 [...]]\n", + "Dumps the details (cmsDriver commands for all steps) of the space-separated workflow-ids in input."])) + + def do_dumpWorkflowId(self, arg): + wflids = arg.split() + if len(wflids) == 0: + print("dumpWorkflowId [wfl-id1 [...]]") + return + + fmt = "[%d]: %s\n" + maxLen = 100 + for wflid in wflids: + dump = True + for key, mrd in self.matrices_.iteritems(): + for wfl in mrd.workFlows: + if wfl.numId == float(wflid): + wfName, stepNames = wfl.nameId.split('+',1) + if dump: + dump = False + print(wfl.numId, stepNames) + for i,s in enumerate(wfl.cmds): + print(fmt % (i+1, (str(s)+' '))) + print("\nWorkflow found in %s." % key) + else: + print("Workflow also found in %s." % key) + + do_EOF = do_exit + + TheMatrix(opt).cmdloop() + sys.exit(0) if opt.raw and opt.show: ###prodAgent to be discontinued ret = showRaw(opt) diff --git a/Configuration/StandardSequences/python/Eras.py b/Configuration/StandardSequences/python/Eras.py index 373bd11296bb8..5420a7f05ead5 100644 --- a/Configuration/StandardSequences/python/Eras.py +++ b/Configuration/StandardSequences/python/Eras.py @@ -69,7 +69,7 @@ def __init__(self): 'phase2_timing_layer', 'phase2_etlV4', 'phase2_hcal', 'phase2_ecal','phase2_ecal_devel', 'phase2_trigger', 'phase2_squarePixels', 'phase2_3DPixels', - 'trackingLowPU', 'trackingPhase1', 'ctpps_2016', 'ctpps_2017', 'ctpps_2018', 'ctpps_2021', 'trackingPhase2PU140','highBetaStar_2018', + 'trackingLowPU', 'trackingPhase1', 'ctpps', 'ctpps_2016', 'ctpps_2017', 'ctpps_2018', 'ctpps_2021', 'trackingPhase2PU140','highBetaStar_2018', 'tracker_apv_vfp30_2016', 'pf_badHcalMitigation', 'run2_miniAOD_80XLegacy','run2_miniAOD_94XFall17', 'run2_nanoAOD_92X', 'run2_nanoAOD_94XMiniAODv1', 'run2_nanoAOD_94XMiniAODv2', 'run2_nanoAOD_94X2016', 'run2_miniAOD_devel', 'run2_nanoAOD_102Xv1', 'run2_nanoAOD_106Xv1', 'run2_nanoAOD_106Xv2', diff --git a/Configuration/StandardSequences/python/GeometryConf.py b/Configuration/StandardSequences/python/GeometryConf.py index e24b07b45d66f..c503e5b0e8c44 100644 --- a/Configuration/StandardSequences/python/GeometryConf.py +++ b/Configuration/StandardSequences/python/GeometryConf.py @@ -50,19 +50,9 @@ 'HCal' : 'Configuration.Geometry.GeometrySimHCAL_cff,Configuration.Geometry.GeometryRecoHCAL_cff', 'Extended2026D49' : 'Extended2026D49,Extended2026D49Reco', 'DD4hepExtended2026D49' : 'DD4hepExtended2026D49,DD4hepExtended2026D49Reco', - 'Extended2026D50' : 'Extended2026D50,Extended2026D50Reco', 'Extended2026D60' : 'Extended2026D60,Extended2026D60Reco', - 'Extended2026D64' : 'Extended2026D64,Extended2026D64Reco', - 'Extended2026D65' : 'Extended2026D65,Extended2026D65Reco', - 'Extended2026D66' : 'Extended2026D66,Extended2026D66Reco', - 'Extended2026D67' : 'Extended2026D67,Extended2026D67Reco', 'Extended2026D68' : 'Extended2026D68,Extended2026D68Reco', - 'Extended2026D69' : 'Extended2026D69,Extended2026D69Reco', 'Extended2026D70' : 'Extended2026D70,Extended2026D70Reco', - 'Extended2026D71' : 'Extended2026D71,Extended2026D71Reco', - 'Extended2026D72' : 'Extended2026D72,Extended2026D72Reco', - 'Extended2026D74' : 'Extended2026D74,Extended2026D74Reco', - 'Extended2026D75' : 'Extended2026D75,Extended2026D75Reco', 'Extended2026D76' : 'Extended2026D76,Extended2026D76Reco', 'Extended2026D77' : 'Extended2026D77,Extended2026D77Reco', 'DD4hepExtended2026D77' : 'DD4hepExtended2026D77,DD4hepExtended2026D77Reco', @@ -70,4 +60,5 @@ 'Extended2026D79' : 'Extended2026D79,Extended2026D79Reco', 'Extended2026D80' : 'Extended2026D80,Extended2026D80Reco', 'Extended2026D81' : 'Extended2026D81,Extended2026D81Reco', + 'Extended2026D82' : 'Extended2026D82,Extended2026D82Reco', } diff --git a/Configuration/StandardSequences/python/RawToDigi_cff.py b/Configuration/StandardSequences/python/RawToDigi_cff.py index 102e8b1132f71..42fa09bd30c62 100644 --- a/Configuration/StandardSequences/python/RawToDigi_cff.py +++ b/Configuration/StandardSequences/python/RawToDigi_cff.py @@ -92,15 +92,15 @@ # add CTPPS 2016 raw-to-digi modules -from Configuration.Eras.Modifier_ctpps_2016_cff import ctpps_2016 +from Configuration.Eras.Modifier_ctpps_cff import ctpps -_ctpps_2016_RawToDigiTask = RawToDigiTask.copy() -_ctpps_2016_RawToDigiTask.add(ctppsRawToDigiTask) -ctpps_2016.toReplaceWith(RawToDigiTask, _ctpps_2016_RawToDigiTask) +_ctpps_RawToDigiTask = RawToDigiTask.copy() +_ctpps_RawToDigiTask.add(ctppsRawToDigiTask) +ctpps.toReplaceWith(RawToDigiTask, _ctpps_RawToDigiTask) -_ctpps_2016_RawToDigiTask_noTk = RawToDigiTask_noTk.copy() -_ctpps_2016_RawToDigiTask_noTk.add(ctppsRawToDigiTask) -ctpps_2016.toReplaceWith(RawToDigiTask_noTk, _ctpps_2016_RawToDigiTask_noTk) +_ctpps_RawToDigiTask_noTk = RawToDigiTask_noTk.copy() +_ctpps_RawToDigiTask_noTk.add(ctppsRawToDigiTask) +ctpps.toReplaceWith(RawToDigiTask_noTk, _ctpps_RawToDigiTask_noTk) # GEM settings _gem_RawToDigiTask = RawToDigiTask.copy() diff --git a/Configuration/StandardSequences/python/Reconstruction_cff.py b/Configuration/StandardSequences/python/Reconstruction_cff.py index 1bc338526c4a6..e03d228a857fb 100644 --- a/Configuration/StandardSequences/python/Reconstruction_cff.py +++ b/Configuration/StandardSequences/python/Reconstruction_cff.py @@ -75,14 +75,15 @@ phase2_timing_layer.toReplaceWith(localrecoTask,_phase2_timing_layer_localrecoTask) phase2_timing_layer.toReplaceWith(localreco_HcalNZSTask,_phase2_timing_layer_localreco_HcalNZSTask) -_ctpps_2016_localrecoTask = localrecoTask.copy() -_ctpps_2016_localrecoTask.add(recoCTPPSTask) -from Configuration.Eras.Modifier_ctpps_2016_cff import ctpps_2016 -ctpps_2016.toReplaceWith(localrecoTask, _ctpps_2016_localrecoTask) - -_ctpps_2016_localreco_HcalNZSTask = localreco_HcalNZSTask.copy() -_ctpps_2016_localreco_HcalNZSTask.add(recoCTPPSTask) -ctpps_2016.toReplaceWith(localreco_HcalNZSTask, _ctpps_2016_localreco_HcalNZSTask) +from Configuration.Eras.Modifier_ctpps_cff import ctpps + +_ctpps_localrecoTask = localrecoTask.copy() +_ctpps_localrecoTask.add(recoCTPPSTask) +ctpps.toReplaceWith(localrecoTask, _ctpps_localrecoTask) + +_ctpps_localreco_HcalNZSTask = localreco_HcalNZSTask.copy() +_ctpps_localreco_HcalNZSTask.add(recoCTPPSTask) +ctpps.toReplaceWith(localreco_HcalNZSTask, _ctpps_localreco_HcalNZSTask) ########################################### # no castor, zdc, Totem/CTPPS RP in FastSim diff --git a/DQM/CTPPS/python/ctppsDQM_cff.py b/DQM/CTPPS/python/ctppsDQM_cff.py index e6f9fdf5969a3..64ecae982a47a 100644 --- a/DQM/CTPPS/python/ctppsDQM_cff.py +++ b/DQM/CTPPS/python/ctppsDQM_cff.py @@ -60,19 +60,19 @@ ) # the actually used sequences must be empty for pre-PPS data -from Configuration.Eras.Modifier_ctpps_2016_cff import ctpps_2016 +from Configuration.Eras.Modifier_ctpps_cff import ctpps ctppsDQMOnlineSource = cms.Sequence() ctppsDQMOnlineHarvest = cms.Sequence() -ctpps_2016.toReplaceWith(ctppsDQMOnlineSource, _ctppsDQMOnlineSource) -ctpps_2016.toReplaceWith(ctppsDQMOnlineHarvest, _ctppsDQMOnlineHarvest) +ctpps.toReplaceWith(ctppsDQMOnlineSource, _ctppsDQMOnlineSource) +ctpps.toReplaceWith(ctppsDQMOnlineHarvest, _ctppsDQMOnlineHarvest) ctppsDQMCalibrationSource = cms.Sequence() ctppsDQMCalibrationHarvest = cms.Sequence() -ctpps_2016.toReplaceWith(ctppsDQMCalibrationSource, _ctppsDQMCalibrationSource) -ctpps_2016.toReplaceWith(ctppsDQMCalibrationHarvest, _ctppsDQMCalibrationHarvest) +ctpps.toReplaceWith(ctppsDQMCalibrationSource, _ctppsDQMCalibrationSource) +ctpps.toReplaceWith(ctppsDQMCalibrationHarvest, _ctppsDQMCalibrationHarvest) ctppsDQMOfflineSource = cms.Sequence() ctppsDQMOfflineHarvest = cms.Sequence() -ctpps_2016.toReplaceWith(ctppsDQMOfflineSource, _ctppsDQMOfflineSource) -ctpps_2016.toReplaceWith(ctppsDQMOfflineHarvest, _ctppsDQMOfflineHarvest) +ctpps.toReplaceWith(ctppsDQMOfflineSource, _ctppsDQMOfflineSource) +ctpps.toReplaceWith(ctppsDQMOfflineHarvest, _ctppsDQMOfflineHarvest) diff --git a/DQM/CTPPS/test/all_ctpps_dqm_test_from_aod_cfg.py b/DQM/CTPPS/test/all_ctpps_dqm_test_from_aod_cfg.py index 2ba84dc9f8f79..66b0c33de5388 100644 --- a/DQM/CTPPS/test/all_ctpps_dqm_test_from_aod_cfg.py +++ b/DQM/CTPPS/test/all_ctpps_dqm_test_from_aod_cfg.py @@ -1,7 +1,7 @@ import FWCore.ParameterSet.Config as cms -from Configuration.Eras.Modifier_ctpps_2016_cff import ctpps_2016 -process = cms.Process('ctppsDQMfromAOD', ctpps_2016) +from Configuration.Eras.Modifier_ctpps_cff import ctpps +process = cms.Process('ctppsDQMfromAOD', ctpps) # minimum of logs process.MessageLogger = cms.Service("MessageLogger", diff --git a/DQM/CTPPS/test/all_ctpps_dqm_test_from_dat_cfg.py b/DQM/CTPPS/test/all_ctpps_dqm_test_from_dat_cfg.py index 251413f07c951..920a6690418ec 100644 --- a/DQM/CTPPS/test/all_ctpps_dqm_test_from_dat_cfg.py +++ b/DQM/CTPPS/test/all_ctpps_dqm_test_from_dat_cfg.py @@ -1,7 +1,7 @@ import FWCore.ParameterSet.Config as cms -from Configuration.Eras.Modifier_ctpps_2016_cff import ctpps_2016 -process = cms.Process('ctppsDQMfromRAW', ctpps_2016) +from Configuration.Eras.Modifier_ctpps_cff import ctpps +process = cms.Process('ctppsDQMfromRAW', ctpps) # minimum of logs process.MessageLogger = cms.Service("MessageLogger", diff --git a/DQM/CTPPS/test/all_ctpps_dqm_test_from_raw_cfg.py b/DQM/CTPPS/test/all_ctpps_dqm_test_from_raw_cfg.py index a7fb39a678b5e..ffe53729359b7 100644 --- a/DQM/CTPPS/test/all_ctpps_dqm_test_from_raw_cfg.py +++ b/DQM/CTPPS/test/all_ctpps_dqm_test_from_raw_cfg.py @@ -1,7 +1,7 @@ import FWCore.ParameterSet.Config as cms -from Configuration.Eras.Modifier_ctpps_2016_cff import ctpps_2016 -process = cms.Process('ctppsDQMfromRAW', ctpps_2016) +from Configuration.Eras.Modifier_ctpps_cff import ctpps +process = cms.Process('ctppsDQMfromRAW', ctpps) # minimum of logs process.MessageLogger = cms.Service("MessageLogger", diff --git a/DQM/EcalMonitorTasks/interface/TrigPrimTask.h b/DQM/EcalMonitorTasks/interface/TrigPrimTask.h index d23cf75195227..7d1918eb710db 100644 --- a/DQM/EcalMonitorTasks/interface/TrigPrimTask.h +++ b/DQM/EcalMonitorTasks/interface/TrigPrimTask.h @@ -49,8 +49,10 @@ namespace ecaldqm { /* bool HLTCaloBit_; */ /* bool HLTMuonBit_; */ - std::array bxBinEdges_; + std::vector bxBinEdges_; + std::vector bxBinEdgesFine_; double bxBin_; + double bxBinFine_; std::map towerReadouts_; diff --git a/DQM/EcalMonitorTasks/python/TimingTask_cfi.py b/DQM/EcalMonitorTasks/python/TimingTask_cfi.py index 49164e3807282..4815849b5c0e7 100644 --- a/DQM/EcalMonitorTasks/python/TimingTask_cfi.py +++ b/DQM/EcalMonitorTasks/python/TimingTask_cfi.py @@ -140,14 +140,14 @@ high = cms.untracked.double(1.0*nBXBins), nbins = cms.untracked.int32(nBXBins), low = cms.untracked.double(0.0), - title = cms.untracked.string('bunch crossing'), + title = cms.untracked.string('BX Id'), labels = cms.untracked.vstring(bxBinLabels) ), yaxis = cms.untracked.PSet( title = cms.untracked.string('Timing (ns)') ), btype = cms.untracked.string('User'), - description = cms.untracked.string('Average hit timing in the barrel as a function of BX number.') + description = cms.untracked.string('Average hit timing in EB as a function of BX number. BX ids start at 1. Only events with energy above 2.02 GeV and chi2 less than 16 are used.') ), BarrelTimingVsBXFineBinned = cms.untracked.PSet( path = cms.untracked.string('EcalBarrel/EBTimingTask/EBTMT Timing vs Finely Binned BX'), @@ -157,14 +157,14 @@ high = cms.untracked.double(1.0*nBXBinsFine), nbins = cms.untracked.int32(nBXBinsFine), low = cms.untracked.double(0.0), - title = cms.untracked.string('bunch crossing'), + title = cms.untracked.string('BX Id'), labels = cms.untracked.vstring(bxBinLabelsFine) ), yaxis = cms.untracked.PSet( title = cms.untracked.string('Timing (ns)') ), btype = cms.untracked.string('User'), - description = cms.untracked.string('Average hit timing in the barrel as a finely-binned function of BX number.') + description = cms.untracked.string('Average hit timing in EB as a finely binned function of BX number. BX ids start at 1. Only events with energy above 2.02 GeV and chi2 less than 16 are used. The Customize button can be used to zoom in.') ), TimeAmpBXm = cms.untracked.PSet( kind = cms.untracked.string('TH2F'), diff --git a/DQM/EcalMonitorTasks/python/TrigPrimTask_cfi.py b/DQM/EcalMonitorTasks/python/TrigPrimTask_cfi.py index d2a13a723818e..940c0121324a9 100644 --- a/DQM/EcalMonitorTasks/python/TrigPrimTask_cfi.py +++ b/DQM/EcalMonitorTasks/python/TrigPrimTask_cfi.py @@ -1,28 +1,35 @@ import FWCore.ParameterSet.Config as cms bxBins = [ - "1", - "271", - "541", - "892", - "1162", - "1432", - "1783", - "2053", - "2323", - "2674", - "2944", - "3214", - "3446", - "3490", - "3491", - "3565" + 1, + 271, + 541, + 892, + 1162, + 1432, + 1783, + 2053, + 2323, + 2674, + 2944, + 3214, + 3446, + 3490, + 3491, + 3565 ] +bxBinLabels = [str(i) for i in bxBins] + +bxBinsFine = [i for i in range(1, 3601)] +bxBinLabelsFine = [str(i) for i in bxBinsFine] +nBXBinsFine = len(bxBinsFine) ecalTrigPrimTask = cms.untracked.PSet( params = cms.untracked.PSet( # HLTMuonPath = cms.untracked.string('HLT_Mu5_v*'), # HLTCaloPath = cms.untracked.string('HLT_SingleJet*'), + bxBins = cms.untracked.vint32(bxBins), + bxBinsFine = cms.untracked.vint32(bxBinsFine), runOnEmul = cms.untracked.bool(True), lhcStatusInfoCollectionTag = cms.untracked.InputTag("tcdsDigis","tcdsRecord") ), @@ -60,14 +67,14 @@ kind = cms.untracked.string('TProfile'), otype = cms.untracked.string('Ecal3P'), xaxis = cms.untracked.PSet( - high = cms.untracked.double(16.0), - nbins = cms.untracked.int32(16), + high = cms.untracked.double(1.0*nBXBinsFine), + nbins = cms.untracked.int32(nBXBinsFine), low = cms.untracked.double(0.0), - title = cms.untracked.string('bunch crossing'), - labels = cms.untracked.vstring(bxBins) + title = cms.untracked.string('BX Id'), + labels = cms.untracked.vstring(bxBinLabelsFine) ), btype = cms.untracked.string('User'), - description = cms.untracked.string('TP occupancy in different bunch crossing intervals. This plot is filled by data from physics data stream. It is normal to have very little entries in BX >= 3490.') + description = cms.untracked.string('TP occupancy in different bunch crossing intervals. This plot is filled by data from physics data stream. BX ids start at 1. It is normal to have very little entries in BX >= 3490. The Customize button can be used to zoom in.') ), HighIntMap = cms.untracked.PSet( path = cms.untracked.string('%(subdet)s/%(prefix)sSelectiveReadoutTask/Counters/%(prefix)sSRT tower high interest counter%(suffix)s'), @@ -85,13 +92,13 @@ high = cms.untracked.double(16.0), nbins = cms.untracked.int32(16), low = cms.untracked.double(0.0), - title = cms.untracked.string('bunch crossing'), - labels = cms.untracked.vstring(bxBins) + title = cms.untracked.string('BX Id'), + labels = cms.untracked.vstring(bxBinLabels) ), yaxis = cms.untracked.PSet( title = cms.untracked.string('TP Et') ), - description = cms.untracked.string('Mean TP Et in different bunch crossing intervals. This plot is filled by data from physics data stream. It is normal to have very little entries in BX >= 3490.') + description = cms.untracked.string('Mean TP Et in different bunch crossing intervals. This plot is filled by data from physics data stream. BX ids start at 1. It is normal to have very little entries in BX >= 3490.') ), EtEmulError = cms.untracked.PSet( # path = cms.untracked.string('Ecal/Errors/TriggerPrimitives/EtEmulation/'), diff --git a/DQM/EcalMonitorTasks/src/TrigPrimTask.cc b/DQM/EcalMonitorTasks/src/TrigPrimTask.cc index 25806b87c8b5a..ca822828ec870 100644 --- a/DQM/EcalMonitorTasks/src/TrigPrimTask.cc +++ b/DQM/EcalMonitorTasks/src/TrigPrimTask.cc @@ -21,8 +21,10 @@ namespace ecaldqm { // HLTMuonPath_(""), // HLTCaloBit_(false), // HLTMuonBit_(false), - bxBinEdges_{{1, 271, 541, 892, 1162, 1432, 1783, 2053, 2323, 2674, 2944, 3214, 3446, 3490, 3491, 3565}}, + bxBinEdges_(), + bxBinEdgesFine_(), bxBin_(0.), + bxBinFine_(0.), towerReadouts_(), lhcStatusInfoCollectionTag_() {} @@ -38,6 +40,8 @@ namespace ecaldqm { } lhcStatusInfoCollectionTag_ = _params.getUntrackedParameter( "lhcStatusInfoCollectionTag", edm::InputTag("tcdsDigis", "tcdsRecord")); + bxBinEdges_ = _params.getUntrackedParameter >("bxBins"); + bxBinEdgesFine_ = _params.getUntrackedParameter >("bxBinsFine"); } void TrigPrimTask::addDependencies(DependencySet& _dependencies) { @@ -83,8 +87,12 @@ namespace ecaldqm { // HLTCaloBit_ = false; // HLTMuonBit_ = false; - int* pBin(std::upper_bound(bxBinEdges_.begin(), bxBinEdges_.end(), _evt.bunchCrossing())); + std::vector::iterator pBin(std::upper_bound(bxBinEdges_.begin(), bxBinEdges_.end(), _evt.bunchCrossing())); bxBin_ = static_cast(pBin - bxBinEdges_.begin()) - 0.5; + // fine binning for TP Occ vs BX plot as requested by DAQ in March 2021 + std::vector::iterator pBinFine( + std::upper_bound(bxBinEdgesFine_.begin(), bxBinEdgesFine_.end(), _evt.bunchCrossing())); + bxBinFine_ = static_cast(pBinFine - bxBinEdgesFine_.begin()) - 0.5; edm::ESHandle TTStatusRcd_; _es.get().get(TTStatusRcd_); @@ -251,9 +259,9 @@ namespace ecaldqm { meTTFMismatch.fill(getEcalDQMSetupObjects(), ttid); } - meOccVsBx.fill(getEcalDQMSetupObjects(), EcalBarrel, bxBin_, nTP[0]); - meOccVsBx.fill(getEcalDQMSetupObjects(), -EcalEndcap, bxBin_, nTP[1]); - meOccVsBx.fill(getEcalDQMSetupObjects(), EcalEndcap, bxBin_, nTP[2]); + meOccVsBx.fill(getEcalDQMSetupObjects(), EcalBarrel, bxBinFine_, nTP[0]); + meOccVsBx.fill(getEcalDQMSetupObjects(), -EcalEndcap, bxBinFine_, nTP[1]); + meOccVsBx.fill(getEcalDQMSetupObjects(), EcalEndcap, bxBinFine_, nTP[2]); // Set TT/Strip Masking status in Ecal3P view // Status Records are read-in at beginRun() but filled here diff --git a/DQM/GEM/plugins/GEMDAQStatusSource.cc b/DQM/GEM/plugins/GEMDAQStatusSource.cc index e8b978b8311f9..0e6039972b0d4 100644 --- a/DQM/GEM/plugins/GEMDAQStatusSource.cc +++ b/DQM/GEM/plugins/GEMDAQStatusSource.cc @@ -394,8 +394,8 @@ void GEMDAQStatusSource::analyze(edm::Event const &event, edm::EventSetup const } Int_t nIdxVFAT = getVFATNumber(gid.station(), gid.roll(), vfatStat->phi()); - mapStatusVFAT_.FillBits(key3, nIdxVFAT, unQFVFAT); - mapStatusVFATPerCh_.FillBits(key4Ch, nIdxVFAT, unQFVFAT); + mapStatusVFAT_.FillBits(key3, nIdxVFAT + 1, unQFVFAT); + mapStatusVFATPerCh_.FillBits(key4Ch, nIdxVFAT + 1, unQFVFAT); } } diff --git a/DQM/GEM/plugins/GEMDigiSource.cc b/DQM/GEM/plugins/GEMDigiSource.cc index f1c3e72821c81..82e1c2ec6b1bf 100644 --- a/DQM/GEM/plugins/GEMDigiSource.cc +++ b/DQM/GEM/plugins/GEMDigiSource.cc @@ -187,7 +187,7 @@ void GEMDigiSource::analyze(edm::Event const& event, edm::EventSetup const& even for (auto d = digis_in_det.first; d != digis_in_det.second; ++d) { // Filling of digi occupancy Int_t nIdxVFAT = getVFATNumberByStrip(gid.station(), rId.roll(), d->strip()); - mapTotalDigi_layer_.Fill(key3, gid.chamber(), nIdxVFAT); + mapTotalDigi_layer_.Fill(key3, gid.chamber(), nIdxVFAT + 1); // Filling of strip mapStripOcc_ieta_.Fill(key3, rId.roll()); // Roll diff --git a/DQM/Integration/python/clients/beam_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/beam_dqm_sourceclient-live_cfg.py index efdde1512fcf7..316b4cf91c64d 100644 --- a/DQM/Integration/python/clients/beam_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/beam_dqm_sourceclient-live_cfg.py @@ -6,6 +6,7 @@ BSOnlineRecordName = 'BeamSpotOnlineLegacyObjectsRcd' BSOnlineTag = 'BeamSpotOnlineTestLegacy' BSOnlineJobName = 'BeamSpotOnlineTestLegacy' +BSOnlineOmsServiceUrl = 'http://cmsoms-services.cms:9949/urn:xdaq-application:lid=100/getRunAndLumiSection' #from Configuration.Eras.Era_Run2_2018_cff import Run2_2018 #process = cms.Process("BeamMonitor", Run2_2018) FIXME @@ -17,6 +18,7 @@ if "dqm_cmssw/playback" in str(sys.argv[1]): BSOnlineTag = BSOnlineTag + 'Playback' BSOnlineJobName = BSOnlineJobName + 'Playback' + BSOnlineOmsServiceUrl = '' # process.MessageLogger = cms.Service("MessageLogger", @@ -312,6 +314,8 @@ #---------------------------- # Pixel tracks/vertices reco process.load("RecoPixelVertexing.Configuration.RecoPixelVertexing_cff") +from RecoVertex.PrimaryVertexProducer.OfflinePixel3DPrimaryVertices_cfi import * +process.pixelVertices = pixelVertices.clone() process.pixelTracksTrackingRegions.RegionPSet.originRadius = 0.4 process.pixelTracksTrackingRegions.RegionPSet.originHalfLength = 12 process.pixelTracksTrackingRegions.RegionPSet.originXPos = 0.08 @@ -368,9 +372,7 @@ preLoadConnectionString = cms.untracked.string('frontier://FrontierProd/CMS_CONDITIONS'), runNumber = cms.untracked.uint64(options.runNumber), - #lastLumiFile = cms.untracked.string('last_lumi.txt'), - #lastLumiUrl = cms.untracked.string('http://ru-c2e14-11-01.cms:11100/urn:xdaq-application:lid=52/getLatestLumiSection'), - omsServiceUrl = cms.untracked.string('http://cmsoms-services.cms:9949/urn:xdaq-application:lid=100/getRunAndLumiSection'), + omsServiceUrl = cms.untracked.string(BSOnlineOmsServiceUrl), writeTransactionDelay = cms.untracked.uint32(options.transDelay), latency = cms.untracked.uint32(2), autoCommit = cms.untracked.bool(True), @@ -396,7 +398,6 @@ preLoadConnectionString = cms.untracked.string('sqlite_file:BeamSpotOnlineLegacy.db'), runNumber = cms.untracked.uint64(options.runNumber), lastLumiFile = cms.untracked.string('last_lumi.txt'), - #lastLumiUrl = cms.untracked.string('http://ru-c2e14-11-01.cms:11100/urn:xdaq-application:lid=52/getLatestLumiSection'), writeTransactionDelay = cms.untracked.uint32(options.transDelay), latency = cms.untracked.uint32(2), autoCommit = cms.untracked.bool(True), diff --git a/DQM/Integration/python/clients/beamfake_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/beamfake_dqm_sourceclient-live_cfg.py index d9cb03527386b..3765c52e57290 100644 --- a/DQM/Integration/python/clients/beamfake_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/beamfake_dqm_sourceclient-live_cfg.py @@ -7,6 +7,7 @@ BSOnlineRecordName = 'BeamSpotOnlineLegacyObjectsRcd' BSOnlineTag = 'BeamSpotOnlineTestLegacy' BSOnlineJobName = 'BeamSpotOnlineTestLegacy' +BSOnlineOmsServiceUrl = 'http://cmsoms-services.cms:9949/urn:xdaq-application:lid=100/getRunAndLumiSection' import sys from Configuration.Eras.Era_Run2_2018_cff import Run2_2018 @@ -16,6 +17,7 @@ if "dqm_cmssw/playback" in str(sys.argv[1]): BSOnlineTag = BSOnlineTag + 'Playback' BSOnlineJobName = BSOnlineJobName + 'Playback' + BSOnlineOmsServiceUrl = '' # process.MessageLogger = cms.Service("MessageLogger", @@ -148,9 +150,7 @@ preLoadConnectionString = cms.untracked.string('frontier://FrontierProd/CMS_CONDITIONS'), runNumber = cms.untracked.uint64(options.runNumber), - #lastLumiFile = cms.untracked.string('last_lumi.txt'), - #lastLumiUrl = cms.untracked.string('http://ru-c2e14-11-01.cms:11100/urn:xdaq-application:lid=52/getLatestLumiSection'), - omsServiceUrl = cms.untracked.string('http://cmsoms-services.cms:9949/urn:xdaq-application:lid=100/getRunAndLumiSection'), + omsServiceUrl = cms.untracked.string(BSOnlineOmsServiceUrl), writeTransactionDelay = cms.untracked.uint32(options.transDelay), latency = cms.untracked.uint32(2), autoCommit = cms.untracked.bool(True), @@ -176,7 +176,6 @@ preLoadConnectionString = cms.untracked.string('sqlite_file:BeamSpotOnlineLegacy.db'), runNumber = cms.untracked.uint64(options.runNumber), lastLumiFile = cms.untracked.string('last_lumi.txt'), - #lastLumiUrl = cms.untracked.string('http://ru-c2e14-11-01.cms:11100/urn:xdaq-application:lid=52/getLatestLumiSection'), writeTransactionDelay = cms.untracked.uint32(options.transDelay), latency = cms.untracked.uint32(2), autoCommit = cms.untracked.bool(True), diff --git a/DQM/Integration/python/clients/beamhlt_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/beamhlt_dqm_sourceclient-live_cfg.py index 2b7eb6965f27a..9fffc4061cba8 100644 --- a/DQM/Integration/python/clients/beamhlt_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/beamhlt_dqm_sourceclient-live_cfg.py @@ -6,6 +6,7 @@ BSOnlineRecordName = 'BeamSpotOnlineHLTObjectsRcd' BSOnlineTag = 'BeamSpotOnlineTestHLT' BSOnlineJobName = 'BeamSpotOnlineTestHLT' +BSOnlineOmsServiceUrl = 'http://cmsoms-services.cms:9949/urn:xdaq-application:lid=100/getRunAndLumiSection' #from Configuration.Eras.Era_Run2_2018_cff import Run2_2018 #process = cms.Process("BeamMonitor", Run2_2018) # FIMXE @@ -17,6 +18,7 @@ if "dqm_cmssw/playback" in str(sys.argv[1]): BSOnlineTag = BSOnlineTag + 'Playback' BSOnlineJobName = BSOnlineJobName + 'Playback' + BSOnlineOmsServiceUrl = '' # Message logger #process.load("FWCore.MessageLogger.MessageLogger_cfi") @@ -175,9 +177,7 @@ connect = cms.string('oracle://cms_orcon_prod/CMS_CONDITIONS'), preLoadConnectionString = cms.untracked.string('frontier://FrontierProd/CMS_CONDITIONS'), runNumber = cms.untracked.uint64(options.runNumber), - #lastLumiFile = cms.untracked.string('last_lumi.txt'), - #lastLumiUrl = cms.untracked.string('http://ru-c2e14-11-01.cms:11100/urn:xdaq-application:lid=52/getLatestLumiSection'), - omsServiceUrl = cms.untracked.string('http://cmsoms-services.cms:9949/urn:xdaq-application:lid=100/getRunAndLumiSection'), + omsServiceUrl = cms.untracked.string(BSOnlineOmsServiceUrl), writeTransactionDelay = cms.untracked.uint32(options.transDelay), latency = cms.untracked.uint32(2), autoCommit = cms.untracked.bool(True), @@ -202,7 +202,6 @@ preLoadConnectionString = cms.untracked.string('sqlite_file:BeamSpotOnlineHLT.db'), runNumber = cms.untracked.uint64(options.runNumber), lastLumiFile = cms.untracked.string('last_lumi.txt'), - #lastLumiUrl = cms.untracked.string('http://ru-c2e14-11-01.cms:11100/urn:xdaq-application:lid=52/getLatestLumiSection'), writeTransactionDelay = cms.untracked.uint32(options.transDelay), latency = cms.untracked.uint32(2), autoCommit = cms.untracked.bool(True), diff --git a/DQM/Integration/python/clients/beamhltfake_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/beamhltfake_dqm_sourceclient-live_cfg.py index 3c0b1b34672cd..a32d96c6d7628 100644 --- a/DQM/Integration/python/clients/beamhltfake_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/beamhltfake_dqm_sourceclient-live_cfg.py @@ -6,6 +6,7 @@ BSOnlineRecordName = 'BeamSpotOnlineHLTObjectsRcd' BSOnlineTag = 'BeamSpotOnlineTestHLT' BSOnlineJobName = 'BeamSpotOnlineTestHLT' +BSOnlineOmsServiceUrl = 'http://cmsoms-services.cms:9949/urn:xdaq-application:lid=100/getRunAndLumiSection' import sys from Configuration.Eras.Era_Run2_2018_cff import Run2_2018 @@ -15,6 +16,7 @@ if "dqm_cmssw/playback" in str(sys.argv[1]): BSOnlineTag = BSOnlineTag + 'Playback' BSOnlineJobName = BSOnlineJobName + 'Playback' + BSOnlineOmsServiceUrl = '' # switch live = True # FIXME @@ -122,9 +124,7 @@ connect = cms.string('oracle://cms_orcon_prod/CMS_CONDITIONS'), preLoadConnectionString = cms.untracked.string('frontier://FrontierProd/CMS_CONDITIONS'), runNumber = cms.untracked.uint64(options.runNumber), - #lastLumiFile = cms.untracked.string('last_lumi.txt'), - #lastLumiUrl = cms.untracked.string('http://ru-c2e14-11-01.cms:11100/urn:xdaq-application:lid=52/getLatestLumiSection'), - omsServiceUrl = cms.untracked.string('http://cmsoms-services.cms:9949/urn:xdaq-application:lid=100/getRunAndLumiSection'), + omsServiceUrl = cms.untracked.string(BSOnlineOmsServiceUrl), writeTransactionDelay = cms.untracked.uint32(options.transDelay), latency = cms.untracked.uint32(2), autoCommit = cms.untracked.bool(True), @@ -151,7 +151,6 @@ runNumber = cms.untracked.uint64(options.runNumber), lastLumiFile = cms.untracked.string('last_lumi.txt'), - #lastLumiUrl = cms.untracked.string('http://ru-c2e14-11-01.cms:11100/urn:xdaq-application:lid=52/getLatestLumiSection'), writeTransactionDelay = cms.untracked.uint32(options.transDelay), latency = cms.untracked.uint32(2), autoCommit = cms.untracked.bool(True), diff --git a/DQM/Integration/python/clients/beampixel_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/beampixel_dqm_sourceclient-live_cfg.py index f909104a39834..ba03f7f75f2d6 100644 --- a/DQM/Integration/python/clients/beampixel_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/beampixel_dqm_sourceclient-live_cfg.py @@ -90,6 +90,8 @@ process.siPixelClusterShapeCachePreSplitting = siPixelClusterShapeCache.clone(src = 'siPixelClustersPreSplitting') process.load("RecoLocalTracker.SiPixelRecHits.PixelCPEGeneric_cfi") process.load("RecoPixelVertexing.Configuration.RecoPixelVertexing_cff") +from RecoVertex.PrimaryVertexProducer.OfflinePixel3DPrimaryVertices_cfi import * +process.pixelVertices = pixelVertices.clone() process.pixelVertices.TkFilterParameters.minPt = process.pixelTracksTrackingRegions.RegionPSet.ptMin process.pixelTracksTrackingRegions.RegionPSet.originRadius = cms.double(0.4) process.pixelTracksTrackingRegions.RegionPSet.originHalfLength = cms.double(15.) diff --git a/DQM/Integration/python/clients/hcalcalib_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/hcalcalib_dqm_sourceclient-live_cfg.py index 3d402e606bfd5..abaf70993143a 100644 --- a/DQM/Integration/python/clients/hcalcalib_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/hcalcalib_dqm_sourceclient-live_cfg.py @@ -44,7 +44,7 @@ # Central DQM Customization #------------------------------------- process.source.streamLabel = cms.untracked.string("streamDQMCalibration") -process.source.SelectEvents = cms.untracked.vstring("*HcalCalibration*") +#process.source.SelectEvents = cms.untracked.vstring("*HcalCalibration*") process.dqmEnv.subSystemFolder = subsystem process.dqmSaver.tag = subsystem process.dqmSaver.runNumber = options.runNumber @@ -238,7 +238,8 @@ *process.tasksSequence *process.harvestingSequence *process.dqmEnv - *process.dqmSaver) + *process.dqmSaver + *process.dqmSaverPB) #------------------------------------- # Scheduling diff --git a/DQM/Integration/python/clients/l1tstage2emulator_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/clients/l1tstage2emulator_dqm_sourceclient-live_cfg.py index 7b6372229555c..d2d4ecb4f630d 100644 --- a/DQM/Integration/python/clients/l1tstage2emulator_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/clients/l1tstage2emulator_dqm_sourceclient-live_cfg.py @@ -51,13 +51,12 @@ #-------------------------------------------------- # Standard Unpacking Path -process.load("Configuration.StandardSequences.RawToDigi_Data_cff") +process.load("Configuration.StandardSequences.RawToDigi_Data_cff") # remove unneeded unpackers process.RawToDigi.remove(process.ecalDigis) process.RawToDigi.remove(process.ecalPreshowerDigis) process.RawToDigi.remove(process.hcalDigis) -process.RawToDigi.remove(process.muonCSCDigis) process.RawToDigi.remove(process.muonDTDigis) process.RawToDigi.remove(process.siPixelDigis) process.RawToDigi.remove(process.siStripDigis) @@ -168,7 +167,7 @@ #-------------------------------------------------- # L1T Emulator Online DQM Schedule -process.schedule = cms.Schedule( +process.schedule = cms.Schedule( process.rawToDigiPath, process.l1tEmulatorMonitorPath, process.l1tStage2EmulatorMonitorClientPath, diff --git a/DQM/Integration/python/config/FrontierCondition_GT_autoExpress_cfi.py b/DQM/Integration/python/config/FrontierCondition_GT_autoExpress_cfi.py index 92653dab8d754..189f5d662729b 100644 --- a/DQM/Integration/python/config/FrontierCondition_GT_autoExpress_cfi.py +++ b/DQM/Integration/python/config/FrontierCondition_GT_autoExpress_cfi.py @@ -1,13 +1,14 @@ from __future__ import print_function import FWCore.ParameterSet.Config as cms from Configuration.StandardSequences.FrontierConditions_GlobalTag_cff import * +from Configuration.AlCa.autoCond import autoCond # Default Express GT: it is the GT that will be used in case we are not able # to retrieve the one used at Tier0. # It should be kept in synch with Express processing at Tier0: what the url # https://cmsweb.cern.ch/t0wmadatasvc/prod/express_config # would tell you. -GlobalTag.globaltag = "112X_dataRun3_Express_v2" +GlobalTag.globaltag = autoCond['run3_data_express'] # ===== auto -> Automatically get the GT string from current Tier0 configuration via a Tier0Das call. # This needs a valid proxy to access the cern.ch network from the .cms one. diff --git a/DQM/Integration/python/config/FrontierCondition_GT_cfi.py b/DQM/Integration/python/config/FrontierCondition_GT_cfi.py index e6ed62c481ded..977d6c93c8e2a 100644 --- a/DQM/Integration/python/config/FrontierCondition_GT_cfi.py +++ b/DQM/Integration/python/config/FrontierCondition_GT_cfi.py @@ -1,3 +1,4 @@ import FWCore.ParameterSet.Config as cms from Configuration.StandardSequences.FrontierConditions_GlobalTag_cff import * -GlobalTag.globaltag = "112X_dataRun3_HLT_v1" +from Configuration.AlCa.autoCond import autoCond +GlobalTag.globaltag = autoCond['run3_hlt'] diff --git a/DQM/Integration/test/runtest.sh b/DQM/Integration/test/runtest.sh index b61598b40d218..40c0223977345 100755 --- a/DQM/Integration/test/runtest.sh +++ b/DQM/Integration/test/runtest.sh @@ -3,7 +3,7 @@ set -e set -x if [[ $# -eq 0 ]]; then - echo "Please provide a name of the clinet" + echo "Please provide a name of the client" exit 1 fi diff --git a/DQM/L1TMonitor/interface/L1TdeCSCTPG.h b/DQM/L1TMonitor/interface/L1TdeCSCTPG.h new file mode 100644 index 0000000000000..2a3f1916acd0f --- /dev/null +++ b/DQM/L1TMonitor/interface/L1TdeCSCTPG.h @@ -0,0 +1,55 @@ +#ifndef DQM_L1TMonitor_L1TdeCSCTPG_h +#define DQM_L1TMonitor_L1TdeCSCTPG_h + +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" + +#include "DQMServices/Core/interface/DQMEDAnalyzer.h" +#include "DQMServices/Core/interface/DQMStore.h" + +#include "DataFormats/CSCDigi/interface/CSCALCTDigiCollection.h" +#include "DataFormats/CSCDigi/interface/CSCCLCTDigiCollection.h" +#include "DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigiCollection.h" + +class L1TdeCSCTPG : public DQMEDAnalyzer { +public: + L1TdeCSCTPG(const edm::ParameterSet& ps); + ~L1TdeCSCTPG() override; + +protected: + void bookHistograms(DQMStore::IBooker&, const edm::Run&, const edm::EventSetup&) override; + void analyze(const edm::Event&, const edm::EventSetup&) override; + +private: + edm::EDGetTokenT dataALCT_token_; + edm::EDGetTokenT emulALCT_token_; + edm::EDGetTokenT dataCLCT_token_; + edm::EDGetTokenT emulCLCT_token_; + edm::EDGetTokenT dataLCT_token_; + edm::EDGetTokenT emulLCT_token_; + std::string monitorDir_; + + std::vector chambers_; + std::vector dataEmul_; + + std::vector alctVars_; + std::vector clctVars_; + std::vector lctVars_; + + std::vector alctNBin_; + std::vector clctNBin_; + std::vector lctNBin_; + std::vector alctMinBin_; + std::vector clctMinBin_; + std::vector lctMinBin_; + std::vector alctMaxBin_; + std::vector clctMaxBin_; + std::vector lctMaxBin_; + + // first key is the chamber number + // second key is the variable + std::map > chamberHistos; +}; + +#endif diff --git a/DQM/L1TMonitor/interface/L1TdeGEMTPG.h b/DQM/L1TMonitor/interface/L1TdeGEMTPG.h new file mode 100644 index 0000000000000..2a0969bda547d --- /dev/null +++ b/DQM/L1TMonitor/interface/L1TdeGEMTPG.h @@ -0,0 +1,41 @@ +#ifndef DQM_L1TMonitor_L1TdeGEMTPG_h +#define DQM_L1TMonitor_L1TdeGEMTPG_h + +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" + +#include "DQMServices/Core/interface/DQMEDAnalyzer.h" +#include "DQMServices/Core/interface/DQMStore.h" + +#include "DataFormats/GEMDigi/interface/GEMPadDigiClusterCollection.h" + +class L1TdeGEMTPG : public DQMEDAnalyzer { +public: + L1TdeGEMTPG(const edm::ParameterSet& ps); + ~L1TdeGEMTPG() override; + +protected: + void bookHistograms(DQMStore::IBooker&, const edm::Run&, const edm::EventSetup&) override; + void analyze(const edm::Event&, const edm::EventSetup&) override; + +private: + edm::EDGetTokenT data_token_; + edm::EDGetTokenT emul_token_; + std::string monitorDir_; + bool verbose_; + + std::vector chambers_; + std::vector dataEmul_; + + std::vector clusterVars_; + std::vector clusterNBin_; + std::vector clusterMinBin_; + std::vector clusterMaxBin_; + + // first key is the chamber number + // second key is the variable + std::map > chamberHistos; +}; + +#endif diff --git a/DQM/L1TMonitor/plugins/SealModule.cc b/DQM/L1TMonitor/plugins/SealModule.cc index be47862aa22fb..6d3414f071a84 100644 --- a/DQM/L1TMonitor/plugins/SealModule.cc +++ b/DQM/L1TMonitor/plugins/SealModule.cc @@ -1,81 +1,81 @@ #include "FWCore/PluginManager/interface/ModuleDef.h" -#include +#include "DQM/L1TMonitor/interface/L1TFED.h" DEFINE_FWK_MODULE(L1TFED); -#include +#include "DQM/L1TMonitor/interface/L1TCSCTPG.h" DEFINE_FWK_MODULE(L1TCSCTPG); -#include +#include "DQM/L1TMonitor/interface/L1TCSCTF.h" DEFINE_FWK_MODULE(L1TCSCTF); -#include +#include "DQM/L1TMonitor/interface/L1TDTTPG.h" DEFINE_FWK_MODULE(L1TDTTPG); -#include +#include "DQM/L1TMonitor/interface/L1TDTTF.h" DEFINE_FWK_MODULE(L1TDTTF); -#include +#include "DQM/L1TMonitor/interface/L1TRPCTPG.h" DEFINE_FWK_MODULE(L1TRPCTPG); -#include +#include "DQM/L1TMonitor/interface/L1TRPCTF.h" DEFINE_FWK_MODULE(L1TRPCTF); -#include +#include "DQM/L1TMonitor/interface/L1TGMT.h" DEFINE_FWK_MODULE(L1TGMT); -#include +#include "DQM/L1TMonitor/interface/L1TStage2CaloLayer1.h" DEFINE_FWK_MODULE(L1TStage2CaloLayer1); -#include +#include "DQM/L1TMonitor/interface/L1TStage2CaloLayer2.h" DEFINE_FWK_MODULE(L1TStage2CaloLayer2); -#include +#include "DQM/L1TMonitor/interface/L1TStage2uGMT.h" DEFINE_FWK_MODULE(L1TStage2uGMT); -#include +#include "DQM/L1TMonitor/interface/L1TObjectsTiming.h" DEFINE_FWK_MODULE(L1TObjectsTiming); -#include +#include "DQM/L1TMonitor/interface/L1TStage2uGMTMuon.h" DEFINE_FWK_MODULE(L1TStage2uGMTMuon); -#include +#include "DQM/L1TMonitor/interface/L1TStage2MuonComp.h" DEFINE_FWK_MODULE(L1TStage2MuonComp); -#include +#include "DQM/L1TMonitor/interface/L1TStage2RegionalMuonCandComp.h" DEFINE_FWK_MODULE(L1TStage2RegionalMuonCandComp); -#include +#include "DQM/L1TMonitor/interface/L1TStage2uGT.h" DEFINE_FWK_MODULE(L1TStage2uGT); -#include +#include "DQM/L1TMonitor/interface/L1TStage2uGTTiming.h" DEFINE_FWK_MODULE(L1TStage2uGTTiming); -#include +#include "DQM/L1TMonitor/interface/L1TStage2BMTF.h" DEFINE_FWK_MODULE(L1TStage2BMTF); -#include +#include "DQM/L1TMonitor/interface/L1TStage2OMTF.h" DEFINE_FWK_MODULE(L1TStage2OMTF); -#include +#include "DQM/L1TMonitor/interface/L1TStage2EMTF.h" DEFINE_FWK_MODULE(L1TStage2EMTF); -#include +#include "DQM/L1TMonitor/interface/L1TMP7ZeroSupp.h" DEFINE_FWK_MODULE(L1TMP7ZeroSupp); -#include +#include "DQM/L1TMonitor/interface/L1TGCT.h" DEFINE_FWK_MODULE(L1TGCT); -#include +#include "DQM/L1TMonitor/interface/L1TRCT.h" DEFINE_FWK_MODULE(L1TRCT); #include "DQM/L1TMonitor/interface/L1TPUM.h" DEFINE_FWK_MODULE(L1TPUM); -#include +#include "DQM/L1TMonitor/interface/L1TGT.h" DEFINE_FWK_MODULE(L1TGT); -#include +#include "DQM/L1TMonitor/interface/L1TCompare.h" DEFINE_FWK_MODULE(L1TCompare); #include "DQM/L1TMonitor/interface/BxTiming.h" @@ -92,13 +92,19 @@ DEFINE_FWK_MODULE(L1TdeGCT); #include "DQM/L1TMonitor/interface/L1TdeRCT.h" DEFINE_FWK_MODULE(L1TdeRCT); -#include +#include "DQM/L1TMonitor/interface/L1TdeStage2CaloLayer1.h" DEFINE_FWK_MODULE(L1TdeStage2CaloLayer1); +#include "DQM/L1TMonitor/interface/L1TdeGEMTPG.h" +DEFINE_FWK_MODULE(L1TdeGEMTPG); + +#include "DQM/L1TMonitor/interface/L1TdeCSCTPG.h" +DEFINE_FWK_MODULE(L1TdeCSCTPG); + #include "DQM/L1TMonitor/interface/L1TdeCSCTF.h" DEFINE_FWK_MODULE(L1TdeCSCTF); -#include +#include "DQM/L1TMonitor/interface/L1TdeStage2EMTF.h" DEFINE_FWK_MODULE(L1TdeStage2EMTF); //#include "DQM/L1TMonitor/interface/L1GtHwValidation.h" @@ -125,5 +131,5 @@ DEFINE_FWK_MODULE(L1TStage2uGTCaloLayer2Comp); #include "DQM/L1TMonitor/interface/L1TdeStage2CaloLayer2.h" DEFINE_FWK_MODULE(L1TdeStage2CaloLayer2); -#include +#include "DQM/L1TMonitor/interface/L1TdeStage2uGT.h" DEFINE_FWK_MODULE(L1TdeStage2uGT); diff --git a/DQM/L1TMonitor/python/L1TEmulatorMonitor_cff.py b/DQM/L1TMonitor/python/L1TEmulatorMonitor_cff.py index 614f4e3e15760..b0c5b0b2b4c31 100644 --- a/DQM/L1TMonitor/python/L1TEmulatorMonitor_cff.py +++ b/DQM/L1TMonitor/python/L1TEmulatorMonitor_cff.py @@ -46,6 +46,8 @@ l1TdeRCTfromRCT.rctSourceData = 'rctDigis' l1TdeRCTfromRCT.HistFolder = cms.untracked.string('L1TEMU/L1TdeRCT_FromRCT') +from DQM.L1TMonitor.L1TdeCSCTPG_cfi import * + from DQM.L1TMonitor.L1TdeCSCTF_cfi import * from DQM.L1TMonitor.L1GtHwValidation_cff import * @@ -67,7 +69,7 @@ ############################################################ -# GMT unpack from Fed813 in legacy stage1 parallel running +# GMT unpack from Fed813 in legacy stage1 parallel running from EventFilter.L1GlobalTriggerRawToDigi.l1GtUnpack_cfi import * l1GtUnpack.DaqGtInputTag = 'rawDataCollector' @@ -78,11 +80,12 @@ ) l1ExpertDataVsEmulator = cms.Sequence( - l1TdeGCT + - l1TdeCSCTF + - l1GtHwValidation + - l1TdeRCTRun1 - ) + l1TdeGCT + + l1tdeCSCTPG + + l1TdeCSCTF + + l1GtHwValidation + + l1TdeRCTRun1 +) l1EmulatorMonitorTask = cms.Task( @@ -116,7 +119,7 @@ l1EmulatorMonitorStage1 = cms.Sequence( #caloStage1Digis* - #caloStage1LegacyFormatDigis* + #caloStage1LegacyFormatDigis* l1demonstage1+ l1ExpertDataVsEmulatorStage1 ) diff --git a/DQM/L1TMonitor/python/L1TStage2Emulator_cff.py b/DQM/L1TMonitor/python/L1TStage2Emulator_cff.py index e041b64f3bd9e..e656189341e70 100644 --- a/DQM/L1TMonitor/python/L1TStage2Emulator_cff.py +++ b/DQM/L1TMonitor/python/L1TStage2Emulator_cff.py @@ -7,82 +7,102 @@ from L1Trigger.L1TCalorimeter.simDigis_cff import * # CaloLayer1 from L1Trigger.L1TCaloLayer1.simCaloStage2Layer1Digis_cfi import simCaloStage2Layer1Digis -valCaloStage2Layer1Digis = simCaloStage2Layer1Digis.clone() -valCaloStage2Layer1Digis.ecalToken = cms.InputTag("caloLayer1Digis") -valCaloStage2Layer1Digis.hcalToken = cms.InputTag("caloLayer1Digis") -valCaloStage2Layer1Digis.unpackEcalMask = cms.bool(True) -valCaloStage2Layer1Digis.unpackHcalMask = cms.bool(True) +valCaloStage2Layer1Digis = simCaloStage2Layer1Digis.clone( + ecalToken = "caloLayer1Digis", + hcalToken = "caloLayer1Digis", + unpackEcalMask = True, + unpackHcalMask = True +) # CaloLayer2 from L1Trigger.L1TCalorimeter.simCaloStage2Digis_cfi import simCaloStage2Digis -valCaloStage2Layer2Digis = simCaloStage2Digis.clone() -valCaloStage2Layer2Digis.towerToken = cms.InputTag("caloStage2Digis", "CaloTower") +valCaloStage2Layer2Digis = simCaloStage2Digis.clone(towerToken = "caloStage2Digis:CaloTower") # BMTF-Legacy from L1Trigger.L1TMuonBarrel.simBmtfDigis_cfi import * -valBmtfDigis = simBmtfDigis.clone() -valBmtfDigis.DTDigi_Source = cms.InputTag("bmtfDigis") -valBmtfDigis.DTDigi_Theta_Source = cms.InputTag("bmtfDigis") +valBmtfDigis = simBmtfDigis.clone( + DTDigi_Source = "bmtfDigis", + DTDigi_Theta_Source = "bmtfDigis" +) # BMTF-Kalman from L1Trigger.L1TMuonBarrel.simKBmtfDigis_cfi import * from L1Trigger.L1TMuonBarrel.simKBmtfStubs_cfi import * -valKBmtfStubs = simKBmtfStubs.clone() -valKBmtfStubs.srcPhi = cms.InputTag("bmtfDigis") -valKBmtfStubs.srcTheta = cms.InputTag("bmtfDigis") -valKBmtfDigis = simKBmtfDigis.clone() -valKBmtfDigis.src = cms.InputTag("valKBmtfStubs") +valKBmtfStubs = simKBmtfStubs.clone( + srcPhi = "bmtfDigis", + srcTheta = "bmtfDigis" +) +valKBmtfDigis = simKBmtfDigis.clone(src = "valKBmtfStubs") # BMTF-AlgoTriggerSelector from DQM.L1TMonitor.L1TBMTFAlgoSelector_cfi import * -valBmtfAlgoSel = l1tBmtfAlgoSelector.clone() -valBmtfAlgoSel.bmtfKalman = cms.InputTag("valKBmtfDigis:BMTF") -valBmtfAlgoSel.bmtfLegacy = cms.InputTag("valBmtfDigis:BMTF") +valBmtfAlgoSel = l1tBmtfAlgoSelector.clone( + bmtfKalman = "valKBmtfDigis:BMTF", + bmtfLegacy = "valBmtfDigis:BMTF" +) # OMTF from L1Trigger.L1TMuonOverlap.simOmtfDigis_cfi import * -valOmtfDigis = simOmtfDigis.clone() -valOmtfDigis.srcDTPh = cms.InputTag('omtfStage2Digis') -valOmtfDigis.srcDTTh = cms.InputTag('omtfStage2Digis') -valOmtfDigis.srcCSC = cms.InputTag('omtfStage2Digis') -valOmtfDigis.srcRPC = cms.InputTag('omtfStage2Digis') +valOmtfDigis = simOmtfDigis.clone( + srcDTPh = "omtfStage2Digis", + srcDTTh = "omtfStage2Digis", + srcCSC = "omtfStage2Digis", + srcRPC = "omtfStage2Digis" +) + +# GEM TPG +from L1Trigger.L1TGEM.simGEMDigis_cff import * +valMuonGEMPadDigis = simMuonGEMPadDigis.clone(InputCollection = "muonGEMDigis") +valMuonGEMPadDigiClusters = simMuonGEMPadDigiClusters.clone(InputCollection = "valMuonGEMPadDigis") + +# CSC TPG +from L1Trigger.CSCTriggerPrimitives.cscTriggerPrimitiveDigis_cfi import * +valCscStage2Digis = cscTriggerPrimitiveDigis.clone( + CSCComparatorDigiProducer = "muonCSCDigis:MuonCSCComparatorDigi", + CSCWireDigiProducer = "muonCSCDigis:MuonCSCWireDigi" +) + +from Configuration.Eras.Modifier_run3_GEM_cff import run3_GEM +run3_GEM.toModify( valCscStage2Digis, GEMPadDigiClusterProducer = "valMuonGEMPadDigiClusters" ) # EMTF from L1Trigger.L1TMuonEndCap.simEmtfDigis_cfi import * -valEmtfStage2Digis = simEmtfDigis.clone() -valEmtfStage2Digis.CSCInput = "emtfStage2Digis" -valEmtfStage2Digis.RPCInput = "muonRPCDigis" +valEmtfStage2Digis = simEmtfDigis.clone( + CSCInput = "emtfStage2Digis", + RPCInput = "muonRPCDigis" +) # uGMT from L1Trigger.L1TMuon.simGmtStage2Digis_cfi import * -valGmtCaloSumDigis = simGmtCaloSumDigis.clone() -valGmtCaloSumDigis.caloStage2Layer2Label = cms.InputTag("valCaloStage2Layer1Digis") -valGmtStage2Digis = simGmtStage2Digis.clone() -valGmtStage2Digis.barrelTFInput = cms.InputTag("gmtStage2Digis", "BMTF") -valGmtStage2Digis.overlapTFInput = cms.InputTag("gmtStage2Digis", "OMTF") -valGmtStage2Digis.forwardTFInput = cms.InputTag("gmtStage2Digis", "EMTF") -valGmtStage2Digis.triggerTowerInput = cms.InputTag("valGmtCaloSumDigis", "TriggerTowerSums") +valGmtCaloSumDigis = simGmtCaloSumDigis.clone(caloStage2Layer2Label = "valCaloStage2Layer1Digis") +valGmtStage2Digis = simGmtStage2Digis.clone( + barrelTFInput = "gmtStage2Digis:BMTF", + overlapTFInput = "gmtStage2Digis:OMTF", + forwardTFInput = "gmtStage2Digis:EMTF", + triggerTowerInput = "valGmtCaloSumDigis:TriggerTowerSums" +) # uGT from L1Trigger.L1TGlobal.simGtStage2Digis_cfi import simGtStage2Digis from L1Trigger.L1TGlobal.simGtExtFakeProd_cfi import simGtExtFakeProd -valGtStage2Digis = simGtStage2Digis.clone() -valGtStage2Digis.ExtInputTag = cms.InputTag("gtStage2Digis") -valGtStage2Digis.MuonInputTag = cms.InputTag("gtStage2Digis", "Muon") -valGtStage2Digis.EGammaInputTag = cms.InputTag("gtStage2Digis", "EGamma") -valGtStage2Digis.TauInputTag = cms.InputTag("gtStage2Digis", "Tau") -valGtStage2Digis.JetInputTag = cms.InputTag("gtStage2Digis", "Jet") -valGtStage2Digis.EtSumInputTag = cms.InputTag("gtStage2Digis", "EtSum") -valGtStage2Digis.AlgorithmTriggersUnmasked = cms.bool(False) -valGtStage2Digis.AlgorithmTriggersUnprescaled = cms.bool(False) -valGtStage2Digis.EmulateBxInEvent = cms.int32(5) -valGtStage2Digis.PrescaleSet = cms.uint32(7) -valGtStage2Digis.GetPrescaleColumnFromData = cms.bool(True) -valGtStage2Digis.AlgoBlkInputTag = cms.InputTag("gtStage2Digis") - +valGtStage2Digis = simGtStage2Digis.clone( + ExtInputTag = "gtStage2Digis", + MuonInputTag = "gtStage2Digis:Muon", + EGammaInputTag = "gtStage2Digis:EGamma", + TauInputTag = "gtStage2Digis:Tau", + JetInputTag = "gtStage2Digis:Jet", + EtSumInputTag = "gtStage2Digis:EtSum", + AlgorithmTriggersUnmasked = False, + AlgorithmTriggersUnprescaled = False, + EmulateBxInEvent = cms.int32(5), + PrescaleSet = cms.uint32(7), + GetPrescaleColumnFromData = True, + AlgoBlkInputTag = "gtStage2Digis" +) Stage2L1HardwareValidation = cms.Sequence( valCaloStage2Layer1Digis + + valCscStage2Digis + valBmtfDigis + valKBmtfStubs + valKBmtfDigis + @@ -94,6 +114,10 @@ valGtStage2Digis ) +from Configuration.Eras.Modifier_run3_GEM_cff import run3_GEM +_run3_Stage2L1HardwareValidation = Stage2L1HardwareValidation.copy() +run3_GEM.toReplaceWith( Stage2L1HardwareValidation, cms.Sequence( valMuonGEMPadDigis + valMuonGEMPadDigiClusters + _run3_Stage2L1HardwareValidation) ) + Stage2L1HardwareValidationForValidationEvents = cms.Sequence( valCaloStage2Layer2Digis ) @@ -108,6 +132,12 @@ from DQM.L1TMonitor.L1TdeStage2CaloLayer2_cfi import * from DQM.L1TMonitor.L1TStage2CaloLayer2Emul_cfi import * +# GEM TPG +from DQM.L1TMonitor.L1TdeGEMTPG_cfi import * + +# CSC TPG +from DQM.L1TMonitor.L1TdeCSCTPG_cfi import * + # BMTF from DQM.L1TMonitor.L1TdeStage2BMTF_cfi import * from DQM.L1TMonitor.L1TdeStage2BMTFSecond_cff import * @@ -133,12 +163,19 @@ l1tdeStage2Bmtf + l1tdeStage2BmtfSecond + l1tdeStage2Omtf + + l1tdeCSCTPG + l1tdeStage2EmtfOnlineDQMSeq + l1tStage2uGMTEmulatorOnlineDQMSeq + l1tdeStage2uGT + l1tStage2uGtEmul ) +_run3_l1tStage2EmulatorOnlineDQM = l1tStage2EmulatorOnlineDQM.copy() +_run3_l1tStage2EmulatorOnlineDQM += l1tdeGEMTPG + +from Configuration.Eras.Modifier_run3_GEM_cff import run3_GEM +run3_GEM.toReplaceWith( l1tStage2EmulatorOnlineDQM, _run3_l1tStage2EmulatorOnlineDQM ) + # sequence to run only for validation events l1tStage2EmulatorOnlineDQMValidationEvents = cms.Sequence( l1tdeStage2CaloLayer1 + diff --git a/DQM/L1TMonitor/python/L1TdeCSCTPG_cfi.py b/DQM/L1TMonitor/python/L1TdeCSCTPG_cfi.py new file mode 100644 index 0000000000000..13e0f3cac9b65 --- /dev/null +++ b/DQM/L1TMonitor/python/L1TdeCSCTPG_cfi.py @@ -0,0 +1,34 @@ +import FWCore.ParameterSet.Config as cms +from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer + +l1tdeCSCTPGCommon = cms.PSet( + monitorDir = cms.string('L1TEMU/L1TdeCSCTPG'), + chambers = cms.vstring("ME1a", "ME1b", "ME12", "ME13", "ME21", "ME22", + "ME31", "ME32", "ME41", "ME42"), + alctVars = cms.vstring("quality", "wiregroup", "bx"), + alctNBin = cms.vuint32(6, 116, 20), + alctMinBin = cms.vdouble(0, 0, 0), + alctMaxBin = cms.vdouble(6, 116, 20), + clctVars = cms.vstring("quality", "halfstrip", + "pattern", "bend", "quartstrip","eightstrip"), + clctNBin = cms.vuint32(16, 240, 16, 2, 2, 2), + clctMinBin = cms.vdouble(0, 0, 0, 0, 0, 0), + clctMaxBin = cms.vdouble(16, 240, 16, 2, 2, 2), + lctVars = cms.vstring( "quality", "wiregroup", "halfstrip", + "pattern", "bend", "quartstrip","eightstrip"), + lctNBin = cms.vuint32(16, 116, 240, 16, 2, 2, 2), + lctMinBin = cms.vdouble(0, 0, 0, 0, 0, 0, 0), + lctMaxBin = cms.vdouble(16, 116, 240, 16, 2, 2, 2), +) + +l1tdeCSCTPG = DQMEDAnalyzer( + "L1TdeCSCTPG", + l1tdeCSCTPGCommon, + dataALCT = cms.InputTag("muonCSCDigis","MuonCSCALCTDigi"), + emulALCT = cms.InputTag("valCscStage2Digis"), + dataCLCT = cms.InputTag("muonCSCDigis","MuonCSCCLCTDigi"), + emulCLCT = cms.InputTag("valCscStage2Digis"), + dataLCT = cms.InputTag("muonCSCDigis","MuonCSCCorrelatedLCTDigi"), + emulLCT = cms.InputTag("valCscStage2Digis", "MPCSORTED"), + dataEmul = cms.vstring("data","emul"), +) diff --git a/DQM/L1TMonitor/python/L1TdeGEMTPG_cfi.py b/DQM/L1TMonitor/python/L1TdeGEMTPG_cfi.py new file mode 100644 index 0000000000000..5581a3e0a4876 --- /dev/null +++ b/DQM/L1TMonitor/python/L1TdeGEMTPG_cfi.py @@ -0,0 +1,17 @@ +import FWCore.ParameterSet.Config as cms + +from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer +l1tdeGEMTPG = DQMEDAnalyzer( + "L1TdeGEMTPG", + data = cms.InputTag("valMuonGEMPadDigiClusters"), + emul = cms.InputTag("valMuonGEMPadDigiClusters"), + monitorDir = cms.string("L1TEMU/L1TdeGEMTPG"), + verbose = cms.bool(False), + ## when multiple chambers are enabled, order them by station number! + chambers = cms.vstring("GE11"), + dataEmul = cms.vstring("data","emul"), + clusterVars = cms.vstring("size", "pad", "bx"), + clusterNBin = cms.vuint32(20,384,10), + clusterMinBin = cms.vdouble(-0.5,-0.5,-4.5), + clusterMaxBin = cms.vdouble(19.5,383.5,5.5), +) diff --git a/DQM/L1TMonitor/src/L1TdeCSCTPG.cc b/DQM/L1TMonitor/src/L1TdeCSCTPG.cc new file mode 100644 index 0000000000000..db13544a410c7 --- /dev/null +++ b/DQM/L1TMonitor/src/L1TdeCSCTPG.cc @@ -0,0 +1,153 @@ +#include + +#include "DQM/L1TMonitor/interface/L1TdeCSCTPG.h" + +L1TdeCSCTPG::L1TdeCSCTPG(const edm::ParameterSet& ps) + : dataALCT_token_(consumes(ps.getParameter("dataALCT"))), + emulALCT_token_(consumes(ps.getParameter("emulALCT"))), + dataCLCT_token_(consumes(ps.getParameter("dataCLCT"))), + emulCLCT_token_(consumes(ps.getParameter("emulCLCT"))), + dataLCT_token_(consumes(ps.getParameter("dataLCT"))), + emulLCT_token_(consumes(ps.getParameter("emulLCT"))), + monitorDir_(ps.getParameter("monitorDir")), + + chambers_(ps.getParameter>("chambers")), + dataEmul_(ps.getParameter>("dataEmul")), + + // variables + alctVars_(ps.getParameter>("alctVars")), + clctVars_(ps.getParameter>("lctVars")), + lctVars_(ps.getParameter>("lctVars")), + + // binning + alctNBin_(ps.getParameter>("alctNBin")), + clctNBin_(ps.getParameter>("lctNBin")), + lctNBin_(ps.getParameter>("lctNBin")), + alctMinBin_(ps.getParameter>("alctMinBin")), + clctMinBin_(ps.getParameter>("lctMinBin")), + lctMinBin_(ps.getParameter>("lctMinBin")), + alctMaxBin_(ps.getParameter>("alctMaxBin")), + clctMaxBin_(ps.getParameter>("lctMaxBin")), + lctMaxBin_(ps.getParameter>("lctMaxBin")) {} + +L1TdeCSCTPG::~L1TdeCSCTPG() {} + +void L1TdeCSCTPG::bookHistograms(DQMStore::IBooker& iBooker, const edm::Run&, const edm::EventSetup&) { + iBooker.setCurrentFolder(monitorDir_); + + // chamber type + for (unsigned iType = 0; iType < chambers_.size(); iType++) { + // data vs emulator + for (unsigned iData = 0; iData < dataEmul_.size(); iData++) { + // alct variable + for (unsigned iVar = 0; iVar < alctVars_.size(); iVar++) { + const std::string key("alct_" + alctVars_[iVar] + "_" + dataEmul_[iData]); + const std::string histName(key + "_" + chambers_[iType]); + const std::string histTitle(chambers_[iType] + " ALCT " + alctVars_[iVar] + " (" + dataEmul_[iData] + ") "); + chamberHistos[iType][key] = + iBooker.book1D(histName, histTitle, alctNBin_[iVar], alctMinBin_[iVar], alctMaxBin_[iVar]); + } + + // clct variable + for (unsigned iVar = 0; iVar < clctVars_.size(); iVar++) { + const std::string key("clct_" + clctVars_[iVar] + "_" + dataEmul_[iData]); + const std::string histName(key + "_" + chambers_[iType]); + const std::string histTitle(chambers_[iType] + " CLCT " + clctVars_[iVar] + " (" + dataEmul_[iData] + ") "); + chamberHistos[iType][key] = + iBooker.book1D(histName, histTitle, clctNBin_[iVar], clctMinBin_[iVar], clctMaxBin_[iVar]); + } + + // lct variable + for (unsigned iVar = 0; iVar < lctVars_.size(); iVar++) { + const std::string key("lct_" + lctVars_[iVar] + "_" + dataEmul_[iData]); + const std::string histName(key + "_" + chambers_[iType]); + const std::string histTitle(chambers_[iType] + " LCT " + lctVars_[iVar] + " (" + dataEmul_[iData] + ") "); + chamberHistos[iType][key] = + iBooker.book1D(histName, histTitle, lctNBin_[iVar], lctMinBin_[iVar], lctMaxBin_[iVar]); + } + } + } +} + +void L1TdeCSCTPG::analyze(const edm::Event& e, const edm::EventSetup& c) { + // handles + edm::Handle dataALCTs; + edm::Handle emulALCTs; + edm::Handle dataCLCTs; + edm::Handle emulCLCTs; + edm::Handle dataLCTs; + edm::Handle emulLCTs; + + e.getByToken(dataALCT_token_, dataALCTs); + e.getByToken(emulALCT_token_, emulALCTs); + e.getByToken(dataCLCT_token_, dataCLCTs); + e.getByToken(emulCLCT_token_, emulCLCTs); + e.getByToken(dataLCT_token_, dataLCTs); + e.getByToken(emulLCT_token_, emulLCTs); + + for (auto it = dataALCTs->begin(); it != dataALCTs->end(); it++) { + auto range = dataALCTs->get((*it).first); + const int type = ((*it).first).iChamberType() - 1; + for (auto alct = range.first; alct != range.second; alct++) { + chamberHistos[type]["alct_quality_data"]->Fill(alct->getQuality()); + chamberHistos[type]["alct_wiregroup_data"]->Fill(alct->getKeyWG()); + chamberHistos[type]["alct_bx_data"]->Fill(alct->getBX()); + } + } + + for (auto it = emulALCTs->begin(); it != emulALCTs->end(); it++) { + auto range = emulALCTs->get((*it).first); + const int type = ((*it).first).iChamberType() - 1; + for (auto alct = range.first; alct != range.second; alct++) { + chamberHistos[type]["alct_quality_emul"]->Fill(alct->getQuality()); + chamberHistos[type]["alct_wiregroup_emul"]->Fill(alct->getKeyWG()); + chamberHistos[type]["alct_bx_emul"]->Fill(alct->getBX()); + } + } + + for (auto it = dataCLCTs->begin(); it != dataCLCTs->end(); it++) { + auto range = dataCLCTs->get((*it).first); + const int type = ((*it).first).iChamberType() - 1; + for (auto clct = range.first; clct != range.second; clct++) { + chamberHistos[type]["clct_pattern_data"]->Fill(clct->getPattern()); + chamberHistos[type]["clct_quality_data"]->Fill(clct->getQuality()); + chamberHistos[type]["clct_halfstrip_data"]->Fill(clct->getKeyStrip()); + chamberHistos[type]["clct_bend_data"]->Fill(clct->getBend()); + } + } + + for (auto it = emulCLCTs->begin(); it != emulCLCTs->end(); it++) { + auto range = emulCLCTs->get((*it).first); + const int type = ((*it).first).iChamberType() - 1; + for (auto clct = range.first; clct != range.second; clct++) { + chamberHistos[type]["clct_pattern_emul"]->Fill(clct->getPattern()); + chamberHistos[type]["clct_quality_emul"]->Fill(clct->getQuality()); + chamberHistos[type]["clct_halfstrip_emul"]->Fill(clct->getKeyStrip()); + chamberHistos[type]["clct_bend_emul"]->Fill(clct->getBend()); + } + } + + for (auto it = dataLCTs->begin(); it != dataLCTs->end(); it++) { + auto range = dataLCTs->get((*it).first); + const int type = ((*it).first).iChamberType() - 1; + for (auto lct = range.first; lct != range.second; lct++) { + chamberHistos[type]["lct_pattern_data"]->Fill(lct->getCLCTPattern()); + chamberHistos[type]["lct_quality_data"]->Fill(lct->getQuality()); + chamberHistos[type]["lct_wiregroup_data"]->Fill(lct->getKeyWG()); + chamberHistos[type]["lct_halfstrip_data"]->Fill(lct->getStrip()); + chamberHistos[type]["lct_bend_data"]->Fill(lct->getBend()); + } + } + + for (auto it = emulLCTs->begin(); it != emulLCTs->end(); it++) { + auto range = emulLCTs->get((*it).first); + const int type = ((*it).first).iChamberType() - 1; + for (auto lct = range.first; lct != range.second; lct++) { + chamberHistos[type]["lct_pattern_emul"]->Fill(lct->getCLCTPattern()); + chamberHistos[type]["lct_quality_emul"]->Fill(lct->getQuality()); + chamberHistos[type]["lct_wiregroup_emul"]->Fill(lct->getKeyWG()); + chamberHistos[type]["lct_halfstrip_emul"]->Fill(lct->getStrip()); + chamberHistos[type]["lct_bend_emul"]->Fill(lct->getBend()); + } + } +} diff --git a/DQM/L1TMonitor/src/L1TdeGEMTPG.cc b/DQM/L1TMonitor/src/L1TdeGEMTPG.cc new file mode 100644 index 0000000000000..024af355f34fc --- /dev/null +++ b/DQM/L1TMonitor/src/L1TdeGEMTPG.cc @@ -0,0 +1,77 @@ +#include + +#include "DQM/L1TMonitor/interface/L1TdeGEMTPG.h" + +L1TdeGEMTPG::L1TdeGEMTPG(const edm::ParameterSet& ps) + : data_token_(consumes(ps.getParameter("data"))), + emul_token_(consumes(ps.getParameter("emul"))), + monitorDir_(ps.getParameter("monitorDir")), + verbose_(ps.getParameter("verbose")), + + chambers_(ps.getParameter>("chambers")), + dataEmul_(ps.getParameter>("dataEmul")), + + // variables + clusterVars_(ps.getParameter>("clusterVars")), + + // binning + clusterNBin_(ps.getParameter>("clusterNBin")), + clusterMinBin_(ps.getParameter>("clusterMinBin")), + clusterMaxBin_(ps.getParameter>("clusterMaxBin")) {} + +L1TdeGEMTPG::~L1TdeGEMTPG() {} + +void L1TdeGEMTPG::bookHistograms(DQMStore::IBooker& iBooker, const edm::Run&, const edm::EventSetup&) { + iBooker.setCurrentFolder(monitorDir_); + + // chamber type + for (unsigned iType = 0; iType < chambers_.size(); iType++) { + // data vs emulator + for (unsigned iData = 0; iData < dataEmul_.size(); iData++) { + // cluster variable + for (unsigned iVar = 0; iVar < clusterVars_.size(); iVar++) { + const std::string key("cluster_" + clusterVars_[iVar] + "_" + dataEmul_[iData]); + const std::string histName(key + "_" + chambers_[iType]); + const std::string histTitle(chambers_[iType] + " Cluster " + clusterVars_[iVar] + " (" + dataEmul_[iData] + + ")"); + chamberHistos[iType][key] = + iBooker.book1D(histName, histTitle, clusterNBin_[iVar], clusterMinBin_[iVar], clusterMaxBin_[iVar]); + } + } + } +} + +void L1TdeGEMTPG::analyze(const edm::Event& e, const edm::EventSetup& c) { + if (verbose_) + edm::LogInfo("L1TdeGEMTPG") << "L1TdeGEMTPG: analyzing collections" << std::endl; + + // handles + edm::Handle dataClusters; + edm::Handle emulClusters; + e.getByToken(data_token_, dataClusters); + e.getByToken(emul_token_, emulClusters); + + for (auto it = dataClusters->begin(); it != dataClusters->end(); it++) { + auto range = dataClusters->get((*it).first); + const int type = ((*it).first).station() - 1; + for (auto cluster = range.first; cluster != range.second; cluster++) { + if (cluster->isValid()) { + chamberHistos[type]["cluster_size_data"]->Fill(cluster->pads().size()); + chamberHistos[type]["cluster_pad_data"]->Fill(cluster->pads().front()); + chamberHistos[type]["cluster_bx_data"]->Fill(cluster->bx()); + } + } + } + + for (auto it = emulClusters->begin(); it != emulClusters->end(); it++) { + auto range = emulClusters->get((*it).first); + const int type = ((*it).first).station() - 1; + for (auto cluster = range.first; cluster != range.second; cluster++) { + if (cluster->isValid()) { + chamberHistos[type]["cluster_size_emul"]->Fill(cluster->pads().size()); + chamberHistos[type]["cluster_pad_emul"]->Fill(cluster->pads().front()); + chamberHistos[type]["cluster_bx_emul"]->Fill(cluster->bx()); + } + } + } +} diff --git a/DQM/L1TMonitorClient/interface/L1TdeCSCTPGClient.h b/DQM/L1TMonitorClient/interface/L1TdeCSCTPGClient.h new file mode 100644 index 0000000000000..b8946e735e515 --- /dev/null +++ b/DQM/L1TMonitorClient/interface/L1TdeCSCTPGClient.h @@ -0,0 +1,55 @@ +#ifndef DQM_L1TMONITORCLIENT_L1TdeCSCTPGCLIENT_H +#define DQM_L1TMONITORCLIENT_L1TdeCSCTPGCLIENT_H + +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "DQMServices/Core/interface/DQMStore.h" +#include "DQMServices/Core/interface/DQMEDHarvester.h" + +#include + +class L1TdeCSCTPGClient : public DQMEDHarvester { +public: + /// Constructor + L1TdeCSCTPGClient(const edm::ParameterSet &ps); + + /// Destructor + ~L1TdeCSCTPGClient() override; + +protected: + void dqmEndLuminosityBlock(DQMStore::IBooker &, + DQMStore::IGetter &, + edm::LuminosityBlock const &, + edm::EventSetup const &) override; + void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override; + +private: + void book(DQMStore::IBooker &ibooker); + void processHistograms(DQMStore::IGetter &); + + std::string monitorDir_; + + std::vector chambers_; + + std::vector alctVars_; + std::vector clctVars_; + std::vector lctVars_; + + std::vector alctNBin_; + std::vector clctNBin_; + std::vector lctNBin_; + std::vector alctMinBin_; + std::vector clctMinBin_; + std::vector lctMinBin_; + std::vector alctMaxBin_; + std::vector clctMaxBin_; + std::vector lctMaxBin_; + + // first key is the chamber number + // second key is the variable + std::map > chamberHistos_; +}; + +#endif diff --git a/DQM/L1TMonitorClient/interface/L1TdeGEMTPGClient.h b/DQM/L1TMonitorClient/interface/L1TdeGEMTPGClient.h new file mode 100644 index 0000000000000..9fd414c6cedb2 --- /dev/null +++ b/DQM/L1TMonitorClient/interface/L1TdeGEMTPGClient.h @@ -0,0 +1,46 @@ +#ifndef DQM_L1TMONITORCLIENT_L1TdeGEMTPGCLIENT_H +#define DQM_L1TMONITORCLIENT_L1TdeGEMTPGCLIENT_H + +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "DQMServices/Core/interface/DQMStore.h" +#include "DQMServices/Core/interface/DQMEDHarvester.h" + +#include + +class L1TdeGEMTPGClient : public DQMEDHarvester { +public: + /// Constructor + L1TdeGEMTPGClient(const edm::ParameterSet &ps); + + /// Destructor + ~L1TdeGEMTPGClient() override; + +protected: + void dqmEndLuminosityBlock(DQMStore::IBooker &, + DQMStore::IGetter &, + edm::LuminosityBlock const &, + edm::EventSetup const &) override; + void dqmEndJob(DQMStore::IBooker &, DQMStore::IGetter &) override; + +private: + void book(DQMStore::IBooker &ibooker); + void processHistograms(DQMStore::IGetter &); + + std::string monitorDir_; + + std::vector chambers_; + + std::vector clusterVars_; + std::vector clusterNBin_; + std::vector clusterMinBin_; + std::vector clusterMaxBin_; + + // first key is the chamber number + // second key is the variable + std::map > chamberHistos_; +}; + +#endif diff --git a/DQM/L1TMonitorClient/python/L1TMonitorClient_cff.py b/DQM/L1TMonitorClient/python/L1TMonitorClient_cff.py index 277a0b6097ad6..ceaa0406b8e0d 100644 --- a/DQM/L1TMonitorClient/python/L1TMonitorClient_cff.py +++ b/DQM/L1TMonitorClient/python/L1TMonitorClient_cff.py @@ -4,16 +4,16 @@ # # used by DQM GUI: DQM/Integration/python/test/l1t_dqm_sourceclient-*_cfg.py # -# standard RawToDigi sequence must be run before the L1T module, labels +# standard RawToDigi sequence must be run before the L1T module, labels # from the standard sequence are used as default for the L1 DQM modules # any configuration change in the unpacking must be done in l1t_dqm_sourceclient-*_cfg.py # # see CVS for previous authors # # V.M. Ghete 2011-05-26 revised version of L1 Trigger client DQM -# +# -# DQM quality tests +# DQM quality tests from DQM.L1TMonitorClient.L1TriggerQualityTests_cff import * # @@ -27,38 +27,38 @@ # ECAL TPG client DQM module # not run in L1T - do we need it? FIXME -# HCAL TPG DQM module +# HCAL TPG DQM module # not run in L1T - do we need it? FIXME # RCT DQM client module - not available #from DQM.L1TMonitorClient.L1TRCTClient_cfi import * -# GCT DQM client module +# GCT DQM client module from DQM.L1TMonitorClient.L1TGCTClient_cfi import * from DQM.L1TMonitorClient.L1TStage1Layer2Client_cfi import * -# DTTPG DQM module +# DTTPG DQM module # not run in L1T - do we need it? FIXME -# DTTF DQM client module +# DTTF DQM client module from DQM.L1TMonitorClient.L1TDTTFClient_cfi import * -# CSCTPG DQM module -# not run in L1T - do we need it? FIXME +# CSCTPG DQM module +from DQM.L1TMonitorClient.L1TdeCSCTPGClient_cfi import * -# CSCTF DQM client module -from DQM.L1TMonitorClient.L1TCSCTFClient_cfi import * +# CSCTF DQM client module +from DQM.L1TMonitorClient.L1TCSCTFClient_cfi import * # RPC DQM client module - non-standard name of the module from DQM.L1TMonitorClient.L1TRPCTFClient_cfi import * -# GMT DQM module +# GMT DQM module from DQM.L1TMonitorClient.L1TGMTClient_cfi import * -# GT DQM client module - not available +# GT DQM client module - not available #from DQM.L1TMonitorClient.L1TGTClient_cfi import * -# L1Extra DQM client module - not available +# L1Extra DQM client module - not available # L1 rates DQM client module # L1 synchronization DQM client module @@ -66,7 +66,7 @@ from DQM.L1TMonitorClient.L1TOccupancyClient_cff import * from DQM.L1TMonitorClient.L1TTestsSummary_cff import * -# L1 event info DQM client +# L1 event info DQM client from DQM.L1TMonitorClient.L1TEventInfoClient_cfi import * # @@ -80,49 +80,49 @@ # -# define sequences +# define sequences # # L1T monitor client sequence (system clients and quality tests) l1TriggerClients = cms.Sequence( - l1tGctClient + - l1tDttfClient + - l1tCsctfClient + - l1tRpctfClient + - l1tGmtClient + - l1tOccupancyClient + - l1tTestsSummary + - l1tEventInfoClient - ) + l1tGctClient + + l1tDttfClient + + l1tdeCSCTPGClient + + l1tCsctfClient + + l1tRpctfClient + + l1tGmtClient + + l1tOccupancyClient + + l1tTestsSummary + + l1tEventInfoClient +) l1TriggerStage1Clients = cms.Sequence( - l1tStage1Layer2Client + - l1tDttfClient + - l1tCsctfClient + - l1tRpctfClient + - l1tGmtClient + - l1tOccupancyClient + - l1tTestsSummary + - l1tEventInfoClient - ) + l1tStage1Layer2Client + + l1tDttfClient + + l1tdeCSCTPGClient + + l1tCsctfClient + + l1tRpctfClient + + l1tGmtClient + + l1tOccupancyClient + + l1tTestsSummary + + l1tEventInfoClient +) l1tMonitorClient = cms.Sequence( - l1TriggerQualityTests + - l1TriggerClients - ) + l1TriggerQualityTests + + l1TriggerClients +) l1tMonitorStage1Client = cms.Sequence( - l1TriggerQualityTests + - l1TriggerStage1Clients - ) + l1TriggerQualityTests + + l1TriggerStage1Clients +) -# sequence for L1 Trigger DQM client modules on EndPath +# sequence for L1 Trigger DQM client modules on EndPath # FIXME clarify why needed on EndPath l1tMonitorClientEndPathSeq = cms.Sequence( - l1tsClient - ) - - + l1tsClient +) diff --git a/DQM/L1TMonitorClient/python/L1TStage2EmulatorMonitorClient_cff.py b/DQM/L1TMonitorClient/python/L1TStage2EmulatorMonitorClient_cff.py index 64aa1b8d49424..f0c13c23963be 100644 --- a/DQM/L1TMonitorClient/python/L1TStage2EmulatorMonitorClient_cff.py +++ b/DQM/L1TMonitorClient/python/L1TStage2EmulatorMonitorClient_cff.py @@ -4,16 +4,16 @@ # # used by DQM GUI: DQM/Integration/python/test/l1t_dqm_sourceclient-*_cfg.py # -# standard RawToDigi sequence must be run before the L1T module, labels +# standard RawToDigi sequence must be run before the L1T module, labels # from the standard sequence are used as default for the L1 DQM modules # any configuration change in the unpacking must be done in l1t_dqm_sourceclient-*_cfg.py # # see CVS for previous authors # # V.M. Ghete 2011-05-26 revised version of L1 Trigger client DQM -# +# -# DQM quality tests +# DQM quality tests from DQM.L1TMonitorClient.L1TStage2EmulatorQualityTests_cff import * # Calo trigger layer2 client @@ -31,33 +31,45 @@ # OMTF emulator client from DQM.L1TMonitorClient.L1TStage2OMTFEmulatorClient_cff import * +# GEM TPG emulator client +from DQM.L1TMonitorClient.L1TdeGEMTPGClient_cfi import * + +# CSC TPG emulator client +from DQM.L1TMonitorClient.L1TdeCSCTPGClient_cfi import * + # EMTF emulator client from DQM.L1TMonitorClient.L1TStage2EMTFEmulatorClient_cff import * -# L1 emulator event info DQM client +# L1 emulator event info DQM client from DQM.L1TMonitorClient.L1TStage2EmulatorEventInfoClient_cfi import * ## uGT emulator client from DQM.L1TMonitorClient.L1TStage2uGTEmulatorClient_cff import * # -# define sequences +# define sequences # # L1T monitor client sequence (system clients and quality tests) l1TStage2EmulatorClients = cms.Sequence( - l1tStage2CaloLayer2DEClientSummary - + l1tStage2uGMTEmulatorClient - + l1tStage2BMTFEmulatorClient - + l1tStage2BMTFEmulatorSecondClient - + l1tStage2OMTFEmulatorClient - + l1tStage2EMTFEmulatorClient - + l1tStage2EmulatorEventInfoClient - + l1tStage2uGTEmulatorClient - ) + l1tStage2CaloLayer2DEClientSummary + + l1tStage2uGMTEmulatorClient + + l1tStage2BMTFEmulatorClient + + l1tStage2BMTFEmulatorSecondClient + + l1tStage2OMTFEmulatorClient + + l1tdeCSCTPGClient + + l1tStage2EMTFEmulatorClient + + l1tStage2EmulatorEventInfoClient + + l1tStage2uGTEmulatorClient +) -l1tStage2EmulatorMonitorClient = cms.Sequence( - l1TStage2EmulatorQualityTests + - l1TStage2EmulatorClients - ) +_run3_l1TStage2EmulatorClients = l1TStage2EmulatorClients.copy() +_run3_l1TStage2EmulatorClients += l1tdeGEMTPGClient + +from Configuration.Eras.Modifier_run3_GEM_cff import run3_GEM +run3_GEM.toReplaceWith( l1TStage2EmulatorClients, _run3_l1TStage2EmulatorClients ) +l1tStage2EmulatorMonitorClient = cms.Sequence( + l1TStage2EmulatorQualityTests + + l1TStage2EmulatorClients +) diff --git a/DQM/L1TMonitorClient/python/L1TdeCSCTPGClient_cfi.py b/DQM/L1TMonitorClient/python/L1TdeCSCTPGClient_cfi.py new file mode 100644 index 0000000000000..56e258deaaea6 --- /dev/null +++ b/DQM/L1TMonitorClient/python/L1TdeCSCTPGClient_cfi.py @@ -0,0 +1,8 @@ +import FWCore.ParameterSet.Config as cms +from DQMServices.Core.DQMEDHarvester import DQMEDHarvester +from DQM.L1TMonitor.L1TdeCSCTPG_cfi import l1tdeCSCTPGCommon + +l1tdeCSCTPGClient = DQMEDHarvester( + "L1TdeCSCTPGClient", + l1tdeCSCTPGCommon +) diff --git a/DQM/L1TMonitorClient/python/L1TdeGEMTPGClient_cfi.py b/DQM/L1TMonitorClient/python/L1TdeGEMTPGClient_cfi.py new file mode 100644 index 0000000000000..9aefc84211bdb --- /dev/null +++ b/DQM/L1TMonitorClient/python/L1TdeGEMTPGClient_cfi.py @@ -0,0 +1,12 @@ +import FWCore.ParameterSet.Config as cms +from DQMServices.Core.DQMEDHarvester import DQMEDHarvester + +l1tdeGEMTPGClient = DQMEDHarvester( + "L1TdeGEMTPGClient", + monitorDir = cms.string('L1TEMU/L1TdeGEMTPG'), + chambers = cms.vstring("GE11"), + clusterVars = cms.vstring("size", "pad", "bx"), + clusterNBin = cms.vuint32(20,384,10), + clusterMinBin = cms.vdouble(-0.5,-0.5,-4.5), + clusterMaxBin = cms.vdouble(19.5,383.5,5.5), +) diff --git a/DQM/L1TMonitorClient/src/L1TdeCSCTPGClient.cc b/DQM/L1TMonitorClient/src/L1TdeCSCTPGClient.cc new file mode 100644 index 0000000000000..fb1c398f9ca61 --- /dev/null +++ b/DQM/L1TMonitorClient/src/L1TdeCSCTPGClient.cc @@ -0,0 +1,150 @@ +#include "DQM/L1TMonitorClient/interface/L1TdeCSCTPGClient.h" + +#include "FWCore/ServiceRegistry/interface/Service.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "DQMServices/Core/interface/DQMStore.h" +#include "TRandom.h" +using namespace edm; +using namespace std; + +L1TdeCSCTPGClient::L1TdeCSCTPGClient(const edm::ParameterSet &ps) + : monitorDir_(ps.getParameter("monitorDir")), + chambers_(ps.getParameter>("chambers")), + // variables + alctVars_(ps.getParameter>("alctVars")), + clctVars_(ps.getParameter>("clctVars")), + lctVars_(ps.getParameter>("lctVars")), + // binning + alctNBin_(ps.getParameter>("alctNBin")), + clctNBin_(ps.getParameter>("clctNBin")), + lctNBin_(ps.getParameter>("lctNBin")), + alctMinBin_(ps.getParameter>("alctMinBin")), + clctMinBin_(ps.getParameter>("clctMinBin")), + lctMinBin_(ps.getParameter>("lctMinBin")), + alctMaxBin_(ps.getParameter>("alctMaxBin")), + clctMaxBin_(ps.getParameter>("clctMaxBin")), + lctMaxBin_(ps.getParameter>("lctMaxBin")) {} + +L1TdeCSCTPGClient::~L1TdeCSCTPGClient() {} + +void L1TdeCSCTPGClient::dqmEndLuminosityBlock(DQMStore::IBooker &ibooker, + DQMStore::IGetter &igetter, + const edm::LuminosityBlock &lumiSeg, + const edm::EventSetup &c) { + book(ibooker); + processHistograms(igetter); +} + +//-------------------------------------------------------- +void L1TdeCSCTPGClient::dqmEndJob(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter) { + book(ibooker); + processHistograms(igetter); +} + +void L1TdeCSCTPGClient::book(DQMStore::IBooker &iBooker) { + iBooker.setCurrentFolder(monitorDir_); + + // chamber type + for (unsigned iType = 0; iType < chambers_.size(); iType++) { + // alct variable + for (unsigned iVar = 0; iVar < alctVars_.size(); iVar++) { + const std::string key("alct_" + alctVars_[iVar] + "_diff"); + const std::string histName(key + "_" + chambers_[iType]); + const std::string histTitle(chambers_[iType] + " ALCT " + alctVars_[iVar] + " (Emul - Data)"); + if (chamberHistos_[iType][key] == nullptr) + chamberHistos_[iType][key] = + iBooker.book1D(histName, histTitle, alctNBin_[iVar], alctMinBin_[iVar], alctMaxBin_[iVar]); + else + chamberHistos_[iType][key]->Reset(); + } + + // clct variable + for (unsigned iVar = 0; iVar < clctVars_.size(); iVar++) { + const std::string key("clct_" + clctVars_[iVar] + "_diff"); + const std::string histName(key + "_" + chambers_[iType]); + const std::string histTitle(chambers_[iType] + " CLCT " + clctVars_[iVar] + " (Emul - Data)"); + if (chamberHistos_[iType][key] == nullptr) + chamberHistos_[iType][key] = + iBooker.book1D(histName, histTitle, clctNBin_[iVar], clctMinBin_[iVar], clctMaxBin_[iVar]); + else + chamberHistos_[iType][key]->Reset(); + } + + // lct variable + for (unsigned iVar = 0; iVar < lctVars_.size(); iVar++) { + const std::string key("lct_" + lctVars_[iVar] + "_diff"); + const std::string histName(key + "_" + chambers_[iType]); + const std::string histTitle(chambers_[iType] + " LCT " + lctVars_[iVar] + " (Emul - Data)"); + if (chamberHistos_[iType][key] == nullptr) + chamberHistos_[iType][key] = + iBooker.book1D(histName, histTitle, lctNBin_[iVar], lctMinBin_[iVar], lctMaxBin_[iVar]); + else + chamberHistos_[iType][key]->Reset(); + } + } +} + +void L1TdeCSCTPGClient::processHistograms(DQMStore::IGetter &igetter) { + MonitorElement *dataMon; + MonitorElement *emulMon; + + // chamber type + for (unsigned iType = 0; iType < chambers_.size(); iType++) { + // alct variable + for (unsigned iVar = 0; iVar < alctVars_.size(); iVar++) { + const std::string key("alct_" + alctVars_[iVar]); + const std::string histData(key + "_data_" + chambers_[iType]); + const std::string histEmul(key + "_emul_" + chambers_[iType]); + + dataMon = igetter.get(monitorDir_ + "/" + histData); + emulMon = igetter.get(monitorDir_ + "/" + histEmul); + + TH1F *hDiff = chamberHistos_[iType][key + "_diff"]->getTH1F(); + + if (dataMon && emulMon) { + TH1F *hData = dataMon->getTH1F(); + TH1F *hEmul = emulMon->getTH1F(); + hDiff->Add(hEmul, hData, 1, -1); + } + } + + // clct variable + for (unsigned iVar = 0; iVar < clctVars_.size(); iVar++) { + const std::string key("clct_" + clctVars_[iVar]); + const std::string histData(key + "_data_" + chambers_[iType]); + const std::string histEmul(key + "_emul_" + chambers_[iType]); + + dataMon = igetter.get(monitorDir_ + "/" + histData); + emulMon = igetter.get(monitorDir_ + "/" + histEmul); + + TH1F *hDiff = chamberHistos_[iType][key + "_diff"]->getTH1F(); + + if (dataMon && emulMon) { + TH1F *hData = dataMon->getTH1F(); + TH1F *hEmul = emulMon->getTH1F(); + hDiff->Add(hEmul, hData, 1, -1); + } + } + + // lct variable + for (unsigned iVar = 0; iVar < lctVars_.size(); iVar++) { + const std::string key("lct_" + lctVars_[iVar]); + const std::string histData(key + "_data_" + chambers_[iType]); + const std::string histEmul(key + "_emul_" + chambers_[iType]); + + dataMon = igetter.get(monitorDir_ + "/" + histData); + emulMon = igetter.get(monitorDir_ + "/" + histEmul); + + TH1F *hDiff = chamberHistos_[iType][key + "_diff"]->getTH1F(); + + if (dataMon && emulMon) { + TH1F *hData = dataMon->getTH1F(); + TH1F *hEmul = emulMon->getTH1F(); + hDiff->Add(hEmul, hData, 1, -1); + } + } + } +} diff --git a/DQM/L1TMonitorClient/src/L1TdeGEMTPGClient.cc b/DQM/L1TMonitorClient/src/L1TdeGEMTPGClient.cc new file mode 100644 index 0000000000000..9c19ffc04526b --- /dev/null +++ b/DQM/L1TMonitorClient/src/L1TdeGEMTPGClient.cc @@ -0,0 +1,82 @@ +#include "DQM/L1TMonitorClient/interface/L1TdeGEMTPGClient.h" + +#include "FWCore/ServiceRegistry/interface/Service.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "DQMServices/Core/interface/DQMStore.h" +#include "TRandom.h" +using namespace edm; +using namespace std; + +L1TdeGEMTPGClient::L1TdeGEMTPGClient(const edm::ParameterSet &ps) + : monitorDir_(ps.getParameter("monitorDir")), + chambers_(ps.getParameter>("chambers")), + // variables + clusterVars_(ps.getParameter>("clusterVars")), + // binning + clusterNBin_(ps.getParameter>("clusterNBin")), + clusterMinBin_(ps.getParameter>("clusterMinBin")), + clusterMaxBin_(ps.getParameter>("clusterMaxBin")) {} + +L1TdeGEMTPGClient::~L1TdeGEMTPGClient() {} + +void L1TdeGEMTPGClient::dqmEndLuminosityBlock(DQMStore::IBooker &ibooker, + DQMStore::IGetter &igetter, + const edm::LuminosityBlock &lumiSeg, + const edm::EventSetup &c) { + book(ibooker); + processHistograms(igetter); +} + +//-------------------------------------------------------- +void L1TdeGEMTPGClient::dqmEndJob(DQMStore::IBooker &ibooker, DQMStore::IGetter &igetter) { + book(ibooker); + processHistograms(igetter); +} + +void L1TdeGEMTPGClient::book(DQMStore::IBooker &iBooker) { + iBooker.setCurrentFolder(monitorDir_); + + // chamber type + for (unsigned iType = 0; iType < chambers_.size(); iType++) { + // cluster variable + for (unsigned iVar = 0; iVar < clusterVars_.size(); iVar++) { + const std::string key("cluster_" + clusterVars_[iVar] + "_diff"); + const std::string histName(key + "_" + chambers_[iType]); + const std::string histTitle(chambers_[iType] + " Cluster " + clusterVars_[iVar] + " (Emul - Data)"); + if (chamberHistos_[iType][key] == nullptr) + chamberHistos_[iType][key] = + iBooker.book1D(histName, histTitle, clusterNBin_[iVar], clusterMinBin_[iVar], clusterMaxBin_[iVar]); + else + chamberHistos_[iType][key]->Reset(); + } + } +} + +void L1TdeGEMTPGClient::processHistograms(DQMStore::IGetter &igetter) { + MonitorElement *dataMon; + MonitorElement *emulMon; + + // chamber type + for (unsigned iType = 0; iType < chambers_.size(); iType++) { + // cluster variable + for (unsigned iVar = 0; iVar < clusterVars_.size(); iVar++) { + const std::string key("cluster_" + clusterVars_[iVar]); + const std::string histData(key + "_data_" + chambers_[iType]); + const std::string histEmul(key + "_emul_" + chambers_[iType]); + + dataMon = igetter.get(monitorDir_ + "/" + histData); + emulMon = igetter.get(monitorDir_ + "/" + histEmul); + + TH1F *hDiff = chamberHistos_[iType][key + "_diff"]->getTH1F(); + + if (dataMon && emulMon) { + TH1F *dataHist = dataMon->getTH1F(); + TH1F *emulHist = emulMon->getTH1F(); + hDiff->Add(emulHist, dataHist, 1, -1); + } + } + } +} diff --git a/DQM/L1TMonitorClient/src/SealModule.cc b/DQM/L1TMonitorClient/src/SealModule.cc index 4ced7d7ee79f7..2e2dafc5c24aa 100644 --- a/DQM/L1TMonitorClient/src/SealModule.cc +++ b/DQM/L1TMonitorClient/src/SealModule.cc @@ -1,37 +1,43 @@ #include "FWCore/Framework/interface/MakerMacros.h" -#include +#include "DQM/L1TMonitorClient/interface/L1TDTTFClient.h" DEFINE_FWK_MODULE(L1TDTTFClient); -#include +#include "DQM/L1TMonitorClient/interface/L1TDTTPGClient.h" DEFINE_FWK_MODULE(L1TDTTPGClient); #include "DQM/L1TMonitorClient/interface/L1TRPCTFClient.h" DEFINE_FWK_MODULE(L1TRPCTFClient); -#include +#include "DQM/L1TMonitorClient/interface/L1TdeGEMTPGClient.h" +DEFINE_FWK_MODULE(L1TdeGEMTPGClient); + +#include "DQM/L1TMonitorClient/interface/L1TdeCSCTPGClient.h" +DEFINE_FWK_MODULE(L1TdeCSCTPGClient); + +#include "DQM/L1TMonitorClient/interface/L1TCSCTFClient.h" DEFINE_FWK_MODULE(L1TCSCTFClient); -#include +#include "DQM/L1TMonitorClient/interface/L1TGMTClient.h" DEFINE_FWK_MODULE(L1TGMTClient); -#include +#include "DQM/L1TMonitorClient/interface/L1TGCTClient.h" DEFINE_FWK_MODULE(L1TGCTClient); -#include +#include "DQM/L1TMonitorClient/interface/L1TEventInfoClient.h" DEFINE_FWK_MODULE(L1TEventInfoClient); -#include +#include "DQM/L1TMonitorClient/interface/L1EmulatorErrorFlagClient.h" DEFINE_FWK_MODULE(L1EmulatorErrorFlagClient); -#include +#include "DQM/L1TMonitorClient/interface/L1TStage2CaloLayer2DEClient.h" DEFINE_FWK_MODULE(L1TStage2CaloLayer2DEClient); -#include +#include "DQM/L1TMonitorClient/interface/L1TStage2CaloLayer2DEClientSummary.h" DEFINE_FWK_MODULE(L1TStage2CaloLayer2DEClientSummary); -#include +#include "DQM/L1TMonitorClient/interface/L1TStage2RatioClient.h" DEFINE_FWK_MODULE(L1TStage2RatioClient); -#include +#include "DQM/L1TMonitorClient/interface/L1TEMTFEventInfoClient.h" DEFINE_FWK_MODULE(L1TEMTFEventInfoClient); diff --git a/DQM/SiStripMonitorCluster/src/SiStripMonitorCluster.cc b/DQM/SiStripMonitorCluster/src/SiStripMonitorCluster.cc index a9dfaaeae19a9..3b20214367712 100644 --- a/DQM/SiStripMonitorCluster/src/SiStripMonitorCluster.cc +++ b/DQM/SiStripMonitorCluster/src/SiStripMonitorCluster.cc @@ -517,7 +517,7 @@ void SiStripMonitorCluster::createMEs(const edm::EventSetup& es, DQMStore::IBook 0, 0); if (NclusVsCycleTimeProf2D->kind() == MonitorElement::Kind::TPROFILE2D) - NclusVsCycleTimeProf2D->getTH1()->SetCanExtend(TH1::kAllAxes); + NclusVsCycleTimeProf2D->setCanExtend(TH1::kAllAxes); } if (clusterWidth_vs_amplitude_on) { ibooker.setCurrentFolder(topFolderName_ + "/MechanicalView/"); @@ -1402,7 +1402,7 @@ void SiStripMonitorCluster::createSubDetMEs(std::string label, DQMStore::IBooker ""); subdetMEs.SubDetTotClusterProf->setAxisTitle(Parameters.getParameter("xaxis"), 1); if (subdetMEs.SubDetTotClusterProf->kind() == MonitorElement::Kind::TPROFILE) - subdetMEs.SubDetTotClusterProf->getTH1()->SetCanExtend(TH1::kAllAxes); + subdetMEs.SubDetTotClusterProf->setCanExtend(TH1::kAllAxes); Parameters = conf_.getParameter("NumberOfClusterPerLayerTrendVar"); HistoName = "TotalNumberOfClusterPerLayer__" + label; @@ -1610,7 +1610,7 @@ SiStripMonitorCluster::MonitorElement* SiStripMonitorCluster::bookMETrend(const return me; me->setAxisTitle(ParametersTrend.getParameter("xaxis"), 1); if (me->kind() == MonitorElement::Kind::TPROFILE) - me->getTH1()->SetCanExtend(TH1::kAllAxes); + me->setCanExtend(TH1::kAllAxes); return me; } diff --git a/DQM/SiStripMonitorDigi/src/SiStripMonitorDigi.cc b/DQM/SiStripMonitorDigi/src/SiStripMonitorDigi.cc index 57d8ff6af31b4..67fcdfe38bb9d 100644 --- a/DQM/SiStripMonitorDigi/src/SiStripMonitorDigi.cc +++ b/DQM/SiStripMonitorDigi/src/SiStripMonitorDigi.cc @@ -452,7 +452,7 @@ void SiStripMonitorDigi::createMEs(DQMStore::IBooker& ibooker, const edm::EventS ShotsVsTimeApvShotsGlobal->setAxisTitle("Time (s)", 1); ShotsVsTimeApvShotsGlobal->setAxisTitle("# Apv Shots", 2); if (ShotsVsTimeApvShotsGlobal->kind() == MonitorElement::Kind::TPROFILE) - ShotsVsTimeApvShotsGlobal->getTH1()->SetCanExtend(TH1::kAllAxes); + ShotsVsTimeApvShotsGlobal->setCanExtend(TH1::kAllAxes); } //cumulative number of Strips in APV shots @@ -984,7 +984,7 @@ SiStripMonitorDigi::MonitorElement* SiStripMonitorDigi::bookMETrend(DQMStore::IB me->setAxisTitle("Lumisection", 1); if (me->kind() == MonitorElement::Kind::TPROFILE) - me->getTH1()->SetCanExtend(TH1::kAllAxes); + me->setCanExtend(TH1::kAllAxes); return me; } @@ -1191,7 +1191,7 @@ void SiStripMonitorDigi::createSubDetMEs(DQMStore::IBooker& ibooker, std::string subdetMEs.SubDetTotDigiProf->setAxisTitle("Lumisection", 1); if (subdetMEs.SubDetTotDigiProf->kind() == MonitorElement::Kind::TPROFILE) - subdetMEs.SubDetTotDigiProf->getTH1()->SetCanExtend(TH1::kAllAxes); + subdetMEs.SubDetTotDigiProf->setCanExtend(TH1::kAllAxes); } // Number of Digi vs Bx - Profile @@ -1305,7 +1305,7 @@ void SiStripMonitorDigi::createSubDetMEs(DQMStore::IBooker& ibooker, std::string subdetMEs.SubDetNApvShotsProf->setAxisTitle("Time (s)", 1); subdetMEs.SubDetNApvShotsProf->setAxisTitle("# Apv Shots", 2); if (subdetMEs.SubDetNApvShotsProf->kind() == MonitorElement::Kind::TPROFILE) - subdetMEs.SubDetNApvShotsProf->getTH1()->SetCanExtend(TH1::kAllAxes); + subdetMEs.SubDetNApvShotsProf->setCanExtend(TH1::kAllAxes); } SubDetMEsMap[label] = subdetMEs; diff --git a/DQM/SiStripMonitorSummary/src/SiStripApvGainsDQM.cc b/DQM/SiStripMonitorSummary/src/SiStripApvGainsDQM.cc index 43deec401dd72..58cd68d6fe924 100644 --- a/DQM/SiStripMonitorSummary/src/SiStripApvGainsDQM.cc +++ b/DQM/SiStripMonitorSummary/src/SiStripApvGainsDQM.cc @@ -73,7 +73,7 @@ void SiStripApvGainsDQM::fillSummaryMEs(const std::vector &selectedDet fPSet_.getParameter("OutputSummaryAtLayerLevelAsImage")) { TCanvas c1("c1"); selME.SummaryDistr->getTH1()->Draw(); - std::string name(selME.SummaryDistr->getTH1()->GetTitle()); + std::string name(selME.SummaryDistr->getTitle()); name += ".png"; c1.Print(name.c_str()); } diff --git a/DQM/SiStripMonitorSummary/src/SiStripBackPlaneCorrectionDQM.cc b/DQM/SiStripMonitorSummary/src/SiStripBackPlaneCorrectionDQM.cc index 0aa04521d822c..5b6c17ac201b1 100644 --- a/DQM/SiStripMonitorSummary/src/SiStripBackPlaneCorrectionDQM.cc +++ b/DQM/SiStripMonitorSummary/src/SiStripBackPlaneCorrectionDQM.cc @@ -86,7 +86,7 @@ void SiStripBackPlaneCorrectionDQM::fillSummaryMEs(const std::vector & if (fPSet_.getParameter("OutputCumulativeSummaryAtLayerLevelAsImage")) { TCanvas c2("c2"); selME.SummaryOfCumulDistr->getTH1()->Draw(); - std::string name2(selME.SummaryOfCumulDistr->getTH1()->GetTitle()); + std::string name2(selME.SummaryOfCumulDistr->getTitle()); name2 += ".png"; c2.Print(name2.c_str()); } @@ -105,7 +105,7 @@ void SiStripBackPlaneCorrectionDQM::fillSummaryMEs(const std::vector & fPSet_.getParameter("OutputCumulativeSummaryAtLayerLevelAsImage")) { TCanvas c1("c1"); selME.SummaryOfCumulDistr->getTH1()->Draw(); - std::string name(selME.SummaryOfCumulDistr->getTH1()->GetTitle()); + std::string name(selME.SummaryOfCumulDistr->getTitle()); name += ".png"; c1.Print(name.c_str()); } diff --git a/DQM/SiStripMonitorSummary/src/SiStripBaseCondObjDQM.cc b/DQM/SiStripMonitorSummary/src/SiStripBaseCondObjDQM.cc index 8ae18b14c0741..2ea4d23393adc 100644 --- a/DQM/SiStripMonitorSummary/src/SiStripBaseCondObjDQM.cc +++ b/DQM/SiStripMonitorSummary/src/SiStripBaseCondObjDQM.cc @@ -1128,7 +1128,7 @@ void SiStripBaseCondObjDQM::fillSummaryMEs(const std::vector &selected fPSet_.getParameter("OutputSummaryAtLayerLevelAsImage")) { TCanvas c1("c1"); selME.SummaryDistr->getTH1()->Draw(); - std::string name(selME.SummaryDistr->getTH1()->GetTitle()); + std::string name(selME.SummaryDistr->getTitle()); name += ".png"; c1.Print(name.c_str()); } @@ -1137,7 +1137,7 @@ void SiStripBaseCondObjDQM::fillSummaryMEs(const std::vector &selected if (CondObj_fillId_ == "onlyCumul" || CondObj_fillId_ == "ProfileAndCumul") { TCanvas c1("c1"); selME.SummaryOfCumulDistr->getTH1()->Draw(); - std::string name(selME.SummaryOfCumulDistr->getTH1()->GetTitle()); + std::string name(selME.SummaryOfCumulDistr->getTitle()); name += ".png"; c1.Print(name.c_str()); } diff --git a/DQM/SiStripMonitorSummary/src/SiStripCablingDQM.cc b/DQM/SiStripMonitorSummary/src/SiStripCablingDQM.cc index 85dbeb23c9cc8..6d93b817e0900 100644 --- a/DQM/SiStripMonitorSummary/src/SiStripCablingDQM.cc +++ b/DQM/SiStripMonitorSummary/src/SiStripCablingDQM.cc @@ -114,12 +114,12 @@ void SiStripCablingDQM::getActiveDetIds(const edm::EventSetup &eSetup) { ME->setAxisTitle("Sub Det", 1); ME->setAxisTitle("Layer", 2); - ME->getTH1()->GetXaxis()->SetBinLabel(1, "TIB"); - ME->getTH1()->GetXaxis()->SetBinLabel(2, "TID F"); - ME->getTH1()->GetXaxis()->SetBinLabel(3, "TID B"); - ME->getTH1()->GetXaxis()->SetBinLabel(4, "TOB"); - ME->getTH1()->GetXaxis()->SetBinLabel(5, "TEC F"); - ME->getTH1()->GetXaxis()->SetBinLabel(6, "TEC B"); + ME->setBinLabel(1, "TIB"); + ME->setBinLabel(2, "TID F"); + ME->setBinLabel(3, "TID B"); + ME->setBinLabel(4, "TOB"); + ME->setBinLabel(5, "TEC F"); + ME->setBinLabel(6, "TEC B"); for (int i = 0; i < 4; i++) { ME->Fill(1, i + 1, float(counterTIB[i]) / TIBDetIds[i]); @@ -145,7 +145,7 @@ void SiStripCablingDQM::getActiveDetIds(const edm::EventSetup &eSetup) { TCanvas c1("c1"); ME->getTH1()->Draw("TEXT"); ME->getTH1()->SetStats(kFALSE); - std::string name(ME->getTH1()->GetTitle()); + std::string name(ME->getTitle()); name += ".png"; c1.Print(name.c_str()); } diff --git a/DQM/SiStripMonitorSummary/src/SiStripLorentzAngleDQM.cc b/DQM/SiStripMonitorSummary/src/SiStripLorentzAngleDQM.cc index 95a7ddf91049b..c2e5edbac03de 100644 --- a/DQM/SiStripMonitorSummary/src/SiStripLorentzAngleDQM.cc +++ b/DQM/SiStripMonitorSummary/src/SiStripLorentzAngleDQM.cc @@ -78,7 +78,7 @@ void SiStripLorentzAngleDQM::fillSummaryMEs(const std::vector &selecte if (fPSet_.getParameter("OutputCumulativeSummaryAtLayerLevelAsImage")) { TCanvas c2("c2"); selME.SummaryOfCumulDistr->getTH1()->Draw(); - std::string name2(selME.SummaryOfCumulDistr->getTH1()->GetTitle()); + std::string name2(selME.SummaryOfCumulDistr->getTitle()); name2 += ".png"; c2.Print(name2.c_str()); } @@ -97,7 +97,7 @@ void SiStripLorentzAngleDQM::fillSummaryMEs(const std::vector &selecte fPSet_.getParameter("OutputCumulativeSummaryAtLayerLevelAsImage")) { TCanvas c1("c1"); selME.SummaryOfCumulDistr->getTH1()->Draw(); - std::string name(selME.SummaryOfCumulDistr->getTH1()->GetTitle()); + std::string name(selME.SummaryOfCumulDistr->getTitle()); name += ".png"; c1.Print(name.c_str()); } diff --git a/DQM/SiStripMonitorSummary/src/SiStripPedestalsDQM.cc b/DQM/SiStripMonitorSummary/src/SiStripPedestalsDQM.cc index b33f5d8db5137..71ec55f92044c 100644 --- a/DQM/SiStripMonitorSummary/src/SiStripPedestalsDQM.cc +++ b/DQM/SiStripMonitorSummary/src/SiStripPedestalsDQM.cc @@ -64,7 +64,7 @@ void SiStripPedestalsDQM::fillSummaryMEs(const std::vector &selectedDe fPSet_.getParameter("OutputSummaryAtLayerLevelAsImage")) { TCanvas c1("c1"); selME.SummaryDistr->getTH1()->Draw(); - std::string name(selME.SummaryDistr->getTH1()->GetTitle()); + std::string name(selME.SummaryDistr->getTitle()); name += ".png"; c1.Print(name.c_str()); } diff --git a/DQM/SiStripMonitorSummary/src/SiStripQualityDQM.cc b/DQM/SiStripMonitorSummary/src/SiStripQualityDQM.cc index f3cd603603d96..2685934dffbab 100644 --- a/DQM/SiStripMonitorSummary/src/SiStripQualityDQM.cc +++ b/DQM/SiStripMonitorSummary/src/SiStripQualityDQM.cc @@ -54,7 +54,7 @@ void SiStripQualityDQM::fillSummaryMEs(const std::vector &selectedDetI fPSet_.getParameter("OutputSummaryAtLayerLevelAsImage")) { TCanvas c1("c1"); selME.SummaryDistr->getTH1()->Draw(); - std::string name(selME.SummaryDistr->getTH1()->GetTitle()); + std::string name(selME.SummaryDistr->getTitle()); name += ".png"; c1.Print(name.c_str()); } @@ -126,7 +126,7 @@ void SiStripQualityDQM::fillMEsForLayer( if (fr > 20) { char c[9]; sprintf(c, "%d", sameLayerDetIds_[i]); - selME_.SummaryDistr->getTH1()->GetXaxis()->SetBinLabel(i + 1, c); + selME_.SummaryDistr->setBinLabel(i + 1, c); } // Fill the TkHistoMap with Quality output : @@ -325,7 +325,7 @@ void SiStripQualityDQM::fillGrandSummaryMEs() { for (int j = 0; j < 4; j++) { ME[j]->Fill(i, NBadComponent[0][i][j]); - ME[j]->getTH1()->GetXaxis()->SetBinLabel(i, binlabel.str().c_str()); + ME[j]->setBinLabel(i, binlabel.str()); } } ss << "\n"; @@ -337,7 +337,7 @@ void SiStripQualityDQM::fillGrandSummaryMEs() { for (int j = 0; j < 4; j++) { ME[j]->Fill(i + 4, NBadComponent[1][i][j]); - ME[j]->getTH1()->GetXaxis()->SetBinLabel(i + 4, binlabel.str().c_str()); + ME[j]->setBinLabel(i + 4, binlabel.str()); } } for (int i = 4; i < 7; ++i) { @@ -348,7 +348,7 @@ void SiStripQualityDQM::fillGrandSummaryMEs() { for (int j = 0; j < 4; j++) { ME[j]->Fill(i + 4, NBadComponent[1][i][j]); - ME[j]->getTH1()->GetXaxis()->SetBinLabel(i + 4, binlabel.str().c_str()); + ME[j]->setBinLabel(i + 4, binlabel.str()); } } ss << "\n"; @@ -360,7 +360,7 @@ void SiStripQualityDQM::fillGrandSummaryMEs() { for (int j = 0; j < 4; j++) { ME[j]->Fill(i + 10, NBadComponent[2][i][j]); - ME[j]->getTH1()->GetXaxis()->SetBinLabel(i + 10, binlabel.str().c_str()); + ME[j]->setBinLabel(i + 10, binlabel.str()); } } ss << "\n"; @@ -372,7 +372,7 @@ void SiStripQualityDQM::fillGrandSummaryMEs() { for (int j = 0; j < 4; j++) { ME[j]->Fill(i + 16, NBadComponent[3][i][j]); - ME[j]->getTH1()->GetXaxis()->SetBinLabel(i + 16, binlabel.str().c_str()); + ME[j]->setBinLabel(i + 16, binlabel.str()); } } for (int i = 10; i < 19; ++i) { @@ -383,7 +383,7 @@ void SiStripQualityDQM::fillGrandSummaryMEs() { for (int j = 0; j < 4; j++) { ME[j]->Fill(i + 16, NBadComponent[3][i][j]); - ME[j]->getTH1()->GetXaxis()->SetBinLabel(i + 16, binlabel.str().c_str()); + ME[j]->setBinLabel(i + 16, binlabel.str()); } } ss << "\n"; @@ -413,7 +413,7 @@ void SiStripQualityDQM::fillGrandSummaryMEs() { for (int i = 0; i < 4; i++) { TCanvas c1("c1"); ME[i]->getTH1()->Draw(); - std::string name(ME[i]->getTH1()->GetTitle()); + std::string name(ME[i]->getTitle()); name += ".png"; c1.Print(name.c_str()); } diff --git a/DQM/SiStripMonitorTrack/src/SiStripMonitorTrack.cc b/DQM/SiStripMonitorTrack/src/SiStripMonitorTrack.cc index 58f465328eadd..af024708468b1 100644 --- a/DQM/SiStripMonitorTrack/src/SiStripMonitorTrack.cc +++ b/DQM/SiStripMonitorTrack/src/SiStripMonitorTrack.cc @@ -876,7 +876,7 @@ SiStripMonitorTrack::MonitorElement* SiStripMonitorTrack::bookMETrend(DQMStore:: 0, ""); if (me->kind() == MonitorElement::Kind::TPROFILE) - me->getTH1()->SetCanExtend(TH1::kAllAxes); + me->setCanExtend(TH1::kAllAxes); if (!me) return me; diff --git a/DQM/TrackerRemapper/BuildFile.xml b/DQM/TrackerRemapper/BuildFile.xml new file mode 100644 index 0000000000000..cb5afe8a8f677 --- /dev/null +++ b/DQM/TrackerRemapper/BuildFile.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/DQM/TrackerRemapper/README.md b/DQM/TrackerRemapper/README.md new file mode 100644 index 0000000000000..1ed3a41dea286 --- /dev/null +++ b/DQM/TrackerRemapper/README.md @@ -0,0 +1,89 @@ +# Tracker Remapper Tool + +The tool to either remap existing DQM histograms onto Strip Detector layout or to analyze event files and put events into the right detector parts. + +## Running basics + +Should you need to run this tool use: `cmsRun ConfFile_cfg.py [option=value]` + +Options can be either adjusted in the configuration file (`ConfFile_cfg.py`) or passed as a list of `key=value` pairs. In the latter case unspecified options are taken directly from `ConfFile_cfg.py`. + +## Options + + 1. `opMode` - mode of operation, allowed values: + 1. `0` or `MODE_ANALYZE` (in configuration) + 2. `1` or `MODE_REMAP` (in configuration) + 2. `analyzeMode` - option used to choose what do you want to put inside the map if `MODE_ANALYZE` was chosen: + 1. `1` or `RECHITS` (in configuration) for TRACKS + 2. `2` or `DIGIS` (in configuration) for DIGIS + 3. `3` or `CLUSTERS` (in configuration) for CLUSTERS + 3. `eventLimit` - only relevant for `MODE_ANALYZE` controls how many events from the input should be processed; default value is `100`, put `-1` to process all events from the input + 4. `inputRootFile` - relative path to the file to process, it should be different type of file depending on the `opMode` set: + 1. `MODE_ANALYZE` - DQM root file containing regular SiStrip plots + 2. `MODE_REMAP` - root file with events to process + 4. `stripHistogram` - histogram name to look for when `opMode=MODE_REMAP` is set, default is `TkHMap_NumberValidHits` + 5. `src` - automaticly set based on your settings, change at your own risk + 6. `globalTag` - global tag (GT) to use, default is `auto:run2_data` + +## The output + +Your output will be saved by default as `outputStrip.root` in your current working directory. This can be tuned in the `ConfFile_cfg.py` file. + +SiPixelPhase1Analyzer package +============================= + +The aim of this package is to provide a convinient way to present standard Pixel Detector histograms in a way that mimics the layout of real detector. + +Imagine a standard histogram of Pixel Forward Detector where bins are simple squares with assigned fixed coordinates (x - disk, y - blade number) - it is not easy to visualize, how exactly bin entries are represented in the detector layout. + +Here comes this package - it creates histograms with bins which are laid out in space in a very similar way to the real detector. In case of Forward Detector bins create fans in XY-plane. + +Two modes of operation +---------------------- + +This package can operate in two modes: + 1. *MODE_REMAP* - it requires file with Oline histograms that will be remapped to Offline histograms + 2. *MODE_ANALYZE* - takes file to analyze collections contained in events + +How are bins booked and what kind of histograms may be produced +--------------------------------------------------------------- + +To obtain global position of each module of the Pixel Detector GeomDet::surface() is used. It returns the reference to the object that approximates real detector - position and dimensions (width, lenght, thickness). Moreover, so that to create more complicated layouts (like in forward detector) also orientation in space is required (GeomDet::rotation()). Based on this data transformation matrix is built (only in Forward case). As vertices for a given geometry unit are ready new bin in the appropriate TH2Poly histogram is created with an ID that is equal to the module rawId. + +Types of booked histograms: + + - `barrel_layer_n`, [1,...,4], + - `barrel_summary` (keeps all 4 layers in one histogram), + - `forward_disk_n`, [-3,...,3], + - `forward_summary` (keeps all 6 disks in one histogram like here, disks on the negative side of x-axis correspond to disks on the negative side of the barrel, the higher the center of the disk the higher is also disk number). + +Barrel histograms do not differ much from Online barrel histograms. Here is just Offline naming convention used. X axis represents global z-coordinate when y axis is a simple offline ladder number. + +Concentric shape of Forward Disks and the existence of two panels on each of them forces another treatment. First of all each geometry unit (nth offline blade) is of trapezoidal shape in XY-plane which is split by the diagonal into two triangles: + + - smaller one represents the data of panel 1, + - bigger one represents the data of panel 2. + +Secondly, vertices are multiplied by the transformation matrix which is a mean of two transformation matrices to obtain final layout. + +How to configure the package +---------------------------- + + 1. *MODE_REMAP* + * it is required to provide a dummy file with at least one event to make the analyze() method fire (`fileNames = cms.untracked.vstring("file:RECO_file.root")`) + * set `opMode = cms.untracked.uint32(MODE_REMAP)` + * give a file in which histograms to remap will be searched for `remapRootFileName = cms.untracked.vstring("dqmFile.root")` + * `baseHistogramName`, `pathToHistograms` and `isBarrelSource` are closely related to each other because every nth element describes one histogram set that will be remapped. + The plugin will be looking for all histograms which names are provided in `baseHistogramName` in a corresponding directory `pathToHistograms` in file `remapRootFileName` and assumes it is of type (Barrel/Forward : 1/0) as specified in `isBarrelSource`. If everything goes fine there will be produced output file with histograms contained in directories which are named exactly the same as entries in `baseHistogramName`. Besides of booking new histograms each directory contains also source histograms from the original file. If there is a problem with opening source histogram it will be skipped. + 2. *MODE_ANALYZE" + * set your input file (`fileNames = cms.untracked.vstring("file:RECO_file.root")`) + * set `opMode = cms.untracked.uint32(MODE_ANALYZE)` + * set the source collection of your inputs `src = cms.InputTag("generalTracks")`, at this point of development only `recHits` are allowed - these are extracted from collection of tracks + After running the code in this mode user should get a root file which contains the distribution of __something__ in Barrel and Forward Detector. + +DEBUG mode +--------- + +There is another mode of operation that alters default contentents of REMAP/ANALYZE histograms and creates additional files in the working directory that are used for debugging purposes. You can see the results if you uncomment '#define DEBUG_MODE' and recompile the package. + +This mode helps to understand mapping from Online to Offline DQM, produces files with bins' vertices to use by external tools, as well as helps to check if hits positions are properly represented in contents of the bins. \ No newline at end of file diff --git a/DQM/TrackerRemapper/interface/Phase1PixelMaps.h b/DQM/TrackerRemapper/interface/Phase1PixelMaps.h new file mode 100644 index 0000000000000..63b6a203f5f2a --- /dev/null +++ b/DQM/TrackerRemapper/interface/Phase1PixelMaps.h @@ -0,0 +1,102 @@ +#ifndef DQM_TRACKERREMAPPER_PHASE1PIXELMAPS_H +#define DQM_TRACKERREMAPPER_PHASE1PIXELMAPS_H + +#include "TH2Poly.h" +#include "TGraph.h" +#include "TH1.h" +#include "TH2.h" +#include "TStyle.h" +#include "TCanvas.h" + +#include +#include +#include +#include + +#include "FWCore/ParameterSet/interface/FileInPath.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "CalibTracker/StandaloneTrackerTopology/interface/StandaloneTrackerTopology.h" + +#ifndef PHASE1PIXELMAP_STANDALONE +#define LOGDEBUG(x) LogDebug(x) +#else +#define LOGDEBUG(x) std::cout << x << ": " +#endif + +using indexedCorners = std::map, std::vector>>; + +/*-------------------------------------------------------------------- +/ Ancillary class to build pixel phase-1 tracker maps +/--------------------------------------------------------------------*/ +class Phase1PixelMaps { +public: + Phase1PixelMaps(const char* option) + : m_option{option}, + m_trackerTopo{StandaloneTrackerTopology::fromTrackerParametersXMLFile( + edm::FileInPath("Geometry/TrackerCommonData/data/PhaseI/trackerParameters.xml").fullPath())} { + // set the rescale to true by default + m_autorescale = true; + + // store the file in path for the corners (BPIX) + for (unsigned int i = 1; i <= 4; i++) { + m_cornersBPIX.push_back(edm::FileInPath(Form("DQM/SiStripMonitorClient/data/Geometry/vertices_barrel_%i", i))); + } + + // store the file in path for the corners (BPIX) + for (int j : {-3, -2, -1, 1, 2, 3}) { + m_cornersFPIX.push_back(edm::FileInPath(Form("DQM/SiStripMonitorClient/data/Geometry/vertices_forward_%i", j))); + } + } + + ~Phase1PixelMaps() = default; + + // set of no rescale + inline void setNoRescale() { m_autorescale = false; } + + // set option, but only if not already set + void resetOption(const char* option); + + // booking methods + void bookBarrelHistograms(const std::string& currentHistoName, const char* what, const char* zaxis); + void bookForwardHistograms(const std::string& currentHistoName, const char* what, const char* zaxis); + void bookBarrelBins(const std::string& currentHistoName); + void bookForwardBins(const std::string& currentHistoName); + + // filling methods + void fillBarrelBin(const std::string& currentHistoName, unsigned int id, double value); + void fillForwardBin(const std::string& currentHistoName, unsigned int id, double value); + + // beautification methods + void beautifyAllHistograms(); + void setBarrelScale(const std::string& currentHistoName, std::pair extrema); + void setForwardScale(const std::string& currentHistoName, std::pair extrema); + + // drawing methos + void drawBarrelMaps(const std::string& currentHistoName, TCanvas& canvas, const char* drawOption = nullptr); + void drawForwardMaps(const std::string& currentHistoName, TCanvas& canvas, const char* drawOption = nullptr); + void drawSummaryMaps(const std::string& currentHistoName, TCanvas& canvas); + +private: + Option_t* m_option; + bool m_autorescale; + TrackerTopology m_trackerTopo; + + std::map> bins, binsSummary; + std::map>> pxbTh2PolyBarrel; + std::map> pxbTh2PolyBarrelSummary; + std::map>> pxfTh2PolyForward; + std::map> pxfTh2PolyForwardSummary; + + std::vector m_cornersBPIX; + std::vector m_cornersFPIX; + + const indexedCorners retrieveCorners(const std::vector& cornerFiles, const unsigned int reads); + + // graphics + void makeNicePlotStyle(TH1* hist); + void adjustCanvasMargins(TVirtualPad* pad, float top, float bottom, float left, float right); + void rescaleAllBarrel(const std::string& currentHistoName); + void rescaleAllForward(const std::string& currentHistoName); +}; + +#endif diff --git a/DQM/TrackerRemapper/interface/Phase1PixelROCMaps.h b/DQM/TrackerRemapper/interface/Phase1PixelROCMaps.h new file mode 100644 index 0000000000000..e4b97c1f73a33 --- /dev/null +++ b/DQM/TrackerRemapper/interface/Phase1PixelROCMaps.h @@ -0,0 +1,258 @@ +#ifndef DQM_TRACKERREMAPPER_PHASE1PIXELROCMAPS_H +#define DQM_TRACKERREMAPPER_PHASE1PIXELROCMAPS_H + +#include "TH1.h" +#include "TH2.h" +#include "TStyle.h" +#include "TCanvas.h" +#include "TLine.h" +#include "TLatex.h" + +#include +#include +#include +#include +#include + +#include "FWCore/ParameterSet/interface/FileInPath.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "CalibTracker/StandaloneTrackerTopology/interface/StandaloneTrackerTopology.h" +#include "DataFormats/TrackerCommon/interface/PixelBarrelName.h" +#include "DataFormats/TrackerCommon/interface/PixelEndcapName.h" + +#ifndef PHASE1PIXELMAP_STANDALONE +#define LOGDEBUG(x) LogDebug(x) +#else +#define LOGDEBUG(x) std::cout << x << ": " +#endif + +/*-------------------------------------------------------------------- +/ helper functions to dress plots +/--------------------------------------------------------------------*/ +namespace PixelROCMapHelper { + void draw_line(double x1, double x2, double y1, double y2, int width, int style, int color); + void dress_plot( + TCanvas& canv, TH2* h, int lay, int ring, int phase, bool half_shift, bool mark_zero, bool standard_palette); +} // namespace PixelROCMapHelper + +/*-------------------------------------------------------------------- +/ Ancillary struct to contain detector topology coordinates +/--------------------------------------------------------------------*/ +struct DetCoordinates { + int m_layer; + int m_s_ladder; + int m_s_module; + int m_ring; + int m_s_blade; + int m_s_disk; + int m_panel; + bool m_isFlipped; + +public: + DetCoordinates() { + m_layer = -1; + m_s_ladder = -1; + m_s_module = -1; + m_ring = -1; + m_s_blade = -1; + m_s_disk = -1; + m_panel = -1; + m_isFlipped = false; + } + + void printCoordinates() { + if (this->isBarrel()) { + edm::LogPrint("DetCoordinates") << "layer: " << m_layer << " ladder: " << m_s_ladder << " module: " << m_s_module + << std::endl; + } else { + edm::LogPrint("DetCoordinates") << "ring: " << m_ring << " blade: " << m_s_blade << " panel: " << m_panel + << " disk: " << m_s_disk << std::endl; + } + } + + bool isBarrel() { return (m_layer > 0); } + bool isEndcap() { return (m_ring > 0); } +}; + +/*-------------------------------------------------------------------- +/ Ancillary class to build pixel phase-1 tracker maps +/--------------------------------------------------------------------*/ +class Phase1PixelROCMaps { +public: + Phase1PixelROCMaps(const char* option) + : m_option{option}, + m_trackerTopo{StandaloneTrackerTopology::fromTrackerParametersXMLFile( + edm::FileInPath("Geometry/TrackerCommonData/data/PhaseI/trackerParameters.xml").fullPath())} { + // --------------------- BOOK HISTOGRAMS + // barrel + for (unsigned int lay = 1; lay <= n_layers; lay++) { + int nlad = nlad_list[lay - 1]; + std::string name = "occ_Layer_" + std::to_string(lay); + std::string title = "; Module # ; Ladder #"; + + h_bpix_maps[lay - 1] = std::make_shared( + name.c_str(), title.c_str(), 72, -n_layers - 0.5, n_layers + 0.5, (nlad * 4 + 2), -nlad - 0.5, nlad + 0.5); + } + + // endcaps + for (unsigned int ring = 1; ring <= n_rings; ring++) { + int n = nybins_list[ring - 1]; + float y = nxbins_list[ring - 1] + 0.5; + std::string name = "occ_ring_" + std::to_string(ring); + std::string title = "; Disk # ; Blade/Panel #"; + + h_fpix_maps[ring - 1] = + std::make_shared(name.c_str(), title.c_str(), 56, -n_rings - 1.5, n_rings + 1.5, n, -y, y); + } + } + + ~Phase1PixelROCMaps() {} + + // Forward declarations + void fillWholeModule(const uint32_t& detid, double value); + void fillSelectedRocs(const uint32_t& detid, const std::bitset<16>& theROCs, double value); + void drawBarrelMaps(TCanvas& canvas); + void drawForwardMaps(TCanvas& canvas); + void drawMaps(TCanvas& canvas); + + inline std::array, 4> getLayerMaps() { return h_bpix_maps; } + inline std::array, 2> getRingMaps() { return h_fpix_maps; } + +private: + Option_t* m_option; + TrackerTopology m_trackerTopo; + + // tough luck, we can only do phase-1... + static constexpr int numColumns = 416; + static constexpr int numRows = 160; + static constexpr int n_rings = 2; + static constexpr int n_layers = 4; + + const int nlad_list[n_layers] = {6, 14, 22, 32}; + const int nybins_list[n_rings] = {92, 140}; + const int nxbins_list[n_rings] = {11, 17}; + + // maps + std::array, n_layers> h_bpix_maps; + std::array, n_rings> h_fpix_maps; + + // options + static constexpr const char* kVerbose = "verbose"; + + // Forward declarations of private methods + + DetCoordinates findDetCoordinates(const uint32_t& t_detid); + std::vector > maskedBarrelRocsToBins(DetCoordinates coord); + std::vector > maskedBarrelRocsToBins(DetCoordinates coord, std::bitset<16> myRocs); + std::vector > maskedForwardRocsToBins(DetCoordinates coord); + std::vector > maskedForwardRocsToBins(DetCoordinates coord, std::bitset<16> myRocs); + +protected: + //============================================================================ + // Taken from pixel naming classes + // BmO (-z-x) = 1, BmI (-z+x) = 2 , BpO (+z-x) = 3 , BpI (+z+x) = 4 + int quadrant(const DetId& detid, bool phase_) { + if (detid.subdetId() == PixelSubdetector::PixelBarrel) { + return PixelBarrelName(detid, &m_trackerTopo, phase_).shell(); + } else { + return PixelEndcapName(detid, &m_trackerTopo, phase_).halfCylinder(); + } + } + + //============================================================================ + // Online ladder convention taken from pixel naming class for barrel + // Apply sign convention (- sign for BmO and BpO) + int signed_ladder(const DetId& detid, bool phase_) { + if (detid.subdetId() != PixelSubdetector::PixelBarrel) + return -9999; + int signed_ladder = PixelBarrelName(detid, &m_trackerTopo, phase_).ladderName(); + if (quadrant(detid, phase_) % 2) + signed_ladder *= -1; + return signed_ladder; + } + + //============================================================================ + // Online mdoule convention taken from pixel naming class for barrel + // Apply sign convention (- sign for BmO and BmI) + int signed_module(const DetId& detid, bool phase_) { + if (detid.subdetId() != PixelSubdetector::PixelBarrel) + return -9999; + int signed_module = PixelBarrelName(detid, &m_trackerTopo, phase_).moduleName(); + if (quadrant(detid, phase_) < 3) + signed_module *= -1; + return signed_module; + } + + //============================================================================ + // Phase 0: Ring was not an existing convention + // but the 7 plaquettes were split by HV group + // --> Derive Ring 1/2 for them + // Panel 1 plq 1-2, Panel 2, plq 1 = Ring 1 + // Panel 1 plq 3-4, Panel 2, plq 2-3 = Ring 2 + // Phase 1: Using pixel naming class for endcap + int ring(const DetId& detid, bool phase_) { + if (detid.subdetId() != PixelSubdetector::PixelEndcap) + return -9999; + int ring = -9999; + if (phase_ == 0) { + ring = 1 + (m_trackerTopo.pxfPanel(detid) + m_trackerTopo.pxfModule(detid) > 3); + } else if (phase_ == 1) { + ring = PixelEndcapName(detid, &m_trackerTopo, phase_).ringName(); + } + return ring; + } + + //============================================================================ + // Online blade convention taken from pixel naming class for endcap + // Apply sign convention (- sign for BmO and BpO) + int signed_blade(const DetId& detid, bool phase_) { + if (detid.subdetId() != PixelSubdetector::PixelEndcap) + return -9999; + int signed_blade = PixelEndcapName(detid, &m_trackerTopo, phase_).bladeName(); + if (quadrant(detid, phase_) % 2) + signed_blade *= -1; + return signed_blade; + } + + //============================================================================ + int signed_blade_panel(const DetId& detid, bool phase_) { + if (detid.subdetId() != PixelSubdetector::PixelEndcap) + return -9999; + int signed_blade_panel = signed_blade(detid, phase_) + (m_trackerTopo.pxfPanel(detid) - 1); + return signed_blade_panel; + } + + //============================================================================ + // Online disk convention + // Apply sign convention (- sign for BmO and BmI) + int signed_disk(const DetId& detid, bool phase_) { + if (detid.subdetId() != PixelSubdetector::PixelEndcap) + return -9999; + int signed_disk = m_trackerTopo.pxfDisk(DetId(detid)); + if (quadrant(detid, phase_) < 3) + signed_disk *= -1; + return signed_disk; + } + + //============================================================================ + // Determines if the BPix ldder is inner or outer + bool isBPixOuterLadder(const DetId& detid, bool isPhase0) { + bool isOuter = false; + int layer = m_trackerTopo.pxbLayer(detid.rawId()); + bool odd_ladder = m_trackerTopo.pxbLadder(detid.rawId()) % 2; + if (isPhase0) { + if (layer == 2) + isOuter = !odd_ladder; + else + isOuter = odd_ladder; + } else { + if (layer == 4) + isOuter = odd_ladder; + else + isOuter = !odd_ladder; + } + return isOuter; + } +}; + +#endif diff --git a/DQM/TrackerRemapper/interface/Phase1PixelSummaryMap.h b/DQM/TrackerRemapper/interface/Phase1PixelSummaryMap.h new file mode 100644 index 0000000000000..c75162718f124 --- /dev/null +++ b/DQM/TrackerRemapper/interface/Phase1PixelSummaryMap.h @@ -0,0 +1,110 @@ +#ifndef DQM_TRACKERREMAPPER_PHASE1PIXELSUMMARYMAP_H +#define DQM_TRACKERREMAPPER_PHASE1PIXELSUMMARYMAP_H + +#include "TArrow.h" +#include "TCanvas.h" +#include "TGraph.h" +#include "TH1.h" +#include "TH2.h" +#include "TH2Poly.h" +#include "TLatex.h" +#include "TStyle.h" + +#include +#include +#include +#include +#include + +#include "FWCore/ParameterSet/interface/FileInPath.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "CalibTracker/StandaloneTrackerTopology/interface/StandaloneTrackerTopology.h" + +#ifndef PH1PSUMMARYMAP_STANDALONE +#define LOGDEBUG(x) LogDebug(x) +#define LOGINFO(x) edm::LogInfo(x) +#define LOGPRINT(x) edm::LogPrint(x) +#else +#define LOGDEBUG(x) std::cout << x << " Debug : " +#define LOGINFO(x) std::cout << x << " Info : " +#define LOGPRINT(x) std::cout << x << " : " +#endif + +using indexedCorners = std::map, std::vector>>; + +namespace Ph1PMapSummaryHelper { + //============================================================================ + // utility to tokenize std::string + //============================================================================ + std::vector tokenize(std::string line, char delimiter) { + // Vector of string to save tokens + std::vector tokens; + std::stringstream check1(line); + std::string intermediate; + + // Tokenizing w.r.t. delimiter + while (getline(check1, intermediate, delimiter)) { + tokens.push_back(intermediate); + } + return tokens; + } +} // namespace Ph1PMapSummaryHelper + +/*-------------------------------------------------------------------- +/ Ancillary class to build pixel phase-1 tracker maps +/--------------------------------------------------------------------*/ +class Phase1PixelSummaryMap { +public: + Phase1PixelSummaryMap(const char* option, std::string title, std::string zAxisTitle) + : m_option{option}, + m_title{title}, + m_zAxisTitle{zAxisTitle}, + m_trackerTopo{StandaloneTrackerTopology::fromTrackerParametersXMLFile( + edm::FileInPath("Geometry/TrackerCommonData/data/PhaseI/trackerParameters.xml").fullPath())} { + // store the file in path for the corners (BPIX) + for (unsigned int i = 1; i <= 4; i++) { + m_cornersBPIX.push_back(edm::FileInPath(Form("DQM/SiStripMonitorClient/data/Geometry/vertices_barrel_%i", i))); + } + + // store the file in path for the corners (BPIX) + for (int j : {-3, -2, -1, 1, 2, 3}) { + m_cornersFPIX.push_back(edm::FileInPath(Form("DQM/SiStripMonitorClient/data/Geometry/vertices_forward_%i", j))); + } + } + + ~Phase1PixelSummaryMap() = default; + + void resetOption(const char* option); + void createTrackerBaseMap(); + void printTrackerMap(TCanvas& canvas); + bool fillTrackerMap(unsigned int id, double value); + +protected: + void addNamedBins(edm::FileInPath geoFile, int tX, int tY, int sX, int sY, bool applyModuleRotation = false); + +private: + Option_t* m_option; + const std::string m_title; + const std::string m_zAxisTitle; + + TrackerTopology m_trackerTopo; + std::shared_ptr m_BaseTrackerMap; + std::map> bins; + + std::vector m_cornersBPIX; + std::vector m_cornersFPIX; + + static const unsigned int maxPxBarrel = 4; + static const unsigned int maxPxForward = 3; + const std::array barrelLadderShift = {{0, 14, 44, 90}}; + const std::array forwardDiskXShift = {{25, 75, 125}}; + + const int forwardDiskYShift = 45; //# to make +DISK on top in the 'strip-like' layout + + const int plotWidth = 3000; + const int plotHeight = 2000; + + TArrow arrow, phiArrow, xArrow, yArrow; +}; + +#endif diff --git a/DQM/TrackerRemapper/interface/SiPixelPhase1Analyzer.h b/DQM/TrackerRemapper/interface/SiPixelPhase1Analyzer.h new file mode 100644 index 0000000000000..eccbc206cc728 --- /dev/null +++ b/DQM/TrackerRemapper/interface/SiPixelPhase1Analyzer.h @@ -0,0 +1,164 @@ +#ifndef DQM_TRACKERREMAPPER_SIPIXELPHASE1ANALYZER_H +#define DQM_TRACKERREMAPPER_SIPIXELPHASE1ANALYZER_H + +/**\class SiPixelPhase1Analyzer SiPixelPhase1Analyzer.cc EJTerm/SiPixelPhase1Analyzer/plugins/SiPixelPhase1Analyzer.cc + + Description: [one line class summary] + + Implementation: + [Notes on implementation] +*/ +// +// Original Author: Pawel Jurgielewicz +// Created: Tue, 21 Feb 2017 09:42:19 GMT +// +// + +// system include files +#include + +// #include +#include +#include + +#include + +#include +#include + +// user include files +#include "CommonTools/UtilAlgos/interface/TFileService.h" +#include "DQM/TrackerRemapper/interface/mat4.h" +#include "DataFormats/GeometrySurface/interface/DiskSectorBounds.h" +#include "DataFormats/GeometrySurface/interface/RectangularPlaneBounds.h" +#include "DataFormats/GeometrySurface/interface/TrapezoidalPlaneBounds.h" +#include "DataFormats/SiPixelDetId/interface/PXBDetId.h" +#include "DataFormats/SiPixelDetId/interface/PXFDetId.h" +#include "DataFormats/TrackReco/interface/Track.h" +#include "DataFormats/TrackReco/interface/TrackFwd.h" +#include "DataFormats/TrackerCommon/interface/PixelBarrelName.h" +#include "DataFormats/TrackerCommon/interface/PixelEndcapName.h" +#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" +#include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHitCollection.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ServiceRegistry/interface/Service.h" +#include "Geometry/CommonTopologies/interface/PixelGeomDetUnit.h" +#include "Geometry/CommonTopologies/interface/PixelTopology.h" +#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" +#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" + +#include "TH2.h" +#include "TProfile2D.h" +#include "TH2Poly.h" +#include "TGraph.h" + +#define CODE_FORWARD(s, d, b) ((unsigned short)((b << 8) + (d << 4) + s)) + +//#define DEBUG_MODE + +// +// class declaration +// + +enum OperationMode { MODE_ANALYZE = 0, MODE_REMAP = 1 }; + +class SiPixelPhase1Analyzer : public edm::one::EDAnalyzer { +public: + explicit SiPixelPhase1Analyzer(const edm::ParameterSet&); + ~SiPixelPhase1Analyzer() override; + + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + +private: + void analyze(const edm::Event&, const edm::EventSetup&) override; + void BookHistograms(); + + void BookBarrelHistograms(TDirectory* currentDir, const std::string& currentHistoName); + void BookForwardHistograms(TDirectory* currentDir, const std::string& currentHistoName); + + void BookBins(const TrackerGeometry& theTrackerGeometry, const TrackerTopology* tt); + void BookBarrelBins(const TrackerGeometry& theTrackerGeometry, const TrackerTopology* tt); + void BookForwardBins(const TrackerGeometry& theTrackerGeometry, const TrackerTopology* tt); + + void SaveDetectorVertices(const TrackerTopology* tt); + + void FillBins(edm::Handle* tracks, + const TrackerGeometry& theTrackerGeometry, + const TrackerTopology* tt); + + void FillBarrelBinsAnalyze(const TrackerGeometry& theTrackerGeometry, + const TrackerTopology* tt, + unsigned rawId, + const GlobalPoint& globalPoint); + void FillForwardBinsAnalyze(const TrackerGeometry& theTrackerGeometry, + const TrackerTopology* tt, + unsigned rawId, + const GlobalPoint& globalPoint); + + void FillBarrelBinsRemap(const TrackerGeometry& theTrackerGeometry, const TrackerTopology* tt); + void FillForwardBinsRemap(const TrackerGeometry& theTrackerGeometry, const TrackerTopology* tt); + + // ----------member data --------------------------- + const edm::ESGetToken geomToken_; + const edm::ESGetToken topoToken_; + + OperationMode opMode; + + edm::EDGetTokenT tracksToken; + + std::string debugFileName; + std::ofstream debugFile; + + edm::Service fs; + + bool firstEvent; + + std::map bins, binsSummary; + + std::map > th2PolyBarrel; + std::map th2PolyBarrelSummary; + +#ifdef DEBUG_MODE + std::map > th2PolyBarrelDebug; +#endif + + std::map > pxfTh2PolyForward; + std::map pxfTh2PolyForwardSummary; + +#ifdef DEBUG_MODE + std::map > pxfTh2PolyForwardDebug; +#endif + + mat4 orthoProjectionMatrix; + + struct complementaryElements { + mat4 mat[2]; + unsigned rawId[2]; + }; + // used to hold information about elements': ids & matrices which are of the same side, disk and barrel but different panel + // to build trapezoidal ring elements + std::map mapOfComplementaryElements; + + //Input root file handle; + TFile* rootFileHandle; + + // read input histograms + std::vector isBarrelSource; + std::vector analazedRootFileName; + std::vector pathToHistograms; + std::vector baseHistogramName; + + // temporal functionality + void SaveDetectorData(bool isBarrel, unsigned rawId, int shell_hc, int layer_disk, int ladder_blade) { + std::ofstream file("det.data", std::ofstream::out); + + file << isBarrel << "\t" << rawId << "\t" << shell_hc << "\t" << layer_disk << "\t" << ladder_blade << std::endl; + } +}; + +#endif diff --git a/DQM/TrackerRemapper/interface/SiStripTkMaps.h b/DQM/TrackerRemapper/interface/SiStripTkMaps.h new file mode 100644 index 0000000000000..5e831b3365737 --- /dev/null +++ b/DQM/TrackerRemapper/interface/SiStripTkMaps.h @@ -0,0 +1,92 @@ +#ifndef DQM_TRACKERREMAPPER_SISTRIPTKMAPS_H +#define DQM_TRACKERREMAPPER_SISTRIPTKMAPS_H + +// CMSSW includes +#include "CalibTracker/StandaloneTrackerTopology/interface/StandaloneTrackerTopology.h" +#include "DataFormats/SiPixelDetId/interface/PXBDetId.h" +#include "DataFormats/SiPixelDetId/interface/PXFDetId.h" +#include "DataFormats/TrackerCommon/interface/PixelBarrelName.h" +#include "DataFormats/TrackerCommon/interface/PixelEndcapName.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/FileInPath.h" + +// ROOT includes +#include "TArrow.h" +#include "TPaletteAxis.h" +#include "TGaxis.h" +#include "TCanvas.h" +#include "TColor.h" +#include "TGraph.h" +#include "TLatex.h" +#include "TH2Poly.h" +#include "TStyle.h" + +// STL includes +#include +#include +#include +#include +#include + +// boost includes +#include +#include + +#define MYOUT LogDebug("SiStripTkMaps") + +/*-------------------------------------------------------------------- +/ Ancillary class to build SiStrip Tracker maps +/--------------------------------------------------------------------*/ +class SiStripTkMaps { +public: + SiStripTkMaps(const char* option) + : m_option{option}, + m_trackerTopo{StandaloneTrackerTopology::fromTrackerParametersXMLFile( + edm::FileInPath("Geometry/TrackerCommonData/data/PhaseI/trackerParameters.xml").fullPath())} {} + + ~SiStripTkMaps() = default; + + void bookMap(const std::string mapTitle, const std::string zAxisTitle); + void fill(long rawid, double val); + void drawMap(TCanvas& canvas, std::string option = ""); + + //============================================================================ + inline const TH2Poly* getTheMap() { return m_trackerMap; } + + //============================================================================ + inline const std::string& getTheMapTitle() { return m_mapTitle; } + + //============================================================================ + inline const std::string& getTheZAxisTitle() { return m_zAxisTitle; } + + //============================================================================ + inline const std::vector& getTheFilledIds() { return m_detIdVector; } + + //============================================================================ + inline const std::vector& getTheFilledValues() { return m_values; } + + //============================================================================ + inline void setZAxisRange(double xmin, double xmax) { m_trackerMap->GetZaxis()->SetRangeUser(xmin, xmax); } + +private: + // private members + Option_t* m_option; + std::string m_mapTitle = ""; + std::string m_zAxisTitle = ""; + double m_axmin, m_axmax; + std::map> m_bins; + std::vector m_detIdVector; + std::vector m_values; + TrackerTopology m_trackerTopo; + TH2Poly* m_trackerMap{nullptr}; + + // private methods + //============================================================================ + void dressMap(TCanvas& canv); + void drawArrows( + const float x_X1, const float x_X2, const float x_Y1, const float y_Y2, const char* x_label, const char* y_label); + void adjustCanvasMargins(TVirtualPad* pad, const float top, const float bottom, const float left, const float right); + void readVertices(double& minx, double& maxx, double& miny, double& maxy); +}; + +#endif diff --git a/DQM/TrackerRemapper/interface/mat4.h b/DQM/TrackerRemapper/interface/mat4.h new file mode 100644 index 0000000000000..2336a19e02194 --- /dev/null +++ b/DQM/TrackerRemapper/interface/mat4.h @@ -0,0 +1,114 @@ +#ifndef DQM_TRACKERREMAPPER_MAT4_H +#define DQM_TRACKERREMAPPER_MAT4_H + +// helper class for matrix operations +// - 4 rows +// - 3 columns +// in math operations behaves like 4x4 matrix with 4th row equal to: [0, 0, 0, 1] +// ! it's just the minimum implementation ! +class mat4 { +public: + float data[12]; + + mat4() {} + + mat4(float r00, + float r10, + float r20, + float r01, + float r11, + float r21, + float r02, + float r12, + float r22, + float x, + float y, + float z) { + data[0] = r00; + data[1] = r10; + data[2] = r20; + + data[3] = r01; + data[4] = r11; + data[5] = r21; + + data[6] = r02; + data[7] = r12; + data[8] = r22; + + data[9] = x; + data[10] = y; + data[11] = z; + } + + mat4(const mat4& mat) { + for (unsigned i = 0; i < 12; ++i) + data[i] = mat[i]; + } + + mat4& operator&(const mat4& mat) { + if (this != &mat) { + for (unsigned i = 0; i < 12; ++i) + data[i] = mat[i]; + } + return *this; + } + + mat4 operator+(const mat4& mat) const { + mat4 tmp; + for (unsigned i = 0; i < 12; ++i) + tmp[i] = (*this)[i] + mat[i]; + + return tmp; + } + + mat4 operator*(float s) const { + mat4 tmp; + for (unsigned i = 0; i < 12; ++i) + tmp[i] = (*this)[i] * s; + + return tmp; + } + + float& operator[](unsigned i) { return data[i]; } + + float operator[](unsigned i) const { return data[i]; } + + void MulVec(const float* vecIn, float* vecOut) { + for (unsigned i = 0; i < 3; ++i) { + float temp = 0; + for (unsigned j = 0; j < 3; ++j) { + temp += data[3 * j + i] * vecIn[j]; + } + vecOut[i] = temp + data[9 + i]; + } + } + void BuildOrthographicMatrix(float left, float right, float top, float bottom, float near, float far) { + float rmli = 1.0f / (right - left); + float rpl = right + left; + + float tmbi = 1.0f / (top - bottom); + float tpb = top + bottom; + + float fmni = 1.0f / (far - near); + float fpn = far + near; + + data[0] = 2.0f * rmli; + data[1] = 0.0f; + data[2] = 0.0f; + + data[3] = 0.0f; + data[4] = 2.0f * tmbi; + data[5] = 0.0f; + + data[6] = 0.0f; + data[7] = 0.0f; + data[8] = -2.0f * fmni; + + data[9] = -rpl * rmli; + data[10] = -tpb * tmbi; + data[11] = -fpn * fmni; + } +}; + +#endif diff --git a/DQM/TrackerRemapper/plugins/BuildFile.xml b/DQM/TrackerRemapper/plugins/BuildFile.xml new file mode 100644 index 0000000000000..787a56559689d --- /dev/null +++ b/DQM/TrackerRemapper/plugins/BuildFile.xml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/DQM/TrackerRemapper/plugins/SiPixelPhase1Analyzer.cc b/DQM/TrackerRemapper/plugins/SiPixelPhase1Analyzer.cc new file mode 100644 index 0000000000000..2814150512b9a --- /dev/null +++ b/DQM/TrackerRemapper/plugins/SiPixelPhase1Analyzer.cc @@ -0,0 +1,847 @@ +// -*- C++ -*- +// +// Package: DQM/TrackerRemapper +// Class: SiPixelPhase1Analyzer +// + +#include "DQM/TrackerRemapper/interface/SiPixelPhase1Analyzer.h" + +using namespace std; +using namespace edm; + +SiPixelPhase1Analyzer::SiPixelPhase1Analyzer(const edm::ParameterSet& iConfig) + : geomToken_(esConsumes()), + topoToken_(esConsumes()), + opMode(static_cast(iConfig.getUntrackedParameter("opMode"))), + debugFileName(iConfig.getUntrackedParameter("debugFileName")), + firstEvent(true), + rootFileHandle(nullptr), + isBarrelSource(iConfig.getUntrackedParameter>("isBarrelSource")), + analazedRootFileName(iConfig.getUntrackedParameter>("remapRootFileName")), + pathToHistograms(iConfig.getUntrackedParameter>("pathToHistograms")), + baseHistogramName(iConfig.getUntrackedParameter>("baseHistogramName")) { +#ifdef DEBUG_MODE + debugFile = std::ofstream(debugFileName.c_str(), std::ofstream::out); +#endif + usesResource("TFileService"); + + orthoProjectionMatrix.BuildOrthographicMatrix(1.0f, -1.0f, 1.0f, -1.0f, -10.0f, 10.0f); + + switch (opMode) { + case MODE_ANALYZE: + + tracksToken = consumes(iConfig.getParameter("src")); + + analazedRootFileName.clear(); + + pathToHistograms.clear(); + pathToHistograms.push_back("RecHits/"); + + baseHistogramName.clear(); + baseHistogramName.push_back("RecHits"); + + break; + case MODE_REMAP: + break; + default: + break; + } +} + +SiPixelPhase1Analyzer::~SiPixelPhase1Analyzer() { + for (auto& i : bins) { + delete i.second; + } + + for (auto& i : binsSummary) { + delete i.second; + } + +#ifdef DEBUG_MODE + debugFile.close(); +#endif +} + +// ------------ method called for each event ------------ +void SiPixelPhase1Analyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { + const auto& theTrackerGeometry = iSetup.getData(geomToken_); + const auto& tt = &iSetup.getData(topoToken_); + + if (firstEvent) { + ///////////////////////////////// + BookHistograms(); + ///////////////////////////////// + BookBins(theTrackerGeometry, tt); + ///////////////////////////////// + if (opMode == MODE_REMAP) { + FillBins(nullptr, theTrackerGeometry, tt); + } + ///////////////////////////////// + firstEvent = false; + } + if (opMode == MODE_ANALYZE) { + edm::Handle tracks; + iEvent.getByToken(tracksToken, tracks); + if (!tracks.isValid()) { + LogInfo("Analyzer") << "reco::TrackCollection not found... Aborting...\n"; + return; + } + FillBins(&tracks, theTrackerGeometry, tt); + } + // debugFile << "SiPixelPhase1Analyzer::analyze() - Event " << iEvent.run() << "/" << iEvent.id().event() << endl; +} + +void SiPixelPhase1Analyzer::BookHistograms() { + // ghost object FileService (without it, it crashes and creation of directories would not be possible) + TObject* ghostObj = fs->make("ghost", "ghost", -1, 1, -1, 1); + + TDirectory* topDir = fs->getBareDirectory(); + topDir->cd(); + +#ifdef DEBUG_MODE + debugFile << "Full path: " << fs->fullPath() << endl << endl; +#endif + string histName; + for (unsigned j = 0; j < baseHistogramName.size(); ++j) { + string currentHistoName = baseHistogramName[j]; + + TDirectory* currentDir = topDir->mkdir(currentHistoName.c_str()); + currentDir->cd(); + + if (opMode == MODE_REMAP) { + if (isBarrelSource[j]) { + BookBarrelHistograms(currentDir, currentHistoName); + } else { + BookForwardHistograms(currentDir, currentHistoName); + } + } else { + BookBarrelHistograms(currentDir, currentHistoName); + BookForwardHistograms(currentDir, currentHistoName); + } + + topDir->cd(); + } + + ghostObj->Delete(); //not needed any more +} + +void SiPixelPhase1Analyzer::BookBarrelHistograms(TDirectory* currentDir, const string& currentHistoName) { + string histName; + TH2Poly* th2p; + +#ifdef DEBUG_MODE + TH2* th2; +#endif + + for (unsigned i = 0; i < 4; ++i) { + histName = "barrel_layer_"; + + th2p = new TH2Poly((histName + std::to_string(i + 1)).c_str(), "PXBMap", -15.0, 15.0, 0.0, 5.0); + + th2p->SetFloat(); + + th2p->GetXaxis()->SetTitle("z [cm]"); + th2p->GetYaxis()->SetTitle("ladder"); + +#ifdef DEBUG_MODE + th2p->SetOption("COLZ 0 TEXT"); +#else + th2p->SetOption("COLZ L"); +#endif + + currentDir->Add(th2p); + th2PolyBarrel[currentHistoName].push_back(th2p); + +#ifdef DEBUG_MODE + if (opMode == MODE_ANALYZE) { + th2 = new TH2I((histName + std::to_string(i + 1) + "_DEBUG").c_str(), + "position", + 3000, + -30.0f, + 30.0f, + 1000, + -4.5f * (i + 1), + 4.5f * (i + 1)); + + th2->GetXaxis()->SetTitle("z [cm]"); + th2->GetYaxis()->SetTitle("-x [?]"); + + th2->SetOption("COLZ 0 TEXT"); + + currentDir->Add(th2); + th2PolyBarrelDebug[currentHistoName].push_back(th2); + } +#endif + } + + th2p = new TH2Poly("barrel_summary", "PXBMap", -5.0, 5.0, 0.0, 5.0); + th2p->SetFloat(); + + th2p->GetXaxis()->SetTitle(""); + th2p->GetYaxis()->SetTitle("~ladder"); + + th2p->SetOption("COLZ L"); + + currentDir->Add(th2p); + th2PolyBarrelSummary[currentHistoName] = th2p; +} + +void SiPixelPhase1Analyzer::BookForwardHistograms(TDirectory* currentDir, const string& currentHistoName) { + string histName; + TH2Poly* th2p; +#ifdef DEBUG_MODE + TH2* th2; +#endif + + for (unsigned side = 1; side <= 2; ++side) { + for (unsigned disk = 1; disk <= 3; ++disk) { + histName = "forward_disk_"; + + th2p = new TH2Poly((histName + std::to_string((side == 1 ? -(int(disk)) : (int)disk))).c_str(), + "PXFMap", + -15.0, + 15.0, + -15.0, + 15.0); + + th2p->SetFloat(); + + th2p->GetXaxis()->SetTitle("x [cm]"); + th2p->GetYaxis()->SetTitle("y [cm]"); + +#ifdef DEBUG_MODE + th2p->SetOption("COLZ 0 TEXT"); +#else + th2p->SetOption("COLZ L"); +#endif + currentDir->Add(th2p); + pxfTh2PolyForward[currentHistoName].push_back(th2p); + +#ifdef DEBUG_MODE + if (opMode == MODE_ANALYZE) { + th2 = new TH2I((histName + std::to_string((side == 1 ? -(int(disk)) : (int)disk)) + "_DEBUG").c_str(), + "position", + 1000, + -15.0f, + 15.0f, + 1000, + -15.0f, + 15.0f); + + th2->GetXaxis()->SetTitle("x [cm]"); + th2->GetYaxis()->SetTitle("y [cm]"); + + th2->SetOption("COLZ 0 TEXT"); + + currentDir->Add(th2); + pxfTh2PolyForwardDebug[currentHistoName].push_back(th2); + } +#endif + } + } + + th2p = new TH2Poly("forward_summary", "PXFMap", -40.0, 50.0, -20.0, 90.0); + th2p->SetFloat(); + + th2p->GetXaxis()->SetTitle(""); + th2p->GetYaxis()->SetTitle(""); + +#ifdef DEBUG_MODE + th2p->SetOption("COLZ 0 TEXT"); +#else + th2p->SetOption("COLZ L"); +#endif + + currentDir->Add(th2p); + pxfTh2PolyForwardSummary[currentHistoName] = th2p; +} + +void SiPixelPhase1Analyzer::BookBins(const TrackerGeometry& theTrackerGeometry, const TrackerTopology* tt) { + BookBarrelBins(theTrackerGeometry, tt); + BookForwardBins(theTrackerGeometry, tt); + +#ifdef DEBUG_MODE + SaveDetectorVertices(tt); +#endif +} + +void SiPixelPhase1Analyzer::BookBarrelBins(const TrackerGeometry& theTrackerGeometry, const TrackerTopology* tt) { + TrackingGeometry::DetContainer pxb = theTrackerGeometry.detsPXB(); +#ifdef DEBUG_MODE + debugFile << "There are " << pxb.size() << " detector elements in the PXB." << endl; +#endif + for (auto& i : pxb) { + const GeomDet* det = i; + + PXBDetId id = det->geographicalId(); + + Local2DPoint origin; + GlobalPoint p = det->surface().toGlobal(origin); + + int layer = tt->pxbLayer(id); + int ladder = tt->pxbLadder(id); + +#ifdef DEBUG_MODE + int module = tt->pxbModule(id); + PixelBarrelName pixelBarrelName(id, tt, true); + SaveDetectorData( + true, id.rawId(), pixelBarrelName.shell(), pixelBarrelName.layerName(), pixelBarrelName.ladderName()); +#endif + +#ifdef DEBUG_MODE + float r = sqrt(p.x() * p.x() + p.y() * p.y()); + + debugFile << "Layer: " << layer << "\tLadder: " << ladder << "\tModule: " << module << "\t(x, y, z, r2): (" << p.x() + << ", " << p.y() << ", " << p.z() << ", " << r << ")" << endl; +#endif + + const Bounds& b = (det->surface().bounds()); + float bl = b.length(); + +#ifdef DEBUG_MODE + float bw = b.width(); + float bt = b.thickness(); + + debugFile << "Length: " << bl << "\tWidth: " << bw << "\tThickness: " << bt << endl; +#endif + + float vertX[] = {p.z() - bl * 0.5f, p.z() + bl * 0.5f, p.z() + bl * 0.5f, p.z() - bl * 0.5f, p.z() - bl * 0.5f}; + float vertY[] = {(ladder - 1.0f), (ladder - 1.0f), (float)ladder, (float)ladder, (ladder - 1.0f)}; + + bins[id.rawId()] = new TGraph(5, vertX, vertY); + bins[id.rawId()]->SetName(TString::Format("%u", id.rawId())); + + // Summary plot + for (unsigned k = 0; k < 5; ++k) { + vertX[k] += ((layer == 2 || layer == 3) ? 0.0f : -60.0f); + vertY[k] += ((layer > 2) ? 30.0f : 0.0f); + } + + binsSummary[id.rawId()] = new TGraph(5, vertX, vertY); + binsSummary[id.rawId()]->SetName(TString::Format("%u", id.rawId())); + + for (unsigned nameNum = 0; nameNum < baseHistogramName.size(); ++nameNum) { + if (isBarrelSource[nameNum] || opMode == MODE_ANALYZE) { + const string& strName = baseHistogramName[nameNum]; + th2PolyBarrel[strName][layer - 1]->AddBin(bins[id.rawId()]->Clone()); + th2PolyBarrelSummary[strName]->AddBin(binsSummary[id.rawId()]->Clone()); + } + } + } +} + +void SiPixelPhase1Analyzer::BookForwardBins(const TrackerGeometry& theTrackerGeometry, const TrackerTopology* tt) { + TrackingGeometry::DetContainer pxf = theTrackerGeometry.detsPXF(); +#ifdef DEBUG_MODE + debugFile << "There are " << pxf.size() << " detector elements in the PXF." << endl; +#endif + bool firstForwardElem = true; + + float elemWidth = 1.0f; + float elemLength = 1.0f; + + // FIRST PASS -> MAKE MAP OF CORRESPONDING ELEMENTS (BLADES ON BOTH PANELS) + for (auto& i : pxf) { + const GeomDet* det = i; + + PXFDetId id = det->geographicalId(); + + Local2DPoint origin; + GlobalPoint p = det->surface().toGlobal(origin); + + int panel = tt->pxfPanel(id); + int side = tt->side(id); //tt->pxfSide(id); + int disk = tt->layer(id); //tt->pxfDisk(id); + int blade = tt->pxfBlade(id); + +#ifdef DEBUG_MODE + int module = tt->module(id); //tt->pxfModule(id); + PixelEndcapName pixelEndcapName(id, tt, true); + SaveDetectorData( + false, id.rawId(), pixelEndcapName.halfCylinder(), pixelEndcapName.diskName(), pixelEndcapName.bladeName()); +#endif + +#ifdef DEBUG_MODE + float r = sqrt(p.x() * p.x() + p.y() * p.y()); + + debugFile << "Panel: " << panel << "\tSide: " << side << "\tDisk: " << disk << "\tBlade: " << blade + << "\tModule: " << module << "\t(x, y, z, r): (" << p.x() << ", " << p.y() << ", " << p.z() << ", " << r + << ")" << endl; +#endif + if (firstForwardElem) { + const Bounds& b = det->surface().bounds(); //const RectangularPlaneBounds& b + + elemLength = b.length(); + elemWidth = b.width(); + + firstForwardElem = false; + } + + const auto& rot = det->rotation(); + + mat4 transMat( + rot.xx(), rot.xy(), rot.xz(), rot.yx(), rot.yy(), rot.yz(), rot.zx(), rot.zy(), rot.zz(), p.x(), p.y(), p.z()); + + mapOfComplementaryElements[CODE_FORWARD(side, disk, blade)].mat[panel - 1] = transMat; + mapOfComplementaryElements[CODE_FORWARD(side, disk, blade)].rawId[panel - 1] = id.rawId(); + } + + // SECOND PASS -> USE INFORMATION FROM MAP TO MAKE GEOMETRIC OBJECTS (BINS) + for (auto& i : mapOfComplementaryElements) { + // decode side&disk from the map key + unsigned side = i.first & 0xF; + unsigned disk = (i.first & 0xF0) >> 4; + // unsigned blade = (i.first & 0xFF00) >> 8; + + unsigned mapIdx = disk + (side - 1) * 3 - 1; + + // normal vectors of elements point to the (almost) opposite direction, so correction is needed before interploation (probably not 100% correct but fast) + i.second.mat[1].data[0] = -i.second.mat[1].data[0]; + i.second.mat[1].data[1] = -i.second.mat[1].data[1]; + i.second.mat[1].data[2] = -i.second.mat[1].data[2]; + + i.second.mat[1].data[6] = -i.second.mat[1].data[6]; + i.second.mat[1].data[7] = -i.second.mat[1].data[7]; + i.second.mat[1].data[8] = -i.second.mat[1].data[8]; + + mat4 meanTransform = (i.second.mat[0] + i.second.mat[1]) * 0.5f; + // mat4 meanTransform = i.second.mat[0]; + + static const float baseVertX[4] = {-elemWidth * 0.8f, -elemWidth * 0.5f, elemWidth * 0.8f, elemWidth * 0.5f}; + static const float baseVertY[4] = { + elemLength * 0.38f, -elemLength * 0.38f, elemLength * 0.38f, -elemLength * 0.38f}; + + float vertXPanel[2][4], vertYPanel[2][4]; + float vertIn[3], vertOut[3]; + + /* + (1) __________________ (3) + \ / + \ / + \ / + \ / + (2)\_________/(4) + + - division line: (2) - (3) + + - panel 1: triangle of lower area (2, 3, 4) + - panel 2: triangle of bigger area (1, 2, 3) + */ + + // obtain transformed vertices + for (unsigned j = 0; j < 4; ++j) { + vertIn[0] = baseVertX[j]; + vertIn[1] = baseVertY[j]; + vertIn[2] = 0.0f; + + meanTransform.MulVec(vertIn, vertOut); + std::swap(vertIn, vertOut); + orthoProjectionMatrix.MulVec(vertIn, vertOut); + + // vertical flip + vertOut[0] = -vertOut[0]; // so that inner elements have positive x-coordinate + + if (j > 0) { + vertXPanel[0][j - 1] = vertOut[0]; + vertYPanel[0][j - 1] = vertOut[1]; // for panel 2 + } + if (j < 3) { + vertXPanel[1][j] = vertOut[0]; + vertYPanel[1][j] = vertOut[1]; // for panel 1 + } + } + + for (unsigned j = 0; j < 2; ++j) { + vertXPanel[j][3] = vertXPanel[j][0]; + vertYPanel[j][3] = vertYPanel[j][0]; + + bins[i.second.rawId[j]] = new TGraph(4, vertXPanel[j], vertYPanel[j]); + bins[i.second.rawId[j]]->SetName(TString::Format("%u", i.second.rawId[j])); + + // for (auto strName: baseHistogramName) + // { + // pxfTh2PolyForward[strName][mapIdx]->AddBin(bins[i.second.rawId[j]]->Clone()); + // } + + // Summary plot + for (unsigned k = 0; k < 4; ++k) { + vertXPanel[j][k] += (float(side) - 1.5f) * 40.0f; + vertYPanel[j][k] += (disk - 1) * 35.0f; + } + + binsSummary[i.second.rawId[j]] = new TGraph(4, vertXPanel[j], vertYPanel[j]); + binsSummary[i.second.rawId[j]]->SetName(TString::Format("%u", i.second.rawId[j])); + + for (unsigned nameNum = 0; nameNum < baseHistogramName.size(); ++nameNum) { + if (!isBarrelSource[nameNum] || opMode == MODE_ANALYZE) { + const string& strName = baseHistogramName[nameNum]; + pxfTh2PolyForward[strName][mapIdx]->AddBin(bins[i.second.rawId[j]]->Clone()); + pxfTh2PolyForwardSummary[strName]->AddBin(binsSummary[i.second.rawId[j]]->Clone()); + } + } + } + } +} + +void SiPixelPhase1Analyzer::SaveDetectorVertices(const TrackerTopology* tt) { + vector verticesFiles[2]; + for (unsigned i = 0; i < 4; ++i) { + std::ofstream* f = new std::ofstream(("vertices_barrel_" + std::to_string(i + 1)).c_str(), std::ofstream::out); + + verticesFiles[0].push_back(f); + } + + for (unsigned side = 1; side <= 2; ++side) { + for (unsigned disk = 1; disk <= 3; ++disk) { + std::ofstream* f = new std::ofstream( + ("vertices_forward_" + std::to_string((side == 1 ? -(int(disk)) : (int)disk))).c_str(), std::ofstream::out); + + verticesFiles[1].push_back(f); + } + } + + for (auto& bin : bins) { + unsigned rawId = bin.first; + DetId id(rawId); + unsigned subdetId = id.subdetId(); + + if (subdetId != PixelSubdetector::PixelBarrel && subdetId != PixelSubdetector::PixelEndcap) + continue; + + double* vertX = bin.second->GetX(); + double* vertY = bin.second->GetY(); + + if (subdetId == PixelSubdetector::PixelBarrel) { + PXBDetId pxbId(rawId); + unsigned layer = tt->pxbLayer(pxbId); + string onlineName = PixelBarrelName(pxbId, tt, true).name(); + + *(verticesFiles[0][layer - 1]) << rawId << " " << onlineName << " \""; + for (unsigned i = 0; i < 4; ++i) { + *(verticesFiles[0][layer - 1]) << vertX[i] << "," << vertY[i]; + if (i == 3) + *(verticesFiles[0][layer - 1]) << "\"\n"; + else + *(verticesFiles[0][layer - 1]) << " "; + } + } else { + PXFDetId pxfId(rawId); + unsigned side = tt->pxfSide(pxfId); + unsigned disk = tt->pxfDisk(pxfId); + string onlineName = PixelEndcapName(pxfId, tt, true).name(); + unsigned mapIdx = disk + (side - 1) * 3 - 1; + + *(verticesFiles[1][mapIdx]) << rawId << " " << onlineName << " \""; + for (unsigned i = 0; i < 3; ++i) { + *(verticesFiles[1][mapIdx]) << vertX[i] << "," << vertY[i]; + + if (i == 2) + *(verticesFiles[1][mapIdx]) << "\"\n"; + else + *(verticesFiles[1][mapIdx]) << " "; + } + } + } + + for (unsigned i = 0; i < 2; ++i) { + for (auto& j : verticesFiles[i]) { + j->close(); + delete j; + } + } +} + +void SiPixelPhase1Analyzer::FillBins(edm::Handle* tracks, + const TrackerGeometry& theTrackerGeometry, + const TrackerTopology* tt) { + switch (opMode) { + case MODE_ANALYZE: + for (auto const& track : *(*tracks)) { + auto recHitsBegin = track.recHitsBegin(); + for (unsigned i = 0; i < track.recHitsSize(); ++i) { + auto recHit = *(recHitsBegin + i); + if (!recHit->isValid()) + continue; + + DetId id = recHit->geographicalId(); + unsigned subdetId = id.subdetId(); + + if (subdetId != PixelSubdetector::PixelBarrel && subdetId != PixelSubdetector::PixelEndcap) + continue; + + const PixelGeomDetUnit* geomdetunit = + dynamic_cast(theTrackerGeometry.idToDet(id)); // theTrackerGeometry ????? + //const PixelTopology& topol = geomdetunit->specificTopology(); + + LocalPoint localPoint = recHit->localPosition(); + GlobalPoint globalPoint = geomdetunit->surface().toGlobal(localPoint); + + if (subdetId == PixelSubdetector::PixelBarrel) + FillBarrelBinsAnalyze(theTrackerGeometry, tt, id.rawId(), globalPoint); + else + FillForwardBinsAnalyze(theTrackerGeometry, tt, id.rawId(), globalPoint); + } + } + break; + case MODE_REMAP: + FillBarrelBinsRemap(theTrackerGeometry, tt); + FillForwardBinsRemap(theTrackerGeometry, tt); + break; + default: + break; + } +} + +void SiPixelPhase1Analyzer::FillBarrelBinsAnalyze(const TrackerGeometry& theTrackerGeometry, + const TrackerTopology* tt, + unsigned rawId, + const GlobalPoint& globalPoint) { + for (unsigned nameNum = 0; nameNum < baseHistogramName.size(); ++nameNum) { + string strName = baseHistogramName[nameNum]; + + PXBDetId id(rawId); + + int layer = tt->pxbLayer(id); + + th2PolyBarrel[strName][layer - 1]->Fill(TString::Format("%u", rawId), 1); + th2PolyBarrelSummary[strName]->Fill(TString::Format("%u", rawId), 1); +#ifdef DEBUG_MODE + th2PolyBarrelDebug[strName][layer - 1]->Fill((globalPoint.y() < 0 ? globalPoint.z() + 0.5f : globalPoint.z()), + -globalPoint.x(), + (globalPoint.y() < 0 ? -1 : 1)); +#endif + } +} + +void SiPixelPhase1Analyzer::FillForwardBinsAnalyze(const TrackerGeometry& theTrackerGeometry, + const TrackerTopology* tt, + unsigned rawId, + const GlobalPoint& globalPoint) { + for (unsigned nameNum = 0; nameNum < baseHistogramName.size(); ++nameNum) { + string strName = baseHistogramName[nameNum]; + + PXFDetId id(rawId); + + int side = tt->side(id); //tt->pxfSide(id); + int disk = tt->layer(id); //tt->pxfDisk(id); + // int blade = tt->pxfBlade(id); + unsigned mapIdx = disk + (side - 1) * 3 - 1; + + pxfTh2PolyForward[strName][mapIdx]->Fill(TString::Format("%u", rawId), 1); + pxfTh2PolyForwardSummary[strName]->Fill(TString::Format("%u", rawId), 1); + +#ifdef DEBUG_MODE + pxfTh2PolyForwardDebug[strName][mapIdx]->Fill(globalPoint.x(), globalPoint.y(), 1); +#endif + } +} + +void SiPixelPhase1Analyzer::FillBarrelBinsRemap(const TrackerGeometry& theTrackerGeometry, const TrackerTopology* tt) { + rootFileHandle = new TFile(analazedRootFileName[0].c_str()); + + if (!rootFileHandle) { + LogInfo("Analyzer") << "Could not open file: " << analazedRootFileName[0] << "..." << endl; + return; + } + +#ifdef DEBUG_MODE + rootFileHandle->ls(); + LogInfo("Analyzer") << "\n\n"; + rootFileHandle->pwd(); + LogInfo("Analyzer") << "\n\n"; +#endif + + for (unsigned nameNum = 0; nameNum < baseHistogramName.size(); ++nameNum) { + if (!isBarrelSource[nameNum]) + continue; + + // if (pathToHistograms[nameNum][pathToHistograms.size() - 1] != '/') pathToHistograms[nameNum] += "/"; + string baseHistogramNameWithPath = pathToHistograms[nameNum] + baseHistogramName[nameNum] + "_"; + + const TProfile2D* handles[4]; +#ifndef DEBUG_MODE + const TProfile2D* h; +#endif + bool problemWithHandles = false; + + for (unsigned i = 0; i < 4; ++i) { + string fullFileName = (baseHistogramNameWithPath + std::to_string(i + 1) + ";1 "); + handles[i] = (TProfile2D*)rootFileHandle->Get(fullFileName.c_str()); + if (!handles[i]) { + problemWithHandles = true; + LogInfo("Analyzer") << "Histogram: " << fullFileName << " does not exist!\n"; + + break; + } + } + + if (!problemWithHandles) { + LogInfo("Analyzer") << "\nInput histograms: " << baseHistogramNameWithPath << " opened successfully\n"; + + //Add original histograms to this file + + TDirectory* currDir = fs->getBareDirectory()->GetDirectory(baseHistogramName[nameNum].c_str()); + currDir->cd(); + + for (unsigned i = 0; i < 4; ++i) { + currDir->Add(handles[i]->Clone()); + } + + TrackingGeometry::DetContainer pxb = theTrackerGeometry.detsPXB(); +#ifdef DEBUG_MODE + debugFile << "There are " << pxb.size() << " detector elements in the PXB." << endl; +#endif + for (auto& i : pxb) { + const GeomDet* det = i; + + PXBDetId id = det->geographicalId(); + unsigned rawId = id.rawId(); + + int module = tt->pxbModule(id); + //int ladder = tt->pxbLadder(id); + int layer = tt->pxbLayer(id); + + int signedOnlineModule = module - 4; + if (signedOnlineModule <= 0) + --signedOnlineModule; + + PixelBarrelName pixelBarrelName = PixelBarrelName(id, tt, true); + int onlineShell = pixelBarrelName.shell(); + + int signedOnlineLadder = ((onlineShell & 1) ? -pixelBarrelName.ladderName() : pixelBarrelName.ladderName()); + string strName = baseHistogramName[nameNum]; + +#ifdef DEBUG_MODE + th2PolyBarrel[strName][layer - 1]->Fill(TString::Format("%u", rawId), signedOnlineLadder); + th2PolyBarrelSummary[strName]->Fill(TString::Format("%u", rawId), signedOnlineLadder); +#else + h = handles[layer - 1]; + unsigned nx = h->GetNbinsX(); + unsigned ny = h->GetNbinsY(); + unsigned binX = signedOnlineModule + ((nx + 1) >> 1); + unsigned binY = (signedOnlineLadder) + ((ny + 1) >> 1); + double val = h->GetBinContent(binX, binY); + th2PolyBarrel[strName][layer - 1]->Fill(TString::Format("%u", rawId), val); + th2PolyBarrelSummary[strName]->Fill(TString::Format("%u", rawId), val); +#endif + } + } + } + + rootFileHandle->Close(); + delete rootFileHandle; +} + +void SiPixelPhase1Analyzer::FillForwardBinsRemap(const TrackerGeometry& theTrackerGeometry, const TrackerTopology* tt) { + rootFileHandle = new TFile(analazedRootFileName[0].c_str()); + + if (!rootFileHandle) { + return; + } + + TrackingGeometry::DetContainer pxf = theTrackerGeometry.detsPXF(); + +#ifdef DEBUG_MODE + rootFileHandle->ls(); + LogInfo("Analyzer") << "\n\n"; + rootFileHandle->pwd(); + LogInfo("Analyzer") << "\n\n"; +#endif + + for (unsigned nameNum = 0; nameNum < baseHistogramName.size(); ++nameNum) { + if (isBarrelSource[nameNum]) + continue; + + string baseHistogramNameWithPath = pathToHistograms[nameNum] + baseHistogramName[nameNum] + "_"; + + const TProfile2D* h_1 = (TProfile2D*)rootFileHandle->Get((baseHistogramNameWithPath + "1;1 ").c_str()); + const TProfile2D* h_2 = (TProfile2D*)rootFileHandle->Get((baseHistogramNameWithPath + "2;1 ").c_str()); +#ifndef DEBUG_MODE + const TProfile2D* h; +#endif + if (h_2 && h_1) { + LogInfo("Analyzer") << "\nInput histograms: " << baseHistogramNameWithPath << " opened successfully\n"; + + //Add original histograms to this file + TDirectory* currDir = fs->getBareDirectory()->GetDirectory(baseHistogramName[nameNum].c_str()); + currDir->cd(); + currDir->Add(h_1->Clone()); + currDir->Add(h_2->Clone()); + + for (auto& i : pxf) { + const GeomDet* det = i; + + PXFDetId id = det->geographicalId(); + + int side = tt->side(id); //tt->pxfSide(id); + int disk = tt->layer(id); //tt->pxfDisk(id); + + unsigned rawId = id.rawId(); + PixelEndcapName pixelEndcapName = PixelEndcapName(PXFDetId(rawId), tt, true); + +#ifdef DEBUG_MODE + int blade = tt->pxfBlade(id); +#else + int onlineBlade = pixelEndcapName.bladeName(); + bool isInnerOnlineBlade = !(pixelEndcapName.halfCylinder() & 1); // inner -> blade > 0 (?) + + int signedOnlineBlade = (isInnerOnlineBlade) ? onlineBlade : -onlineBlade; + int signedDisk = (side == 2) ? disk : -disk; + + int pannel = pixelEndcapName.pannelName() - 1; + +#endif + unsigned mapIdx = disk + (side - 1) * 3 - 1; + string strName = baseHistogramName[nameNum]; + +#ifdef DEBUG_MODE + pxfTh2PolyForward[strName][mapIdx]->Fill(TString::Format("%u", rawId), blade); + pxfTh2PolyForwardSummary[strName]->Fill(TString::Format("%u", rawId), blade); +#else + if (pixelEndcapName.ringName() == 1) + h = h_1; + else + h = h_2; + // ---- REMAP (Online -> Offline) + unsigned nx = h->GetNbinsX(); + unsigned ny = h->GetNbinsY(); + unsigned binX = signedDisk + ((nx + 1) >> 1); + unsigned binY = (signedOnlineBlade * 2) + (ny >> 1); + double val = h->GetBinContent(binX, binY + pannel); + pxfTh2PolyForward[strName][mapIdx]->Fill(TString::Format("%u", rawId), val); + pxfTh2PolyForwardSummary[strName]->Fill(TString::Format("%u", rawId), val); +#endif + } + } + } + + rootFileHandle->Close(); + delete rootFileHandle; +} + +// ------------ method fills 'descriptions' with the allowed parameters for the module ------------ +void SiPixelPhase1Analyzer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + //The following says we do not know what parameters are allowed so do no validation + // Please change this to state exactly what you do use, even if it is no parameters + edm::ParameterSetDescription desc; + desc.setComment( + "Creates TH2Poly Pixel Tracker maps by either analyzing the event or remapping exising DQM historams"); + desc.add("src", edm::InputTag("generalTracks")); + desc.addUntracked("opMode", 1); + desc.addUntracked("debugFileName", "debug.txt"); + desc.addUntracked>("isBarrelSource", {0, 0, 1}); + desc.addUntracked>("remapRootFileName", {"dqmFile.root"}); + desc.addUntracked>( + "pathToHistograms", + {"DQMData/Run 1/PixelPhase1/Run summary/Phase1_MechanicalView/PXForward/", + "DQMData/Run 1/PixelPhase1/Run summary/Phase1_MechanicalView/PXForward/", + "DQMData/Run 1/PixelPhase1/Run summary/Phase1_MechanicalView/PXBarrel/"}); + desc.addUntracked>("baseHistogramName", + {"num_clusters_per_PXDisk_per_SignedBladePanel_PXRing", + "num_digis_per_PXDisk_per_SignedBladePanel_PXRing", + "num_digis_per_SignedModule_per_SignedLadder_PXLayer"}); + descriptions.addWithDefaultLabel(desc); +} + +//define this as a plug-in +DEFINE_FWK_MODULE(SiPixelPhase1Analyzer); diff --git a/DQM/TrackerRemapper/plugins/TrackerRemapper.cc b/DQM/TrackerRemapper/plugins/TrackerRemapper.cc new file mode 100644 index 0000000000000..ae8e44c736687 --- /dev/null +++ b/DQM/TrackerRemapper/plugins/TrackerRemapper.cc @@ -0,0 +1,654 @@ +// +// Original Author: Pawel Jurgielewicz +// Created: Tue, 21 Nov 2017 13:38:45 GMT +// +// Modified by: Marco Musich +// + +// system include files +#include +#include +#include +#include +#include +#include +#include + +// user include files +#include "CalibTracker/SiStripCommon/interface/TkDetMap.h" +#include "CommonTools/UtilAlgos/interface/TFileService.h" +#include "DataFormats/Common/interface/DetSetVectorNew.h" +#include "DataFormats/SiPixelDetId/interface/PXBDetId.h" +#include "DataFormats/SiPixelDetId/interface/PXFDetId.h" +#include "DataFormats/SiStripCluster/interface/SiStripCluster.h" +#include "DataFormats/SiStripDigi/interface/SiStripDigi.h" +#include "DataFormats/TrackReco/interface/Track.h" +#include "DataFormats/TrackReco/interface/TrackFwd.h" +#include "DataFormats/TrackerCommon/interface/PixelBarrelName.h" +#include "DataFormats/TrackerCommon/interface/PixelEndcapName.h" +#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/EmptyGroupDescription.h" +#include "FWCore/ParameterSet/interface/allowedValues.h" +#include "FWCore/ServiceRegistry/interface/Service.h" +#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" +#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" + +// root include files +#include "TGraph.h" +#include "TObjString.h" +#include "TObjArray.h" +#include "TH2Poly.h" +#include "TProfile2D.h" +#include "TColor.h" + +using namespace edm; + +class TrackerRemapper : public edm::one::EDAnalyzer { +public: + explicit TrackerRemapper(const edm::ParameterSet&); + ~TrackerRemapper() override; + + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + + enum PixelLayerEnum { + INVALID = 0, + + PXB_L1, + PXB_L2, + PXB_L3, + PXB_L4, + + PXF_R1, + PXF_R2 + }; + + enum AnalyzeData { + RECHITS = 1, + DIGIS, + CLUSTERS, + }; + + enum OpMode { MODE_ANALYZE = 0, MODE_REMAP = 1 }; + +private: + void beginJob() override; + void analyze(const edm::Event&, const edm::EventSetup&) override; + void endJob() override; + + void readVertices(double& minx, double& maxx, double& miny, double& maxy); + + void prepareStripNames(); + void preparePixelNames(); + + void bookBins(); + + template + void analyzeGeneric(const edm::Event& iEvent, const edm::EDGetTokenT& src); + void analyzeRechits(const edm::Event& iEvent, const edm::EDGetTokenT& src); + + void fillStripRemap(); + void fillPixelRemap(const TrackerGeometry* theTrackerGeometry, const TrackerTopology* tt); + void fillBarrelRemap(TFile* rootFileHandle, const TrackerGeometry* theTrackerGeometry, const TrackerTopology* tt); + void fillEndcapRemap(TFile* rootFileHandle, const TrackerGeometry* theTrackerGeometry, const TrackerTopology* tt); + + const edm::ESGetToken geomToken_; + const edm::ESGetToken topoToken_; + const edm::ESGetToken tkDetMapToken_; + + edm::Service fs; + const edm::ParameterSet& iConfig; + + int m_opMode; + int m_analyzeMode; + + std::map m_bins; + std::vector m_detIdVector; + + const TkDetMap* m_tkdetmap; + + std::map m_stripHistnameMap; + std::map m_pixelHistnameMap; + std::map m_analyzeModeNameMap; + + std::string m_stripRemapFile; + std::string m_pixelRemapFile; + + std::string m_stripBaseDir, m_stripDesiredHistogram; + std::string m_pixelBaseDir, m_pixelDesiredHistogramBarrel, m_pixelDesiredHistogramDisk; + + std::string runString; + + TH2Poly* trackerMap{nullptr}; + + edm::EDGetTokenT rechitSrcToken; + edm::EDGetTokenT> digiSrcToken; + edm::EDGetTokenT> clusterSrcToken; +}; + +template +//***************************************************************// +void TrackerRemapper::analyzeGeneric(const edm::Event& iEvent, const edm::EDGetTokenT& src) +//***************************************************************// +{ + edm::Handle input; + iEvent.getByToken(src, input); + + if (!input.isValid()) { + edm::LogError("TrackerRemapper") << " not found... Aborting...\n"; + return; + } + + typename T::const_iterator it; + for (it = input->begin(); it != input->end(); ++it) { + auto id = DetId(it->detId()); + trackerMap->Fill(TString::Format("%ld", (long)id.rawId()), it->size()); + } +} + +template <> +//***************************************************************// +void TrackerRemapper::analyzeGeneric(const edm::Event& iEvent, const edm::EDGetTokenT& t) +//***************************************************************// +{ + analyzeRechits(iEvent, t); +} + +//***************************************************************// +TrackerRemapper::TrackerRemapper(const edm::ParameterSet& iConfig) + : geomToken_(esConsumes()), + topoToken_(esConsumes()), + tkDetMapToken_(esConsumes()), + iConfig(iConfig), + m_opMode(iConfig.getParameter("opMode")), + m_analyzeMode(iConfig.getParameter("analyzeMode")) { + usesResource("TFileService"); + + if (m_opMode == MODE_REMAP) { + m_stripRemapFile = iConfig.getParameter("stripRemapFile"); + m_stripDesiredHistogram = iConfig.getParameter("stripHistogram"); + runString = iConfig.getParameter("runString"); + + m_pixelRemapFile = std::string("DQM_V0001_PixelPhase1_R000305516.root"); + + m_stripBaseDir = std::string("DQMData/Run " + runString + "/SiStrip/Run summary/MechanicalView/"); + m_pixelBaseDir = std::string("DQMData/Run " + runString + "/PixelPhase1/Run summary/Phase1_MechanicalView/"); + + m_pixelDesiredHistogramBarrel = std::string("adc_per_SignedModule_per_SignedLadder"); + m_pixelDesiredHistogramDisk = std::string("adc_per_PXDisk_per_SignedBladePanel"); + + prepareStripNames(); + preparePixelNames(); + } else if (m_opMode == MODE_ANALYZE) { + m_analyzeModeNameMap[RECHITS] = "# Rechits"; + m_analyzeModeNameMap[DIGIS] = "# Digis"; + m_analyzeModeNameMap[CLUSTERS] = "# Clusters"; + + switch (m_analyzeMode) { + case RECHITS: + rechitSrcToken = consumes(iConfig.getParameter("src")); + break; + case DIGIS: + digiSrcToken = consumes>(iConfig.getParameter("src")); + break; + case CLUSTERS: + clusterSrcToken = consumes>(iConfig.getParameter("src")); + break; + default: + edm::LogError("LogicError") << "Unrecognized analyze mode!" << std::endl; + } + } else { + throw cms::Exception("TrackerRemapper") << "Unrecognized operations mode!" << std::endl; + } + + // TColor::SetPalette(1); +} + +//***************************************************************// +void TrackerRemapper::prepareStripNames() +//***************************************************************// +{ + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TIB_L1] = + m_stripBaseDir + "TIB/layer_1/" + m_stripDesiredHistogram + "_TIB_L1;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TIB_L2] = + m_stripBaseDir + "TIB/layer_2/" + m_stripDesiredHistogram + "_TIB_L2;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TIB_L3] = + m_stripBaseDir + "TIB/layer_3/" + m_stripDesiredHistogram + "_TIB_L3;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TIB_L4] = + m_stripBaseDir + "TIB/layer_4/" + m_stripDesiredHistogram + "_TIB_L4;1"; + + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TIDM_D1] = + m_stripBaseDir + "TID/MINUS/wheel_1/" + m_stripDesiredHistogram + "_TIDM_D1;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TIDM_D2] = + m_stripBaseDir + "TID/MINUS/wheel_2/" + m_stripDesiredHistogram + "_TIDM_D2;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TIDM_D3] = + m_stripBaseDir + "TID/MINUS/wheel_3/" + m_stripDesiredHistogram + "_TIDM_D3;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TIDP_D1] = + m_stripBaseDir + "TID/PLUS/wheel_1/" + m_stripDesiredHistogram + "_TIDP_D1;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TIDP_D2] = + m_stripBaseDir + "TID/PLUS/wheel_2/" + m_stripDesiredHistogram + "_TIDP_D2;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TIDP_D3] = + m_stripBaseDir + "TID/PLUS/wheel_3/" + m_stripDesiredHistogram + "_TIDP_D3;1"; + + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TOB_L1] = + m_stripBaseDir + "TOB/layer_1/" + m_stripDesiredHistogram + "_TOB_L1;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TOB_L2] = + m_stripBaseDir + "TOB/layer_2/" + m_stripDesiredHistogram + "_TOB_L2;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TOB_L3] = + m_stripBaseDir + "TOB/layer_3/" + m_stripDesiredHistogram + "_TOB_L3;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TOB_L4] = + m_stripBaseDir + "TOB/layer_4/" + m_stripDesiredHistogram + "_TOB_L4;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TOB_L5] = + m_stripBaseDir + "TOB/layer_5/" + m_stripDesiredHistogram + "_TOB_L5;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TOB_L6] = + m_stripBaseDir + "TOB/layer_6/" + m_stripDesiredHistogram + "_TOB_L6;1"; + + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TECM_W1] = + m_stripBaseDir + "TEC/MINUS/wheel_1/" + m_stripDesiredHistogram + "_TECM_W1;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TECM_W2] = + m_stripBaseDir + "TEC/MINUS/wheel_2/" + m_stripDesiredHistogram + "_TECM_W2;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TECM_W3] = + m_stripBaseDir + "TEC/MINUS/wheel_3/" + m_stripDesiredHistogram + "_TECM_W3;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TECM_W4] = + m_stripBaseDir + "TEC/MINUS/wheel_4/" + m_stripDesiredHistogram + "_TECM_W4;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TECM_W5] = + m_stripBaseDir + "TEC/MINUS/wheel_5/" + m_stripDesiredHistogram + "_TECM_W5;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TECM_W6] = + m_stripBaseDir + "TEC/MINUS/wheel_6/" + m_stripDesiredHistogram + "_TECM_W6;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TECM_W7] = + m_stripBaseDir + "TEC/MINUS/wheel_7/" + m_stripDesiredHistogram + "_TECM_W7;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TECM_W8] = + m_stripBaseDir + "TEC/MINUS/wheel_8/" + m_stripDesiredHistogram + "_TECM_W8;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TECM_W9] = + m_stripBaseDir + "TEC/MINUS/wheel_9/" + m_stripDesiredHistogram + "_TECM_W9;1"; + + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TECP_W1] = + m_stripBaseDir + "TEC/PLUS/wheel_1/" + m_stripDesiredHistogram + "_TECP_W1;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TECP_W2] = + m_stripBaseDir + "TEC/PLUS/wheel_2/" + m_stripDesiredHistogram + "_TECP_W2;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TECP_W3] = + m_stripBaseDir + "TEC/PLUS/wheel_3/" + m_stripDesiredHistogram + "_TECP_W3;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TECP_W4] = + m_stripBaseDir + "TEC/PLUS/wheel_4/" + m_stripDesiredHistogram + "_TECP_W4;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TECP_W5] = + m_stripBaseDir + "TEC/PLUS/wheel_5/" + m_stripDesiredHistogram + "_TECP_W5;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TECP_W6] = + m_stripBaseDir + "TEC/PLUS/wheel_6/" + m_stripDesiredHistogram + "_TECP_W6;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TECP_W7] = + m_stripBaseDir + "TEC/PLUS/wheel_7/" + m_stripDesiredHistogram + "_TECP_W7;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TECP_W8] = + m_stripBaseDir + "TEC/PLUS/wheel_8/" + m_stripDesiredHistogram + "_TECP_W8;1"; + m_stripHistnameMap[TkLayerMap::TkLayerEnum::TECP_W9] = + m_stripBaseDir + "TEC/PLUS/wheel_9/" + m_stripDesiredHistogram + "_TECP_W9;1"; +} + +//***************************************************************// +void TrackerRemapper::preparePixelNames() +//***************************************************************// +{ + m_pixelHistnameMap[PixelLayerEnum::PXB_L1] = + m_pixelBaseDir + "PXBarrel/" + m_pixelDesiredHistogramBarrel + "_PXLayer_1;1"; + m_pixelHistnameMap[PixelLayerEnum::PXB_L2] = + m_pixelBaseDir + "PXBarrel/" + m_pixelDesiredHistogramBarrel + "_PXLayer_2;1"; + m_pixelHistnameMap[PixelLayerEnum::PXB_L3] = + m_pixelBaseDir + "PXBarrel/" + m_pixelDesiredHistogramBarrel + "_PXLayer_3;1"; + m_pixelHistnameMap[PixelLayerEnum::PXB_L4] = + m_pixelBaseDir + "PXBarrel/" + m_pixelDesiredHistogramBarrel + "_PXLayer_4;1"; + + m_pixelHistnameMap[PixelLayerEnum::PXF_R1] = + m_pixelBaseDir + "PXForward/" + m_pixelDesiredHistogramDisk + "_PXRing_1;1"; + m_pixelHistnameMap[PixelLayerEnum::PXF_R2] = + m_pixelBaseDir + "PXForward/" + m_pixelDesiredHistogramDisk + "_PXRing_2;1"; +} + +TrackerRemapper::~TrackerRemapper() {} + +//***************************************************************// +void TrackerRemapper::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) +//***************************************************************// +{ + // get the ES products + + const TrackerGeometry* theTrackerGeometry = &iSetup.getData(geomToken_); + const TrackerTopology* tt = &iSetup.getData(topoToken_); + m_tkdetmap = &iSetup.getData(tkDetMapToken_); + + if (!trackerMap) + bookBins(); + + if (m_opMode == MODE_ANALYZE) { + switch (m_analyzeMode) { + case AnalyzeData::RECHITS: + analyzeGeneric(iEvent, rechitSrcToken); + break; + case AnalyzeData::DIGIS: + analyzeGeneric(iEvent, digiSrcToken); + break; + case AnalyzeData::CLUSTERS: + analyzeGeneric(iEvent, clusterSrcToken); + break; + default: + edm::LogError("LogicError") << "Unrecognized Analyze mode!" << std::endl; + return; + } + } else if (m_opMode == MODE_REMAP) { + fillStripRemap(); + fillPixelRemap(theTrackerGeometry, tt); + } +} + +//***************************************************************// +void TrackerRemapper::analyzeRechits(const edm::Event& iEvent, const edm::EDGetTokenT& src) +//***************************************************************// +{ + edm::Handle tracks; + iEvent.getByToken(src, tracks); + if (!tracks.isValid()) { + LogInfo("Analyzer") << "reco::TrackCollection not found... Aborting...\n"; + return; + } + + for (auto const& track : *tracks) { + auto recHitsBegin = track.recHitsBegin(); + for (unsigned i = 0; i < track.recHitsSize(); ++i) { + auto recHit = *(recHitsBegin + i); + if (!recHit->isValid()) + continue; + + DetId id = recHit->geographicalId(); + unsigned subdetId = id.subdetId(); + + //reject Pixel + if (subdetId == PixelSubdetector::PixelBarrel || subdetId == PixelSubdetector::PixelEndcap) + continue; + + // NRECHITS + trackerMap->Fill(TString::Format("%ld", (long)id.rawId()), 1); + } + } +} + +//***************************************************************// +void TrackerRemapper::bookBins() +//***************************************************************// +{ + // Read vertices from file + double minx = 0xFFFFFF, maxx = -0xFFFFFF, miny = 0xFFFFFF, maxy = -0xFFFFFFF; + readVertices(minx, maxx, miny, maxy); + + TObject* ghostObj = fs->make("ghost", "ghost", -1, 1, -1, 1); + + TDirectory* topDir = fs->getBareDirectory(); + topDir->cd(); + + int margin = 50; + std::string mapTitle; + switch (m_opMode) { + case MODE_ANALYZE: + mapTitle = std::string(m_analyzeModeNameMap[m_analyzeMode] + " - " + runString); + break; + case MODE_REMAP: + mapTitle = std::string(m_stripDesiredHistogram + " - " + runString); + break; + } + + trackerMap = new TH2Poly("Tracker Map", mapTitle.c_str(), minx - margin, maxx + margin, miny - margin, maxy + margin); + trackerMap->SetFloat(); + trackerMap->SetOption("COLZ"); + trackerMap->SetStats(false); + + for (auto pair : m_bins) { + trackerMap->AddBin(pair.second->Clone()); + } + + topDir->Add(trackerMap); + + ghostObj->Delete(); //not needed any more +} + +//***************************************************************// +void TrackerRemapper::readVertices(double& minx, double& maxx, double& miny, double& maxy) +//***************************************************************// +{ + std::ifstream in; + + // TPolyline vertices stored at https://github.com/cms-data/DQM-SiStripMonitorClient + in.open(edm::FileInPath("DQM/SiStripMonitorClient/data/Geometry/tracker_map_bare").fullPath().c_str()); + + unsigned count = 0; + + if (!in.good()) { + throw cms::Exception("TrackerRemapper") << "Error Reading File" << std::endl; + } + while (in.good()) { + long detid = 0; + double x[5], y[5]; + + std::string line; + std::getline(in, line); + ++count; + + TString string(line); + TObjArray* array = string.Tokenize(" "); + int ix{0}, iy{0}; + bool isPixel{false}; + for (int i = 0; i < array->GetEntries(); ++i) { + if (i == 0) { + detid = static_cast(array->At(i))->String().Atoll(); + + // Drop Pixel Data + DetId detId(detid); + if (detId.subdetId() == PixelSubdetector::PixelBarrel || detId.subdetId() == PixelSubdetector::PixelEndcap) { + isPixel = true; + break; + } + } else { + if (i % 2 == 0) { + x[ix] = static_cast(array->At(i))->String().Atof(); + + if (x[ix] < minx) + minx = x[ix]; + if (x[ix] > maxx) + maxx = x[ix]; + + ++ix; + } else { + y[iy] = static_cast(array->At(i))->String().Atof(); + + if (y[iy] < miny) + miny = y[iy]; + if (y[iy] > maxy) + maxy = y[iy]; + + ++iy; + } + } + } + + if (isPixel) + continue; + + m_detIdVector.push_back(detid); + m_bins[detid] = new TGraph(ix, x, y); + m_bins[detid]->SetName(TString::Format("%ld", detid)); + m_bins[detid]->SetTitle(TString::Format("Module ID=%ld", detid)); + } +} + +//***************************************************************// +void TrackerRemapper::fillStripRemap() +//***************************************************************// +{ + int nchX; + int nchY; + double lowX, highX; + double lowY, highY; + + TFile* rootFileHandle = new TFile(m_stripRemapFile.c_str()); + + for (int layer = TkLayerMap::TkLayerEnum::TIB_L1; layer <= TkLayerMap::TkLayerEnum::TECP_W9; ++layer) { + m_tkdetmap->getComponents(layer, nchX, lowX, highX, nchY, lowY, highY); + + const TProfile2D* histHandle = (TProfile2D*)rootFileHandle->Get(m_stripHistnameMap[layer].c_str()); + + if (!histHandle) { + edm::LogError("TrackerRemapper") << "Could not find histogram:\n\t" << m_stripHistnameMap[layer] << std::endl; + return; + } + + for (unsigned binx = 1; binx <= (unsigned)nchX; ++binx) { + for (unsigned biny = 1; biny <= (unsigned)nchY; ++biny) { + long rawid = m_tkdetmap->getDetFromBin(layer, binx, biny); + + if (rawid) //bin represents real module -> go to file + { + double val = histHandle->GetBinContent(binx, biny); + + // edm::LogInfo("TrackerRemapper") << rawid << " " << val << "\n"; + + trackerMap->Fill(TString::Format("%ld", rawid), val); + } + } + } + } + + rootFileHandle->Close(); +} + +//***************************************************************// +void TrackerRemapper::fillPixelRemap(const TrackerGeometry* theTrackerGeometry, const TrackerTopology* tt) +//***************************************************************// +{ + TFile* rootFileHandle = new TFile(m_pixelRemapFile.c_str()); + + if (!rootFileHandle) { + edm::LogError("TrackerRemapper") << "Could not find file:\n\t" << m_pixelRemapFile << std::endl; + return; + } + fillBarrelRemap(rootFileHandle, theTrackerGeometry, tt); + fillEndcapRemap(rootFileHandle, theTrackerGeometry, tt); + + rootFileHandle->Close(); +} + +//***************************************************************// +void TrackerRemapper::fillBarrelRemap(TFile* rootFileHandle, + const TrackerGeometry* theTrackerGeometry, + const TrackerTopology* tt) +//***************************************************************// +{ + TrackingGeometry::DetContainer pxb = theTrackerGeometry->detsPXB(); + + for (auto& i : pxb) { + const GeomDet* det = i; + + PXBDetId id = det->geographicalId(); + long rawid = id.rawId(); + + int module = tt->pxbModule(id); + int layer = tt->pxbLayer(id); + + int signedOnlineModule = module - 4; + if (signedOnlineModule <= 0) + --signedOnlineModule; + + PixelBarrelName pixelBarrelName = PixelBarrelName(id, tt, true); + int onlineShell = pixelBarrelName.shell(); + + int signedOnlineLadder = ((onlineShell & 1) ? -pixelBarrelName.ladderName() : pixelBarrelName.ladderName()); + + const TProfile2D* histHandle = (TProfile2D*)rootFileHandle->Get(m_pixelHistnameMap[layer].c_str()); + + unsigned nx = histHandle->GetNbinsX(); + unsigned ny = histHandle->GetNbinsY(); + + unsigned binX = signedOnlineModule + ((nx + 1) >> 1); + unsigned binY = (signedOnlineLadder) + ((ny + 1) >> 1); + + double val = histHandle->GetBinContent(binX, binY); + + trackerMap->Fill(TString::Format("%ld", rawid), val); + } +} + +//***************************************************************// +void TrackerRemapper::fillEndcapRemap(TFile* rootFileHandle, + const TrackerGeometry* theTrackerGeometry, + const TrackerTopology* tt) +//***************************************************************// +{ + TrackingGeometry::DetContainer pxf = theTrackerGeometry->detsPXF(); + + for (auto& i : pxf) { + const GeomDet* det = i; + + PXFDetId id = det->geographicalId(); + + int side = tt->side(id); + int disk = tt->layer(id); + + long rawid = id.rawId(); + + PixelEndcapName pixelEndcapName = PixelEndcapName(PXFDetId(rawid), tt, true); + + unsigned layer = pixelEndcapName.ringName() - 1 + PixelLayerEnum::PXF_R1; + const TProfile2D* histHandle = (TProfile2D*)rootFileHandle->Get(m_pixelHistnameMap[layer].c_str()); + + // ---- REMAP (Online -> Offline) + unsigned nx = histHandle->GetNbinsX(); + unsigned ny = histHandle->GetNbinsY(); + + int onlineBlade = pixelEndcapName.bladeName(); + bool isInnerOnlineBlade = !(pixelEndcapName.halfCylinder() & 1); // inner -> blade > 0 (?) + + int signedOnlineBlade = (isInnerOnlineBlade) ? onlineBlade : -onlineBlade; + int signedDisk = (side == 2) ? disk : -disk; + int pannel = pixelEndcapName.pannelName() - 1; + + unsigned binX = signedDisk + ((nx + 1) >> 1); + unsigned binY = (signedOnlineBlade * 2) + (ny >> 1); + + double val = histHandle->GetBinContent(binX, binY + pannel); + + trackerMap->Fill(TString::Format("%ld", rawid), val); + } +} + +void TrackerRemapper::beginJob() {} + +void TrackerRemapper::endJob() {} + +//***************************************************************// +void TrackerRemapper::fillDescriptions(edm::ConfigurationDescriptions& descriptions) +//***************************************************************// +{ + edm::ParameterSetDescription desc; + desc.setComment( + "Creates TH2Poly Strip Tracker maps by either analyzing the event or remapping exising DQM historams"); + desc.add("src", edm::InputTag("generalTracks")); + desc.ifValue(edm::ParameterDescription("opMode", 0, true), + 0 >> edm::EmptyGroupDescription() or + 1 >> (edm::ParameterDescription("stripRemapFile", "", true) and + edm::ParameterDescription("stripHistogram", "", true) and + edm::ParameterDescription("runString", "", true))) + ->setComment("0 for Analyze, 1 for Remap"); + + desc.ifValue(edm::ParameterDescription("analyzeMode", 1, true), edm::allowedValues(1, 2, 3)) + ->setComment("1=Rechits, 2=Digis, 3=Clusters"); + + //desc.add("analyzeMode", 1)->setComment("1=Rechits, 2=Digis, 3=Clusters"); + //desc.add("opMode", 0)->setComment("0 for Analyze, 1 for Remap"); + //desc.addOptional("stripRemapFile","" )->setComment("file name to analyze, will come from the config file"); + //desc.addOptional("stripHistogram","TkHMap_NumberValidHits" )->setComment("histogram to use to remap"); + //desc.addOptional("runString", "")->setComment("run number, will come form config file"); + descriptions.addWithDefaultLabel(desc); +} + +//define this as a plug-in +DEFINE_FWK_MODULE(TrackerRemapper); diff --git a/DQM/TrackerRemapper/src/Phase1PixelMaps.cc b/DQM/TrackerRemapper/src/Phase1PixelMaps.cc new file mode 100644 index 0000000000000..462fc8f197eda --- /dev/null +++ b/DQM/TrackerRemapper/src/Phase1PixelMaps.cc @@ -0,0 +1,464 @@ +#include "TH2Poly.h" +#include "TGraph.h" +#include "TH1.h" +#include "TH2.h" +#include "TStyle.h" +#include "TCanvas.h" + +#include +#include +#include +#include + +#include "FWCore/ParameterSet/interface/FileInPath.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "CalibTracker/StandaloneTrackerTopology/interface/StandaloneTrackerTopology.h" +#include "DQM/TrackerRemapper/interface/Phase1PixelMaps.h" + +// set option, but only if not already set +//============================================================================ +void Phase1PixelMaps::resetOption(const char* option) { + if (m_option != nullptr && !m_option[0]) { + m_option = option; + } else { + edm::LogError("Phase1PixelMaps") << "Option has already been set to " << m_option + << ". It's not possible to reset it."; + } +} + +//============================================================================ +void Phase1PixelMaps::bookBarrelHistograms(const std::string& currentHistoName, const char* what, const char* zaxis) { + std::string histName; + std::shared_ptr th2p; + + for (unsigned i = 0; i < 4; ++i) { + histName = "barrel_layer_"; + + th2p = std::make_shared( + (histName + std::to_string(i + 1)).c_str(), Form("PXBMap of %s - Layer %i", what, i + 1), -15.0, 15.0, 0.0, 5.0); + + th2p->SetFloat(); + + th2p->GetXaxis()->SetTitle("z [cm]"); + th2p->GetYaxis()->SetTitle("ladder"); + th2p->GetZaxis()->SetTitle(zaxis); + th2p->GetZaxis()->CenterTitle(); + th2p->SetStats(false); + th2p->SetOption(m_option); + pxbTh2PolyBarrel[currentHistoName].push_back(th2p); + } + + th2p = std::make_shared("barrel_summary", Form("Barrel Pixel Map of %s", what), -5.0, 5.0, 0.0, 15.0); + th2p->SetFloat(); + + th2p->GetXaxis()->SetTitle(""); + th2p->GetYaxis()->SetTitle(""); + th2p->GetZaxis()->SetTitle(zaxis); + th2p->GetZaxis()->CenterTitle(); + th2p->SetStats(false); + th2p->SetOption(m_option); + pxbTh2PolyBarrelSummary[currentHistoName] = th2p; +} + +//============================================================================ +void Phase1PixelMaps::bookForwardHistograms(const std::string& currentHistoName, const char* what, const char* zaxis) { + std::string histName; + std::shared_ptr th2p; + + for (unsigned side = 1; side <= 2; ++side) { + for (unsigned disk = 1; disk <= 3; ++disk) { + histName = "forward_disk_"; + + th2p = std::make_shared((histName + std::to_string((side == 1 ? -(int(disk)) : (int)disk))).c_str(), + Form("PXFMap of %s - Side %i Disk %i", what, side, disk), + -15.0, + 15.0, + -15.0, + 15.0); + th2p->SetFloat(); + th2p->GetXaxis()->SetTitle("x [cm]"); + th2p->GetYaxis()->SetTitle("y [cm]"); + th2p->GetZaxis()->SetTitle(zaxis); + th2p->GetZaxis()->CenterTitle(); + th2p->SetStats(false); + th2p->SetOption(m_option); + pxfTh2PolyForward[currentHistoName].push_back(th2p); + } + } + + th2p = std::make_shared("forward_summary", Form("Forward Pixel Map of %s", what), -40.0, 40.0, -20.0, 90.0); + th2p->SetFloat(); + + th2p->GetXaxis()->SetTitle(""); + th2p->GetYaxis()->SetTitle(""); + th2p->GetZaxis()->SetTitle(zaxis); + th2p->GetZaxis()->CenterTitle(); + th2p->SetStats(false); + th2p->SetOption(m_option); + pxfTh2PolyForwardSummary[currentHistoName] = th2p; +} + +//============================================================================ +void Phase1PixelMaps::bookBarrelBins(const std::string& currentHistoName) { + auto theIndexedCorners = this->retrieveCorners(m_cornersBPIX, 4); + + for (const auto& entry : theIndexedCorners) { + auto id = entry.first; + auto detid = DetId(id); + if (detid.subdetId() != PixelSubdetector::PixelBarrel) + continue; + + int layer = m_trackerTopo.pxbLayer(detid); + int ladder = m_trackerTopo.pxbLadder(detid); + + auto theVectX = entry.second.first; + auto theVectY = entry.second.second; + + float vertX[] = {theVectX[0], theVectX[1], theVectX[2], theVectX[3], theVectX[4]}; + float vertY[] = {(ladder - 1.0f), (ladder - 1.0f), (float)ladder, (float)ladder, (ladder - 1.0f)}; + + bins[id] = std::make_shared(5, vertX, vertY); + bins[id]->SetName(TString::Format("%u", id)); + + // Summary plot + for (unsigned k = 0; k < 5; ++k) { + vertX[k] += ((layer == 2 || layer == 3) ? 0.0f : -60.0f); + vertY[k] += ((layer > 2) ? 30.0f : 0.0f); + } + + binsSummary[id] = std::make_shared(5, vertX, vertY); + binsSummary[id]->SetName(TString::Format("%u", id)); + + if (pxbTh2PolyBarrel.find(currentHistoName) != pxbTh2PolyBarrel.end()) { + pxbTh2PolyBarrel[currentHistoName][layer - 1]->AddBin(bins[id]->Clone()); + } else { + throw cms::Exception("LogicError") << currentHistoName << " is not found in the Barrel map! Aborting."; + } + + if (pxbTh2PolyBarrelSummary.find(currentHistoName) != pxbTh2PolyBarrelSummary.end()) { + pxbTh2PolyBarrelSummary[currentHistoName]->AddBin(binsSummary[id]->Clone()); + } else { + throw cms::Exception("LocalError") << currentHistoName << " is not found in the Barrel Summary map! Aborting."; + } + } +} + +//============================================================================ +void Phase1PixelMaps::bookForwardBins(const std::string& currentHistoName) { + auto theIndexedCorners = this->retrieveCorners(m_cornersFPIX, 3); + + for (const auto& entry : theIndexedCorners) { + auto id = entry.first; + auto detid = DetId(id); + if (detid.subdetId() != PixelSubdetector::PixelEndcap) + continue; + + int disk = m_trackerTopo.pxfDisk(detid); + int side = m_trackerTopo.pxfSide(detid); + + unsigned mapIdx = disk + (side - 1) * 3 - 1; + + auto theVectX = entry.second.first; + auto theVectY = entry.second.second; + + float vertX[] = {theVectX[0], theVectX[1], theVectX[2], theVectX[3]}; + float vertY[] = {theVectY[0], theVectY[1], theVectY[2], theVectY[3]}; + + bins[id] = std::make_shared(4, vertX, vertY); + bins[id]->SetName(TString::Format("%u", id)); + + // Summary plot + for (unsigned k = 0; k < 4; ++k) { + vertX[k] += (float(side) - 1.5f) * 40.0f; + vertY[k] += (disk - 1) * 35.0f; + } + + binsSummary[id] = std::make_shared(4, vertX, vertY); + binsSummary[id]->SetName(TString::Format("%u", id)); + + if (pxfTh2PolyForward.find(currentHistoName) != pxfTh2PolyForward.end()) { + pxfTh2PolyForward[currentHistoName][mapIdx]->AddBin(bins[id]->Clone()); + } else { + throw cms::Exception("LogicError") << currentHistoName << " is not found in the Forward map! Aborting."; + } + + if (pxfTh2PolyForwardSummary.find(currentHistoName) != pxfTh2PolyForwardSummary.end()) { + pxfTh2PolyForwardSummary[currentHistoName]->AddBin(binsSummary[id]->Clone()); + } else { + throw cms::Exception("LogicError") << currentHistoName << " is not found in the Forward Summary map! Aborting."; + } + } +} + +//============================================================================ +void Phase1PixelMaps::fillBarrelBin(const std::string& currentHistoName, unsigned int id, double value) { + auto detid = DetId(id); + if (detid.subdetId() != PixelSubdetector::PixelBarrel) { + edm::LogError("Phase1PixelMaps") << "fillBarrelBin() The following detid " << id << " is not Pixel Barrel!" + << std::endl; + return; + } + int layer = m_trackerTopo.pxbLayer(id); + pxbTh2PolyBarrel[currentHistoName][layer - 1]->Fill(TString::Format("%u", id), value); + pxbTh2PolyBarrelSummary[currentHistoName]->Fill(TString::Format("%u", id), value); +} + +//============================================================================ +void Phase1PixelMaps::fillForwardBin(const std::string& currentHistoName, unsigned int id, double value) { + auto detid = DetId(id); + if (detid.subdetId() != PixelSubdetector::PixelEndcap) { + edm::LogError("Phase1PixelMaps") << "fillForwardBin() The following detid " << id << " is not Pixel Forward!" + << std::endl; + return; + } + int disk = m_trackerTopo.pxfDisk(id); + int side = m_trackerTopo.pxfSide(id); + unsigned mapIdx = disk + (side - 1) * 3 - 1; + pxfTh2PolyForward[currentHistoName][mapIdx]->Fill(TString::Format("%u", id), value); + pxfTh2PolyForwardSummary[currentHistoName]->Fill(TString::Format("%u", id), value); +} + +//============================================================================ +void Phase1PixelMaps::beautifyAllHistograms() { + for (const auto& vec : pxbTh2PolyBarrel) { + for (const auto& plot : vec.second) { + this->makeNicePlotStyle(plot.get()); + plot->GetXaxis()->SetTitleOffset(0.9); + plot->GetYaxis()->SetTitleOffset(0.9); + plot->GetZaxis()->SetTitleOffset(1.2); + plot->GetZaxis()->SetTitleSize(0.05); + } + } + + for (const auto& vec : pxfTh2PolyForward) { + for (const auto& plot : vec.second) { + this->makeNicePlotStyle(plot.get()); + plot->GetXaxis()->SetTitleOffset(0.9); + plot->GetYaxis()->SetTitleOffset(0.9); + plot->GetZaxis()->SetTitleOffset(1.2); + plot->GetZaxis()->SetTitleSize(0.05); + } + } +} + +//============================================================================ +void Phase1PixelMaps::setBarrelScale(const std::string& currentHistoName, std::pair extrema) { + for (auto& histo : pxbTh2PolyBarrel[currentHistoName]) { + histo->GetZaxis()->SetRangeUser(extrema.first, extrema.second); + } +} + +//============================================================================ +void Phase1PixelMaps::setForwardScale(const std::string& currentHistoName, std::pair extrema) { + for (auto& histo : pxfTh2PolyForward[currentHistoName]) { + histo->GetZaxis()->SetRangeUser(extrema.first, extrema.second); + } +} + +//============================================================================ +void Phase1PixelMaps::drawBarrelMaps(const std::string& currentHistoName, TCanvas& canvas, const char* drawOption) { + canvas.Divide(2, 2); + for (int i = 1; i <= 4; i++) { + canvas.cd(i); + if (strcmp(m_option, "text") == 0) { + canvas.cd(i)->SetRightMargin(0.02); + pxbTh2PolyBarrel[currentHistoName].at(i - 1)->SetMarkerColor(kRed); + } else { + if (m_autorescale) + rescaleAllBarrel(currentHistoName); + adjustCanvasMargins(canvas.cd(i), 0.07, 0.12, 0.10, 0.18); + } + if (drawOption) { + pxbTh2PolyBarrel[currentHistoName].at(i - 1)->Draw("L"); + pxbTh2PolyBarrel[currentHistoName].at(i - 1)->Draw(fmt::sprintf("%s%ssame", m_option, drawOption).c_str()); + } else { + pxbTh2PolyBarrel[currentHistoName].at(i - 1)->Draw("L"); + pxbTh2PolyBarrel[currentHistoName].at(i - 1)->Draw(fmt::sprintf("%ssame", m_option).c_str()); + } + } +} + +//============================================================================ +void Phase1PixelMaps::drawForwardMaps(const std::string& currentHistoName, TCanvas& canvas, const char* drawOption) { + canvas.Divide(3, 2); + for (int i = 1; i <= 6; i++) { + canvas.cd(i); + if (strcmp(m_option, "text") == 0) { + canvas.cd(i)->SetRightMargin(0.02); + pxfTh2PolyForward[currentHistoName].at(i - 1)->SetMarkerColor(kRed); + } else { + if (m_autorescale) + rescaleAllForward(currentHistoName); + adjustCanvasMargins(canvas.cd(i), 0.07, 0.12, 0.10, 0.18); + } + if (drawOption) { + pxfTh2PolyForward[currentHistoName].at(i - 1)->Draw("L"); + pxfTh2PolyForward[currentHistoName].at(i - 1)->Draw(fmt::sprintf("%s%ssame", m_option, drawOption).c_str()); + } else { + pxfTh2PolyForward[currentHistoName].at(i - 1)->Draw("L"); + pxfTh2PolyForward[currentHistoName].at(i - 1)->Draw(fmt::sprintf("%ssame", m_option).c_str()); + } + } +} + +//============================================================================ +void Phase1PixelMaps::drawSummaryMaps(const std::string& currentHistoName, TCanvas& canvas) { + canvas.Divide(2, 1); + canvas.cd(1); + adjustCanvasMargins(canvas.cd(1), 0.07, 0.02, 0.01, 0.05); + std::string temp(m_option); // create a std string + if (temp.find("text") != 0) { + pxbTh2PolyBarrelSummary[currentHistoName]->SetMarkerColor(kRed); + pxbTh2PolyBarrelSummary[currentHistoName]->SetMarkerSize(0.5); + } + pxbTh2PolyBarrelSummary[currentHistoName]->GetZaxis()->SetTitleOffset(1.4); + pxbTh2PolyBarrelSummary[currentHistoName]->Draw(); + + canvas.cd(2); + adjustCanvasMargins(canvas.cd(2), 0.07, 0.02, 0.01, 0.05); + if (temp.find("text") != 0) { + pxfTh2PolyForwardSummary[currentHistoName]->SetMarkerColor(kRed); + pxfTh2PolyForwardSummary[currentHistoName]->SetMarkerSize(0.5); + } + pxfTh2PolyForwardSummary[currentHistoName]->GetZaxis()->SetTitleOffset(1.4); + pxfTh2PolyForwardSummary[currentHistoName]->Draw(); +} + +//============================================================================ +const indexedCorners Phase1PixelMaps::retrieveCorners(const std::vector& cornerFiles, + const unsigned int reads) { + indexedCorners theOutMap; + + for (const auto& file : cornerFiles) { + auto cornerFileName = file.fullPath(); + std::ifstream cornerFile(cornerFileName.c_str()); + if (!cornerFile.good()) { + throw cms::Exception("FileError") << "Problem opening corner file: " << cornerFileName; + } + std::string line; + while (std::getline(cornerFile, line)) { + if (!line.empty()) { + std::istringstream iss(line); + unsigned int id; + std::string name; + std::vector corners(reads, ""); + std::vector xP, yP; + + iss >> id >> name; + for (unsigned int i = 0; i < reads; ++i) { + iss >> corners.at(i); + } + + LOGDEBUG("Phase1PixelMaps") << id << " : "; + for (unsigned int i = 0; i < reads; i++) { + // remove the leading and trailing " signs in the corners list + (corners[i]).erase(std::remove(corners[i].begin(), corners[i].end(), '"'), corners[i].end()); + LOGDEBUG("Phase1PixelMaps") << corners.at(i) << " "; + typedef boost::tokenizer> tokenizer; + boost::char_separator sep{","}; + tokenizer tok{corners.at(i), sep}; + for (const auto& t : tok | boost::adaptors::indexed(0)) { + if (t.index() == 0) { + xP.push_back(atof((t.value()).c_str())); + } else if (t.index() == 1) { + yP.push_back(atof((t.value()).c_str())); + } else { + edm::LogError("LogicError") << "There should not be any token with index " << t.index() << std::endl; + } + } + } + LOGDEBUG("Phase1PixelMaps") << std::endl; + + xP.push_back(xP.front()); + yP.push_back(yP.front()); + + for (unsigned int i = 0; i < xP.size(); i++) { + LOGDEBUG("Phase1PixelMaps") << "x[" << i << "]=" << xP[i] << " y[" << i << "]" << yP[i] << std::endl; + } + + theOutMap[id] = std::make_pair(xP, yP); + + } // if line is empty + } // loop on lines + } // loop on files + return theOutMap; +} + +//============================================================================ +void Phase1PixelMaps::makeNicePlotStyle(TH1* hist) { + hist->SetStats(kFALSE); + hist->SetLineWidth(2); + hist->GetXaxis()->CenterTitle(true); + hist->GetYaxis()->CenterTitle(true); + hist->GetXaxis()->SetTitleFont(42); + hist->GetYaxis()->SetTitleFont(42); + hist->GetXaxis()->SetTitleSize(0.05); + hist->GetYaxis()->SetTitleSize(0.05); + hist->GetXaxis()->SetTitleOffset(1.1); + hist->GetYaxis()->SetTitleOffset(1.3); + hist->GetXaxis()->SetLabelFont(42); + hist->GetYaxis()->SetLabelFont(42); + hist->GetYaxis()->SetLabelSize(.05); + hist->GetXaxis()->SetLabelSize(.05); + + if (hist->InheritsFrom(TH2::Class())) { + hist->GetZaxis()->SetLabelFont(42); + hist->GetZaxis()->SetLabelFont(42); + hist->GetZaxis()->SetLabelSize(.05); + hist->GetZaxis()->SetLabelSize(.05); + } +} + +//============================================================================ +void Phase1PixelMaps::adjustCanvasMargins(TVirtualPad* pad, float top, float bottom, float left, float right) { + if (top > 0) + pad->SetTopMargin(top); + if (bottom > 0) + pad->SetBottomMargin(bottom); + if (left > 0) + pad->SetLeftMargin(left); + if (right > 0) + pad->SetRightMargin(right); +} + +//============================================================================ +void Phase1PixelMaps::rescaleAllBarrel(const std::string& currentHistoName) { + std::vector maxima; + std::transform(pxbTh2PolyBarrel[currentHistoName].begin(), + pxbTh2PolyBarrel[currentHistoName].end(), + std::back_inserter(maxima), + [](std::shared_ptr thp) -> float { return thp->GetMaximum(); }); + std::vector minima; + std::transform(pxbTh2PolyBarrel[currentHistoName].begin(), + pxbTh2PolyBarrel[currentHistoName].end(), + std::back_inserter(minima), + [](std::shared_ptr thp) -> float { return thp->GetMinimum(); }); + + auto globalMax = *std::max_element(maxima.begin(), maxima.end()); + auto globalMin = *std::min_element(minima.begin(), minima.end()); + + for (auto& histo : pxbTh2PolyBarrel[currentHistoName]) { + histo->GetZaxis()->SetRangeUser(globalMin, globalMax); + } +} + +//============================================================================ +void Phase1PixelMaps::rescaleAllForward(const std::string& currentHistoName) { + std::vector maxima; + std::transform(pxfTh2PolyForward[currentHistoName].begin(), + pxfTh2PolyForward[currentHistoName].end(), + std::back_inserter(maxima), + [](std::shared_ptr thp) -> float { return thp->GetMaximum(); }); + std::vector minima; + std::transform(pxfTh2PolyForward[currentHistoName].begin(), + pxfTh2PolyForward[currentHistoName].end(), + std::back_inserter(minima), + [](std::shared_ptr thp) -> float { return thp->GetMinimum(); }); + + auto globalMax = *std::max_element(maxima.begin(), maxima.end()); + auto globalMin = *std::min_element(minima.begin(), minima.end()); + + for (auto& histo : pxfTh2PolyForward[currentHistoName]) { + histo->GetZaxis()->SetRangeUser(globalMin, globalMax); + } +} diff --git a/DQM/TrackerRemapper/src/Phase1PixelROCMaps.cc b/DQM/TrackerRemapper/src/Phase1PixelROCMaps.cc new file mode 100644 index 0000000000000..8692e1cbb01ff --- /dev/null +++ b/DQM/TrackerRemapper/src/Phase1PixelROCMaps.cc @@ -0,0 +1,633 @@ +#include "DQM/TrackerRemapper/interface/Phase1PixelROCMaps.h" + +using modBins = std::vector>; +using rocBins = std::vector>; + +// find detector coordinates for filling +/*--------------------------------------------------------------------*/ +DetCoordinates Phase1PixelROCMaps::findDetCoordinates(const uint32_t& t_detid) +/*--------------------------------------------------------------------*/ +{ + DetCoordinates coord; + + auto myDetId = DetId(t_detid); + int subid = DetId(t_detid).subdetId(); + + if (subid == PixelSubdetector::PixelBarrel) { + coord.m_layer = m_trackerTopo.pxbLayer(myDetId); + coord.m_s_ladder = this->signed_ladder(myDetId, true); + coord.m_s_module = this->signed_module(myDetId, true); + + bool isFlipped = this->isBPixOuterLadder(myDetId, false); + if ((coord.m_layer > 1 && coord.m_s_module < 0)) + isFlipped = !isFlipped; + + coord.m_isFlipped = isFlipped; + + } // if it's barrel + else if (subid == PixelSubdetector::PixelEndcap) { + coord.m_ring = this->ring(myDetId, true); + coord.m_s_blade = this->signed_blade(myDetId, true); + coord.m_s_disk = this->signed_disk(myDetId, true); + coord.m_panel = m_trackerTopo.pxfPanel(t_detid); + coord.m_isFlipped = (coord.m_s_disk > 0) ? (coord.m_panel == 1) : (coord.m_panel == 2); + } // it it's endcap + else { + throw cms::Exception("LogicError") << "Unknown Pixel SubDet ID " << std::endl; + } + + if (std::strcmp(m_option, kVerbose) == 0) { + coord.printCoordinates(); + } + + return coord; +} + +// overloaded method: mask entire module +/*--------------------------------------------------------------------*/ +modBins Phase1PixelROCMaps::maskedBarrelRocsToBins(DetCoordinates coord) +/*--------------------------------------------------------------------*/ +{ + modBins rocsToMask; + int nlad = nlad_list[coord.m_layer - 1]; + + int start_x = coord.m_s_module > 0 ? ((coord.m_s_module + 4) * 8) + 1 : ((4 - (std::abs(coord.m_s_module))) * 8) + 1; + int start_y = + coord.m_s_ladder > 0 ? ((coord.m_s_ladder + nlad) * 2) + 1 : ((nlad - (std::abs(coord.m_s_ladder))) * 2) + 1; + + int end_x = start_x + 7; + int end_y = start_y + 1; + + for (int bin_x = 1; bin_x <= 72; bin_x++) { + for (int bin_y = 1; bin_y <= (nlad * 4 + 2); bin_y++) { + if (bin_x >= start_x && bin_x <= end_x && bin_y >= start_y && bin_y <= end_y) { + rocsToMask.push_back(std::make_pair(bin_x, bin_y)); + } + } + } + return rocsToMask; +} + +// overloaded method: mask single ROCs +/*--------------------------------------------------------------------*/ +rocBins Phase1PixelROCMaps::maskedBarrelRocsToBins(DetCoordinates coord, std::bitset<16> myRocs) +/*--------------------------------------------------------------------*/ +{ + rocBins rocsToMask; + int nlad = nlad_list[coord.m_layer - 1]; + + int start_x = coord.m_s_module > 0 ? ((coord.m_s_module + 4) * 8) + 1 : ((4 - (std::abs(coord.m_s_module))) * 8) + 1; + int start_y = + coord.m_s_ladder > 0 ? ((coord.m_s_ladder + nlad) * 2) + 1 : ((nlad - (std::abs(coord.m_s_ladder))) * 2) + 1; + + int roc0_x = ((coord.m_layer == 1) || (coord.m_layer > 1 && coord.m_s_module > 0)) ? start_x + 7 : start_x; + int roc0_y = start_y - 1; + + size_t idx = 0; + while (idx < myRocs.size()) { + if (myRocs.test(idx)) { + ////////////////////////////////////////////////////////////////////////////////////// + // | // + // In BPix Layer1 and module>0 in L2,3,4 | In BPix Layer 2,3,4 module > 0 // + // | // + // ROCs are ordered in the following | ROCs are ordered in the following // + // fashion for unplipped modules | fashion for unplipped modules // + // | // + // +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ // + // | 8 |9 |10 |11 |12 |13 |14 |15 | | |15 |14 |13 |12 |11 |10 | 9 | 8 | // + // +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ // + // | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | // + // +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ // + // | // + // if the module is flipped the ordering | if the module is flipped the ordering // + // is reveresed | is reversed // + // | // + // +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ // + // | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | // + // +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ // + // | 8 | 9 |10 |11 |12 |13 |14 |15 | | |15 |14 |13 |12 |11 |10 | 9 | 8 | // + // +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ // + ////////////////////////////////////////////////////////////////////////////////////// + + int roc_x(0), roc_y(0); + + if ((coord.m_layer == 1) || (coord.m_layer > 1 && coord.m_s_module > 0)) { + if (!coord.m_isFlipped) { + roc_x = idx < 8 ? roc0_x - idx : (start_x - 8) + idx; + roc_y = idx < 8 ? roc0_y + 1 : roc0_y + 2; + } else { + roc_x = idx < 8 ? roc0_x - idx : (start_x - 8) + idx; + roc_y = idx < 8 ? roc0_y + 2 : roc0_y + 1; + } + } else { + if (!coord.m_isFlipped) { + roc_x = idx < 8 ? roc0_x + idx : (roc0_x + 7) - (idx - 8); + roc_y = idx < 8 ? roc0_y + 1 : roc0_y + 2; + } else { + roc_x = idx < 8 ? roc0_x + idx : (roc0_x + 7) - (idx - 8); + roc_y = idx < 8 ? roc0_y + 2 : roc0_y + 1; + } + } + rocsToMask.push_back(std::make_tuple(roc_x, roc_y, idx)); + } + ++idx; + } + return rocsToMask; +} + +// overloaded method: mask entire module +/*--------------------------------------------------------------------*/ +modBins Phase1PixelROCMaps::maskedForwardRocsToBins(DetCoordinates coord) +/*--------------------------------------------------------------------*/ +{ + modBins rocsToMask; + int nybins = nybins_list[coord.m_ring - 1]; + + int start_x = coord.m_s_disk > 0 ? ((coord.m_s_disk + 3) * 8) + 1 : ((3 - (std::abs(coord.m_s_disk))) * 8) + 1; + int start_y = coord.m_s_blade > 0 ? (nybins / 2) + (coord.m_s_blade * 4) - (coord.m_panel * 2) + 3 + : ((nybins / 2) - (std::abs(coord.m_s_blade) * 4) - coord.m_panel * 2) + 3; + + int end_x = start_x + 7; + int end_y = start_y + 1; + + for (int bin_x = 1; bin_x <= 56; bin_x++) { + for (int bin_y = 1; bin_y <= nybins; bin_y++) { + if (bin_x >= start_x && bin_x <= end_x && bin_y >= start_y && bin_y <= end_y) { + rocsToMask.push_back(std::make_pair(bin_x, bin_y)); + } + } + } + return rocsToMask; +} + +// overloaded method: mask single ROCs +/*--------------------------------------------------------------------*/ +rocBins Phase1PixelROCMaps::maskedForwardRocsToBins(DetCoordinates coord, std::bitset<16> myRocs) +/*--------------------------------------------------------------------*/ +{ + rocBins rocsToMask; + int nybins = nybins_list[coord.m_ring - 1]; + + int start_x = coord.m_s_disk > 0 ? ((coord.m_s_disk + 3) * 8) + 1 : ((3 - (std::abs(coord.m_s_disk))) * 8) + 1; + int start_y = coord.m_s_blade > 0 ? (nybins / 2) + (coord.m_s_blade * 4) - (coord.m_panel * 2) + 3 + : ((nybins / 2) - (std::abs(coord.m_s_blade) * 4) - coord.m_panel * 2) + 3; + + int roc0_x = coord.m_s_disk > 0 ? start_x + 7 : start_x; + int roc0_y = start_y - 1; + + size_t idx = 0; + while (idx < myRocs.size()) { + if (myRocs.test(idx)) { + int roc_x(0), roc_y(0); + + ////////////////////////////////////////////////////////////////////////////////////// + // | // + // In FPix + (Disk 1,2,3) | In FPix - (Disk -1,-2,-3) // + // | // + // ROCs are ordered in the following | ROCs are ordered in the following // + // fashion for unplipped modules | fashion for unplipped modules // + // | // + // +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ // + // | 8 |9 |10 |11 |12 |13 |14 |15 | | |15 |14 |13 |12 |11 |10 | 9 | 8 | // + // +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ // + // | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | // + // +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ // + // | // + // if the module is flipped the ordering | if the module is flipped the ordering // + // is reveresed | is reversed // + // | // + // +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ // + // | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 | | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | // + // +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ // + // | 8 | 9 |10 |11 |12 |13 |14 |15 | | |15 |14 |13 |12 |11 |10 | 9 | 8 | // + // +---+---+---+---+---+---+---+---+ | +---+---+---+---+---+---+---+---+ // + ////////////////////////////////////////////////////////////////////////////////////// + + if (coord.m_s_disk > 0) { + if (!coord.m_isFlipped) { + roc_x = idx < 8 ? roc0_x - idx : (start_x - 8) + idx; + roc_y = idx < 8 ? roc0_y + 1 : roc0_y + 2; + } else { + roc_x = idx < 8 ? roc0_x - idx : (start_x - 8) + idx; + roc_y = idx < 8 ? roc0_y + 2 : roc0_y + 1; + } + } else { + if (!coord.m_isFlipped) { + roc_x = idx < 8 ? roc0_x + idx : (roc0_x + 7) - (idx - 8); + roc_y = idx < 8 ? roc0_y + 1 : roc0_y + 2; + } else { + roc_x = idx < 8 ? roc0_x + idx : (roc0_x + 7) - (idx - 8); + roc_y = idx < 8 ? roc0_y + 2 : roc0_y + 1; + } + } + + rocsToMask.push_back(std::make_tuple(roc_x, roc_y, idx)); + } + ++idx; + } + return rocsToMask; +} + +/*--------------------------------------------------------------------*/ +void Phase1PixelROCMaps::fillWholeModule(const uint32_t& detid, double value) +/*--------------------------------------------------------------------*/ +{ + auto coord = findDetCoordinates(detid); + auto rocsToMark = coord.isBarrel() ? this->maskedBarrelRocsToBins(coord) : this->maskedForwardRocsToBins(coord); + + if (coord.isBarrel()) { + for (const auto& bin : rocsToMark) { + double x = h_bpix_maps[coord.m_layer - 1]->GetXaxis()->GetBinCenter(bin.first); + double y = h_bpix_maps[coord.m_layer - 1]->GetYaxis()->GetBinCenter(bin.second); + h_bpix_maps[coord.m_layer - 1]->Fill(x, y, value); + } + } else { + for (const auto& bin : rocsToMark) { + double x = h_fpix_maps[coord.m_ring - 1]->GetXaxis()->GetBinCenter(bin.first); + double y = h_fpix_maps[coord.m_ring - 1]->GetYaxis()->GetBinCenter(bin.second); + h_fpix_maps[coord.m_ring - 1]->Fill(x, y, value); + } + } + return; +} + +/*--------------------------------------------------------------------*/ +void Phase1PixelROCMaps::fillSelectedRocs(const uint32_t& detid, const std::bitset<16>& theROCs, double value) +/*--------------------------------------------------------------------*/ +{ + auto coord = findDetCoordinates(detid); + auto rocsToMark = + coord.isBarrel() ? this->maskedBarrelRocsToBins(coord, theROCs) : this->maskedForwardRocsToBins(coord, theROCs); + + if (coord.isBarrel()) { + for (const auto& bin : rocsToMark) { + double x = h_bpix_maps[coord.m_layer - 1]->GetXaxis()->GetBinCenter(std::get<0>(bin)); + double y = h_bpix_maps[coord.m_layer - 1]->GetYaxis()->GetBinCenter(std::get<1>(bin)); + h_bpix_maps[coord.m_layer - 1]->Fill(x, y, value); + } + } else { + for (const auto& bin : rocsToMark) { + double x = h_fpix_maps[coord.m_ring - 1]->GetXaxis()->GetBinCenter(std::get<0>(bin)); + double y = h_fpix_maps[coord.m_ring - 1]->GetYaxis()->GetBinCenter(std::get<1>(bin)); + h_fpix_maps[coord.m_ring - 1]->Fill(x, y, value); + } + } + + return; +} + +/*--------------------------------------------------------------------*/ +void PixelROCMapHelper::draw_line( + double x1, double x2, double y1, double y2, int width = 2, int style = 1, int color = 1) +/*--------------------------------------------------------------------*/ +{ + TLine* l = new TLine(x1, y1, x2, y2); + l->SetBit(kCanDelete); + l->SetLineWidth(width); + l->SetLineStyle(style); + l->SetLineColor(color); + l->Draw(); +} + +/*--------------------------------------------------------------------*/ +void PixelROCMapHelper::dress_plot(TCanvas& canv, + TH2* h, + int lay, + int ring = 0, + int phase = 0, + bool half_shift = true, + bool mark_zero = true, + bool standard_palette = true) +/*--------------------------------------------------------------------*/ +{ + std::string s_title; + + if (lay > 0) { + canv.cd(lay); + s_title = "Barrel Pixel Layer " + std::to_string(lay); + } else { + canv.cd(ring); + if (ring > 4) { + ring = ring - 4; + } + s_title = "Forward Pixel Ring " + std::to_string(ring); + } + + gStyle->SetPadRightMargin(0.125); + + if (standard_palette) { + gStyle->SetPalette(1); + } else { + // this is the fine gradient palette + const Int_t NRGBs = 5; + const Int_t NCont = 255; + + Double_t stops[NRGBs] = {0.00, 0.34, 0.61, 0.84, 1.00}; + Double_t red[NRGBs] = {0.00, 0.00, 0.87, 1.00, 0.51}; + Double_t green[NRGBs] = {0.00, 0.81, 1.00, 0.20, 0.00}; + Double_t blue[NRGBs] = {0.51, 1.00, 0.12, 0.00, 0.00}; + TColor::CreateGradientColorTable(NRGBs, stops, red, green, blue, NCont); + gStyle->SetNumberContours(NCont); + } + + h->SetMarkerSize(0.7); + h->Draw("colz1"); + + auto ltx = TLatex(); + ltx.SetTextFont(62); + ltx.SetTextColor(1); + ltx.SetTextSize(0.06); + ltx.SetTextAlign(31); + ltx.DrawLatexNDC(1 - gPad->GetRightMargin(), 1 - gPad->GetTopMargin() + 0.01, (s_title).c_str()); + + // Draw Lines around modules + if (lay > 0) { + std::vector> nladder = {{10, 16, 22}, {6, 14, 22, 32}}; + int nlad = nladder[phase][lay - 1]; + for (int xsign = -1; xsign <= 1; xsign += 2) + for (int ysign = -1; ysign <= 1; ysign += 2) { + float xlow = xsign * (half_shift * 0.5); + float xhigh = xsign * (half_shift * 0.5 + 4); + float ylow = ysign * (half_shift * 0.5 + (phase == 0) * 0.5); + float yhigh = ysign * (half_shift * 0.5 - (phase == 0) * 0.5 + nlad); + // Outside box + PixelROCMapHelper::draw_line(xlow, xhigh, ylow, ylow, 1); // bottom + PixelROCMapHelper::draw_line(xlow, xhigh, yhigh, yhigh, 1); // top + PixelROCMapHelper::draw_line(xlow, xlow, ylow, yhigh, 1); // left + PixelROCMapHelper::draw_line(xhigh, xhigh, ylow, yhigh, 1); // right + // Inner Horizontal lines + for (int lad = 1; lad < nlad; ++lad) { + float y = ysign * (lad + half_shift * 0.5); + PixelROCMapHelper::draw_line(xlow, xhigh, y, y, 1); + } + for (int lad = 1; lad <= nlad; ++lad) + if (!(phase == 0 && (lad == 1 || lad == nlad))) { + float y = ysign * (lad + half_shift * 0.5 - 0.5); + PixelROCMapHelper::draw_line(xlow, xhigh, y, y, 1, 3); + } + // Inner Vertical lines + for (int mod = 1; mod < 4; ++mod) { + float x = xsign * (mod + half_shift * 0.5); + PixelROCMapHelper::draw_line(x, x, ylow, yhigh, 1); + } + // Make a BOX around ROC 0 + // Phase 0 - ladder +1 is always non-flipped + // Phase 1 - ladder +1 is always flipped + if (mark_zero) { + for (int mod = 1; mod <= 4; ++mod) + for (int lad = 1; lad <= nlad; ++lad) { + bool flipped = ysign == 1 ? lad % 2 == 0 : lad % 2 == 1; + if (phase == 1) + flipped = !flipped; + int roc0_orientation = flipped ? -1 : 1; + if (xsign == -1) + roc0_orientation *= -1; + if (ysign == -1) + roc0_orientation *= -1; + float x1 = xsign * (mod + half_shift * 0.5); + float x2 = xsign * (mod + half_shift * 0.5 - 1. / 8); + float y1 = ysign * (lad + half_shift * 0.5 - 0.5); + float y2 = ysign * (lad + half_shift * 0.5 - 0.5 + roc0_orientation * 1. / 2); + if (!(phase == 0 && (lad == 1 || lad == nlad) && xsign == -1)) { + if (lay == 1 && xsign <= -1) { + float x1 = xsign * ((mod - 1) + half_shift * 0.5); + float x2 = xsign * ((mod - 1) + half_shift * 0.5 + 1. / 8); + float y1 = ysign * (lad + half_shift * 0.5 - 0.5 + roc0_orientation); + float y2 = ysign * (lad + half_shift * 0.5 - 0.5 + roc0_orientation * 3. / 2); + PixelROCMapHelper::draw_line(x1, x2, y1, y1, 1); + PixelROCMapHelper::draw_line(x2, x2, y1, y2, 1); + } else { + PixelROCMapHelper::draw_line(x1, x2, y1, y1, 1); + //PixelROCMapHelper::draw_line(x1, x2, y2, y2, 1); + //PixelROCMapHelper::draw_line(x1, x1, y1, y2, 1); + PixelROCMapHelper::draw_line(x2, x2, y1, y2, 1); + } + } + } + } + } + } else { + // FPIX + for (int dsk = 1, ndsk = 2 + (phase == 1); dsk <= ndsk; ++dsk) { + for (int xsign = -1; xsign <= 1; xsign += 2) + for (int ysign = -1; ysign <= 1; ysign += 2) { + if (phase == 0) { + int first_roc = 3, nbin = 16; + for (int bld = 1, nbld = 12; bld <= nbld; ++bld) { + // Horizontal lines + for (int plq = 1, nplq = 7; plq <= nplq; ++plq) { + float xlow = + xsign * (half_shift * 0.5 + dsk - 1 + (first_roc - 3 + 2 * plq + (plq == 1)) / (float)nbin); + float xhigh = + xsign * (half_shift * 0.5 + dsk - 1 + (first_roc - 3 + 2 * (plq + 1) - (plq == 7)) / (float)nbin); + float ylow = ysign * (half_shift * 0.5 + (bld - 0.5) - (2 + plq / 2) * 0.1); + float yhigh = ysign * (half_shift * 0.5 + (bld - 0.5) + (2 + plq / 2) * 0.1); + PixelROCMapHelper::draw_line(xlow, xhigh, ylow, ylow, 1); // bottom + PixelROCMapHelper::draw_line(xlow, xhigh, yhigh, yhigh, 1); // top + } + // Vertical lines + for (int plq = 1, nplq = 7 + 1; plq <= nplq; ++plq) { + float x = xsign * (half_shift * 0.5 + dsk - 1 + + (first_roc - 3 + 2 * plq + (plq == 1) - (plq == 8)) / (float)nbin); + float ylow = ysign * (half_shift * 0.5 + (bld - 0.5) - (2 + (plq - (plq == 8)) / 2) * 0.1); + float yhigh = ysign * (half_shift * 0.5 + (bld - 0.5) + (2 + (plq - (plq == 8)) / 2) * 0.1); + PixelROCMapHelper::draw_line(x, x, ylow, yhigh, 1); + } + // Panel 2 has dashed mid-plane + for (int plq = 2, nplq = 6; plq <= nplq; ++plq) + if (plq % 2 == 0) { + float x = xsign * (half_shift * 0.5 + dsk - 1 + + (first_roc - 3 + 2 * plq + (plq == 1) - (plq == 8) + 1) / (float)nbin); + float ylow = ysign * (half_shift * 0.5 + (bld - 0.5) - (2 + (plq - (plq == 8)) / 2) * 0.1); + float yhigh = ysign * (half_shift * 0.5 + (bld - 0.5) + (2 + (plq - (plq == 8)) / 2) * 0.1); + PixelROCMapHelper::draw_line(x, x, ylow, yhigh, 1, 2); + } + // Make a BOX around ROC 0 + for (int plq = 1, nplq = 7; plq <= nplq; ++plq) { + float x1 = xsign * (half_shift * 0.5 + dsk - 1 + (first_roc - 3 + 2 * plq + (plq == 1)) / (float)nbin); + float x2 = + xsign * (half_shift * 0.5 + dsk - 1 + (first_roc - 3 + 2 * plq + (plq == 1) + 1) / (float)nbin); + int sign = xsign * ysign * ((plq % 2) ? 1 : -1); + float y1 = ysign * (half_shift * 0.5 + (bld - 0.5) + sign * (2 + plq / 2) * 0.1); + float y2 = ysign * (half_shift * 0.5 + (bld - 0.5) + sign * (plq / 2) * 0.1); + //PixelROCMapHelper::draw_line(x1, x2, y1, y1, 1); + PixelROCMapHelper::draw_line(x1, x2, y2, y2, 1); + //PixelROCMapHelper::draw_line(x1, x1, y1, y2, 1); + PixelROCMapHelper::draw_line(x2, x2, y1, y2, 1); + } + } + } else if (phase == 1) { + if (ring == 0) { // both + for (int ring = 1; ring <= 2; ++ring) + for (int bld = 1, nbld = 5 + ring * 6; bld <= nbld; ++bld) { + float scale = (ring == 1) ? 1.5 : 1; + Color_t p1_color = 1, p2_color = 1; + // Horizontal lines + // Panel 2 has dashed mid-plane + float x1 = xsign * (half_shift * 0.5 + dsk - 1 + (ring - 1) * 0.5); + float x2 = xsign * (half_shift * 0.5 + dsk - 1 + ring * 0.5); + int sign = ysign; + float y1 = ysign * (half_shift * 0.5 - 0.5 + scale * bld + sign * 0.5); + //float yp1_mid = ysign * (half_shift*0.5 - 0.5 + scale*bld + sign*0.25); + float y2 = ysign * (half_shift * 0.5 - 0.5 + scale * bld); + float yp2_mid = ysign * (half_shift * 0.5 - 0.5 + scale * bld - sign * 0.25); + float y3 = ysign * (half_shift * 0.5 - 0.5 + scale * bld - sign * 0.5); + PixelROCMapHelper::draw_line(x1, x2, y1, y1, 1, 1, p1_color); + //PixelROCMapHelper::draw_line(x1, x2, yp1_mid, yp1_mid, 1, 3); + PixelROCMapHelper::draw_line(x1, x2, y2, y2, 1, 1, p1_color); + PixelROCMapHelper::draw_line(x1, x2, yp2_mid, yp2_mid, 1, 2); + PixelROCMapHelper::draw_line(x1, x2, y3, y3, 1, 1, p2_color); + // Vertical lines + float x = xsign * (half_shift * 0.5 + dsk - 1 + (ring - 1) * 0.5); + PixelROCMapHelper::draw_line(x, x, y1, y2, 1, 1, p1_color); + PixelROCMapHelper::draw_line(x, x, y2, y3, 1, 1, p2_color); + if (ring == 2) { + //PixelROCMapHelper::draw_line(x, x, y2, y3, 1, 1, p1_color); + x = xsign * (half_shift * 0.5 + dsk); + PixelROCMapHelper::draw_line(x, x, y1, y2, 1, 1, p1_color); + PixelROCMapHelper::draw_line(x, x, y2, y3, 1, 1, p2_color); + } + // Make a BOX around ROC 0 + x1 = xsign * (half_shift * 0.5 + dsk - 1 + ring * 0.5 - 1 / 16.); + x2 = xsign * (half_shift * 0.5 + dsk - 1 + ring * 0.5); + float y1_p1 = ysign * (half_shift * 0.5 - 0.5 + scale * bld + sign * 0.25); + float y2_p1 = ysign * (half_shift * 0.5 - 0.5 + scale * bld + sign * 0.25 + xsign * ysign * 0.25); + PixelROCMapHelper::draw_line(x1, x2, y1_p1, y1_p1, 1); + //PixelROCMapHelper::draw_line(x1, x2, y2_p1, y2_p1, 1); + PixelROCMapHelper::draw_line(x1, x1, y1_p1, y2_p1, 1); + //PixelROCMapHelper::draw_line(x2, x2, y1_p1, y2_p1, 1); + float y1_p2 = ysign * (half_shift * 0.5 - 0.5 + scale * bld - sign * 0.25); + float y2_p2 = ysign * (half_shift * 0.5 - 0.5 + scale * bld - sign * 0.25 - xsign * ysign * 0.25); + PixelROCMapHelper::draw_line(x1, x2, y1_p2, y1_p2, 1); + //PixelROCMapHelper::draw_line(x1, x2, y2_p2, y2_p2, 1); + PixelROCMapHelper::draw_line(x1, x1, y1_p2, y2_p2, 1); + //PixelROCMapHelper::draw_line(x2, x2, y1_p2, y2_p2, 1); + } + } else { // only one ring, 1 or 2 + for (int bld = 1, nbld = 5 + ring * 6; bld <= nbld; ++bld) { + Color_t p1_color = 1, p2_color = 1; + // Horizontal lines + // Panel 2 has dashed mid-plane + float x1 = xsign * (half_shift * 0.5 + dsk - 1); + float x2 = xsign * (half_shift * 0.5 + dsk); + int sign = ysign; + float y1 = ysign * (half_shift * 0.5 - 0.5 + bld + sign * 0.5); + //float yp1_mid = ysign * (half_shift*0.5 - 0.5 + bld + sign*0.25); + float y2 = ysign * (half_shift * 0.5 - 0.5 + bld); + float yp2_mid = ysign * (half_shift * 0.5 - 0.5 + bld - sign * 0.25); + float y3 = ysign * (half_shift * 0.5 - 0.5 + bld - sign * 0.5); + PixelROCMapHelper::draw_line(x1, x2, y1, y1, 1, 1, p1_color); + //PixelROCMapHelper::draw_line(x1, x2, yp1_mid, yp1_mid, 1, 3); + PixelROCMapHelper::draw_line(x1, x2, y2, y2, 1, 1, p1_color); + PixelROCMapHelper::draw_line(x1, x2, yp2_mid, yp2_mid, 1, 2); + PixelROCMapHelper::draw_line(x1, x2, y3, y3, 1, 1, p2_color); + // Vertical lines + float x = xsign * (half_shift * 0.5 + dsk - 1); + PixelROCMapHelper::draw_line(x, x, y1, y2, 1, 1, p1_color); + PixelROCMapHelper::draw_line(x, x, y2, y3, 1, 1, p2_color); + if (ring == 2) { + //PixelROCMapHelper::draw_line(x, x, y2, y3, 1, 1, p1_color); + x = xsign * (half_shift * 0.5 + dsk); + PixelROCMapHelper::draw_line(x, x, y1, y2, 1, 1, p1_color); + PixelROCMapHelper::draw_line(x, x, y2, y3, 1, 1, p2_color); + } + // Make a BOX around ROC 0 + x1 = xsign * (half_shift * 0.5 + dsk - 1 / 8.); + x2 = xsign * (half_shift * 0.5 + dsk); + float y1_p1 = ysign * (half_shift * 0.5 - 0.5 + bld + sign * 0.25); + float y2_p1 = ysign * (half_shift * 0.5 - 0.5 + bld + sign * 0.25 + xsign * ysign * 0.25); + PixelROCMapHelper::draw_line(x1, x2, y1_p1, y1_p1, 1); + //PixelROCMapHelper::draw_line(x1, x2, y2_p1, y2_p1, 1); + PixelROCMapHelper::draw_line(x1, x1, y1_p1, y2_p1, 1); + //PixelROCMapHelper::draw_line(x2, x2, y1_p1, y2_p1, 1); + float y1_p2 = ysign * (half_shift * 0.5 - 0.5 + bld - sign * 0.25); + float y2_p2 = ysign * (half_shift * 0.5 - 0.5 + bld - sign * 0.25 - xsign * ysign * 0.25); + PixelROCMapHelper::draw_line(x1, x2, y1_p2, y1_p2, 1); + //PixelROCMapHelper::draw_line(x1, x2, y2_p2, y2_p2, 1); + PixelROCMapHelper::draw_line(x1, x1, y1_p2, y2_p2, 1); + //PixelROCMapHelper::draw_line(x2, x2, y1_p2, y2_p2, 1); + } + } + } + } + } + // Special shifted "rebin" for Phase 0 + // Y axis should always have at least half-roc granularity because + // there are half-ROC size shifts implemented in the coordinates + // To remove this and show full ROC granularity + // We merge bin contents in each pair of bins corresponding to one ROC + // TODO: make sure this works for Profiles + if (phase == 0 && h->GetNbinsY() == 250 && h->GetNbinsX() == 80) { + int nentries = h->GetEntries(); + for (int binx = 1; binx <= 80; ++binx) { + double sum = 0; + for (int biny = 1; biny <= 250; ++biny) { + bool odd_nrocy = (binx - 1 < 40) != (((binx - 1) / 4) % 2); + if (biny % 2 == odd_nrocy) + sum += h->GetBinContent(binx, biny); + else { + sum += h->GetBinContent(binx, biny); + if (sum) { + h->SetBinContent(binx, biny, sum); + h->SetBinContent(binx, biny - 1, sum); + } + sum = 0; + } + } + } + h->SetEntries(nentries); + } + } +} + +/*--------------------------------------------------------------------*/ +void Phase1PixelROCMaps::drawBarrelMaps(TCanvas& canvas) +/*--------------------------------------------------------------------*/ +{ + canvas.Divide(2, 2); + canvas.SetBottomMargin(0.11); + canvas.SetLeftMargin(0.13); + canvas.SetRightMargin(0.05); + canvas.Modified(); + for (unsigned int lay = 1; lay <= n_layers; lay++) { + PixelROCMapHelper::dress_plot(canvas, h_bpix_maps[lay - 1].get(), lay, 0, 1); + } +} + +/*--------------------------------------------------------------------*/ +void Phase1PixelROCMaps::drawForwardMaps(TCanvas& canvas) +/*--------------------------------------------------------------------*/ +{ + canvas.Divide(2, 1); + canvas.SetBottomMargin(0.11); + canvas.SetLeftMargin(0.13); + canvas.SetRightMargin(0.05); + canvas.Modified(); + for (unsigned int ring = 1; ring <= n_rings; ring++) { + PixelROCMapHelper::dress_plot(canvas, h_fpix_maps[ring - 1].get(), 0, ring, 1); + } +} + +/*--------------------------------------------------------------------*/ +void Phase1PixelROCMaps::drawMaps(TCanvas& canvas) +/*--------------------------------------------------------------------*/ +{ + canvas.Divide(2, 3); + canvas.SetBottomMargin(0.11); + canvas.SetLeftMargin(0.13); + canvas.SetRightMargin(0.05); + canvas.Modified(); + + // dress the plots + for (unsigned int lay = 1; lay <= n_layers; lay++) { + PixelROCMapHelper::dress_plot(canvas, h_bpix_maps[lay - 1].get(), lay, 0, 1); + } + + canvas.Update(); + canvas.Modified(); + canvas.cd(); + + for (unsigned int ring = 1; ring <= n_rings; ring++) { + PixelROCMapHelper::dress_plot(canvas, h_fpix_maps[ring - 1].get(), 0, n_layers + ring, 1); + } +} diff --git a/DQM/TrackerRemapper/src/Phase1PixelSummaryMap.cc b/DQM/TrackerRemapper/src/Phase1PixelSummaryMap.cc new file mode 100644 index 0000000000000..fc3a2f48f3588 --- /dev/null +++ b/DQM/TrackerRemapper/src/Phase1PixelSummaryMap.cc @@ -0,0 +1,217 @@ +#include "TArrow.h" +#include "TCanvas.h" +#include "TGraph.h" +#include "TH1.h" +#include "TH2.h" +#include "TH2Poly.h" +#include "TLatex.h" +#include "TStyle.h" + +#include +#include +#include +#include +#include + +#include "FWCore/ParameterSet/interface/FileInPath.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "CalibTracker/StandaloneTrackerTopology/interface/StandaloneTrackerTopology.h" +#include "DQM/TrackerRemapper/interface/Phase1PixelSummaryMap.h" + +// set option, but only if not already set +//============================================================================ +void Phase1PixelSummaryMap::resetOption(const char* option) { + if (m_option != nullptr && !m_option[0]) { + m_option = option; + } else { + edm::LogError("Phase1PixelSummaryMap") + << "Option has already been set to " << m_option << ". It's not possible to reset it."; + } +} + +//============================================================================ +void Phase1PixelSummaryMap::createTrackerBaseMap() { + m_BaseTrackerMap = std::make_shared("Summary", "", -10, 160, -70, 70); + m_BaseTrackerMap->SetFloat(true); + m_BaseTrackerMap->GetXaxis()->SetTitle(""); + m_BaseTrackerMap->GetYaxis()->SetTitle(""); + m_BaseTrackerMap->GetZaxis()->SetTitle(m_zAxisTitle.c_str()); + m_BaseTrackerMap->GetZaxis()->CenterTitle(); + m_BaseTrackerMap->GetZaxis()->SetTitleOffset(1.2); + m_BaseTrackerMap->SetOption("COLZ L"); + m_BaseTrackerMap->SetStats(false); + + //BARREL FIRST + for (unsigned int i = 0; i < maxPxBarrel; i++) { + LOGINFO("Phase1PixelSummaryMap") << "barrel, shift: " << i << " corner: " << i << std::endl; + LOGINFO("Phase1PixelSummaryMap") << "translate x: " << 0 << std::endl; + LOGINFO("Phase1PixelSummaryMap") << "translate y: " << barrelLadderShift[i] << std::endl; + + int currBarrelTranslateX = 0; + int currBarrelTranslateY = barrelLadderShift[i]; + addNamedBins(m_cornersBPIX[i], currBarrelTranslateX, currBarrelTranslateY, 1, 1, true); + } + + //MINUS FORWARD + for (int j : {-3, -2, -1}) { + LOGINFO("Phase1PixelSummaryMap") << "negative fwd, shift: " << -j - 1 << " corner: " << maxPxForward + j + << std::endl; + LOGINFO("Phase1PixelSummaryMap") << "translate x: " << forwardDiskXShift[-j - 1] << std::endl; + LOGINFO("Phase1PixelSummaryMap") << "translate y: " << -forwardDiskYShift << std::endl; + + int currForwardTranslateX = forwardDiskXShift[-j - 1]; + int currForwardTranslateY = -forwardDiskYShift; + addNamedBins(m_cornersFPIX[maxPxForward + j], currForwardTranslateX, currForwardTranslateY, 1, 1); + } + + //PLUS FORWARD + for (int k : {1, 2, 3}) { + LOGINFO("Phase1PixelSummaryMap") << "positive fwd, shift: " << k << " corner: " << maxPxForward + k - 1 + << std::endl; + LOGINFO("Phase1PixelSummaryMap") << "translate x: " << forwardDiskXShift[k - 1] << std::endl; + LOGINFO("Phase1PixelSummaryMap") << "translate y: " << forwardDiskYShift << std::endl; + + int currForwardTranslateX = forwardDiskXShift[k - 1]; + int currForwardTranslateY = forwardDiskYShift; + addNamedBins(m_cornersFPIX[maxPxForward + k - 1], currForwardTranslateX, currForwardTranslateY, 1, 1); + } + + edm::LogPrint("Phase1PixelSummaryMap") << "Base Tracker Map: constructed" << std::endl; + return; +} + +//============================================================================ +void Phase1PixelSummaryMap::printTrackerMap(TCanvas& canvas) { + //canvas = TCanvas("c1","c1",plotWidth,plotHeight); + canvas.cd(); + canvas.SetTopMargin(0.02); + canvas.SetBottomMargin(0.02); + canvas.SetLeftMargin(0.02); + canvas.SetRightMargin(0.14); + m_BaseTrackerMap->Draw("AC COLZ L"); + + //### z arrow + arrow = TArrow(0.05, 27.0, 0.05, -30.0, 0.02, "|>"); + arrow.SetLineWidth(4); + arrow.Draw(); + arrow.SetAngle(30); + //### phi arrow + phiArrow = TArrow(0.0, 27.0, 30.0, 27.0, 0.02, "|>"); + phiArrow.SetLineWidth(4); + phiArrow.Draw(); + phiArrow.SetAngle(30); + //### x arrow + xArrow = TArrow(25.0, 44.5, 50.0, 44.5, 0.02, "|>"); + xArrow.SetLineWidth(4); + xArrow.Draw(); + xArrow.SetAngle(30); + //### y arrow + yArrow = TArrow(25.0, 44.5, 25.0, 69.5, 0.02, "|>"); + yArrow.SetLineWidth(4); + yArrow.Draw(); + yArrow.SetAngle(30); + + //################################################### + //# add some captions + auto txt = TLatex(); + txt.SetNDC(); + txt.SetTextFont(1); + txt.SetTextColor(1); + txt.SetTextAlign(22); + txt.SetTextAngle(0); + + //# draw new-style title + txt.SetTextSize(0.05); + txt.DrawLatex(0.5, 0.95, (fmt::sprintf("Pixel Tracker Map: %s", m_title)).c_str()); + txt.SetTextSize(0.03); + + txt.DrawLatex(0.55, 0.125, "-DISK"); + txt.DrawLatex(0.55, 0.875, "+DISK"); + + txt.DrawLatex(0.08, 0.28, "+z"); + txt.DrawLatex(0.25, 0.70, "+phi"); + txt.DrawLatex(0.31, 0.78, "+x"); + txt.DrawLatex(0.21, 0.96, "+y"); + + txt.SetTextAngle(90); + txt.DrawLatex(0.04, 0.5, "BARREL"); + + edm::LogPrint("Phase1PixelSummaryMap") << "Base Tracker Map: printed" << std::endl; +} + +//============================================================================ +bool Phase1PixelSummaryMap::fillTrackerMap(unsigned int id, double value) { + auto detid = DetId(id); + if (detid.subdetId() != PixelSubdetector::PixelBarrel && detid.subdetId() != PixelSubdetector::PixelEndcap) { + edm::LogError("Phase1PixelSummaryMap") + << __func__ << " The following detid " << id << " is not Pixel!" << std::endl; + return false; + } else { + m_BaseTrackerMap->Fill(TString::Format("%u", id), value); + return true; + } +} + +//============================================================================ +void Phase1PixelSummaryMap::addNamedBins( + edm::FileInPath geoFile, int tX, int tY, int sX, int sY, bool applyModuleRotation) { + auto cornerFileName = geoFile.fullPath(); + std::ifstream cornerFile(cornerFileName.c_str()); + if (!cornerFile.good()) { + throw cms::Exception("FileError") << "Problem opening corner file: " << cornerFileName; + } + std::string line; + while (std::getline(cornerFile, line)) { + if (!line.empty()) { + std::istringstream iss(line); + + auto tokens = Ph1PMapSummaryHelper::tokenize(line, '"'); + // Printing the token vector + for (unsigned int i = 0; i < tokens.size(); i++) + LOGDEBUG("Phase1PixelSummaryMap") << tokens[i] << '\n'; + + auto detInfo = Ph1PMapSummaryHelper::tokenize(tokens[0], ' '); + unsigned int detId = stoi(detInfo[0]); + std::string detIdName = detInfo[1]; + auto xy = Ph1PMapSummaryHelper::tokenize(tokens[1], ' '); + unsigned int verNum = 1; + std::vector xP, yP; + for (const auto& coord : xy) { + auto coordSpl = Ph1PMapSummaryHelper::tokenize(coord, ','); + if (applyModuleRotation) { + xP.push_back(-(std::stof(coordSpl[0]) * sX + tX)); + yP.push_back(((std::stof(coordSpl[1]) * sY + tY))); + } else { + xP.push_back(std::stof(coordSpl[0]) * sX + tX); + yP.push_back(std::stof(coordSpl[1]) * sY + tY); + } + verNum++; + } + //close the polygon + xP.push_back(xP[0]); + yP.push_back(yP[0]); + + LOGDEBUG("Phase1PixelSummaryMap") << detId << "["; + for (const auto& p : xP) { + LOGDEBUG("Phase1PixelSummaryMap") << p << ","; + } + LOGDEBUG("Phase1PixelSummaryMap") << "] [ "; + for (const auto& q : yP) { + LOGDEBUG("Phase1PixelSummaryMap") << q << ","; + } + LOGDEBUG("Phase1PixelSummaryMap") << "]" << std::endl; + + const unsigned int N = verNum; + if (applyModuleRotation) { + bins[detId] = std::make_shared(N, &yP[0], &xP[0]); + } else { + bins[detId] = std::make_shared(N, &xP[0], &yP[0]); + //bins[detId] = std::make_shared(N, &yP[0], &xP[0]); // rotation by 90 deg (so that it had the same layout as for the strips) + } + + bins[detId]->SetName(detInfo[0].c_str()); + m_BaseTrackerMap->AddBin(bins[detId]->Clone()); + } + } + return; +} diff --git a/DQM/TrackerRemapper/src/SiStripTkMaps.cc b/DQM/TrackerRemapper/src/SiStripTkMaps.cc new file mode 100644 index 0000000000000..a770be5104307 --- /dev/null +++ b/DQM/TrackerRemapper/src/SiStripTkMaps.cc @@ -0,0 +1,289 @@ +// CMSSW includes +#include "CalibTracker/StandaloneTrackerTopology/interface/StandaloneTrackerTopology.h" +#include "DataFormats/SiPixelDetId/interface/PXBDetId.h" +#include "DataFormats/SiPixelDetId/interface/PXFDetId.h" +#include "DataFormats/TrackerCommon/interface/PixelBarrelName.h" +#include "DataFormats/TrackerCommon/interface/PixelEndcapName.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/FileInPath.h" + +// ROOT includes +#include "TArrow.h" +#include "TPaletteAxis.h" +#include "TGaxis.h" +#include "TCanvas.h" +#include "TColor.h" +#include "TGraph.h" +#include "TLatex.h" +#include "TH2Poly.h" +#include "TStyle.h" + +// STL includes +#include +#include +#include +#include +#include + +// boost includes +#include +#include + +#include "DQM/TrackerRemapper/interface/SiStripTkMaps.h" + +//============================================================================ +void SiStripTkMaps::bookMap(const std::string mapTitle, const std::string zAxisTitle) { + double minx = 0xFFFFFF, maxx = -0xFFFFFF, miny = 0xFFFFFF, maxy = -0xFFFFFFF; + readVertices(minx, maxx, miny, maxy); + + // set the titles + m_zAxisTitle = zAxisTitle; + m_mapTitle = mapTitle; + + TGaxis::SetMaxDigits(2); + + // margin of the box + static constexpr int margin = 5; + m_trackerMap = + new TH2Poly("Tracker Map", m_mapTitle.c_str(), minx - margin, maxx + margin, miny - margin, maxy + margin); + m_trackerMap->SetFloat(); + m_trackerMap->SetOption(m_option); + m_trackerMap->SetStats(false); + m_trackerMap->GetZaxis()->SetLabelSize(0.03); + m_trackerMap->GetZaxis()->SetTitleOffset(0.5); + m_trackerMap->GetZaxis()->SetTitleSize(0.05); + m_trackerMap->GetZaxis()->SetTitle(m_zAxisTitle.c_str()); + m_trackerMap->GetZaxis()->CenterTitle(); + + for (const auto& pair : m_bins) { + m_trackerMap->AddBin(pair.second->Clone()); + } +} + +//============================================================================ +void SiStripTkMaps::fill(long rawid, double val) { + m_trackerMap->Fill(TString::Format("%ld", rawid), val); + m_values.push_back(val); +} + +//============================================================================ +void SiStripTkMaps::drawMap(TCanvas& canvas, std::string option) { + // margins + static constexpr float tmargin_ = 0.08; + static constexpr float bmargin_ = 0.02; + static constexpr float lmargin_ = 0.02; + static constexpr float rmargin_ = 0.08; + + // window size + static constexpr int wH_ = 3000; + static constexpr int hH_ = 850; + + canvas.cd(); + adjustCanvasMargins(canvas.cd(), tmargin_, bmargin_, lmargin_, rmargin_); + canvas.Update(); + + m_trackerMap->SetTitle(""); + if (!option.empty()) { + m_trackerMap->Draw(option.c_str()); + } else { + m_trackerMap->Draw(); + } + + canvas.SetFrameLineColor(0); + gPad->Update(); + TPaletteAxis* palette = (TPaletteAxis*)m_trackerMap->GetListOfFunctions()->FindObject("palette"); + if (palette != nullptr) { + palette->SetLabelSize(0.02); + palette->SetX1NDC(1 - rmargin_); + palette->SetX2NDC(1 - rmargin_ + lmargin_); + } + + // if not right size, and not drawn in same mode + if (canvas.GetWindowHeight() != hH_ && canvas.GetWindowWidth() != wH_ && option.find("same") == std::string::npos) { + canvas.SetWindowSize(wH_, hH_); + } + + // call the map dressing + dressMap(canvas); +} + +//============================================================================ +void SiStripTkMaps::dressMap(TCanvas& canv) { + std::array barrelNames = { + {"TIB L2", "TIB L1", "TIB L4", "TIB L3", "TOB L2", "TOB L1", "TOB L4", " TOB L3", "TOB L6", "TOB L5"}}; + std::array endcapNames = {{"TID", "TEC", "TID", "TEC"}}; + std::array disknumbering = {{"+1", "+2", "+3", "+1", "+2", "+3", "+4", "+5", + "+6", "+7", "+8", "+9", "-1", "-2", "-3", "-1", + "-2", "-3", "-4", "-5", "-6", "-7", "-8", "-9"}}; + + static constexpr std::array b_coordx = { + {0.1, 0.1, 0.26, 0.26, 0.41, 0.41, 0.56, 0.56, 0.725, 0.725, 0.05, 0.17}}; + static constexpr std::array b_coordy = { + {0.70, 0.45, 0.70, 0.45, 0.70, 0.46, 0.70, 0.46, 0.70, 0.46, 0.85, 0.85}}; + + static constexpr std::array e_coordx = {{0.01, 0.21, 0.01, 0.21}}; + static constexpr std::array e_coordy = {{0.89, 0.89, 0.17, 0.17}}; + + static constexpr std::array n_coordx = {{0.01, 0.087, 0.165, 0.227, 0.305, 0.383, 0.461, 0.539, + 0.616, 0.694, 0.772, 0.850, 0.01, 0.087, 0.165, 0.227, + 0.305, 0.383, 0.461, 0.539, 0.617, 0.695, 0.773, 0.851}}; + + static constexpr std::array n_coordy = {{0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, 0.85, + 0.85, 0.85, 0.85, 0.85, 0.13, 0.13, 0.13, 0.13, + 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13, 0.13}}; + + canv.cd(); + for (const auto& name : barrelNames | boost::adaptors::indexed(0)) { + auto ltx = TLatex(); + ltx.SetTextFont(62); + ltx.SetTextSize(0.035); + ltx.SetTextAlign(11); + ltx.DrawLatexNDC(b_coordx[name.index()], b_coordy[name.index()], name.value().c_str()); + } + + for (const auto& name : endcapNames | boost::adaptors::indexed(0)) { + auto ltx = TLatex(); + ltx.SetTextFont(62); + ltx.SetTextSize(0.05); + ltx.SetTextAlign(11); + ltx.DrawLatexNDC(e_coordx[name.index()], e_coordy[name.index()], name.value().c_str()); + } + + for (const auto& name : disknumbering | boost::adaptors::indexed(0)) { + auto ltx = TLatex(); + ltx.SetTextFont(62); + ltx.SetTextSize(0.035); + ltx.SetTextAlign(11); + ltx.DrawLatexNDC(n_coordx[name.index()], n_coordy[name.index()], name.value().c_str()); + } + + auto ltx = TLatex(); + ltx.SetTextFont(62); + ltx.SetTextSize(0.045); + ltx.SetTextAlign(11); + ltx.DrawLatexNDC(gPad->GetLeftMargin(), 1 - gPad->GetTopMargin() + 0.03, m_mapTitle.c_str()); + + // barrel axes + drawArrows(0.09, 0.23, 0.24, 0.45, "#phi", "z"); + // endcap axes + drawArrows(0.85, 0.89, 0.83, 0.95, "x", "y"); + + canv.Modified(); + canv.Update(); // make sure it's really (re)drawn +} + +//============================================================================ +void SiStripTkMaps::drawArrows( + const float x_X1, const float x_X2, const float x_Y1, const float y_Y2, const char* x_label, const char* y_label) { + auto arrow_X = TArrow(); + arrow_X.SetLineColor(kBlue); + arrow_X.SetLineWidth(2); + arrow_X.SetOption("|>"); + arrow_X.SetArrowSize(10); + arrow_X.DrawLineNDC(x_X1, x_Y1, x_X2, x_Y1); + + auto arrow_Y = TArrow(); + arrow_Y.SetLineColor(kBlue); + arrow_Y.SetLineWidth(2); + arrow_Y.SetOption("|>"); + arrow_Y.SetArrowSize(10); + arrow_Y.DrawLineNDC(x_X2, x_Y1, x_X2, y_Y2); + + auto text_X = TLatex(); + text_X.SetTextSize(0.04); + text_X.SetTextAlign(11); + text_X.SetTextColor(kBlue); + text_X.DrawLatexNDC(x_X1, x_Y1 - 0.03, x_label); + + auto text_Y = TLatex(); + text_Y.SetTextSize(0.04); + text_Y.SetTextAlign(11); + text_Y.SetTextColor(kBlue); + text_Y.DrawLatexNDC(x_X2 + 0.005, y_Y2 - 0.01, y_label); +} + +//============================================================================ +void SiStripTkMaps::adjustCanvasMargins( + TVirtualPad* pad, const float top, const float bottom, const float left, const float right) { + if (top > 0) { + pad->SetTopMargin(top); + } + if (bottom > 0) { + pad->SetBottomMargin(bottom); + } + if (left > 0) { + pad->SetLeftMargin(left); + } + if (right > 0) { + pad->SetRightMargin(right); + } +} + +//============================================================================ +void SiStripTkMaps::readVertices(double& minx, double& maxx, double& miny, double& maxy) { + std::ifstream in; + + // TPolyline vertices stored at https://github.com/cms-data/DQM-SiStripMonitorClient + in.open(edm::FileInPath("DQM/SiStripMonitorClient/data/Geometry/tracker_map_bare").fullPath().c_str()); + + if (!in.good()) { + throw cms::Exception("FileError") << "SiStripTkMaps: problem opening vertices file!!" << std::endl; + return; + } + + while (in.good()) { + long detid = 0; + double x[5], y[5]; + + std::string line; + std::getline(in, line); + typedef boost::tokenizer> tokenizer; + boost::char_separator sep{" "}; + tokenizer tok{line, sep}; + + int ix{0}, iy{0}; + bool isPixel{false}; + for (const auto& t : tok | boost::adaptors::indexed(0)) { + int i = t.index(); + if (i == 0) { + detid = atoll((t.value()).c_str()); + + // Drop Pixel Data + DetId detId(detid); + if (detId.subdetId() == PixelSubdetector::PixelBarrel || detId.subdetId() == PixelSubdetector::PixelEndcap) { + isPixel = true; + break; + } + } else { + if (i % 2 == 0) { + x[ix] = atof((t.value()).c_str()); + if (x[ix] < minx) { + minx = x[ix]; + } + if (x[ix] > maxx) { + maxx = x[ix]; + } + ++ix; + } else { + y[iy] = atof((t.value()).c_str()); + if (y[iy] < miny) { + miny = y[iy]; + } + if (y[iy] > maxy) { + maxy = y[iy]; + } + ++iy; + } // else + } // else + } // loop on entries + + if (isPixel) { + continue; + } + + m_bins[detid] = std::make_shared(ix, x, y); + m_bins[detid]->SetName(TString::Format("%ld", detid)); + m_bins[detid]->SetTitle(TString::Format("Module ID=%ld", detid)); + m_detIdVector.push_back(detid); + } +} diff --git a/DQM/TrackerRemapper/test/PrintTkMap.py b/DQM/TrackerRemapper/test/PrintTkMap.py new file mode 100644 index 0000000000000..9bbfc066c174e --- /dev/null +++ b/DQM/TrackerRemapper/test/PrintTkMap.py @@ -0,0 +1,164 @@ +#!/usr/bin/env python + +from __future__ import print_function +import sys +import os +from ROOT import * +from copy import deepcopy +from array import array +import six + +gROOT.SetBatch() # don't pop up canvases + +maxPxBarrel = 4 +maxPxForward = 3 +barrelLadderShift = [0, 14, 44, 90] +forwardDiskXShift = [25, 75, 125] +forwardDiskYShift = 45; # to make +DISK on top in the 'strip-like' layout +plotWidth, plotHeight = 3000, 2000 +listOfDetids=[] + +############################################## +#Find Data files +def getFileInPath(rfile): +############################################## + import os + for dir in os.environ['CMSSW_SEARCH_PATH'].split(":"): + if os.path.exists(os.path.join(dir,rfile)): return os.path.join(dir,rfile) + return None + +############################################## +def __AddNamedBins(BaseTrackerMap, geoFile, tX, tY, sX, sY, applyModuleRotation = False): +############################################## + for line in geoFile: + lineSpl = line.strip().split("\"") + + detId = lineSpl[0].split(" ")[0] + + vertices = lineSpl[1] + xy = vertices.split(" ") + x, y = array('d'), array('d') + verNum = 1 + for coord in xy: + coordSpl = coord.split(",") + if applyModuleRotation: + x.append(-(float(coordSpl[0]) * sX + tX)) + y.append((float(coordSpl[1]) * sY + tY)) + else: + x.append(float(coordSpl[0]) * sX + tX) + y.append(float(coordSpl[1]) * sY + tY) + verNum = verNum + 1 + #close polygon + x.append(x[0]) + y.append(y[0]) + + #print(detId, [p for p in x], [q for q in y]) + listOfDetids.append(detId) + if applyModuleRotation: + bin = TGraph(verNum, y, x) + else: + bin = TGraph(verNum, x, y) + # bin = TGraph(verNum, y, x) # rotation by 90 deg (so that it had the same layout as for the strips) + bin.SetName(detId) + BaseTrackerMap.AddBin(bin) + +############################################## +def main(): +############################################## + geometryFilenames = [] + for i in range(maxPxBarrel): + geometryFilenames.append(getFileInPath("DQM/SiStripMonitorClient/data/Geometry/vertices_barrel_" + str(i + 1))) + + for i in range(-maxPxForward, maxPxForward + 1): + if i == 0: + continue #there is no 0 disk + geometryFilenames.append(getFileInPath("DQM/SiStripMonitorClient/data/Geometry/vertices_forward_" + str(i))) + + BaseTrackerMap = TH2Poly("Summary", "", -10, 160, -70, 70) + BaseTrackerMap.SetFloat(1) + BaseTrackerMap.GetXaxis().SetTitle("") + BaseTrackerMap.GetYaxis().SetTitle("") + BaseTrackerMap.SetOption("COLZ L") + BaseTrackerMap.SetStats(0) + + # BARREL FIRST + for i in range(maxPxBarrel): + with open(geometryFilenames[i], "r") as geoFile: + currBarrelTranslateX = 0 + currBarrelTranslateY = barrelLadderShift[i] + __AddNamedBins(BaseTrackerMap,geoFile, currBarrelTranslateX, currBarrelTranslateY, 1, 1, True) + + # MINUS FORWARD + for i in range(-maxPxForward, 0): + with open(geometryFilenames[maxPxBarrel + maxPxForward + i], "r") as geoFile: + currForwardTranslateX = forwardDiskXShift[-i - 1] + currForwardTranslateY = -forwardDiskYShift + __AddNamedBins(BaseTrackerMap,geoFile, currForwardTranslateX, currForwardTranslateY, 1, 1) + + # PLUS FORWARD + for i in range(maxPxForward): + with open(geometryFilenames[maxPxBarrel + maxPxForward + i], "r") as geoFile: + currForwardTranslateX = forwardDiskXShift[i] + currForwardTranslateY = forwardDiskYShift + __AddNamedBins(BaseTrackerMap,geoFile, currForwardTranslateX, currForwardTranslateY, 1, 1) + + print("Base Tracker Map: constructed") + + c1 = TCanvas("c1","c1", plotWidth , plotHeight) + for detid in listOfDetids: + BaseTrackerMap.Fill(str(detid),int(detid)) + BaseTrackerMap.Draw("AC COLZ L") + + gPad.Update() + palette = BaseTrackerMap.FindObject("palette"); + palette.SetX1NDC(0.89); + palette.SetX2NDC(0.91); + palette.SetLabelSize(0.05); + gPad.Update() + + ### z arrow + arrow = TArrow(0.05, 27.0, 0.05, -30.0, 0.02, "|>") + arrow.SetLineWidth(4) + arrow.Draw() + ### phi arrow + phiArrow = TArrow(0.0, 27.0, 30.0, 27.0, 0.02, "|>") + phiArrow.SetLineWidth(4) + phiArrow.Draw() + ### x arrow + xArrow = TArrow(25.0, 44.5, 50.0, 44.5, 0.02, "|>") + xArrow.SetLineWidth(4) + xArrow.Draw() + ### y arrow + yArrow = TArrow(25.0, 44.5, 25.0, 69.5, 0.02, "|>") + yArrow.SetLineWidth(4) + yArrow.Draw() + + ################################################### + # add some captions + txt = TLatex() + txt.SetNDC() + txt.SetTextFont(1) + txt.SetTextColor(1) + txt.SetTextAlign(22) + txt.SetTextAngle(0) + + # draw new-style title + txt.SetTextSize(0.05) + txt.DrawLatex(0.5, 0.95, "Pixel Tracker Map") + txt.SetTextSize(0.03) + txt.DrawLatex(0.5, 0.125, "-DISK") + txt.DrawLatex(0.5, 0.075, "NUMBER ->") + txt.DrawLatex(0.5, 0.875, "+DISK") + txt.DrawLatex(0.12, 0.35, "+z") + txt.DrawLatexNDC(0.315, 0.665, "+phi") # WAY TO FORCE IT TO DRAW LATEX CORRECTLY NOT FOUND ('#' DOESN'T WORK) + txt.DrawLatex(0.38, 0.73, "+x") + txt.DrawLatex(0.235, 0.875, "+y") + txt.SetTextAngle(90) + txt.DrawLatex(0.125, 0.5, "BARREL") + + #save to the png + c1.Print("test.png") + +################################################## +if __name__ == "__main__": + main() diff --git a/DQM/TrackerRemapper/test/SiPixelPhase1Analyzer_cfg.py b/DQM/TrackerRemapper/test/SiPixelPhase1Analyzer_cfg.py new file mode 100644 index 0000000000000..3e6f7f4f9ee5e --- /dev/null +++ b/DQM/TrackerRemapper/test/SiPixelPhase1Analyzer_cfg.py @@ -0,0 +1,55 @@ +import FWCore.ParameterSet.Config as cms + +# Standard includes +process = cms.Process("SiPixelPhase1Analyzer") +process.load("Configuration.StandardSequences.GeometryRecoDB_cff") +process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') +from Configuration.AlCa.GlobalTag import GlobalTag +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') + +# MessageLogger +process.load("FWCore.MessageLogger.MessageLogger_cfi") +process.MessageLogger.cerr.threshold = 'INFO' +process.MessageLogger.SiPixelPhase1Analyzer=dict() +process.MessageLogger.cout = cms.untracked.PSet( + enable = cms.untracked.bool(True), + threshold = cms.untracked.string("INFO"), + default = cms.untracked.PSet(limit = cms.untracked.int32(0)), + FwkReport = cms.untracked.PSet(limit = cms.untracked.int32(-1), + reportEvery = cms.untracked.int32(1000) + ), + SiPixelPhase1Analyzer = cms.untracked.PSet( limit = cms.untracked.int32(-1)), + enableStatistics = cms.untracked.bool(True) + ) + +# Source +process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) +process.source = cms.Source("PoolSource", + fileNames = cms.untracked.vstring( + '/store/relval/CMSSW_11_2_0_pre6/RelValQCD_FlatPt_15_3000HS_14/GEN-SIM-RECO/112X_mcRun3_2021_realistic_v7-v1/20000/47B75EDE-AAB4-C944-802B-15B1EB4BA29A.root' + ) +) + +# Output root file name: +process.TFileService = cms.Service("TFileService", fileName = cms.string('pixelMaps.root') ) + +MODE_ANALYZE = 0 +MODE_REMAP = 1 + +process.demo = cms.EDAnalyzer('SiPixelPhase1Analyzer', + opMode = cms.untracked.uint32(MODE_ANALYZE), + src = cms.InputTag("generalTracks"), + debugFileName = cms.untracked.string("debug.txt"), + remapRootFileName = cms.untracked.vstring("dqmFile.root"), #only one input is allowed now + isBarrelSource = cms.untracked.vuint32(0, 0, 1), + pathToHistograms = cms.untracked.vstring( + "DQMData/Run 1/PixelPhase1/Run summary/Phase1_MechanicalView/PXForward/", + "DQMData/Run 1/PixelPhase1/Run summary/Phase1_MechanicalView/PXForward/", + "DQMData/Run 1/PixelPhase1/Run summary/Phase1_MechanicalView/PXBarrel/"), + baseHistogramName = cms.untracked.vstring( + "num_clusters_per_PXDisk_per_SignedBladePanel_PXRing", + "num_digis_per_PXDisk_per_SignedBladePanel_PXRing", + "num_digis_per_SignedModule_per_SignedLadder_PXLayer") + ) + +process.p = cms.Path(process.demo) diff --git a/DQM/TrackerRemapper/test/TrackerRemapper_cfg.py b/DQM/TrackerRemapper/test/TrackerRemapper_cfg.py new file mode 100644 index 0000000000000..3b49a94cd79af --- /dev/null +++ b/DQM/TrackerRemapper/test/TrackerRemapper_cfg.py @@ -0,0 +1,105 @@ +import FWCore.ParameterSet.Config as cms +import FWCore.ParameterSet.VarParsing as VarParsing +from Configuration.AlCa.GlobalTag import GlobalTag + +options = VarParsing.VarParsing("analysis") + +MODE_ANALYZE, MODE_REMAP = 0, 1 +RECHITS, DIGIS, CLUSTERS = 1, 2, 3 + +dataSourceDic = { RECHITS : "ALCARECOTkAlMinBias", #"generalTracks", + DIGIS : "siStripDigis", + CLUSTERS: "siStripClusters" } + +defaultAnylyzeMode = RECHITS #DIGIS # RECHITS + +###################### OPTIONS HANDLER + +options.register ("opMode", + MODE_ANALYZE, + VarParsing.VarParsing.multiplicity.singleton, + VarParsing.VarParsing.varType.int, + "Operation Mode") + +options.register ("analyzeMode", + defaultAnylyzeMode, + VarParsing.VarParsing.multiplicity.singleton, + VarParsing.VarParsing.varType.int, + "Analyze Mode") + +options.register ("eventLimit", + -1, + VarParsing.VarParsing.multiplicity.singleton, + VarParsing.VarParsing.varType.int, + "Limits Events Processed in Analyze Mode") + +options.register ("inputRootFile", + "/store/express/Run2018D/StreamExpressAlignment/ALCARECO/TkAlMinBias-Express-v1/000/324/980/00000/00E8FB8F-D3AB-C442-BCC2-FEEAE63EA711.root", + VarParsing.VarParsing.multiplicity.singleton, + VarParsing.VarParsing.varType.string, + "Source Data File - either for analyze or remap") + +options.register ("stripHistogram", + "TkHMap_NumberValidHits", + VarParsing.VarParsing.multiplicity.singleton, + VarParsing.VarParsing.varType.string, + "Strip Detector Histogram to Remap") + +options.register ("src", + dataSourceDic[defaultAnylyzeMode], + VarParsing.VarParsing.multiplicity.singleton, + VarParsing.VarParsing.varType.string, + "Collection Source") #?? + +options.register ("globalTag", # option name + "auto:run2_data", # default value + VarParsing.VarParsing.multiplicity.singleton, # singleton or list + VarParsing.VarParsing.varType.string, # string, bool, int, or float + "Global Tag") # ? help ? + +options.parseArguments() + +###################### + +process = cms.Process("Demo") + +if options.opMode == MODE_ANALYZE: + process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(options.eventLimit) ) + process.source = cms.Source("PoolSource", + fileNames = cms.untracked.vstring( + options.inputRootFile + ) + ) + runNumber = "Analyze" + +elif options.opMode == MODE_REMAP: + process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(1) ) + process.source = cms.Source("EmptySource") + #run number deduction + runNumber = str(int(options.inputRootFile.split("_")[-1].split(".")[0][1:])) + +process.demo = cms.EDAnalyzer('TrackerRemapper', + opMode = cms.int32(options.opMode), + analyzeMode = cms.int32(options.analyzeMode), + #stripRemapFile = cms.string(options.inputRootFile), + #stripHistogram = cms.string(options.stripHistogram), + #runString = cms.string(runNumber), + src = cms.InputTag(options.src), + ) + +process.p = cms.Path(process.demo) + +process.load("Configuration.StandardSequences.GeometryRecoDB_cff") +process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") +process.GlobalTag = GlobalTag(process.GlobalTag, options.globalTag, "") + +process.load("CalibTracker.SiStripCommon.TkDetMapESProducer_cfi") +#process.load("DQM.SiStripCommon.TkHistoMap_cff") +#process.TkDetMap = cms.Service("TkDetMap") +#process.SiStripDetInfoFileReader = cms.Service("SiStripDetInfoFileReader") + +#### Add these lines to produce a tracker map +process.load("DQMServices.Core.DQMStore_cfg") + +# Output root file name: +process.TFileService = cms.Service("TFileService", fileName = cms.string('outputStrip.root') ) diff --git a/DQM/TrackingMonitorClient/python/pixelTrackingEffFromHitPattern_cff.py b/DQM/TrackingMonitorClient/python/pixelTrackingEffFromHitPattern_cff.py index 15ceaf93ed20a..cff85e56d94f7 100644 --- a/DQM/TrackingMonitorClient/python/pixelTrackingEffFromHitPattern_cff.py +++ b/DQM/TrackingMonitorClient/python/pixelTrackingEffFromHitPattern_cff.py @@ -21,7 +21,10 @@ def _layers(suffix, quant, histoPostfix): ] pixelTrackingEffFromHitPattern = DQMEDHarvester("DQMGenericClient", - subDirs = cms.untracked.vstring("Tracking/PixelTrackParameters/HitEffFromHitPattern*"), + subDirs = cms.untracked.vstring("Tracking/PixelTrackParameters/pixelTracks/HitEffFromHitPattern*", + "Tracking/PixelTrackParameters/dzPV0p1/HitEffFromHitPattern*", + "Tracking/PixelTrackParameters/pt_0to1/HitEffFromHitPattern*", + "Tracking/PixelTrackParameters/pt_1/HitEffFromHitPattern*"), efficiency = cms.vstring( _layers("PU", "GoodNumVertices", "") + _layers("BX", "BX", "VsBX") + diff --git a/DQM/TrackingMonitorClient/python/pixelVertexResolutionClient_cfi.py b/DQM/TrackingMonitorClient/python/pixelVertexResolutionClient_cfi.py new file mode 100644 index 0000000000000..2558e88d26012 --- /dev/null +++ b/DQM/TrackingMonitorClient/python/pixelVertexResolutionClient_cfi.py @@ -0,0 +1,7 @@ +import FWCore.ParameterSet.Config as cms + +from DQM.TrackingMonitorClient.primaryVertexResolutionClient_cfi import primaryVertexResolutionClient as _primaryVertexResolutionClient + +pixelVertexResolutionClient = _primaryVertexResolutionClient.clone( + subDirs = ["OfflinePixelPV/Resolution/*"] +) diff --git a/DQM/TrackingMonitorSource/python/pixelTracksMonitoring_cff.py b/DQM/TrackingMonitorSource/python/pixelTracksMonitoring_cff.py index a075f671f05ce..d5deba78b46c8 100644 --- a/DQM/TrackingMonitorSource/python/pixelTracksMonitoring_cff.py +++ b/DQM/TrackingMonitorSource/python/pixelTracksMonitoring_cff.py @@ -1,23 +1,77 @@ import FWCore.ParameterSet.Config as cms import DQM.TrackingMonitor.TrackerCollisionTrackingMonitor_cfi -pixelTracksMonitoring = DQM.TrackingMonitor.TrackerCollisionTrackingMonitor_cfi.TrackerCollisionTrackMon.clone() -pixelTracksMonitoring.FolderName = 'Tracking/PixelTrackParameters' -pixelTracksMonitoring.TrackProducer = 'pixelTracks' -pixelTracksMonitoring.allTrackProducer = 'pixelTracks' -pixelTracksMonitoring.beamSpot = 'offlineBeamSpot' -pixelTracksMonitoring.primaryVertex = 'pixelVertices' -pixelTracksMonitoring.pvNDOF = 1 -pixelTracksMonitoring.doAllPlots = True -pixelTracksMonitoring.doLumiAnalysis = True -pixelTracksMonitoring.doProfilesVsLS = True -pixelTracksMonitoring.doDCAPlots = True -pixelTracksMonitoring.doProfilesVsLS = True -pixelTracksMonitoring.doPlotsVsGoodPVtx = True -pixelTracksMonitoring.doEffFromHitPatternVsPU = False -pixelTracksMonitoring.doEffFromHitPatternVsBX = False -pixelTracksMonitoring.doEffFromHitPatternVsLUMI = False -pixelTracksMonitoring.doPlotsVsGoodPVtx = True -pixelTracksMonitoring.doPlotsVsLUMI = True -pixelTracksMonitoring.doPlotsVsBX = True +pixelTracksMonitor = DQM.TrackingMonitor.TrackerCollisionTrackingMonitor_cfi.TrackerCollisionTrackMon.clone() +pixelTracksMonitor.FolderName = 'Tracking/PixelTrackParameters/pixelTracks' +pixelTracksMonitor.TrackProducer = 'pixelTracks' +pixelTracksMonitor.allTrackProducer = 'pixelTracks' +pixelTracksMonitor.beamSpot = 'offlineBeamSpot' +pixelTracksMonitor.primaryVertex = 'pixelVertices' +pixelTracksMonitor.pvNDOF = 1 +pixelTracksMonitor.doAllPlots = True +pixelTracksMonitor.doLumiAnalysis = True +pixelTracksMonitor.doProfilesVsLS = True +pixelTracksMonitor.doDCAPlots = True +pixelTracksMonitor.doProfilesVsLS = True +pixelTracksMonitor.doPlotsVsGoodPVtx = True +pixelTracksMonitor.doEffFromHitPatternVsPU = False +pixelTracksMonitor.doEffFromHitPatternVsBX = False +pixelTracksMonitor.doEffFromHitPatternVsLUMI = False +pixelTracksMonitor.doPlotsVsGoodPVtx = True +pixelTracksMonitor.doPlotsVsLUMI = True +pixelTracksMonitor.doPlotsVsBX = True +_trackSelector = cms.EDFilter('TrackSelector', + src = cms.InputTag('pixelTracks'), + cut = cms.string("") +) + +pixelTracksPt0to1 = _trackSelector.clone(cut = "pt >= 0 & pt < 1 ") +pixelTracksPt1 = _trackSelector.clone(cut = "pt >= 1 ") +from DQM.TrackingMonitorSource.TrackCollections2monitor_cff import highPurityPV0p1 as _highPurityPV0p1 +pixelTracksPV0p1 = _highPurityPV0p1.clone( + src = "pixelTracks", + quality = "", + vertexTag = "goodPixelVertices" +) + +pixelTracksMonitorPt0to1 = pixelTracksMonitor.clone( + TrackProducer = "pixelTracksPt0to1", + FolderName = "Tracking/PixelTrackParameters/pt_0to1" +) +pixelTracksMonitorPt1 = pixelTracksMonitor.clone( + TrackProducer = "pixelTracksPt1", + FolderName = "Tracking/PixelTrackParameters/pt_1" +) +pixelTracksMonitorPV0p1 = pixelTracksMonitor.clone( + TrackProducer = "pixelTracksPV0p1", + FolderName = "Tracking/PixelTrackParameters/dzPV0p1" +) + + +from CommonTools.ParticleFlow.goodOfflinePrimaryVertices_cfi import goodOfflinePrimaryVertices as _goodOfflinePrimaryVertices +goodPixelVertices = _goodOfflinePrimaryVertices.clone( + src = "pixelVertices", +) + +from DQM.TrackingMonitor.primaryVertexResolution_cfi import primaryVertexResolution as _primaryVertexResolution +pixelVertexResolution = _primaryVertexResolution.clone( + vertexSrc = "goodPixelVertices", + rootFolder = "OfflinePixelPV/Resolution", +) + +pixelTracksMonitoringTask = cms.Task( + goodPixelVertices, + pixelTracksPt0to1, + pixelTracksPt1, + pixelTracksPV0p1, +) + +pixelTracksMonitoring = cms.Sequence( + pixelTracksMonitor + + pixelTracksMonitorPt0to1 + + pixelTracksMonitorPt1 + + pixelTracksMonitorPV0p1 + + pixelVertexResolution, + pixelTracksMonitoringTask +) diff --git a/DQMOffline/Configuration/python/DQMOffline_SecondStep_cff.py b/DQMOffline/Configuration/python/DQMOffline_SecondStep_cff.py index 368b328632fd8..29bf311c474d4 100644 --- a/DQMOffline/Configuration/python/DQMOffline_SecondStep_cff.py +++ b/DQMOffline/Configuration/python/DQMOffline_SecondStep_cff.py @@ -122,6 +122,7 @@ from DQM.CTPPS.ctppsDQM_cff import * from Validation.RecoTau.DQMSequences_cfi import * from DQM.TrackingMonitorClient.pixelTrackingEffFromHitPattern_cff import * +from DQM.TrackingMonitorClient.pixelVertexResolutionClient_cfi import * DQMHarvestTrackerStrip = cms.Sequence ( SiStripOfflineDQMClient ) @@ -179,7 +180,8 @@ DQMHarvestTrackingZeroBias = cms.Sequence( TrackingOfflineDQMClientZeroBias * dqmFastTimerServiceClient ) -DQMHarvestPixelTracking = cms.Sequence( pixelTrackingEffFromHitPattern ) +DQMHarvestPixelTracking = cms.Sequence( pixelTrackingEffFromHitPattern * + pixelVertexResolutionClient ) DQMHarvestOuterTracker = cms.Sequence( OuterTrackerClient * diff --git a/DQMOffline/Configuration/python/DQMOffline_cff.py b/DQMOffline/Configuration/python/DQMOffline_cff.py index 2001c22352a48..ac28700d4eaf4 100644 --- a/DQMOffline/Configuration/python/DQMOffline_cff.py +++ b/DQMOffline/Configuration/python/DQMOffline_cff.py @@ -157,10 +157,12 @@ #DQMOfflineCommon from DQM.TrackingMonitorSource.pixelTracksMonitoring_cff import * +from DQMOffline.RecoB.PixelVertexMonitor_cff import * from DQM.SiOuterTracker.OuterTrackerSourceConfig_cff import * from Validation.RecoTau.DQMSequences_cfi import * -DQMOfflinePixelTracking = cms.Sequence( pixelTracksMonitoring ) +DQMOfflinePixelTracking = cms.Sequence( pixelTracksMonitoring * + pixelPVMonitor ) DQMOuterTracker = cms.Sequence( DQMOfflineDCS * OuterTrackerSource * diff --git a/DQMOffline/Ecal/plugins/EcalPileUpDepMonitor.cc b/DQMOffline/Ecal/plugins/EcalPileUpDepMonitor.cc index 8795f9744972d..9cd81d790ea2b 100644 --- a/DQMOffline/Ecal/plugins/EcalPileUpDepMonitor.cc +++ b/DQMOffline/Ecal/plugins/EcalPileUpDepMonitor.cc @@ -340,7 +340,7 @@ void EcalPileUpDepMonitor::analyze(const edm::Event &e, const edm::EventSetup &) const EcalRecHitCollection *eeRecHits = RecHitsEE.product(); reco::BasicCluster const &seedCluster(*itSC->seed()); - std::vector cov = EcalClusterTools::localCovariances(seedCluster, eeRecHits, p_topology); + const auto &cov = EcalClusterTools::localCovariances(seedCluster, eeRecHits, p_topology); float sigmaIetaIeta = std::sqrt(cov[0]); float sigmaIetaIphi = cov[1]; @@ -383,7 +383,7 @@ void EcalPileUpDepMonitor::analyze(const edm::Event &e, const edm::EventSetup &) const EcalRecHitCollection *ebRecHits = RecHitsEB.product(); reco::BasicCluster const &seedCluster(*itSC->seed()); - std::vector cov = EcalClusterTools::localCovariances(seedCluster, ebRecHits, p_topology); + const auto &cov = EcalClusterTools::localCovariances(seedCluster, ebRecHits, p_topology); float sigmaIetaIeta = std::sqrt(cov[0]); float sigmaIetaIphi = cov[1]; diff --git a/DQMOffline/RecoB/python/PixelVertexMonitor_cff.py b/DQMOffline/RecoB/python/PixelVertexMonitor_cff.py new file mode 100644 index 0000000000000..9e293f4478bd6 --- /dev/null +++ b/DQMOffline/RecoB/python/PixelVertexMonitor_cff.py @@ -0,0 +1,8 @@ +import FWCore.ParameterSet.Config as cms + +from DQMOffline.RecoB.PrimaryVertexMonitor_cff import pvMonitor as _pvMonitor +pixelPVMonitor = _pvMonitor.clone( + TopFolderName = "OfflinePixelPV", + vertexLabel = "pixelVertices", + ndof = cms.int32( 1 ) +) diff --git a/DQMOffline/Trigger/src/EgHLTOffHelper.cc b/DQMOffline/Trigger/src/EgHLTOffHelper.cc index 0945838423bcb..db04f46b5c4ad 100644 --- a/DQMOffline/Trigger/src/EgHLTOffHelper.cc +++ b/DQMOffline/Trigger/src/EgHLTOffHelper.cc @@ -325,10 +325,9 @@ void OffHelper::fillClusShapeData(const reco::GsfElectron& ele, OffEle::ClusShap seedClus.hitsAndFractions()[0] .first; //note this may not actually be the seed hit but it doesnt matter because all hits will be in the barrel OR endcap if (seedDetId.subdetId() == EcalBarrel) { - std::vector stdCov = + const auto& stdCov = EcalClusterTools::covariances(seedClus, ebRecHits_.product(), caloTopology_.product(), caloGeom_.product()); - std::vector crysCov = - EcalClusterTools::localCovariances(seedClus, ebRecHits_.product(), caloTopology_.product()); + const auto& crysCov = EcalClusterTools::localCovariances(seedClus, ebRecHits_.product(), caloTopology_.product()); clusShapeData.sigmaPhiPhi = sqrt(stdCov[2]); clusShapeData.sigmaIPhiIPhi = sqrt(crysCov[2]); if (ele.superCluster()->rawEnergy() != 0.) { @@ -338,10 +337,9 @@ void OffHelper::fillClusShapeData(const reco::GsfElectron& ele, OffEle::ClusShap clusShapeData.r9 = -1.; } else { - std::vector stdCov = + const auto& stdCov = EcalClusterTools::covariances(seedClus, eeRecHits_.product(), caloTopology_.product(), caloGeom_.product()); - std::vector crysCov = - EcalClusterTools::localCovariances(seedClus, eeRecHits_.product(), caloTopology_.product()); + const auto& crysCov = EcalClusterTools::localCovariances(seedClus, eeRecHits_.product(), caloTopology_.product()); clusShapeData.sigmaPhiPhi = sqrt(stdCov[2]); clusShapeData.sigmaIPhiIPhi = sqrt(crysCov[2]); if (ele.superCluster()->rawEnergy() != 0.) { @@ -496,17 +494,15 @@ void OffHelper::fillClusShapeData(const reco::Photon& pho, OffPho::ClusShapeData seedClus.hitsAndFractions()[0] .first; //note this may not actually be the seed hit but it doesnt matter because all hits will be in the barrel OR endcap (it is also incredably inefficient as it getHitsByDetId passes the vector by value not reference if (seedDetId.subdetId() == EcalBarrel) { - std::vector stdCov = + const auto& stdCov = EcalClusterTools::covariances(seedClus, ebRecHits_.product(), caloTopology_.product(), caloGeom_.product()); - std::vector crysCov = - EcalClusterTools::localCovariances(seedClus, ebRecHits_.product(), caloTopology_.product()); + const auto& crysCov = EcalClusterTools::localCovariances(seedClus, ebRecHits_.product(), caloTopology_.product()); clusShapeData.sigmaPhiPhi = sqrt(stdCov[2]); clusShapeData.sigmaIPhiIPhi = sqrt(crysCov[2]); } else { - std::vector stdCov = + const auto& stdCov = EcalClusterTools::covariances(seedClus, eeRecHits_.product(), caloTopology_.product(), caloGeom_.product()); - std::vector crysCov = - EcalClusterTools::localCovariances(seedClus, eeRecHits_.product(), caloTopology_.product()); + const auto& crysCov = EcalClusterTools::localCovariances(seedClus, eeRecHits_.product(), caloTopology_.product()); clusShapeData.sigmaPhiPhi = sqrt(stdCov[2]); clusShapeData.sigmaIPhiIPhi = sqrt(crysCov[2]); diff --git a/DataFormats/CSCDigi/BuildFile.xml b/DataFormats/CSCDigi/BuildFile.xml index dfa1171462466..410104fe23918 100644 --- a/DataFormats/CSCDigi/BuildFile.xml +++ b/DataFormats/CSCDigi/BuildFile.xml @@ -1,7 +1,7 @@ - + diff --git a/DataFormats/CSCDigi/interface/CSCCLCTDigi.h b/DataFormats/CSCDigi/interface/CSCCLCTDigi.h index 12a4f5bf4d3f4..cc777f80d8314 100644 --- a/DataFormats/CSCDigi/interface/CSCCLCTDigi.h +++ b/DataFormats/CSCDigi/interface/CSCCLCTDigi.h @@ -18,12 +18,14 @@ class CSCCLCTDigi { public: typedef std::vector> ComparatorContainer; - enum CLCTKeyStripMasks { kEightStripMask = 0x1, kQuartStripMask = 0x1, kHalfStripMask = 0x1f }; - enum CLCTKeyStripShifts { kEightStripShift = 6, kQuartStripShift = 5, kHalfStripShift = 0 }; + enum CLCTKeyStripMasks { kEighthStripMask = 0x1, kQuartStripMask = 0x1, kHalfStripMask = 0x1f }; + enum CLCTKeyStripShifts { kEighthStripShift = 6, kQuartStripShift = 5, kHalfStripShift = 0 }; // temporary to facilitate CCLUT-EMTF/OMTF integration studies enum CLCTPatternMasks { kRun3SlopeMask = 0xf, kRun3PatternMask = 0x7, kLegacyPatternMask = 0xf }; enum CLCTPatternShifts { kRun3SlopeShift = 7, kRun3PatternShift = 4, kLegacyPatternShift = 0 }; enum class Version { Legacy = 0, Run3 }; + // for data vs emulator studies + enum CLCTBXMask { kBXDataMask = 0x3 }; /// Constructors CSCCLCTDigi(const uint16_t valid, @@ -75,7 +77,9 @@ class CSCCLCTDigi { void setSlope(const uint16_t slope); /// slope in number of half-strips/layer - float getFractionalSlope(const uint16_t slope = 4) const; + /// negative means left-bending + /// positive means right-bending + float getFractionalSlope() const; /// return striptype uint16_t getStripType() const { return striptype_; } @@ -84,8 +88,8 @@ class CSCCLCTDigi { void setStripType(const uint16_t stripType) { striptype_ = stripType; } /// return bending - /// 0: left-bending (negative delta-strip) - /// 1: right-bending (positive delta-strip) + /// 0: left-bending (negative delta-strip / delta layer) + /// 1: right-bending (positive delta-strip / delta layer) uint16_t getBend() const { return bend_; } /// set bend @@ -103,11 +107,11 @@ class CSCCLCTDigi { /// get single quart strip bit bool getQuartStrip() const; - /// set single eight strip bit - void setEightStrip(const bool eightStrip); + /// set single eighth strip bit + void setEighthStrip(const bool eighthStrip); - /// get single eight strip bit - bool getEightStrip() const; + /// get single eighth strip bit + bool getEighthStrip() const; /// return Key CFEB ID uint16_t getCFEB() const { return cfeb_; } @@ -118,6 +122,9 @@ class CSCCLCTDigi { /// return BX uint16_t getBX() const { return bx_; } + /// return 2-bit BX as in data + uint16_t getBXData() const { return bx_ & kBXDataMask; } + /// set bx void setBX(const uint16_t bx) { bx_ = bx; } @@ -128,7 +135,7 @@ class CSCCLCTDigi { /// (32 halfstrips). There are 5 cfebs. The "strip_" variable is one /// of 32 halfstrips on the keylayer of a single CFEB, so that /// Halfstrip = (cfeb*32 + strip). - /// This function can also return the quartstrip or eightstrip + /// This function can also return the quartstrip or eighthstrip /// when the comparator code has been set uint16_t getKeyStrip(const uint16_t n = 2) const; diff --git a/DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigi.h b/DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigi.h index 8f30c9d47bb4f..74d1f7a6c330e 100644 --- a/DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigi.h +++ b/DataFormats/CSCDigi/interface/CSCCorrelatedLCTDigi.h @@ -18,12 +18,14 @@ class CSCCorrelatedLCTDigi { public: - enum LCTKeyStripMasks { kEightStripMask = 0x1, kQuartStripMask = 0x1, kHalfStripMask = 0xff }; - enum LCTKeyStripShifts { kEightStripShift = 9, kQuartStripShift = 8, kHalfStripShift = 0 }; + enum LCTKeyStripMasks { kEighthStripMask = 0x1, kQuartStripMask = 0x1, kHalfStripMask = 0xff }; + enum LCTKeyStripShifts { kEighthStripShift = 9, kQuartStripShift = 8, kHalfStripShift = 0 }; // temporary to facilitate CCLUT-EMTF/OMTF integration studies enum LCTPatternMasks { kRun3SlopeMask = 0xf, kRun3PatternMask = 0x7, kLegacyPatternMask = 0xf }; enum LCTPatternShifts { kRun3SlopeShift = 7, kRun3PatternShift = 4, kLegacyPatternShift = 0 }; enum class Version { Legacy = 0, Run3 }; + // for data vs emulator studies + enum LCTBXMask { kBXDataMask = 0x1 }; /// Constructors CSCCorrelatedLCTDigi(const uint16_t trknmb, @@ -67,11 +69,11 @@ class CSCCorrelatedLCTDigi { /// get single quart strip bit bool getQuartStrip() const; - /// set single eight strip bit - void setEightStrip(const bool eightStrip); + /// set single eighth strip bit + void setEighthStrip(const bool eighthStrip); - /// get single eight strip bit - bool getEightStrip() const; + /// get single eighth strip bit + bool getEighthStrip() const; /* Strips are numbered starting from 1 in CMSSW @@ -102,12 +104,22 @@ class CSCCorrelatedLCTDigi { /// return the slope uint16_t getSlope() const; + /// slope in number of half-strips/layer + /// negative means left-bending + /// positive means right-bending + float getFractionalSlope() const; + /// return left/right bending + /// 0: left-bending (negative delta-strip / delta layer) + /// 1: right-bending (positive delta-strip / delta layer) uint16_t getBend() const { return bend; } /// return BX uint16_t getBX() const { return bx; } + /// return 1-bit BX as in data + uint16_t getBXData() const { return bx & kBXDataMask; } + /// return CLCT pattern number (in use again Feb 2011) /// This function should not be used for Run-3 uint16_t getCLCTPattern() const; diff --git a/DataFormats/CSCDigi/interface/CSCShowerDigi.h b/DataFormats/CSCDigi/interface/CSCShowerDigi.h new file mode 100644 index 0000000000000..b07ec5c4c6a16 --- /dev/null +++ b/DataFormats/CSCDigi/interface/CSCShowerDigi.h @@ -0,0 +1,53 @@ +#ifndef DataFormats_CSCDigi_CSCShowerDigi_h +#define DataFormats_CSCDigi_CSCShowerDigi_h + +#include +#include +#include +#include + +class CSCShowerDigi { +public: + // Run-3 definitions as provided in DN-20-033 + enum Run3Shower { kInvalid = 0, kLoose = 1, kNominal = 2, kTight = 3 }; + enum BitMask { kInTimeMask = 0x2, kOutTimeMask = 0x2 }; + enum BitShift { kInTimeShift = 0, kOutTimeShift = 2 }; + + /// Constructors + CSCShowerDigi(const uint16_t inTimeBits, const uint16_t outTimeBits, const uint16_t cscID); + /// default + CSCShowerDigi(); + + /// clear this Shower + void clear() { bits_ = 0; } + + /// data + bool isValid() const; + + bool isLooseInTime() const; + bool isNominalInTime() const; + bool isTightInTime() const; + bool isLooseOutTime() const; + bool isNominalOutTime() const; + bool isTightOutTime() const; + + uint16_t bits() const { return bits_; } + uint16_t bitsInTime() const; + uint16_t bitsOutTime() const; + + uint16_t getCSCID() const { return cscID_; } + + /// set cscID + void setCSCID(const uint16_t c) { cscID_ = c; } + +private: + void setDataWord(const uint16_t newWord, uint16_t& word, const unsigned shift, const unsigned mask); + uint16_t getDataWord(const uint16_t word, const unsigned shift, const unsigned mask) const; + + uint16_t bits_; + // 4-bit CSC chamber identifier + uint16_t cscID_; +}; + +std::ostream& operator<<(std::ostream& o, const CSCShowerDigi& digi); +#endif diff --git a/DataFormats/CSCDigi/interface/CSCShowerDigiCollection.h b/DataFormats/CSCDigi/interface/CSCShowerDigiCollection.h new file mode 100644 index 0000000000000..f44152f1116d5 --- /dev/null +++ b/DataFormats/CSCDigi/interface/CSCShowerDigiCollection.h @@ -0,0 +1,10 @@ +#ifndef DataFormats_CSCDigi_CSCShowerDigiCollection_h +#define DataFormats_CSCDigi_CSCShowerDigiCollection_h + +#include "DataFormats/MuonDetId/interface/CSCDetId.h" +#include "DataFormats/CSCDigi/interface/CSCShowerDigi.h" +#include "DataFormats/MuonData/interface/MuonDigiCollection.h" + +typedef MuonDigiCollection CSCShowerDigiCollection; + +#endif diff --git a/DataFormats/CSCDigi/src/CSCCLCTDigi.cc b/DataFormats/CSCDigi/src/CSCCLCTDigi.cc index a63007f938ed7..6861d0ec056f3 100644 --- a/DataFormats/CSCDigi/src/CSCCLCTDigi.cc +++ b/DataFormats/CSCDigi/src/CSCCLCTDigi.cc @@ -116,14 +116,12 @@ void CSCCLCTDigi::setSlope(const uint16_t slope) { } // slope in number of half-strips/layer -float CSCCLCTDigi::getFractionalSlope(const uint16_t nBits) const { +float CSCCLCTDigi::getFractionalSlope() const { if (isRun3()) { - const float minSlope = 0; - const float maxSlope = 2.5; - const int range = pow(2, nBits); - const float deltaSlope = (maxSlope - minSlope) / range; - const float slopeValue = minSlope + deltaSlope * getSlope(); - return (2 * getBend() - 1) * slopeValue; + // 4-bit slope + float slope[17] = { + 0.0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1.0, 1.125, 1.25, 1.375, 1.5, 1.625, 1.75, 2.0, 2.5}; + return (2 * getBend() - 1) * slope[getSlope()]; } else { int slope[11] = {0, 0, -8, 8, -6, 6, -4, 4, -2, 2, 0}; return float(slope[getPattern()] / 5.); @@ -133,7 +131,7 @@ float CSCCLCTDigi::getFractionalSlope(const uint16_t nBits) const { uint16_t CSCCLCTDigi::getKeyStrip(const uint16_t n) const { // 10-bit case for strip data word if (compCode_ != -1 and n == 8) { - return getKeyStrip(4) * 2 + getEightStrip(); + return getKeyStrip(4) * 2 + getEighthStrip(); } // 9-bit case for strip data word else if (compCode_ != -1 and n == 4) { @@ -164,10 +162,10 @@ bool CSCCLCTDigi::getQuartStrip() const { return getDataWord(strip_, kQuartStripShift, kQuartStripMask); } -bool CSCCLCTDigi::getEightStrip() const { +bool CSCCLCTDigi::getEighthStrip() const { if (!isRun3()) return false; - return getDataWord(strip_, kEightStripShift, kEightStripMask); + return getDataWord(strip_, kEighthStripShift, kEighthStripMask); } void CSCCLCTDigi::setQuartStrip(const bool quartStrip) { @@ -176,10 +174,10 @@ void CSCCLCTDigi::setQuartStrip(const bool quartStrip) { setDataWord(quartStrip, strip_, kQuartStripShift, kQuartStripMask); } -void CSCCLCTDigi::setEightStrip(const bool eightStrip) { +void CSCCLCTDigi::setEighthStrip(const bool eighthStrip) { if (!isRun3()) return; - setDataWord(eightStrip, strip_, kEightStripShift, kEightStripMask); + setDataWord(eighthStrip, strip_, kEighthStripShift, kEighthStripMask); } void CSCCLCTDigi::setRun3(const bool isRun3) { version_ = isRun3 ? Version::Run3 : Version::Legacy; } diff --git a/DataFormats/CSCDigi/src/CSCCorrelatedLCTDigi.cc b/DataFormats/CSCDigi/src/CSCCorrelatedLCTDigi.cc index 88e8266b97784..e0cd1a8810f04 100644 --- a/DataFormats/CSCDigi/src/CSCCorrelatedLCTDigi.cc +++ b/DataFormats/CSCDigi/src/CSCCorrelatedLCTDigi.cc @@ -72,7 +72,7 @@ void CSCCorrelatedLCTDigi::clear() { uint16_t CSCCorrelatedLCTDigi::getStrip(const uint16_t n) const { // all 10 bits if (n == 8) { - return 2 * getStrip(4) + getEightStrip(); + return 2 * getStrip(4) + getEighthStrip(); } // lowest 9 bits else if (n == 4) { @@ -90,10 +90,10 @@ void CSCCorrelatedLCTDigi::setQuartStrip(const bool quartStrip) { setDataWord(quartStrip, strip, kQuartStripShift, kQuartStripMask); } -void CSCCorrelatedLCTDigi::setEightStrip(const bool eightStrip) { +void CSCCorrelatedLCTDigi::setEighthStrip(const bool eighthStrip) { if (!isRun3()) return; - setDataWord(eightStrip, strip, kEightStripShift, kEightStripMask); + setDataWord(eighthStrip, strip, kEighthStripShift, kEighthStripMask); } bool CSCCorrelatedLCTDigi::getQuartStrip() const { @@ -102,10 +102,10 @@ bool CSCCorrelatedLCTDigi::getQuartStrip() const { return getDataWord(strip, kQuartStripShift, kQuartStripMask); } -bool CSCCorrelatedLCTDigi::getEightStrip() const { +bool CSCCorrelatedLCTDigi::getEighthStrip() const { if (!isRun3()) return false; - return getDataWord(strip, kEightStripShift, kEightStripMask); + return getDataWord(strip, kEighthStripShift, kEighthStripMask); } uint16_t CSCCorrelatedLCTDigi::getSlope() const { @@ -120,6 +120,19 @@ void CSCCorrelatedLCTDigi::setSlope(const uint16_t slope) { setDataWord(slope, pattern, kRun3SlopeShift, kRun3SlopeMask); } +// slope in number of half-strips/layer +float CSCCorrelatedLCTDigi::getFractionalSlope() const { + if (isRun3()) { + // 4-bit slope + float slope[17] = { + 0.0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1.0, 1.125, 1.25, 1.375, 1.5, 1.625, 1.75, 2.0, 2.5}; + return (2 * getBend() - 1) * slope[getSlope()]; + } else { + int slope[11] = {0, 0, -8, 8, -6, 6, -4, 4, -2, 2, 0}; + return float(slope[getPattern()] / 5.); + } +} + /// return the fractional strip float CSCCorrelatedLCTDigi::getFractionalStrip(const uint16_t n) const { if (n == 8) { diff --git a/DataFormats/CSCDigi/src/CSCShowerDigi.cc b/DataFormats/CSCDigi/src/CSCShowerDigi.cc new file mode 100644 index 0000000000000..7a4545d219340 --- /dev/null +++ b/DataFormats/CSCDigi/src/CSCShowerDigi.cc @@ -0,0 +1,51 @@ +#include "DataFormats/CSCDigi/interface/CSCShowerDigi.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include +#include + +using namespace std; + +/// Constructors +CSCShowerDigi::CSCShowerDigi(const uint16_t bitsInTime, const uint16_t bitsOutTime, const uint16_t cscID) + : cscID_(cscID) { + setDataWord(bitsInTime, bits_, kInTimeShift, kInTimeMask); + setDataWord(bitsOutTime, bits_, kOutTimeShift, kOutTimeMask); +} + +/// Default +CSCShowerDigi::CSCShowerDigi() : bits_(0), cscID_(0) {} + +bool CSCShowerDigi::isValid() const { + // any loose shower is valid + return isLooseInTime() or isLooseOutTime(); +} + +bool CSCShowerDigi::isLooseInTime() const { return bitsInTime() >= kLoose; } + +bool CSCShowerDigi::isNominalInTime() const { return bitsInTime() >= kNominal; } + +bool CSCShowerDigi::isTightInTime() const { return bitsInTime() >= kTight; } + +bool CSCShowerDigi::isLooseOutTime() const { return bitsOutTime() >= kLoose; } + +bool CSCShowerDigi::isNominalOutTime() const { return bitsOutTime() >= kNominal; } + +bool CSCShowerDigi::isTightOutTime() const { return bitsOutTime() >= kTight; } + +uint16_t CSCShowerDigi::bitsInTime() const { return getDataWord(bits_, kInTimeShift, kInTimeMask); } + +uint16_t CSCShowerDigi::bitsOutTime() const { return getDataWord(bits_, kOutTimeShift, kOutTimeMask); } + +void CSCShowerDigi::setDataWord(const uint16_t newWord, uint16_t& word, const unsigned shift, const unsigned mask) { + // clear the old value + word &= ~(mask << shift); + + // set the new value + word |= newWord << shift; +} + +uint16_t CSCShowerDigi::getDataWord(const uint16_t word, const unsigned shift, const unsigned mask) const { + return (word >> shift) & mask; +} + +std::ostream& operator<<(std::ostream& o, const CSCShowerDigi& digi) { return o << "CSC Shower: " << digi.bits(); } diff --git a/DataFormats/CSCDigi/src/classes.h b/DataFormats/CSCDigi/src/classes.h index 879a26bef5055..e8cf57f4aa1e3 100644 --- a/DataFormats/CSCDigi/src/classes.h +++ b/DataFormats/CSCDigi/src/classes.h @@ -31,6 +31,8 @@ #include "DataFormats/CSCDigi/interface/CSCCLCTPreTriggerDigiCollection.h" #include "DataFormats/CSCDigi/interface/CSCALCTPreTriggerDigi.h" #include "DataFormats/CSCDigi/interface/CSCALCTPreTriggerDigiCollection.h" +#include "DataFormats/CSCDigi/interface/CSCShowerDigi.h" +#include "DataFormats/CSCDigi/interface/CSCShowerDigiCollection.h" // dummy structs to ensure backward compatibility struct GEMCSCLCTDigi {}; diff --git a/DataFormats/CSCDigi/src/classes_def.xml b/DataFormats/CSCDigi/src/classes_def.xml index abf504d37a7e5..848aeeddd3639 100644 --- a/DataFormats/CSCDigi/src/classes_def.xml +++ b/DataFormats/CSCDigi/src/classes_def.xml @@ -37,6 +37,9 @@ + + + @@ -76,6 +79,7 @@ + @@ -95,6 +99,7 @@ + @@ -114,6 +119,7 @@ + @@ -134,6 +140,7 @@ + @@ -153,5 +160,6 @@ + diff --git a/DataFormats/ForwardDetId/interface/ETLDetId.h b/DataFormats/ForwardDetId/interface/ETLDetId.h index 327f3486d432f..bed807086922b 100644 --- a/DataFormats/ForwardDetId/interface/ETLDetId.h +++ b/DataFormats/ForwardDetId/interface/ETLDetId.h @@ -8,8 +8,8 @@ @class ETLDetId @brief Detector identifier class for the Endcap Timing Layer. - bit 15-7 : module sequential number - bit 6-5 : module type (unused so far) + bit 15-5 : module sequential number + bit 4-3 : module type (unused so far) */ class ETLDetId : public MTDDetId { @@ -20,10 +20,10 @@ class ETLDetId : public MTDDetId { static const uint32_t kETLformatV2 = 1; public: - static const uint32_t kETLmoduleOffset = 5; //7 - static const uint32_t kETLmoduleMask = 0x7FF; //0x1FF - static const uint32_t kETLmodTypeOffset = 3; //5 - static const uint32_t kETLmodTypeMask = 0x3; //0x3 + static const uint32_t kETLmoduleOffset = 5; + static const uint32_t kETLmoduleMask = 0x7FF; + static const uint32_t kETLmodTypeOffset = 3; + static const uint32_t kETLmodTypeMask = 0x3; static constexpr int kETLv1maxRing = 11; static constexpr int kETLv1maxModule = 176; diff --git a/DataFormats/GEMDigi/BuildFile.xml b/DataFormats/GEMDigi/BuildFile.xml index 4eecf7bb271bc..33e3672fd3307 100644 --- a/DataFormats/GEMDigi/BuildFile.xml +++ b/DataFormats/GEMDigi/BuildFile.xml @@ -1,7 +1,7 @@ - + diff --git a/DataFormats/HGCRecHit/interface/HGCRecHit.h b/DataFormats/HGCRecHit/interface/HGCRecHit.h index b9872ac695de4..c283cf4ed5ee6 100644 --- a/DataFormats/HGCRecHit/interface/HGCRecHit.h +++ b/DataFormats/HGCRecHit/interface/HGCRecHit.h @@ -67,7 +67,13 @@ class HGCRecHit : public CaloRecHit { HGCRecHit(); // by default a recHit is greated with no flag - HGCRecHit(const DetId& id, float energy, float time, uint32_t flags = 0, uint32_t flagBits = 0); + HGCRecHit(const DetId& id, + float energy, + float time, + uint32_t flags = 0, + uint32_t flagBits = 0, + uint8_t son = 0, + float timeError = 0.f); /// get the id // For the moment not returning a specific id for subdetector DetId id() const { return DetId(detid()); } @@ -101,6 +107,9 @@ class HGCRecHit : public CaloRecHit { /// check if one of the flags in a set is true bool checkFlags(const std::vector& flagsvec) const; + //added for validation + uint32_t flagBits() const { return flagBits_; } + private: /// store rechit condition (see Flags enum) in a bit-wise way uint32_t flagBits_; diff --git a/DataFormats/HGCRecHit/src/HGCRecHit.cc b/DataFormats/HGCRecHit/src/HGCRecHit.cc index c9f27e09beb3d..43bed27394082 100644 --- a/DataFormats/HGCRecHit/src/HGCRecHit.cc +++ b/DataFormats/HGCRecHit/src/HGCRecHit.cc @@ -9,8 +9,9 @@ HGCRecHit::HGCRecHit() : CaloRecHit(), flagBits_(0) {} -HGCRecHit::HGCRecHit(const DetId& id, float energy, float time, uint32_t flags, uint32_t flagBits) - : CaloRecHit(id, energy, time, flags), flagBits_(flagBits) {} +HGCRecHit::HGCRecHit( + const DetId& id, float energy, float time, uint32_t flags, uint32_t flagBits, uint8_t son, float timeError) + : CaloRecHit(id, energy, time, flags), flagBits_(flagBits), signalOverSigmaNoise_(son), timeError_(timeError) {} float HGCRecHit::chi2() const { uint32_t rawChi2 = 0x7F & (flags() >> 4); diff --git a/DataFormats/HGCalReco/interface/Trackster.h b/DataFormats/HGCalReco/interface/Trackster.h index ca563529c84f7..ece599d1c9926 100644 --- a/DataFormats/HGCalReco/interface/Trackster.h +++ b/DataFormats/HGCalReco/interface/Trackster.h @@ -20,6 +20,8 @@ namespace ticl { public: typedef math::XYZVector Vector; + enum IterationIndex { TRKEM = 0, EM, TRKHAD, HAD, MIP }; + // types considered by the particle identification enum class ParticleType { photon = 0, @@ -50,6 +52,7 @@ namespace ticl { zeroProbabilities(); } + inline void setIteration(const Trackster::IterationIndex i) { iterationIndex_ = i; } std::vector &vertices() { return vertices_; } std::vector &vertex_multiplicity() { return vertex_multiplicity_; } std::vector > &edges() { return edges_; } @@ -111,8 +114,9 @@ namespace ticl { p = *(probs++); } } - inline void setIdProbability(ParticleType type, float value) { id_probabilities_[int(type)] = 1.f; } + inline void setIdProbability(ParticleType type, float value) { id_probabilities_[int(type)] = value; } + inline const Trackster::IterationIndex ticlIteration() const { return (IterationIndex)iterationIndex_; } inline const std::vector &vertices() const { return vertices_; } inline const unsigned int vertices(int index) const { return vertices_[index]; } inline const std::vector &vertex_multiplicity() const { return vertex_multiplicity_; } @@ -143,6 +147,9 @@ namespace ticl { } private: + // TICL iteration producing the trackster + uint8_t iterationIndex_; + // The vertices of the DAG are the indices of the // 2d objects in the global collection std::vector vertices_; @@ -192,5 +199,7 @@ namespace ticl { // trackster ID probabilities std::array id_probabilities_; }; + + typedef std::vector TracksterCollection; } // namespace ticl #endif diff --git a/DataFormats/HGCalReco/src/classes_def.xml b/DataFormats/HGCalReco/src/classes_def.xml index 4eb960800b479..e105e092985f8 100644 --- a/DataFormats/HGCalReco/src/classes_def.xml +++ b/DataFormats/HGCalReco/src/classes_def.xml @@ -1,6 +1,7 @@ - + + diff --git a/SimDataFormats/JetMatching/BuildFile.xml b/DataFormats/JetMatching/BuildFile.xml similarity index 100% rename from SimDataFormats/JetMatching/BuildFile.xml rename to DataFormats/JetMatching/BuildFile.xml diff --git a/SimDataFormats/JetMatching/interface/JetFlavour.h b/DataFormats/JetMatching/interface/JetFlavour.h similarity index 94% rename from SimDataFormats/JetMatching/interface/JetFlavour.h rename to DataFormats/JetMatching/interface/JetFlavour.h index c2018de9b6f54..5779a2f11c1f2 100644 --- a/SimDataFormats/JetMatching/interface/JetFlavour.h +++ b/DataFormats/JetMatching/interface/JetFlavour.h @@ -1,5 +1,5 @@ -#ifndef SimDataFormats_JetMatching_JetFlavour_H -#define SimDataFormats_JetMatching_JetFlavour_H +#ifndef DataFormats_JetMatching_JetFlavour_H +#define DataFormats_JetMatching_JetFlavour_H #include #include "DataFormats/Math/interface/Point3D.h" diff --git a/SimDataFormats/JetMatching/interface/JetFlavourInfo.h b/DataFormats/JetMatching/interface/JetFlavourInfo.h similarity index 92% rename from SimDataFormats/JetMatching/interface/JetFlavourInfo.h rename to DataFormats/JetMatching/interface/JetFlavourInfo.h index aca13b9c5200b..876f2c75c986a 100644 --- a/SimDataFormats/JetMatching/interface/JetFlavourInfo.h +++ b/DataFormats/JetMatching/interface/JetFlavourInfo.h @@ -1,12 +1,12 @@ -#ifndef SimDataFormats_JetMatching_JetFlavourInfo_H -#define SimDataFormats_JetMatching_JetFlavourInfo_H +#ifndef DataFormats_JetMatching_JetFlavourInfo_H +#define DataFormats_JetMatching_JetFlavourInfo_H #include #include "DataFormats/HepMCCandidate/interface/GenParticle.h" #include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h" namespace reco { - /**\class JetFlavourInfo JetFlavourInfo.h SimDataFormats/JetMatching/interface/JetFlavourInfo.h + /**\class JetFlavourInfo JetFlavourInfo.h DataFormats/JetMatching/interface/JetFlavourInfo.h * \brief Class storing the jet flavour information * * JetFlavourInfo class stores the jet flavour information based on hadrons diff --git a/SimDataFormats/JetMatching/interface/JetFlavourInfoMatching.h b/DataFormats/JetMatching/interface/JetFlavourInfoMatching.h similarity index 82% rename from SimDataFormats/JetMatching/interface/JetFlavourInfoMatching.h rename to DataFormats/JetMatching/interface/JetFlavourInfoMatching.h index 3f3c9cd4a49d8..cbe88b557f229 100644 --- a/SimDataFormats/JetMatching/interface/JetFlavourInfoMatching.h +++ b/DataFormats/JetMatching/interface/JetFlavourInfoMatching.h @@ -1,10 +1,10 @@ -#ifndef SimDataFormats_JetMatching_JetFlavourInfoMatching_h -#define SimDataFormats_JetMatching_JetFlavourInfoMatching_h +#ifndef DataFormats_JetMatching_JetFlavourInfoMatching_h +#define DataFormats_JetMatching_JetFlavourInfoMatching_h #include "DataFormats/JetReco/interface/CaloJetCollection.h" #include "DataFormats/Common/interface/AssociationVector.h" #include "DataFormats/Common/interface/RefToBaseProd.h" -#include "SimDataFormats/JetMatching/interface/JetFlavourInfo.h" +#include "DataFormats/JetMatching/interface/JetFlavourInfo.h" #include namespace reco { @@ -33,4 +33,4 @@ namespace reco { } // namespace reco -#endif // SimDataFormats_JetMatching_JetFlavourInfoMatching_h +#endif // DataFormats_JetMatching_JetFlavourInfoMatching_h diff --git a/SimDataFormats/JetMatching/interface/JetFlavourMatching.h b/DataFormats/JetMatching/interface/JetFlavourMatching.h similarity index 82% rename from SimDataFormats/JetMatching/interface/JetFlavourMatching.h rename to DataFormats/JetMatching/interface/JetFlavourMatching.h index 63e75fbef3850..bd174e84db1d3 100644 --- a/SimDataFormats/JetMatching/interface/JetFlavourMatching.h +++ b/DataFormats/JetMatching/interface/JetFlavourMatching.h @@ -1,10 +1,10 @@ -#ifndef SimDataFormats_JetMatching_JetFlavourMatching_h -#define SimDataFormats_JetMatching_JetFlavourMatching_h +#ifndef DataFormats_JetMatching_JetFlavourMatching_h +#define DataFormats_JetMatching_JetFlavourMatching_h #include "DataFormats/JetReco/interface/CaloJetCollection.h" #include "DataFormats/Common/interface/AssociationVector.h" #include "DataFormats/Common/interface/RefToBaseProd.h" -#include "SimDataFormats/JetMatching/interface/JetFlavour.h" +#include "DataFormats/JetMatching/interface/JetFlavour.h" #include namespace reco { @@ -32,4 +32,4 @@ namespace reco { } // namespace reco -#endif // SimDataFormats_JetMatching_JetFlavourMatching_h +#endif // DataFormats_JetMatching_JetFlavourMatching_h diff --git a/SimDataFormats/JetMatching/interface/JetMatchedPartons.h b/DataFormats/JetMatching/interface/JetMatchedPartons.h similarity index 82% rename from SimDataFormats/JetMatching/interface/JetMatchedPartons.h rename to DataFormats/JetMatching/interface/JetMatchedPartons.h index 0d5426c5e8b15..8bbf30e8feadb 100644 --- a/SimDataFormats/JetMatching/interface/JetMatchedPartons.h +++ b/DataFormats/JetMatching/interface/JetMatchedPartons.h @@ -1,10 +1,10 @@ -#ifndef SimDataFormats_JetMatching_JetMatchedPartons_h -#define SimDataFormats_JetMatching_JetMatchedPartons_h +#ifndef DataFormats_JetMatching_JetMatchedPartons_h +#define DataFormats_JetMatching_JetMatchedPartons_h #include "DataFormats/JetReco/interface/CaloJetCollection.h" #include "DataFormats/Common/interface/AssociationVector.h" #include "DataFormats/Common/interface/RefToBaseProd.h" -#include "SimDataFormats/JetMatching/interface/MatchedPartons.h" +#include "DataFormats/JetMatching/interface/MatchedPartons.h" #include namespace reco { @@ -32,4 +32,4 @@ namespace reco { } // namespace reco -#endif // SimDataFormats_JetMatching_JetMatchedPartons_h +#endif // DataFormats_JetMatching_JetMatchedPartons_h diff --git a/SimDataFormats/JetMatching/interface/MatchedPartons.h b/DataFormats/JetMatching/interface/MatchedPartons.h similarity index 100% rename from SimDataFormats/JetMatching/interface/MatchedPartons.h rename to DataFormats/JetMatching/interface/MatchedPartons.h diff --git a/DataFormats/JetMatching/src/classes.h b/DataFormats/JetMatching/src/classes.h new file mode 100644 index 0000000000000..d0382618fe835 --- /dev/null +++ b/DataFormats/JetMatching/src/classes.h @@ -0,0 +1,10 @@ +#include +#include + +#include "DataFormats/Common/interface/Wrapper.h" +#include "DataFormats/JetMatching/interface/JetFlavourInfo.h" +#include "DataFormats/JetMatching/interface/JetFlavourInfoMatching.h" +#include "DataFormats/JetMatching/interface/JetFlavour.h" +#include "DataFormats/JetMatching/interface/JetFlavourMatching.h" +#include "DataFormats/JetMatching/interface/MatchedPartons.h" +#include "DataFormats/JetMatching/interface/JetMatchedPartons.h" diff --git a/SimDataFormats/JetMatching/src/classes_def.xml b/DataFormats/JetMatching/src/classes_def.xml similarity index 100% rename from SimDataFormats/JetMatching/src/classes_def.xml rename to DataFormats/JetMatching/src/classes_def.xml diff --git a/DataFormats/L1DTTrackFinder/interface/L1Phase2MuDTThContainer.h b/DataFormats/L1DTTrackFinder/interface/L1Phase2MuDTThContainer.h new file mode 100644 index 0000000000000..ca044f03a70e7 --- /dev/null +++ b/DataFormats/L1DTTrackFinder/interface/L1Phase2MuDTThContainer.h @@ -0,0 +1,50 @@ +//------------------------------------------------- +// +// Class L1Phase2MuDTPhContainer +// +// Description: trigger primtive data for the +// muon barrel Phase2 trigger +// +// +// Author List: Federica Primavera Bologna INFN +// +// +//-------------------------------------------------- +#ifndef L1Phase2MuDTThContainer_H +#define L1Phase2MuDTThContainer_H + +//------------------------------------ +// Collaborating Class Declarations -- +//------------------------------------ +#include "DataFormats/L1DTTrackFinder/interface/L1Phase2MuDTThDigi.h" + +//---------------------- +// Base Class Headers -- +//---------------------- +#include + +//--------------- +// C++ Headers -- +//--------------- + +// --------------------- +// -- Class Interface -- +// --------------------- + +class L1Phase2MuDTThContainer { +public: + typedef std::vector Segment_Container; + typedef Segment_Container::const_iterator Segment_iterator; + + // Constructor + L1Phase2MuDTThContainer(); + + void setContainer(const Segment_Container& inputSegments); + + Segment_Container const* getContainer() const; + +private: + Segment_Container m_segments; +}; + +#endif diff --git a/DataFormats/L1DTTrackFinder/interface/L1Phase2MuDTThDigi.h b/DataFormats/L1DTTrackFinder/interface/L1Phase2MuDTThDigi.h new file mode 100644 index 0000000000000..4e726f8bc420c --- /dev/null +++ b/DataFormats/L1DTTrackFinder/interface/L1Phase2MuDTThDigi.h @@ -0,0 +1,47 @@ +#ifndef L1Phase2MuDTThDigi_H +#define L1Phase2MuDTThDigi_H + +class L1Phase2MuDTThDigi { +public: + // Constructors + L1Phase2MuDTThDigi(); + + L1Phase2MuDTThDigi(int bx, int wh, int sc, int st, int z, int k, int qual, int idx, int t0, int chi2, int rpc = -10); + + // Operations + int bxNum() const; + + int whNum() const; + int scNum() const; + int stNum() const; + + int z() const; + int k() const; + + int quality() const; + int index() const; + + int t0() const; + int chi2() const; + + int rpcFlag() const; + +private: + int m_bx; + int m_wheel; + int m_sector; + int m_station; + + int m_zGlobal; + int m_kSlope; + + int m_qualityCode; + int m_index; + + int m_t0; + int m_chi2; + + int m_rpcFlag; +}; + +#endif diff --git a/DataFormats/L1DTTrackFinder/src/L1Phase2MuDTThContainer.cc b/DataFormats/L1DTTrackFinder/src/L1Phase2MuDTThContainer.cc new file mode 100644 index 0000000000000..d7c37dc0f440e --- /dev/null +++ b/DataFormats/L1DTTrackFinder/src/L1Phase2MuDTThContainer.cc @@ -0,0 +1,7 @@ +#include "DataFormats/L1DTTrackFinder/interface/L1Phase2MuDTThContainer.h" + +L1Phase2MuDTThContainer::L1Phase2MuDTThContainer() {} + +void L1Phase2MuDTThContainer::setContainer(const Segment_Container& inputSegments) { m_segments = inputSegments; } + +L1Phase2MuDTThContainer::Segment_Container const* L1Phase2MuDTThContainer::getContainer() const { return &m_segments; } diff --git a/DataFormats/L1DTTrackFinder/src/L1Phase2MuDTThDigi.cc b/DataFormats/L1DTTrackFinder/src/L1Phase2MuDTThDigi.cc new file mode 100644 index 0000000000000..e035e5274a231 --- /dev/null +++ b/DataFormats/L1DTTrackFinder/src/L1Phase2MuDTThDigi.cc @@ -0,0 +1,50 @@ +#include "DataFormats/L1DTTrackFinder/interface/L1Phase2MuDTThDigi.h" + +L1Phase2MuDTThDigi::L1Phase2MuDTThDigi() + : m_bx(-100), + m_wheel(0), + m_sector(0), + m_station(0), + m_zGlobal(0), + m_kSlope(0), + m_qualityCode(-1), + m_index(0), + m_t0(0), + m_chi2(0), + m_rpcFlag(-10) {} + +L1Phase2MuDTThDigi::L1Phase2MuDTThDigi( + int bx, int wh, int sc, int st, int z, int k, int qual, int idx, int t0, int chi2, int rpc) + : m_bx(bx), + m_wheel(wh), + m_sector(sc), + m_station(st), + m_zGlobal(z), + m_kSlope(k), + m_qualityCode(qual), + m_index(idx), + m_t0(t0), + m_chi2(chi2), + m_rpcFlag(rpc) {} + +int L1Phase2MuDTThDigi::bxNum() const { return m_bx; } + +int L1Phase2MuDTThDigi::whNum() const { return m_wheel; } + +int L1Phase2MuDTThDigi::scNum() const { return m_sector; } + +int L1Phase2MuDTThDigi::stNum() const { return m_station; } + +int L1Phase2MuDTThDigi::z() const { return m_zGlobal; } + +int L1Phase2MuDTThDigi::k() const { return m_kSlope; } + +int L1Phase2MuDTThDigi::quality() const { return m_qualityCode; } + +int L1Phase2MuDTThDigi::index() const { return m_index; } + +int L1Phase2MuDTThDigi::t0() const { return m_t0; } + +int L1Phase2MuDTThDigi::chi2() const { return m_chi2; } + +int L1Phase2MuDTThDigi::rpcFlag() const { return m_rpcFlag; } diff --git a/DataFormats/Math/interface/SSEVec.h b/DataFormats/Math/interface/SSEVec.h index 85245862099f4..e474e3fb0485f 100644 --- a/DataFormats/Math/interface/SSEVec.h +++ b/DataFormats/Math/interface/SSEVec.h @@ -6,9 +6,9 @@ #if defined(__GNUC__) #include #define CMS_USE_SSE -#ifdef __AVX__ -#define CMS_USE_AVX -#endif /* __AVX__ */ +#ifdef __AVX2__ +#define CMS_USE_AVX2 +#endif /* __AVX2__ */ #endif /* defined(__GNUC__) */ #endif /* !defined(__arm__) && !defined(__aarch64__) && !defined(__MIC__) */ @@ -63,7 +63,7 @@ namespace mathSSE { } #endif // CMS_USE_SSE -#ifdef CMS_USE_AVX +#ifdef CMS_USE_AVX2 inline __m256d __attribute__((always_inline)) __attribute__((pure)) _mm256_dot_pd(__m256d v1, __m256d v2) { __m256d mul = _mm256_mul_pd(v1, v2); mul = _mm256_hadd_pd(mul, mul); @@ -92,7 +92,7 @@ namespace mathSSE { return __m256d(_mm256_xor_si256(__m256i(ret), neg)); } -#endif // CMS_USE_AVX +#endif // CMS_USE_AVX2 template struct OldVec { @@ -101,7 +101,7 @@ namespace mathSSE { T theZ; T theW; } __attribute__((aligned(16))); -#ifdef CMS_USE_AVX +#ifdef CMS_USE_AVX2 template <> struct OldVec { double theX; @@ -235,7 +235,7 @@ namespace mathSSE { } }; -#ifdef CMS_USE_AVX +#ifdef CMS_USE_AVX2 template <> union Mask4 { __m256d vec; @@ -380,7 +380,7 @@ namespace mathSSE { double operator[](unsigned int n) const { return arr[n]; } }; -#ifdef CMS_USE_AVX +#ifdef CMS_USE_AVX2 } // namespace mathSSE #include "private/AVXVec.h" @@ -473,7 +473,7 @@ namespace mathSSE { __m128 v2 = _mm_cvtpd_ps(ivec.vec[1]); vec = _mm_shuffle_ps(vec, v2, _MM_SHUFFLE(1, 0, 1, 0)); } -#endif // CMS_USE_AVX +#endif // CMS_USE_AVX2 #endif // CMS_USE_SSE @@ -602,7 +602,7 @@ inline float cross(mathSSE::Vec2F a, mathSSE::Vec2F b) { return a.arr[0] * b.arr // inline mathSSE::Vec2D::Vec2(Vec4D v4) { -#ifdef CMS_USE_AVX +#ifdef CMS_USE_AVX2 vec = _mm256_castpd256_pd128(v4.vec); #else vec = v4.vec[0]; @@ -671,7 +671,7 @@ inline double cross(mathSSE::Vec2D a, mathSSE::Vec2D b) { return s; } -#ifndef CMS_USE_AVX +#ifndef CMS_USE_AVX2 // double op 3d #ifdef __SSE3__ @@ -781,7 +781,7 @@ inline double __attribute__((always_inline)) __attribute__((pure)) dotxy(mathSSE return dot(a.xy(), b.xy()); } -#endif // CMS_USE_AVX +#endif // CMS_USE_AVX2 // sqrt namespace mathSSE { @@ -797,7 +797,7 @@ namespace mathSSE { inline Vec2D sqrt(Vec2D v) { return _mm_sqrt_pd(v.vec); } -#ifdef CMS_USE_AVX +#ifdef CMS_USE_AVX2 template <> inline Vec4D sqrt(Vec4D v) { return _mm256_sqrt_pd(v.vec); diff --git a/DataFormats/Math/interface/choleskyInversion.h b/DataFormats/Math/interface/choleskyInversion.h index 2cb4105f86bae..b84e7cc80a120 100644 --- a/DataFormats/Math/interface/choleskyInversion.h +++ b/DataFormats/Math/interface/choleskyInversion.h @@ -20,13 +20,13 @@ namespace math { namespace cholesky { template - inline constexpr void invert11(M1 const& src, M2& dst) { + inline constexpr void __attribute__((always_inline)) invert11(M1 const& src, M2& dst) { using F = decltype(src(0, 0)); dst(0, 0) = F(1.0) / src(0, 0); } template - inline constexpr void invert22(M1 const& src, M2& dst) { + inline constexpr void __attribute__((always_inline)) invert22(M1 const& src, M2& dst) { using F = decltype(src(0, 0)); auto luc0 = F(1.0) / src(0, 0); auto luc1 = src(1, 0) * src(1, 0) * luc0; @@ -40,7 +40,7 @@ namespace math { } template - inline constexpr void invert33(M1 const& src, M2& dst) { + inline constexpr void __attribute__((always_inline)) invert33(M1 const& src, M2& dst) { using F = decltype(src(0, 0)); auto luc0 = F(1.0) / src(0, 0); auto luc1 = src(1, 0); @@ -64,7 +64,7 @@ namespace math { } template - inline constexpr void invert44(M1 const& src, M2& dst) { + inline constexpr void __attribute__((always_inline)) invert44(M1 const& src, M2& dst) { using F = decltype(src(0, 0)); auto luc0 = F(1.0) / src(0, 0); auto luc1 = src(1, 0); @@ -100,7 +100,7 @@ namespace math { } template - inline constexpr void invert55(M1 const& src, M2& dst) { + inline constexpr void __attribute__((always_inline)) invert55(M1 const& src, M2& dst) { using F = decltype(src(0, 0)); auto luc0 = F(1.0) / src(0, 0); auto luc1 = src(1, 0); @@ -155,7 +155,7 @@ namespace math { } template - inline __attribute__((always_inline)) constexpr void invert66(M1 const& src, M2& dst) { + inline constexpr void __attribute__((always_inline)) invert66(M1 const& src, M2& dst) { using F = decltype(src(0, 0)); auto luc0 = F(1.0) / src(0, 0); auto luc1 = src(1, 0); @@ -297,7 +297,7 @@ namespace math { template struct Inverter { - static constexpr void eval(M1 const& src, M2& dst) { + static constexpr void __attribute__((always_inline)) eval(M1 const& src, M2& dst) { invert22(src, dst); symmetrize22(dst); } @@ -305,7 +305,7 @@ namespace math { template struct Inverter { - static constexpr void eval(M1 const& src, M2& dst) { + static constexpr void __attribute__((always_inline)) eval(M1 const& src, M2& dst) { invert33(src, dst); symmetrize33(dst); } @@ -313,7 +313,7 @@ namespace math { template struct Inverter { - static constexpr void eval(M1 const& src, M2& dst) { + static constexpr void __attribute__((always_inline)) eval(M1 const& src, M2& dst) { invert44(src, dst); symmetrize44(dst); } @@ -321,7 +321,7 @@ namespace math { template struct Inverter { - static constexpr void eval(M1 const& src, M2& dst) { + static constexpr void __attribute__((always_inline)) eval(M1 const& src, M2& dst) { invert55(src, dst); symmetrize55(dst); } @@ -329,7 +329,7 @@ namespace math { template struct Inverter { - static constexpr void eval(M1 const& src, M2& dst) { + static constexpr void __attribute__((always_inline)) eval(M1 const& src, M2& dst) { invert66(src, dst); symmetrize66(dst); } @@ -337,7 +337,8 @@ namespace math { // Eigen interface template - inline constexpr void invert(Eigen::DenseBase const& src, Eigen::DenseBase& dst) { + inline constexpr void __attribute__((always_inline)) + invert(Eigen::DenseBase const& src, Eigen::DenseBase& dst) { using M1 = Eigen::DenseBase; using M2 = Eigen::DenseBase; Inverter::eval(src, dst); diff --git a/DataFormats/Math/test/CholeskyInvert_t.cpp b/DataFormats/Math/test/CholeskyInvert_t.cpp index c5dea25231988..de048e3d4455b 100644 --- a/DataFormats/Math/test/CholeskyInvert_t.cpp +++ b/DataFormats/Math/test/CholeskyInvert_t.cpp @@ -94,16 +94,23 @@ void go(bool soa) { for (int kk = 0; kk < NKK; ++kk) { delta -= (std::chrono::high_resolution_clock::now() - start); if (soa) +#ifdef USE_VECTORIZATION_PRAGMA #pragma GCC ivdep #ifdef __clang__ #pragma clang loop vectorize(enable) interleave(enable) +#endif #endif for (unsigned int i = 0; i < SIZE; ++i) { MapMX m(p + i); math::cholesky::invert(m, m); } else +#ifdef USE_VECTORIZATION_PRAGMA #pragma GCC ivdep +#ifdef __clang__ +#pragma clang loop vectorize(enable) interleave(enable) +#endif +#endif for (auto& m : mm) { math::cholesky::invert(m, m); } diff --git a/DataFormats/Math/test/ExtVec_t.cpp b/DataFormats/Math/test/ExtVec_t.cpp index 661bef10a91da..da32db094e462 100644 --- a/DataFormats/Math/test/ExtVec_t.cpp +++ b/DataFormats/Math/test/ExtVec_t.cpp @@ -5,9 +5,9 @@ #include -#ifdef __AVX__ -#define CMS_USE_AVX -#endif /* __AVX__ */ +#ifdef __AVX2__ +#define CMS_USE_AVX2 +#endif /* __AVX2__ */ void addScaleddiff(Vec3F& res, float s, Vec3F const& a, Vec3F const& b) { res = res + s * (a - b); } @@ -232,12 +232,12 @@ void go(bool dovec = true) { } int main() { -#ifdef CMS_USE_AVX +#ifdef CMS_USE_AVX2 std::cout << "using AVX" << std::endl; #endif testBa(); go(); -#ifdef CMS_USE_AVX +#ifdef CMS_USE_AVX2 go(false); #else go(); diff --git a/DataFormats/Math/test/SSEVec_t.cpp b/DataFormats/Math/test/SSEVec_t.cpp index 13c3552903112..3be62799b56f9 100644 --- a/DataFormats/Math/test/SSEVec_t.cpp +++ b/DataFormats/Math/test/SSEVec_t.cpp @@ -226,12 +226,12 @@ void go(bool dovect = true) { } int main() { -#ifdef CMS_USE_AVX - std::cout << "using AVX" << std::endl; +#ifdef CMS_USE_AVX2 + std::cout << "using AVX2" << std::endl; #endif testBa(); go(); -#ifdef CMS_USE_AVX +#ifdef CMS_USE_AVX2 go(false); #else go(); diff --git a/DataFormats/PatCandidates/BuildFile.xml b/DataFormats/PatCandidates/BuildFile.xml index 6a5afe57858b4..ee04851244b3f 100644 --- a/DataFormats/PatCandidates/BuildFile.xml +++ b/DataFormats/PatCandidates/BuildFile.xml @@ -16,7 +16,7 @@ - + diff --git a/DataFormats/PatCandidates/interface/Jet.h b/DataFormats/PatCandidates/interface/Jet.h index 941c1e9009a6c..448344110938d 100644 --- a/DataFormats/PatCandidates/interface/Jet.h +++ b/DataFormats/PatCandidates/interface/Jet.h @@ -31,7 +31,7 @@ #include "DataFormats/BTauReco/interface/TrackCountingTagInfo.h" #include "DataFormats/BTauReco/interface/CandSoftLeptonTagInfo.h" #include "DataFormats/BTauReco/interface/SoftLeptonTagInfo.h" -#include "SimDataFormats/JetMatching/interface/JetFlavourInfo.h" +#include "DataFormats/JetMatching/interface/JetFlavourInfo.h" #include "DataFormats/BTauReco/interface/PixelClusterTagInfo.h" #include "DataFormats/BTauReco/interface/CandSecondaryVertexTagInfo.h" #include "DataFormats/BTauReco/interface/SecondaryVertexTagInfo.h" diff --git a/DataFormats/Provenance/interface/BranchDescription.h b/DataFormats/Provenance/interface/BranchDescription.h index aa0281cd9b1f5..6d913bca365df 100644 --- a/DataFormats/Provenance/interface/BranchDescription.h +++ b/DataFormats/Provenance/interface/BranchDescription.h @@ -84,6 +84,7 @@ namespace edm { bool present() const { return !transient_.dropped_; } bool dropped() const { return transient_.dropped_; } void setDropped(bool isDropped) { transient_.dropped_ = isDropped; } + //returns true if unscheduled (produced()==true) or using delayed reader (produced()==false) bool onDemand() const { return transient_.onDemand_; } void setOnDemand(bool isOnDemand) { transient_.onDemand_ = isOnDemand; } bool availableOnlyAtEndTransition() const { return transient_.availableOnlyAtEndTransition_; } diff --git a/DataFormats/RPCDigi/BuildFile.xml b/DataFormats/RPCDigi/BuildFile.xml index 4742344ab3568..dce6f6555c8d7 100644 --- a/DataFormats/RPCDigi/BuildFile.xml +++ b/DataFormats/RPCDigi/BuildFile.xml @@ -1,7 +1,7 @@ - + diff --git a/DataFormats/TestObjects/interface/Thing.h b/DataFormats/TestObjects/interface/Thing.h index 08c082d6e88e7..65edab2393ded 100644 --- a/DataFormats/TestObjects/interface/Thing.h +++ b/DataFormats/TestObjects/interface/Thing.h @@ -8,6 +8,7 @@ namespace edmtest { struct Thing { ~Thing() {} Thing() : a() {} + explicit Thing(cms_int32_t v) : a{v} {} cms_int32_t a; }; diff --git a/DataFormats/TestObjects/interface/ThingWithIsEqual.h b/DataFormats/TestObjects/interface/ThingWithIsEqual.h index 26ebf6e857362..4e2fe02b83b25 100644 --- a/DataFormats/TestObjects/interface/ThingWithIsEqual.h +++ b/DataFormats/TestObjects/interface/ThingWithIsEqual.h @@ -8,6 +8,7 @@ namespace edmtest { struct ThingWithIsEqual { ~ThingWithIsEqual() {} ThingWithIsEqual() : a() {} + explicit ThingWithIsEqual(cms_int32_t v) : a(v) {} bool isProductEqual(ThingWithIsEqual const& thingWithIsEqual) const; cms_int32_t a; }; diff --git a/DataFormats/TestObjects/interface/ThingWithMerge.h b/DataFormats/TestObjects/interface/ThingWithMerge.h index 7c5d57af6c0a4..f5c25df6202ca 100644 --- a/DataFormats/TestObjects/interface/ThingWithMerge.h +++ b/DataFormats/TestObjects/interface/ThingWithMerge.h @@ -8,6 +8,7 @@ namespace edmtest { struct ThingWithMerge { ~ThingWithMerge() {} ThingWithMerge() : a() {} + explicit ThingWithMerge(cms_int32_t v) : a{v} {} bool mergeProduct(ThingWithMerge const& newThing); void swap(ThingWithMerge& iOther); cms_int32_t a; diff --git a/DetectorDescription/DDCMS/plugins/DDDetectorESProducer.cc b/DetectorDescription/DDCMS/plugins/DDDetectorESProducer.cc index 82607d5b5aed2..3634507eea779 100644 --- a/DetectorDescription/DDCMS/plugins/DDDetectorESProducer.cc +++ b/DetectorDescription/DDCMS/plugins/DDDetectorESProducer.cc @@ -22,6 +22,7 @@ #include "FWCore/Framework/interface/SourceFactory.h" #include "FWCore/Framework/interface/ESProducer.h" #include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Concurrency/interface/SharedResourceNames.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "CondFormats/Common/interface/FileBlob.h" #include "CondFormats/DataRecord/interface/MFGeometryFileRcd.h" @@ -68,6 +69,7 @@ DDDetectorESProducer::DDDetectorESProducer(const ParameterSet& iConfig) confGeomXMLFiles_(iConfig.getParameter("confGeomXMLFiles").fullPath()), rootDDName_(iConfig.getParameter("rootDDName")), label_(iConfig.getParameter("label")) { + usesResources({edm::ESSharedResourceNames::kDD4Hep}); if (rootDDName_ == "MagneticFieldVolumes:MAGF" || rootDDName_ == "cmsMagneticField:MAGF") { auto c = setWhatProduced(this, &DDDetectorESProducer::produceMagField, diff --git a/DetectorDescription/DDCMS/plugins/dd4hep/DDDefinitions2Objects.cc b/DetectorDescription/DDCMS/plugins/dd4hep/DDDefinitions2Objects.cc index 46b36392bb718..4eb1df558b43f 100644 --- a/DetectorDescription/DDCMS/plugins/dd4hep/DDDefinitions2Objects.cc +++ b/DetectorDescription/DDCMS/plugins/dd4hep/DDDefinitions2Objects.cc @@ -556,6 +556,8 @@ void Converter::operator()(xml_h element) const { } mix->AddElement(elt, 1.0); + mix->SetTemperature(ns.context()->description.stdConditions().temperature); + mix->SetPressure(ns.context()->description.stdConditions().pressure); /// Create medium from the material TGeoMedium* medium = mgr.GetMedium(matname); @@ -621,6 +623,8 @@ void Converter::operator()(xml_h element) const { ns.context()->unresolvedMaterials[nam].emplace_back( cms::DDParsingContext::CompositeMaterial(ns.prepend(fracname), fraction)); } + mix->SetTemperature(ns.context()->description.stdConditions().temperature); + mix->SetPressure(ns.context()->description.stdConditions().pressure); mix->SetRadLen(0e0); /// Create medium from the material TGeoMedium* medium = mgr.GetMedium(matname); @@ -2059,8 +2063,6 @@ static long load_dddefinition(Detector& det, xml_h element) { ns.addConstantNS("world_z", "450*m", "number"); ns.addConstantNS("Air", "materials:Air", "string"); ns.addConstantNS("Vacuum", "materials:Vacuum", "string"); - ns.addConstantNS("fm", "1e-12*m", "number"); - ns.addConstantNS("mum", "1e-6*m", "number"); string fname = xml::DocumentHandler::system_path(element); bool open_geometry = dddef.hasChild(DD_CMU(open_geometry)) ? dddef.child(DD_CMU(open_geometry)) : true; diff --git a/DetectorDescription/DDCMS/src/DDDetector.cc b/DetectorDescription/DDCMS/src/DDDetector.cc index 0cef53c93bbb3..f9f97890e50bf 100644 --- a/DetectorDescription/DDCMS/src/DDDetector.cc +++ b/DetectorDescription/DDCMS/src/DDDetector.cc @@ -11,10 +11,18 @@ namespace cms { DDDetector::DDDetector(const std::string& tag, const std::string& fileName, bool bigXML) : m_tag(tag) { + //We do not want to use any previously created TGeoManager but we do want to reset after we are done. + auto oldGeoManager = gGeoManager; + gGeoManager = nullptr; + auto resetManager = [oldGeoManager](TGeoManager*) { gGeoManager = oldGeoManager; }; + std::unique_ptr sentry(oldGeoManager, resetManager); + m_description = &dd4hep::Detector::getInstance(tag); m_description->addExtension(&m_vectors); m_description->addExtension(&m_partsels); m_description->addExtension(&m_specpars); + m_description->setStdConditions("NTP"); + edm::LogVerbatim("Geometry") << "DDDetector::ctor Setting DD4hep STD conditions to NTP"; if (bigXML) processXML(fileName); else diff --git a/EgammaAnalysis/ElectronTools/interface/SuperClusterHelper.h b/EgammaAnalysis/ElectronTools/interface/SuperClusterHelper.h index 92fb1d3034232..b7a505b4d97da 100644 --- a/EgammaAnalysis/ElectronTools/interface/SuperClusterHelper.h +++ b/EgammaAnalysis/ElectronTools/interface/SuperClusterHelper.h @@ -107,7 +107,6 @@ class SuperClusterHelper { /// cached variables /// covariance matrix bool covComputed_; - std::vector vCov_; float spp_; float sep_; /// local coordinates diff --git a/EgammaAnalysis/ElectronTools/src/EGammaMvaEleEstimator.cc b/EgammaAnalysis/ElectronTools/src/EGammaMvaEleEstimator.cc index d3377c55d84e7..460e8a1c166cf 100644 --- a/EgammaAnalysis/ElectronTools/src/EGammaMvaEleEstimator.cc +++ b/EgammaAnalysis/ElectronTools/src/EGammaMvaEleEstimator.cc @@ -986,7 +986,7 @@ Double_t EGammaMvaEleEstimator::mvaValue(const reco::GsfElectron& ele, // Pure ECAL -> shower shapes fMVAVar_see = ele.sigmaIetaIeta(); //EleSigmaIEtaIEta - std::vector vCov = myEcalCluster.localCovariances(*(ele.superCluster()->seed())); + const auto& vCov = myEcalCluster.localCovariances(*(ele.superCluster()->seed())); if (edm::isFinite(vCov[2])) fMVAVar_spp = sqrt(vCov[2]); //EleSigmaIPhiIPhi else @@ -1096,7 +1096,7 @@ Double_t EGammaMvaEleEstimator::mvaValue(const reco::GsfElectron& ele, // Pure ECAL -> shower shapes fMVAVar_see = ele.sigmaIetaIeta(); //EleSigmaIEtaIEta - std::vector vCov = myEcalCluster.localCovariances(*(ele.superCluster()->seed())); + const auto& vCov = myEcalCluster.localCovariances(*(ele.superCluster()->seed())); if (edm::isFinite(vCov[2])) fMVAVar_spp = sqrt(vCov[2]); //EleSigmaIPhiIPhi else @@ -1654,7 +1654,7 @@ Double_t EGammaMvaEleEstimator::IDIsoCombinedMvaValue(const reco::GsfElectron& e // Pure ECAL -> shower shapes fMVAVar_see = ele.sigmaIetaIeta(); //EleSigmaIEtaIEta - std::vector vCov = myEcalCluster.localCovariances(*(ele.superCluster()->seed())); + const auto& vCov = myEcalCluster.localCovariances(*(ele.superCluster()->seed())); if (edm::isFinite(vCov[2])) fMVAVar_spp = sqrt(vCov[2]); //EleSigmaIPhiIPhi else diff --git a/EgammaAnalysis/ElectronTools/src/EGammaMvaEleEstimatorCSA14.cc b/EgammaAnalysis/ElectronTools/src/EGammaMvaEleEstimatorCSA14.cc index d1992bb1d5a42..d95f636e1cb5d 100644 --- a/EgammaAnalysis/ElectronTools/src/EGammaMvaEleEstimatorCSA14.cc +++ b/EgammaAnalysis/ElectronTools/src/EGammaMvaEleEstimatorCSA14.cc @@ -283,7 +283,7 @@ Double_t EGammaMvaEleEstimatorCSA14::mvaValue(const reco::GsfElectron &ele, fMVAVar_detacalo = ele.deltaEtaSeedClusterTrackAtCalo(); // Pure ECAL -> shower shapes - std::vector vCov = myEcalCluster.localCovariances(*(ele.superCluster()->seed())); + const auto &vCov = myEcalCluster.localCovariances(*(ele.superCluster()->seed())); if (edm::isFinite(vCov[0])) fMVAVar_see = sqrt(vCov[0]); //EleSigmaIEtaIEta else diff --git a/EgammaAnalysis/ElectronTools/src/SuperClusterHelper.cc b/EgammaAnalysis/ElectronTools/src/SuperClusterHelper.cc index c7b4fc832788e..51f06f1fc96b5 100644 --- a/EgammaAnalysis/ElectronTools/src/SuperClusterHelper.cc +++ b/EgammaAnalysis/ElectronTools/src/SuperClusterHelper.cc @@ -104,7 +104,7 @@ SuperClusterHelper::SuperClusterHelper(const pat::Electron* electron, void SuperClusterHelper::computeLocalCovariances() { if (!covComputed_) { - vCov_ = EcalClusterTools::localCovariances(*seedCluster_, rechits_, topology_, 4.7); + const auto& vCov_ = EcalClusterTools::localCovariances(*seedCluster_, rechits_, topology_, 4.7); covComputed_ = true; spp_ = 0; diff --git a/EgammaAnalysis/ElectronTools/test/ElectronTestAnalyzer.cc b/EgammaAnalysis/ElectronTools/test/ElectronTestAnalyzer.cc index 26fc00eb61a75..56bd46f2c17de 100644 --- a/EgammaAnalysis/ElectronTools/test/ElectronTestAnalyzer.cc +++ b/EgammaAnalysis/ElectronTools/test/ElectronTestAnalyzer.cc @@ -468,7 +468,7 @@ void ElectronTestAnalyzer::myVar(const reco::GsfElectron& ele, myMVAVar_dphicalo = ele.deltaPhiSeedClusterTrackAtCalo(); myMVAVar_see = ele.sigmaIetaIeta(); //EleSigmaIEtaIEta - std::vector vCov = myEcalCluster.localCovariances(*(ele.superCluster()->seed())); + const auto& vCov = myEcalCluster.localCovariances(*(ele.superCluster()->seed())); if (edm::isFinite(vCov[2])) myMVAVar_spp = sqrt(vCov[2]); //EleSigmaIPhiIPhi else diff --git a/EventFilter/EcalRawToDigi/BuildFile.xml b/EventFilter/EcalRawToDigi/BuildFile.xml index a00aec3dfa99b..bd9d2ea239e3a 100644 --- a/EventFilter/EcalRawToDigi/BuildFile.xml +++ b/EventFilter/EcalRawToDigi/BuildFile.xml @@ -1,5 +1,4 @@ - @@ -9,8 +8,6 @@ - - diff --git a/EventFilter/EcalRawToDigi/plugins/DeclsForKernels.h b/EventFilter/EcalRawToDigi/plugins/DeclsForKernels.h index a6429121adc82..c94cfe0c3805f 100644 --- a/EventFilter/EcalRawToDigi/plugins/DeclsForKernels.h +++ b/EventFilter/EcalRawToDigi/plugins/DeclsForKernels.h @@ -4,9 +4,9 @@ #include #include "CUDADataFormats/EcalDigi/interface/DigisCollection.h" +#include "CondFormats/EcalObjects/interface/ElectronicsMappingGPU.h" #include "DataFormats/EcalDigi/interface/EcalDataFrame.h" #include "EventFilter/EcalRawToDigi/interface/DCCRawDataDefinitions.h" -#include "EventFilter/EcalRawToDigi/interface/ElectronicsMappingGPU.h" #include "HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h" #include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" #include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h" diff --git a/EventFilter/EcalRawToDigi/plugins/EcalCPUDigisProducer.cc b/EventFilter/EcalRawToDigi/plugins/EcalCPUDigisProducer.cc index 5563dd5b52cc8..97f9828e9f5ec 100644 --- a/EventFilter/EcalRawToDigi/plugins/EcalCPUDigisProducer.cc +++ b/EventFilter/EcalRawToDigi/plugins/EcalCPUDigisProducer.cc @@ -2,12 +2,12 @@ #include "CUDADataFormats/EcalDigi/interface/DigisCollection.h" #include "CondFormats/DataRecord/interface/EcalMappingElectronicsRcd.h" +#include "CondFormats/EcalObjects/interface/ElectronicsMappingGPU.h" #include "DataFormats/EcalDetId/interface/EcalDetIdCollections.h" #include "DataFormats/EcalDigi/interface/EcalDataFrame.h" #include "DataFormats/EcalDigi/interface/EcalDigiCollections.h" #include "DataFormats/EcalDigi/interface/EcalDigiCollections.h" #include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h" -#include "EventFilter/EcalRawToDigi/interface/ElectronicsMappingGPU.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/MakerMacros.h" diff --git a/EventFilter/EcalRawToDigi/plugins/EcalRawESProducersGPUDefs.cc b/EventFilter/EcalRawToDigi/plugins/EcalRawESProducersGPUDefs.cc index 84fcc7b2b2952..b2569a57ee575 100644 --- a/EventFilter/EcalRawToDigi/plugins/EcalRawESProducersGPUDefs.cc +++ b/EventFilter/EcalRawToDigi/plugins/EcalRawESProducersGPUDefs.cc @@ -1,5 +1,5 @@ #include "CondFormats/DataRecord/interface/EcalMappingElectronicsRcd.h" -#include "EventFilter/EcalRawToDigi/interface/ElectronicsMappingGPU.h" +#include "CondFormats/EcalObjects/interface/ElectronicsMappingGPU.h" #include "FWCore/Framework/interface/MakerMacros.h" #include "HeterogeneousCore/CUDACore/interface/ConvertingESProducerT.h" diff --git a/EventFilter/EcalRawToDigi/plugins/EcalRawToDigiGPU.cc b/EventFilter/EcalRawToDigi/plugins/EcalRawToDigiGPU.cc index 4f0743c9b1b51..5b58bf159b9d0 100644 --- a/EventFilter/EcalRawToDigi/plugins/EcalRawToDigiGPU.cc +++ b/EventFilter/EcalRawToDigi/plugins/EcalRawToDigiGPU.cc @@ -1,8 +1,8 @@ #include "CUDADataFormats/EcalDigi/interface/DigisCollection.h" #include "CondFormats/DataRecord/interface/EcalMappingElectronicsRcd.h" +#include "CondFormats/EcalObjects/interface/ElectronicsMappingGPU.h" #include "DataFormats/EcalDigi/interface/EcalDigiCollections.h" #include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h" -#include "EventFilter/EcalRawToDigi/interface/ElectronicsMappingGPU.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/MakerMacros.h" diff --git a/EventFilter/GEMRawToDigi/plugins/GEMDigiToRawModule.cc b/EventFilter/GEMRawToDigi/plugins/GEMDigiToRawModule.cc index ae046ca04303b..6d97bcc8162b3 100644 --- a/EventFilter/GEMRawToDigi/plugins/GEMDigiToRawModule.cc +++ b/EventFilter/GEMRawToDigi/plugins/GEMDigiToRawModule.cc @@ -127,11 +127,11 @@ void GEMDigiToRawModule::produce(edm::StreamID iID, edm::Event& iEvent, edm::Eve uint32_t amc13EvtLength = 0; std::unique_ptr amc13Event = std::make_unique(); - for (uint8_t amcNum = 0; amcNum < GEMeMap::maxAMCs_; ++amcNum) { + for (uint8_t amcNum = 0; amcNum <= GEMeMap::maxAMCs_; ++amcNum) { uint32_t amcSize = 0; std::unique_ptr amcData = std::make_unique(); - for (uint8_t gebId = 0; gebId < GEMeMap::maxGEBs_; ++gebId) { + for (uint8_t gebId = 0; gebId <= GEMeMap::maxGEBs_; ++gebId) { std::unique_ptr gebData = std::make_unique(); GEMROMapping::chamEC geb_ec{fedId, amcNum, gebId}; diff --git a/FWCore/Concurrency/interface/SharedResourceNames.h b/FWCore/Concurrency/interface/SharedResourceNames.h index d9fec9e76b803..0fcd634e8cca4 100644 --- a/FWCore/Concurrency/interface/SharedResourceNames.h +++ b/FWCore/Concurrency/interface/SharedResourceNames.h @@ -35,6 +35,7 @@ namespace edm { class ESSharedResourceNames { public: static const std::string kDDGeometry; + static const std::string kDD4Hep; }; // Each time the following function is called, it returns a different diff --git a/FWCore/Concurrency/src/SharedResourceNames.cc b/FWCore/Concurrency/src/SharedResourceNames.cc index d3d1afb2fb8c4..b043e9bfd731f 100644 --- a/FWCore/Concurrency/src/SharedResourceNames.cc +++ b/FWCore/Concurrency/src/SharedResourceNames.cc @@ -13,6 +13,7 @@ const std::string edm::SharedResourceNames::kEvtGen = "EvtGen"; const std::string edm::SharedResourceNames::kHerwig6 = "Herwig6"; const std::string edm::ESSharedResourceNames::kDDGeometry = "es_DDGeometry"; +const std::string edm::ESSharedResourceNames::kDD4Hep = "es_DD4Hep"; static std::atomic counter; diff --git a/FWCore/Framework/interface/Callback.h b/FWCore/Framework/interface/Callback.h index efe753fc1d763..2a85a423183a8 100644 --- a/FWCore/Framework/interface/Callback.h +++ b/FWCore/Framework/interface/Callback.h @@ -83,30 +83,34 @@ namespace edm { iRecord->activityRegistry()->preESModulePrefetchingSignal_.emit(iRecord->key(), callingContext_); if UNLIKELY (producer_->hasMayConsumes()) { //after prefetching need to do the mayGet + ServiceWeakToken weakToken = token; auto mayGetTask = edm::make_waiting_task( - [this, iRecord, iEventSetupImpl, token, group](std::exception_ptr const* iExcept) { + [this, iRecord, iEventSetupImpl, weakToken, group](std::exception_ptr const* iExcept) { if (iExcept) { - runProducerAsync(group, iExcept, iRecord, iEventSetupImpl, token); + runProducerAsync(group, iExcept, iRecord, iEventSetupImpl, weakToken.lock()); return; } if (handleMayGet(iRecord, iEventSetupImpl)) { auto runTask = edm::make_waiting_task( - [this, group, iRecord, iEventSetupImpl, token](std::exception_ptr const* iExcept) { - runProducerAsync(group, iExcept, iRecord, iEventSetupImpl, token); + [this, group, iRecord, iEventSetupImpl, weakToken](std::exception_ptr const* iExcept) { + runProducerAsync(group, iExcept, iRecord, iEventSetupImpl, weakToken.lock()); }); - prefetchNeededDataAsync( - WaitingTaskHolder(*group, runTask), iEventSetupImpl, &((*postMayGetProxies_).front()), token); + prefetchNeededDataAsync(WaitingTaskHolder(*group, runTask), + iEventSetupImpl, + &((*postMayGetProxies_).front()), + weakToken.lock()); } else { - runProducerAsync(group, iExcept, iRecord, iEventSetupImpl, token); + runProducerAsync(group, iExcept, iRecord, iEventSetupImpl, weakToken.lock()); } }); //Get everything we can before knowing about the mayGets prefetchNeededDataAsync(WaitingTaskHolder(*group, mayGetTask), iEventSetupImpl, getTokenIndices(), token); } else { + ServiceWeakToken weakToken = token; auto task = edm::make_waiting_task( - [this, group, iRecord, iEventSetupImpl, token](std::exception_ptr const* iExcept) { - runProducerAsync(group, iExcept, iRecord, iEventSetupImpl, token); + [this, group, iRecord, iEventSetupImpl, weakToken](std::exception_ptr const* iExcept) { + runProducerAsync(group, iExcept, iRecord, iEventSetupImpl, weakToken.lock()); }); prefetchNeededDataAsync(WaitingTaskHolder(*group, task), iEventSetupImpl, getTokenIndices(), token); } @@ -176,11 +180,12 @@ namespace edm { return; } iRecord->activityRegistry()->postESModulePrefetchingSignal_.emit(iRecord->key(), callingContext_); - producer_->queue().push(*iGroup, [this, iRecord, iEventSetupImpl, token]() { + ServiceWeakToken weakToken = token; + producer_->queue().push(*iGroup, [this, iRecord, iEventSetupImpl, weakToken]() { callingContext_.setState(ESModuleCallingContext::State::kRunning); std::exception_ptr exceptPtr; try { - convertException::wrap([this, iRecord, iEventSetupImpl, token] { + convertException::wrap([this, iRecord, iEventSetupImpl, weakToken] { auto proxies = getTokenIndices(); if (postMayGetProxies_) { proxies = &((*postMayGetProxies_).front()); @@ -188,7 +193,7 @@ namespace edm { TRecord rec; edm::ESParentContext pc{&callingContext_}; rec.setImpl(iRecord, transitionID(), proxies, iEventSetupImpl, &pc, true); - ServiceRegistry::Operate operate(token); + ServiceRegistry::Operate operate(weakToken.lock()); iRecord->activityRegistry()->preESModuleSignal_.emit(iRecord->key(), callingContext_); struct EndGuard { EndGuard(EventSetupRecordImpl const* iRecord, ESModuleCallingContext const& iContext) diff --git a/FWCore/Framework/interface/DelayedReader.h b/FWCore/Framework/interface/DelayedReader.h index 19d2964e61796..0ac7a55f37318 100644 --- a/FWCore/Framework/interface/DelayedReader.h +++ b/FWCore/Framework/interface/DelayedReader.h @@ -29,7 +29,7 @@ namespace edm { class DelayedReader { public: virtual ~DelayedReader(); - std::unique_ptr getProduct(BranchID const& k, + std::shared_ptr getProduct(BranchID const& k, EDProductGetter const* ep, ModuleCallingContext const* mcc = nullptr); @@ -44,7 +44,7 @@ namespace edm { postEventReadFromSourceSignal() const = 0; private: - virtual std::unique_ptr getProduct_(BranchID const& k, EDProductGetter const* ep) = 0; + virtual std::shared_ptr getProduct_(BranchID const& k, EDProductGetter const* ep) = 0; virtual void mergeReaders_(DelayedReader*) = 0; virtual void reset_() = 0; virtual std::pair sharedResources_() const; diff --git a/FWCore/Framework/interface/EDLooperBase.h b/FWCore/Framework/interface/EDLooperBase.h index ceb0fb3071ada..96f6854a7ffc2 100644 --- a/FWCore/Framework/interface/EDLooperBase.h +++ b/FWCore/Framework/interface/EDLooperBase.h @@ -54,6 +54,7 @@ // #include "DataFormats/Provenance/interface/ModuleDescription.h" +#include "FWCore/Framework/interface/EDConsumerBase.h" #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/ServiceRegistry/interface/ModuleCallingContext.h" #include "FWCore/Utilities/interface/propagate_const.h" @@ -74,12 +75,12 @@ namespace edm { class ProcessingController; class ActivityRegistry; - class EDLooperBase { + class EDLooperBase : public EDConsumerBase { public: enum Status { kContinue, kStop }; EDLooperBase(); - virtual ~EDLooperBase() noexcept(false); + ~EDLooperBase() noexcept(false) override; EDLooperBase(EDLooperBase const&) = delete; // Disallow copying and moving EDLooperBase& operator=(EDLooperBase const&) = delete; // Disallow copying and moving diff --git a/FWCore/Framework/interface/LooperFactory.h b/FWCore/Framework/interface/LooperFactory.h index 1274ce0bf723d..4a3b6b9ef65c1 100644 --- a/FWCore/Framework/interface/LooperFactory.h +++ b/FWCore/Framework/interface/LooperFactory.h @@ -25,6 +25,7 @@ // user include files #include "FWCore/Framework/interface/ComponentFactory.h" #include "FWCore/Framework/interface/EventSetupProvider.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescriptionFillerPluginFactory.h" // forward declarations namespace edm { @@ -104,7 +105,8 @@ namespace edm { } // namespace eventsetup } // namespace edm -#define DEFINE_FWK_LOOPER(type) \ - DEFINE_EDM_PLUGIN(edm::eventsetup::LooperPluginFactory, edm::eventsetup::LooperMaker, #type) +#define DEFINE_FWK_LOOPER(type) \ + DEFINE_EDM_PLUGIN(edm::eventsetup::LooperPluginFactory, edm::eventsetup::LooperMaker, #type); \ + DEFINE_DESC_FILLER_FOR_EDLOOPERS(type) #endif diff --git a/FWCore/Framework/interface/Principal.h b/FWCore/Framework/interface/Principal.h index 3d230e4024405..03f7b6b995954 100644 --- a/FWCore/Framework/interface/Principal.h +++ b/FWCore/Framework/interface/Principal.h @@ -47,7 +47,6 @@ namespace edm { class ProductResolverIndexHelper; class EDConsumerBase; class SharedResourcesAcquirer; - class InputProductResolver; class UnscheduledConfigurator; struct FilledProductPtr { @@ -209,7 +208,7 @@ namespace edm { ProductResolverBase const* getExistingProduct(BranchID const& branchID) const; ProductResolverBase const* getExistingProduct(ProductResolverBase const& phb) const; - void putOrMerge(BranchDescription const& bd, std::unique_ptr edp) const; + void put_(BranchDescription const& bd, std::unique_ptr edp) const; //F must take an argument of type ProductResolverBase* template @@ -225,7 +224,8 @@ namespace edm { void addScheduledProduct(std::shared_ptr bd); void addSourceProduct(std::shared_ptr bd); - void addInputProduct(std::shared_ptr bd); + void addDelayedReaderInputProduct(std::shared_ptr bd); + void addPutOnReadInputProduct(std::shared_ptr bd); void addUnscheduledProduct(std::shared_ptr bd); void addAliasedProduct(std::shared_ptr bd); void addSwitchProducerProduct(std::shared_ptr bd); @@ -264,7 +264,7 @@ namespace edm { SharedResourcesAcquirer* sra, ModuleCallingContext const* mcc) const; - void putOrMerge(std::unique_ptr prod, ProductResolverBase const* productResolver) const; + void put_(std::unique_ptr prod, ProductResolverBase const* productResolver) const; std::shared_ptr processHistoryPtr_; diff --git a/FWCore/Framework/interface/ProductResolverBase.h b/FWCore/Framework/interface/ProductResolverBase.h index c8ebc537100fd..4c7e094c028de 100644 --- a/FWCore/Framework/interface/ProductResolverBase.h +++ b/FWCore/Framework/interface/ProductResolverBase.h @@ -159,15 +159,6 @@ namespace edm { // Retrieves the product ID of the product. ProductID const& productID() const { return provenance()->productID(); } - // Puts the product into the ProductResolver. - void putProduct(std::unique_ptr edp) const { putProduct_(std::move(edp)); } - - // If the product already exists we merge, else will put - void putOrMergeProduct(std::unique_ptr edp, - MergeableRunProductMetadata const* mergeableRunProductMetadata = nullptr) const { - putOrMergeProduct_(std::move(edp), mergeableRunProductMetadata); - } - virtual void connectTo(ProductResolverBase const&, Principal const*) = 0; virtual void setupUnscheduled(UnscheduledConfigurator const&); @@ -192,9 +183,6 @@ namespace edm { virtual bool productWasDeleted_() const = 0; virtual bool productWasFetchedAndIsValid_(bool iSkipCurrentProcess) const = 0; - virtual void putProduct_(std::unique_ptr edp) const = 0; - virtual void putOrMergeProduct_(std::unique_ptr edp, - MergeableRunProductMetadata const* mergeableRunProductMetadata) const = 0; virtual BranchDescription const& branchDescription_() const = 0; virtual void resetBranchDescription_(std::shared_ptr bd) = 0; virtual Provenance const* provenance_() const = 0; diff --git a/FWCore/Framework/interface/RunPrincipal.h b/FWCore/Framework/interface/RunPrincipal.h index ef1e51553e7be..970b709ac8b10 100644 --- a/FWCore/Framework/interface/RunPrincipal.h +++ b/FWCore/Framework/interface/RunPrincipal.h @@ -76,6 +76,8 @@ namespace edm { void put(ProductResolverIndex index, std::unique_ptr edp) const; + void putOrMerge(BranchDescription const& bd, std::unique_ptr edp) const; + MergeableRunProductMetadata* mergeableRunProductMetadata() { return mergeableRunProductMetadataPtr_.get(); } void preReadFile(); diff --git a/FWCore/Framework/src/DelayedReader.cc b/FWCore/Framework/src/DelayedReader.cc index 32ae6ebb02fba..024447f2477f8 100644 --- a/FWCore/Framework/src/DelayedReader.cc +++ b/FWCore/Framework/src/DelayedReader.cc @@ -14,7 +14,7 @@ namespace edm { DelayedReader::~DelayedReader() {} - std::unique_ptr DelayedReader::getProduct(BranchID const& k, + std::shared_ptr DelayedReader::getProduct(BranchID const& k, EDProductGetter const* ep, ModuleCallingContext const* mcc) { auto preSignal = preEventReadFromSourceSignal(); diff --git a/FWCore/Framework/src/EDLooperBase.cc b/FWCore/Framework/src/EDLooperBase.cc index 85ba5e0ccbcb7..a762451bada14 100644 --- a/FWCore/Framework/src/EDLooperBase.cc +++ b/FWCore/Framework/src/EDLooperBase.cc @@ -52,11 +52,13 @@ namespace edm { ParentContext parentContext(streamContext); ModuleContextSentry moduleContextSentry(&moduleCallingContext_, parentContext); Event event(eventPrincipal, moduleDescription_, &moduleCallingContext_); + event.setConsumer(this); Status status = kContinue; try { ESParentContext parentC(&moduleCallingContext_); - const EventSetup es{esi, static_cast(Transition::Event), nullptr, parentC, false}; + const EventSetup es{ + esi, static_cast(Transition::Event), esGetTokenIndices(Transition::Event), parentC, false}; status = duringLoop(event, es, ioController); } catch (cms::Exception& e) { e.addContext("Calling the 'duringLoop' method of a looper"); @@ -72,7 +74,8 @@ namespace edm { EDLooperBase::Status EDLooperBase::doEndOfLoop(const edm::EventSetupImpl& esi) { ESParentContext parentC(&moduleCallingContext_); - const EventSetup es{esi, static_cast(Transition::EndRun), nullptr, parentC, false}; + const EventSetup es{ + esi, static_cast(Transition::EndRun), esGetTokenIndices(Transition::EndRun), parentC, false}; return endOfLoop(es, iCounter_); } @@ -86,7 +89,11 @@ namespace edm { void EDLooperBase::beginOfJob(const edm::EventSetupImpl& iImpl) { ESParentContext parentC(&moduleCallingContext_); - beginOfJob(EventSetup{iImpl, static_cast(Transition::BeginRun), nullptr, parentC, false}); + beginOfJob(EventSetup{iImpl, + static_cast(Transition::BeginRun), + esGetTokenIndices(Transition::BeginRun), + parentC, + false}); } void EDLooperBase::beginOfJob(const edm::EventSetup&) { beginOfJob(); } void EDLooperBase::beginOfJob() {} @@ -103,8 +110,10 @@ namespace edm { ParentContext parentContext(&globalContext); ModuleContextSentry moduleContextSentry(&moduleCallingContext_, parentContext); Run run(iRP, moduleDescription_, &moduleCallingContext_, false); + run.setConsumer(this); ESParentContext parentC(&moduleCallingContext_); - const EventSetup es{iES, static_cast(Transition::BeginRun), nullptr, parentC, false}; + const EventSetup es{ + iES, static_cast(Transition::BeginRun), esGetTokenIndices(Transition::BeginRun), parentC, false}; beginRun(run, es); } @@ -118,8 +127,10 @@ namespace edm { ParentContext parentContext(&globalContext); ModuleContextSentry moduleContextSentry(&moduleCallingContext_, parentContext); Run run(iRP, moduleDescription_, &moduleCallingContext_, true); + run.setConsumer(this); ESParentContext parentC(&moduleCallingContext_); - const EventSetup es{iES, static_cast(Transition::EndRun), nullptr, parentC, false}; + const EventSetup es{ + iES, static_cast(Transition::EndRun), esGetTokenIndices(Transition::EndRun), parentC, false}; endRun(run, es); } void EDLooperBase::doBeginLuminosityBlock(LuminosityBlockPrincipal& iLB, @@ -134,8 +145,13 @@ namespace edm { ParentContext parentContext(&globalContext); ModuleContextSentry moduleContextSentry(&moduleCallingContext_, parentContext); LuminosityBlock luminosityBlock(iLB, moduleDescription_, &moduleCallingContext_, false); + luminosityBlock.setConsumer(this); ESParentContext parentC(&moduleCallingContext_); - const EventSetup es{iES, static_cast(Transition::BeginLuminosityBlock), nullptr, parentC, false}; + const EventSetup es{iES, + static_cast(Transition::BeginLuminosityBlock), + esGetTokenIndices(Transition::BeginLuminosityBlock), + parentC, + false}; beginLuminosityBlock(luminosityBlock, es); } void EDLooperBase::doEndLuminosityBlock(LuminosityBlockPrincipal& iLB, @@ -150,8 +166,13 @@ namespace edm { ParentContext parentContext(&globalContext); ModuleContextSentry moduleContextSentry(&moduleCallingContext_, parentContext); LuminosityBlock luminosityBlock(iLB, moduleDescription_, &moduleCallingContext_, true); + luminosityBlock.setConsumer(this); ESParentContext parentC(&moduleCallingContext_); - const EventSetup es{iES, static_cast(Transition::EndLuminosityBlock), nullptr, parentC, false}; + const EventSetup es{iES, + static_cast(Transition::EndLuminosityBlock), + esGetTokenIndices(Transition::EndLuminosityBlock), + parentC, + false}; endLuminosityBlock(luminosityBlock, es); } diff --git a/FWCore/Framework/src/Event.cc b/FWCore/Framework/src/Event.cc index 2a4cfdf8b0072..54dfb44246144 100644 --- a/FWCore/Framework/src/Event.cc +++ b/FWCore/Framework/src/Event.cc @@ -8,6 +8,7 @@ #include "FWCore/Framework/interface/EventPrincipal.h" #include "FWCore/Framework/interface/LuminosityBlock.h" #include "FWCore/Framework/src/TransitionInfoTypes.h" +#include "FWCore/Framework/src/ProductPutterBase.h" #include "FWCore/ParameterSet/interface/Registry.h" #include "FWCore/Utilities/interface/Algorithms.h" #include "FWCore/Utilities/interface/InputTag.h" @@ -169,7 +170,7 @@ namespace edm { for (auto index : iShouldPut) { auto resolver = p.getProductResolverByIndex(index); if (not resolver->productResolved()) { - resolver->putProduct(std::unique_ptr()); + dynamic_cast(resolver)->putProduct(std::unique_ptr()); } } } diff --git a/FWCore/Framework/src/EventPrincipal.cc b/FWCore/Framework/src/EventPrincipal.cc index 40fe4676307b6..ff4bd4360eb63 100644 --- a/FWCore/Framework/src/EventPrincipal.cc +++ b/FWCore/Framework/src/EventPrincipal.cc @@ -17,6 +17,7 @@ #include "FWCore/Framework/interface/ProductResolverBase.h" #include "FWCore/Framework/interface/LuminosityBlockPrincipal.h" #include "FWCore/Framework/src/ProductDeletedException.h" +#include "FWCore/Framework/src/ProductPutterBase.h" #include "FWCore/Framework/interface/SharedResourcesAcquirer.h" #include "FWCore/Utilities/interface/Algorithms.h" #include "FWCore/Utilities/interface/EDMException.h" @@ -189,7 +190,7 @@ namespace edm { auto phb = getExistingProduct(bd.branchID()); assert(phb); // ProductResolver assumes ownership - phb->putProduct(std::move(edp)); + dynamic_cast(phb)->putProduct(std::move(edp)); } void EventPrincipal::put(ProductResolverIndex index, std::unique_ptr edp, ParentageID parentage) const { @@ -204,7 +205,7 @@ namespace edm { assert(phb); // ProductResolver assumes ownership - phb->putProduct(std::move(edp)); + dynamic_cast(phb)->putProduct(std::move(edp)); } void EventPrincipal::putOnRead(BranchDescription const& bd, @@ -217,7 +218,7 @@ namespace edm { auto phb = getExistingProduct(bd.branchID()); assert(phb); // ProductResolver assumes ownership - phb->putProduct(std::move(edp)); + dynamic_cast(phb)->putProduct(std::move(edp)); } BranchID EventPrincipal::pidToBid(ProductID const& pid) const { diff --git a/FWCore/Framework/src/EventProcessor.cc b/FWCore/Framework/src/EventProcessor.cc index 707265bd11c9b..67fc7d6317743 100644 --- a/FWCore/Framework/src/EventProcessor.cc +++ b/FWCore/Framework/src/EventProcessor.cc @@ -192,6 +192,21 @@ namespace edm { } // --------------------------------------------------------------- + void validateLooper(ParameterSet& pset) { + auto const modtype = pset.getParameter("@module_type"); + auto const moduleLabel = pset.getParameter("@module_label"); + auto filler = ParameterSetDescriptionFillerPluginFactory::get()->create(modtype); + ConfigurationDescriptions descriptions(filler->baseType(), modtype); + filler->fill(descriptions); + try { + edm::convertException::wrap([&]() { descriptions.validate(pset, moduleLabel); }); + } catch (cms::Exception& iException) { + iException.addContext( + fmt::format("Validating configuration of EDLooper of type {} with label: '{}'", modtype, moduleLabel)); + throw; + } + } + std::shared_ptr fillLooper(eventsetup::EventSetupsController& esController, eventsetup::EventSetupProvider& cp, ParameterSet& params) { @@ -208,6 +223,7 @@ namespace edm { for (std::vector::iterator itName = loopers.begin(), itNameEnd = loopers.end(); itName != itNameEnd; ++itName) { ParameterSet* providerPSet = params.getPSetForUpdate(*itName); + validateLooper(*providerPSet); providerPSet->registerIt(); vLooper = eventsetup::LooperFactory::get()->addTo(esController, cp, *providerPSet); } @@ -625,6 +641,18 @@ namespace edm { } espController_->finishConfiguration(); schedule_->beginJob(*preg_, esp_->recordsToProxyIndices()); + if (looper_) { + constexpr bool mustPrefetchMayGet = true; + auto const processBlockLookup = preg_->productLookup(InProcess); + auto const runLookup = preg_->productLookup(InRun); + auto const lumiLookup = preg_->productLookup(InLumi); + auto const eventLookup = preg_->productLookup(InEvent); + looper_->updateLookup(InProcess, *processBlockLookup, mustPrefetchMayGet); + looper_->updateLookup(InRun, *runLookup, mustPrefetchMayGet); + looper_->updateLookup(InLumi, *lumiLookup, mustPrefetchMayGet); + looper_->updateLookup(InEvent, *eventLookup, mustPrefetchMayGet); + looper_->updateLookup(esp_->recordsToProxyIndices()); + } // toerror.succeeded(); // should we add this? for_all(subProcesses_, [](auto& subProcess) { subProcess.doBeginJob(); }); actReg_->postBeginJobSignal_(); @@ -1421,6 +1449,8 @@ namespace edm { EventSetupImpl const& es = iLumiStatus->eventSetupImpl(esp_->subProcessIndex()); std::vector> const* eventSetupImpls = &iLumiStatus->eventSetupImpls(); + // group is used later in this function, and lives outside of iTask + tbb::task_group& taskGroup = *iTask.group(); auto finalTaskForThisLumi = edm::make_waiting_task( [status = std::move(iLumiStatus), iTask = std::move(iTask), this](std::exception_ptr const* iPtr) mutable { std::exception_ptr ptr; @@ -1478,10 +1508,8 @@ namespace edm { }); auto writeT = edm::make_waiting_task( - [this, - didGlobalBeginSucceed, - &lumiPrincipal = lp, - task = WaitingTaskHolder(*iTask.group(), finalTaskForThisLumi)](std::exception_ptr const* iExcept) mutable { + [this, didGlobalBeginSucceed, &lumiPrincipal = lp, task = WaitingTaskHolder(taskGroup, finalTaskForThisLumi)]( + std::exception_ptr const* iExcept) mutable { if (iExcept) { task.doneWaiting(*iExcept); } else { @@ -1496,7 +1524,7 @@ namespace edm { LumiTransitionInfo transitionInfo(lp, es, eventSetupImpls); using Traits = OccurrenceTraits; - endGlobalTransitionAsync(WaitingTaskHolder(*iTask.group(), writeT), + endGlobalTransitionAsync(WaitingTaskHolder(taskGroup, writeT), *schedule_, transitionInfo, serviceToken_, diff --git a/FWCore/Framework/src/GlobalSchedule.h b/FWCore/Framework/src/GlobalSchedule.h index 2496704455f83..a21d9eaf86cfc 100644 --- a/FWCore/Framework/src/GlobalSchedule.h +++ b/FWCore/Framework/src/GlobalSchedule.h @@ -175,8 +175,9 @@ namespace edm { T::preScheduleSignal(actReg_.get(), globalContext.get()); } + ServiceWeakToken weakToken = token; auto doneTask = make_waiting_task( - [this, iHolder, cleaningUpAfterException, globalContext, token](std::exception_ptr const* iPtr) mutable { + [this, iHolder, cleaningUpAfterException, globalContext, weakToken](std::exception_ptr const* iPtr) mutable { std::exception_ptr excpt; if (iPtr) { excpt = *iPtr; @@ -189,19 +190,19 @@ namespace edm { if (ex.context().empty()) { ost << "Processing " << T::transitionName() << " "; } - ServiceRegistry::Operate op(token); + ServiceRegistry::Operate op(weakToken.lock()); addContextAndPrintException(ost.str().c_str(), ex, cleaningUpAfterException); excpt = std::current_exception(); } if (actReg_) { - ServiceRegistry::Operate op(token); + ServiceRegistry::Operate op(weakToken.lock()); actReg_->preGlobalEarlyTerminationSignal_(*globalContext, TerminationOrigin::ExceptionFromThisContext); } } if (actReg_) { // Caught exception is propagated via WaitingTaskHolder CMS_SA_ALLOW try { - ServiceRegistry::Operate op(token); + ServiceRegistry::Operate op(weakToken.lock()); T::postScheduleSignal(actReg_.get(), globalContext.get()); } catch (...) { if (not excpt) { diff --git a/FWCore/Framework/src/LuminosityBlock.cc b/FWCore/Framework/src/LuminosityBlock.cc index 518940e203ca0..1deedf0230ba8 100644 --- a/FWCore/Framework/src/LuminosityBlock.cc +++ b/FWCore/Framework/src/LuminosityBlock.cc @@ -3,6 +3,7 @@ #include "FWCore/Framework/interface/LuminosityBlockPrincipal.h" #include "FWCore/Framework/interface/Run.h" #include "FWCore/Framework/src/TransitionInfoTypes.h" +#include "FWCore/Framework/src/ProductPutterBase.h" #include "FWCore/Utilities/interface/Algorithms.h" #include "FWCore/Utilities/interface/get_underlying_safe.h" @@ -92,7 +93,7 @@ namespace edm { auto resolver = p.getProductResolverByIndex(index); if (not resolver->productResolved() and isEndTransition(provRecorder_.transition()) == resolver->branchDescription().availableOnlyAtEndTransition()) { - resolver->putProduct(std::unique_ptr()); + dynamic_cast(resolver)->putProduct(std::unique_ptr()); } } } diff --git a/FWCore/Framework/src/LuminosityBlockPrincipal.cc b/FWCore/Framework/src/LuminosityBlockPrincipal.cc index 4f6f6347ea337..e713688b4a065 100644 --- a/FWCore/Framework/src/LuminosityBlockPrincipal.cc +++ b/FWCore/Framework/src/LuminosityBlockPrincipal.cc @@ -1,5 +1,5 @@ #include "FWCore/Framework/interface/LuminosityBlockPrincipal.h" - +#include "FWCore/Framework/src/ProductPutterBase.h" #include "DataFormats/Provenance/interface/ProductRegistry.h" namespace edm { @@ -19,12 +19,12 @@ namespace edm { } void LuminosityBlockPrincipal::put(BranchDescription const& bd, std::unique_ptr edp) const { - putOrMerge(bd, std::move(edp)); + put_(bd, std::move(edp)); } void LuminosityBlockPrincipal::put(ProductResolverIndex index, std::unique_ptr edp) const { auto phb = getProductResolverByIndex(index); - phb->putOrMergeProduct(std::move(edp)); + dynamic_cast(phb)->putProduct(std::move(edp)); } unsigned int LuminosityBlockPrincipal::transitionIndex_() const { return index().value(); } diff --git a/FWCore/Framework/src/Path.cc b/FWCore/Framework/src/Path.cc index 600f8165734a5..5545644c010a4 100644 --- a/FWCore/Framework/src/Path.cc +++ b/FWCore/Framework/src/Path.cc @@ -358,9 +358,10 @@ namespace edm { ++lastModuleIndex; } for (; lastModuleIndex >= firstModuleIndex; --lastModuleIndex) { - auto nextTask = make_waiting_task([this, lastModuleIndex, info = iInfo, iID, iContext, token = iToken, &iGroup]( + ServiceWeakToken weakToken = iToken; + auto nextTask = make_waiting_task([this, lastModuleIndex, info = iInfo, iID, iContext, weakToken, &iGroup]( std::exception_ptr const* iException) { - this->workerFinished(iException, lastModuleIndex, info, token, iID, iContext, iGroup); + this->workerFinished(iException, lastModuleIndex, info, weakToken.lock(), iID, iContext, iGroup); }); workers_[lastModuleIndex].runWorkerAsync>( WaitingTaskHolder(iGroup, nextTask), iInfo, iToken, iID, iContext); diff --git a/FWCore/Framework/src/Principal.cc b/FWCore/Framework/src/Principal.cc index 25228ea5de14f..47798eabdb057 100644 --- a/FWCore/Framework/src/Principal.cc +++ b/FWCore/Framework/src/Principal.cc @@ -10,6 +10,7 @@ #include "FWCore/Framework/interface/DelayedReader.h" #include "FWCore/Framework/interface/HistoryAppender.h" #include "FWCore/Framework/src/ProductDeletedException.h" +#include "FWCore/Framework/src/ProductPutterBase.h" #include "FWCore/Framework/interface/EDConsumerBase.h" #include "ProductResolvers.h" #include "FWCore/Utilities/interface/EDMException.h" @@ -166,7 +167,11 @@ namespace edm { addScheduledProduct(cbd); } } else { - addInputProduct(cbd); + if (bd.onDemand()) { + addDelayedReaderInputProduct(cbd); + } else { + addPutOnReadInputProduct(cbd); + } } } } else { @@ -333,8 +338,12 @@ namespace edm { addProductOrThrow(std::move(phb)); } - void Principal::addInputProduct(std::shared_ptr bd) { - addProductOrThrow(std::make_unique(std::move(bd))); + void Principal::addDelayedReaderInputProduct(std::shared_ptr bd) { + addProductOrThrow(std::make_unique(std::move(bd))); + } + + void Principal::addPutOnReadInputProduct(std::shared_ptr bd) { + addProductOrThrow(std::make_unique(std::move(bd))); } void Principal::addUnscheduledProduct(std::shared_ptr bd) { @@ -907,11 +916,11 @@ namespace edm { return std::monostate{}; } - void Principal::putOrMerge(std::unique_ptr prod, ProductResolverBase const* phb) const { - phb->putOrMergeProduct(std::move(prod)); + void Principal::put_(std::unique_ptr prod, ProductResolverBase const* phb) const { + dynamic_cast(phb)->putProduct(std::move(prod)); } - void Principal::putOrMerge(BranchDescription const& bd, std::unique_ptr edp) const { + void Principal::put_(BranchDescription const& bd, std::unique_ptr edp) const { if (edp.get() == nullptr) { throw edm::Exception(edm::errors::InsertFailure, "Null Pointer") << "put: Cannot put because unique_ptr to product is null." @@ -920,7 +929,7 @@ namespace edm { auto phb = getExistingProduct(bd.branchID()); assert(phb); // ProductResolver assumes ownership - putOrMerge(std::move(edp), phb); + put_(std::move(edp), phb); } void Principal::adjustIndexesAfterProductRegistryAddition() { @@ -936,7 +945,11 @@ namespace edm { // no product holder. Must add one. The new entry must be an input product holder. assert(!bd.produced()); auto cbd = std::make_shared(bd); - addInputProduct(cbd); + if (bd.onDemand()) { + addDelayedReaderInputProduct(cbd); + } else { + addPutOnReadInputProduct(cbd); + } changed = true; } } diff --git a/FWCore/Framework/src/ProcessBlock.cc b/FWCore/Framework/src/ProcessBlock.cc index 107a43412c39a..b7e3215c4c55c 100644 --- a/FWCore/Framework/src/ProcessBlock.cc +++ b/FWCore/Framework/src/ProcessBlock.cc @@ -1,5 +1,6 @@ #include "FWCore/Framework/interface/ProcessBlock.h" #include "FWCore/Framework/interface/ProcessBlockPrincipal.h" +#include "FWCore/Framework/src/ProductPutterBase.h" namespace edm { @@ -42,7 +43,7 @@ namespace edm { auto resolver = principal.getProductResolverByIndex(index); if (not resolver->productResolved() and isEndTransition(provRecorder_.transition()) == resolver->branchDescription().availableOnlyAtEndTransition()) { - resolver->putProduct(std::unique_ptr()); + dynamic_cast(resolver)->putProduct(std::unique_ptr()); } } } diff --git a/FWCore/Framework/src/ProcessBlockPrincipal.cc b/FWCore/Framework/src/ProcessBlockPrincipal.cc index 281f1408873c9..a17c489402d52 100644 --- a/FWCore/Framework/src/ProcessBlockPrincipal.cc +++ b/FWCore/Framework/src/ProcessBlockPrincipal.cc @@ -1,4 +1,5 @@ #include "FWCore/Framework/interface/ProcessBlockPrincipal.h" +#include "FWCore/Framework/src/ProductPutterBase.h" #include "DataFormats/Provenance/interface/ProductRegistry.h" #include "DataFormats/Provenance/interface/BranchType.h" @@ -19,7 +20,7 @@ namespace edm { void ProcessBlockPrincipal::put(ProductResolverIndex index, std::unique_ptr edp) const { auto phb = getProductResolverByIndex(index); - phb->putProduct(std::move(edp)); + dynamic_cast(phb)->putProduct(std::move(edp)); } unsigned int ProcessBlockPrincipal::transitionIndex_() const { diff --git a/FWCore/Framework/src/ProductPutOrMergerBase.h b/FWCore/Framework/src/ProductPutOrMergerBase.h new file mode 100644 index 0000000000000..cd7ed2655011d --- /dev/null +++ b/FWCore/Framework/src/ProductPutOrMergerBase.h @@ -0,0 +1,26 @@ +// +// ProductPutOrMergerBase.h +// CMSSW +// +// Created by Chris Jones on 3/18/21. +// + +#ifndef FWCore_Framework_ProductPutOrMergerBase_h +#define FWCore_Framework_ProductPutOrMergerBase_h + +#include + +namespace edm { + class WrapperBase; + class MergeableRunProductMetadata; + + class ProductPutOrMergerBase { + public: + ProductPutOrMergerBase() = default; + virtual ~ProductPutOrMergerBase() = default; + + virtual void putOrMergeProduct(std::unique_ptr edp) const = 0; + }; +} // namespace edm + +#endif /* ProductPutOrMergerBase_h */ diff --git a/FWCore/Framework/src/ProductPutterBase.h b/FWCore/Framework/src/ProductPutterBase.h new file mode 100644 index 0000000000000..1d3af2479cb1c --- /dev/null +++ b/FWCore/Framework/src/ProductPutterBase.h @@ -0,0 +1,26 @@ +// +// ProductPutterBase.h +// CMSSW +// +// Created by Chris Jones on 3/18/21. +// + +#ifndef FWCore_Framework_ProductPutterBase_h +#define FWCore_Framework_ProductPutterBase_h + +#include + +namespace edm { + class WrapperBase; + + class ProductPutterBase { + public: + ProductPutterBase() = default; + virtual ~ProductPutterBase() = default; + + // Puts the product into the ProductResolver. + virtual void putProduct(std::unique_ptr edp) const = 0; + }; +} // namespace edm + +#endif /* ProductPutterBase_h */ diff --git a/FWCore/Framework/src/ProductResolvers.cc b/FWCore/Framework/src/ProductResolvers.cc index bcdb6b6ad64ac..feadb5cdea5f4 100644 --- a/FWCore/Framework/src/ProductResolvers.cc +++ b/FWCore/Framework/src/ProductResolvers.cc @@ -77,8 +77,8 @@ namespace edm { return Resolution(nullptr); } - void DataManagingProductResolver::mergeProduct(std::unique_ptr iFrom, - MergeableRunProductMetadata const* mergeableRunProductMetadata) const { + void MergeableInputProductResolver::mergeProduct( + std::shared_ptr iFrom, MergeableRunProductMetadata const* mergeableRunProductMetadata) const { // if its not mergeable and the previous read failed, go ahead and use this one if (status() == ProductStatus::ResolveFailed) { setProduct(std::move(iFrom)); @@ -104,7 +104,7 @@ namespace edm { << "that need to be merged in the first place.\n"; } if (original->isPresent()) { - BranchDescription const& desc = branchDescription_(); + BranchDescription const& desc = branchDescription(); if (mergeableRunProductMetadata == nullptr || desc.branchType() != InRun) { original->mergeProduct(iFrom.get()); } else { @@ -159,10 +159,8 @@ namespace edm { } } - ProductResolverBase::Resolution InputProductResolver::resolveProduct_(Principal const& principal, - bool, - SharedResourcesAcquirer*, - ModuleCallingContext const* mcc) const { + ProductResolverBase::Resolution DelayedReaderInputProductResolver::resolveProduct_( + Principal const& principal, bool, SharedResourcesAcquirer*, ModuleCallingContext const* mcc) const { return resolveProductImpl([this, &principal, mcc]() { auto branchType = principal.branchType(); if (branchType == InLumi || branchType == InRun) { @@ -187,14 +185,14 @@ namespace edm { } if (not productResolved()) { //another thread could have beaten us here - putProduct(reader->getProduct(branchDescription().branchID(), &principal, mcc)); + setProduct(reader->getProduct(branchDescription().branchID(), &principal, mcc)); } } }); } - void InputProductResolver::retrieveAndMerge_(Principal const& principal, - MergeableRunProductMetadata const* mergeableRunProductMetadata) const { + void DelayedReaderInputProductResolver::retrieveAndMerge_( + Principal const& principal, MergeableRunProductMetadata const* mergeableRunProductMetadata) const { if (auto reader = principal.reader()) { std::unique_lock guard; if (auto sr = reader->sharedResources().second) { @@ -203,7 +201,7 @@ namespace edm { //Can't use resolveProductImpl since it first checks to see // if the product was already retrieved and then returns if it is - std::unique_ptr edp(reader->getProduct(branchDescription().branchID(), &principal)); + auto edp(reader->getProduct(branchDescription().branchID(), &principal)); if (edp.get() != nullptr) { if (edp->isMergeable() && branchDescription().branchType() == InRun && !edp->hasSwap()) { @@ -215,7 +213,7 @@ namespace edm { } if (status() == defaultStatus() || status() == ProductStatus::ProductSet || (status() == ProductStatus::ResolveFailed && !branchDescription().isMergeable())) { - putOrMergeProduct(std::move(edp), mergeableRunProductMetadata); + setOrMergeProduct(std::move(edp), mergeableRunProductMetadata); } else { // status() == ResolveFailed && branchDescription().isMergeable() throw Exception(errors::MismatchedInputFiles) << "Merge of Run or Lumi product failed for branch " << branchDescription().branchName() << "\n" @@ -239,25 +237,36 @@ namespace edm { } } - void InputProductResolver::setMergeableRunProductMetadata_(MergeableRunProductMetadata const* mrpm) { + void MergeableInputProductResolver::setOrMergeProduct( + std::shared_ptr prod, MergeableRunProductMetadata const* mergeableRunProductMetadata) const { + if (status() == defaultStatus()) { + //resolveProduct has not been called or it failed + setProduct(std::move(prod)); + } else { + mergeProduct(std::move(prod), mergeableRunProductMetadata); + } + } + + void DelayedReaderInputProductResolver::setMergeableRunProductMetadata_(MergeableRunProductMetadata const* mrpm) { setMergeableRunProductMetadataInProductData(mrpm); } - void InputProductResolver::prefetchAsync_(WaitingTaskHolder waitTask, - Principal const& principal, - bool skipCurrentProcess, - ServiceToken const& token, - SharedResourcesAcquirer* sra, - ModuleCallingContext const* mcc) const { + void DelayedReaderInputProductResolver::prefetchAsync_(WaitingTaskHolder waitTask, + Principal const& principal, + bool skipCurrentProcess, + ServiceToken const& token, + SharedResourcesAcquirer* sra, + ModuleCallingContext const* mcc) const { //need to try changing m_prefetchRequested before adding to m_waitingTasks bool expected = false; bool prefetchRequested = m_prefetchRequested.compare_exchange_strong(expected, true); m_waitingTasks.add(waitTask); if (prefetchRequested) { - auto workToDo = [this, mcc, &principal, token]() { + ServiceWeakToken weakToken = token; + auto workToDo = [this, mcc, &principal, weakToken]() { //need to make sure Service system is activated on the reading thread - ServiceRegistry::Operate operate(token); + ServiceRegistry::Operate operate(weakToken.lock()); // Caught exception is propagated via WaitingTaskList CMS_SA_ALLOW try { resolveProductImpl([this, &principal, mcc]() { @@ -271,7 +280,7 @@ namespace edm { } if (not productResolved()) { //another thread could have finished this while we were waiting - putProduct(reader->getProduct(branchDescription().branchID(), &principal, mcc)); + setProduct(reader->getProduct(branchDescription().branchID(), &principal, mcc)); } } }); @@ -301,7 +310,7 @@ namespace edm { } } - void InputProductResolver::resetProductData_(bool deleteEarly) { + void DelayedReaderInputProductResolver::resetProductData_(bool deleteEarly) { if (not deleteEarly) { m_prefetchRequested = false; m_waitingTasks.reset(); @@ -309,11 +318,40 @@ namespace edm { DataManagingProductResolver::resetProductData_(deleteEarly); } - void InputProductResolver::setupUnscheduled(UnscheduledConfigurator const& iConfigure) { + void DelayedReaderInputProductResolver::setupUnscheduled(UnscheduledConfigurator const& iConfigure) { aux_ = iConfigure.auxiliary(); } - bool InputProductResolver::isFromCurrentProcess() const { return false; } + bool DelayedReaderInputProductResolver::isFromCurrentProcess() const { return false; } + + void PutOnReadInputProductResolver::putProduct(std::unique_ptr edp) const { + if (status() != defaultStatus()) { + throw Exception(errors::InsertFailure) + << "Attempt to insert more than one product on branch " << branchDescription().branchName() << "\n"; + } + + setProduct(std::move(edp)); // ProductResolver takes ownership + } + + bool PutOnReadInputProductResolver::isFromCurrentProcess() const { return false; } + + ProductResolverBase::Resolution PutOnReadInputProductResolver::resolveProduct_(Principal const&, + bool skipCurrentProcess, + SharedResourcesAcquirer*, + ModuleCallingContext const*) const { + return resolveProductImpl([]() { return; }); + } + + void PutOnReadInputProductResolver::prefetchAsync_(WaitingTaskHolder waitTask, + Principal const& principal, + bool skipCurrentProcess, + ServiceToken const& token, + SharedResourcesAcquirer* sra, + ModuleCallingContext const* mcc) const {} + + void PutOnReadInputProductResolver::putOrMergeProduct(std::unique_ptr edp) const { + setOrMergeProduct(std::move(edp), nullptr); + } ProductResolverBase::Resolution PuttableProductResolver::resolveProduct_(Principal const&, bool skipCurrentProcess, @@ -361,8 +399,8 @@ namespace edm { } } - void PuttableProductResolver::putProduct_(std::unique_ptr edp) const { - ProducedProductResolver::putProduct_(std::move(edp)); + void PuttableProductResolver::putProduct(std::unique_ptr edp) const { + ProducedProductResolver::putProduct(std::move(edp)); bool expected = false; if (prefetchRequested_.compare_exchange_strong(expected, true)) { m_waitingTasks.doneWaiting(std::exception_ptr()); @@ -461,7 +499,7 @@ namespace edm { DataManagingProductResolver::resetProductData_(deleteEarly); } - void ProducedProductResolver::putProduct_(std::unique_ptr edp) const { + void ProducedProductResolver::putProduct(std::unique_ptr edp) const { if (status() != defaultStatus()) { throw Exception(errors::InsertFailure) << "Attempt to insert more than one product on branch " << branchDescription().branchName() << "\n"; @@ -470,30 +508,10 @@ namespace edm { setProduct(std::move(edp)); // ProductResolver takes ownership } - void InputProductResolver::putProduct_(std::unique_ptr edp) const { - if (not productResolved()) { - //Another thread could have set this - setProduct(std::move(edp)); - } - } - bool ProducedProductResolver::isFromCurrentProcess() const { return true; } void DataManagingProductResolver::connectTo(ProductResolverBase const& iOther, Principal const*) { assert(false); } - void DataManagingProductResolver::putOrMergeProduct_( - std::unique_ptr prod, MergeableRunProductMetadata const* mergeableRunProductMetadata) const { - if (not prod) { - return; - } - if (status() == defaultStatus()) { - //resolveProduct has not been called or it failed - putProduct(std::move(prod)); - } else { - mergeProduct(std::move(prod), mergeableRunProductMetadata); - } - } - void DataManagingProductResolver::checkType(WrapperBase const& prod) const { // Check if the types match. TypeID typeID(prod.dynamicTypeInfo()); @@ -515,6 +533,16 @@ namespace edm { setFailedStatus(); } } + void DataManagingProductResolver::setProduct(std::shared_ptr edp) const { + if (edp) { + checkType(*edp); + productData_.unsafe_setWrapper(std::move(edp)); + theStatus_ = ProductStatus::ProductSet; + } else { + setFailedStatus(); + } + } + // This routine returns true if it is known that currently there is no real product. // If there is a real product, it returns false. // If it is not known if there is a real product, it returns false. @@ -588,20 +616,6 @@ namespace edm { bool AliasProductResolver::singleProduct_() const { return true; } - void AliasProductResolver::putProduct_(std::unique_ptr) const { - throw Exception(errors::LogicError) - << "AliasProductResolver::putProduct_() not implemented and should never be called.\n" - << "Contact a Framework developer\n"; - } - - void AliasProductResolver::putOrMergeProduct_(std::unique_ptr edp, - MergeableRunProductMetadata const*) const { - throw Exception(errors::LogicError) - << "AliasProductResolver::putOrMergeProduct_(std::unique_ptr edp, MergeableRunProductMetadata " - "const*) not implemented and should never be called.\n" - << "Contact a Framework developer\n"; - } - SwitchBaseProductResolver::SwitchBaseProductResolver(std::shared_ptr bd, DataManagingOrAliasProductResolver& realProduct) : realProduct_(realProduct), productData_(std::move(bd)), prefetchRequested_(false) { @@ -636,14 +650,6 @@ namespace edm { return false; } - void SwitchBaseProductResolver::putOrMergeProduct_(std::unique_ptr edp, - MergeableRunProductMetadata const*) const { - throw Exception(errors::LogicError) - << "SwitchBaseProductResolver::putOrMergeProduct_(std::unique_ptr edp, " - "MergeableRunProductMetadata const*) not implemented and should never be called.\n" - << "Contact a Framework developer\n"; - } - void SwitchBaseProductResolver::setProductProvenanceRetriever_(ProductProvenanceRetriever const* provRetriever) { productData_.setProvenance(provRetriever); } @@ -718,7 +724,7 @@ namespace edm { } } - void SwitchProducerProductResolver::putProduct_(std::unique_ptr edp) const { + void SwitchProducerProductResolver::putProduct(std::unique_ptr edp) const { if (status_ != defaultStatus_) { throw Exception(errors::InsertFailure) << "Attempt to insert more than one product for a branch " << branchDescription().branchName() @@ -789,12 +795,6 @@ namespace edm { } } - void SwitchAliasProductResolver::putProduct_(std::unique_ptr edp) const { - throw Exception(errors::LogicError) - << "SwitchAliasProductResolver::putProduct() not implemented and should never be called.\n" - << "Contact a Framework developer\n"; - } - void ParentProcessProductResolver::setProductProvenanceRetriever_(ProductProvenanceRetriever const* provRetriever) { provRetriever_ = provRetriever; } @@ -809,20 +809,6 @@ namespace edm { bool ParentProcessProductResolver::singleProduct_() const { return true; } - void ParentProcessProductResolver::putProduct_(std::unique_ptr) const { - throw Exception(errors::LogicError) - << "ParentProcessProductResolver::putProduct_() not implemented and should never be called.\n" - << "Contact a Framework developer\n"; - } - - void ParentProcessProductResolver::putOrMergeProduct_(std::unique_ptr edp, - MergeableRunProductMetadata const*) const { - throw Exception(errors::LogicError) - << "ParentProcessProductResolver::putOrMergeProduct_(std::unique_ptr edp, " - "MergeableRunProductMetadata const*) not implemented and should never be called.\n" - << "Contact a Framework developer\n"; - } - void ParentProcessProductResolver::throwNullRealProduct() const { // In principle, this ought to be fixed. I noticed one hits this error // when in a SubProcess and calling the Event::getProvenance function @@ -984,7 +970,7 @@ namespace edm { } else { if (not resolver_->dataValidFromResolver(index_, *principal_, skipCurrentProcess_)) { resolver_->tryPrefetchResolverAsync( - index_ + 1, *principal_, skipCurrentProcess_, sra_, mcc_, serviceToken_, group_); + index_ + 1, *principal_, skipCurrentProcess_, sra_, mcc_, serviceToken_.lock(), group_); } } } @@ -995,7 +981,7 @@ namespace edm { SharedResourcesAcquirer* sra_; ModuleCallingContext const* mcc_; tbb::task_group* group_; - ServiceToken serviceToken_; + ServiceWeakToken serviceToken_; unsigned int index_; bool skipCurrentProcess_; }; @@ -1119,20 +1105,6 @@ namespace edm { << "Contact a Framework developer\n"; } - void NoProcessProductResolver::putProduct_(std::unique_ptr) const { - throw Exception(errors::LogicError) - << "NoProcessProductResolver::putProduct_() not implemented and should never be called.\n" - << "Contact a Framework developer\n"; - } - - void NoProcessProductResolver::putOrMergeProduct_(std::unique_ptr edp, - MergeableRunProductMetadata const*) const { - throw Exception(errors::LogicError) - << "NoProcessProductResolver::putOrMergeProduct_(std::unique_ptr edp, MergeableRunProductMetadata " - "const*) not implemented and should never be called.\n" - << "Contact a Framework developer\n"; - } - BranchDescription const& NoProcessProductResolver::branchDescription_() const { throw Exception(errors::LogicError) << "NoProcessProductResolver::branchDescription_() not implemented and should never be called.\n" @@ -1219,20 +1191,6 @@ namespace edm { << "Contact a Framework developer\n"; } - void SingleChoiceNoProcessProductResolver::putProduct_(std::unique_ptr) const { - throw Exception(errors::LogicError) - << "SingleChoiceNoProcessProductResolver::putProduct_() not implemented and should never be called.\n" - << "Contact a Framework developer\n"; - } - - void SingleChoiceNoProcessProductResolver::putOrMergeProduct_(std::unique_ptr edp, - MergeableRunProductMetadata const*) const { - throw Exception(errors::LogicError) - << "SingleChoiceNoProcessProductResolver::putOrMergeProduct_(std::unique_ptr edp, " - "MergeableRunProductMetadata const*) not implemented and should never be called.\n" - << "Contact a Framework developer\n"; - } - BranchDescription const& SingleChoiceNoProcessProductResolver::branchDescription_() const { throw Exception(errors::LogicError) << "SingleChoiceNoProcessProductResolver::branchDescription_() not implemented and should never be called.\n" diff --git a/FWCore/Framework/src/ProductResolvers.h b/FWCore/Framework/src/ProductResolvers.h index 462b154c0b2eb..efec00a8901b3 100644 --- a/FWCore/Framework/src/ProductResolvers.h +++ b/FWCore/Framework/src/ProductResolvers.h @@ -8,6 +8,8 @@ a set of related EDProducts. This is the storage unit of such information. ----------------------------------------------------------------------*/ #include "FWCore/Framework/interface/ProductResolverBase.h" +#include "FWCore/Framework/src/ProductPutterBase.h" +#include "FWCore/Framework/src/ProductPutOrMergerBase.h" #include "DataFormats/Common/interface/WrapperBase.h" #include "DataFormats/Common/interface/ProductData.h" #include "DataFormats/Provenance/interface/BranchDescription.h" @@ -62,6 +64,7 @@ namespace edm { protected: void setProduct(std::unique_ptr edp) const; + void setProduct(std::shared_ptr edp) const; ProductStatus status() const { return theStatus_; } ProductStatus defaultStatus() const { return defaultStatus_; } void setFailedStatus() const { theStatus_ = ProductStatus::ResolveFailed; } @@ -71,15 +74,12 @@ namespace edm { ProductData const& getProductData() const final { return productData_; } void setMergeableRunProductMetadataInProductData(MergeableRunProductMetadata const*); + void checkType(WrapperBase const& prod) const; + private: void throwProductDeletedException() const; - void checkType(WrapperBase const& prod) const; virtual bool isFromCurrentProcess() const = 0; - // merges the product with the pre-existing product - void mergeProduct(std::unique_ptr edp, MergeableRunProductMetadata const*) const; - void putOrMergeProduct_(std::unique_ptr prod, - MergeableRunProductMetadata const* mergeableRunProductMetadata) const final; bool productUnavailable_() const final; bool productResolved_() const final; bool productWasDeleted_() const final; @@ -102,10 +102,26 @@ namespace edm { ProductStatus const defaultStatus_; }; - class InputProductResolver : public DataManagingProductResolver { + class MergeableInputProductResolver : public DataManagingProductResolver { public: - explicit InputProductResolver(std::shared_ptr bd) - : DataManagingProductResolver(bd, ProductStatus::ResolveNotRun), m_prefetchRequested{false}, aux_{nullptr} {} + MergeableInputProductResolver(std::shared_ptr bd, ProductStatus iDefaultStatus) + : DataManagingProductResolver(bd, iDefaultStatus) {} + + protected: + void setOrMergeProduct(std::shared_ptr prod, + MergeableRunProductMetadata const* mergeableRunProductMetadata) const; + + // merges the product with the pre-existing product + void mergeProduct(std::shared_ptr edp, MergeableRunProductMetadata const*) const; + }; + + class DelayedReaderInputProductResolver : public MergeableInputProductResolver { + public: + explicit DelayedReaderInputProductResolver(std::shared_ptr bd) + : MergeableInputProductResolver(bd, ProductStatus::ResolveNotRun), m_prefetchRequested{false}, aux_{nullptr} { + assert(bd->onDemand()); + assert(not bd->produced()); + } void setupUnscheduled(UnscheduledConfigurator const&) final; @@ -122,7 +138,6 @@ namespace edm { ServiceToken const& token, SharedResourcesAcquirer* sra, ModuleCallingContext const* mcc) const override; - void putProduct_(std::unique_ptr edp) const override; void retrieveAndMerge_(Principal const& principal, MergeableRunProductMetadata const* mergeableRunProductMetadata) const override; @@ -138,7 +153,37 @@ namespace edm { UnscheduledAuxiliary const* aux_; //provides access to the delayedGet signals }; - class ProducedProductResolver : public DataManagingProductResolver { + class PutOnReadInputProductResolver : public MergeableInputProductResolver, + public ProductPutterBase, + public ProductPutOrMergerBase { + public: + PutOnReadInputProductResolver(std::shared_ptr bd) + : MergeableInputProductResolver(bd, ProductStatus::ResolveNotRun) { + assert(not bd->produced()); + assert(not bd->onDemand()); + } + + protected: + void putProduct(std::unique_ptr edp) const override; + void putOrMergeProduct(std::unique_ptr prod) const override; + + Resolution resolveProduct_(Principal const& principal, + bool skipCurrentProcess, + SharedResourcesAcquirer* sra, + ModuleCallingContext const* mcc) const final; + void prefetchAsync_(WaitingTaskHolder waitTask, + Principal const& principal, + bool skipCurrentProcess, + ServiceToken const& token, + SharedResourcesAcquirer* sra, + ModuleCallingContext const* mcc) const final; + bool unscheduledWasNotRun_() const final { return false; } + + private: + bool isFromCurrentProcess() const final; + }; + + class ProducedProductResolver : public DataManagingProductResolver, public ProductPutterBase { public: ProducedProductResolver(std::shared_ptr bd, ProductStatus iDefaultStatus) : DataManagingProductResolver(bd, iDefaultStatus) { @@ -146,7 +191,7 @@ namespace edm { } protected: - void putProduct_(std::unique_ptr edp) const override; + void putProduct(std::unique_ptr edp) const override; private: bool isFromCurrentProcess() const final; @@ -172,7 +217,7 @@ namespace edm { ModuleCallingContext const* mcc) const override; bool unscheduledWasNotRun_() const override { return false; } - void putProduct_(std::unique_ptr edp) const override; + void putProduct(std::unique_ptr edp) const override; void resetProductData_(bool deleteEarly) override; CMS_THREAD_SAFE mutable WaitingTaskList m_waitingTasks; @@ -242,9 +287,6 @@ namespace edm { return realProduct_.productWasFetchedAndIsValid(iSkipCurrentProcess); } - void putProduct_(std::unique_ptr edp) const override; - void putOrMergeProduct_(std::unique_ptr prod, - MergeableRunProductMetadata const* mergeableRunProductMetadata) const final; BranchDescription const& branchDescription_() const override { return *bd_; } void resetBranchDescription_(std::shared_ptr bd) override { bd_ = bd; } Provenance const* provenance_() const final { return realProduct_.provenance(); } @@ -286,8 +328,6 @@ namespace edm { bool productWasFetchedAndIsValid_(bool iSkipCurrentProcess) const final { return realProduct_.productWasFetchedAndIsValid(iSkipCurrentProcess); } - void putOrMergeProduct_(std::unique_ptr edp, - MergeableRunProductMetadata const* mergeableRunProductMetadata) const final; BranchDescription const& branchDescription_() const final { return *productData_.branchDescription(); ; @@ -315,7 +355,7 @@ namespace edm { }; // For the case when SwitchProducer is on a Path - class SwitchProducerProductResolver : public SwitchBaseProductResolver { + class SwitchProducerProductResolver : public SwitchBaseProductResolver, public ProductPutterBase { public: SwitchProducerProductResolver(std::shared_ptr bd, DataManagingOrAliasProductResolver& realProduct); @@ -331,7 +371,7 @@ namespace edm { ServiceToken const& token, SharedResourcesAcquirer* sra, ModuleCallingContext const* mcc) const final; - void putProduct_(std::unique_ptr edp) const final; + void putProduct(std::unique_ptr edp) const final; bool unscheduledWasNotRun_() const final { return false; } bool productUnavailable_() const final; void resetProductData_(bool deleteEarly) final; @@ -362,7 +402,6 @@ namespace edm { ServiceToken const& token, SharedResourcesAcquirer* sra, ModuleCallingContext const* mcc) const final; - void putProduct_(std::unique_ptr edp) const final; bool unscheduledWasNotRun_() const final { return realProduct().unscheduledWasNotRun(); } bool productUnavailable_() const final { return realProduct().productUnavailable(); } }; @@ -409,9 +448,6 @@ namespace edm { return realProduct_->productWasFetchedAndIsValid(iSkipCurrentProcess); } - void putProduct_(std::unique_ptr edp) const override; - void putOrMergeProduct_(std::unique_ptr prod, - MergeableRunProductMetadata const* mergeableRunProductMetadata) const final; BranchDescription const& branchDescription_() const override { return *bd_; } void resetBranchDescription_(std::shared_ptr bd) override { bd_ = bd; } Provenance const* provenance_() const final { return realProduct_->provenance(); } @@ -473,9 +509,6 @@ namespace edm { bool productResolved_() const final; bool productWasFetchedAndIsValid_(bool iSkipCurrentProcess) const override; - void putProduct_(std::unique_ptr edp) const override; - void putOrMergeProduct_(std::unique_ptr prod, - MergeableRunProductMetadata const* mergeableRunProductMetadata) const final; BranchDescription const& branchDescription_() const override; void resetBranchDescription_(std::shared_ptr bd) override; Provenance const* provenance_() const override; @@ -531,9 +564,6 @@ namespace edm { bool productResolved_() const final; bool productWasFetchedAndIsValid_(bool iSkipCurrentProcess) const override; - void putProduct_(std::unique_ptr edp) const override; - void putOrMergeProduct_(std::unique_ptr prod, - MergeableRunProductMetadata const* mergeableRunProductMetadata) const final; BranchDescription const& branchDescription_() const override; void resetBranchDescription_(std::shared_ptr bd) override; Provenance const* provenance_() const override; diff --git a/FWCore/Framework/src/Run.cc b/FWCore/Framework/src/Run.cc index eced7503b8337..27d9590b80495 100644 --- a/FWCore/Framework/src/Run.cc +++ b/FWCore/Framework/src/Run.cc @@ -2,6 +2,7 @@ #include "FWCore/Framework/interface/RunPrincipal.h" #include "FWCore/Framework/src/TransitionInfoTypes.h" +#include "FWCore/Framework/src/ProductPutterBase.h" #include "FWCore/Utilities/interface/Algorithms.h" #include "FWCore/Utilities/interface/get_underlying_safe.h" @@ -98,7 +99,7 @@ namespace edm { auto resolver = p.getProductResolverByIndex(index); if (not resolver->productResolved() and isEndTransition(provRecorder_.transition()) == resolver->branchDescription().availableOnlyAtEndTransition()) { - resolver->putProduct(std::unique_ptr()); + dynamic_cast(resolver)->putProduct(std::unique_ptr()); } } } diff --git a/FWCore/Framework/src/RunPrincipal.cc b/FWCore/Framework/src/RunPrincipal.cc index f2f56768cbd31..b49e4ece31207 100644 --- a/FWCore/Framework/src/RunPrincipal.cc +++ b/FWCore/Framework/src/RunPrincipal.cc @@ -4,6 +4,8 @@ #include "DataFormats/Provenance/interface/ProductRegistry.h" #include "FWCore/Framework/interface/ProductResolverBase.h" #include "FWCore/Framework/interface/MergeableRunProductMetadata.h" +#include "FWCore/Framework/src/ProductPutterBase.h" +#include "FWCore/Framework/src/ProductPutOrMergerBase.h" namespace edm { RunPrincipal::RunPrincipal(std::shared_ptr aux, @@ -34,12 +36,23 @@ namespace edm { } void RunPrincipal::put(BranchDescription const& bd, std::unique_ptr edp) const { - putOrMerge(bd, std::move(edp)); + put_(bd, std::move(edp)); } void RunPrincipal::put(ProductResolverIndex index, std::unique_ptr edp) const { auto phb = getProductResolverByIndex(index); - phb->putOrMergeProduct(std::move(edp)); + dynamic_cast(phb)->putProduct(std::move(edp)); + } + + void RunPrincipal::putOrMerge(BranchDescription const& bd, std::unique_ptr prod) const { + if (prod.get() == nullptr) { + throw edm::Exception(edm::errors::InsertFailure, "Null Pointer") + << "putOrMerge: Cannot put because unique_ptr to product is null." + << "\n"; + } + auto phb = getExistingProduct(bd.branchID()); + assert(phb); + dynamic_cast(phb)->putOrMergeProduct(std::move(prod)); } unsigned int RunPrincipal::transitionIndex_() const { return index().value(); } diff --git a/FWCore/Framework/src/StreamSchedule.cc b/FWCore/Framework/src/StreamSchedule.cc index ddd24d4482e6e..32ea3b58d7ae7 100644 --- a/FWCore/Framework/src/StreamSchedule.cc +++ b/FWCore/Framework/src/StreamSchedule.cc @@ -608,9 +608,10 @@ namespace edm { //use to give priorities on an error to ones from Paths auto pathErrorHolder = std::make_unique>(nullptr); auto pathErrorPtr = pathErrorHolder.get(); + ServiceWeakToken weakToken = serviceToken; auto allPathsDone = make_waiting_task( - [iTask, this, serviceToken, pathError = std::move(pathErrorHolder)](std::exception_ptr const* iPtr) mutable { - ServiceRegistry::Operate operate(serviceToken); + [iTask, this, weakToken, pathError = std::move(pathErrorHolder)](std::exception_ptr const* iPtr) mutable { + ServiceRegistry::Operate operate(weakToken.lock()); std::exception_ptr ptr; if (pathError->load()) { @@ -627,9 +628,9 @@ namespace edm { // run under that condition. WaitingTaskHolder allPathsHolder(*iTask.group(), allPathsDone); - auto pathsDone = make_waiting_task([allPathsHolder, pathErrorPtr, transitionInfo = info, this, serviceToken]( + auto pathsDone = make_waiting_task([allPathsHolder, pathErrorPtr, transitionInfo = info, this, weakToken]( std::exception_ptr const* iPtr) mutable { - ServiceRegistry::Operate operate(serviceToken); + ServiceRegistry::Operate operate(weakToken.lock()); if (iPtr) { //this is used to prioritize this error over one diff --git a/FWCore/Framework/src/StreamSchedule.h b/FWCore/Framework/src/StreamSchedule.h index 7c8a3efb5901c..d2dcfcde48f5c 100644 --- a/FWCore/Framework/src/StreamSchedule.h +++ b/FWCore/Framework/src/StreamSchedule.h @@ -386,8 +386,9 @@ namespace edm { T::setStreamContext(streamContext_, principal); auto id = principal.id(); - auto doneTask = - make_waiting_task([this, iHolder, id, cleaningUpAfterException, token](std::exception_ptr const* iPtr) mutable { + ServiceWeakToken weakToken = token; + auto doneTask = make_waiting_task( + [this, iHolder, id, cleaningUpAfterException, weakToken](std::exception_ptr const* iPtr) mutable { std::exception_ptr excpt; if (iPtr) { excpt = *iPtr; @@ -400,17 +401,17 @@ namespace edm { if (ex.context().empty()) { ost << "Processing " << T::transitionName() << " " << id; } - ServiceRegistry::Operate op(token); + ServiceRegistry::Operate op(weakToken.lock()); addContextAndPrintException(ost.str().c_str(), ex, cleaningUpAfterException); excpt = std::current_exception(); } - ServiceRegistry::Operate op(token); + ServiceRegistry::Operate op(weakToken.lock()); actReg_->preStreamEarlyTerminationSignal_(streamContext_, TerminationOrigin::ExceptionFromThisContext); } // Caught exception is propagated via WaitingTaskHolder CMS_SA_ALLOW try { - ServiceRegistry::Operate op(token); + ServiceRegistry::Operate op(weakToken.lock()); T::postScheduleSignal(actReg_.get(), &streamContext_); } catch (...) { if (not excpt) { @@ -421,7 +422,8 @@ namespace edm { }); auto task = make_functor_task( - [this, h = WaitingTaskHolder(*iHolder.group(), doneTask), info = transitionInfo, token]() mutable { + [this, h = WaitingTaskHolder(*iHolder.group(), doneTask), info = transitionInfo, weakToken]() mutable { + auto token = weakToken.lock(); ServiceRegistry::Operate op(token); // Caught exception is propagated via WaitingTaskHolder CMS_SA_ALLOW try { diff --git a/FWCore/Framework/src/Worker.cc b/FWCore/Framework/src/Worker.cc index d5001958b0139..4eea40ca1ba64 100644 --- a/FWCore/Framework/src/Worker.cc +++ b/FWCore/Framework/src/Worker.cc @@ -208,9 +208,10 @@ namespace edm { EventPrincipal const* iPrincipal) { successTask->increment_ref_count(); + ServiceWeakToken weakToken = token; auto choiceTask = - edm::make_waiting_task([id, successTask, iPrincipal, this, token, &group](std::exception_ptr const*) { - ServiceRegistry::Operate guard(token); + edm::make_waiting_task([id, successTask, iPrincipal, this, weakToken, &group](std::exception_ptr const*) { + ServiceRegistry::Operate guard(weakToken.lock()); // There is no reasonable place to rethrow, and implDoPrePrefetchSelection() should not throw in the first place. CMS_SA_ALLOW try { if (not implDoPrePrefetchSelection(id, *iPrincipal, &moduleCallingContext_)) { @@ -271,18 +272,20 @@ namespace edm { if UNLIKELY (tbb::global_control::active_value(tbb::global_control::max_allowed_parallelism) == 1) { auto taskGroup = iTask.group(); - taskGroup->run([this, task = std::move(iTask), iTrans, &iImpl, iToken]() { + ServiceWeakToken weakToken = iToken; + taskGroup->run([this, task = std::move(iTask), iTrans, &iImpl, weakToken]() { std::exception_ptr exceptPtr{}; - iImpl.taskArena()->execute([this, iTrans, &iImpl, iToken, &exceptPtr]() { + iImpl.taskArena()->execute([this, iTrans, &iImpl, weakToken, &exceptPtr]() { exceptPtr = syncWait([&](WaitingTaskHolder&& iHolder) { auto const& recs = esRecordsToGetFrom(iTrans); auto const& items = esItemsToGetFrom(iTrans); auto hWaitTask = std::move(iHolder); + auto token = weakToken.lock(); for (size_t i = 0; i != items.size(); ++i) { if (recs[i] != ESRecordIndex{}) { auto rec = iImpl.findImpl(recs[i]); if (rec) { - rec->prefetchAsync(hWaitTask, items[i], &iImpl, iToken, ESParentContext(&moduleCallingContext_)); + rec->prefetchAsync(hWaitTask, items[i], &iImpl, token, ESParentContext(&moduleCallingContext_)); } } } diff --git a/FWCore/Framework/src/Worker.h b/FWCore/Framework/src/Worker.h index 5820b77a3deb7..bc6de5b065112 100644 --- a/FWCore/Framework/src/Worker.h +++ b/FWCore/Framework/src/Worker.h @@ -399,7 +399,7 @@ namespace edm { void execute() final { //Need to make the services available early so other services can see them - ServiceRegistry::Operate guard(m_serviceToken); + ServiceRegistry::Operate guard(m_serviceToken.lock()); //incase the emit causes an exception, we need a memory location // to hold the exception_ptr @@ -429,7 +429,7 @@ namespace edm { sContext = m_context, serviceToken = m_serviceToken]() { //Need to make the services available - ServiceRegistry::Operate operateRunModule(serviceToken); + ServiceRegistry::Operate operateRunModule(serviceToken.lock()); //If needed, we pause the queue in begin transition and resume it // at the end transition. This can guarantee that the module @@ -461,7 +461,7 @@ namespace edm { StreamID m_streamID; ParentContext const m_parentContext; typename T::Context const* m_context; - ServiceToken m_serviceToken; + ServiceWeakToken m_serviceToken; tbb::task_group* m_group; }; @@ -496,7 +496,7 @@ namespace edm { void execute() final { //Need to make the services available early so other services can see them - ServiceRegistry::Operate guard(m_serviceToken); + ServiceRegistry::Operate guard(m_serviceToken.lock()); //incase the emit causes an exception, we need a memory location // to hold the exception_ptr @@ -522,7 +522,7 @@ namespace edm { serviceToken = m_serviceToken, holder = m_holder]() { //Need to make the services available - ServiceRegistry::Operate operateRunAcquire(serviceToken); + ServiceRegistry::Operate operateRunAcquire(serviceToken.lock()); std::exception_ptr* ptr = nullptr; worker->runAcquireAfterAsyncPrefetch(ptr, info, parentContext, holder); @@ -539,7 +539,7 @@ namespace edm { EventTransitionInfo m_eventTransitionInfo; ParentContext const m_parentContext; WaitingTaskWithArenaHolder m_holder; - ServiceToken m_serviceToken; + ServiceWeakToken m_serviceToken; }; // This class does nothing unless there is an exception originating @@ -972,11 +972,16 @@ namespace edm { }; auto* group = task.group(); auto ownRunTask = std::make_shared(runTask); - auto selectionTask = make_waiting_task( - [ownRunTask, parentContext, info = transitionInfo, token, group, this](std::exception_ptr const*) mutable { - ServiceRegistry::Operate guard(token); - prefetchAsync( - WaitingTaskHolder(*group, ownRunTask->release()), token, parentContext, info, T::transition_); + ServiceWeakToken weakToken = token; + auto selectionTask = + make_waiting_task([ownRunTask, parentContext, info = transitionInfo, weakToken, group, this]( + std::exception_ptr const*) mutable { + ServiceRegistry::Operate guard(weakToken.lock()); + prefetchAsync(WaitingTaskHolder(*group, ownRunTask->release()), + weakToken.lock(), + parentContext, + info, + T::transition_); }); prePrefetchSelectionAsync(*group, selectionTask, token, streamID, &transitionInfo.principal()); } else { @@ -1038,12 +1043,13 @@ namespace edm { waitingTasks_.add(task); if (workStarted) { - auto toDo = [this, info = transitionInfo, streamID, parentContext, context, serviceToken]() { + ServiceWeakToken weakToken = serviceToken; + auto toDo = [this, info = transitionInfo, streamID, parentContext, context, weakToken]() { std::exception_ptr exceptionPtr; // Caught exception is propagated via WaitingTaskList CMS_SA_ALLOW try { //Need to make the services available - ServiceRegistry::Operate guard(serviceToken); + ServiceRegistry::Operate guard(weakToken.lock()); this->runModule(info, streamID, parentContext, context); } catch (...) { diff --git a/FWCore/Framework/test/BuildFile.xml b/FWCore/Framework/test/BuildFile.xml index 785e7581cb6b4..3db71c8809aa7 100644 --- a/FWCore/Framework/test/BuildFile.xml +++ b/FWCore/Framework/test/BuildFile.xml @@ -138,7 +138,7 @@ - + diff --git a/FWCore/Framework/test/callback_t.cppunit.cc b/FWCore/Framework/test/callback_t.cppunit.cc index 0a84052105711..7e224ec766a6e 100644 --- a/FWCore/Framework/test/callback_t.cppunit.cc +++ b/FWCore/Framework/test/callback_t.cppunit.cc @@ -111,8 +111,8 @@ namespace { &ar); edm::FinalWaitingTask task; tbb::task_group group; - iCallback.prefetchAsync( - edm::WaitingTaskHolder(group, &task), &rec, nullptr, edm::ServiceToken{}, edm::ESParentContext{}); + edm::ServiceToken token; + iCallback.prefetchAsync(edm::WaitingTaskHolder(group, &task), &rec, nullptr, token, edm::ESParentContext{}); do { group.wait(); } while (not task.done()); diff --git a/FWCore/Framework/test/dependentrecord_t.cppunit.cc b/FWCore/Framework/test/dependentrecord_t.cppunit.cc index 8e8ac4d5d78d3..5f9576d186282 100644 --- a/FWCore/Framework/test/dependentrecord_t.cppunit.cc +++ b/FWCore/Framework/test/dependentrecord_t.cppunit.cc @@ -759,8 +759,9 @@ namespace { if (rec) { edm::FinalWaitingTask waitTask; tbb::task_group group; + edm::ServiceToken token; rec->prefetchAsync( - edm::WaitingTaskHolder(group, &waitTask), proxies[i], &iImpl, edm::ServiceToken{}, edm::ESParentContext{}); + edm::WaitingTaskHolder(group, &waitTask), proxies[i], &iImpl, token, edm::ESParentContext{}); do { group.wait(); } while (not waitTask.done()); @@ -787,8 +788,9 @@ namespace { if (rec) { edm::FinalWaitingTask waitTask; tbb::task_group group; + edm::ServiceToken token; rec->prefetchAsync( - edm::WaitingTaskHolder(group, &waitTask), proxies[i], &iImpl, edm::ServiceToken{}, edm::ESParentContext{}); + edm::WaitingTaskHolder(group, &waitTask), proxies[i], &iImpl, token, edm::ESParentContext{}); do { group.wait(); } while (not waitTask.done()); diff --git a/FWCore/Framework/test/eventsetuprecord_t.cppunit.cc b/FWCore/Framework/test/eventsetuprecord_t.cppunit.cc index eae682e5ec979..49dd7fdd0ac03 100644 --- a/FWCore/Framework/test/eventsetuprecord_t.cppunit.cc +++ b/FWCore/Framework/test/eventsetuprecord_t.cppunit.cc @@ -262,8 +262,8 @@ namespace { for (size_t i = 0; i != proxies.size(); ++i) { edm::FinalWaitingTask waitTask; tbb::task_group group; - iRec.prefetchAsync( - WaitingTaskHolder(group, &waitTask), proxies[i], nullptr, edm::ServiceToken{}, edm::ESParentContext{}); + edm::ServiceToken token; + iRec.prefetchAsync(WaitingTaskHolder(group, &waitTask), proxies[i], nullptr, token, edm::ESParentContext{}); do { group.wait(); } while (not waitTask.done()); @@ -285,8 +285,8 @@ namespace { for (size_t i = 0; i != proxies.size(); ++i) { edm::FinalWaitingTask waitTask; tbb::task_group group; - iRec.prefetchAsync( - WaitingTaskHolder(group, &waitTask), proxies[i], nullptr, edm::ServiceToken{}, edm::ESParentContext{}); + edm::ServiceToken token; + iRec.prefetchAsync(WaitingTaskHolder(group, &waitTask), proxies[i], nullptr, token, edm::ESParentContext{}); do { group.wait(); } while (not waitTask.done()); diff --git a/FWCore/Framework/test/global_filter_t.cppunit.cc b/FWCore/Framework/test/global_filter_t.cppunit.cc index 820b0e62f8497..6fef924e85609 100644 --- a/FWCore/Framework/test/global_filter_t.cppunit.cc +++ b/FWCore/Framework/test/global_filter_t.cppunit.cc @@ -128,8 +128,8 @@ class testGlobalFilter : public CppUnit::TestFixture { void doWork(edm::Worker* iBase, Info const& info, edm::ParentContext const& iContext) { edm::FinalWaitingTask task; tbb::task_group group; - iBase->doWorkAsync( - edm::WaitingTaskHolder(group, &task), info, edm::ServiceToken(), s_streamID0, iContext, nullptr); + edm::ServiceToken token; + iBase->doWorkAsync(edm::WaitingTaskHolder(group, &task), info, token, s_streamID0, iContext, nullptr); do { group.wait(); } while (not task.done()); diff --git a/FWCore/Framework/test/global_outputmodule_t.cppunit.cc b/FWCore/Framework/test/global_outputmodule_t.cppunit.cc index 757d20126ddfc..998792b76968a 100644 --- a/FWCore/Framework/test/global_outputmodule_t.cppunit.cc +++ b/FWCore/Framework/test/global_outputmodule_t.cppunit.cc @@ -98,7 +98,8 @@ class testGlobalOutputModule : public CppUnit::TestFixture { void doWork(edm::Worker* iBase, Info const& info, edm::StreamID id, edm::ParentContext const& iContext) { edm::FinalWaitingTask task; tbb::task_group group; - iBase->doWorkAsync(edm::WaitingTaskHolder(group, &task), info, edm::ServiceToken(), id, iContext, nullptr); + edm::ServiceToken token; + iBase->doWorkAsync(edm::WaitingTaskHolder(group, &task), info, token, id, iContext, nullptr); do { group.wait(); } while (not task.done()); diff --git a/FWCore/Framework/test/global_producer_t.cppunit.cc b/FWCore/Framework/test/global_producer_t.cppunit.cc index de5bc6f94ae92..3da30b7400da6 100644 --- a/FWCore/Framework/test/global_producer_t.cppunit.cc +++ b/FWCore/Framework/test/global_producer_t.cppunit.cc @@ -128,8 +128,8 @@ class testGlobalProducer : public CppUnit::TestFixture { void doWork(edm::Worker* iBase, Info const& info, edm::ParentContext const& iContext) { edm::FinalWaitingTask task; tbb::task_group group; - iBase->doWorkAsync( - edm::WaitingTaskHolder(group, &task), info, edm::ServiceToken(), s_streamID0, iContext, nullptr); + edm::ServiceToken token; + iBase->doWorkAsync(edm::WaitingTaskHolder(group, &task), info, token, s_streamID0, iContext, nullptr); do { group.wait(); } while (not task.done()); diff --git a/FWCore/Framework/test/limited_filter_t.cppunit.cc b/FWCore/Framework/test/limited_filter_t.cppunit.cc index 491499e82f558..ca89678e4a754 100644 --- a/FWCore/Framework/test/limited_filter_t.cppunit.cc +++ b/FWCore/Framework/test/limited_filter_t.cppunit.cc @@ -138,8 +138,8 @@ class testLimitedFilter : public CppUnit::TestFixture { void doWork(edm::Worker* iBase, Info const& info, edm::ParentContext const& iContext) { edm::FinalWaitingTask task; tbb::task_group group; - iBase->doWorkAsync( - edm::WaitingTaskHolder(group, &task), info, edm::ServiceToken(), s_streamID0, iContext, nullptr); + edm::ServiceToken token; + iBase->doWorkAsync(edm::WaitingTaskHolder(group, &task), info, token, s_streamID0, iContext, nullptr); do { group.wait(); } while (not task.done()); diff --git a/FWCore/Framework/test/limited_outputmodule_t.cppunit.cc b/FWCore/Framework/test/limited_outputmodule_t.cppunit.cc index 0f19cc6480b3b..40d6230b8f2c8 100644 --- a/FWCore/Framework/test/limited_outputmodule_t.cppunit.cc +++ b/FWCore/Framework/test/limited_outputmodule_t.cppunit.cc @@ -98,7 +98,8 @@ class testLimitedOutputModule : public CppUnit::TestFixture { void doWork(edm::Worker* iBase, Info const& info, edm::StreamID id, edm::ParentContext const& iContext) { edm::FinalWaitingTask task; tbb::task_group group; - iBase->doWorkAsync(edm::WaitingTaskHolder(group, &task), info, edm::ServiceToken(), id, iContext, nullptr); + edm::ServiceToken token; + iBase->doWorkAsync(edm::WaitingTaskHolder(group, &task), info, token, id, iContext, nullptr); do { group.wait(); } while (not task.done()); diff --git a/FWCore/Framework/test/limited_producer_t.cppunit.cc b/FWCore/Framework/test/limited_producer_t.cppunit.cc index 55daba9996f82..c526ffbdd870e 100644 --- a/FWCore/Framework/test/limited_producer_t.cppunit.cc +++ b/FWCore/Framework/test/limited_producer_t.cppunit.cc @@ -138,8 +138,8 @@ class testLimitedProducer : public CppUnit::TestFixture { void doWork(edm::Worker* iBase, Info const& info, edm::ParentContext const& iContext) { edm::FinalWaitingTask task; tbb::task_group group; - iBase->doWorkAsync( - edm::WaitingTaskHolder(group, &task), info, edm::ServiceToken(), s_streamID0, iContext, nullptr); + edm::ServiceToken token; + iBase->doWorkAsync(edm::WaitingTaskHolder(group, &task), info, token, s_streamID0, iContext, nullptr); do { group.wait(); } while (not task.done()); diff --git a/FWCore/Framework/test/one_outputmodule_t.cppunit.cc b/FWCore/Framework/test/one_outputmodule_t.cppunit.cc index 64db3bbad0969..b303dfb188e2f 100644 --- a/FWCore/Framework/test/one_outputmodule_t.cppunit.cc +++ b/FWCore/Framework/test/one_outputmodule_t.cppunit.cc @@ -110,7 +110,8 @@ class testOneOutputModule : public CppUnit::TestFixture { void doWork(edm::Worker* iBase, Info const& info, edm::StreamID id, edm::ParentContext const& iContext) { edm::FinalWaitingTask task; tbb::task_group group; - iBase->doWorkAsync(edm::WaitingTaskHolder(group, &task), info, edm::ServiceToken(), id, iContext, nullptr); + edm::ServiceToken token; + iBase->doWorkAsync(edm::WaitingTaskHolder(group, &task), info, token, id, iContext, nullptr); do { group.wait(); } while (not task.done()); diff --git a/FWCore/Framework/test/run_esproducerlooper.sh b/FWCore/Framework/test/run_esproducerlooper.sh index 5d64fee0e11aa..8b1c6165c0b7a 100755 --- a/FWCore/Framework/test/run_esproducerlooper.sh +++ b/FWCore/Framework/test/run_esproducerlooper.sh @@ -10,4 +10,4 @@ function die { echo $1: status $2 ; exit $2; } #(cmsRun ${LOCAL_TEST_DIR}/test_esproducerlooper_prefer_not_source_cfg.py ) || die 'Failure using test_esproducerlooper_prefer_not_source_cfg.py' $? (cmsRun ${LOCAL_TEST_DIR}/test_esproducerlooper_prefer_producer_cfg.py ) || die 'Failure using test_esproducerlooper_prefer_producer_cfg.py' $? (cmsRun ${LOCAL_TEST_DIR}/test_module_change_looper_cfg.py ) || die 'Failure using test_module_change_looper_cfg.py' $? - +(cmsRun ${LOCAL_TEST_DIR}/test_edlooper_consumes_cfg.py) || die 'Failure using test_edlooper_consumes_cfg.py' $? diff --git a/FWCore/Framework/test/stream_filter_t.cppunit.cc b/FWCore/Framework/test/stream_filter_t.cppunit.cc index 9eb42597c0330..d28c2e8ecbb0d 100644 --- a/FWCore/Framework/test/stream_filter_t.cppunit.cc +++ b/FWCore/Framework/test/stream_filter_t.cppunit.cc @@ -127,8 +127,8 @@ class testStreamFilter : public CppUnit::TestFixture { void doWork(edm::Worker* iBase, Info const& info, edm::ParentContext const& iContext) { edm::FinalWaitingTask task; tbb::task_group group; - iBase->doWorkAsync( - edm::WaitingTaskHolder(group, &task), info, edm::ServiceToken(), s_streamID0, iContext, nullptr); + edm::ServiceToken token; + iBase->doWorkAsync(edm::WaitingTaskHolder(group, &task), info, token, s_streamID0, iContext, nullptr); do { group.wait(); } while (not task.done()); diff --git a/FWCore/Framework/test/stream_producer_t.cppunit.cc b/FWCore/Framework/test/stream_producer_t.cppunit.cc index 28aa558b67221..b75abb1104c5e 100644 --- a/FWCore/Framework/test/stream_producer_t.cppunit.cc +++ b/FWCore/Framework/test/stream_producer_t.cppunit.cc @@ -127,8 +127,8 @@ class testStreamProducer : public CppUnit::TestFixture { void doWork(edm::Worker* iBase, Info const& info, edm::ParentContext const& iContext) { edm::FinalWaitingTask task; tbb::task_group group; - iBase->doWorkAsync( - edm::WaitingTaskHolder(group, &task), info, edm::ServiceToken(), s_streamID0, iContext, nullptr); + edm::ServiceToken token; + iBase->doWorkAsync(edm::WaitingTaskHolder(group, &task), info, token, s_streamID0, iContext, nullptr); do { group.wait(); } while (not task.done()); diff --git a/FWCore/Framework/test/stubs/IntTestLooper.cc b/FWCore/Framework/test/stubs/IntTestLooper.cc new file mode 100644 index 0000000000000..229b2ffe2c7b1 --- /dev/null +++ b/FWCore/Framework/test/stubs/IntTestLooper.cc @@ -0,0 +1,155 @@ +#include "DataFormats/TestObjects/interface/ToyProducts.h" +#include "FWCore/Framework/interface/ESProducerLooper.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/LooperFactory.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/Utilities/interface/InputTag.h" +#include "FWCore/Utilities/interface/transform.h" + +#include "FWCore/Framework/test/DummyData.h" +#include "FWCore/Framework/test/DummyRecord.h" + +namespace edmtest { + class IntTestLooper : public edm::ESProducerLooper { + public: + IntTestLooper(edm::ParameterSet const& iPSet) + : tokensBeginRun_(edm::vector_transform( + iPSet.getUntrackedParameter>("srcBeginRun"), + [this](edm::InputTag const& tag) { return this->consumes(tag); })), + tokensBeginLumi_(edm::vector_transform( + iPSet.getUntrackedParameter>("srcBeginLumi"), + [this](edm::InputTag const& tag) { return this->consumes(tag); })), + tokensEvent_( + edm::vector_transform(iPSet.getUntrackedParameter>("srcEvent"), + [this](edm::InputTag const& tag) { return this->consumes(tag); })), + tokensEndLumi_(edm::vector_transform( + iPSet.getUntrackedParameter>("srcEndLumi"), + [this](edm::InputTag const& tag) { return this->consumes(tag); })), + tokensEndRun_(edm::vector_transform( + iPSet.getUntrackedParameter>("srcEndRun"), + [this](edm::InputTag const& tag) { return this->consumes(tag); })), + esTokenBeginRun_(esConsumes()), + esToken_(esConsumes()), + valuesBeginRun_(iPSet.getUntrackedParameter>("expectBeginRunValues")), + valuesBeginLumi_(iPSet.getUntrackedParameter>("expectBeginLumiValues")), + valuesEvent_(iPSet.getUntrackedParameter>("expectEventValues")), + valuesEndLumi_(iPSet.getUntrackedParameter>("expectEndLumiValues")), + valuesEndRun_(iPSet.getUntrackedParameter>("expectEndRunValues")), + valueES_(iPSet.getUntrackedParameter("expectESValue")) {} + + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.setComment( + "This test EDLooper can consume arbitrary number of IntProduct's at Run, Lumi, and Event transitions. It " + "always consumes DummyData EventSetup product in beginRun and Event transitions. For all the consumed " + "products it requires the value of the product to correspond the value in configuratoin. It stops looping " + "after 3rd time."); + desc.addUntracked>("srcBeginRun", std::vector{}); + desc.addUntracked>("srcBeginLumi", std::vector{}); + desc.addUntracked>("srcEvent", std::vector{}); + desc.addUntracked>("srcEndLumi", std::vector{}); + desc.addUntracked>("srcEndRun", std::vector{}); + desc.addUntracked>("expectBeginRunValues", std::vector{}); + desc.addUntracked>("expectBeginLumiValues", std::vector{}); + desc.addUntracked>("expectEventValues", std::vector{}); + desc.addUntracked>("expectEndLumiValues", std::vector{}); + desc.addUntracked>("expectEndRunValues", std::vector{}); + desc.addUntracked("expectESValue"); + descriptions.addDefault(desc); + } + + void beginRun(edm::Run const& iRun, edm::EventSetup const& iSetup) override { + for (size_t i = 0; i < tokensBeginRun_.size(); ++i) { + int const expectedValue = valuesBeginRun_[i]; + int const value = iRun.get(tokensBeginRun_[i]).value; + if (expectedValue != value) { + throw cms::Exception("WrongValue") + << "expected value " << expectedValue << " but got " << value << " for beginRun product " << i; + } + } + + auto const& data = iSetup.getData(esTokenBeginRun_); + if (data.value_ != valueES_) { + throw cms::Exception("WrongValue") + << " expected value " << valueES_ << " but got " << data.value_ << " for EventSetup product in beginRun"; + } + } + + void beginLuminosityBlock(edm::LuminosityBlock const& iLumi, edm::EventSetup const&) override { + for (size_t i = 0; i < tokensBeginLumi_.size(); ++i) { + int const expectedValue = valuesBeginLumi_[i]; + int const value = iLumi.get(tokensBeginLumi_[i]).value; + if (expectedValue != value) { + throw cms::Exception("WrongValue") + << "expected value " << expectedValue << " but got " << value << " for beginLumi product " << i; + } + } + } + + void endLuminosityBlock(edm::LuminosityBlock const& iLumi, edm::EventSetup const&) override { + for (size_t i = 0; i < tokensEndLumi_.size(); ++i) { + int const expectedValue = valuesEndLumi_[i]; + int const value = iLumi.get(tokensEndLumi_[i]).value; + if (expectedValue != value) { + throw cms::Exception("WrongValue") + << "expected value " << expectedValue << " but got " << value << " for endLumi product " << i; + } + } + } + + void endRun(edm::Run const& iRun, edm::EventSetup const&) override { + for (size_t i = 0; i < tokensEndRun_.size(); ++i) { + int const expectedValue = valuesEndRun_[i]; + int const value = iRun.get(tokensEndRun_[i]).value; + if (expectedValue != value) { + throw cms::Exception("WrongValue") + << "expected value " << expectedValue << " but got " << value << " for endRun product " << i; + } + } + } + + void startingNewLoop(unsigned int) override {} + + Status duringLoop(edm::Event const& iEvent, edm::EventSetup const& iSetup) override { + for (size_t i = 0; i < tokensEvent_.size(); ++i) { + int const expectedValue = valuesEvent_[i]; + int const value = iEvent.get(tokensEvent_[i]).value; + if (expectedValue != value) { + throw cms::Exception("WrongValue") + << "expected value " << expectedValue << " but got " << value << " for Event product " << i; + } + } + + auto const& data = iSetup.getData(esToken_); + if (data.value_ != valueES_) { + throw cms::Exception("WrongValue") + << " expected value " << valueES_ << " but got " << data.value_ << " for EventSetup product in duringLoop"; + } + + return kContinue; + } + + Status endOfLoop(edm::EventSetup const&, unsigned int iCount) override { return iCount == 2 ? kStop : kContinue; } + + private: + const std::vector> tokensBeginRun_; + const std::vector> tokensBeginLumi_; + const std::vector> tokensEvent_; + const std::vector> tokensEndLumi_; + const std::vector> tokensEndRun_; + edm::ESGetToken const esTokenBeginRun_; + edm::ESGetToken const esToken_; + const std::vector valuesBeginRun_; + const std::vector valuesBeginLumi_; + const std::vector valuesEvent_; + const std::vector valuesEndLumi_; + const std::vector valuesEndRun_; + const int valueES_; + }; +} // namespace edmtest + +using IntTestLooper = edmtest::IntTestLooper; +DEFINE_FWK_LOOPER(IntTestLooper); diff --git a/FWCore/Framework/test/stubs/TestModuleChangeLooper.cc b/FWCore/Framework/test/stubs/TestModuleChangeLooper.cc index 5b6d0871a79b8..2dccfff45fb7c 100644 --- a/FWCore/Framework/test/stubs/TestModuleChangeLooper.cc +++ b/FWCore/Framework/test/stubs/TestModuleChangeLooper.cc @@ -16,7 +16,6 @@ // // user include files -#include "DataFormats/Common/interface/Handle.h" #include "DataFormats/TestObjects/interface/ToyProducts.h" #include "FWCore/Framework/interface/EDLooper.h" #include "FWCore/Framework/interface/Event.h" @@ -38,21 +37,24 @@ class TestModuleChangeLooper : public edm::EDLooper { void startingNewLoop(unsigned int) {} Status duringLoop(edm::Event const& iEvent, edm::EventSetup const&) { - edm::Handle handle; - iEvent.getByLabel(m_tag, handle); - if (handle->value != m_expectedValue) { - throw cms::Exception("WrongValue") << "expected value " << m_expectedValue << " but got " << handle->value; + auto const& product = iEvent.get(m_token); + if (product.value != m_expectedValue) { + throw cms::Exception("WrongValue") << "expected value " << m_expectedValue << " but got " << product.value; } return kContinue; } Status endOfLoop(edm::EventSetup const&, unsigned int iCount) { //modify the module - edm::ParameterSet const* pset = scheduleInfo()->parametersForModule(m_tag.label()); + Labels labels; + labelsForToken(m_token, labels); + std::string const moduleLabel{labels.module}; + + edm::ParameterSet const* pset = scheduleInfo()->parametersForModule(moduleLabel); assert(0 != pset); edm::ParameterSet newPSet(*pset); newPSet.addParameter("ivalue", ++m_expectedValue); - auto success = moduleChanger()->changeModule(m_tag.label(), newPSet); + auto success = moduleChanger()->changeModule(moduleLabel, newPSet); assert(success && "moduleChanger()->changeModule(m_tag.label(), newPSet)"); return iCount == 2 ? kStop : kContinue; @@ -61,7 +63,7 @@ class TestModuleChangeLooper : public edm::EDLooper { private: // ----------member data --------------------------- int m_expectedValue; - edm::InputTag m_tag; + edm::EDGetTokenT m_token; }; // @@ -77,7 +79,7 @@ class TestModuleChangeLooper : public edm::EDLooper { // TestModuleChangeLooper::TestModuleChangeLooper(edm::ParameterSet const& iConfig) : m_expectedValue(iConfig.getUntrackedParameter("startingValue")), - m_tag(iConfig.getUntrackedParameter("tag")) { + m_token(consumes(iConfig.getUntrackedParameter("tag"))) { //now do what ever other initialization is needed } diff --git a/FWCore/Framework/test/test_edlooper_consumes_cfg.py b/FWCore/Framework/test/test_edlooper_consumes_cfg.py new file mode 100644 index 0000000000000..9e3d695fe0509 --- /dev/null +++ b/FWCore/Framework/test/test_edlooper_consumes_cfg.py @@ -0,0 +1,29 @@ +import FWCore.ParameterSet.Config as cms + +process = cms.Process("TEST") + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(5) +) + +process.source = cms.Source("EmptySource") + +process.intEventProducer = cms.EDProducer("IntProducer", + ivalue = cms.int32(42) +) + +process.essource = cms.ESSource("EmptyESSource", + recordName = cms.string('DummyRecord'), + iovIsRunNotTime = cms.bool(True), + firstValid = cms.vuint32(1) +) +process.add_(cms.ESProducer("LoadableDummyProvider", + value = cms.untracked.int32(5))) + +process.looper = cms.Looper("IntTestLooper", + srcEvent = cms.untracked.VInputTag("intEventProducer"), + expectEventValues = cms.untracked.vint32(42), + expectESValue = cms.untracked.int32(5) +) + +process.p1 = cms.Path(process.intEventProducer) diff --git a/FWCore/Integration/test/BuildFile.xml b/FWCore/Integration/test/BuildFile.xml index bbe1492447656..d0b88cd5df008 100644 --- a/FWCore/Integration/test/BuildFile.xml +++ b/FWCore/Integration/test/BuildFile.xml @@ -244,6 +244,12 @@ + + + + + + @@ -431,4 +437,6 @@ + + diff --git a/FWCore/Integration/test/PutOrMergeTestSource.cc b/FWCore/Integration/test/PutOrMergeTestSource.cc new file mode 100644 index 0000000000000..4a49359e8c693 --- /dev/null +++ b/FWCore/Integration/test/PutOrMergeTestSource.cc @@ -0,0 +1,151 @@ +// +// PutOrMergeTestSource.cc +// CMSSW +// +// Created by Chris Jones on 3/23/21. +// + +#include "FWCore/Framework/interface/InputSource.h" +#include "FWCore/Framework/interface/InputSourceMacros.h" +#include "FWCore/Framework/interface/FileBlock.h" +#include "FWCore/Framework/interface/RunPrincipal.h" + +#include "DataFormats/Provenance/interface/ProductRegistry.h" +#include "DataFormats/Provenance/interface/ProcessHistory.h" +#include "DataFormats/Provenance/interface/ProcessHistoryRegistry.h" + +#include "DataFormats/TestObjects/interface/Thing.h" +#include "DataFormats/TestObjects/interface/ThingWithMerge.h" +#include "DataFormats/TestObjects/interface/ThingWithIsEqual.h" + +#include +using namespace edm; + +namespace edmtest { + class PutOrMergeTestSource : public InputSource { + public: + PutOrMergeTestSource(ParameterSet const&, InputSourceDescription const&); + + /// Register any produced products + void registerProducts() final; + + private: + ItemType getNextItemType() final; + std::shared_ptr readRunAuxiliary_() final; + std::shared_ptr readLuminosityBlockAuxiliary_() final; + std::unique_ptr readFile_() final; + void readRun_(RunPrincipal& runPrincipal) final; + void readEvent_(EventPrincipal& eventPrincipal) final; + + int stage_; + ParameterSet const dummyPSet_; + BranchDescription thingDesc_; + BranchDescription thingWithMergeDesc_; + BranchDescription thingWithEqualDesc_; + ProcessHistoryID historyID_; + }; +} // namespace edmtest + +using namespace edmtest; + +PutOrMergeTestSource::PutOrMergeTestSource(ParameterSet const& iPS, InputSourceDescription const& iISD) + : InputSource(iPS, iISD), + stage_(0), + dummyPSet_([]() { + ParameterSet dummy; + dummy.registerIt(); + return dummy; + }()), + thingDesc_(InRun, + "thingWithMergeProducer", + "PROD", + "edmtest::Thing", + "edmtestThing", + "endRun", + "PutOrMergeTestSource", + dummyPSet_.id(), + edm::TypeWithDict(typeid(edmtest::Thing)), + false, + true), + thingWithMergeDesc_(InRun, + "thingWithMergeProducer", + "PROD", + "edmtest::ThingWithMerge", + "edmtestThingWithMerge", + "endRun", + "PutOrMergeTestSource", + dummyPSet_.id(), + edm::TypeWithDict(typeid(edmtest::ThingWithMerge)), + false, + true), + thingWithEqualDesc_(InRun, + "thingWithMergeProducer", + "PROD", + "edmtest::ThingWithIsEqual", + "edmtestThingWithIsEqual", + "endRun", + "PutOrMergeTestSource", + dummyPSet_.id(), + edm::TypeWithDict(typeid(edmtest::ThingWithIsEqual)), + false, + true) { + edm::ParameterSet dummyPset; + dummyPset.registerIt(); + + ProcessHistory history; + history.emplace_back("PROD", dummyPset.id(), "RELVERSION", "PASSID"); + processHistoryRegistry().registerProcessHistory(history); + historyID_ = history.id(); +} + +void PutOrMergeTestSource::registerProducts() { + edm::ParameterSet dummyPset; + dummyPset.registerIt(); + + thingDesc_.setIsProvenanceSetOnRead(); + thingWithMergeDesc_.setIsProvenanceSetOnRead(); + productRegistryUpdate().copyProduct(thingDesc_); + productRegistryUpdate().copyProduct(thingWithMergeDesc_); + productRegistryUpdate().copyProduct(thingWithEqualDesc_); +} + +InputSource::ItemType PutOrMergeTestSource::getNextItemType() { + switch (stage_) { + case 0: { + return IsFile; + } + case 1: { + return IsRun; + } + case 2: { + return IsRun; + } + default: + return IsStop; + } + return IsInvalid; +} + +std::shared_ptr PutOrMergeTestSource::readRunAuxiliary_() { + auto id = std::make_shared(1, Timestamp::beginOfTime(), Timestamp::endOfTime()); + id->setProcessHistoryID(historyID_); + return id; +} +std::shared_ptr PutOrMergeTestSource::readLuminosityBlockAuxiliary_() { return {}; } +std::unique_ptr PutOrMergeTestSource::readFile_() { + ++stage_; + return std::make_unique(); +} +void PutOrMergeTestSource::readRun_(RunPrincipal& runPrincipal) { + runAuxiliary()->setProcessHistoryID(historyID_); + runPrincipal.fillRunPrincipal(processHistoryRegistry()); + ++stage_; + runPrincipal.putOrMerge(thingDesc_, std::make_unique>(WrapperBase::Emplace{}, 100001)); + runPrincipal.putOrMerge(thingWithMergeDesc_, + std::make_unique>(WrapperBase::Emplace{}, 100002)); + runPrincipal.putOrMerge(thingWithEqualDesc_, + std::make_unique>(WrapperBase::Emplace{}, 100003)); +} +void PutOrMergeTestSource::readEvent_(EventPrincipal& eventPrincipal) { assert(false); } + +DEFINE_FWK_INPUT_SOURCE(PutOrMergeTestSource); diff --git a/FWCore/Integration/test/putOrMergeTest_cfg.py b/FWCore/Integration/test/putOrMergeTest_cfg.py new file mode 100644 index 0000000000000..7852805a95d66 --- /dev/null +++ b/FWCore/Integration/test/putOrMergeTest_cfg.py @@ -0,0 +1,35 @@ +import FWCore.ParameterSet.Config as cms + +process = cms.Process("TEST") + +process.source = cms.Source("PutOrMergeTestSource") + + +process.test = cms.EDAnalyzer("TestMergeResults", + + # Check to see that the value we read matches what we know + # was written. Expected values listed below come in sets of three + # value expected in Thing + # value expected in ThingWithMerge + # value expected in ThingWithIsEqual + # Each set of 3 is tested at endRun for the expected + # run values or at endLuminosityBlock for the expected + # lumi values. And then the next set of three values + # is tested at the next endRun or endLuminosityBlock. + # When the sequence of parameter values is exhausted it stops checking + + expectedBeginRunProd = cms.untracked.vint32( + ), + + expectedEndRunProd = cms.untracked.vint32( + 100001, 200004, 100003, + ), + + expectedEndRunProdImproperlyMerged = cms.untracked.vint32( + ) +) + +#process.dump = cms.EDAnalyzer("EventContentAnalyzer") +process.end = cms.EndPath(process.test) + +#process.add_(cms.Service("Tracer")) diff --git a/FWCore/ParameterSet/interface/ParameterSetDescriptionFiller.h b/FWCore/ParameterSet/interface/ParameterSetDescriptionFiller.h index 980be433769c6..cd6a04db2cb70 100644 --- a/FWCore/ParameterSet/interface/ParameterSetDescriptionFiller.h +++ b/FWCore/ParameterSet/interface/ParameterSetDescriptionFiller.h @@ -198,5 +198,33 @@ namespace edm { const std::string& extendedBaseType() const override { return kEmpty; } }; + + template + class DescriptionFillerForEDLoopers : public ParameterSetDescriptionFillerBase { + public: + DescriptionFillerForEDLoopers() {} + DescriptionFillerForEDLoopers(const DescriptionFillerForEDLoopers&) = delete; // stop default + const DescriptionFillerForEDLoopers& operator=(const DescriptionFillerForEDLoopers&) = delete; // stop default + + // If T has a fillDescriptions function then just call that, otherwise + // put in an "unknown description" as a default. + void fill(ConfigurationDescriptions& descriptions) const override { + std::conditional_t::value, + edm::fillDetails::DoFillDescriptions, + edm::fillDetails::DoFillAsUnknown> + fill_descriptions; + fill_descriptions(descriptions); + + std::conditional_t::value, + edm::fillDetails::DoPrevalidate, + edm::fillDetails::DoNothing> + prevalidate; + prevalidate(descriptions); + } + + const std::string& baseType() const override { return kBaseForEDLooper; } + + const std::string& extendedBaseType() const override { return kEmpty; } + }; } // namespace edm #endif diff --git a/FWCore/ParameterSet/interface/ParameterSetDescriptionFillerBase.h b/FWCore/ParameterSet/interface/ParameterSetDescriptionFillerBase.h index d518d4e382ff0..9e5daeda46845 100644 --- a/FWCore/ParameterSet/interface/ParameterSetDescriptionFillerBase.h +++ b/FWCore/ParameterSet/interface/ParameterSetDescriptionFillerBase.h @@ -83,6 +83,7 @@ namespace edm { static const std::string kBaseForService; static const std::string kBaseForESSource; static const std::string kBaseForESProducer; + static const std::string kBaseForEDLooper; static const std::string kExtendedBaseForEDAnalyzer; static const std::string kExtendedBaseForEDProducer; static const std::string kExtendedBaseForEDFilter; diff --git a/FWCore/ParameterSet/interface/ParameterSetDescriptionFillerPluginFactory.h b/FWCore/ParameterSet/interface/ParameterSetDescriptionFillerPluginFactory.h index 233621e0afd39..e7448ac8c84b5 100644 --- a/FWCore/ParameterSet/interface/ParameterSetDescriptionFillerPluginFactory.h +++ b/FWCore/ParameterSet/interface/ParameterSetDescriptionFillerPluginFactory.h @@ -50,4 +50,8 @@ namespace edm { static const edm::ParameterSetDescriptionFillerPluginFactory::PMaker > \ EDM_PLUGIN_SYM(s_filler, __LINE__)(#type) +#define DEFINE_DESC_FILLER_FOR_EDLOOPERS(type) \ + static const edm::ParameterSetDescriptionFillerPluginFactory::PMaker > \ + EDM_PLUGIN_SYM(s_filler, __LINE__)(#type) + #endif diff --git a/FWCore/ParameterSet/src/ParameterSetDescriptionFillerBase.cc b/FWCore/ParameterSet/src/ParameterSetDescriptionFillerBase.cc index 9337093bdd115..affb5b4314c26 100644 --- a/FWCore/ParameterSet/src/ParameterSetDescriptionFillerBase.cc +++ b/FWCore/ParameterSet/src/ParameterSetDescriptionFillerBase.cc @@ -22,6 +22,7 @@ const std::string edm::ParameterSetDescriptionFillerBase::kEmpty(""); const std::string edm::ParameterSetDescriptionFillerBase::kBaseForService("Service"); const std::string edm::ParameterSetDescriptionFillerBase::kBaseForESSource("ESSource"); const std::string edm::ParameterSetDescriptionFillerBase::kBaseForESProducer("ESProducer"); +const std::string edm::ParameterSetDescriptionFillerBase::kBaseForEDLooper("EDLooper"); const std::string edm::ParameterSetDescriptionFillerBase::kExtendedBaseForEDAnalyzer("EDAnalyzer"); const std::string edm::ParameterSetDescriptionFillerBase::kExtendedBaseForEDProducer("EDProducer"); const std::string edm::ParameterSetDescriptionFillerBase::kExtendedBaseForEDFilter("EDFilter"); diff --git a/FWCore/ServiceRegistry/interface/ServiceToken.h b/FWCore/ServiceRegistry/interface/ServiceToken.h index b5f65064bccd0..80ef8b0d90154 100644 --- a/FWCore/ServiceRegistry/interface/ServiceToken.h +++ b/FWCore/ServiceRegistry/interface/ServiceToken.h @@ -37,6 +37,8 @@ namespace edm { class ServicesManager; } + class ServiceWeakToken; + class ServiceToken { friend class edm::ServiceRegistry; friend class edm::serviceregistry::ServicesManager; @@ -47,6 +49,10 @@ namespace edm { public: ServiceToken() {} //virtual ~ServiceToken(); + ServiceToken(ServiceToken&&) = default; + ServiceToken(ServiceToken const&) = default; + ServiceToken& operator=(ServiceToken&&) = default; + ServiceToken& operator=(ServiceToken const&) = default; // ---------- const member functions --------------------- @@ -64,6 +70,8 @@ namespace edm { ///the copy the argument's slots to the token's signals void copySlotsFrom(ActivityRegistry&); + friend class ServiceWeakToken; + private: ServiceToken(std::shared_ptr iManager) : manager_(iManager) {} @@ -74,6 +82,27 @@ namespace edm { // ---------- member data -------------------------------- std::shared_ptr manager_; }; + + class ServiceWeakToken { + public: + ServiceWeakToken(ServiceToken const& iToken) : manager_(iToken.manager_) {} + ServiceWeakToken() = default; + + ServiceWeakToken(ServiceWeakToken&&) = default; + ServiceWeakToken(ServiceWeakToken const&) = default; + ServiceWeakToken& operator=(ServiceWeakToken&&) = default; + ServiceWeakToken& operator=(ServiceWeakToken const&) = default; + + ServiceWeakToken& operator=(ServiceToken const& iToken) { + manager_ = iToken.manager_; + return *this; + } + + ServiceToken lock() const { return ServiceToken(manager_.lock()); } + + private: + std::weak_ptr manager_; + }; } // namespace edm #endif diff --git a/FWCore/Services/plugins/InitRootHandlers.cc b/FWCore/Services/plugins/InitRootHandlers.cc index a759f57534d71..6d16975ca11f8 100644 --- a/FWCore/Services/plugins/InitRootHandlers.cc +++ b/FWCore/Services/plugins/InitRootHandlers.cc @@ -771,6 +771,11 @@ namespace edm { if (not threadTracker_) { threadTracker_ = std::make_unique(); + iReg.watchPostEndJob([]() { + if (threadTracker_) { + threadTracker_->observe(false); + } + }); } if (unloadSigHandler_) { diff --git a/FWCore/TFWLiteSelector/src/TFWLiteSelectorBasic.cc b/FWCore/TFWLiteSelector/src/TFWLiteSelectorBasic.cc index 964f9fdc5d9d1..165d6fb1fa573 100644 --- a/FWCore/TFWLiteSelector/src/TFWLiteSelectorBasic.cc +++ b/FWCore/TFWLiteSelector/src/TFWLiteSelectorBasic.cc @@ -73,7 +73,7 @@ namespace edm { private: std::unique_ptr getTheProduct(BranchID const& k) const; - std::unique_ptr getProduct_(BranchID const& k, EDProductGetter const* ep) override; + std::shared_ptr getProduct_(BranchID const& k, EDProductGetter const* ep) override; virtual std::unique_ptr getProvenance_(BranchKey const&) const { return std::unique_ptr(); } @@ -94,7 +94,7 @@ namespace edm { std::shared_ptr> bidToDesc_; }; - std::unique_ptr FWLiteDelayedReader::getProduct_(BranchID const& k, EDProductGetter const* /*ep*/) { + std::shared_ptr FWLiteDelayedReader::getProduct_(BranchID const& k, EDProductGetter const* /*ep*/) { return getTheProduct(k); } @@ -477,6 +477,7 @@ void TFWLiteSelectorBasic::setupNewFile(TFile& iFile) { if (m_->tree_->GetBranch(prod.branchName().c_str()) == nullptr) { prod.setDropped(true); } + prod.setOnDemand(true); //std::cout << "id " << it->first << " branch " << it->second << std::endl; //m_->pointerToBranchBuffer_.push_back(&(*itB)); diff --git a/FWCore/TestProcessor/src/TestProcessor.cc b/FWCore/TestProcessor/src/TestProcessor.cc index d6952f7430d95..9b870bad14cd7 100644 --- a/FWCore/TestProcessor/src/TestProcessor.cc +++ b/FWCore/TestProcessor/src/TestProcessor.cc @@ -29,6 +29,7 @@ #include "FWCore/Framework/src/globalTransitionAsync.h" #include "FWCore/Framework/src/streamTransitionAsync.h" #include "FWCore/Framework/src/TransitionInfoTypes.h" +#include "FWCore/Framework/src/ProductPutterBase.h" #include "FWCore/Framework/interface/DelayedReader.h" #include "FWCore/ServiceRegistry/interface/ServiceRegistry.h" @@ -561,7 +562,7 @@ namespace edm { //The data product was not set so we need to // tell the ProductResolver not to wait auto r = pep->getProductResolver(p.first.branchID()); - r->putProduct(std::unique_ptr()); + dynamic_cast(r)->putProduct(std::unique_ptr()); } } diff --git a/FastSimulation/Calorimetry/python/Calorimetry_cff.py b/FastSimulation/Calorimetry/python/Calorimetry_cff.py index c09738cb2e21b..b52357cefeb28 100644 --- a/FastSimulation/Calorimetry/python/Calorimetry_cff.py +++ b/FastSimulation/Calorimetry/python/Calorimetry_cff.py @@ -5,6 +5,7 @@ #Global fast calorimetry parameters from FastSimulation.Calorimetry.HcalResponse_cfi import * from FastSimulation.Calorimetry.HSParameters_cfi import * +from Geometry.HcalSimData.HFParameters_cff import * #from FastSimulation.Configuration.CommonInputs_cff import * from FastSimulation.Calorimetry.ECALResponse_cfi import * @@ -262,22 +263,13 @@ timeShiftHF = cms.vdouble(50.7, 52.5, 52.9, 53.9, 54.5, 55.1, 55.1, 55.7, 55.9, 56.1, 56.1, 56.1, 56.5), ), HFShower = cms.PSet( - ProbMax = cms.double(1.0), - CFibre = cms.double(0.5), - OnlyLong = cms.bool(True) + HFShowerBlock = cms.PSet(refToPSet_ = cms.string("HFShowerBlock")) ), HFShowerLibrary = cms.PSet( useShowerLibrary = cms.untracked.bool(True), useCorrectionSL = cms.untracked.bool(True), - FileName = cms.FileInPath('SimG4CMS/Calo/data/HFShowerLibrary_oldpmt_noatt_eta4_16en_v3.root'), - BackProbability = cms.double(0.2), - TreeEMID = cms.string('emParticles'), - TreeHadID = cms.string('hadParticles'), - Verbosity = cms.untracked.bool(False), ApplyFiducialCut = cms.bool(True), - BranchEvt = cms.untracked.string(''), - BranchPre = cms.untracked.string(''), - BranchPost = cms.untracked.string('') + HFLibraryFileBlock = cms.PSet(refToPSet_ = cms.string("HFLibraryFileBlock")) ) ), GFlash = cms.PSet( @@ -299,6 +291,3 @@ FamosCalorimetryBlock.Calorimetry.HCAL.Digitizer = True from Configuration.Eras.Modifier_run2_common_cff import run2_common -run2_common.toModify(FamosCalorimetryBlock.Calorimetry.HFShowerLibrary, FileName = 'SimG4CMS/Calo/data/HFShowerLibrary_npmt_noatt_eta4_16en_v4.root' ) - -run2_common.toModify(FamosCalorimetryBlock.Calorimetry.HFShower, ProbMax = 0.5 ) diff --git a/GeneratorInterface/EvtGenInterface/data/DECAY.DEC b/GeneratorInterface/EvtGenInterface/data/DECAY.DEC deleted file mode 100644 index 3784415d5a501..0000000000000 --- a/GeneratorInterface/EvtGenInterface/data/DECAY.DEC +++ /dev/null @@ -1,10193 +0,0 @@ - -######################################################################## -# Copyright 1998-2020 CERN for the benefit of the EvtGen authors # -# # -# This file is part of EvtGen. # -# # -# EvtGen is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# EvtGen is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with EvtGen. If not, see . # -######################################################################## - -# Updated to PDG 2010 by Tomas Pilar - T.Pilar@warwick.ac.uk -# Updated Mixing Parameters Mark Whitehead May 2009 -# -Define qoverp_incohMix_B_s0 1.0 -Define dm_incohMix_B_s0 17.8e12 -Define qoverp_incohMix_B0 1.0 -Define dm_incohMix_B0 0.507e12 -# Old definition of dm still in some decay models -Define dm 0.507e12 -#Define dgamma 0 -#Define qoverp 1 -#Define phaseqoverp 0 -#Define values for B0s mixing -#Define dms 20.e12 -# DeltaGammas corresponds to DG/G = 10% -#Define dgammas 6.852e10 -# Activate incoherent Mixing -### TODO: find a way to give mixing parameters through decay file to EvtGen -#####yesIncoherentB0Mixing dm dgamma -#####yesIncoherentBsMixing dms dgammas -# define the values of the CKM angles (alpha=70, beta=40) -Define alpha 1.365 -Define beta 0.39 -Define gamma 1.387 -Define twoBetaPlusGamma 2.167 -Define betaPlusHalfGamma 1.0835 -Define minusGamma -1.387 -Define minusTwoBeta -0.78 - -# New definitions for psiKstar modes (Lange, July 26, 2000) -Define PKHplus 0.159 -Define PKHzero 0.775 -Define PKHminus 0.612 -Define PKphHplus 1.563 -Define PKphHzero 0.0 -Define PKphHminus 2.712 - -Define Aplus 0.490 -Define Azero 1.10 -Define Aminus 0.4 -# -Define phAplus 2.5 -Define phAzero 0.0 -Define phAminus -0.17 - -# -# These particle aliases are used in for CP violating decays -# in which the decay distributions depends on how the K* decayed. -# -# -Alias K*L K*0 -Alias K*S K*0 -Alias K*BL anti-K*0 -Alias K*BS anti-K*0 -Alias K*0T K*0 -Alias anti-K*0T anti-K*0 -Alias K*BR anti-K*0 -Alias K*0R K*0 -Alias anti-K_0*0N anti-K_0*0 -Alias K_0*0N K_0*0 -# -ChargeConj K*L K*BL -ChargeConj K*S K*BS -ChargeConj K*0T anti-K*0T -ChargeConj K_0*0N anti-K_0*0N -ChargeConj K*0R K*BR -#JetSet parameter modifications -#(Very important that there are no blank spaces in the parameter string!) -#Turn of B0-B0B mixing in JetSet: -#JetSetPar MSTJ(26)=0 -# control of L=1 mesons (in order: J1S0 J0S1 J1S1 J2S1) - commented out by NB/WP -#JetSetPar PARJ(14)=0.05 -#JetSetPar PARJ(15)=0.05 -#JetSetPar PARJ(16)=0.05 -#JetSetPar PARJ(17)=0.05 -#cut-off parameter used to stop fragmentation process (should not be changed) -#####JetSetPar PARJ(33)=0.3 SET NOW IN GAUSS - -# PR LHCb 10/01/2006 -# Turn on PHOTOS for all decays -yesPhotos -# -# -#Decay vpho -#1.000 PYCONT; -#Enddecay -# -# use new VSS_BMIX mixing decay model (DK,28-Oct-1999) -Decay Upsilon(4S) -0.515122645 B+ B- VSS; #[Reconstructed PDG2011] -0.483122645 B0 anti-B0 VSS_BMIX dm; #[Reconstructed PDG2011] -0.000015583 e+ e- PHOTOS VLL; #[Reconstructed PDG2011] -0.000015766 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] -0.000015766 tau+ tau- PHOTOS VLL; #[Reconstructed PDG2011] -0.000084099 Upsilon(2S) pi+ pi- VVPIPI; #[Reconstructed PDG2011] -0.000044342 Upsilon(2S) pi0 pi0 VVPIPI; #[Reconstructed PDG2011] -0.000080123 Upsilon pi+ pi- VVPIPI; #[Reconstructed PDG2011] -0.000044342 Upsilon pi0 pi0 VVPIPI; #[Reconstructed PDG2011] -0.000194392 Upsilon eta PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -# BF ~ (2J+1)E^3_gamma; see PRL 94, 032001 -# V-> gamma S Partial wave (L,S)=(0,0) -0.000092625 gamma chi_b0(3P) HELAMP 1. 0. 1. 0.; #[Reconstructed PDG2011] -# V-> gamma V Partial wave (L,S)=(0,1) -0.000138938 gamma chi_b1(3P) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; #[Reconstructed PDG2011] -# V-> gamma T Partial wave (L,S)=(0,1) -0.000129084 gamma chi_b2(3P) HELAMP 2.4494897 0. 1.7320508 0. 1. 0. 1. 0. 1.7320508 0. 2.4494897 0.; #[Reconstructed PDG2011] -# V-> gamma S Partial wave (L,S)=(0,0) -0.000002956 gamma chi_b0(2P) HELAMP 1. 0. 1. 0.; #[Reconstructed PDG2011] -# V-> gamma V Partial wave (L,S)=(0,1) -0.000007883 gamma chi_b1(2P) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; #[Reconstructed PDG2011] -# V-> gamma T Partial wave (L,S)=(0,1) -0.000011825 gamma chi_b2(2P) HELAMP 2.4494897 0. 1.7320508 0. 1. 0. 1. 0. 1.7320508 0. 2.4494897 0.; #[Reconstructed PDG2011] -0.000837571 g g g PYTHIA 92; -0.000039415 gamma g g PYTHIA 92; -Enddecay -# -# -# -Decay anti-B0 -# Updated to PDG 2008 -# b -> c semileptonic -# -0.0493 D*+ e- anti-nu_e PHOTOS HQET2 1.207 0.920 1.406 0.853; # 1.0 * PDG2014 -0.0219 D+ e- anti-nu_e PHOTOS HQET2 1.185 1.081; # 1.0 * PDG2014 -0.0042 D_1+ e- anti-nu_e PHOTOS ISGW2; # PDG2014+D_J below -0.0045 D_0*+ e- anti-nu_e PHOTOS ISGW2; # PDG2014+D_J below -0.0046 D'_1+ e- anti-nu_e PHOTOS ISGW2; # PDG2014+D_J below -0.0033 D_2*+ e- anti-nu_e PHOTOS ISGW2; # PDG2014+D_J below -0.00045 D*+ pi0 e- anti-nu_e PHOTOS GOITY_ROBERTS; # Increase by 1.5 compared to 2011 -0.00490 D*0 pi+ e- anti-nu_e PHOTOS GOITY_ROBERTS; # Same as 2011 -0.0015 D+ pi0 e- anti-nu_e PHOTOS GOITY_ROBERTS; # 1.5 * of 2011 table -0.0043 D0 pi+ e- anti-nu_e PHOTOS GOITY_ROBERTS; # In principle should be in D**, but go to PDG2014 to fill inclusive -# Do same as for electrons -0.0493 D*+ mu- anti-nu_mu PHOTOS HQET2 1.207 0.920 1.406 0.853; #[Reconstructed PDG2011] -0.0219 D+ mu- anti-nu_mu PHOTOS HQET2 1.185 1.081; #[Reconstructed PDG2011] -0.0042 D_1+ mu- anti-nu_mu PHOTOS ISGW2; -0.0045 D_0*+ mu- anti-nu_mu PHOTOS ISGW2; -0.0046 D'_1+ mu- anti-nu_mu PHOTOS ISGW2; -0.0033 D_2*+ mu- anti-nu_mu PHOTOS ISGW2; -0.00045 D*+ pi0 mu- anti-nu_mu PHOTOS GOITY_ROBERTS; -0.00490 D*0 pi+ mu- anti-nu_mu PHOTOS GOITY_ROBERTS; #[Reconstructed PDG2011] -0.0015 D+ pi0 mu- anti-nu_mu PHOTOS GOITY_ROBERTS; -0.0043 D0 pi+ mu- anti-nu_mu PHOTOS GOITY_ROBERTS; -# -# b -> c tau nu -# -0.015000000 D*+ tau- anti-nu_tau ISGW2; #[Reconstructed PDG2011] -0.011000000 D+ tau- anti-nu_tau ISGW2; #[Reconstructed PDG2011] -0.0013 D_1+ tau- anti-nu_tau ISGW2; -0.0013 D_0*+ tau- anti-nu_tau ISGW2; -0.0020 D'_1+ tau- anti-nu_tau ISGW2; -0.0020 D_2*+ tau- anti-nu_tau ISGW2; -# -# b -> u l nu -# -# 03/28/01 S.Menke included inclusive B -> X_u l nu decays for m(X_u) > 1.26 GeV. -# with some thresholds to gradually switch from excl. to incl. -# modeling without big jumps keeping the better known excl. -# Brs at their actual values and constrain the incl. Br and -# weights in a way that ~40% of the total BR belongs to -# the mass region > 1.5 GeV -# October 20, 2004 - Lange - update using sl awg input -# March 30, 2005 J. Dingfelder: Updated B -> X_u l nu hybrid model -# (supersedes older version by S. Menke). Inclusive -# decays are reweighted in three kinematic -# variables mX, q2, and El (=> 512 weights total). -# The list of weights is included as ModelAlias -# once per B charge state. -# NOTE: - The specified parameters for model VUBHYBRID are: -# mb, a, alpha_s, nbins_mX, nbins_q2, nbins_El, -# list of threshold values for mX, q2, El in ascending order. -# -# *** DO NOT CHANGE ANY OF THESE PARAMETERS! *** -# Otherwise a new set of weights would be needed, since they were -# generated for a certain set of values for mb, a, excl. BFs, non-res BF. -# -# - If no binning (nbins or thresholds) are specified after the first -# three parameters (mb,a,alpha_s) no hybrid weighting is performed. - -# --- Hybrid weights for neutral B -> Xu l nu decays -# NOTE: Do NOT CHANGE any BFs without using the corresponding set of -# hybrid weights (and vice versa). - -0.000145000 pi+ e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.000294000 rho+ e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.000000 D(2S)+ e- anti-nu_e PHOTOS ISGW2; -0.000000 D*(2S)+ e- anti-nu_e PHOTOS ISGW2; -0.001892 Xu+ e- anti-nu_e PHOTOS VUB 4.8 1.29 0.22 20 0.30 0.55 1.20 0.61 1.26 0.85 1.34 1.08 1.41 1.21 1.48 1.30 1.55 1.30 1.61 1.33 1.67 1.36 1.73 1.39 1.79 1.33 1.84 1.42 1.90 1.39 1.95 1.39 2.00 1.37 2.50 1.30 3.00 0.74 3.50 0.99 4.00 1.09 4.50 1.00; -# -0.000145000 pi+ mu- anti-nu_mu PHOTOS ISGW2; # PDG2014 -0.000294000 rho+ mu- anti-nu_mu PHOTOS ISGW2; # PDG2014 -0.000000 D(2S)+ mu- anti-nu_mu PHOTOS ISGW2; -0.000000 D*(2S)+ mu- anti-nu_mu PHOTOS ISGW2; -0.001892 Xu+ mu- anti-nu_mu PHOTOS VUB 4.8 1.29 0.22 20 0.30 0.55 1.20 0.61 1.26 0.85 1.34 1.08 1.41 1.21 1.48 1.30 1.55 1.30 1.61 1.33 1.67 1.36 1.73 1.39 1.79 1.33 1.84 1.42 1.90 1.39 1.95 1.39 2.00 1.37 2.50 1.30 3.00 0.74 3.50 0.99 4.00 1.09 4.50 1.00; -# -0.000060 pi+ tau- anti-nu_tau ISGW2; -0.000083 rho+ tau- anti-nu_tau ISGW2; -0.000090 a_1+ tau- anti-nu_tau ISGW2; -0.000008 b_1+ tau- anti-nu_tau ISGW2; -0.000008 a_0+ tau- anti-nu_tau ISGW2; -0.000008 a_2+ tau- anti-nu_tau ISGW2; -0.000000 rho(2S)+ tau- anti-nu_tau ISGW2; -0.000000 D(2S)+ tau- anti-nu_tau ISGW2; -0.000000 D*(2S)+ tau- anti-nu_tau ISGW2; -# - -# -# b->u hadronic -# Ref. [B1]: -# Lange Nov 14, 2004 (flip D_s K -- is opposite of D_s pi) -0.000024000 D_s- pi+ PHSP; #[Reconstructed PDG2011] -0.000030000 D_s+ K- PHSP; #[Reconstructed PDG2011] -0.000021000 D_s*- pi+ SVS; #[Reconstructed PDG2011] -0.000021900 D_s*+ K- SVS; #[Reconstructed PDG2011] -# -0.000016 rho+ D_s- SVS; -0.000035000 K*- D_s+ SVS; #[Reconstructed PDG2011] -0.000041000 D_s*- rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000032000 D_s*+ K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] - - -# -# b -> s gamma -# -0.000043300 anti-K*0 gamma HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -# PR LHCb add omega gamma -0.000000440 omega gamma HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -#0.0000135 anti-K_10 gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000065 anti-K'_10 gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000128 anti-K'*0 gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000166 anti-K_2*0 gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000017 anti-K''*0 gamma HELAMP 1.0 0.0 1.0 0.0; -0.0003118 anti-Xsd gamma BTOXSGAMMA 2 ; -# -0.000000160 anti-K0 e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.000001030 anti-K*0 e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.0000050 anti-Xsd e+ e- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; -0.000000450 anti-K0 mu+ mu- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.000001050 anti-K*0 mu+ mu- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.0000025 anti-Xsd mu+ mu- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; -0.0000001 anti-K0 tau+ tau- PHOTOS BTOSLLBALL; -0.0000002 anti-K*0 tau+ tau- PHOTOS BTOSLLBALL; -0.0000002 anti-Xsd tau+ tau- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; -# -#------------------------------------------------------------------------------ -# 2- and 3-body modes revised Feb.2005 Markus Cristinziani, SLAC -#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv -# B0 -> CP eigenstates (some exclusive b -> u) sum=0.00036 -# -0.000005130 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000001620 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.0000010 pi0 eta PHSP; -0.000001200 pi0 eta' PHSP; #[Reconstructed PDG2011] -0.000001 pi0 a_00 PHSP; -0.000001 pi0 f_0 PHSP; -# pi0 rho0 is with the 3-body modes -0.000001 omega pi0 SVS; -0.000001 a_10 pi0 SVS; -0.000001 b_10 pi0 SVS; -0.000001 eta eta PHSP; -0.000001 eta eta' PHSP; -0.000001 eta a_00 PHSP; -0.000001 eta f_0 PHSP; -0.000001 rho0 eta SVS; -0.000000940 omega eta SVS; #[Reconstructed PDG2011] -0.000001 a_10 eta SVS; -0.000001 b_10 eta SVS; -0.000001 eta' eta' PHSP; -0.000001 eta' a_00 PHSP; -0.000001 eta' f_0 PHSP; -0.000001 rho0 eta' SVS; -0.000001000 omega eta' SVS; #[Reconstructed PDG2011] -0.000001 a_10 eta' SVS; -0.000001 b_10 eta' SVS; -0.000001 a_00 a_00 PHSP; -0.000001 a_00 f_0 PHSP; -0.000001 rho0 a_00 SVS; -0.000001 omega a_00 SVS; -0.000001 a_10 a_00 SVS; -0.000001 b_10 a_00 SVS; -0.000001 f_0 f_0 PHSP; -0.000001 rho0 f_0 SVS; -0.000001 omega f_0 SVS; -0.000001 a_10 f_0 SVS; -0.000001 b_10 f_0 SVS; - -# Penguin dominated modes are sin2beta, not sin2alpha -0.000004300 phi K_S0 SVS; #[Reconstructed PDG2011] -0.000004300 phi K_L0 SVS; #[Reconstructed PDG2011] -0.000000550 eta K_S0 PHSP; #[Reconstructed PDG2011] -0.000000550 eta K_L0 PHSP; #[Reconstructed PDG2011] -0.000033000 eta' K_S0 PHSP; #[Reconstructed PDG2011] -0.000033000 eta' K_L0 PHSP; #[Reconstructed PDG2011] -0.000002500 omega K_S0 SVS; #[Reconstructed PDG2011] -0.000002500 omega K_L0 SVS; #[Reconstructed PDG2011] -#don't allow jetset to simulate the same decay but to a K0 or anti-K0 -#Lange 1/30/2003 -0.0 phi K0 PHSP; -0.0 phi anti-K0 PHSP; -0.0 eta K0 PHSP; -0.0 eta anti-K0 PHSP; -0.0 eta' K0 PHSP; -0.0 eta' anti-K0 PHSP; -0.0 omega K0 PHSP; -0.0 omega anti-K0 PHSP; -# phipi0 has no simple Pengiun or tree so who knows - ditto phieta/eta'? -0.000001 phi pi0 SVS; -0.000001 phi eta SVS; -0.000001 phi eta' SVS; -# -0.000015900 anti-K*0 eta SVS; #[Reconstructed PDG2011] -0.000003800 anti-K*0 eta' SVS; #[Reconstructed PDG2011] -0.000002000 anti-K*0 omega SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000001 phi omega SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000001 omega omega SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000001 omega rho0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -# -# -#2-body modes from Jim Olsen -0.000019400 K- pi+ PHSP; #[Reconstructed PDG2011] -0.0000004 K+ K- PHSP; -# K_S0 K_L0 is 0 -# see http://babar-hn.slac.stanford.edu:5090/HyperNews/get/pubboard14/156.html -0.000000240 K_S0 K_S0 PHSP; #[Reconstructed PDG2011] -0.0000000 K_S0 K_L0 PHSP; -0.000000240 K_L0 K_L0 PHSP; #[Reconstructed PDG2011] -# declare K0 pi0 not to have it through Pythia -0.000000 anti-K0 pi0 PHSP; -# Split into K_S0 K_L0 (LHCb - P. Robbe) -0.000004750 K_S0 pi0 PHSP; #[Reconstructed PDG2011] -0.000004750 K_L0 pi0 PHSP; #[Reconstructed PDG2011] -# 0 to keep PYTHIA from generating it -0.000000 K0 anti-K0 PHSP; -# -# 3-body decays -# this model generates interferences and higher mass rho -# -# 3-body by John Back (jback@slac.stanford.edu) - Oct 15, 2002 -# JGS intersperses modes with pi0->eta,eta' -# anti-B0 modes -# Model generates rho(770), rho(1450) and rho(1700) resonances -# with interference (uses CKM angle alpha) -0.000024 pi- pi+ pi0 BTO3PI_CP dm alpha; -# Put in with 0 BR to keep PYTHIA from generating these (see BTO3PI_CP above) -0.000000 rho0 pi0 SVS; -0.000000 rho- pi+ SVS; -0.000000 rho+ pi- SVS; -0.000000 rho(2S)- pi+ SVS; -0.000000 rho(2S)+ pi- SVS; -0.000000 rho(3S)- pi+ SVS; -0.000000 rho(3S)+ pi- SVS; -# -# rho0 3-body modes -0.000002350 rho0 K_S0 SVS; #[Reconstructed PDG2011] -0.000002350 rho0 K_L0 SVS; #[Reconstructed PDG2011] -# -# rho+ 3-body modes -0.000008400 rho+ K- SVS; #[Reconstructed PDG2011] -# -# rho(1450) 3-body modes -0.0000005 rho(2S)0 K_S0 SVS; -0.0000005 rho(2S)0 K_L0 SVS; -# -# -# f0,a0(980) 3-body modes -0.0000055 f_0 anti-K0 PHSP; -0.000001 a_00 anti-K0 PHSP; -0.000001 a_0+ K- PHSP; -0.000003 a_0+ pi- PHSP; -0.000001 a_0- pi+ PHSP; -# -# K*0(892) 3-body modes -0.000003600 anti-K*0 pi0 SVS; #[Reconstructed PDG2011] -0.000003 anti-K*0 K0 SVS; -# -# K*0(1430) 3-body modes -0.000001 anti-K_0*0 pi0 PHSP; -0.000003 anti-K_0*0 K0 PHSP; -# -# K*0(1680) 3-body modes -0.000001 anti-K''*0 pi0 SVS; -0.000001 anti-K''*0 K0 SVS; - -# -# K*-(892) 3-body modes -0.000009400 K*- pi+ SVS; #[Reconstructed PDG2011] -0.000002 K*- K+ SVS; -# -# K*-(1430) 3-body modes -0.000033000 K_0*- pi+ PHSP; #[Reconstructed PDG2011] -0.000002 K_0*- K+ PHSP; -# -# K*0(1680) 3-body modes -0.000001 K''*- pi+ SVS; -0.000001 K''*- K+ SVS; -# -# -# Non-resonant 3-body left-overs -# Most modes are set at 1e-6 -# -# pi-pi+pi0: high mass + f0(400-1200) = (1+1)e-6 -####0402270.000002 pi- pi+ pi0 PHSP; -0.000017 pi- pi+ eta PHSP; -0.000001 pi- pi+ eta' PHSP; -# -# pi- pi+ anti-K0: total-rhoK0-f0K0-piK*(892)-piK*(1430)=45-5-6-13./3-11./3 -0.000000000 pi- pi+ anti-K0 PHSP; #[Reconstructed PDG2011] -# -# K- pi+ pi0 -0.000027500 K- pi+ pi0 PHSP; #[Reconstructed PDG2011] -0.000020 K- pi+ eta PHSP; -0.000001 K- pi+ eta' PHSP; -# -# pi- K+ K0. -# Both B0 and B0bar can decay to these => 0.5e-6 each -0.0000005 pi- K+ anti-K0 PHSP; -0.0000005 pi+ K- K0 PHSP; -# -# K- K+ anti-K0 -# PR LHCb 09 Apr 2004 split into KL/KS -0.000000 K- K+ anti-K0 PHSP; -0.000012350 K- K+ K_S0 PHSP; #[Reconstructed PDG2011] -0.000012350 K- K+ K_L0 PHSP; #[Reconstructed PDG2011] -# -# K- K+ pi0 -0.000001 K- K+ pi0 PHSP; -0.000001 K- K+ eta PHSP; -0.000001 K- K+ eta' PHSP; -# -# pi0 anti-K0 K0 -0.000002 anti-K0 K0 pi0 PHSP; -0.000001 anti-K0 K0 eta PHSP; -0.000001 anti-K0 K0 eta' PHSP; -# -# pi0 pi0 anti-K0 -0.000002 anti-K0 pi0 pi0 PHSP; -0.000001 anti-K0 pi0 eta PHSP; -0.000001 anti-K0 pi0 eta' PHSP; -0.000001 anti-K0 eta eta PHSP; -0.000001 anti-K0 eta eta' PHSP; -0.000001 anti-K0 eta' eta' PHSP; -# -# anti-K0 K0 anti-K0: 8*BF(KsKsKs)~=48 (8 is a guess) -0.000048 anti-K0 K0 anti-K0 PHSP; -# -# pi0 pi0 pi0 -0.000001 pi0 pi0 pi0 PHSP; -0.000001 pi0 pi0 eta PHSP; -0.000001 pi0 pi0 eta' PHSP; -0.000001 pi0 eta eta PHSP; -0.000001 pi0 eta eta' PHSP; -# -#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -# 2- and 3-body modes revised Feb.2005 Markus Cristinziani, SLAC -#--------------------------------------------------------------------------- -# -#4-body modes from Andrei Gritsan -#--- 4-body rho-rho, rho-pi-pi, pi-pi-pi-pi -------------------------- -# PR LHCb 21 Apr 2004 : set polarisation to longitudinal -0.000000730 rho0 rho0 SVV_HELAMP 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000024200 rho+ rho- SVV_HELAMP 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000003 rho0 pi+ pi- PHSP; -0.000003 omega pi+ pi- PHSP; -0.000001 rho0 pi0 pi0 PHSP; -0.000001 omega pi0 pi0 PHSP; -0.0000005 rho0 pi0 eta PHSP; -0.0000002 rho0 eta eta PHSP; -0.0000002 rho0 pi0 eta' PHSP; -0.0000001 rho0 eta eta' PHSP; -0.0000005 omega pi0 eta PHSP; -0.0000002 omega eta eta PHSP; -0.0000002 omega pi0 eta' PHSP; -0.0000001 omega eta eta' PHSP; -0.000010 rho+ pi- pi0 PHSP; -0.000005 rho+ pi- eta PHSP; -0.000010 rho- pi+ pi0 PHSP; -0.000005 rho- pi+ eta PHSP; -0.000010 pi+ pi- pi+ pi- PHSP; -0.000010 pi+ pi- pi0 pi0 PHSP; -0.000005 pi+ pi- eta pi0 PHSP; -0.000002 pi+ pi- eta eta PHSP; -0.000002 pi+ pi- eta' pi0 PHSP; -0.000001 pi+ pi- eta' eta PHSP; -0.000016500 a_1+ pi- SVS; #[Reconstructed PDG2011] -0.000016500 a_1- pi+ SVS; #[Reconstructed PDG2011] -0.0000055 b_1+ pi- SVS; -0.0000055 b_1- pi+ SVS; -0.000002 rho- a_0+ SVS; -0.000010 rho+ a_0- SVS; -0.000001 f_0 pi+ pi- PHSP; -0.000001 f_0 pi0 pi0 PHSP; -0.000001 a_0- pi+ pi0 PHSP; -0.000001 a_00 pi0 pi0 PHSP; -0.000001 a_0+ pi- pi0 PHSP; -#--- 4-body rho-K*, rho-pi-K, K*-pi-pi, pi-pi-pi-K ------------------- -0.000003400 rho0 anti-K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000010 rho+ K*- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000050600 pi- pi+ anti-K*0 PHSP; #[Reconstructed PDG2011] -0.000010 pi+ pi0 K*- PHSP; -0.000005 pi+ eta K*- PHSP; -0.000002 pi+ eta' K*- PHSP; -0.000010 rho+ K- pi0 PHSP; -0.000005 rho+ K- eta PHSP; -0.000002 rho+ K- eta' PHSP; -0.000010 rho+ anti-K0 pi- PHSP; -0.000010 rho- anti-K0 pi+ PHSP; -0.000005 rho0 anti-K0 pi0 PHSP; -0.000002 rho0 anti-K0 eta PHSP; -0.000001 rho0 anti-K0 eta' PHSP; -0.000010 rho0 K- pi+ PHSP; -0.000005 omega anti-K0 pi0 PHSP; -0.000002 omega anti-K0 eta PHSP; -0.000001 omega anti-K0 eta' PHSP; -0.000005100 omega K- pi+ PHSP; #[Reconstructed PDG2011] -0.000010 pi+ pi0 pi- anti-K0 PHSP; -0.000005 pi+ eta pi- anti-K0 PHSP; -0.000010 pi0 pi0 pi0 anti-K0 PHSP; -0.000005 pi0 pi0 eta anti-K0 PHSP; -0.000002 pi0 eta eta anti-K0 PHSP; -0.000002 pi0 pi0 eta' anti-K0 PHSP; -0.000001 pi0 eta eta' anti-K0 PHSP; -0.000010 pi+ pi- pi+ K- PHSP; -0.000010 pi0 pi0 pi+ K- PHSP; -0.000005 pi0 eta pi+ K- PHSP; -0.000002 eta eta pi+ K- PHSP; -0.000002 pi0 eta' pi+ K- PHSP; -0.000001 eta eta' pi+ K- PHSP; -0.000010 rho0 anti-K_0*0 PHSP; -0.000020 rho+ K_0*- PHSP; -0.000010 pi- pi+ anti-K_0*0 PHSP; -0.000010 pi0 pi0 anti-K_0*0 PHSP; -0.000010 pi+ pi0 K_0*- PHSP; -0.000005 anti-K*0 f_0 SVS; -0.000010 a_10 anti-K0 SVS; -0.000016000 a_1+ K- SVS; #[Reconstructed PDG2011] -0.000010 b_10 anti-K0 SVS; -0.0000074 b_1+ K- SVS; -0.000005 anti-K*0 a_00 SVS; -0.000005 K*- a_0+ SVS; -#--- 4-body K*-K*, rho-K-K, K*-K-pi, phi-pi-pi, pi-pi-K-K ------------ -0.000001280 K*0 anti-K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000001 K*+ K*- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.0000001 phi rho0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.0000001 phi pi- pi+ PHSP; -0.000001 K+ K- rho0 PHSP; -0.000001 K0 anti-K0 rho0 PHSP; -0.000001 K+ K- omega PHSP; -0.000001 K0 anti-K0 omega PHSP; -0.000001 K+ anti-K0 rho- PHSP; -0.000001 K- K0 rho+ PHSP; -0.000001 K+ K- pi- pi+ PHSP; -0.000001 K+ K- pi0 pi0 PHSP; -0.0000005 K+ K- pi0 eta PHSP; -0.0000002 K+ K- eta eta PHSP; -0.0000002 K+ K- pi0 eta' PHSP; -0.0000001 K+ K- eta eta' PHSP; -0.000001 K0 anti-K0 pi- pi+ PHSP; -0.000001 K0 anti-K0 pi0 pi0 PHSP; -0.0000005 K0 anti-K0 pi0 eta PHSP; -0.0000002 K0 anti-K0 eta eta PHSP; -0.0000002 K0 anti-K0 pi0 eta' PHSP; -0.0000001 K0 anti-K0 eta eta' PHSP; -0.000001 K*+ K- pi0 PHSP; -0.000001 K*- K+ pi0 PHSP; -0.000001 K*0 anti-K0 pi0 PHSP; -0.000001 K0 anti-K*0 pi0 PHSP; -0.000003320 K+ anti-K*0 pi- PHSP; #[Reconstructed PDG2011] -0.000001 K*+ anti-K0 pi- PHSP; -0.0000033 K- K*0 pi+ PHSP; -0.000001 K*- K0 pi+ PHSP; -#--- 4-body phi-K*, phi-K-pi, K-K-K*, pi-K-K-K ----------------------- -0.000009800 phi anti-K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000010 phi K- pi+ PHSP; -0.000010 phi anti-K0 pi0 PHSP; -0.000007 phi anti-K0 eta PHSP; -0.000017700 K- K+ anti-K*0 PHSP; #[Reconstructed PDG2011] -0.000010 K- K*+ anti-K0 PHSP; -0.000010 K*- K+ anti-K0 PHSP; -0.000010 K+ K- K- pi+ PHSP; -0.000010 K+ K- anti-K0 pi0 PHSP; -0.000005 K+ K- anti-K0 eta PHSP; -0.000010 K0 anti-K0 anti-K0 pi0 PHSP; -0.000005 K0 anti-K0 anti-K0 eta PHSP; -0.000003900 phi anti-K_0*0 PHSP; #[Reconstructed PDG2011] -0.000010 K- K+ anti-K_0*0 PHSP; -0.000010 K- K_0*+ anti-K0 PHSP; -0.000010 K_0*- K+ anti-K0 PHSP; -0.000002 phi anti-K'_10 PHSP; -0.000002 K- K+ anti-K'_10 PHSP; -#--- 4-body phi-phi, phi-K-K, K-K-K-K -------------------------------- -0.0000001 phi phi SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.0000001 phi K+ K- PHSP; -0.0000001 phi K0 anti-K0 PHSP; -0.0000001 K+ K- K+ K- PHSP; -0.0000001 K0 anti-K0 K+ K- PHSP; -0.0000001 K0 anti-K0 K0 anti-K0 PHSP; -#5-body modes from Jim Smith - 1/30/05 -#--- 5-body rho-rho-pi, rho-pi-pi-pi, pi-pi-pi-pi-pi ------------------- -0.000010 rho0 rho0 pi0 PHSP; -0.000005 rho0 rho0 eta PHSP; -0.000002 rho0 rho0 eta' PHSP; -0.000010 omega rho0 pi0 PHSP; -0.000005 omega rho0 eta PHSP; -0.000002 omega rho0 eta' PHSP; -0.000010 rho+ rho- pi0 PHSP; -0.000005 rho+ rho- eta PHSP; -0.000002 rho+ rho- eta' PHSP; -0.000010 rho0 rho+ pi- PHSP; -0.000010 omega rho+ pi- PHSP; -0.000002 rho0 pi+ pi- pi0 PHSP; -0.000001 rho0 pi+ pi- eta PHSP; -0.000001 rho0 pi+ pi- eta' PHSP; -0.000002 rho0 pi0 pi0 pi0 PHSP; -0.000001 rho0 pi0 eta pi0 PHSP; -0.000001 rho0 pi0 eta' pi0 PHSP; -0.000002 omega pi+ pi- pi0 PHSP; -0.000001 omega pi+ pi- eta PHSP; -0.000001 omega pi+ pi- eta' PHSP; -0.000002 omega pi0 pi0 pi0 PHSP; -0.000001 omega pi0 eta pi0 PHSP; -0.000001 omega pi0 eta' pi0 PHSP; -0.000002 rho+ pi- pi+ pi- PHSP; -0.000002 rho+ pi- pi0 pi0 PHSP; -0.000001 rho+ pi- pi0 eta PHSP; -0.000001 rho+ pi- pi0 eta' PHSP; -0.000002 rho- pi+ pi+ pi- PHSP; -0.000002 rho- pi+ pi0 pi0 PHSP; -0.000001 rho- pi+ pi0 eta PHSP; -0.000001 rho- pi+ pi0 eta' PHSP; -0.000001 pi+ pi- pi+ pi- pi0 PHSP; -0.0000005 pi+ pi- pi+ pi- eta PHSP; -0.0000002 pi+ pi- pi+ pi- eta' PHSP; -0.000001 pi+ pi- pi0 pi0 pi0 PHSP; -0.0000005 pi+ pi- pi0 pi0 eta PHSP; -0.0000002 pi+ pi- pi0 pi0 eta' PHSP; -0.0000005 pi0 pi0 pi0 pi0 pi0 PHSP; -0.0000002 pi0 pi0 pi0 pi0 eta PHSP; -0.0000001 pi0 pi0 pi0 pi0 eta' PHSP; -0.000010 a_1+ rho- PHSP; -0.000010 a_1- rho+ PHSP; -0.000010 a_10 rho0 PHSP; -0.000010 a_10 omega PHSP; -0.000010 a_1+ pi- pi0 PHSP; -0.000005 a_1+ pi- eta PHSP; -0.000002 a_1+ pi- eta' PHSP; -0.000010 a_10 pi+ pi- PHSP; -0.000010 a_10 pi0 pi0 PHSP; -0.000005 a_10 pi0 eta PHSP; -0.000002 a_10 pi0 eta' PHSP; -0.000010 a_1- pi+ pi0 PHSP; -0.000005 a_1- pi+ eta PHSP; -0.000002 a_1- pi+ eta' PHSP; -0.000010 rho+ f_0 pi- PHSP; -0.000010 rho- f_0 pi+ PHSP; -0.000010 rho0 f_0 pi0 PHSP; -0.000005 rho0 f_0 eta PHSP; -0.000002 rho0 f_0 eta' PHSP; -0.000010 omega f_0 pi0 PHSP; -0.000010 rho+ a_00 pi- PHSP; -0.000010 rho+ a_0- pi0 PHSP; -0.000005 rho+ a_0- eta PHSP; -0.000002 rho+ a_0- eta' PHSP; -0.000010 rho0 a_0+ pi- PHSP; -0.000010 rho0 a_0- pi+ PHSP; -0.000010 rho0 a_00 pi0 PHSP; -0.000005 rho0 a_00 eta PHSP; -0.000002 rho0 a_00 eta' PHSP; -0.000010 rho- a_00 pi+ PHSP; -0.000010 rho- a_0+ pi0 PHSP; -0.000005 rho- a_0+ eta PHSP; -0.000002 rho- a_0+ eta' PHSP; -0.000002 f_0 pi+ pi- pi0 PHSP; -0.000001 f_0 pi+ pi- eta PHSP; -0.000001 f_0 pi+ pi- eta' PHSP; -0.000002 f_0 pi0 pi0 pi0 PHSP; -0.000001 f_0 pi0 pi0 eta PHSP; -0.000001 f_0 pi0 pi0 eta' PHSP; -0.000001 a_00 pi+ pi- pi0 PHSP; -0.000001 a_00 pi0 pi0 pi0 PHSP; -0.000001 a_0+ pi- pi+ pi- PHSP; -0.000001 a_0+ pi- pi0 pi0 PHSP; -0.000001 a_0- pi+ pi+ pi- PHSP; -0.000001 a_0- pi+ pi0 pi0 PHSP; -#--- 5-body rho-K*pi, rho-2pi-K, K*-3pi, 4pi-K ------------------- -0.000010 rho0 K*- pi+ PHSP; -0.000010 rho+ K*- pi0 PHSP; -0.000005 rho+ K*- eta PHSP; -0.000002 rho+ K*- eta' PHSP; -0.000010 rho0 anti-K*0 pi0 PHSP; -0.000005 rho0 anti-K*0 eta PHSP; -0.000002 rho0 anti-K*0 eta' PHSP; -0.000010 rho- anti-K*0 pi+ PHSP; -0.000010 rho+ anti-K*0 pi- PHSP; -0.000010 omega K*- pi+ PHSP; -0.000010 omega anti-K*0 pi0 PHSP; -0.000005 omega anti-K*0 eta PHSP; -0.000002 omega anti-K*0 eta' PHSP; -0.000010 pi+ pi- K*- pi+ PHSP; -0.000010 pi+ pi0 K*- pi0 PHSP; -0.000005 pi+ pi0 K*- eta PHSP; -0.000002 pi+ pi0 K*- eta' PHSP; -0.000010 pi+ pi- anti-K*0 pi0 PHSP; -0.000005 pi+ pi- anti-K*0 eta PHSP; -0.000002 pi+ pi- anti-K*0 eta' PHSP; -0.000010 pi0 pi0 anti-K*0 pi0 PHSP; -0.000005 pi0 pi0 anti-K*0 eta PHSP; -0.000002 pi0 pi0 anti-K*0 eta' PHSP; -0.000010 rho- K- pi+ pi+ PHSP; -0.000010 rho0 K- pi+ pi0 PHSP; -0.000005 rho0 K- pi+ eta PHSP; -0.000002 rho0 K- pi+ eta' PHSP; -0.000010 rho+ K- pi+ pi- PHSP; -0.000010 rho+ K- pi0 pi0 PHSP; -0.000005 rho+ K- pi0 eta PHSP; -0.000002 rho+ K- pi0 eta' PHSP; - -0.000010 rho0 anti-K0 pi+ pi- PHSP; -0.000010 rho0 anti-K0 pi0 pi0 PHSP; -0.000005 rho0 anti-K0 pi0 eta PHSP; -0.000002 rho0 anti-K0 pi0 eta' PHSP; -0.000010 rho- anti-K0 pi+ pi0 PHSP; -0.000005 rho- anti-K0 pi+ eta PHSP; -0.000002 rho- anti-K0 pi+ eta' PHSP; -0.000010 rho+ anti-K0 pi- pi0 PHSP; -0.000005 rho+ anti-K0 pi- eta PHSP; -0.000002 rho+ anti-K0 pi- eta' PHSP; -0.000010 omega K- pi+ pi0 PHSP; -0.000005 omega K- pi+ eta PHSP; -0.000002 omega K- pi+ eta' PHSP; -0.000010 omega anti-K0 pi+ pi- PHSP; -0.000010 omega anti-K0 pi0 pi0 PHSP; -0.000005 omega anti-K0 pi0 eta PHSP; -0.000002 omega anti-K0 pi0 eta' PHSP; -0.000002 pi+ pi- pi+ K- pi0 PHSP; -0.000001 pi+ pi- pi+ K- eta PHSP; -0.000001 pi+ pi- pi+ K- eta' PHSP; -0.000002 pi0 pi0 pi+ K- pi0 PHSP; -0.000001 pi0 pi0 pi+ K- eta PHSP; -0.000001 pi0 pi0 pi+ K- eta' PHSP; -0.000002 pi+ pi- pi+ anti-K0 pi- PHSP; -0.000002 pi+ pi- pi0 anti-K0 pi0 PHSP; -0.000001 pi+ pi- pi0 anti-K0 eta PHSP; -0.000001 pi+ pi- pi0 anti-K0 eta' PHSP; -0.000002 pi0 pi0 pi0 anti-K0 pi0 PHSP; -0.000001 pi0 pi0 pi0 anti-K0 eta PHSP; -0.000001 pi0 pi0 pi0 anti-K0 eta' PHSP; -0.000010 rho+ anti-K_0*0 pi- PHSP; -0.000010 rho0 anti-K_0*0 pi0 PHSP; -0.000005 rho0 anti-K_0*0 eta PHSP; -0.000002 rho0 anti-K_0*0 eta' PHSP; -0.000010 rho- anti-K_0*0 pi+ PHSP; -0.000010 rho+ K_0*- pi0 PHSP; -0.000005 rho+ K_0*- eta PHSP; -0.000002 rho+ K_0*- eta' PHSP; -0.000010 rho0 K_0*- pi+ PHSP; -0.000010 pi+ pi- K_0*- pi+ PHSP; -0.000010 pi+ pi0 K_0*- pi0 PHSP; -0.000005 pi+ pi0 K_0*- eta PHSP; -0.000002 pi+ pi0 K_0*- eta' PHSP; -0.000010 pi+ pi- anti-K_0*0 pi0 PHSP; -0.000005 pi+ pi- anti-K_0*0 eta PHSP; -0.000002 pi+ pi- anti-K_0*0 eta' PHSP; -0.000010 pi0 pi0 anti-K_0*0 pi0 PHSP; -0.000005 pi0 pi0 anti-K_0*0 eta PHSP; -0.000005 pi0 pi0 anti-K_0*0 eta' PHSP; -0.000010 K*- f_0 pi+ PHSP; -0.000010 anti-K*0 f_0 pi0 PHSP; -0.000005 anti-K*0 f_0 eta PHSP; -0.000002 anti-K*0 f_0 eta' PHSP; -0.000010 a_1+ anti-K0 pi- PHSP; -0.000020 a_10 anti-K*0 PHSP; -0.000010 a_10 K- pi+ PHSP; -0.000010 a_10 anti-K0 pi0 PHSP; -0.000020 a_1+ K*- PHSP; -0.000010 a_1+ K- pi0 PHSP; -0.000010 a_1- anti-K0 pi+ PHSP; -0.000005 K*- a_00 pi+ PHSP; -0.000005 K*- a_0+ pi0 PHSP; -0.000002 K*- a_0+ eta PHSP; -0.000001 K*- a_0+ eta' PHSP; -0.000005 anti-K*0 a_0+ pi- PHSP; -0.000005 anti-K*0 a_00 pi0 PHSP; -0.000002 anti-K*0 a_00 eta PHSP; -0.000001 anti-K*0 a_00 eta' PHSP; -#--- 5-body K*-K*pi,rho-K-Kpi, K*-K-2pi, phi-3pi, 3pi-K-K ------------ -0.000001 K*- K*0 pi+ PHSP; -0.000001 K*+ anti-K*0 pi- PHSP; -0.000001 K*- K*+ pi0 PHSP; -0.0000005 K*- K*+ eta PHSP; -0.0000002 K*- K*+ eta' PHSP; -0.000001 K*0 anti-K*0 pi0 PHSP; -0.0000005 K*0 anti-K*0 eta PHSP; -0.0000002 K*0 anti-K*0 eta' PHSP; -0.000001 phi rho+ pi- PHSP; -0.000001 phi rho- pi+ PHSP; -0.000001 phi rho0 pi0 PHSP; -0.0000005 phi rho0 eta PHSP; -0.0000002 phi rho0 eta' PHSP; -0.000001 phi omega pi0 PHSP; -0.000001 phi f_0 pi0 PHSP; -0.000001 phi pi+ pi- pi0 PHSP; -0.0000005 phi pi+ pi- eta PHSP; -0.0000002 phi pi+ pi- eta' PHSP; -0.000001 phi pi0 pi0 pi0 PHSP; -0.0000005 phi pi0 pi0 eta PHSP; -0.0000002 phi pi0 pi0 eta' PHSP; -0.000001 K0 K- rho0 pi+ PHSP; -0.000001 K0 K- rho+ pi0 PHSP; -0.0000005 K0 K- rho+ eta PHSP; -0.0000002 K0 K- rho+ eta' PHSP; -0.000001 K0 K- omega pi+ PHSP; -0.000001 K0 K- f_0 pi+ PHSP; -0.000001 K+ K- rho+ pi- PHSP; -0.000001 K+ K- rho- pi+ PHSP; -0.000001 K+ K- rho0 pi0 PHSP; -0.0000005 K+ K- rho0 eta PHSP; -0.0000002 K+ K- rho0 eta' PHSP; -0.000001 K+ K- omega pi0 PHSP; -0.0000005 K+ K- omega eta PHSP; -0.0000002 K+ K- omega eta' PHSP; -0.000001 K+ K- f_0 pi0 PHSP; -0.000001 K0 anti-K0 rho+ pi- PHSP; -0.000001 K0 anti-K0 rho- pi+ PHSP; -0.000001 K0 anti-K0 rho0 pi0 PHSP; -0.0000005 K0 anti-K0 rho0 eta PHSP; -0.0000002 K0 anti-K0 rho0 eta' PHSP; -0.000001 K0 anti-K0 omega pi0 PHSP; -0.000001 K0 anti-K0 f_0 pi0 PHSP; -0.000001 anti-K0 K+ rho0 pi- PHSP; -0.000001 anti-K0 K+ rho- pi0 PHSP; -0.0000005 anti-K0 K+ rho- eta PHSP; -0.0000002 anti-K0 K+ rho- eta' PHSP; -0.000001 anti-K0 K+ omega pi- PHSP; -0.000001 anti-K0 K+ f_0 pi- PHSP; -0.0000002 K0 K- pi+ pi+ pi- PHSP; -0.0000002 K0 K- pi+ pi0 pi0 PHSP; -0.0000001 K0 K- pi+ pi0 eta PHSP; -0.0000001 K0 K- pi+ pi0 eta' PHSP; -0.0000002 K+ K- pi+ pi- pi0 PHSP; -0.0000001 K+ K- pi+ pi- eta PHSP; -0.0000001 K+ K- pi+ pi- eta' PHSP; -0.0000002 K+ K- pi0 pi0 pi0 PHSP; -0.0000001 K+ K- pi0 pi0 eta PHSP; -0.0000001 K+ K- pi0 pi0 eta' PHSP; -0.0000002 K0 anti-K0 pi+ pi- pi0 PHSP; -0.0000001 K0 anti-K0 pi+ pi- eta PHSP; -0.0000001 K0 anti-K0 pi+ pi- eta' PHSP; -0.0000002 K0 anti-K0 pi0 pi0 pi0 PHSP; -0.0000001 K0 anti-K0 pi0 pi0 eta PHSP; -0.0000001 K0 anti-K0 pi0 pi0 eta' PHSP; -0.0000002 anti-K0 K+ pi- pi+ pi- PHSP; -0.0000002 anti-K0 K+ pi- pi0 pi0 PHSP; -0.0000001 anti-K0 K+ pi- pi0 eta PHSP; -0.0000001 anti-K0 K+ pi- pi0 eta' PHSP; -0.000001 K*0 K- pi+ pi0 PHSP; -0.0000005 K*0 K- pi+ eta PHSP; -0.0000002 K*0 K- pi+ eta' PHSP; -0.000001 K*- K0 pi+ pi0 PHSP; -0.0000005 K*- K0 pi+ eta PHSP; -0.0000002 K*- K0 pi+ eta' PHSP; -0.000001 K*+ K- pi+ pi- PHSP; -0.000001 K*+ K- pi0 pi0 PHSP; -0.0000005 K*+ K- pi0 eta PHSP; -0.0000002 K*+ K- pi0 eta' PHSP; -0.000001 K*- K+ pi+ pi- PHSP; -0.000001 K*- K+ pi0 pi0 PHSP; -0.0000005 K*- K+ pi0 eta PHSP; -0.0000002 K*- K+ pi0 eta' PHSP; -0.000001 K*0 anti-K0 pi+ pi- PHSP; -0.000001 K*0 anti-K0 pi0 pi0 PHSP; -0.0000005 K*0 anti-K0 pi0 eta PHSP; -0.0000002 K*0 anti-K0 pi0 eta' PHSP; -0.000001 K0 anti-K*0 pi+ pi- PHSP; -0.000001 K0 anti-K*0 pi0 pi0 PHSP; -0.0000005 K0 anti-K*0 pi0 eta PHSP; -0.0000002 K0 anti-K*0 pi0 eta' PHSP; -0.000001 K+ anti-K*0 pi- pi0 PHSP; -0.0000005 K+ anti-K*0 pi- eta PHSP; -0.0000002 K+ anti-K*0 pi- eta' PHSP; -0.000001 K*+ anti-K0 pi- pi0 PHSP; -0.0000005 K*+ anti-K0 pi- eta PHSP; -0.0000002 K*+ anti-K0 pi- eta' PHSP; -#--- 5-body phi-K*-pi, phi-K-2pi, K-K-K*-pi, 2pi-K-K-K -------------------- -0.000010 phi K*- pi+ PHSP; -0.000010 phi anti-K*0 pi0 PHSP; -0.000005 phi anti-K*0 eta PHSP; -0.000002 phi anti-K*0 eta' PHSP; -0.000010 phi K- rho+ PHSP; -0.000010 phi anti-K0 rho0 PHSP; -0.000010 phi anti-K0 omega PHSP; -0.000010 phi anti-K0 f_0 PHSP; -0.000010 phi anti-K0 pi+ pi- PHSP; -0.000010 phi anti-K0 pi0 pi0 PHSP; -0.000005 phi anti-K0 pi0 eta PHSP; -0.000002 phi anti-K0 pi0 eta' PHSP; -0.000010 phi K- pi+ pi0 PHSP; -0.000005 phi K- pi+ eta PHSP; -0.000002 phi K- pi+ eta' PHSP; -0.000010 K+ K- K*- pi+ PHSP; -0.000010 K- K*+ K- pi+ PHSP; -0.000010 K- K*0 anti-K0 pi+ PHSP; -0.000010 K- K0 anti-K*0 pi+ PHSP; -0.000010 K0 K*- anti-K0 pi+ PHSP; -0.000010 K- K+ K- rho+ PHSP; -0.000010 K- K+ anti-K0 rho0 PHSP; -0.000010 K- K+ anti-K0 omega PHSP; -0.000010 K- K+ anti-K0 f_0 PHSP; -0.000010 K+ K- K- pi+ pi0 PHSP; -0.000005 K+ K- K- pi+ eta PHSP; -0.000002 K+ K- K- pi+ eta' PHSP; -0.000010 K+ K- anti-K0 pi+ pi- PHSP; -0.000010 K+ K- anti-K0 pi0 pi0 PHSP; -0.000005 K+ K- anti-K0 pi0 eta PHSP; -0.000005 K+ K- anti-K0 pi0 eta' PHSP; -0.000010 K0 anti-K0 K- pi+ pi0 PHSP; -0.000005 K0 anti-K0 K- pi+ eta PHSP; -0.000002 K0 anti-K0 K- pi+ eta' PHSP; -0.000010 K0 anti-K0 anti-K0 pi+ pi- PHSP; -0.000010 K0 anti-K0 anti-K0 pi0 pi0 PHSP; -0.000005 K0 anti-K0 anti-K0 pi0 eta PHSP; -0.000002 K0 anti-K0 anti-K0 pi0 eta' PHSP; -0.000010 phi K_0*- pi+ PHSP; -0.000010 phi anti-K_0*0 pi0 PHSP; -0.000010 K+ K- K_0*- pi+ PHSP; -0.000010 K+ K- anti-K_0*0 pi0 PHSP; -0.000005 K+ K- anti-K_0*0 eta PHSP; -0.000002 K+ K- anti-K_0*0 eta' PHSP; -0.000010 K- K- K_0*+ pi+ PHSP; -0.000010 K- anti-K_0*0 K0 pi+ PHSP; -0.000010 K- K_0*0 anti-K0 pi+ PHSP; -0.000010 K0 anti-K0 K_0*- pi+ PHSP; -0.000010 K0 anti-K0 anti-K_0*0 pi0 PHSP; -0.000005 K0 anti-K0 anti-K_0*0 eta PHSP; -0.000002 K0 anti-K0 anti-K_0*0 eta' PHSP; -0.000010 anti-K0 anti-K0 K_0*0 pi0 PHSP; -0.000005 anti-K0 anti-K0 K_0*0 eta PHSP; -0.000002 anti-K0 anti-K0 K_0*0 eta' PHSP; -0.000002 phi K'_1- pi+ PHSP; -0.000002 phi anti-K'_10 pi0 PHSP; -0.000001 phi anti-K'_10 eta PHSP; -0.000001 phi anti-K'_10 eta' PHSP; -0.000002 K- K+ K'_1- pi+ PHSP; -0.000002 K- K+ anti-K'_10 pi0 PHSP; -0.000001 K- K+ anti-K'_10 eta PHSP; -0.000001 K- K+ anti-K'_10 eta' PHSP; -0.000002 K- K- K'_1+ pi+ PHSP; -0.000002 K0 anti-K0 anti-K'_10 pi0 PHSP; -0.000001 K0 anti-K0 anti-K'_10 eta PHSP; -0.000001 K0 anti-K0 anti-K'_10 eta' PHSP; -0.000002 anti-K0 anti-K0 K'_10 pi0 PHSP; -0.000001 anti-K0 anti-K0 K'_10 eta PHSP; -0.000001 anti-K0 anti-K0 K'_10 eta' PHSP; -#--- 5-body phi-phi-K, phi-phi-pi, phi-3K, phi-K-K-pi, 5K, 4K-pi ------------ -0.000004100 phi phi anti-K0 PHSP; #[Reconstructed PDG2011] -0.0000001 phi phi pi0 PHSP; -0.000001 phi K+ K- anti-K0 PHSP; -0.000001 phi K0 anti-K0 anti-K0 PHSP; -0.0000001 phi K+ K- pi0 PHSP; -0.0000001 phi K0 anti-K0 pi0 PHSP; -0.0000001 phi anti-K0 K+ pi- PHSP; -0.0000001 phi K0 K- pi+ PHSP; -0.0000001 K+ K- K+ K- anti-K0 PHSP; -0.0000001 K0 anti-K0 K+ K- anti-K0 PHSP; -0.0000001 K+ K- K+ K- pi0 PHSP; -0.0000001 K+ K- K0 anti-K0 pi0 PHSP; -0.0000001 K+ K- K+ anti-K0 pi- PHSP; -0.0000001 K+ K- K0 K- pi+ PHSP; -0.0000001 K0 anti-K0 K0 anti-K0 pi0 PHSP; -0.0000001 K0 anti-K0 anti-K0 K+ pi- PHSP; -0.0000001 K0 anti-K0 K0 K- pi+ PHSP; -#--- 6-body phi-phi-K*, phi-3Kpi, phi-K-K-2pi ------------ -0.000003 phi phi anti-K*0 PHSP; -0.000001 phi K+ K- anti-K*0 PHSP; -0.000001 phi K0 anti-K0 anti-K*0 PHSP; -0.000001 phi anti-K0 K- K*+ PHSP; -0.000001 phi anti-K0 anti-K0 K*0 PHSP; -0.0000001 phi K+ K- K- pi+ PHSP; -0.0000001 phi K+ K- anti-K0 pi0 PHSP; -0.0000001 phi K0 anti-K0 K- pi+ PHSP; -0.0000001 phi K0 anti-K0 anti-K0 pi0 PHSP; -#--- 6-body a1a1 ------------ -0.000050 a_10 a_10 PHSP; -0.000050 a_1+ a_1- PHSP; -# -# PR LHCb: 7 Nov 2005 Add anti-K*0 pi0 pi0 -0.0000067 anti-K*0 pi0 pi0 PHSP; -# -# B -> cc= s -# -# Charmonium states - updated from Lange's recommendations (august 23,2000) -# Based on new BABAR results I'm making the following changes (Lange, March 13, 2001 -# J/psi K0 was 10, now 9 x 10^-4 -# J/psi pi0 was 2.5, now 2.0 x 10^-4 -# J/psi Kstar was 15, now 13 -# Fix chic1 KS CP eigenstate -# adding J/psi rho and omega - for lack of better thing will use the Kstar helicity amplitudes. -# Psi2sKs 30 ->31 -# chic1 Kstar: 12 ->6 -0.000435500 J/psi K_S0 SVS; #[Reconstructed PDG2011] -0.000435500 J/psi K_L0 SVS; #[Reconstructed PDG2011] -# -# -0.001330000 J/psi anti-K*0 SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] -0.000017600 J/psi pi0 SVS; #[Reconstructed PDG2011] -0.000027000 J/psi rho0 SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] -0.000030 J/psi omega SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; -0.000000000 J/psi K- pi+ PHSP; #[Reconstructed PDG2011] -0.0001 J/psi anti-K0 pi0 PHSP; -#rl0.0007 J/psi anti-K0 pi+ pi- PHSP; -#rl0.00035 J/psi anti-K0 pi0 pi0 PHSP; -#rl0.00035 J/psi K- pi+ pi0 PHSP; -0.001300000 J/psi anti-K_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; #[Reconstructed PDG2011] -0.0001 J/psi anti-K'_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; -0.0005 J/psi anti-K_2*0 PHSP; -0.000094000 J/psi phi anti-K0 PHSP; #[Reconstructed PDG2011] -# -0.000310000 psi(2S) K_S0 SVS; #[Reconstructed PDG2011] -0.000310000 psi(2S) K_L0 SVS; #[Reconstructed PDG2011] -# -# -0.000610000 psi(2S) anti-K*0 SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] - -0.0004 psi(2S) K- pi+ PHSP; -0.0002 psi(2S) anti-K0 pi0 PHSP; -0.0002 psi(2S) anti-K0 pi+ pi- PHSP; -0.0001 psi(2S) anti-K0 pi0 pi0 PHSP; -0.0001 psi(2S) K- pi+ pi0 PHSP; -0.0004 psi(2S) anti-K_10 PHSP; - -# -0.000445000 eta_c K_S0 PHSP; #[Reconstructed PDG2011] -0.000445000 eta_c K_L0 PHSP; #[Reconstructed PDG2011] -# -# -0.000610000 anti-K*0 eta_c SVS; #[Reconstructed PDG2011] -0.0002 eta_c K- pi+ PHSP; -0.0001 eta_c anti-K0 pi0 PHSP; -0.0002 eta_c anti-K0 pi+ pi- PHSP; -0.0001 eta_c anti-K0 pi0 pi0 PHSP; -0.0001 eta_c K- pi+ pi0 PHSP; -# -0.00024 eta_c(2S) K_S0 PHSP; -0.00024 eta_c(2S) K_L0 PHSP; -# -# -0.00066 anti-K*0 eta_c(2S) SVS; -0.00008 eta_c(2S) K- pi+ PHSP; -0.00005 eta_c(2S) anti-K0 pi0 PHSP; -0.00008 eta_c(2S) anti-K0 pi+ pi- PHSP; -0.00005 eta_c(2S) anti-K0 pi0 pi0 PHSP; -0.00005 eta_c(2S) K- pi+ pi0 PHSP; -# -0.000070000 chi_c0 K_S0 PHSP; #[Reconstructed PDG2011] -0.000070000 chi_c0 K_L0 PHSP; #[Reconstructed PDG2011] -# -# -0.00030 anti-K*0 chi_c0 SVS; -0.0002 chi_c0 K- pi+ PHSP; -0.0001 chi_c0 anti-K0 pi0 PHSP; -0.0002 chi_c0 anti-K0 pi+ pi- PHSP; -0.0001 chi_c0 anti-K0 pi0 pi0 PHSP; -0.0001 chi_c0 K- pi+ pi0 PHSP; -# -0.000195000 chi_c1 K_S0 SVS; #[Reconstructed PDG2011] -0.000195000 chi_c1 K_L0 SVS; #[Reconstructed PDG2011] -# -# -0.000222000 chi_c1 anti-K*0 SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] -0.0004 chi_c1 K- pi+ PHSP; -0.0002 chi_c1 anti-K0 pi0 PHSP; -0.0004 chi_c1 anti-K0 pi+ pi- PHSP; -0.0002 chi_c1 anti-K0 pi0 pi0 PHSP; -0.0002 chi_c1 K- pi+ pi0 PHSP; -# -0.00005 chi_c2 K_S0 STS; -0.00005 chi_c2 K_L0 STS; -# -# -0.00003 chi_c2 anti-K*0 PHSP; -0.0002 chi_c2 K- pi+ PHSP; -0.0001 chi_c2 anti-K0 pi0 PHSP; -0.0002 chi_c2 anti-K0 pi+ pi- PHSP; -0.0001 chi_c2 anti-K0 pi0 pi0 PHSP; -0.0001 chi_c2 K- pi+ pi0 PHSP; -# -0.00024 psi(3770) K_S0 SVS; -0.00024 psi(3770) K_L0 SVS; -# -# -0.00048 psi(3770) anti-K*0 SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; -0.00014 psi(3770) K- pi+ PHSP; -0.00014 psi(3770) anti-K0 pi0 PHSP; -0.00014 psi(3770) anti-K0 pi+ pi- PHSP; -0.00007 psi(3770) anti-K0 pi0 pi0 PHSP; -0.00007 psi(3770) K- pi+ pi0 PHSP; -0.00029 psi(3770) anti-K_10 PHSP; -# -# b-> c (dc=) -# -0.000211000 D- D+ PHSP; #[Reconstructed PDG2011] -# See Ref [B1] for the next 3: -0.000305 D*+ D- SVS; -0.000610000 D*- D+ SVS; #[Reconstructed PDG2011] -0.000820000 D*+ D*- SVV_HELAMP 0.47 0.0 0.96 0.0 0.56 0.0; #[Reconstructed PDG2011] - -# -# b -> c (sc=) --> D Ds X Sum = 10% -# -0.007200000 D+ D_s- PHSP; #[Reconstructed PDG2011] -0.008000000 D*+ D_s- SVS; #[Reconstructed PDG2011] -0.007400000 D_s*- D+ SVS; #[Reconstructed PDG2011] -0.017700000 D*+ D_s*- SVV_HELAMP 0.4904 0.0 0.7204 0.0 0.4904 0.0; #[Reconstructed PDG2011] -0.0006 D'_1+ D_s- SVS; -0.0012 D'_1+ D_s*- SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; -0.0012 D_1+ D_s- SVS; -0.0024 D_1+ D_s*- SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; -0.0042 D_2*+ D_s- STS; -0.0040 D_2*+ D_s*- PHSP; -# -0.0018 D_s- D+ pi0 PHSP; -0.0037 D_s- D0 pi+ PHSP; -0.0018 D_s*- D+ pi0 PHSP; -0.0037 D_s*- D0 pi+ PHSP; -0.0030 D_s- D+ pi+ pi- PHSP; -0.0022 D_s- D+ pi0 pi0 PHSP; -0.0022 D_s- D0 pi+ pi0 PHSP; -0.0030 D_s*- D+ pi+ pi- PHSP; -0.0022 D_s*- D+ pi0 pi0 PHSP; -0.0022 D_s*- D0 pi+ pi0 PHSP; -# -# b -> c (sc=) --> D D= K X Sum = 8% -# Update: Ref. [B1] -# -# External W-emission amplitude -0.001700000 D+ anti-D0 K- PHSP; #[Reconstructed PDG2011] -0.004600000 D+ anti-D*0 K- PHSP; #[Reconstructed PDG2011] -0.003100000 D*+ anti-D0 K- PHSP; #[Reconstructed PDG2011] -0.011800000 D*+ anti-D*0 K- PHSP; #[Reconstructed PDG2011] -# External+internal W-emission amplitude -0.0015 D+ D- anti-K0 PHSP; -0.0018 D*+ D- anti-K0 PHSP; -0.0047 D+ D*- anti-K0 PHSP; -0.007800000 D*+ D*- anti-K0 PHSP; #[Reconstructed PDG2011] -# Internal W-emission amplitude (color suppressed modes) -0.0005 D0 anti-D0 anti-K0 PHSP; -0.000120000 D*0 anti-D0 anti-K0 PHSP; #[Reconstructed PDG2011] -0.0015 D0 anti-D*0 anti-K0 PHSP; -0.0015 D*0 anti-D*0 anti-K0 PHSP; - -0.0025 D+ anti-D0 K*- PHSP; -0.0025 D*+ anti-D0 K*- PHSP; -0.0025 D+ anti-D*0 K*- PHSP; -0.0050 D*+ anti-D*0 K*- PHSP; -# -0.0025 D+ D- anti-K*0 PHSP; -0.0025 D*+ D- anti-K*0 PHSP; -0.0025 D+ D*- anti-K*0 PHSP; -0.0050 D*+ D*- anti-K*0 PHSP; -# -0.0005 anti-D0 D0 anti-K*0 PHSP; -0.0005 anti-D0 D*0 anti-K*0 PHSP; -0.0005 anti-D*0 D0 anti-K*0 PHSP; -0.0010 anti-D*0 D*0 anti-K*0 PHSP; -# -# -# B -> D(*) X Exclusive modes -# -0.002760000 D*+ pi- SVS; #[Reconstructed PDG2011] -0.002680000 D+ pi- PHSP; #[Reconstructed PDG2011] -0.007110000 rho- D+ SVS; #[Reconstructed PDG2011] -# -# D* rho HELAMP parameters taken from ICHEP 98-852. -0.006800000 rho- D*+ SVV_HELAMP 0.152 1.47 0.936 0 0.317 0.19; #[Reconstructed PDG2011] -0.0005 D+ pi- pi0 PHSP; -0.008200000 D*+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000840000 D0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000620000 D*0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.0005 D*0 pi0 pi0 PHSP; -# -# D a1 updated Ref. [B1] -0.006000000 a_1- D+ SVS; #[Reconstructed PDG2011] -0.000000000 D+ rho0 pi- PHSP; #[Reconstructed PDG2011] -0.0011 D+ rho- pi0 PHSP; -0.002000000 D+ pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -0.0010 D+ pi0 pi- pi0 PHSP; -0.0010 D0 pi+ pi- pi0 PHSP; -0.0001 D0 pi0 pi0 pi0 PHSP; -# -# SVV_HELAMP for D* a1 taken from factorization. Recommandation -# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/168.html: -# updated Ref. [B1] -# October 26, 2004 Lange update -# Dec 7 2015, MK update with PDG2015, details see corresponding B0 -0.011000000 D*+ a_1- SVV_HELAMP 0.200 0.0 0.866 0.0 0.458 0.0; #[Reconstructed PDG2011] -# -0.001600000 D*+ rho0 pi- PHSP; #[Reconstructed PDG2011] -0.0010 D*+ rho- pi0 PHSP; -0.0005 D*+ pi+ pi- pi- PHSP; -0.0010 D*+ pi0 pi- pi0 PHSP; -0.0010 D*0 pi+ pi- pi0 PHSP; -0.0001 D*0 pi0 pi0 pi0 PHSP; -# -# B->D** pi and D** rho, recommendation -# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/151.html -#further updates October 26, 2004 - Lange -# October 26, 2004 Lange update -# -0.0001 D_1+ pi- SVS; -0.0001 D'_1+ pi- SVS; -0.00006 D_0*+ pi- PHSP; -0.000215 D_2*+ pi- STS; -0.0004 D_1+ rho- PHSP; -0.0013 D'_1+ rho- PHSP; -0.0022 D_2*+ rho- PHSP; -# -# -# B->DK, recommendation -# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/151.html: -# update: Ref. [B1]: -# -0.000214000 D*+ K- SVS; #[Reconstructed PDG2011] -0.000200000 D+ K- PHSP; #[Reconstructed PDG2011] -0.000330000 D*+ K*- SVV_HELAMP 0.228 0.0 0.932 0.0 0.283 0.0; #[Reconstructed PDG2011] -0.000450000 K*- D+ SVS; #[Reconstructed PDG2011] -#more DK modes - October 26, 2004 -Lange -0.000036 D*0 K0 SVS; -0.000052 D0 K0 PHSP; -0.000042000 anti-K*0 D0 SVS; #[Reconstructed PDG2011] -0.00001 anti-K*0 anti-D0 SVS; -0.00004 D*0 anti-K*0 SVV_HELAMP 1. 0. 1. 0. 1. 0.; -0.00001 anti-D*0 anti-K*0 SVV_HELAMP 1. 0. 1. 0. 1. 0.; -# -# -# Color-suppressed modes. Br's are expectations from -# Phys. Rev. D57 (1998), 5363-5369, except for the eta' modes, which are set -# equal to the eta modes. SVV_HELAMP parameters are the same as in D*0 rho-, -# with phases set to 0. Recommendation http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/169.html: -# update: See Ref [B1]: -# further update October 26, 2004 Lange -# -0.000261000 D0 pi0 PHSP; #[Reconstructed PDG2011] -0.000170000 D*0 pi0 SVS; #[Reconstructed PDG2011] -# -0.000320000 rho0 D0 SVS; #[Reconstructed PDG2011] -0.00029 D*0 rho0 SVV_HELAMP 0.228 0.0 0.932 0.0 0.283 0.0; -# -0.000202000 D0 eta PHSP; #[Reconstructed PDG2011] -0.000200000 D*0 eta SVS; #[Reconstructed PDG2011] -# -0.000125 D0 eta' PHSP; -0.000123000 D*0 eta' SVS; #[Reconstructed PDG2011] -# -0.000259000 omega D0 SVS; #[Reconstructed PDG2011] -0.000330000 D*0 omega SVV_HELAMP 0.228 0.0 0.932 0.0 0.283 0.0; #[Reconstructed PDG2011] -# -# -#October 26, 2004 - Lange -0.0016 D_s0*- D+ PHSP; -0.0015 D*+ D_s0*- SVS; -0.003500000 D_s1- D+ SVS; #[Reconstructed PDG2011] -0.009300000 D*+ D_s1- SVV_HELAMP 0.4904 0. 0.7204 0. 0.4904 0.; #[Reconstructed PDG2011] -# -# Feb 2009 -# -0.00088 D+ K- anti-K*0 PHSP; -0.00129 D*+ K- anti-K*0 PHSP; -# -# Feb 2009 -# -0.002800000 D+ omega pi- PHSP; #[Reconstructed PDG2011] -0.002890000 D*+ omega pi- PHSP; #[Reconstructed PDG2011] -# -# Feb 2009 -# -0.00049 D+ K0 pi- PHSP; -0.0003 D*+ K0 pi- PHSP; -# -# Feb 2009 -# -0.00043 D'_s1- D+ PHSP; -0.00083 D'_s1- D*+ PHSP; -##### Already included above 0.0023 D_s1- D*+ PHSP; -# -# -# Lam_c X / Sigma_c X 6.0 % -# -#0.01000 cd_0 anti-ud_0 PYTHIA 63; -#0.03000 cd_1 anti-ud_1 PYTHIA 63; -0.010463563 cd_0 anti-ud_0 PYTHIA 63; -0.020927220 cd_1 anti-ud_1 PYTHIA 63; -# -# Xi_c X 2.5% -# -#0.00600 cs_0 anti-ud_0 PYTHIA 63; -#0.01800 cs_1 anti-ud_1 PYTHIA 63; -0.002853725 cs_0 anti-ud_0 PYTHIA 63; -0.005707449 cs_1 anti-ud_1 PYTHIA 63; -# -# PR LHCb Add p pbar mode -0.0000001 p+ anti-p- PHSP; -# -0.250525685 anti-u d c anti-d PYTHIA 23; -0.042705898 anti-u d c anti-d PYTHIA 65; -0.019975978 anti-u s c anti-d PYTHIA 63; -0.017122253 anti-u c d anti-d PYTHIA 23; -0.000856098 anti-u c s anti-d PYTHIA 23; -#lange - try to crank up the psi production.... -0.070391402 anti-c s c anti-d PYTHIA 43; -0.005707449 anti-c d c anti-d PYTHIA 43; -0.002853725 anti-u d u anti-d PYTHIA 23; -0.003804966 anti-c s u anti-d PYTHIA 23; -# JGS 11/5/02 This and similar a few lines above have been divided by two -# to solve a double-counting problem for this channel -0.001950007 anti-u u d anti-d PYTHIA 23; -0.000066610 anti-d d d anti-d PYTHIA 23; -0.000085600 anti-s s d anti-d PYTHIA 23; -0.002092675 anti-u u s anti-d PYTHIA 23; -0.001712197 anti-d d s anti-d PYTHIA 23; -0.001426862 anti-s s s anti-d PYTHIA 23; -0.004756208 s anti-d PYTHIA 91; -0.000490000 D+ anti-K0 pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000880000 D+ K- K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000000 D*+ anti-K0 pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001290000 D*+ K- K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.017600000 D*+ pi- pi- pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.004700000 D*+ pi- pi- pi- pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000110000 D_s+ pi- anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000052000 D0 anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000046000 D0 K- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000006000 anti-D0 K- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000036000 D*0 anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.002700000 anti-D*0 pi- pi- pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000890000 eta_c anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000871000 J/psi anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000310000 J/psi omega anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000009500 J/psi eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000019000 J/psi pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000460000 J/psi anti-K0 pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000540000 J/psi anti-K0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000800000 J/psi K*- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000660000 J/psi anti-K*0 pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000170000 anti-K0 anti-D0 D0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000620000 psi(2S) anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000140000 chi_c0 anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000011200 chi_c1 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000390000 chi_c1 anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000158000 chi_c1 K+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000011000 eta anti-K_0*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000009600 eta anti-K_2*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000016000 omega anti-K_0*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000010100 omega anti-K_2*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000004700 anti-K0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000002700 f_2 anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000001400 f_0 K- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000007500 anti-K_2*0 phi PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000007600 eta anti-K0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000004600 K- pi+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000019500 anti-K0 pi- pi+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000041000 K- pi+ pi0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000012400 anti-K_2*0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000860 rho0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000002660 anti-p- p+ anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000001240 anti-p- p+ anti-K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000003140 anti-p- Lambda0 pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000004800 Lambda0 anti-Lambda0 anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000002500 Lambda0 anti-Lambda0 anti-K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000011000 Lambda0 anti-Lambda0 anti-D0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000114000 D0 anti-p- p+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000028000 D_s+ Lambda0 anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000103000 D*0 anti-p- p+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001500000 D*+ anti-p- n0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000338000 D+ anti-p- p+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000500000 D*+ anti-p- p+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000020000 Lambda_c+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000630000 Lambda_c+ anti-p- pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000120000 Sigma_c*++ anti-p- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000150000 Sigma_c0 anti-p- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000220000 Sigma_c++ anti-p- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -# -Decay B0 -# Updated to PDG 2008 -# b -> c semileptonic -# -0.0493 D*- e+ nu_e PHOTOS HQET2 1.207 0.920 1.406 0.853; # 1.0 * PDG2014 -0.0219 D- e+ nu_e PHOTOS HQET2 1.185 1.081; # 1.0 * PDG2014 -0.0042 D_1- e+ nu_e PHOTOS ISGW2; # PDG2014+D_J below -0.0045 D_0*- e+ nu_e PHOTOS ISGW2; # PDG2014+D_J below -0.0046 D'_1- e+ nu_e PHOTOS ISGW2; # PDG2014+D_J below -0.0033 D_2*- e+ nu_e PHOTOS ISGW2; # PDG2014+D_J below -0.00045 D*- pi0 e+ nu_e PHOTOS GOITY_ROBERTS; # Increase by 1.5 compared to 2011 -0.00490 anti-D*0 pi- e+ nu_e PHOTOS GOITY_ROBERTS; # Same as 2011 -0.0015 D- pi0 e+ nu_e PHOTOS GOITY_ROBERTS; # 1.5 * of 2011 table -0.0043 anti-D0 pi- e+ nu_e PHOTOS GOITY_ROBERTS; # In principle should be in D**, but go to PDG2014 to fill inclusive -# -# Do same as for electrons -0.0493 D*- mu+ nu_mu PHOTOS HQET2 1.207 0.920 1.406 0.853; -0.0219 D- mu+ nu_mu PHOTOS HQET2 1.185 1.081; -0.0042 D_1- mu+ nu_mu PHOTOS ISGW2; -0.0045 D_0*- mu+ nu_mu PHOTOS ISGW2; -0.0046 D'_1- mu+ nu_mu PHOTOS ISGW2; -0.0033 D_2*- mu+ nu_mu PHOTOS ISGW2; -0.00045 D*- pi0 mu+ nu_mu PHOTOS GOITY_ROBERTS; -0.00490 anti-D*0 pi- mu+ nu_mu PHOTOS GOITY_ROBERTS; -0.0015 D- pi0 mu+ nu_mu PHOTOS GOITY_ROBERTS; -0.0043 anti-D0 pi- mu+ nu_mu PHOTOS GOITY_ROBERTS; -# -# b -> c tau nu -# -0.015000000 D*- tau+ nu_tau ISGW2; #[Reconstructed PDG2011] -0.011000000 D- tau+ nu_tau ISGW2; #[Reconstructed PDG2011] -0.0013 D_1- tau+ nu_tau ISGW2; -0.0013 D_0*- tau+ nu_tau ISGW2; -0.0020 D'_1- tau+ nu_tau ISGW2; -0.0020 D_2*- tau+ nu_tau ISGW2; -# -# b -> u l nu -# -0.000145 pi- e+ nu_e PHOTOS ISGW2; # PDG2014 -0.000294 rho- e+ nu_e PHOTOS ISGW2; # PDG2014 -0.000000 D(2S)- e+ nu_e PHOTOS ISGW2; -0.000000 D*(2S)- e+ nu_e PHOTOS ISGW2; -0.001892 Xu- e+ nu_e VUB 4.8 1.29 0.22 20 0.30 0.55 1.20 0.61 1.26 0.85 1.34 1.08 1.41 1.21 1.48 1.30 1.55 1.30 1.61 1.33 1.67 1.36 1.73 1.39 1.79 1.33 1.84 1.42 1.90 1.39 1.95 1.39 2.00 1.37 2.50 1.30 3.00 0.74 3.50 0.99 4.00 1.09 4.50 1.00; -# -0.000145 pi- mu+ nu_mu PHOTOS ISGW2; # PDG2014 (electrons) -0.000294 rho- mu+ nu_mu PHOTOS ISGW2; # PDG2014 (electrons) -0.000000 D(2S)- mu+ nu_mu PHOTOS ISGW2; -0.000000 D*(2S)- mu+ nu_mu PHOTOS ISGW2; -0.001892 Xu- mu+ nu_mu VUB 4.8 1.29 0.22 20 0.30 0.55 1.20 0.61 1.26 0.85 1.34 1.08 1.41 1.21 1.48 1.30 1.55 1.30 1.61 1.33 1.67 1.36 1.73 1.39 1.79 1.33 1.84 1.42 1.90 1.39 1.95 1.39 2.00 1.37 2.50 1.30 3.00 0.74 3.50 0.99 4.00 1.09 4.50 1.00; -# -0.000060 pi- tau+ nu_tau ISGW2; -0.000083 rho- tau+ nu_tau ISGW2; -0.000090 a_1- tau+ nu_tau ISGW2; -0.000008 b_1- tau+ nu_tau ISGW2; -0.000008 a_0- tau+ nu_tau ISGW2; -0.000008 a_2- tau+ nu_tau ISGW2; -0.000000 rho(2S)- tau+ nu_tau ISGW2; -0.000000 D(2S)- tau+ nu_tau ISGW2; -0.000000 D*(2S)- tau+ nu_tau ISGW2; -# - -# -# b->u hadronic -# Ref. [B1]: -# Lange Nov 14, 2004 (flip D_s K --opposite of D_s pi) -0.000024000 D_s+ pi- PHSP; #[Reconstructed PDG2011] -0.000030000 D_s- K+ PHSP; #[Reconstructed PDG2011] -0.000021000 D_s*+ pi- SVS; #[Reconstructed PDG2011] -0.000021900 D_s*- K+ SVS; #[Reconstructed PDG2011] -# -0.000016 rho- D_s+ SVS; -0.000035000 K*+ D_s- SVS; #[Reconstructed PDG2011] -0.000041000 D_s*+ rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000032000 D_s*- K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] - - -# -# b -> s gamma -# -0.000043300 K*0 gamma HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -# PR LHCb add omega gamma -0.000000440 omega gamma HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -#0.0000135 K_10 gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000065 K'_10 gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000128 K'*0 gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000166 K_2*0 gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000017 K''*0 gamma HELAMP 1.0 0.0 1.0 0.0; -0.0003118 Xsd gamma BTOXSGAMMA 2 ; -# -0.000000160 K0 e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.000001030 K*0 e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.0000050 Xsd e+ e- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; -0.000000450 K0 mu+ mu- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.000001050 K*0 mu+ mu- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.0000025 Xsd mu+ mu- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; -0.0000001 K0 tau+ tau- PHOTOS BTOSLLBALL; -0.0000002 K*0 tau+ tau- PHOTOS BTOSLLBALL; -0.0000002 Xsd tau+ tau- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; -# -#------------------------------------------------------------------------------ -# 2- and 3-body modes revised Feb.2005 Markus Cristinziani, SLAC -#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv -# -# B0 -> CP eigenstates (some exclusive b -> u) sum=0.00036 -# -# PR LHCb 04/07/04 update BR -0.000005130 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000001620 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.0000010 pi0 eta PHSP; -0.000001200 pi0 eta' PHSP; #[Reconstructed PDG2011] -0.000001 pi0 a_00 PHSP; -0.000001 pi0 f_0 PHSP; -# pi0 rho0 is with the 3-body modes -0.000001 omega pi0 SVS; -0.000001 a_10 pi0 SVS; -0.000001 b_10 pi0 SVS; -0.000001 eta eta PHSP; -0.000001 eta eta' PHSP; -0.000001 eta a_00 PHSP; -0.000001 eta f_0 PHSP; -0.000001 rho0 eta SVS; -0.000000940 omega eta SVS; #[Reconstructed PDG2011] -0.000001 a_10 eta SVS; -0.000001 b_10 eta SVS; -0.000001 eta' eta' PHSP; -0.000001 eta' a_00 PHSP; -0.000001 eta' f_0 PHSP; -0.000001 rho0 eta' SVS; -0.000001000 omega eta' SVS; #[Reconstructed PDG2011] -0.000001 a_10 eta' SVS; -0.000001 b_10 eta' SVS; -0.000001 a_00 a_00 PHSP; -0.000001 a_00 f_0 PHSP; -0.000001 rho0 a_00 SVS; -0.000001 omega a_00 SVS; -0.000001 a_10 a_00 SVS; -0.000001 b_10 a_00 SVS; -0.000001 f_0 f_0 PHSP; -0.000001 rho0 f_0 SVS; -0.000001 omega f_0 SVS; -0.000001 a_10 f_0 SVS; -0.000001 b_10 f_0 SVS; - -# Penguin dominated modes are sin2beta, not sin2alpha -0.000004300 phi K_S0 SVS; #[Reconstructed PDG2011] -0.000004300 phi K_L0 SVS; #[Reconstructed PDG2011] -0.000000550 eta K_S0 PHSP; #[Reconstructed PDG2011] -0.000000550 eta K_L0 PHSP; #[Reconstructed PDG2011] -0.000033000 eta' K_S0 PHSP; #[Reconstructed PDG2011] -0.000033000 eta' K_L0 PHSP; #[Reconstructed PDG2011] -0.000002500 omega K_S0 SVS; #[Reconstructed PDG2011] -0.000002500 omega K_L0 SVS; #[Reconstructed PDG2011] -#don't allow jetset to simulate the same decay but to a K0 or anti-K0 -#Lange 1/30/2003 -0.0 phi K0 PHSP; -0.0 phi anti-K0 PHSP; -0.0 eta K0 PHSP; -0.0 eta anti-K0 PHSP; -0.0 eta' K0 PHSP; -0.0 eta' anti-K0 PHSP; -0.0 omega K0 PHSP; -0.0 omega anti-K0 PHSP; -# phipi0 has no simple Pengiun or tree so who knows - ditto phieta/eta'? -0.000001 phi pi0 SVS; -0.000001 phi eta SVS; -0.000001 phi eta' SVS; -# -0.000015900 K*0 eta SVS; #[Reconstructed PDG2011] -0.000003800 K*0 eta' SVS; #[Reconstructed PDG2011] -0.000002000 K*0 omega SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000001 phi omega SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000001 omega omega SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000001 omega rho0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -# -# PR LHCb 04/07/04 update BR -#2-body modes from Jim Olsen -0.000019400 K+ pi- PHSP; #[Reconstructed PDG2011] -0.0000004 K+ K- PHSP; -0.000000240 K_S0 K_S0 PHSP; #[Reconstructed PDG2011] -0.0000000 K_S0 K_L0 PHSP; -0.000000240 K_L0 K_L0 PHSP; #[Reconstructed PDG2011] -# Declare K0 pi0 not to have it through Pythia (LHCb - PR) -0.0000000 K0 pi0 PHSP; -# Split into K_s0 K_l0 (LHCb - P. Robbe) -0.000004750 K_S0 pi0 PHSP; #[Reconstructed PDG2011] -0.000004750 K_L0 pi0 PHSP; #[Reconstructed PDG2011] -#Put in with 0 BR to keep PYTHIA from generating it -0.0000000 K0 anti-K0 PHSP; -# -# 3-body John Back (jback@slac.stanford.edu) - Oct 15, 2002 -# JGS intersperses modes with pi0->eta,eta' -# B0 modes -# Model generates rho(770), rho(1450) and rho(1700) resonances -# with interference (uses CKM angle alpha) -0.000024 pi- pi+ pi0 BTO3PI_CP dm alpha; -# Put in with 0 BR to keep PYTHIA from generating these (see BTO3PI_CP above) -0.000000 rho0 pi0 SVS; -0.000000 rho+ pi- SVS; -0.000000 rho- pi+ SVS; -0.000000 rho(2S)+ pi- SVS; -0.000000 rho(2S)- pi+ SVS; -0.000000 rho(3S)+ pi- SVS; -0.000000 rho(3S)- pi+ SVS; -# -# rho0 3-body modes -0.000002350 rho0 K_S0 SVS; #[Reconstructed PDG2011] -0.000002350 rho0 K_L0 SVS; #[Reconstructed PDG2011] -# -# rho- 3-body modes -0.000008400 rho- K+ SVS; #[Reconstructed PDG2011] -# -# rho(1450) 3-body modes -0.0000005 rho(2S)0 K_S0 SVS; -0.0000005 rho(2S)0 K_L0 SVS; -# -# -# f0,a0(980) 3-body modes -0.0000055 f_0 K0 PHSP; -0.000001 a_00 K0 PHSP; -0.000001 a_0- K+ PHSP; -0.000001 a_0+ pi- PHSP; -0.000003 a_0- pi+ PHSP; -# -# K*0(892) 3-body modes -0.000003600 K*0 pi0 SVS; #[Reconstructed PDG2011] -0.000003 K*0 anti-K0 SVS; -# -# K*0(1430) 3-body modes -0.000001 K_0*0 pi0 PHSP; -0.000003 K_0*0 anti-K0 PHSP; -# -# K*0(1680) 3-body modes -0.000001 K''*0 pi0 SVS; -0.000001 K''*0 K0 SVS; - -# -# K*+(892) 3-body modes -0.000009400 K*+ pi- SVS; #[Reconstructed PDG2011] -0.000002 K*+ K- SVS; -# -# K*+(1430) 3-body modes -0.000033000 K_0*+ pi- PHSP; #[Reconstructed PDG2011] -0.000002 K_0*+ K- PHSP; -# -# K*0(1680) 3-body modes -0.000001 K''*+ pi- SVS; -0.000001 K''*+ K- SVS; -# -# -# Non-resonant 3-body left-overs -# Most modes are set at 1e-6 -# -# pi+pi-pi0: high mass + f0(400-1200) = (1+1)e-6 -#0402270.000002 pi+ pi- pi0 PHSP; -0.000017 pi+ pi- eta PHSP; -0.000001 pi+ pi- eta' PHSP; -# -# pi+ pi- K0: total-rhoK0-f0K0-piK*(892)-piK*(1430)=45-5-6-13./3-11./3 -0.000000000 pi+ pi- K0 PHSP; #[Reconstructed PDG2011] -# -# K+ pi- pi0 -0.000027500 K+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000020 K+ pi- eta PHSP; -0.000001 K+ pi- eta' PHSP; -# -# pi+ K- K0. -# Both B0 and B0bar can decay to these => 0.5e-6 each -0.0000005 pi+ K- K0 PHSP; -0.0000005 pi- K+ anti-K0 PHSP; -# -# K+ K- K0 -# PR LHCb 09 Apr 2004 split into KS/KL -0.000000 K+ K- K0 PHSP; -0.000012350 K+ K- K_S0 PHSP; #[Reconstructed PDG2011] -0.000012350 K+ K- K_L0 PHSP; #[Reconstructed PDG2011] -# -# K+ K- pi0 -0.000001 K+ K- pi0 PHSP; -0.000001 K+ K- eta PHSP; -0.000001 K+ K- eta' PHSP; -# -# pi0 K0 anti-K0 -0.000002 K0 anti-K0 pi0 PHSP; -0.000001 K0 anti-K0 eta PHSP; -0.000001 K0 anti-K0 eta' PHSP; -# -# pi0 pi0 K0 -0.000002 K0 pi0 pi0 PHSP; -0.000001 K0 pi0 eta PHSP; -0.000001 K0 pi0 eta' PHSP; -0.000001 K0 eta eta PHSP; -0.000001 K0 eta eta' PHSP; -0.000001 K0 eta' eta' PHSP; -# -# K0 anti-K0 K0: 8*BF(KsKsKs)~=48 (8 is a guess) -0.000048 K0 anti-K0 K0 PHSP; -# -# pi0 pi0 pi0 -0.000001 pi0 pi0 pi0 PHSP; -0.000001 pi0 pi0 eta PHSP; -0.000001 pi0 pi0 eta' PHSP; -0.000001 pi0 eta eta PHSP; -0.000001 pi0 eta eta' PHSP; -# -# PR LHCb: 7 Nov 2005 Add K*0 pi0 pi0 -0.0000067 K*0 pi0 pi0 PHSP; -#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -# 2- and 3-body modes revised Feb.2005 Markus Cristinziani, SLAC -#--------------------------------------------------------------------------- -# -#4-body modes from Andrei Gritsan -#--- 4-body rho-rho, rho-pi-pi, pi-pi-pi-pi -------------------------- -# PR LHCb 20 Apr 2004, set long. pol. -0.000000730 rho0 rho0 SVV_HELAMP 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000024200 rho+ rho- SVV_HELAMP 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000003 rho0 pi+ pi- PHSP; -0.000003 omega pi+ pi- PHSP; -0.000001 rho0 pi0 pi0 PHSP; -0.000001 omega pi0 pi0 PHSP; -0.0000005 rho0 pi0 eta PHSP; -0.0000002 rho0 eta eta PHSP; -0.0000002 rho0 pi0 eta' PHSP; -0.0000001 rho0 eta eta' PHSP; -0.0000005 omega pi0 eta PHSP; -0.0000002 omega eta eta PHSP; -0.0000002 omega pi0 eta' PHSP; -0.0000001 omega eta eta' PHSP; -0.000010 rho+ pi- pi0 PHSP; -0.000005 rho+ pi- eta PHSP; -0.000010 rho- pi+ pi0 PHSP; -0.000005 rho- pi+ eta PHSP; -0.000010 pi+ pi- pi+ pi- PHSP; -0.000010 pi+ pi- pi0 pi0 PHSP; -0.000005 pi+ pi- eta pi0 PHSP; -0.000002 pi+ pi- eta eta PHSP; -0.000002 pi+ pi- eta' pi0 PHSP; -0.000001 pi+ pi- eta' eta PHSP; -0.000016500 a_1+ pi- SVS; #[Reconstructed PDG2011] -0.000016500 a_1- pi+ SVS; #[Reconstructed PDG2011] -0.0000055 b_1+ pi- SVS; -0.0000055 b_1- pi+ SVS; -0.000002 rho- a_0+ SVS; -0.000010 rho+ a_0- SVS; -0.000001 f_0 pi+ pi- PHSP; -0.000001 f_0 pi0 pi0 PHSP; -0.000001 a_0- pi+ pi0 PHSP; -0.000001 a_00 pi0 pi0 PHSP; -0.000001 a_0+ pi- pi0 PHSP; -#--- 4-body rho-K*, rho-pi-K, K*-pi-pi, pi-pi-pi-K ------------------- -0.000003400 rho0 K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.0000100 rho- K*+ SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000050600 pi- pi+ K*0 PHSP; #[Reconstructed PDG2011] -0.000010 pi- pi0 K*+ PHSP; -0.000005 pi- eta K*+ PHSP; -0.000002 pi- eta' K*+ PHSP; -0.000010 rho- K+ pi0 PHSP; -0.000005 rho- K+ eta PHSP; -0.000002 rho- K+ eta' PHSP; -0.000010 rho- K0 pi+ PHSP; -0.000010 rho+ K0 pi- PHSP; -0.000005 rho0 K0 pi0 PHSP; -0.000002 rho0 K0 eta PHSP; -0.000001 rho0 K0 eta' PHSP; -0.000010 rho0 K+ pi- PHSP; -0.000005 omega K0 pi0 PHSP; -0.000002 omega K0 eta PHSP; -0.000001 omega K0 eta' PHSP; -0.000005100 omega K+ pi- PHSP; #[Reconstructed PDG2011] -0.000010 pi+ pi0 pi- K0 PHSP; -0.000005 pi+ eta pi- K0 PHSP; -0.000010 pi0 pi0 pi0 K0 PHSP; -0.000005 pi0 pi0 eta K0 PHSP; -0.000002 pi0 eta eta K0 PHSP; -0.000002 pi0 pi0 eta' K0 PHSP; -0.000001 pi0 eta eta' K0 PHSP; -0.000010 pi+ pi- pi- K+ PHSP; -0.000010 pi0 pi0 pi- K+ PHSP; -0.000005 pi0 eta pi- K+ PHSP; -0.000002 eta eta pi- K+ PHSP; -0.000002 pi0 eta' pi- K+ PHSP; -0.000001 eta eta' pi- K+ PHSP; -0.000010 rho0 K_0*0 PHSP; -0.000020 rho- K_0*+ PHSP; -0.000010 pi- pi+ K_0*0 PHSP; -0.000010 pi0 pi0 K_0*0 PHSP; -0.000010 pi- pi0 K_0*+ PHSP; -0.000005 K*0 f_0 SVS; -0.000010 a_10 K0 SVS; -0.000016000 a_1- K+ SVS; #[Reconstructed PDG2011] -0.000010 b_10 K0 SVS; -0.0000074 b_1- K+ SVS; -0.000005 K*0 a_00 SVS; -0.000005 K*+ a_0- SVS; -#--- 4-body K*-K*, rho-K-K, K*-K-pi, phi-pi-pi, pi-pi-K-K ------------ -0.000001280 K*0 anti-K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000001 K*+ K*- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.0000001 phi rho0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000001 K+ K- rho0 PHSP; -0.000001 K0 anti-K0 rho0 PHSP; -0.000001 K+ K- omega PHSP; -0.000001 K0 anti-K0 omega PHSP; -0.000001 K+ anti-K0 rho- PHSP; -0.000001 K- K0 rho+ PHSP; -0.0000001 phi pi- pi+ PHSP; -0.000001 K+ K- pi- pi+ PHSP; -0.000001 K+ K- pi0 pi0 PHSP; -0.0000005 K+ K- pi0 eta PHSP; -0.0000002 K+ K- eta eta PHSP; -0.0000002 K+ K- pi0 eta' PHSP; -0.0000001 K+ K- eta eta' PHSP; -0.000001 K0 anti-K0 pi- pi+ PHSP; -0.000001 K0 anti-K0 pi0 pi0 PHSP; -0.0000005 K0 anti-K0 pi0 eta PHSP; -0.0000002 K0 anti-K0 eta eta PHSP; -0.0000002 K0 anti-K0 pi0 eta' PHSP; -0.0000001 K0 anti-K0 eta eta' PHSP; -0.000001 K*+ K- pi0 PHSP; -0.000001 K*- K+ pi0 PHSP; -0.000001 K*0 anti-K0 pi0 PHSP; -0.000001 K0 anti-K*0 pi0 PHSP; -0.000001 K+ anti-K*0 pi- PHSP; -0.000001 K*+ anti-K0 pi- PHSP; -0.000003320 K- K*0 pi+ PHSP; #[Reconstructed PDG2011] -0.000001 K*- K0 pi+ PHSP; -#--- 4-body phi-K*, phi-K-pi, K-K-K*, pi-K-K-K ----------------------- -0.000009800 phi K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000010 phi K+ pi- PHSP; -0.000010 phi K0 pi0 PHSP; -0.000007 phi K0 eta PHSP; -0.000017700 K- K+ K*0 PHSP; #[Reconstructed PDG2011] -0.000010 K- K*+ K0 PHSP; -0.000010 K*- K+ K0 PHSP; -0.000010 K+ K- K+ pi- PHSP; -0.000010 K+ K- K0 pi0 PHSP; -0.000005 K+ K- K0 eta PHSP; -0.000010 K0 anti-K0 K0 pi0 PHSP; -0.000005 K0 anti-K0 K0 eta PHSP; -0.000003900 phi K_0*0 PHSP; #[Reconstructed PDG2011] -0.000010 K- K+ K_0*0 PHSP; -0.000010 K- K_0*+ K0 PHSP; -0.000010 K_0*- K+ K0 PHSP; -0.000002 phi K'_10 PHSP; -0.000002 K- K+ K'_10 PHSP; -#--- 4-body phi-phi, phi-K-K, K-K-K-K -------------------------------- -0.0000001 phi phi SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.0000001 phi K+ K- PHSP; -0.0000001 phi K0 anti-K0 PHSP; -0.0000001 K+ K- K+ K- PHSP; -0.0000001 K0 anti-K0 K+ K- PHSP; -0.0000001 K0 anti-K0 K0 anti-K0 PHSP; -#5-body modes from Jim Smith - 1/30/05 -#--- 5-body rho-rho-pi, rho-pi-pi-pi, pi-pi-pi-pi-pi ------------------- -0.000010 rho0 rho0 pi0 PHSP; -0.000005 rho0 rho0 eta PHSP; -0.000002 rho0 rho0 eta' PHSP; -0.000010 omega rho0 pi0 PHSP; -0.000005 omega rho0 eta PHSP; -0.000002 omega rho0 eta' PHSP; -0.000010 rho+ rho- pi0 PHSP; -0.000005 rho+ rho- eta PHSP; -0.000002 rho+ rho- eta' PHSP; -0.000010 rho0 rho+ pi- PHSP; -0.000010 omega rho+ pi- PHSP; -0.000002 rho0 pi+ pi- pi0 PHSP; -0.000001 rho0 pi+ pi- eta PHSP; -0.000001 rho0 pi+ pi- eta' PHSP; -0.000002 rho0 pi0 pi0 pi0 PHSP; -0.000001 rho0 pi0 eta pi0 PHSP; -0.000001 rho0 pi0 eta' pi0 PHSP; -0.000002 omega pi+ pi- pi0 PHSP; -0.000001 omega pi+ pi- eta PHSP; -0.000001 omega pi+ pi- eta' PHSP; -0.000002 omega pi0 pi0 pi0 PHSP; -0.000001 omega pi0 eta pi0 PHSP; -0.000001 omega pi0 eta' pi0 PHSP; -0.000002 rho+ pi- pi+ pi- PHSP; -0.000002 rho+ pi- pi0 pi0 PHSP; -0.000001 rho+ pi- pi0 eta PHSP; -0.000001 rho+ pi- pi0 eta' PHSP; -0.000002 rho- pi+ pi+ pi- PHSP; -0.000002 rho- pi+ pi0 pi0 PHSP; -0.000001 rho- pi+ pi0 eta PHSP; -0.000001 rho- pi+ pi0 eta' PHSP; -0.000001 pi+ pi- pi+ pi- pi0 PHSP; -0.0000005 pi+ pi- pi+ pi- eta PHSP; -0.0000002 pi+ pi- pi+ pi- eta' PHSP; -0.000001 pi+ pi- pi0 pi0 pi0 PHSP; -0.0000005 pi+ pi- pi0 pi0 eta PHSP; -0.0000002 pi+ pi- pi0 pi0 eta' PHSP; -0.0000005 pi0 pi0 pi0 pi0 pi0 PHSP; -0.0000002 pi0 pi0 pi0 pi0 eta PHSP; -0.0000001 pi0 pi0 pi0 pi0 eta' PHSP; -0.000010 a_1+ rho- PHSP; -0.000010 a_1- rho+ PHSP; -0.000010 a_10 rho0 PHSP; -0.000010 a_10 omega PHSP; -0.000010 a_1+ pi- pi0 PHSP; -0.000005 a_1+ pi- eta PHSP; -0.000002 a_1+ pi- eta' PHSP; -0.000010 a_10 pi+ pi- PHSP; -0.000010 a_10 pi0 pi0 PHSP; -0.000005 a_10 pi0 eta PHSP; -0.000002 a_10 pi0 eta' PHSP; -0.000010 a_1- pi+ pi0 PHSP; -0.000005 a_1- pi+ eta PHSP; -0.000002 a_1- pi+ eta' PHSP; -0.000010 rho+ f_0 pi- PHSP; -0.000010 rho- f_0 pi+ PHSP; -0.000010 rho0 f_0 pi0 PHSP; -0.000005 rho0 f_0 eta PHSP; -0.000002 rho0 f_0 eta' PHSP; -0.000010 omega f_0 pi0 PHSP; -0.000010 rho+ a_00 pi- PHSP; -0.000010 rho+ a_0- pi0 PHSP; -0.000005 rho+ a_0- eta PHSP; -0.000002 rho+ a_0- eta' PHSP; -0.000010 rho0 a_0+ pi- PHSP; -0.000010 rho0 a_0- pi+ PHSP; -0.000010 rho0 a_00 pi0 PHSP; -0.000005 rho0 a_00 eta PHSP; -0.000002 rho0 a_00 eta' PHSP; -0.000010 rho- a_00 pi+ PHSP; -0.000010 rho- a_0+ pi0 PHSP; -0.000005 rho- a_0+ eta PHSP; -0.000002 rho- a_0+ eta' PHSP; -0.000002 f_0 pi+ pi- pi0 PHSP; -0.000001 f_0 pi+ pi- eta PHSP; -0.000001 f_0 pi+ pi- eta' PHSP; -0.000002 f_0 pi0 pi0 pi0 PHSP; -0.000001 f_0 pi0 pi0 eta PHSP; -0.000001 f_0 pi0 pi0 eta' PHSP; -0.000001 a_00 pi+ pi- pi0 PHSP; -0.000001 a_00 pi0 pi0 pi0 PHSP; -0.000001 a_0+ pi- pi+ pi- PHSP; -0.000001 a_0+ pi- pi0 pi0 PHSP; -0.000001 a_0- pi+ pi+ pi- PHSP; -0.000001 a_0- pi+ pi0 pi0 PHSP; -#--- 5-body rho-K*pi, rho-2pi-K, K*-3pi, 4pi-K ------------------- -0.000010 rho0 K*+ pi- PHSP; -0.000010 rho- K*+ pi0 PHSP; -0.000005 rho- K*+ eta PHSP; -0.000002 rho- K*+ eta' PHSP; -0.000010 rho0 K*0 pi0 PHSP; -0.000005 rho0 K*0 eta PHSP; -0.000002 rho0 K*0 eta' PHSP; -0.000010 rho- K*0 pi+ PHSP; -0.000010 rho+ K*0 pi- PHSP; -0.000010 omega K*+ pi- PHSP; -0.000010 omega K*0 pi0 PHSP; -0.000005 omega K*0 eta PHSP; -0.000002 omega K*0 eta' PHSP; -0.000010 pi+ pi- K*+ pi- PHSP; -0.000010 pi- pi0 K*+ pi0 PHSP; -0.000005 pi- pi0 K*+ eta PHSP; -0.000002 pi- pi0 K*+ eta' PHSP; -0.000010 pi+ pi- K*0 pi0 PHSP; -0.000005 pi+ pi- K*0 eta PHSP; -0.000002 pi+ pi- K*0 eta' PHSP; -0.000010 pi0 pi0 K*0 pi0 PHSP; -0.000005 pi0 pi0 K*0 eta PHSP; -0.000002 pi0 pi0 K*0 eta' PHSP; -0.000010 rho+ K+ pi- pi- PHSP; -0.000010 rho0 K+ pi- pi0 PHSP; -0.000005 rho0 K+ pi- eta PHSP; -0.000002 rho0 K+ pi- eta' PHSP; -0.000010 rho- K+ pi+ pi- PHSP; -0.000010 rho- K+ pi0 pi0 PHSP; -0.000005 rho- K+ pi0 eta PHSP; -0.000002 rho- K+ pi0 eta' PHSP; -0.000010 rho0 K0 pi+ pi- PHSP; -0.000010 rho0 K0 pi0 pi0 PHSP; -0.000005 rho0 K0 pi0 eta PHSP; -0.000002 rho0 K0 pi0 eta' PHSP; -0.000010 rho+ K0 pi- pi0 PHSP; -0.000005 rho+ K0 pi- eta PHSP; -0.000002 rho+ K0 pi- eta' PHSP; -0.000010 rho- K0 pi+ pi0 PHSP; -0.000005 rho- K0 pi+ eta PHSP; -0.000002 rho- K0 pi+ eta' PHSP; -0.000010 omega K+ pi- pi0 PHSP; -0.000005 omega K+ pi- eta PHSP; -0.000002 omega K+ pi- eta' PHSP; -0.000010 omega K0 pi+ pi- PHSP; -0.000010 omega K0 pi0 pi0 PHSP; -0.000005 omega K0 pi0 eta PHSP; -0.000002 omega K0 pi0 eta' PHSP; -0.000002 pi+ pi- pi- K+ pi0 PHSP; -0.000001 pi+ pi- pi- K+ eta PHSP; -0.000001 pi+ pi- pi- K+ eta' PHSP; -0.000002 pi0 pi0 pi- K+ pi0 PHSP; -0.000001 pi0 pi0 pi- K+ eta PHSP; -0.000001 pi0 pi0 pi- K+ eta' PHSP; -0.000002 pi+ pi- pi+ K0 pi- PHSP; -0.000002 pi+ pi- pi0 K0 pi0 PHSP; -0.000001 pi+ pi- pi0 K0 eta PHSP; -0.000001 pi+ pi- pi0 K0 eta' PHSP; -0.000002 pi0 pi0 pi0 K0 pi0 PHSP; -0.000001 pi0 pi0 pi0 K0 eta PHSP; -0.000001 pi0 pi0 pi0 K0 eta' PHSP; -0.000010 rho+ K_0*0 pi- PHSP; -0.000010 rho0 K_0*0 pi0 PHSP; -0.000005 rho0 K_0*0 eta PHSP; -0.000002 rho0 K_0*0 eta' PHSP; -0.000010 rho- K_0*0 pi+ PHSP; -0.000010 rho- K_0*+ pi0 PHSP; -0.000005 rho- K_0*+ eta PHSP; -0.000002 rho- K_0*+ eta' PHSP; -0.000010 rho0 K_0*+ pi- PHSP; -0.000010 pi+ pi- K_0*+ pi- PHSP; -0.000010 pi- pi0 K_0*+ pi0 PHSP; -0.000005 pi- pi0 K_0*+ eta PHSP; -0.000002 pi- pi0 K_0*+ eta' PHSP; -0.000010 pi+ pi- K_0*0 pi0 PHSP; -0.000005 pi+ pi- K_0*0 eta PHSP; -0.000002 pi+ pi- K_0*0 eta' PHSP; -0.000010 pi0 pi0 K_0*0 pi0 PHSP; -0.000005 pi0 pi0 K_0*0 eta PHSP; -0.000005 pi0 pi0 K_0*0 eta' PHSP; -0.000010 K*+ f_0 pi- PHSP; -0.000010 K*0 f_0 pi0 PHSP; -0.000005 K*0 f_0 eta PHSP; -0.000002 K*0 f_0 eta' PHSP; -0.000010 a_1+ K0 pi- PHSP; -0.000020 a_10 K*0 PHSP; -0.000010 a_10 K+ pi- PHSP; -0.000010 a_10 K0 pi0 PHSP; -0.000020 a_1- K*+ PHSP; -0.000010 a_1- K+ pi0 PHSP; -0.000010 a_1- K0 pi+ PHSP; -0.000005 K*+ a_00 pi- PHSP; -0.000005 K*+ a_0- pi0 PHSP; -0.000002 K*+ a_0- eta PHSP; -0.000001 K*+ a_0- eta' PHSP; -0.000005 K*0 a_0+ pi- PHSP; -0.000005 K*0 a_00 pi0 PHSP; -0.000002 K*0 a_00 eta PHSP; -0.000001 K*0 a_00 eta' PHSP; -#--- 5-body K*-K*pi,rho-K-Kpi, K*-K-2pi, phi-3pi, 3pi-K-K ------------ -0.000001 K*- K*0 pi+ PHSP; -0.000001 K*+ anti-K*0 pi- PHSP; -0.000001 K*- K*+ pi0 PHSP; -0.0000005 K*- K*+ eta PHSP; -0.0000002 K*- K*+ eta' PHSP; -0.000001 K*0 anti-K*0 pi0 PHSP; -0.0000005 K*0 anti-K*0 eta PHSP; -0.0000002 K*0 anti-K*0 eta' PHSP; -0.000001 phi rho+ pi- PHSP; -0.000001 phi rho- pi+ PHSP; -0.000001 phi rho0 pi0 PHSP; -0.0000005 phi rho0 eta PHSP; -0.0000002 phi rho0 eta' PHSP; -0.000001 phi omega pi0 PHSP; -0.000001 phi f_0 pi0 PHSP; -0.000001 phi pi+ pi- pi0 PHSP; -0.0000005 phi pi+ pi- eta PHSP; -0.0000002 phi pi+ pi- eta' PHSP; -0.000001 phi pi0 pi0 pi0 PHSP; -0.0000005 phi pi0 pi0 eta PHSP; -0.0000002 phi pi0 pi0 eta' PHSP; -0.000001 K0 K- rho0 pi+ PHSP; -0.000001 K0 K- rho+ pi0 PHSP; -0.0000005 K0 K- rho+ eta PHSP; -0.0000002 K0 K- rho+ eta' PHSP; -0.000001 K0 K- omega pi+ PHSP; -0.000001 K0 K- f_0 pi+ PHSP; -0.000001 K+ K- rho+ pi- PHSP; -0.000001 K+ K- rho- pi+ PHSP; -0.000001 K+ K- rho0 pi0 PHSP; -0.0000005 K+ K- rho0 eta PHSP; -0.0000002 K+ K- rho0 eta' PHSP; -0.000001 K+ K- omega pi0 PHSP; -0.0000005 K+ K- omega eta PHSP; -0.0000002 K+ K- omega eta' PHSP; -0.000001 K+ K- f_0 pi0 PHSP; -0.000001 K0 anti-K0 rho+ pi- PHSP; -0.000001 K0 anti-K0 rho- pi+ PHSP; -0.000001 K0 anti-K0 rho0 pi0 PHSP; -0.0000005 K0 anti-K0 rho0 eta PHSP; -0.0000002 K0 anti-K0 rho0 eta' PHSP; -0.000001 K0 anti-K0 omega pi0 PHSP; -0.000001 K0 anti-K0 f_0 pi0 PHSP; -0.000001 anti-K0 K+ rho0 pi- PHSP; -0.000001 anti-K0 K+ rho- pi0 PHSP; -0.0000005 anti-K0 K+ rho- eta PHSP; -0.0000002 anti-K0 K+ rho- eta' PHSP; -0.000001 anti-K0 K+ omega pi- PHSP; -0.000001 anti-K0 K+ f_0 pi- PHSP; -0.0000002 K0 K- pi+ pi+ pi- PHSP; -0.0000002 K0 K- pi+ pi0 pi0 PHSP; -0.0000001 K0 K- pi+ pi0 eta PHSP; -0.0000001 K0 K- pi+ pi0 eta' PHSP; -0.0000002 K+ K- pi+ pi- pi0 PHSP; -0.0000001 K+ K- pi+ pi- eta PHSP; -0.0000001 K+ K- pi+ pi- eta' PHSP; -0.0000002 K+ K- pi0 pi0 pi0 PHSP; -0.0000001 K+ K- pi0 pi0 eta PHSP; -0.0000001 K+ K- pi0 pi0 eta' PHSP; -0.0000002 K0 anti-K0 pi+ pi- pi0 PHSP; -0.0000001 K0 anti-K0 pi+ pi- eta PHSP; -0.0000001 K0 anti-K0 pi+ pi- eta' PHSP; -0.0000002 K0 anti-K0 pi0 pi0 pi0 PHSP; -0.0000001 K0 anti-K0 pi0 pi0 eta PHSP; -0.0000001 K0 anti-K0 pi0 pi0 eta' PHSP; -0.0000002 anti-K0 K+ pi- pi+ pi- PHSP; -0.0000002 anti-K0 K+ pi- pi0 pi0 PHSP; -0.0000001 anti-K0 K+ pi- pi0 eta PHSP; -0.0000001 anti-K0 K+ pi- pi0 eta' PHSP; -0.000001 K*0 K- pi+ pi0 PHSP; -0.0000005 K*0 K- pi+ eta PHSP; -0.0000002 K*0 K- pi+ eta' PHSP; -0.000001 K*- K0 pi+ pi0 PHSP; -0.0000005 K*- K0 pi+ eta PHSP; -0.0000002 K*- K0 pi+ eta' PHSP; -0.000001 K*+ K- pi+ pi- PHSP; -0.000001 K*+ K- pi0 pi0 PHSP; -0.0000005 K*+ K- pi0 eta PHSP; -0.0000002 K*+ K- pi0 eta' PHSP; -0.000001 K*- K+ pi+ pi- PHSP; -0.000001 K*- K+ pi0 pi0 PHSP; -0.0000005 K*- K+ pi0 eta PHSP; -0.0000002 K*- K+ pi0 eta' PHSP; -0.000001 K*0 anti-K0 pi+ pi- PHSP; -0.000001 K*0 anti-K0 pi0 pi0 PHSP; -0.0000005 K*0 anti-K0 pi0 eta PHSP; -0.0000002 K*0 anti-K0 pi0 eta' PHSP; -0.000001 K0 anti-K*0 pi+ pi- PHSP; -0.000001 K0 anti-K*0 pi0 pi0 PHSP; -0.0000005 K0 anti-K*0 pi0 eta PHSP; -0.0000002 K0 anti-K*0 pi0 eta' PHSP; -0.000001 K+ anti-K*0 pi- pi0 PHSP; -0.0000005 K+ anti-K*0 pi- eta PHSP; -0.0000002 K+ anti-K*0 pi- eta' PHSP; -0.000001 K*+ anti-K0 pi- pi0 PHSP; -0.0000005 K*+ anti-K0 pi- eta PHSP; -0.0000002 K*+ anti-K0 pi- eta' PHSP; -#--- 5-body phi-K*-pi, phi-K-2pi, K-K-K*-pi, 2pi-K-K-K -------------------- -0.000010 phi K*+ pi- PHSP; -0.000010 phi K*0 pi0 PHSP; -0.000005 phi K*0 eta PHSP; -0.000002 phi K*0 eta' PHSP; -0.000010 phi K+ rho- PHSP; -0.000010 phi K0 rho0 PHSP; -0.000010 phi K0 omega PHSP; -0.000010 phi K0 f_0 PHSP; -0.000010 phi K0 pi+ pi- PHSP; -0.000010 phi K0 pi0 pi0 PHSP; -0.000005 phi K0 pi0 eta PHSP; -0.000002 phi K0 pi0 eta' PHSP; -0.000010 phi K+ pi- pi0 PHSP; -0.000005 phi K+ pi- eta PHSP; -0.000002 phi K+ pi- eta' PHSP; -0.000010 K- K+ K*+ pi- PHSP; -0.000010 K+ K*- K+ pi- PHSP; -0.000010 K+ K*0 anti-K0 pi- PHSP; -0.000010 K+ K0 anti-K*0 pi- PHSP; -0.000010 K0 K*+ anti-K0 pi- PHSP; -0.000010 K- K+ K+ rho- PHSP; -0.000010 K- K+ K0 rho0 PHSP; -0.000010 K- K+ K0 omega PHSP; -0.000010 K- K+ K0 f_0 PHSP; -0.000010 K+ K- K+ pi- pi0 PHSP; -0.000005 K+ K- K+ pi- eta PHSP; -0.000002 K+ K- K+ pi- eta' PHSP; -0.000010 K+ K- K0 pi+ pi- PHSP; -0.000010 K+ K- K0 pi0 pi0 PHSP; -0.000005 K+ K- K0 pi0 eta PHSP; -0.000005 K+ K- K0 pi0 eta' PHSP; -0.000010 K0 anti-K0 K+ pi- pi0 PHSP; -0.000005 K0 anti-K0 K+ pi- eta PHSP; -0.000002 K0 anti-K0 K+ pi- eta' PHSP; -0.000010 K0 anti-K0 K0 pi+ pi- PHSP; -0.000010 K0 anti-K0 K0 pi0 pi0 PHSP; -0.000005 K0 anti-K0 K0 pi0 eta PHSP; -0.000002 K0 anti-K0 K0 pi0 eta' PHSP; -0.000010 phi K_0*+ pi- PHSP; -0.000010 phi K_0*0 pi0 PHSP; -0.000010 K+ K- K_0*+ pi- PHSP; -0.000010 K+ K- K_0*0 pi0 PHSP; -0.000005 K+ K- K_0*0 eta PHSP; -0.000002 K+ K- K_0*0 eta' PHSP; -0.000010 K+ K+ K_0*- pi- PHSP; -0.000010 K+ anti-K_0*0 K0 pi- PHSP; -0.000010 K+ K_0*0 anti-K0 pi- PHSP; -0.000010 K0 anti-K0 K_0*+ pi- PHSP; -0.000010 K0 anti-K0 K_0*0 pi0 PHSP; -0.000005 K0 anti-K0 K_0*0 eta PHSP; -0.000002 K0 anti-K0 K_0*0 eta' PHSP; -0.000010 K0 K0 anti-K_0*0 pi0 PHSP; -0.000005 K0 K0 anti-K_0*0 eta PHSP; -0.000002 K0 K0 anti-K_0*0 eta' PHSP; -0.000002 phi K'_1+ pi- PHSP; -0.000002 phi K'_10 pi0 PHSP; -0.000001 phi K'_10 eta PHSP; -0.000001 phi K'_10 eta' PHSP; -0.000002 K- K+ K'_1+ pi- PHSP; -0.000002 K- K+ K'_10 pi0 PHSP; -0.000001 K- K+ K'_10 eta PHSP; -0.000001 K- K+ K'_10 eta' PHSP; -0.000002 K+ K+ K'_1- pi- PHSP; -0.000002 K0 anti-K0 K'_10 pi0 PHSP; -0.000001 K0 anti-K0 K'_10 eta PHSP; -0.000001 K0 anti-K0 K'_10 eta' PHSP; -0.000002 K0 K0 anti-K'_10 pi0 PHSP; -0.000001 K0 K0 anti-K'_10 eta PHSP; -0.000001 K0 K0 anti-K'_10 eta' PHSP; -#--- 5-body phi-phi-K, phi-phi-pi, phi-3K, phi-K-K-pi, 5K, 4K-pi ------------ -0.000004100 phi phi K0 PHSP; #[Reconstructed PDG2011] -0.0000001 phi phi pi0 PHSP; -0.000001 phi K+ K- K0 PHSP; -0.000001 phi K0 anti-K0 K0 PHSP; -0.0000001 phi K+ K- pi0 PHSP; -0.0000001 phi K0 anti-K0 pi0 PHSP; -0.0000001 phi anti-K0 K+ pi- PHSP; -0.0000001 phi K0 K- pi+ PHSP; -0.0000001 K+ K- K+ K- K0 PHSP; -0.0000001 K0 anti-K0 K+ K- K0 PHSP; -0.0000001 K+ K- K+ K- pi0 PHSP; -0.0000001 K+ K- K0 anti-K0 pi0 PHSP; -0.0000001 K+ K- K+ anti-K0 pi- PHSP; -0.0000001 K+ K- K0 K- pi+ PHSP; -0.0000001 K0 anti-K0 K0 anti-K0 pi0 PHSP; -0.0000001 K0 anti-K0 anti-K0 K+ pi- PHSP; -0.0000001 K0 anti-K0 K0 K- pi+ PHSP; -#--- 6-body phi-phi-K*, phi-3Kpi, phi-K-K-2pi ------------ -0.000003 phi phi K*0 PHSP; -0.000001 phi K+ K- K*0 PHSP; -0.000001 phi K0 anti-K0 K*0 PHSP; -0.000001 phi K0 K+ K*- PHSP; -0.000001 phi K0 K0 anti-K*0 PHSP; -0.0000001 phi K+ K- K+ pi- PHSP; -0.0000001 phi K+ K- K0 pi0 PHSP; -0.0000001 phi K0 anti-K0 K+ pi- PHSP; -0.0000001 phi K0 anti-K0 K0 pi0 PHSP; -#--- 6-body a1a1 ------------ -0.000050 a_10 a_10 PHSP; -0.000050 a_1+ a_1- PHSP; -# -# B -> cc= s -0.000435500 J/psi K_S0 SVS; #[Reconstructed PDG2011] -0.000435500 J/psi K_L0 SVS; #[Reconstructed PDG2011] -# -# -0.001330000 J/psi K*0 SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] -0.000017600 J/psi pi0 SVS; #[Reconstructed PDG2011] -0.000027000 J/psi rho0 SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] -0.00003 J/psi omega SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; -0.000000000 J/psi K+ pi- PHSP; #[Reconstructed PDG2011] -0.0001 J/psi K0 pi0 PHSP; -#rl0.0007 J/psi K0 pi- pi+ PHSP; -#rl0.00035 J/psi K0 pi0 pi0 PHSP; -#rl0.00035 J/psi K+ pi- pi0 PHSP; -0.001300000 J/psi K_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; #[Reconstructed PDG2011] -0.0001 J/psi K'_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; -0.0005 J/psi K_2*0 PHSP; -0.000094000 J/psi phi K0 PHSP; #[Reconstructed PDG2011] -# -0.000310000 psi(2S) K_S0 SVS; #[Reconstructed PDG2011] -0.000310000 psi(2S) K_L0 SVS; #[Reconstructed PDG2011] -# -# -0.000610000 psi(2S) K*0 SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] - -0.0004 psi(2S) K+ pi- PHSP; -0.0002 psi(2S) K0 pi0 PHSP; -0.0002 psi(2S) K0 pi- pi+ PHSP; -0.0001 psi(2S) K0 pi0 pi0 PHSP; -0.0001 psi(2S) K+ pi- pi0 PHSP; -0.0004 psi(2S) K_10 PHSP; -# -0.000445000 eta_c K_S0 PHSP; #[Reconstructed PDG2011] -0.000445000 eta_c K_L0 PHSP; #[Reconstructed PDG2011] -# -# -0.000610000 K*0 eta_c SVS; #[Reconstructed PDG2011] -0.0002 eta_c K+ pi- PHSP; -0.0001 eta_c K0 pi0 PHSP; -0.0002 eta_c K0 pi- pi+ PHSP; -0.0001 eta_c K0 pi0 pi0 PHSP; -0.0001 eta_c K+ pi- pi0 PHSP; -# -0.00024 eta_c(2S) K_S0 PHSP; -0.00024 eta_c(2S) K_L0 PHSP; -# -# -0.00066 K*0T eta_c(2S) SVS; -0.00008 eta_c(2S) K+ pi- PHSP; -0.00005 eta_c(2S) K0 pi0 PHSP; -0.00008 eta_c(2S) K0 pi- pi+ PHSP; -0.00005 eta_c(2S) K0 pi0 pi0 PHSP; -0.00005 eta_c(2S) K+ pi- pi0 PHSP; -# -0.000070000 chi_c0 K_S0 PHSP; #[Reconstructed PDG2011] -0.000070000 chi_c0 K_L0 PHSP; #[Reconstructed PDG2011] -# -# -0.0003 K*0 chi_c0 SVS; -0.0002 chi_c0 K+ pi- PHSP; -0.0001 chi_c0 K0 pi0 PHSP; -0.0002 chi_c0 K0 pi- pi+ PHSP; -0.0001 chi_c0 K0 pi0 pi0 PHSP; -0.0001 chi_c0 K+ pi- pi0 PHSP; -# -0.000195000 chi_c1 K_S0 SVS; #[Reconstructed PDG2011] -0.000195000 chi_c1 K_L0 SVS; #[Reconstructed PDG2011] -# -# -0.000222000 chi_c1 K*0 SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] -0.0004 chi_c1 K+ pi- PHSP; -0.0002 chi_c1 K0 pi0 PHSP; -0.0004 chi_c1 K0 pi- pi+ PHSP; -0.0002 chi_c1 K0 pi0 pi0 PHSP; -0.0002 chi_c1 K+ pi- pi0 PHSP; -# -0.00005 chi_c2 K_S0 STS; -0.00005 chi_c2 K_L0 STS; -# -# -0.00003 chi_c2 K*0 PHSP; -0.0002 chi_c2 K+ pi- PHSP; -0.0001 chi_c2 K0 pi0 PHSP; -0.0002 chi_c2 K0 pi- pi+ PHSP; -0.0001 chi_c2 K0 pi0 pi0 PHSP; -0.0001 chi_c2 K+ pi- pi0 PHSP; -# -0.00024 psi(3770) K_S0 SVS; -0.00024 psi(3770) K_L0 SVS; -# -# -0.00048 psi(3770) K*0 SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; -0.00014 psi(3770) K+ pi- PHSP; -0.00014 psi(3770) K0 pi0 PHSP; -0.00014 psi(3770) K0 pi- pi+ PHSP; -0.00007 psi(3770) K0 pi0 pi0 PHSP; -0.00007 psi(3770) K+ pi- pi0 PHSP; -0.00029 psi(3770) K_10 PHSP; -# -### ALREADY Included above 0.0000 phi K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -# -# -# b-> c (dc=) -# -0.000211000 D- D+ PHSP; #[Reconstructed PDG2011] -# See Ref [B1] for the next 3: -0.000305 D*- D+ SVS; -0.000610000 D*+ D- SVS; #[Reconstructed PDG2011] -0.000820000 D*- D*+ SVV_HELAMP 0.56 0.0 0.96 0.0 0.47 0.0; #[Reconstructed PDG2011] -# -# b -> c (sc=) --> D Ds X Sum = 10% -# -0.007200000 D- D_s+ PHSP; #[Reconstructed PDG2011] -0.008000000 D*- D_s+ SVS; #[Reconstructed PDG2011] -0.007400000 D_s*+ D- SVS; #[Reconstructed PDG2011] -0.017700000 D_s*+ D*- SVV_HELAMP 0.4904 0.0 0.7204 0.0 0.4904 0.0; #[Reconstructed PDG2011] -0.0006 D'_1- D_s+ SVS; -0.0012 D'_1- D_s*+ SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; -0.0012 D_1- D_s+ SVS; -0.0024 D_1- D_s*+ SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; -0.0042 D_2*- D_s+ STS; -0.0040 D_2*- D_s*+ PHSP; -# -0.0018 D_s+ D- pi0 PHSP; -0.0037 D_s+ anti-D0 pi- PHSP; -0.0018 D_s*+ D- pi0 PHSP; -0.0037 D_s*+ anti-D0 pi- PHSP; -0.0030 D_s+ D- pi- pi+ PHSP; -0.0022 D_s+ D- pi0 pi0 PHSP; -0.0022 D_s+ anti-D0 pi- pi0 PHSP; -0.0030 D_s*+ D- pi- pi+ PHSP; -0.0022 D_s*+ D- pi0 pi0 PHSP; -0.0022 D_s*+ anti-D0 pi- pi0 PHSP; -# -# b -> c (sc=) --> D D= K X Sum = 8% -# Update: Ref. [B1] -# October 26, 2004 Lange -per breco awg -# External W-emission amplitude -0.001700000 D- D0 K+ PHSP; #[Reconstructed PDG2011] -0.004600000 D- D*0 K+ PHSP; #[Reconstructed PDG2011] -0.003100000 D*- D0 K+ PHSP; #[Reconstructed PDG2011] -0.011800000 D*- D*0 K+ PHSP; #[Reconstructed PDG2011] -# External+internal W-emission amplitude -0.0015 D- D+ K0 PHSP; -0.0018 D*- D+ K0 PHSP; -0.0047 D- D*+ K0 PHSP; -0.007800000 D*- D*+ K0 PHSP; #[Reconstructed PDG2011] -# Internal W-emission amplitude (color suppressed modes) -0.0005 D0 anti-D0 K0 PHSP; -0.0005 D*0 anti-D0 K0 PHSP; -0.0015 D0 anti-D*0 K0 PHSP; -0.0015 D*0 anti-D*0 K0 PHSP; -########## -# K* modes -########### -0.0025 D- D0 K*+ PHSP; -0.0025 D*- D0 K*+ PHSP; -0.0025 D- D*0 K*+ PHSP; -0.0050 D*- D*0 K*+ PHSP; -# -0.0025 D- D+ K*0 PHSP; -0.0025 D*- D+ K*0 PHSP; -0.0025 D- D*+ K*0 PHSP; -0.0050 D*- D*+ K*0 PHSP; -# -0.0005 D0 anti-D0 K*0 PHSP; -0.0005 D0 anti-D*0 K*0 PHSP; -0.0005 D*0 anti-D0 K*0 PHSP; -0.0010 D*0 anti-D*0 K*0 PHSP; -# -# B -> D(*) X Exclusive modes -# -0.002760000 D*- pi+ SVS; #[Reconstructed PDG2011] -0.002680000 D- pi+ PHSP; #[Reconstructed PDG2011] -0.007110000 rho+ D- SVS; #[Reconstructed PDG2011] -# -# D* rho HELAMP parameters taken from ICHEP 98-852. -0.006800000 rho+ D*- SVV_HELAMP 0.317 0.19 0.936 0.0 0.152 1.47; #[Reconstructed PDG2011] -0.0005 D- pi+ pi0 PHSP; -0.008200000 D*- pi+ pi0 PHSP; #[Reconstructed PDG2011] -0.000840000 anti-D0 pi- pi+ PHSP; #[Reconstructed PDG2011] -0.000620000 anti-D*0 pi- pi+ PHSP; #[Reconstructed PDG2011] -0.0005 anti-D*0 pi0 pi0 PHSP; -# -# D a1 updated Ref. [B1] -0.006000000 a_1+ D- SVS; #[Reconstructed PDG2011] -0.000000000 D- rho0 pi+ PHSP; #[Reconstructed PDG2011] -0.0011 D- rho+ pi0 PHSP; -0.002000000 D- pi- pi+ pi+ PHSP; #[Reconstructed PDG2011] -0.0010 D- pi0 pi+ pi0 PHSP; -0.0010 anti-D0 pi- pi+ pi0 PHSP; -0.0001 anti-D0 pi0 pi0 pi0 PHSP; -# -# SVV_HELAMP for D* a1 taken from factorization. Recommandation -# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/168.html: -# updated Ref. [B1] -# October 26, 2004 Lange update -# -0.011000000 D*- a_1+ SVV_HELAMP 0.200 0.0 0.866 0.0 0.458 0.0; # MK, update with PDG2015 -# -0.001600000 D*- rho0 pi+ PHSP; # MK, Update with PDF2015 -0.0010 D*- rho+ pi0 PHSP; -0.0005 D*- pi- pi+ pi+ PHSP; # MK, update with PDG2015 -0.0010 D*- pi0 pi+ pi0 PHSP; -0.0010 anti-D*0 pi- pi+ pi0 PHSP; -0.0001 anti-D*0 pi0 pi0 pi0 PHSP; -# -# B->D** pi and D** rho, recommendation -# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/151.html -# -0.0001 D_1- pi+ SVS; -0.0001 D'_1- pi+ SVS; -0.00006 D_0*- pi+ PHSP; -0.000215 D_2*- pi+ STS; -0.0004 D_1- rho+ PHSP; -0.0013 D'_1- rho+ PHSP; -0.0022 D_2*- rho+ PHSP; -# -# -# B->DK, recommendation -# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/151.html: -# update: Ref. [B1]: -# -0.000214000 D*- K+ SVS; #[Reconstructed PDG2011] -0.000200000 D- K+ PHSP; #[Reconstructed PDG2011] -0.000330000 D*- K*+ SVV_HELAMP 0.283 0.0 0.932 0.0 0.228 0.0; #[Reconstructed PDG2011] -0.000450000 K*+ D- SVS; #[Reconstructed PDG2011] -#more DK modes - October 26, 2004 -Lange -0.000036 anti-D*0 anti-K0 SVS; -0.000052 anti-D0 anti-K0 PHSP; -0.000042000 K*0 anti-D0 SVS; #[Reconstructed PDG2011] -0.00001 K*0 D0 SVS; -0.00004 anti-D*0 K*0 SVV_HELAMP 1. 0. 1. 0. 1. 0.; -0.00001 D*0 K*0 SVV_HELAMP 1. 0. 1. 0. 1. 0.; -# -# -# Color-suppressed modes. Br's are expectations from -# Phys. Rev. D57 (1998), 5363-5369, except for the eta' modes, which are set -# equal to the eta modes. SVV_HELAMP parameters are the same as in D*0 rho-, -# with phases set to 0. Recommendation http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/169.html: -# update: See Ref [B1]: -# further update October 26, 2004 Lange -# -0.000261000 anti-D0 pi0 PHSP; #[Reconstructed PDG2011] -0.000170000 anti-D*0 pi0 SVS; #[Reconstructed PDG2011] -# -0.000320000 rho0 anti-D0 SVS; #[Reconstructed PDG2011] -0.00029 anti-D*0 rho0 SVV_HELAMP 0.283 0.0 0.932 0.0 0.228 0.0; -# -0.000202000 anti-D0 eta PHSP; #[Reconstructed PDG2011] -0.000200000 anti-D*0 eta SVS; #[Reconstructed PDG2011] -# -0.000125 anti-D0 eta' PHSP; -0.000123000 anti-D*0 eta' SVS; #[Reconstructed PDG2011] -# -0.000259000 omega anti-D0 SVS; #[Reconstructed PDG2011] -0.000330000 anti-D*0 omega SVV_HELAMP 0.283 0.0 0.932 0.0 0.228 0.0; #[Reconstructed PDG2011] -# -# PR LHCb : add ppbar mode -0.0000001 p+ anti-p- PHSP; -# -#October 26, 2004 - Lange -0.0016 D_s0*+ D- PHSP; -0.0015 D*- D_s0*+ SVS; -0.003500000 D_s1+ D- SVS; #[Reconstructed PDG2011] -0.009300000 D*- D_s1+ SVV_HELAMP 0.4904 0. 0.7204 0. 0.4904 0.; #[Reconstructed PDG2011] -# -# Feb 2009 -# -0.000880000 D- K+ anti-K*0 PHSP; #[Reconstructed PDG2011] -0.001290000 D*- K+ anti-K*0 PHSP; #[Reconstructed PDG2011] -# -# Feb 2009 -# -0.002800000 D- omega pi+ PHSP; #[Reconstructed PDG2011] -0.002890000 D*- omega pi+ PHSP; #[Reconstructed PDG2011] -# -# Feb 2009 -# -0.000490000 D- K0 pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 D*- K0 pi+ PHSP; #[Reconstructed PDG2011] -# -# Feb 2009 -# -0.00043 D'_s1+ D- PHSP; -0.00083 D'_s1+ D*- PHSP; -#### Already included above 0.0023 D_s1+ D*- PHSP; -# -# Lam_c X / Sigma_c X 4.0 % -# -#0.01000 anti-cd_0 ud_0 PYTHIA 63; -#0.03000 anti-cd_1 ud_1 PYTHIA 63; -0.010520663 anti-cd_0 ud_0 PYTHIA 63; -0.021041421 anti-cd_1 ud_1 PYTHIA 63; -# -# Xi_c X 2.5% -# -#0.00600 anti-cs_0 ud_0 PYTHIA 63; -#0.01800 anti-cs_1 ud_1 PYTHIA 63; -0.002869298 anti-cs_0 ud_0 PYTHIA 63; -0.005738595 anti-cs_1 ud_1 PYTHIA 63; -# -# -0.251926466 u anti-d anti-c d PYTHIA 23; -0.042944682 u anti-d anti-c d PYTHIA 43; -0.020084989 u anti-s anti-c d PYTHIA 43; -0.017215691 u anti-c anti-d d PYTHIA 23; -0.000860770 u anti-c anti-s d PYTHIA 23; -#lange - try to crank up the psi production.... -0.070775534 c anti-s anti-c d PYTHIA 43; -0.005738595 c anti-d anti-c d PYTHIA 43; -0.002869298 u anti-d anti-u d PYTHIA 23; -0.003825730 c anti-s anti-u d PYTHIA 23; -# JGS 11/5/02 This and similar a few lines above have been divided by two -# to solve a double-counting problem for this channel -0.001960649 u anti-u anti-d d PYTHIA 23; -0.000066973 d anti-d anti-d d PYTHIA 23; -0.000086068 s anti-s anti-d d PYTHIA 23; -0.002104095 u anti-u anti-s d PYTHIA 23; -0.001721541 d anti-d anti-s d PYTHIA 23; -0.001434649 s anti-s anti-s d PYTHIA 23; -0.004782163 anti-s d PYTHIA 91; -0.017600000 D*- pi+ pi+ pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.004700000 D*- pi+ pi+ pi+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000110000 D_s- pi+ K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000052000 anti-D0 K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000046000 anti-D0 K+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000006000 D0 K+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000036000 anti-D*0 K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.002700000 D*0 pi+ pi+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000890000 eta_c K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000871000 J/psi K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000310000 J/psi omega K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000009500 J/psi eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000019000 J/psi pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000460000 J/psi K0 pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000540000 J/psi K0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000800000 J/psi K*+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000660000 J/psi K*0 pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000170000 K0 D0 anti-D0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000620000 psi(2S) K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000140000 chi_c0 K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000011200 chi_c1 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000390000 chi_c1 K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000158000 chi_c1 K- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000011000 eta K_0*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000009600 eta K_2*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000016000 omega K_0*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000010100 omega K_2*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000004700 K0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000002700 f_2 K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000001400 f_0 K+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000007500 K_2*0 phi PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000007600 eta K0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000004600 K+ pi- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000019500 K0 pi+ pi- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000041000 K+ pi- pi0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000012400 K_2*0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000860 rho0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000002660 p+ anti-p- K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000001240 p+ anti-p- K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000003140 p+ anti-Lambda0 pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000004800 anti-Lambda0 Lambda0 K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000002500 anti-Lambda0 Lambda0 K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000011000 anti-Lambda0 Lambda0 D0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000114000 anti-D0 p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000028000 D_s- anti-Lambda0 p+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000103000 anti-D*0 p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001500000 D*- p+ anti-n0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000338000 D- p+ anti-p- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000500000 D*- p+ anti-p- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000020000 anti-Lambda_c- p+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000630000 anti-Lambda_c- p+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000120000 anti-Sigma_c*-- p+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000150000 anti-Sigma_c0 p+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000220000 anti-Sigma_c-- p+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -# -# -Decay B- -# Updated to PDG 2008 -# b -> c semileptonic -# -0.0569 D*0 e- anti-nu_e PHOTOS HQET2 1.207 0.920 1.406 0.853; # 1.0 * PDG2014 -0.0227 D0 e- anti-nu_e PHOTOS HQET2 1.185 1.081; # 1.0 * PDG2014 -0.0045 D_10 e- anti-nu_e PHOTOS ISGW2; # PDG2014 + D_10->D*+pi- = 2/3 -0.0037 D_0*0 e- anti-nu_e PHOTOS ISGW2; # PDG2014 + D_0*0->D+pi- = 2/3 -0.0040 D'_10 e- anti-nu_e PHOTOS ISGW2; # PDG2014 + Dprime_10->D*+pi- = 2/3 -0.0033 D_2*0 e- anti-nu_e PHOTOS ISGW2; # DG2014 + D_2*0->D+pi- = 0.459 -0.006100 D*+ pi- e- anti-nu_e PHOTOS GOITY_ROBERTS; # Same as 2011 -0.0003 D*0 pi0 e- anti-nu_e PHOTOS GOITY_ROBERTS; # same as 2011 -0.0021 D+ pi- e- anti-nu_e PHOTOS GOITY_ROBERTS; # PDG2014 (in principle covered by other decays, but there are some decays missing to inclusives) -0.0010 D0 pi0 e- anti-nu_e PHOTOS GOITY_ROBERTS; # same as 2011 -# -# For muonic decays do same as for electrons -0.0569 D*0 mu- anti-nu_mu PHOTOS HQET2 1.207 0.920 1.406 0.853; -0.0227 D0 mu- anti-nu_mu PHOTOS HQET2 1.185 1.081; -0.0045 D_10 mu- anti-nu_mu PHOTOS ISGW2; -0.0037 D_0*0 mu- anti-nu_mu PHOTOS ISGW2; -0.0040 D'_10 mu- anti-nu_mu PHOTOS ISGW2; -0.0033 D_2*0 mu- anti-nu_mu PHOTOS ISGW2; -0.006100 D*+ pi- mu- anti-nu_mu PHOTOS GOITY_ROBERTS; -0.0003 D*0 pi0 mu- anti-nu_mu PHOTOS GOITY_ROBERTS; -0.0021 D+ pi- mu- anti-nu_mu PHOTOS GOITY_ROBERTS; -0.0010 D0 pi0 mu- anti-nu_mu PHOTOS GOITY_ROBERTS; -# -# b -> c tau nu -# -0.020000000 D*0 tau- anti-nu_tau ISGW2; #[Reconstructed PDG2011] -0.007000000 D0 tau- anti-nu_tau ISGW2; #[Reconstructed PDG2011] -0.0013 D_10 tau- anti-nu_tau ISGW2; -0.0013 D_0*0 tau- anti-nu_tau ISGW2; -0.0020 D'_10 tau- anti-nu_tau ISGW2; -0.0020 D_2*0 tau- anti-nu_tau ISGW2; -# -# b -> u l nu -# -# NOTE: Do NOT CHANGE any BFs without using the corresponding set of -# hybrid weights (and vice versa). -# This will need check whether we get correct inclusive q2 dependence - -0.00007800 pi0 e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.00003800 eta e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.00015800 rho0 e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.00011900 omega e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.000230 eta' e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.000000 D(2S)0 e- anti-nu_e PHOTOS ISGW2; -0.000000 D*(2S)0 e- anti-nu_e PHOTOS ISGW2; -0.001948 Xu0 e- anti-nu_e VUB 4.8 1.29 0.22 20 0.30 0.54 1.20 0.95 1.26 0.78 1.34 0.98 1.41 0.91 1.48 1.23 1.55 1.36 1.61 1.39 1.67 1.38 1.73 1.43 1.79 1.41 1.84 1.42 1.90 1.45 1.95 1.40 2.00 1.42 2.50 1.31 3.00 1.36 3.50 1.15 4.00 1.01 4.50 1.51; -# -# For muons do same as for electrons -0.00007800 pi0 mu- anti-nu_mu PHOTOS ISGW2; -0.00003800 eta mu- anti-nu_mu PHOTOS ISGW2; -0.00015800 rho0 mu- anti-nu_mu PHOTOS ISGW2; -0.00011900 omega mu- anti-nu_mu PHOTOS ISGW2; -0.000230 eta' mu- anti-nu_mu PHOTOS ISGW2; -0.000000 D(2S)0 mu- anti-nu_mu PHOTOS ISGW2; -0.000000 D*(2S)0 mu- anti-nu_mu PHOTOS ISGW2; -0.001948 Xu0 mu- anti-nu_mu VUB 4.8 1.29 0.22 20 0.30 0.54 1.20 0.95 1.26 0.78 1.34 0.98 1.41 0.91 1.48 1.23 1.55 1.36 1.61 1.39 1.67 1.38 1.73 1.43 1.79 1.41 1.84 1.42 1.90 1.45 1.95 1.40 2.00 1.42 2.50 1.31 3.00 1.36 3.50 1.15 4.00 1.01 4.50 1.51; -# -0.000030 pi0 tau- anti-nu_tau ISGW2; -0.000012 eta tau- anti-nu_tau ISGW2; -0.000042 rho0 tau- anti-nu_tau ISGW2; -0.000042 omega tau- anti-nu_tau ISGW2; -0.000018 eta' tau- anti-nu_tau ISGW2; -0.000046 a_10 tau- anti-nu_tau ISGW2; -0.000027 b_10 tau- anti-nu_tau ISGW2; -0.000004 a_00 tau- anti-nu_tau ISGW2; -0.000002 f_0 tau- anti-nu_tau ISGW2; -0.000002 f'_0 tau- anti-nu_tau ISGW2; -0.000023 f_1 tau- anti-nu_tau ISGW2; -0.000023 f'_1 tau- anti-nu_tau ISGW2; -0.000013 h_1 tau- anti-nu_tau ISGW2; -0.000013 h'_1 tau- anti-nu_tau ISGW2; -0.000020 f_2 tau- anti-nu_tau ISGW2; -0.000020 f'_2 tau- anti-nu_tau ISGW2; -0.000000 D(2S)0 tau- anti-nu_tau ISGW2; -0.000000 D*(2S)0 tau- anti-nu_tau ISGW2; -# -# -# -# b->u hadronic -# Ref. [B1]: -# -0.000016000 D_s- pi0 PHSP; #[Reconstructed PDG2011] -0.000020 D_s*- pi0 SVS; -# -0.000028 rho0 D_s- SVS; -0.000028 D_s*- rho0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; - -# -# b-> s gamma -# -0.000042100 K*- gamma HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -#0.0000135 K_1- gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000065 K'_1- gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000128 K'*- gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000166 K_2*- gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000017 K''*- gamma HELAMP 1.0 0.0 1.0 0.0; -0.0003118 anti-Xsu gamma BTOXSGAMMA 2 ; -# -0.000000550 K- e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.000001550 K*- e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.0000050 anti-Xsu e+ e- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; -0.000000520 K- mu+ mu- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.000001160 K*- mu+ mu- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.0000025 anti-Xsu mu+ mu- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; -0.0000001 K- tau+ tau- PHOTOS BTOSLLBALL; -0.0000002 K*- tau+ tau- PHOTOS BTOSLLBALL; -0.0000002 anti-Xsu tau+ tau- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; -# -# b -> l nu -# -0.000180000 tau- anti-nu_tau SLN; #[Reconstructed PDG2011] -0.000000 mu- anti-nu_mu PHOTOS SLN; -0.000000 e- anti-nu_e PHOTOS SLN; -# -#------------------------------------------------------------------------------ -# 2- and 3-body modes revised Feb.2005 Markus Cristinziani, SLAC -#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv -# -# Exclusive hadronic b->u -# -0.000026 pi- pi0 pi0 CB3PI-P00 alpha; -0.000000 pi- pi- pi+ CB3PI-MPP alpha; -#### -0.000004070 eta pi- PHSP; #[Reconstructed PDG2011] -0.000002330 eta K- PHSP; #[Reconstructed PDG2011] -0.000019300 K*- eta SVS; #[Reconstructed PDG2011] -0.000007000 rho- eta SVS; #[Reconstructed PDG2011] -0.000002700 eta' pi- PHSP; #[Reconstructed PDG2011] -0.000070600 eta' K- PHSP; #[Reconstructed PDG2011] -0.000004900 K*- eta' SVS; #[Reconstructed PDG2011] -0.000008700 rho- eta' SVS; #[Reconstructed PDG2011] -0.000006900 omega pi- SVS; #[Reconstructed PDG2011] -0.000006700 omega K- SVS; #[Reconstructed PDG2011] -0.0000010 omega K*- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000015900 omega rho- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.0000000 phi pi- SVS; -0.000008300 phi K- SVS; #[Reconstructed PDG2011] -#2-body modes from Jim Olsen -# (K_S0 K- and K_L0 K- -> 1x10^-6, Jim Olsen - Mar 27, 2001) -# (pi- pi0 -> 5x10^-6 and K- pi0 -> 11x10^-6, Jim Olsen - Mar 27, 2001) -# PR LHCb 04/08/2004 Split into Ks/KL -0.000000 anti-K0 pi- PHSP; -0.000011550 K_S0 pi- PHSP; #[Reconstructed PDG2011] -0.000011550 K_L0 pi- PHSP; #[Reconstructed PDG2011] -0.000001360 K0 K- PHSP; #[Reconstructed PDG2011] -0.000005700 pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000012900 K- pi0 PHSP; #[Reconstructed PDG2011] -# -# 3-body John Back (jback@slac.stanford.edu) - Oct 15, 2002 -# JGS intersperses modes with pi0->eta,eta' -# B- modes -# -# rho0 3-body modes -0.000008300 rho0 pi- SVS; #[Reconstructed PDG2011] -0.000003700 rho0 K- SVS; #[Reconstructed PDG2011] -# -# rho- 3-body modes -0.000008000 rho- anti-K0 SVS; #[Reconstructed PDG2011] -0.000010900 rho- pi0 SVS; #[Reconstructed PDG2011] -# -# rho(1450) 3-body modes -0.0000022 rho(2S)0 pi- SVS; -0.000001 rho(2S)0 K- SVS; -# -# f0,a0(980) 3-body modes -0.000001 f_0 pi- PHSP; -0.0000092 f_0 K- PHSP; -0.000001 a_0- anti-K0 PHSP; -0.000001 a_00 K- PHSP; -0.000001 a_00 pi- PHSP; -0.000001 a_0- pi0 PHSP; - -0.000001600 f_2 pi- PHSP; #[Reconstructed PDG2011] - -# -# K*(1430) 3-body modes -0.000045000 anti-K_0*0 pi- PHSP; #[Reconstructed PDG2011] -0.000001 K_0*0 K- PHSP; -0.000002 K_0*- pi0 PHSP; -0.000002 K_0*- K0 PHSP; -# -# K*-(892) 3-body modes -0.000006900 K*- pi0 SVS; #[Reconstructed PDG2011] -0.0000030 K*- K0 SVS; -# -# -# -# Non-resonant 3-body left-overs -# Most modes are set at 1e-6 -# -# pi-pi+pi-: high mass + f0(400-1200) = (1+1)e-6 -#0402270.000002 pi- pi+ pi- PHSP; -# -# K- pi+ pi-: high mass + f0(400-1200) = (5+5)e-6 -0.000000000 K- pi+ pi- PHSP; #[Reconstructed PDG2011] -# -# K- K+ pi-: just non-resonant -0.000005000 K- K+ pi- PHSP; #[Reconstructed PDG2011] -# -# K- K+ K-: high mass structure near 1500 + non-res: total - phiK = 30 - 4 -0.000025400 K- K+ K- PHSP; #[Reconstructed PDG2011] -# -# -# K-K-pi+: suppressed mode (1e-7) -0.0000001 K- K- pi+ PHSP; -# K+pi-pi-: suppressed mode (1e-7) -0.0000001 K+ pi- pi- PHSP; -# -# -# K- K0 pi0 -0.000001 K- K0 pi0 PHSP; -0.000001 K- K0 eta PHSP; -0.000001 K- K0 eta' PHSP; -# -# pi- anti-K0 pi0 -0.000001 pi- anti-K0 pi0 PHSP; -0.000001 pi- anti-K0 eta PHSP; -0.000001 pi- anti-K0 eta' PHSP; -# -# pi- pi0 pi0 -#0402270.000001 pi- pi0 pi0 PHSP; -0.000001 pi- pi0 eta PHSP; -0.000001 pi- pi0 eta' PHSP; -0.000001 pi- eta eta PHSP; -0.000001 pi- eta eta' PHSP; -# -# K- pi0 pi0 -0.000001 K- pi0 pi0 PHSP; -0.000001 K- pi0 eta PHSP; -0.000001 K- pi0 eta' PHSP; -0.000001 K- eta eta PHSP; -0.000001 K- eta eta' PHSP; -0.000001 K- eta' eta' PHSP; -# -# K- anti-K0 K0: 4*BF(K+KsKs) (4 is a guess) -0.000046 K- anti-K0 K0 PHSP; -# -# pi- anti-K0 K0 -0.000001 pi- anti-K0 K0 PHSP; -# -#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -# 2- and 3-body modes revised Feb.2005 Markus Cristinziani, SLAC -#--------------------------------------------------------------------------- -# -#4-body modes from Andrei Gritsan -#--- 4-body rho-rho, rho-pi-pi, pi-pi-pi-pi -------------------------- -# PR LHCb 22 Apr 2004 Set long. pol. for rho rho -0.000024000 rho- rho0 SVV_HELAMP 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000010 rho0 pi- pi0 PHSP; -0.000005 rho0 pi- eta PHSP; -0.000002 rho0 pi- eta' PHSP; -0.000010 omega pi- pi0 PHSP; -0.000005 omega pi- eta PHSP; -0.000002 omega pi- eta' PHSP; -0.000010 rho- pi- pi+ PHSP; -# PR LHCb Add rho+ pi- pi- -0.000010 rho+ pi- pi- PHSP; -0.000010 rho- pi0 pi0 PHSP; -0.000005 rho- pi0 eta PHSP; -0.000002 rho- eta eta PHSP; -0.000002 rho- pi0 eta' PHSP; -0.000010 pi+ pi- pi- pi0 PHSP; -0.000005 pi+ pi- pi- eta PHSP; -0.000002 pi+ pi- pi- eta' PHSP; -0.000010 pi- pi0 pi0 pi0 PHSP; -0.000005 pi- eta pi0 pi0 PHSP; -0.000002 pi- eta eta pi0 PHSP; -0.000002 pi- eta' pi0 pi0 PHSP; -0.000001 pi- eta' eta pi0 PHSP; -0.000020000 a_10 pi- SVS; #[Reconstructed PDG2011] -0.000026000 a_1- pi0 SVS; #[Reconstructed PDG2011] -0.0000067 b_10 pi- SVS; -0.000010 b_1- pi0 SVS; -0.000010 rho- f_0 SVS; -0.000010 rho- a_00 SVS; -0.000002 rho0 a_0- SVS; -0.000010 f_0 pi- pi0 PHSP; -0.000001 a_00 pi- pi0 PHSP; -0.000001 a_0- pi0 pi0 PHSP; -0.000001 a_0+ pi- pi- PHSP; -#--- 4-body rho-K*, rho-pi-K, K*-pi-pi, pi-pi-pi-K ------------------- -0.000009200 rho- anti-K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000010 rho0 K*- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000010 pi- pi0 anti-K*0 PHSP; -0.000005 pi- eta anti-K*0 PHSP; -0.000069800 pi+ pi- K*- PHSP; #[Reconstructed PDG2011] -0.000010 pi0 pi0 K*- PHSP; -0.000005 pi0 eta K*- PHSP; -0.000002 eta eta K*- PHSP; -0.000002 pi0 eta' K*- PHSP; -0.000001 eta eta' K*- PHSP; -0.000010 rho- anti-K0 pi0 PHSP; -0.000005 rho- anti-K0 eta PHSP; -0.000002 rho- anti-K0 eta' PHSP; -0.000010 rho- K- pi+ PHSP; -0.000010 rho+ K- pi- PHSP; -0.000005 rho0 anti-K0 pi- PHSP; -0.000005 rho0 K- pi0 PHSP; -0.000002 rho0 K- eta PHSP; -0.000001 rho0 K- eta' PHSP; -0.000005 omega anti-K0 pi- PHSP; -0.000005 omega K- pi0 PHSP; -0.000002 omega K- eta PHSP; -0.000001 omega K- eta' PHSP; -0.000010 pi+ pi- pi- anti-K0 PHSP; -0.000010 pi- pi0 pi0 anti-K0 PHSP; -0.000005 pi- eta pi0 anti-K0 PHSP; -0.000002 pi- eta eta anti-K0 PHSP; -0.000010 pi+ pi- pi0 K- PHSP; -0.000005 pi+ pi- eta K- PHSP; -0.000010 pi0 pi0 pi0 K- PHSP; -0.000005 pi0 pi0 eta K- PHSP; -0.000002 pi0 eta eta K- PHSP; -0.000002 pi0 pi0 eta' K- PHSP; -0.000001 pi0 eta eta' K- PHSP; -0.000010 rho- anti-K_0*0 PHSP; -0.000006 rho0 K_0*- PHSP; -0.000010 pi- pi0 anti-K_0*0 PHSP; -0.000010 pi0 pi0 K_0*- PHSP; -0.000005200 K*- f_0 SVS; #[Reconstructed PDG2011] -0.000010 a_10 K- SVS; -0.000035000 a_1- anti-K0 SVS; #[Reconstructed PDG2011] -0.0000091 b_10 K- SVS; -0.000010 b_1- anti-K0 SVS; -0.000005 K*- a_00 SVS; -0.000005 anti-K*0 a_0- SVS; -#--- 4-body K*-K*, rho-K-K, K*-K-pi, phi-pi-pi, pi-pi-K-K ------------ -0.000001 K*0 K*- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000001 phi rho- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000001 phi pi- pi0 PHSP; -0.0000005 phi pi- eta PHSP; -0.0000002 phi pi- eta' PHSP; -0.000001 K+ K- rho- PHSP; -0.000001 K0 anti-K0 rho- PHSP; -0.000001 K0 K- rho0 PHSP; -0.000001 K0 K- omega PHSP; -0.000001 K+ K- pi- pi0 PHSP; -0.0000005 K+ K- pi- eta PHSP; -0.0000002 K+ K- pi- eta' PHSP; -0.000001 K0 anti-K0 pi- pi0 PHSP; -0.0000005 K0 anti-K0 pi- eta PHSP; -0.0000002 K0 anti-K0 pi- eta' PHSP; -0.000001 K0 K- pi+ pi- PHSP; -0.000001 K0 K- pi0 pi0 PHSP; -0.0000005 K0 K- pi0 eta PHSP; -0.0000002 K0 K- eta eta PHSP; -0.0000002 K0 K- pi0 eta' PHSP; -0.0000001 K0 K- eta eta' PHSP; -0.000001 K*+ K- pi- PHSP; -0.000001 K*- K+ pi- PHSP; -0.000001 K*0 anti-K0 pi- PHSP; -0.000001 K0 anti-K*0 pi- PHSP; -0.000001 K- K*0 pi0 PHSP; -0.0000005 K- K*0 eta PHSP; -0.0000002 K- K*0 eta' PHSP; -0.000001 K*- K0 pi0 PHSP; -0.0000005 K*- K0 eta PHSP; -0.0000002 K*- K0 eta' PHSP; -#--- 4-body phi-K*, phi-K-pi, K-K-K*, pi-K-K-K ----------------------- -0.000010000 phi K*- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000010 phi anti-K0 pi- PHSP; -0.000010 phi K- pi0 PHSP; -0.000005 phi K- eta PHSP; -0.000002 phi K- eta' PHSP; -0.000026000 K- K+ K*- PHSP; #[Reconstructed PDG2011] -0.000010 K- K*+ K- PHSP; -0.000010 K- K*0 anti-K0 PHSP; -0.000010 K- K0 anti-K*0 PHSP; -0.000010 K0 K*- anti-K0 PHSP; -0.000010 K+ K- K- pi0 PHSP; -0.000005 K+ K- K- eta PHSP; -0.000002 K+ K- K- eta' PHSP; -0.000010 K+ K- anti-K0 pi- PHSP; -0.000010 K0 anti-K0 K- pi0 PHSP; -0.000005 K0 anti-K0 K- eta PHSP; -0.000002 K0 anti-K0 K- eta' PHSP; -0.000010 K0 anti-K0 anti-K0 pi- PHSP; -0.000007000 phi K_0*- PHSP; #[Reconstructed PDG2011] -0.000010 K- K+ K_0*- PHSP; -0.000010 K- K- K_0*+ PHSP; -0.000010 K- anti-K_0*0 K0 PHSP; -0.000010 K- K_0*0 anti-K0 PHSP; -0.000002 phi K'_1- PHSP; -0.000002 K- K+ K'_1- PHSP; -#--- 4-body phi-phi, phi-K-K, K-K-K-K -------------------------------- -0.000001 phi K0 K- PHSP; -0.000001 K+ K- K- K0 PHSP; -0.000001 K0 anti-K0 K0 K- PHSP; -# -#5-body modes from Jim Smith - 1/30/05 -#--- 5-body rho-rho-pi, rho-pi-pi-pi, pi-pi-pi-pi-pi ------------------- -0.000010 rho0 rho0 pi- PHSP; -0.000010 rho- rho0 pi0 PHSP; -0.000005 rho- rho0 eta PHSP; -0.000002 rho- rho0 eta' PHSP; -0.000010 rho+ rho- pi- PHSP; -0.000010 omega rho0 pi- PHSP; -0.000010 omega rho- pi0 PHSP; -0.000005 omega rho- eta PHSP; -0.000002 omega rho- eta' PHSP; -0.000002 rho0 pi+ pi- pi- PHSP; -0.000002 rho0 pi- pi0 pi0 PHSP; -0.000001 rho0 pi- eta pi0 PHSP; -0.000001 rho0 pi- eta' pi0 PHSP; -0.000002 omega pi- pi0 pi0 PHSP; -0.000001 omega pi- eta pi0 PHSP; -0.000001 omega pi- eta' pi0 PHSP; -0.000002 rho+ pi- pi- pi0 PHSP; -0.000001 rho+ pi- pi- eta PHSP; -0.000001 rho+ pi- pi- eta' PHSP; -0.000002 rho- pi+ pi- pi0 PHSP; -0.000001 rho- pi+ pi- eta PHSP; -0.000001 rho- pi+ pi- eta' PHSP; -0.000002 rho- pi0 pi0 pi0 PHSP; -0.000001 rho- pi0 eta pi0 PHSP; -0.000001 rho- eta eta pi0 PHSP; -0.000001 rho- pi0 eta' pi0 PHSP; -0.000001 pi+ pi- pi- pi0 pi0 PHSP; -0.000001 pi+ pi- pi- eta pi0 PHSP; -0.000001 pi+ pi- pi- eta' pi0 PHSP; -0.000001 pi- pi0 pi0 pi0 pi0 PHSP; -0.000001 pi- eta pi0 pi0 pi0 PHSP; -0.000001 pi- eta' pi0 pi0 pi0 PHSP; -0.000010 a_1- rho0 PHSP; -0.000010 a_1- omega PHSP; -0.000010 a_1- f_0 PHSP; -0.000010 a_10 pi- pi0 PHSP; -0.000005 a_10 pi- eta PHSP; -0.000002 a_10 pi- eta' PHSP; -0.000010 a_1+ pi- pi- PHSP; -0.000010 a_1- pi+ pi- PHSP; -0.000010 a_1- pi0 pi0 PHSP; -0.000005 a_1- pi0 eta PHSP; -0.000002 a_1- pi0 eta' PHSP; -0.000010 rho- f_0 pi0 PHSP; -0.000005 rho- f_0 eta PHSP; -0.000002 rho- f_0 eta' PHSP; -0.000010 rho0 f_0 pi- PHSP; -0.000010 omega f_0 pi- PHSP; -0.000010 rho- a_00 pi0 PHSP; -0.000005 rho- a_00 eta PHSP; -0.000002 rho- a_00 eta' PHSP; -0.000010 rho+ a_0- pi- PHSP; -0.000010 rho0 a_0- pi0 PHSP; -0.000005 rho0 a_0- eta PHSP; -0.000002 rho0 a_0- eta' PHSP; -0.000002 f_0 pi+ pi- pi- PHSP; -0.000002 f_0 pi- pi0 pi0 PHSP; -0.000001 f_0 pi- pi0 eta PHSP; -0.000001 f_0 pi- pi0 eta' PHSP; -0.000001 a_00 pi- pi0 pi0 PHSP; -0.000001 a_0- pi0 pi0 pi0 PHSP; -0.000001 a_0+ pi- pi- pi0 PHSP; -#--- 5-body rho-K*pi, rho-2pi-K, K*-3pi, 4pi-K ------------------- -0.000010 rho- K*- pi+ PHSP; -0.000010 rho+ K*- pi- PHSP; -0.000010 rho- anti-K*0 pi0 PHSP; -0.000005 rho- anti-K*0 eta PHSP; -0.000002 rho- anti-K*0 eta' PHSP; -0.000010 rho0 anti-K*0 pi- PHSP; -0.000010 rho0 K*- pi0 PHSP; -0.000005 rho0 K*- eta PHSP; -0.000002 rho0 K*- eta' PHSP; -0.000010 omega anti-K*0 pi- PHSP; -0.000010 omega K*- pi0 PHSP; -0.000005 omega K*- eta PHSP; -0.000002 omega K*- eta' PHSP; -0.000010 pi+ pi- anti-K*0 pi- PHSP; -0.000010 pi- pi0 anti-K*0 pi0 PHSP; -0.000005 pi- eta anti-K*0 pi0 PHSP; -0.000002 pi- eta' anti-K*0 pi0 PHSP; -0.000010 pi- pi+ K*- pi0 PHSP; -0.000005 pi- pi+ K*- eta PHSP; -0.000002 pi- pi+ K*- eta' PHSP; -0.000010 pi0 pi0 K*- pi0 PHSP; -0.000005 pi0 eta K*- pi0 PHSP; -0.000002 eta eta K*- pi0 PHSP; -0.000002 pi0 eta' K*- pi0 PHSP; -0.000001 eta eta' K*- pi0 PHSP; -0.000010 rho- anti-K0 pi+ pi- PHSP; -0.000010 rho- anti-K0 pi0 pi0 PHSP; -0.000005 rho- anti-K0 eta pi0 PHSP; -0.000002 rho- anti-K0 eta' pi0 PHSP; -0.000010 rho- K- pi+ pi0 PHSP; -0.000010 rho+ K- pi- pi0 PHSP; -0.000010 rho+ anti-K0 pi- pi- PHSP; -0.000010 rho0 anti-K0 pi- pi0 PHSP; -0.000010 rho0 K- pi0 pi0 PHSP; -0.000005 rho0 K- eta pi0 PHSP; -0.000002 rho0 K- eta' pi0 PHSP; -0.000010 omega anti-K0 pi- pi0 PHSP; -0.000010 omega K- pi0 pi0 PHSP; -0.000005 omega K- eta pi0 PHSP; -0.000002 omega K- eta' pi0 PHSP; -0.000002 pi- pi- pi+ anti-K0 pi0 PHSP; -0.000001 pi- pi- pi+ anti-K0 eta PHSP; -0.000001 pi- pi- pi+ anti-K0 eta' PHSP; -0.000002 pi- pi0 pi0 anti-K0 pi0 PHSP; -0.000001 pi- eta pi0 anti-K0 pi0 PHSP; -0.000001 pi- eta eta anti-K0 pi0 PHSP; -0.000002 pi+ pi- pi+ K- pi- PHSP; -0.000002 pi+ pi- pi0 K- pi0 PHSP; -0.000001 pi+ pi- eta K- pi0 PHSP; -0.000001 pi+ pi- eta' K- pi0 PHSP; -0.000002 pi0 pi0 pi0 K- pi0 PHSP; -0.000001 pi0 pi0 eta K- pi0 PHSP; -0.000001 pi0 eta eta K- pi0 PHSP; -0.000001 pi0 pi0 eta' K- pi0 PHSP; -0.000001 pi0 eta eta' K- pi0 PHSP; -0.000010 rho0 anti-K_0*0 pi- PHSP; -0.000010 rho- anti-K_0*0 pi0 PHSP; -0.000005 rho- anti-K_0*0 eta PHSP; -0.000002 rho- anti-K_0*0 eta' PHSP; -0.000010 rho- K_0*- pi+ PHSP; -0.000010 rho0 K_0*- pi0 PHSP; -0.000005 rho0 K_0*- eta PHSP; -0.000002 rho0 K_0*- eta' PHSP; -0.000010 pi- pi- anti-K_0*0 pi+ PHSP; -0.000010 pi- pi0 anti-K_0*0 pi0 PHSP; -0.000005 pi- pi0 anti-K_0*0 eta PHSP; -0.000002 pi- pi0 anti-K_0*0 eta' PHSP; -0.000010 pi0 pi0 K_0*- pi0 PHSP; -0.000005 pi0 pi0 K_0*- eta PHSP; -0.000002 pi0 pi0 K_0*- eta' PHSP; -0.000010 anti-K*0 f_0 pi- PHSP; -0.000010 K*- f_0 pi0 PHSP; -0.000005 K*- f_0 eta PHSP; -0.000002 K*- f_0 eta' PHSP; -0.000020 a_10 K*- PHSP; -0.000010 a_10 K- pi0 PHSP; -0.000010 a_10 anti-K0 pi- PHSP; -0.000020 a_1- anti-K*0 PHSP; -0.000010 a_1- K- pi+ PHSP; -0.000010 a_1- anti-K0 pi0 PHSP; -0.000005 K*- a_00 pi0 PHSP; -0.000005 anti-K*0 a_0- pi0 PHSP; -#--- 5-body K*-K*pi,rho-K-Kpi, K*-K-2pi, phi-3pi, 3pi-K-K ------------ -0.000001 K*0 anti-K*0 pi- PHSP; -0.000001 K*0 K*- pi0 PHSP; -0.0000005 K*0 K*- eta PHSP; -0.0000002 K*0 K*- eta' PHSP; -0.000001 phi rho0 pi- PHSP; -0.000001 phi omega pi- PHSP; -0.000001 phi f_0 pi- PHSP; -0.000001 phi rho- pi0 PHSP; -0.0000005 phi rho- eta PHSP; -0.0000002 phi rho- eta' PHSP; -0.000001 phi pi+ pi- pi- PHSP; -0.000001 phi pi- pi0 pi0 PHSP; -0.0000005 phi pi- eta pi0 PHSP; -0.0000002 phi pi- eta' pi0 PHSP; -0.000001 K0 K- rho+ pi- PHSP; -0.000001 K0 K- rho- pi+ PHSP; -0.000001 K0 K- rho0 pi0 PHSP; -0.0000005 K0 K- rho0 eta PHSP; -0.0000002 K0 K- rho0 eta' PHSP; -0.000001 K0 K- omega pi0 PHSP; -0.000001 K0 K- f_0 pi0 PHSP; -0.000001 K+ K- rho0 pi- PHSP; -0.000001 K+ K- rho- pi0 PHSP; -0.0000005 K+ K- rho- eta PHSP; -0.0000002 K+ K- rho- eta' PHSP; -0.000001 K+ K- omega pi- PHSP; -0.000001 K0 anti-K0 rho0 pi- PHSP; -0.000001 K0 anti-K0 omega pi- PHSP; -0.000001 K0 anti-K0 f_0 pi- PHSP; -0.000001 K0 anti-K0 rho- pi0 PHSP; -0.0000005 K0 anti-K0 rho- eta PHSP; -0.0000002 K0 anti-K0 rho- eta' PHSP; -0.000001 anti-K0 K+ rho- pi- PHSP; -0.0000002 anti-K0 K+ pi- pi- pi0 PHSP; -0.0000001 anti-K0 K+ pi- pi- eta PHSP; -0.0000001 anti-K0 K+ pi- pi- eta' PHSP; -0.0000002 K+ K- pi+ pi- pi- PHSP; -0.0000002 K+ K- pi- pi0 pi0 PHSP; -0.0000001 K+ K- pi- eta pi0 PHSP; -0.0000001 K+ K- pi- eta' pi0 PHSP; -0.0000002 K0 anti-K0 pi+ pi- pi- PHSP; -0.0000002 K0 anti-K0 pi- pi0 pi0 PHSP; -0.0000001 K0 anti-K0 pi- eta pi0 PHSP; -0.0000001 K0 anti-K0 pi- eta' pi0 PHSP; -0.0000002 K0 K- pi+ pi- pi0 PHSP; -0.0000001 K0 K- pi+ pi- eta PHSP; -0.0000001 K0 K- pi+ pi- eta' PHSP; -0.0000002 K0 K- pi0 pi0 pi0 PHSP; -0.0000001 K0 K- pi0 eta pi0 PHSP; -0.0000001 K0 K- pi0 eta' pi0 PHSP; -0.000001 anti-K*0 K+ pi- pi- PHSP; -0.000001 K*+ anti-K0 pi- pi- PHSP; -0.000001 K*- K+ pi- pi0 PHSP; -0.000001 K*+ K- pi- pi0 PHSP; -0.000001 K*0 anti-K0 pi- pi0 PHSP; -0.000001 K0 anti-K*0 pi- pi0 PHSP; -0.000001 K- K*0 pi0 pi0 PHSP; -0.0000005 K- K*0 eta pi0 PHSP; -0.0000002 K- K*0 eta' pi0 PHSP; -0.000001 K*- K0 pi0 pi0 PHSP; -0.0000005 K*- K0 eta pi0 PHSP; -0.0000002 K*- K0 eta' pi0 PHSP; -#--- 5-body phi-K*-pi, phi-K-2pi, K-K-K*-pi, 2pi-K-K-K -------------------- -0.000010 phi K*- pi0 PHSP; -0.000010 phi K- rho0 PHSP; -0.000010 phi K- omega PHSP; -0.000010 phi K- f_0 PHSP; -0.000010 phi anti-K0 rho- PHSP; -0.000010 phi anti-K0 pi- pi0 PHSP; -0.000010 phi K- pi+ pi- PHSP; -0.000010 phi K- pi0 pi0 PHSP; -0.000005 phi K- eta pi0 PHSP; -0.000002 phi K- eta' pi0 PHSP; -0.000010 K+ K- K*- pi0 PHSP; -0.000010 K- K*+ K- pi0 PHSP; -0.000010 K- K*0 anti-K0 pi0 PHSP; -0.000010 K- K0 anti-K*0 pi0 PHSP; -0.000010 K0 K*- anti-K0 pi0 PHSP; -0.000010 K+ K- K- rho0 PHSP; -0.000010 K+ K- K- omega PHSP; -0.000010 K+ K- K- f_0 PHSP; -0.000010 K- K+ anti-K0 rho- PHSP; -0.000010 K- K- K+ pi0 pi0 PHSP; -0.000005 K- K- K+ eta pi0 PHSP; -0.000002 K- K- K+ eta' pi0 PHSP; -0.000010 K+ K- anti-K0 pi- pi0 PHSP; -0.000010 K0 anti-K0 K- pi0 pi0 PHSP; -0.000005 K0 anti-K0 K- eta pi0 PHSP; -0.000002 K0 anti-K0 K- eta' pi0 PHSP; -0.000010 K0 anti-K0 anti-K0 pi- pi0 PHSP; -0.000010 phi anti-K_0*0 pi- PHSP; -0.000010 phi K_0*- pi0 PHSP; -0.000005 phi K_0*- eta PHSP; -0.000002 phi K_0*- eta' PHSP; -0.000010 K- K+ K_0*- pi0 PHSP; -0.000005 K- K+ K_0*- eta PHSP; -0.000002 K- K+ K_0*- eta' PHSP; -0.000010 K- K- K_0*+ pi0 PHSP; -0.000005 K- K- K_0*+ eta PHSP; -0.000002 K- K- K_0*+ eta' PHSP; -0.000010 K- K+ anti-K_0*0 pi- PHSP; -0.000010 K- K- K_0*0 pi+ PHSP; -0.000010 anti-K0 anti-K0 K_0*0 pi- PHSP; -0.000010 K- anti-K_0*0 K0 pi0 PHSP; -0.000005 K- anti-K_0*0 K0 eta PHSP; -0.000002 K- anti-K_0*0 K0 eta' PHSP; -0.000010 K- K_0*0 anti-K0 pi0 PHSP; -0.000005 K- K_0*0 anti-K0 eta PHSP; -0.000002 K- K_0*0 anti-K0 eta' PHSP; -0.000002 phi anti-K'_10 pi- PHSP; -0.000002 phi K'_1- pi0 PHSP; -0.000001 phi K'_1- eta PHSP; -0.000001 phi K'_1- eta' PHSP; -0.000002 K- K+ anti-K'_10 pi- PHSP; -0.000002 K- K+ K'_1- pi0 PHSP; -0.000001 K- K+ K'_1- eta PHSP; -0.000001 K- K+ K'_1- eta' PHSP; -0.000002 K- K- K'_1+ pi0 PHSP; -0.000002 K- K- anti-K'_10 pi+ PHSP; -0.000002 K0 anti-K0 anti-K'_10 pi- PHSP; -0.000002 K0 anti-K0 K'_1- pi0 PHSP; -0.000001 K0 anti-K0 K'_1- eta PHSP; -0.000001 K0 anti-K0 K'_1- eta' PHSP; -0.000002 anti-K0 anti-K0 K'_10 pi- PHSP; -0.000002 K0 K0 K'_1- pi0 PHSP; -0.000001 K0 K0 K'_1- eta PHSP; -0.000001 K0 K0 K'_1- eta' PHSP; -0.000010 K- K0 anti-K'_10 pi0 PHSP; -0.000005 K- K0 anti-K'_10 eta PHSP; -0.000002 K- K0 anti-K'_10 eta' PHSP; -0.000010 K- K'_10 anti-K0 pi0 PHSP; -0.000005 K- K'_10 anti-K0 eta PHSP; -0.000002 K- K'_10 anti-K0 eta' PHSP; -#--- 5-body phi-phi-K, phi-phi-pi, phi-3K, phi-K-K-pi, 5K, 4K-pi ------------ -0.000004900 phi phi K- PHSP; #[Reconstructed PDG2011] -0.000001 phi phi pi- PHSP; -0.000001 phi K+ K- K- PHSP; -0.000001 phi K0 anti-K0 K- PHSP; -0.000001 phi K0 anti-K0 pi- PHSP; -0.000001 phi K0 K- pi0 PHSP; -0.000001 K+ K- K+ K- pi- PHSP; -0.000001 K+ K- K0 anti-K0 pi- PHSP; -0.000001 K+ K- K- K0 pi0 PHSP; -0.000001 K0 anti-K0 K0 K- pi0 PHSP; -#--- 6-body phi-phi-K*, phi-3Kpi, phi-K-K-2pi ------------ -0.000003 phi phi K*- PHSP; -0.000001 phi K+ K- K*- PHSP; -0.000001 phi K0 anti-K0 K*- PHSP; -0.000001 phi K0 K- K*0 PHSP; -0.000001 phi K+ K- K- pi0 PHSP; -0.000001 phi K+ K- anti-K0 pi- PHSP; -0.000001 phi K0 anti-K0 K- pi0 PHSP; -0.000001 phi K0 anti-K0 anti-K0 pi- PHSP; -0.000001 phi K0 K- K- pi+ PHSP; -#--- 6-body a1a1 ------------ -0.000050 a_1- a_10 PHSP; -# -# B -> cc= s sum = 1.92% -# -0.001014000 J/psi K- SVS; #[Reconstructed PDG2011] -0.001430000 J/psi K*- SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] -0.000049000 J/psi pi- SVS; #[Reconstructed PDG2011] -0.000050000 J/psi rho- SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] -0.0002 J/psi anti-K0 pi- PHSP; -0.0001 J/psi K- pi0 PHSP; -#rl0.0007 J/psi K- pi+ pi- PHSP; -#rl0.00035 J/psi K- pi0 pi0 PHSP; -#rl0.00035 J/psi anti-K0 pi- pi0 PHSP; -0.0001 J/psi K'_1- SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; -0.0005 J/psi K_2*- PHSP; -0.001800000 J/psi K_1- SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; #[Reconstructed PDG2011] -0.000052000 J/psi phi K- PHSP; #[Reconstructed PDG2011] -# -0.000646000 psi(2S) K- SVS; #[Reconstructed PDG2011] -0.000620000 psi(2S) K*- SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] -0.0004 psi(2S) anti-K0 pi- PHSP; -0.0002 psi(2S) K- pi0 PHSP; -0.001900000 psi(2S) K- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.0001 psi(2S) K- pi0 pi0 PHSP; -0.0001 psi(2S) anti-K0 pi- pi0 PHSP; -0.0004 psi(2S) K_1- PHSP; -# -0.000910000 eta_c K- PHSP; #[Reconstructed PDG2011] -0.001200000 K*- eta_c SVS; #[Reconstructed PDG2011] -0.0002 eta_c anti-K0 pi- PHSP; -0.0001 eta_c K- pi0 PHSP; -0.0002 eta_c K- pi+ pi- PHSP; -0.0001 eta_c K- pi0 pi0 PHSP; -0.0001 eta_c anti-K0 pi- pi0 PHSP; -# -0.000340000 eta_c(2S) K- PHSP; #[Reconstructed PDG2011] -0.00048 K*- eta_c(2S) SVS; -0.00008 eta_c(2S) anti-K0 pi- PHSP; -0.00005 eta_c(2S) K- pi0 PHSP; -0.00008 eta_c(2S) K- pi+ pi- PHSP; -0.00005 eta_c(2S) K- pi0 pi0 PHSP; -0.00005 eta_c(2S) anti-K0 pi- pi0 PHSP; -# -0.000133000 chi_c0 K- PHSP; #[Reconstructed PDG2011] -0.0004 K*- chi_c0 SVS; -0.0002 chi_c0 anti-K0 pi- PHSP; -0.0001 chi_c0 K- pi0 PHSP; -0.0002 chi_c0 K- pi+ pi- PHSP; -0.0001 chi_c0 K- pi0 pi0 PHSP; -0.0001 chi_c0 anti-K0 pi- pi0 PHSP; -# -0.000460000 chi_c1 K- SVS; #[Reconstructed PDG2011] -0.000300000 chi_c1 K*- SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] -0.0004 chi_c1 anti-K0 pi- PHSP; -0.0002 chi_c1 K- pi0 PHSP; -0.0004 chi_c1 K- pi+ pi- PHSP; -0.0002 chi_c1 K- pi0 pi0 PHSP; -0.0002 chi_c1 anti-K0 pi- pi0 PHSP; -# -0.00002 chi_c2 K- STS; -0.00002 chi_c2 K*- PHSP; -0.0002 chi_c2 anti-K0 pi- PHSP; -0.0001 chi_c2 K- pi0 PHSP; -0.0002 chi_c2 K- pi+ pi- PHSP; -0.0001 chi_c2 K- pi0 pi0 PHSP; -0.0001 chi_c2 anti-K0 pi- pi0 PHSP; -# -0.000490000 psi(3770) K- SVS; #[Reconstructed PDG2011] -0.0005 psi(3770) K*- PHSP; -0.0003 psi(3770) anti-K0 pi- PHSP; -0.0002 psi(3770) K- pi0 PHSP; -0.0002 psi(3770) K- pi+ pi- PHSP; -0.0001 psi(3770) K- pi0 pi0 PHSP; -0.0001 psi(3770) anti-K0 pi- pi0 PHSP; -0.0003 psi(3770) K_1- PHSP; -# -# b -> c (sc=) -> D Ds X Sum = 10% -# -0.010000000 D0 D_s- PHSP; #[Reconstructed PDG2011] -0.008200000 D*0 D_s- SVS; #[Reconstructed PDG2011] -0.007600000 D_s*- D0 SVS; #[Reconstructed PDG2011] -0.017100000 D_s*- D*0 SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; #[Reconstructed PDG2011] -0.0006 D'_10 D_s- SVS; -0.0012 D'_10 D_s*- SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; -0.0012 D_10 D_s- SVS; -0.0024 D_10 D_s*- SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; -0.0042 D_2*0 D_s- STS; -0.0040 D_2*0 D_s*- PHSP; -# -# -# SVV_HELAMP from factorization, recommendation -# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/168.html: -# -0.0036 D_s- D+ pi- PHSP; -0.0018 D_s- D0 pi0 PHSP; -0.0037 D_s*- D+ pi- PHSP; -0.0018 D_s*- D0 pi0 PHSP; -0.0033 D_s- D+ pi- pi0 PHSP; -0.0033 D_s- D0 pi- pi+ PHSP; -0.0008 D_s- D0 pi0 pi0 PHSP; -0.0033 D_s*- D+ pi- pi0 PHSP; -0.0033 D_s*- D0 pi- pi+ PHSP; -0.0008 D_s*- D0 pi0 pi0 PHSP; -# -# -# b -> c (sc=) -> D D= K X Sum = 8% -# update: Ref. [B1]: -# -0.0017 D0 D- anti-K0 PHSP; -0.0052 D0 D*- anti-K0 PHSP; -0.0031 D*0 D- anti-K0 PHSP; -0.007800000 D*0 D*- anti-K0 PHSP; #[Reconstructed PDG2011] -# External+internal W-emission amplitude -0.002100000 D0 anti-D0 K- PHSP; #[Reconstructed PDG2011] -0.0018 D*0 anti-D0 K- PHSP; -0.004700000 D0 anti-D*0 K- PHSP; #[Reconstructed PDG2011] -0.005300000 D*0 anti-D*0 K- PHSP; #[Reconstructed PDG2011] -# Internal W-emission amplitude (color suppressed modes) -0.0005 D- D+ K- PHSP; -0.0005 D*- D+ K- PHSP; -0.001500000 D- D*+ K- PHSP; #[Reconstructed PDG2011] -0.0015 D*- D*+ K- PHSP; -# -0.0025 D0 D- anti-K*0 PHSP; -0.0025 D*0 D- anti-K*0 PHSP; -0.0025 D0 D*- anti-K*0 PHSP; -0.0050 D*0 D*- anti-K*0 PHSP; -# -0.0025 D0 anti-D0 K*- PHSP; -0.0025 D*0 anti-D0 K*- PHSP; -0.0025 D0 anti-D*0 K*- PHSP; -0.0050 D*0 anti-D*0 K*- PHSP; -# -0.0005 D- D+ K*- PHSP; -0.0005 D*- D+ K*- PHSP; -0.0005 D- D*+ K*- PHSP; -0.0010 D*- D*+ K*- PHSP; -# -# B->D(*)D(*). See Ref [B1]: -# -0.000380000 D- D0 PHSP; #[Reconstructed PDG2011] -0.000390000 D*- D0 SVS; #[Reconstructed PDG2011] -0.000630000 D*0 D- SVS; #[Reconstructed PDG2011] -0.000810000 D*0 D*- SVV_HELAMP 0.47 0.0 0.96 0.0 0.56 0.0; #[Reconstructed PDG2011] - -# -# B -> D(*) X Exclusive Modes -# -0.005190000 D*0 pi- SVS; #[Reconstructed PDG2011] -0.004840000 D0 pi- PHSP; #[Reconstructed PDG2011] -0.013400000 rho- D0 SVS; #[Reconstructed PDG2011] -# D* rho HELAMP parameters taken from ICHEP 98-852. -0.009800000 D*0 rho- SVV_HELAMP 0.228 0.95 0.932 0.0 0.283 1.13; #[Reconstructed PDG2011] -# -0.0005 D0 pi0 pi- PHSP; -0.0005 D*0 pi0 pi- PHSP; -0.001070000 D+ pi- pi- PHSP; #[Reconstructed PDG2011] -0.001350000 D*+ pi- pi- PHSP; #[Reconstructed PDG2011] -# -# D a1 updated Ref. [B1]: -0.004000000 a_1- D0 SVS; #[Reconstructed PDG2011] -0.000200000 D0 rho0 pi- PHSP; #[Reconstructed PDG2011] -0.006800000 D0 pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -# -# SVV_HELAMP from factorization, recommendation -# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/168.html: -# updated Ref. [B1]: -# -# -0.019000000 D*0 a_1- SVV_HELAMP 0.200 0.0 0.866 0.0 0.458 0.0; #[Reconstructed PDG2011] -# -0.00150 D*0 rho0 pi- PHSP; -0.000500000 D*0 pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -# -0.0020 D+ rho- pi- PHSP; -0.0020 D+ pi0 pi- pi- PHSP; -0.0020 D*+ rho- pi- PHSP; -0.015000000 D*+ pi0 pi- pi- PHSP; #[Reconstructed PDG2011] -0.0005 D*0 rho- pi0 PHSP; -0.0005 D*0 pi- pi0 pi0 PHSP; -# -# B->D** pi and D** rho, recommendation -# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/151.html -# further update October 26, 2004 Lange -# -0.000876 D_10 pi- SVS; -0.0005 D'_10 pi- SVS; -0.00052 D_2*0 pi- STS; -0.0007 D_10 rho- PHSP; -0.0022 D'_10 rho- PHSP; -0.0038 D_2*0 rho- PHSP; -0.00061 D_0*0 pi- PHSP; -# -# -# B->DK, recommendation -# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/151.html: -# update: Ref [B1]: -# -0.000368000 D0 K- PHSP; #[Reconstructed PDG2011] -0.000421000 D*0 K- SVS; #[Reconstructed PDG2011] -0.000530000 K*- D0 SVS; #[Reconstructed PDG2011] -0.000810000 D*0 K*- SVV_HELAMP 0.228 0.0 0.932 0.0 0.283 0.0; #[Reconstructed PDG2011] -#October 26, 2004 Lange -0.0000005 D- pi0 PHSP; -0.0000005 D*- pi0 SVS; -0.000011 D- anti-K0 PHSP; -0.000006 D*- anti-K0 SVS; -# -#October 26, 2004 - Lange -0.00075 D0 D_s0*- PHSP; -0.0009 D*0 D_s0*- SVS; -0.003100000 D_s1- D0 SVS; #[Reconstructed PDG2011] -0.012000000 D*0 D_s1- SVV_HELAMP 0.4904 0.0 0.7204 0.0 0.4904 0.0; #[Reconstructed PDG2011] -# -# Feb 2009 -# -0.00055 D0 K- anti-K0 PHSP; -0.00075 D0 K- anti-K*0 PHSP; -0.001500000 D*0 K- anti-K*0 PHSP; #[Reconstructed PDG2011] -# -# Feb 2009 -# -0.002750000 D0 omega pi- PHSP; #[Reconstructed PDG2011] -0.004500000 D*0 omega pi- PHSP; #[Reconstructed PDG2011] -# -# Feb 2009 -# -0.00045 D0 D'_s1- PHSP; -0.00094 D*0 D'_s1- PHSP; -# -# Lam_c X / Sigma_c X 4.0 % -# -#0.04000 cd_1 anti-uu_1 PYTHIA 63; -0.032587684 cd_1 anti-uu_1 PYTHIA 63; -# -# Xi_c X 2.5% -# -#0.02400 cs_1 anti-uu_1 PYTHIA 63; -0.008887593 cs_1 anti-uu_1 PYTHIA 63; -# -# -0.214329978 anti-u d c anti-u PYTHIA 23; -0.040912464 anti-u d c anti-u PYTHIA 43; -0.022218888 anti-u s c anti-u PYTHIA 43; -#lange - try to crank up the psi production.... -0.073075460 anti-c s c anti-u PYTHIA 43; -0.003950000 anti-c d c anti-u PYTHIA 43; -0.002962500 anti-u d u anti-u PYTHIA 23; -0.003950000 anti-c s u anti-u PYTHIA 23; -# JGS 11/5/02 This and similar a few lines above have been divided by two -# to solve a double-counting problem for this channel -0.002024389 anti-u u d anti-u PYTHIA 23; -0.000069145 anti-d d d anti-u PYTHIA 23; -0.000088900 anti-s s d anti-u PYTHIA 23; -0.002172556 anti-u u s anti-u PYTHIA 23; -0.001777537 anti-d d s anti-u PYTHIA 23; -0.001481296 anti-s s s anti-u PYTHIA 23; -0.004937500 s anti-u PYTHIA 91; -# -#### -0.000550000 D0 K- K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000750000 D0 K- K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.018000000 D*0 pi+ pi- pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.005700000 D*0 pi- pi- pi- pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.002600000 D*+ pi- pi- pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000180000 D_s+ pi- K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000145000 D_s*+ pi- K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000011000 D_s+ K- K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001070000 J/psi K- pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000108000 J/psi eta K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000350000 J/psi omega K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000011800 J/psi anti-p- Lambda0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000025800 psi(2S) pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000020000 chi_c1 pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000018000 eta K_0*- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000009100 eta K_2*- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000024000 omega K_0*- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000021000 omega K_2*- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000010100 anti-K*0 pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000001070 f_2 K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000005600 anti-K_2*0 pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000001200 K*- anti-K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000006100 phi K_1- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000008400 phi K_2*- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000043000 K_1- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000007900 eta K- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000003500 phi K- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000007600 K- pi+ pi- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000020000 anti-K*0 pi- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000046000 anti-K0 pi- pi0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000014000 K_2*- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000980 rho- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000001620 anti-p- p+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000005900 anti-p- p+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000003600 anti-p- p+ K*- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000002500 anti-p- Lambda0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000003000 anti-p- Lambda0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000000 anti-p- Lambda0 pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000004800 anti-p- Lambda0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000002000 anti-p- Lambda0 f_2 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000003400 anti-Lambda0 Lambda0 K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000002200 anti-Lambda0 Lambda0 K*- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000280000 Lambda_c+ anti-p- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001800000 Lambda_c+ anti-p- pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.002300000 Lambda_c+ anti-p- pi- pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000035000 Sigma_c0 anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000440000 Sigma_c0 anti-p- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000440000 Sigma_c0 anti-p- pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000280000 Sigma_c++ anti-p- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay B+ -# Updated to PDG 2008 -# b -> c semileptonic -# -0.0569 anti-D*0 e+ nu_e PHOTOS HQET2 1.207 0.920 1.406 0.853; # For details see B- decay -0.0227 anti-D0 e+ nu_e PHOTOS HQET2 1.185 1.081; -0.0045 anti-D_10 e+ nu_e PHOTOS ISGW2; -0.0037 anti-D_0*0 e+ nu_e PHOTOS ISGW2; -0.0040 anti-D'_10 e+ nu_e PHOTOS ISGW2; -0.0033 anti-D_2*0 e+ nu_e PHOTOS ISGW2; -0.006100 D*- pi+ e+ nu_e PHOTOS GOITY_ROBERTS; -0.0006 anti-D*0 pi0 e+ nu_e PHOTOS GOITY_ROBERTS; -0.0021 D- pi+ e+ nu_e PHOTOS GOITY_ROBERTS; -0.0020 anti-D0 pi0 e+ nu_e PHOTOS GOITY_ROBERTS; - -# For muonic decays do same as for electrons -0.0569 anti-D*0 mu+ nu_mu PHOTOS HQET2 1.207 0.920 1.406 0.853; -0.0227 anti-D0 mu+ nu_mu PHOTOS HQET2 1.185 1.081; -0.0045 anti-D_10 mu+ nu_mu PHOTOS ISGW2; -0.0037 anti-D_0*0 mu+ nu_mu PHOTOS ISGW2; -0.0040 anti-D'_10 mu+ nu_mu PHOTOS ISGW2; -0.0033 anti-D_2*0 mu+ nu_mu PHOTOS ISGW2; -0.006100 D*- pi+ mu+ nu_mu PHOTOS GOITY_ROBERTS; -0.0006 anti-D*0 pi0 mu+ nu_mu PHOTOS GOITY_ROBERTS; -0.0021 D- pi+ mu+ nu_mu PHOTOS GOITY_ROBERTS; -0.0020 anti-D0 pi0 mu+ nu_mu PHOTOS GOITY_ROBERTS; -# -# b -> c tau nu -# -0.020000000 anti-D*0 tau+ nu_tau ISGW2; #[Reconstructed PDG2011] -0.007000000 anti-D0 tau+ nu_tau ISGW2; #[Reconstructed PDG2011] -0.0013 anti-D_10 tau+ nu_tau ISGW2; -0.0013 anti-D_0*0 tau+ nu_tau ISGW2; -0.0020 anti-D'_10 tau+ nu_tau ISGW2; -0.0020 anti-D_2*0 tau+ nu_tau ISGW2; -# -# b -> u l nu -# -# -# -# This will need check whether we get correct inclusive q2 dependence - -0.00007800 pi0 e+ nu_e PHOTOS ISGW2; # PDG2014 -0.00003800 eta e+ nu_e PHOTOS ISGW2; # PDG2014 -0.00015800 rho0 e+ nu_e PHOTOS ISGW2; # PDG2014 -0.00011900 omega e+ nu_e PHOTOS ISGW2; # PDG2014 -0.000230 eta' e+ nu_e PHOTOS ISGW2; # PDG2014 -0.000000 anti-D(2S)0 e+ nu_e PHOTOS ISGW2; -0.000000 anti-D*(2S)0 e+ nu_e PHOTOS ISGW2; -0.001948 Xu0 e+ nu_e VUB 4.8 1.29 0.22 20 0.30 0.54 1.20 0.95 1.26 0.78 1.34 0.98 1.41 0.91 1.48 1.23 1.55 1.36 1.61 1.39 1.67 1.38 1.73 1.43 1.79 1.41 1.84 1.42 1.90 1.45 1.95 1.40 2.00 1.42 2.50 1.31 3.00 1.36 3.50 1.15 4.00 1.01 4.50 1.51; -# -# For muons do same as for electrons -0.00007800 pi0 mu+ nu_mu PHOTOS ISGW2; -0.00003800 eta mu+ nu_mu PHOTOS ISGW2; -0.00015800 rho0 mu+ nu_mu PHOTOS ISGW2; -0.00011900 omega mu+ nu_mu PHOTOS ISGW2; -0.000230 eta' mu+ nu_mu PHOTOS ISGW2; -0.000000 anti-D(2S)0 mu+ nu_mu PHOTOS ISGW2; -0.000000 anti-D*(2S)0 mu+ nu_mu PHOTOS ISGW2; -0.0020454 Xu0 mu+ nu_mu VUB 4.8 1.29 0.22 20 0.30 0.54 1.20 0.95 1.26 0.78 1.34 0.98 1.41 0.91 1.48 1.23 1.55 1.36 1.61 1.39 1.67 1.38 1.73 1.43 1.79 1.41 1.84 1.42 1.90 1.45 1.95 1.40 2.00 1.42 2.50 1.31 3.00 1.36 3.50 1.15 4.00 1.01 4.50 1.51; -# -0.000030 pi0 tau+ nu_tau ISGW2; -0.000012 eta tau+ nu_tau ISGW2; -0.000042 rho0 tau+ nu_tau ISGW2; -0.000042 omega tau+ nu_tau ISGW2; -0.000018 eta' tau+ nu_tau ISGW2; -0.000046 a_10 tau+ nu_tau ISGW2; -0.000027 b_10 tau+ nu_tau ISGW2; -0.000004 a_00 tau+ nu_tau ISGW2; -0.000002 f_0 tau+ nu_tau ISGW2; -0.000002 f'_0 tau+ nu_tau ISGW2; -0.000023 f_1 tau+ nu_tau ISGW2; -0.000023 f'_1 tau+ nu_tau ISGW2; -0.000013 h_1 tau+ nu_tau ISGW2; -0.000013 h'_1 tau+ nu_tau ISGW2; -0.000020 f_2 tau+ nu_tau ISGW2; -0.000020 f'_2 tau+ nu_tau ISGW2; -0.000000 anti-D(2S)0 tau+ nu_tau ISGW2; -0.000000 anti-D*(2S)0 tau+ nu_tau ISGW2; -# -# -# -# b->u hadronic -# Ref. [B1]: -# -0.000016000 D_s+ pi0 PHSP; #[Reconstructed PDG2011] -0.000020 D_s*+ pi0 SVS; -# -0.000028 rho0 D_s+ SVS; -0.000028 D_s*+ rho0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; - -# -# b-> s gamma -# -0.000042100 K*+ gamma HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -#0.0000135 K_1+ gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000065 K'_1+ gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000128 K'*+ gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000166 K_2*+ gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000017 K''*+ gamma HELAMP 1.0 0.0 1.0 0.0; -0.0003118 Xsu gamma BTOXSGAMMA 2; -# -0.000000550 K+ e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.000001550 K*+ e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.0000050 Xsu e+ e- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; -0.000000520 K+ mu+ mu- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.000001160 K*+ mu+ mu- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.0000025 Xsu mu+ mu- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; -0.0000001 K+ tau+ tau- PHOTOS BTOSLLBALL; -0.0000002 K*+ tau+ tau- PHOTOS BTOSLLBALL; -0.0000002 Xsu tau+ tau- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; -# -# b -> l nu -# -0.000180000 tau+ nu_tau SLN; #[Reconstructed PDG2011] -0.000000 mu+ nu_mu PHOTOS SLN; -0.000000 e+ nu_e PHOTOS SLN; -# -#------------------------------------------------------------------------------ -# 2- and 3-body modes revised Feb.2005 Markus Cristinziani, SLAC -#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv -# -# Exclusive hadronic b->u -# -0.000026 pi+ pi0 pi0 CB3PI-P00 alpha; -0.000000 pi+ pi+ pi- CB3PI-MPP alpha; -#### -0.000004070 eta pi+ PHSP; #[Reconstructed PDG2011] -0.000002330 eta K+ PHSP; #[Reconstructed PDG2011] -0.000019300 K*+ eta SVS; #[Reconstructed PDG2011] -0.000007000 rho+ eta SVS; #[Reconstructed PDG2011] -0.000002700 eta' pi+ PHSP; #[Reconstructed PDG2011] -0.000070600 eta' K+ PHSP; #[Reconstructed PDG2011] -0.000004900 K*+ eta' SVS; #[Reconstructed PDG2011] -0.000008700 rho+ eta' SVS; #[Reconstructed PDG2011] -0.000006900 omega pi+ SVS; #[Reconstructed PDG2011] -0.000006700 omega K+ SVS; #[Reconstructed PDG2011] -0.0000010 omega K*+ SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000015900 omega rho+ SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.0000000 phi pi+ SVS; -0.000008300 phi K+ SVS; #[Reconstructed PDG2011] -#2-body modes from Jim Olsen -# (K_S0 K- and K_L0 K- -> 1x10^-6, Jim Olsen - Mar 27, 2001) -# (pi- pi0 -> 5x10^-6 and K- pi0 -> 11x10^-6, Jim Olsen - Mar 27, 2001) -# PR LHCb 04/08/04 split into KS/KL -0.000000 K0 pi+ PHSP; -0.000011550 K_S0 pi+ PHSP; #[Reconstructed PDG2011] -0.000011550 K_L0 pi+ PHSP; #[Reconstructed PDG2011] -0.000001360 anti-K0 K+ PHSP; #[Reconstructed PDG2011] -0.000005700 pi+ pi0 PHSP; #[Reconstructed PDG2011] -0.000012900 K+ pi0 PHSP; #[Reconstructed PDG2011] -# -# 3-body John Back (jback@slac.stanford.edu) - Oct 15, 2002 -# JGS intersperses modes with pi0->eta,eta' -# B+ modes -# -# rho0 3-body modes -0.000008300 rho0 pi+ SVS; #[Reconstructed PDG2011] -0.000003700 rho0 K+ SVS; #[Reconstructed PDG2011] -# -# rho+ 3-body modes -0.000010900 rho+ pi0 SVS; #[Reconstructed PDG2011] -0.000008000 rho+ K0 SVS; #[Reconstructed PDG2011] -# -# rho(1450) 3-body modes -0.0000022 rho(2S)0 pi+ SVS; -0.000001 rho(2S)0 K+ SVS; -# -# f0(980) 3-body modes -0.000001 f_0 pi+ PHSP; -0.0000092 f_0 K+ PHSP; -0.000001 a_0+ K0 PHSP; -0.000001 a_00 K+ PHSP; -0.000001 a_00 pi+ PHSP; -0.000001 a_0+ pi0 PHSP; - -0.000001600 f_2 pi+ PHSP; #[Reconstructed PDG2011] - -# -# K*0(892) 3-body modes -0.000045000 K_0*0 pi+ PHSP; #[Reconstructed PDG2011] -0.0000010 anti-K_0*0 K+ PHSP; -0.000002 K_0*+ pi0 PHSP; -0.000002 K_0*+ anti-K0 PHSP; -# -# K*+(892) 3-body modes -0.000006900 K*+ pi0 SVS; #[Reconstructed PDG2011] -0.000003 K*+ anti-K0 SVS; -# -# -# Non-resonant 3-body left-overs -# Most modes are set at 1e-6 -# -# pi+pi-pi+: high mass + f0(400-1200) = (1+1)e-6 -#0402270.000002 pi+ pi- pi+ PHSP; -# -# K+ pi- pi+: high mass + f0(400-1200) = (5+5)e-6 -0.000000000 K+ pi- pi+ PHSP; #[Reconstructed PDG2011] -# -# K+ K- pi+: just non-resonant -0.000005000 K+ K- pi+ PHSP; #[Reconstructed PDG2011] -# -# K+K-K+: high mass structure near 1500 + non-res: total - phiK = 30-4 -0.000025400 K+ K- K+ PHSP; #[Reconstructed PDG2011] -# -# -# K+K+pi-: suppressed mode (1e-7) -0.0000001 K+ K+ pi- PHSP; -# K-pi+pi+: suppressed mode (1e-7) -0.0000001 K- pi+ pi+ PHSP; -# -# -# K+ anti-K0 pi0 -0.000001 K+ anti-K0 pi0 PHSP; -0.000001 K+ anti-K0 eta PHSP; -0.000001 K+ anti-K0 eta' PHSP; -# -# pi+ K0 pi0 -0.000001 pi+ K0 pi0 PHSP; -0.000001 pi+ K0 eta PHSP; -0.000001 pi+ K0 eta' PHSP; -# -# pi+ pi0 pi0 -#0402270.000001 pi+ pi0 pi0 PHSP; -0.000001 pi+ pi0 eta PHSP; -0.000001 pi+ pi0 eta' PHSP; -0.000001 pi+ eta eta PHSP; -0.000001 pi+ eta eta' PHSP; -# -# K+ pi0 pi0 -0.000001 K+ pi0 pi0 PHSP; -0.000001 K+ pi0 eta PHSP; -0.000001 K+ pi0 eta' PHSP; -0.000001 K+ eta eta PHSP; -0.000001 K+ eta eta' PHSP; -0.000001 K+ eta' eta' PHSP; -# -# K+ K0 anti-K0: 4*BF(K+KsKs) (4 is a guess) -0.0000460 K+ K0 anti-K0 PHSP; -# -# pi+ K0 anti-K0 -0.000001 pi+ K0 anti-K0 PHSP; -# -#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -# 2- and 3-body modes revised Feb.2005 Markus Cristinziani, SLAC -#--------------------------------------------------------------------------- -# -#4-body modes from Andrei Gritsan -#--- 4-body rho-rho, rho-pi-pi, pi-pi-pi-pi -------------------------- -# PR LHCb 22 Apr 2004 Set long. pol. for rho rho -0.000024000 rho+ rho0 SVV_HELAMP 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000010 rho0 pi+ pi0 PHSP; -0.000005 rho0 pi+ eta PHSP; -0.000002 rho0 pi+ eta' PHSP; -0.000010 omega pi+ pi0 PHSP; -0.000005 omega pi+ eta PHSP; -0.000002 omega pi+ eta' PHSP; -0.000010 rho+ pi+ pi- PHSP; -# PR Add rho- pi+ pi+ -0.000010 rho- pi+ pi+ PHSP; -0.000010 rho+ pi0 pi0 PHSP; -0.000005 rho+ pi0 eta PHSP; -0.000002 rho+ eta eta PHSP; -0.000002 rho+ pi0 eta' PHSP; -0.000010 pi- pi+ pi+ pi0 PHSP; -0.000005 pi- pi+ pi+ eta PHSP; -0.000002 pi- pi+ pi+ eta' PHSP; -0.000010 pi+ pi0 pi0 pi0 PHSP; -0.000005 pi+ eta pi0 pi0 PHSP; -0.000002 pi+ eta eta pi0 PHSP; -0.000002 pi+ eta' pi0 pi0 PHSP; -0.000001 pi+ eta' eta pi0 PHSP; -0.000020000 a_10 pi+ SVS; #[Reconstructed PDG2011] -0.000026000 a_1+ pi0 SVS; #[Reconstructed PDG2011] -0.0000067 b_10 pi+ SVS; -0.000010 b_1+ pi0 SVS; -0.000010 rho+ f_0 SVS; -0.000010 rho+ a_00 SVS; -0.000002 rho0 a_0+ SVS; -0.000010 f_0 pi+ pi0 PHSP; -0.000001 a_00 pi+ pi0 PHSP; -0.000001 a_0+ pi0 pi0 PHSP; -0.000001 a_0- pi+ pi+ PHSP; -#--- 4-body rho-K*, a1-K, rho-pi-K, K*-pi-pi, pi-pi-pi-K ------------------- -0.000009200 rho+ K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000010 rho0 K*+ SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000010 pi+ pi0 K*0 PHSP; -0.000005 pi+ eta K*0 PHSP; -0.000069800 pi- pi+ K*+ PHSP; #[Reconstructed PDG2011] -0.000010 pi0 pi0 K*+ PHSP; -0.000005 pi0 eta K*+ PHSP; -0.000002 eta eta K*+ PHSP; -0.000002 pi0 eta' K*+ PHSP; -0.000001 eta eta' K*+ PHSP; -0.000010 rho+ K0 pi0 PHSP; -0.000005 rho+ K0 eta PHSP; -0.000002 rho+ K0 eta' PHSP; -0.000010 rho+ K+ pi- PHSP; -0.000010 rho- K+ pi+ PHSP; -0.000005 rho0 K0 pi+ PHSP; -0.000005 rho0 K+ pi0 PHSP; -0.000002 rho0 K+ eta PHSP; -0.000001 rho0 K+ eta' PHSP; -0.000005 omega K0 pi+ PHSP; -0.000005 omega K+ pi0 PHSP; -0.000002 omega K+ eta PHSP; -0.000001 omega K+ eta' PHSP; -0.000010 pi+ pi+ pi- K0 PHSP; -0.000010 pi+ pi0 pi0 K0 PHSP; -0.000005 pi+ eta pi0 K0 PHSP; -0.000002 pi+ eta eta K0 PHSP; -0.000010 pi+ pi- pi0 K+ PHSP; -0.000005 pi+ pi- eta K+ PHSP; -0.000010 pi0 pi0 pi0 K+ PHSP; -0.000005 pi0 pi0 eta K+ PHSP; -0.000002 pi0 eta eta K+ PHSP; -0.000002 pi0 pi0 eta' K+ PHSP; -0.000001 pi0 eta eta' K+ PHSP; -0.000010 rho+ K_0*0 PHSP; -0.000006 rho0 K_0*+ PHSP; -0.000010 pi+ pi0 K_0*0 PHSP; -0.000010 pi0 pi0 K_0*+ PHSP; -0.000005200 K*+ f_0 SVS; #[Reconstructed PDG2011] -0.000010 a_10 K+ SVS; -0.000035000 a_1+ K0 SVS; #[Reconstructed PDG2011] -0.0000091 b_10 K+ SVS; -0.000010 b_1+ K0 SVS; -0.000005 K*+ a_00 SVS; -0.000005 K*0 a_0+ SVS; -#--- 4-body K*-K*, rho-K-K, K*-K-pi, phi-pi-pi, pi-pi-K-K ------------ -0.000001 anti-K*0 K*+ SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000001 phi rho+ SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000001 phi pi+ pi0 PHSP; -0.0000005 phi pi+ eta PHSP; -0.0000002 phi pi+ eta' PHSP; -0.000001 K+ K- rho+ PHSP; -0.000001 K0 anti-K0 rho+ PHSP; -0.000001 anti-K0 K+ rho0 PHSP; -0.000001 anti-K0 K+ omega PHSP; -0.000001 K+ K- pi+ pi0 PHSP; -0.0000005 K+ K- pi+ eta PHSP; -0.0000002 K+ K- pi+ eta' PHSP; -0.000001 K0 anti-K0 pi+ pi0 PHSP; -0.0000005 K0 anti-K0 pi+ eta PHSP; -0.0000002 K0 anti-K0 pi+ eta' PHSP; -0.000001 anti-K0 K+ pi+ pi- PHSP; -0.000001 anti-K0 K+ pi0 pi0 PHSP; -0.0000005 anti-K0 K+ pi0 eta PHSP; -0.0000002 anti-K0 K+ eta eta PHSP; -0.0000002 anti-K0 K+ pi0 eta' PHSP; -0.0000001 anti-K0 K+ eta eta' PHSP; -0.000001 K*+ K- pi+ PHSP; -0.000001 K*- K+ pi+ PHSP; -0.000001 K*0 anti-K0 pi+ PHSP; -0.000001 K0 anti-K*0 pi+ PHSP; -0.000001 K+ anti-K*0 pi0 PHSP; -0.0000005 K+ anti-K*0 eta PHSP; -0.0000002 K+ anti-K*0 eta' PHSP; -0.000001 K*+ anti-K0 pi0 PHSP; -0.0000005 K*+ anti-K0 eta PHSP; -0.0000002 K*+ anti-K0 eta' PHSP; -#--- 4-body phi-K*, phi-K-pi, K-K-K*, pi-K-K-K ----------------------- -0.000010000 phi K*+ SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000010 phi K0 pi+ PHSP; -0.000010 phi K+ pi0 PHSP; -0.000005 phi K+ eta PHSP; -0.000002 phi K+ eta' PHSP; -0.000026000 K- K+ K*+ PHSP; #[Reconstructed PDG2011] -0.000010 K+ K*- K+ PHSP; -0.000010 K+ K*0 anti-K0 PHSP; -0.000010 K+ K0 anti-K*0 PHSP; -0.000010 K0 K*+ anti-K0 PHSP; -0.000010 K+ K- K+ pi0 PHSP; -0.000005 K+ K- K+ eta PHSP; -0.000002 K+ K- K+ eta' PHSP; -0.000010 K+ K- K0 pi+ PHSP; -0.000010 K0 anti-K0 K+ pi0 PHSP; -0.000005 K0 anti-K0 K+ eta PHSP; -0.000002 K0 anti-K0 K+ eta' PHSP; -0.000010 K0 anti-K0 K0 pi+ PHSP; -0.000007000 phi K_0*+ PHSP; #[Reconstructed PDG2011] -0.000010 K- K+ K_0*+ PHSP; -0.000010 K+ K+ K_0*- PHSP; -0.000010 K+ anti-K_0*0 K0 PHSP; -0.000010 K+ K_0*0 anti-K0 PHSP; -0.000002 phi K'_1+ PHSP; -0.000002 K- K+ K'_1+ PHSP; -#--- 4-body phi-phi, phi-K-K, K-K-K-K -------------------------------- -0.000001 phi anti-K0 K+ PHSP; -0.000001 K+ K- K+ anti-K0 PHSP; -0.000001 K0 anti-K0 anti-K0 K+ PHSP; -# -#5-body modes from Jim Smith - 1/30/05 -#--- 5-body rho-rho-pi, rho-pi-pi-pi, pi-pi-pi-pi-pi ------------------- -0.000010 rho0 rho0 pi+ PHSP; -0.000010 rho+ rho0 pi0 PHSP; -0.000005 rho+ rho0 eta PHSP; -0.000002 rho+ rho0 eta' PHSP; -0.000010 rho+ rho- pi+ PHSP; -0.000010 omega rho0 pi+ PHSP; -0.000010 omega rho+ pi0 PHSP; -0.000005 omega rho+ eta PHSP; -0.000002 omega rho+ eta' PHSP; -0.000002 rho0 pi+ pi- pi+ PHSP; -0.000002 rho0 pi+ pi0 pi0 PHSP; -0.000001 rho0 pi+ eta pi0 PHSP; -0.000001 rho0 pi+ eta' pi0 PHSP; -0.000002 omega pi+ pi0 pi0 PHSP; -0.000001 omega pi+ eta pi0 PHSP; -0.000001 omega pi+ eta' pi0 PHSP; -0.000002 rho- pi+ pi+ pi0 PHSP; -0.000001 rho- pi+ pi+ eta PHSP; -0.000001 rho- pi+ pi+ eta' PHSP; -0.000002 rho+ pi+ pi- pi0 PHSP; -0.000001 rho+ pi+ pi- eta PHSP; -0.000001 rho+ pi+ pi- eta' PHSP; -0.000002 rho+ pi0 pi0 pi0 PHSP; -0.000001 rho+ pi0 eta pi0 PHSP; -0.000001 rho+ eta eta pi0 PHSP; -0.000001 rho+ pi0 eta' pi0 PHSP; -0.000001 pi- pi+ pi+ pi0 pi0 PHSP; -0.000001 pi- pi+ pi+ eta pi0 PHSP; -0.000001 pi- pi+ pi+ eta' pi0 PHSP; -0.000001 pi+ pi0 pi0 pi0 pi0 PHSP; -0.000001 pi+ eta pi0 pi0 pi0 PHSP; -0.000001 pi+ eta' pi0 pi0 pi0 PHSP; -0.000010 a_1+ rho0 PHSP; -0.000010 a_1+ omega PHSP; -0.000010 a_1+ f_0 PHSP; -0.000010 a_10 pi+ pi0 PHSP; -0.000005 a_10 pi+ eta PHSP; -0.000002 a_10 pi+ eta' PHSP; -0.000010 a_1- pi+ pi+ PHSP; -0.000010 a_1+ pi+ pi- PHSP; -0.000010 a_1+ pi0 pi0 PHSP; -0.000005 a_1+ pi0 eta PHSP; -0.000002 a_1+ pi0 eta' PHSP; -0.000010 rho+ f_0 pi0 PHSP; -0.000005 rho+ f_0 eta PHSP; -0.000002 rho+ f_0 eta' PHSP; -0.000010 rho0 f_0 pi+ PHSP; -0.000010 omega f_0 pi+ PHSP; -0.000010 rho+ a_00 pi0 PHSP; -0.000005 rho+ a_00 eta PHSP; -0.000002 rho+ a_00 eta' PHSP; -0.000010 rho- a_0+ pi+ PHSP; -0.000010 rho0 a_0+ pi0 PHSP; -0.000005 rho0 a_0+ eta PHSP; -0.000002 rho0 a_0+ eta' PHSP; -0.000002 f_0 pi+ pi- pi+ PHSP; -0.000002 f_0 pi+ pi0 pi0 PHSP; -0.000001 f_0 pi+ pi0 eta PHSP; -0.000001 f_0 pi+ pi0 eta' PHSP; -0.000001 a_00 pi+ pi0 pi0 PHSP; -0.000001 a_0+ pi0 pi0 pi0 PHSP; -0.000001 a_0- pi+ pi+ pi0 PHSP; -#--- 5-body rho-K*pi, rho-2pi-K, K*-3pi, 4pi-K ------------------- -0.000010 rho+ K*+ pi- PHSP; -0.000010 rho- K*+ pi+ PHSP; -0.000010 rho+ K*0 pi0 PHSP; -0.000005 rho+ K*0 eta PHSP; -0.000002 rho+ K*0 eta' PHSP; -0.000010 rho0 K*0 pi+ PHSP; -0.000010 rho0 K*+ pi0 PHSP; -0.000005 rho0 K*+ eta PHSP; -0.000002 rho0 K*+ eta' PHSP; -0.000010 omega K*0 pi+ PHSP; -0.000010 omega K*+ pi0 PHSP; -0.000005 omega K*+ eta PHSP; -0.000002 omega K*+ eta' PHSP; -0.000010 pi+ pi- K*0 pi+ PHSP; -0.000010 pi+ pi0 K*0 pi0 PHSP; -0.000005 pi+ eta K*0 pi0 PHSP; -0.000002 pi+ eta' K*0 pi0 PHSP; -0.000010 pi- pi+ K*+ pi0 PHSP; -0.000005 pi- pi+ K*+ eta PHSP; -0.000002 pi- pi+ K*+ eta' PHSP; -0.000010 pi0 pi0 K*+ pi0 PHSP; -0.000005 pi0 eta K*+ pi0 PHSP; -0.000002 eta eta K*+ pi0 PHSP; -0.000002 pi0 eta' K*+ pi0 PHSP; -0.000001 eta eta' K*+ pi0 PHSP; -0.000010 rho+ K0 pi+ pi- PHSP; -0.000010 rho+ K0 pi0 pi0 PHSP; -0.000005 rho+ K0 eta pi0 PHSP; -0.000002 rho+ K0 eta' pi0 PHSP; -0.000010 rho+ K+ pi- pi0 PHSP; -0.000010 rho- K+ pi+ pi0 PHSP; -0.000010 rho- K0 pi+ pi+ PHSP; -0.000010 rho0 K0 pi+ pi0 PHSP; -0.000010 rho0 K+ pi0 pi0 PHSP; -0.000005 rho0 K+ eta pi0 PHSP; -0.000002 rho0 K+ eta' pi0 PHSP; -0.000010 omega K0 pi+ pi0 PHSP; -0.000010 omega K+ pi0 pi0 PHSP; -0.000005 omega K+ eta pi0 PHSP; -0.000002 omega K+ eta' pi0 PHSP; -0.000002 pi+ pi+ pi- K0 pi0 PHSP; -0.000001 pi+ pi+ pi- K0 eta PHSP; -0.000001 pi+ pi+ pi- K0 eta' PHSP; -0.000002 pi+ pi0 pi0 K0 pi0 PHSP; -0.000001 pi+ eta pi0 K0 pi0 PHSP; -0.000001 pi+ eta eta K0 pi0 PHSP; -0.000002 pi+ pi- pi+ K+ pi- PHSP; -0.000002 pi+ pi- pi0 K+ pi0 PHSP; -0.000001 pi+ pi- eta K+ pi0 PHSP; -0.000001 pi+ pi- eta' K+ pi0 PHSP; -0.000002 pi0 pi0 pi0 K+ pi0 PHSP; -0.000001 pi0 pi0 eta K+ pi0 PHSP; -0.000001 pi0 eta eta K+ pi0 PHSP; -0.000001 pi0 pi0 eta' K+ pi0 PHSP; -0.000001 pi0 eta eta' K+ pi0 PHSP; -0.000010 rho0 K_0*0 pi+ PHSP; -0.000010 rho+ K_0*0 pi0 PHSP; -0.000005 rho+ K_0*0 eta PHSP; -0.000002 rho+ K_0*0 eta' PHSP; -0.000010 rho+ K_0*+ pi- PHSP; -0.000010 rho0 K_0*+ pi0 PHSP; -0.000005 rho0 K_0*+ eta PHSP; -0.000002 rho0 K_0*+ eta' PHSP; -0.000010 pi+ pi+ K_0*0 pi- PHSP; -0.000010 pi+ pi0 K_0*0 pi0 PHSP; -0.000005 pi+ pi0 K_0*0 eta PHSP; -0.000002 pi+ pi0 K_0*0 eta' PHSP; -0.000010 pi0 pi0 K_0*+ pi0 PHSP; -0.000005 pi0 pi0 K_0*+ eta PHSP; -0.000002 pi0 pi0 K_0*+ eta' PHSP; -0.000010 K*0 f_0 pi+ PHSP; -0.000010 K*+ f_0 pi0 PHSP; -0.000005 K*+ f_0 eta PHSP; -0.000002 K*+ f_0 eta' PHSP; -0.000020 a_10 K*+ PHSP; -0.000010 a_10 K+ pi0 PHSP; -0.000010 a_10 K0 pi+ PHSP; -0.000020 a_1+ K*0 PHSP; -0.000010 a_1+ K+ pi- PHSP; -0.000010 a_1+ K0 pi0 PHSP; -0.000005 K*+ a_00 pi0 PHSP; -0.000005 K*0 a_0+ pi0 PHSP; -#--- 5-body K*-K*pi,rho-K-Kpi, K*-K-2pi, phi-3pi, 3pi-K-K ------------ -0.000001 K*0 anti-K*0 pi+ PHSP; -0.000001 anti-K*0 K*+ pi0 PHSP; -0.0000005 anti-K*0 K*+ eta PHSP; -0.0000002 anti-K*0 K*+ eta' PHSP; -0.000001 phi rho0 pi+ PHSP; -0.000001 phi omega pi+ PHSP; -0.000001 phi f_0 pi+ PHSP; -0.000001 phi rho+ pi0 PHSP; -0.0000005 phi rho+ eta PHSP; -0.0000002 phi rho+ eta' PHSP; -0.000001 phi pi+ pi- pi+ PHSP; -0.000001 phi pi+ pi0 pi0 PHSP; -0.0000005 phi pi+ eta pi0 PHSP; -0.0000002 phi pi+ eta' pi0 PHSP; -0.000001 anti-K0 K+ rho+ pi- PHSP; -0.000001 anti-K0 K+ rho- pi+ PHSP; -0.000001 anti-K0 K+ rho0 pi0 PHSP; -0.0000005 anti-K0 K+ rho0 eta PHSP; -0.0000002 anti-K0 K+ rho0 eta' PHSP; -0.000001 anti-K0 K+ omega pi0 PHSP; -0.000001 anti-K0 K+ f_0 pi0 PHSP; -0.000001 K+ K- rho0 pi+ PHSP; -0.000001 K+ K- rho+ pi0 PHSP; -0.0000005 K+ K- rho+ eta PHSP; -0.0000002 K+ K- rho+ eta' PHSP; -0.000001 K+ K- omega pi+ PHSP; -0.000001 K0 anti-K0 rho0 pi+ PHSP; -0.000001 K0 anti-K0 omega pi+ PHSP; -0.000001 K0 anti-K0 f_0 pi+ PHSP; -0.000001 K0 anti-K0 rho+ pi0 PHSP; -0.0000005 K0 anti-K0 rho+ eta PHSP; -0.0000002 K0 anti-K0 rho+ eta' PHSP; -0.000001 K0 K- rho+ pi+ PHSP; -0.0000002 K0 K- pi+ pi+ pi0 PHSP; -0.0000001 K0 K- pi+ pi+ eta PHSP; -0.0000001 K0 K- pi+ pi+ eta' PHSP; -0.0000002 K+ K- pi+ pi- pi+ PHSP; -0.0000002 K+ K- pi+ pi0 pi0 PHSP; -0.0000001 K+ K- pi+ eta pi0 PHSP; -0.0000001 K+ K- pi+ eta' pi0 PHSP; -0.0000002 K0 anti-K0 pi+ pi- pi+ PHSP; -0.0000002 K0 anti-K0 pi+ pi0 pi0 PHSP; -0.0000001 K0 anti-K0 pi+ eta pi0 PHSP; -0.0000001 K0 anti-K0 pi+ eta' pi0 PHSP; -0.0000002 anti-K0 K+ pi+ pi- pi0 PHSP; -0.0000001 anti-K0 K+ pi+ pi- eta PHSP; -0.0000001 anti-K0 K+ pi+ pi- eta' PHSP; -0.0000002 anti-K0 K+ pi0 pi0 pi0 PHSP; -0.0000001 anti-K0 K+ pi0 eta pi0 PHSP; -0.0000001 anti-K0 K+ pi0 eta' pi0 PHSP; -0.000001 K*0 K- pi+ pi+ PHSP; -0.000001 K*- K0 pi+ pi+ PHSP; -0.000001 K*+ K- pi+ pi0 PHSP; -0.000001 K*- K+ pi+ pi0 PHSP; -0.000001 K*0 anti-K0 pi+ pi0 PHSP; -0.000001 K0 anti-K*0 pi+ pi0 PHSP; -0.000001 K+ anti-K*0 pi0 pi0 PHSP; -0.0000005 K+ anti-K*0 eta pi0 PHSP; -0.0000002 K+ anti-K*0 eta' pi0 PHSP; -0.000001 K*+ anti-K0 pi0 pi0 PHSP; -0.0000005 K*+ anti-K0 eta pi0 PHSP; -0.0000002 K*+ anti-K0 eta' pi0 PHSP; -#--- 5-body phi-K*-pi, phi-K-2pi, K-K-K*-pi, 2pi-K-K-K -------------------- -0.000010 phi K*+ pi0 PHSP; -0.000010 phi K+ rho0 PHSP; -0.000010 phi K+ omega PHSP; -0.000010 phi K+ f_0 PHSP; -0.000010 phi K0 rho+ PHSP; -0.000010 phi K0 pi+ pi0 PHSP; -0.000010 phi K+ pi+ pi- PHSP; -0.000010 phi K+ pi0 pi0 PHSP; -0.000005 phi K+ eta pi0 PHSP; -0.000002 phi K+ eta' pi0 PHSP; -0.000010 K- K+ K*+ pi0 PHSP; -0.000010 K+ K*- K+ pi0 PHSP; -0.000010 K+ K*0 anti-K0 pi0 PHSP; -0.000010 K+ K0 anti-K*0 pi0 PHSP; -0.000010 K0 K*+ anti-K0 pi0 PHSP; -0.000010 K- K+ K+ rho0 PHSP; -0.000010 K- K+ K+ omega PHSP; -0.000010 K- K+ K+ f_0 PHSP; -0.000010 K- K+ K0 rho+ PHSP; -0.000010 K+ K- K+ pi0 pi0 PHSP; -0.000005 K+ K- K+ eta pi0 PHSP; -0.000002 K+ K- K+ eta' pi0 PHSP; -0.000010 K+ K- K0 pi+ pi0 PHSP; -0.000010 K0 anti-K0 K+ pi0 pi0 PHSP; -0.000005 K0 anti-K0 K+ eta pi0 PHSP; -0.000002 K0 anti-K0 K+ eta' pi0 PHSP; -0.000010 K0 anti-K0 K0 pi+ pi0 PHSP; -0.000010 phi K_0*0 pi+ PHSP; -0.000010 phi K_0*+ pi0 PHSP; -0.000005 phi K_0*+ eta PHSP; -0.000002 phi K_0*+ eta' PHSP; -0.000010 K- K+ K_0*+ pi0 PHSP; -0.000005 K- K+ K_0*+ eta PHSP; -0.000002 K- K+ K_0*+ eta' PHSP; -0.000010 K+ K+ K_0*- pi0 PHSP; -0.000005 K+ K+ K_0*- eta PHSP; -0.000002 K+ K+ K_0*- eta' PHSP; -0.000010 K- K+ K_0*0 pi+ PHSP; -0.000010 K+ K+ anti-K_0*0 pi- PHSP; -0.000010 K0 K0 anti-K_0*0 pi+ PHSP; -0.000010 K+ anti-K_0*0 K0 pi0 PHSP; -0.000005 K+ anti-K_0*0 K0 eta PHSP; -0.000002 K+ anti-K_0*0 K0 eta' PHSP; -0.000010 K+ K_0*0 anti-K0 pi0 PHSP; -0.000005 K+ K_0*0 anti-K0 eta PHSP; -0.000002 K+ K_0*0 anti-K0 eta' PHSP; -0.000002 phi K'_10 pi+ PHSP; -0.000002 phi K'_1+ pi0 PHSP; -0.000001 phi K'_1+ eta PHSP; -0.000001 phi K'_1+ eta' PHSP; -0.000002 K- K+ K'_10 pi+ PHSP; -0.000002 K- K+ K'_1+ pi0 PHSP; -0.000001 K- K+ K'_1+ eta PHSP; -0.000001 K- K+ K'_1+ eta' PHSP; -0.000002 K+ K+ K'_1- pi0 PHSP; -0.000002 K+ K+ anti-K'_10 pi- PHSP; -0.000002 K0 anti-K0 K'_10 pi+ PHSP; -0.000002 K0 anti-K0 K'_1+ pi0 PHSP; -0.000001 K0 anti-K0 K'_1+ eta PHSP; -0.000001 K0 anti-K0 K'_1+ eta' PHSP; -0.000002 K0 K0 anti-K'_10 pi+ PHSP; -0.000002 anti-K0 anti-K0 K'_1+ pi0 PHSP; -0.000001 anti-K0 anti-K0 K'_1+ eta PHSP; -0.000001 anti-K0 anti-K0 K'_1+ eta' PHSP; -0.000010 K+ K0 anti-K'_10 pi0 PHSP; -0.000005 K+ K0 anti-K'_10 eta PHSP; -0.000002 K+ K0 anti-K'_10 eta' PHSP; -0.000010 K+ K'_10 anti-K0 pi0 PHSP; -0.000005 K+ K'_10 anti-K0 eta PHSP; -0.000002 K+ K'_10 anti-K0 eta' PHSP; -#--- 5-body phi-phi-K, phi-phi-pi, phi-3K, phi-K-K-pi, 5K, 4K-pi ------------ -0.000004900 phi phi K+ PHSP; #[Reconstructed PDG2011] -0.000001 phi phi pi+ PHSP; -0.000001 phi K+ K- K+ PHSP; -0.000001 phi K0 anti-K0 K+ PHSP; -0.000001 phi K0 anti-K0 pi+ PHSP; -0.000001 phi anti-K0 K+ pi0 PHSP; -0.000001 K+ K- K+ K- pi+ PHSP; -0.000001 K+ K- K0 anti-K0 pi+ PHSP; -0.000001 K+ K- K+ anti-K0 pi0 PHSP; -0.000001 K0 anti-K0 anti-K0 K+ pi0 PHSP; -#--- 6-body phi-phi-K*, phi-3Kpi, phi-K-K-2pi ------------ -0.000003 phi phi K*+ PHSP; -0.000001 phi K+ K- K*+ PHSP; -0.000001 phi K0 anti-K0 K*+ PHSP; -0.000001 phi anti-K0 K+ K*0 PHSP; -0.000001 phi K+ K- K+ pi0 PHSP; -0.000001 phi K+ K- K0 pi+ PHSP; -0.000001 phi K0 anti-K0 K+ pi0 PHSP; -0.000001 phi K0 anti-K0 K0 pi+ PHSP; -0.000001 phi anti-K0 K+ K+ pi- PHSP; -#--- 6-body a1a1 ------------ -0.000050 a_1+ a_10 PHSP; -# -# B -> cc= s sum = 1.92% -# -0.001014000 J/psi K+ SVS; #[Reconstructed PDG2011] -0.001430000 J/psi K*+ SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] -0.000049000 J/psi pi+ SVS; #[Reconstructed PDG2011] -0.000050000 J/psi rho+ SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] -0.0002 J/psi K0 pi+ PHSP; -0.0001 J/psi K+ pi0 PHSP; -#rl0.0007 J/psi K+ pi- pi+ PHSP; -#rl0.00035 J/psi K+ pi0 pi0 PHSP; -#rl0.00035 J/psi K0 pi+ pi0 PHSP; -0.0001 J/psi K'_1+ SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; -0.0005 J/psi K_2*+ PHSP; -0.001800000 J/psi K_1+ SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; #[Reconstructed PDG2011] -0.000052000 J/psi phi K+ PHSP; #[Reconstructed PDG2011] -# -0.000646000 psi(2S) K+ SVS; #[Reconstructed PDG2011] -0.000620000 psi(2S) K*+ SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] -0.0004 psi(2S) K0 pi+ PHSP; -0.0002 psi(2S) K+ pi0 PHSP; -0.001900000 psi(2S) K+ pi- pi+ PHSP; #[Reconstructed PDG2011] -0.0001 psi(2S) K+ pi0 pi0 PHSP; -0.0001 psi(2S) K0 pi+ pi0 PHSP; -0.0004 psi(2S) K_1+ PHSP; -# -0.000910000 eta_c K+ PHSP; #[Reconstructed PDG2011] -0.001200000 K*+ eta_c SVS; #[Reconstructed PDG2011] -0.0002 eta_c K0 pi+ PHSP; -0.0001 eta_c K+ pi0 PHSP; -0.0002 eta_c K+ pi- pi+ PHSP; -0.0001 eta_c K+ pi0 pi0 PHSP; -0.0001 eta_c K0 pi+ pi0 PHSP; -# -0.000340000 eta_c(2S) K+ PHSP; #[Reconstructed PDG2011] -0.00048 K*+ eta_c(2S) SVS; -0.00008 eta_c(2S) K0 pi+ PHSP; -0.00005 eta_c(2S) K+ pi0 PHSP; -0.00008 eta_c(2S) K+ pi- pi+ PHSP; -0.00005 eta_c(2S) K+ pi0 pi0 PHSP; -0.00005 eta_c(2S) K0 pi+ pi0 PHSP; -# -0.000133000 chi_c0 K+ PHSP; #[Reconstructed PDG2011] -0.0004 K*+ chi_c0 SVS; -0.0002 chi_c0 K0 pi+ PHSP; -0.0001 chi_c0 K+ pi0 PHSP; -0.0002 chi_c0 K+ pi- pi+ PHSP; -0.0001 chi_c0 K+ pi0 pi0 PHSP; -0.0001 chi_c0 K0 pi+ pi0 PHSP; -# -0.000460000 chi_c1 K+ SVS; #[Reconstructed PDG2011] -0.000300000 chi_c1 K*+ SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] -0.0004 chi_c1 K0 pi+ PHSP; -0.0002 chi_c1 K+ pi0 PHSP; -0.0004 chi_c1 K+ pi- pi+ PHSP; -0.0002 chi_c1 K+ pi0 pi0 PHSP; -0.0002 chi_c1 K0 pi+ pi0 PHSP; -# -0.00002 chi_c2 K+ STS; -0.00002 chi_c2 K*+ PHSP; -0.0002 chi_c2 K0 pi+ PHSP; -0.0001 chi_c2 K+ pi0 PHSP; -0.0002 chi_c2 K+ pi- pi+ PHSP; -0.0001 chi_c2 K+ pi0 pi0 PHSP; -0.0001 chi_c2 K0 pi+ pi0 PHSP; -# -0.000490000 psi(3770) K+ SVS; #[Reconstructed PDG2011] -0.0005 psi(3770) K*+ PHSP; -0.0003 psi(3770) K0 pi+ PHSP; -0.0002 psi(3770) K+ pi0 PHSP; -0.0002 psi(3770) K+ pi- pi+ PHSP; -0.0001 psi(3770) K+ pi0 pi0 PHSP; -0.0001 psi(3770) K0 pi+ pi0 PHSP; -0.0003 psi(3770) K_1+ PHSP; -# -# b -> c (sc=) -> D Ds X Sum = 10% -# -0.010000000 anti-D0 D_s+ PHSP; #[Reconstructed PDG2011] -0.008200000 anti-D*0 D_s+ SVS; #[Reconstructed PDG2011] -0.007600000 D_s*+ anti-D0 SVS; #[Reconstructed PDG2011] -0.017100000 D_s*+ anti-D*0 SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; #[Reconstructed PDG2011] -0.0006 anti-D'_10 D_s+ SVS; -0.0012 anti-D'_10 D_s*+ SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; -0.0012 anti-D_10 D_s+ SVS; -0.0024 anti-D_10 D_s*+ SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; -0.0042 anti-D_2*0 D_s+ STS; -0.0040 anti-D_2*0 D_s*+ PHSP; -# -# -# -# -# -0.0036 D_s+ D- pi+ PHSP; -0.0018 D_s+ anti-D0 pi0 PHSP; -0.0037 D_s*+ D- pi+ PHSP; -0.0018 D_s*+ anti-D0 pi0 PHSP; -0.0033 D_s+ D- pi+ pi0 PHSP; -0.0033 D_s+ anti-D0 pi+ pi- PHSP; -0.0008 D_s+ anti-D0 pi0 pi0 PHSP; -0.0033 D_s*+ D- pi+ pi0 PHSP; -0.0033 D_s*+ anti-D0 pi+ pi- PHSP; -0.0008 D_s*+ anti-D0 pi0 pi0 PHSP; -# -# b -> c (sc=) -> D D= K X Sum = 8% -# update: Ref. [B1]: -# update October 26, 2004 -# External W-emission amplitude -0.0017 anti-D0 D+ K0 PHSP; -0.0052 anti-D0 D*+ K0 PHSP; -0.0031 anti-D*0 D+ K0 PHSP; -0.007800000 anti-D*0 D*+ K0 PHSP; #[Reconstructed PDG2011] -# External+internal W-emission amplitude -0.002100000 anti-D0 D0 K+ PHSP; #[Reconstructed PDG2011] -0.0018 anti-D*0 D0 K+ PHSP; -0.004700000 anti-D0 D*0 K+ PHSP; #[Reconstructed PDG2011] -0.005300000 anti-D*0 D*0 K+ PHSP; #[Reconstructed PDG2011] -# Internal W-emission amplitude (color suppressed modes) -0.0005 D+ D- K+ PHSP; -0.0005 D*+ D- K+ PHSP; -0.001500000 D+ D*- K+ PHSP; #[Reconstructed PDG2011] -0.0015 D*+ D*- K+ PHSP; -# -0.0025 anti-D0 D+ K*0 PHSP; -0.0025 anti-D*0 D+ K*0 PHSP; -0.0025 anti-D0 D*+ K*0 PHSP; -0.0050 anti-D*0 D*+ K*0 PHSP; -# -0.0025 anti-D0 D0 K*+ PHSP; -0.0025 anti-D*0 D0 K*+ PHSP; -0.0025 anti-D0 D*0 K*+ PHSP; -0.0050 anti-D*0 D*0 K*+ PHSP; -# -0.0005 D+ D- K*+ PHSP; -0.0005 D*+ D- K*+ PHSP; -0.0005 D+ D*- K*+ PHSP; -0.0010 D*+ D*- K*+ PHSP; -# -# B->D(*)D(*). See Ref [B1]: -# -0.000380000 D+ anti-D0 PHSP; #[Reconstructed PDG2011] -0.000390000 D*+ anti-D0 SVS; #[Reconstructed PDG2011] -0.000630000 anti-D*0 D+ SVS; #[Reconstructed PDG2011] -0.000810000 anti-D*0 D*+ SVV_HELAMP 0.56 0.0 0.96 0.0 0.47 0.0; #[Reconstructed PDG2011] - -# -# B -> D(*) X Exclusive Modes -# October 26, 2004 Lange update -0.005190000 anti-D*0 pi+ SVS; #[Reconstructed PDG2011] -0.004840000 anti-D0 pi+ PHSP; #[Reconstructed PDG2011] -0.013400000 rho+ anti-D0 SVS; #[Reconstructed PDG2011] -# D* rho HELAMP parameters taken from ICHEP 98-852. -0.009800000 anti-D*0 rho+ SVV_HELAMP 0.283 1.13 0.932 0.0 0.228 0.95; #[Reconstructed PDG2011] -# -0.0005 anti-D0 pi0 pi+ PHSP; -0.0005 anti-D*0 pi0 pi+ PHSP; -0.001070000 D- pi+ pi+ PHSP; #[Reconstructed PDG2011] -0.001350000 D*- pi+ pi+ PHSP; #[Reconstructed PDG2011] -# -# D a1 updated Ref. [B1]: -0.004000000 a_1+ anti-D0 SVS; #[Reconstructed PDG2011] -0.000200000 anti-D0 rho0 pi+ PHSP; #[Reconstructed PDG2011] -0.006800000 anti-D0 pi- pi+ pi+ PHSP; #[Reconstructed PDG2011] -# -# SVV_HELAMP from factorization, recommendation -# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/168.html: -# updated Ref. [B1]: -# October 26, 2004 Lange update -# -0.019000000 anti-D*0 a_1+ SVV_HELAMP 0.458 0.0 0.866 0.0 0.200 0.0; #[Reconstructed PDG2011] -# -0.00150 anti-D*0 rho0 pi+ PHSP; -0.000500000 anti-D*0 pi- pi+ pi+ PHSP; #[Reconstructed PDG2011] -# -0.0020 D- rho+ pi+ PHSP; -0.0020 D- pi0 pi+ pi+ PHSP; -0.0020 D*- rho+ pi+ PHSP; -0.015000000 D*- pi0 pi+ pi+ PHSP; #[Reconstructed PDG2011] -0.0005 anti-D*0 rho+ pi0 PHSP; -0.0005 anti-D*0 pi+ pi0 pi0 PHSP; -# -# B->D** pi and D** rho, recommendation -# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/151.html -# -# -0.000876 anti-D_10 pi+ SVS; -0.0005 anti-D'_10 pi+ SVS; -0.00052 anti-D_2*0 pi+ STS; -0.0007 anti-D_10 rho+ PHSP; -0.0022 anti-D'_10 rho+ PHSP; -0.0038 anti-D_2*0 rho+ PHSP; -0.00061 anti-D_0*0 pi+ PHSP; -# -# -# B->DK, recommendation -# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/151.html: -# update: Ref [B1]: -# -0.000368000 anti-D0 K+ PHSP; #[Reconstructed PDG2011] -0.000421000 anti-D*0 K+ SVS; #[Reconstructed PDG2011] -0.000530000 K*+ anti-D0 SVS; #[Reconstructed PDG2011] -0.000810000 anti-D*0 K*+ SVV_HELAMP 0.283 0.0 0.932 0.0 0.228 0.0; #[Reconstructed PDG2011] -#October 26, 2004 Lange -0.0000005 D+ pi0 PHSP; -0.0000005 D*+ pi0 SVS; -0.000011 D+ anti-K0 PHSP; -0.000006 D*+ anti-K0 SVS; -# -#October 26, 2004 - Lange -0.00075 anti-D0 D_s0*+ PHSP; -0.00090 anti-D*0 D_s0*+ SVS; -0.003100000 D_s1+ anti-D0 SVS; #[Reconstructed PDG2011] -0.012000000 anti-D*0 D_s1+ SVV_HELAMP 0.4904 0.0 0.7204 0.0 0.4904 0.0; #[Reconstructed PDG2011] -# -# Feb 2009 -# -0.000550000 anti-D0 K+ anti-K0 PHSP; #[Reconstructed PDG2011] -0.000750000 anti-D0 K+ anti-K*0 PHSP; #[Reconstructed PDG2011] -0.00150 anti-D*0 K+ anti-K*0 PHSP; -# -# Feb 2009 -# -0.002750000 anti-D0 omega pi+ PHSP; #[Reconstructed PDG2011] -0.004500000 anti-D*0 omega pi+ PHSP; #[Reconstructed PDG2011] -# -# Feb 2009 -# -0.00045 anti-D0 D'_s1+ PHSP; -0.00094 anti-D*0 D'_s1+ PHSP; -# -# Lam_c X / Sigma_c X -# -#0.04000 anti-cd_1 uu_1 PYTHIA 63; -0.032572352 anti-cd_1 uu_1 PYTHIA 63; -# -# Xi_c X 2.4% - -#0.02400 anti-cs_1 uu_1 PYTHIA 63; -0.008883411 anti-cs_1 uu_1 PYTHIA 63; -# -# -0.211960282 u anti-d anti-c u PYTHIA 23; -0.040460124 u anti-d anti-c u PYTHIA 43; -0.022208435 u anti-s anti-c u PYTHIA 43; -#lange - try to crank up the psi production.... -0.073041080 c anti-s anti-c u PYTHIA 43; -0.003948141 c anti-d anti-c u PYTHIA 43; -0.002961106 u anti-d anti-u u PYTHIA 23; -0.003948141 c anti-s anti-u u PYTHIA 23; -# JGS 11/5/02 This and similar a few lines above have been divided by two -# to solve a double-counting problem for this channel -0.002023436 u anti-u anti-d u PYTHIA 23; -0.000069112 d anti-d anti-d u PYTHIA 23; -0.000088858 s anti-s anti-d u PYTHIA 23; -0.002171534 u anti-u anti-s u PYTHIA 23; -0.001776701 d anti-d anti-s u PYTHIA 23; -0.001480600 s anti-s anti-s u PYTHIA 23; -0.004935177 anti-s u PYTHIA 91; -#### -0.001500000 anti-D*0 K+ K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.018000000 anti-D*0 pi- pi+ pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.005700000 anti-D*0 pi+ pi+ pi+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.002600000 D*- pi+ pi+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000180000 D_s- pi+ K+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000145000 D_s*- pi+ K+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000011000 D_s- K+ K+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001070000 J/psi K+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000108000 J/psi eta K+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000350000 J/psi omega K+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000011800 J/psi p+ anti-Lambda0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000025800 psi(2S) pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000020000 chi_c1 pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000018000 eta K_0*+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000009100 eta K_2*+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000024000 omega K_0*+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000021000 omega K_2*+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000010100 K*0 pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000001070 f_2 K+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000005600 K_2*0 pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000001200 K*+ K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000006100 phi K_1+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000008400 phi K_2*+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000043000 K_1+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000007900 eta K+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000003500 phi K+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000007600 K+ pi- pi+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000020000 K*0 pi+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000046000 K0 pi+ pi0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000014000 K_2*+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000980 rho+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000001620 p+ anti-p- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000005900 p+ anti-p- K+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000003600 p+ anti-p- K*+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000002500 p+ anti-Lambda0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000003000 p+ anti-Lambda0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000000 p+ anti-Lambda0 pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000004800 p+ anti-Lambda0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000002000 p+ anti-Lambda0 f_2 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000003400 Lambda0 anti-Lambda0 K+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000002200 Lambda0 anti-Lambda0 K*+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000280000 anti-Lambda_c- p+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001800000 anti-Lambda_c- p+ pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.002300000 anti-Lambda_c- p+ pi+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000035000 anti-Sigma_c0 p+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000440000 anti-Sigma_c0 p+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000440000 anti-Sigma_c0 p+ pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000280000 anti-Sigma_c-- p+ pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay - -#----------------------------------------------------------------- -# B references: -# -# [B1]: http://www.slac.stanford.edu/BFROOT/www/Physics/Tools/generators/dec-update/2002/Breco-recommendations.html -# -#----------------------------------------------------------------- - - -# -# -# B* mesons -# -Decay B*+ -1.0000 B+ gamma VSP_PWAVE; -Enddecay -Decay B*- -1.0000 B- gamma VSP_PWAVE; -Enddecay -Decay B*0 -1.0000 B0 gamma VSP_PWAVE; -Enddecay -Decay anti-B*0 -1.0000 anti-B0 gamma VSP_PWAVE; -Enddecay -Decay B_s*0 -1.0000 B_s0 gamma VSP_PWAVE; -Enddecay -Decay anti-B_s*0 -1.0000 anti-B_s0 gamma VSP_PWAVE; -Enddecay -# -# B_s decays. -# -# -# To count up the BR for this decay: -# awk ' /^0./{ sum = sum + $1 ;print sum } ' junk.dec -# -# anti-B_s decays. -# ------------------------------------------------------- -# whb&fkw 3/28/01 Taken from fkw's QQ tables. -# most dubious part are the B to baryons. -# fkw 4/28/00 made the Bs parallel to the Bd as best as I could -# ------------------------------------------------------- -# -# Lange - Nov14 - NOT adjusted for D_s->phipi change -# -Decay anti-B_s0 -# b --> c (l nu) -# Sum = 24.5% -0.0210 D_s+ e- anti-nu_e PHOTOS HQET 1.185 1.081; -0.0490 D_s*+ e- anti-nu_e PHOTOS HQET2 1.207 0.920 1.406 0.853; -0.0040 D_s1+ e- anti-nu_e PHOTOS ISGW2; -0.0040 D_s0*+ e- anti-nu_e PHOTOS ISGW2; -0.0070 D'_s1+ e- anti-nu_e PHOTOS ISGW2; -0.0070 D_s2*+ e- anti-nu_e PHOTOS ISGW2; -# -0.0210 D_s+ mu- anti-nu_mu PHOTOS HQET2 1.185 1.081; -0.0490 D_s*+ mu- anti-nu_mu PHOTOS HQET2 1.207 0.920 1.406 0.853; -0.0040 D_s1+ mu- anti-nu_mu PHOTOS ISGW2; -0.0040 D_s0*+ mu- anti-nu_mu PHOTOS ISGW2; -0.0070 D'_s1+ mu- anti-nu_mu PHOTOS ISGW2; -0.0070 D_s2*+ mu- anti-nu_mu PHOTOS ISGW2; -# -#0.0070 D_s+ tau- anti-nu_tau ISGW2; -#0.0150 D_s*+ tau- anti-nu_tau ISGW2; -#0.0013 D_s1+ tau- anti-nu_tau ISGW2; -#0.0013 D_s0*+ tau- anti-nu_tau ISGW2; -#0.0023 D'_s1+ tau- anti-nu_tau ISGW2; -#0.0023 D_s2*+ tau- anti-nu_tau ISGW2; -# fkw 5/04/01 changed the above to account for the non-res part that I -# had to take out. -0.0080 D_s+ tau- anti-nu_tau ISGW2; -0.0160 D_s*+ tau- anti-nu_tau ISGW2; -0.0018 D_s1+ tau- anti-nu_tau ISGW2; -0.0018 D_s0*+ tau- anti-nu_tau ISGW2; -0.0028 D'_s1+ tau- anti-nu_tau ISGW2; -0.0028 D_s2*+ tau- anti-nu_tau ISGW2; -# -# fkw 4/28/00 the next few are decays where a u\bar u or d\bar d is popped -# between the charm quark and the spectator. I can thus not -# just replace a D by a Ds as above when going from Bd to Bs. -# fkw 5/04/01 Had to take these out because they crash EvtGen. -# Will have to fix this eventually !!! -#0.0010 D*0 K+ tau- anti-nu_tau GOITY_ROBERTS; -#0.0010 D*+ K0 tau- anti-nu_tau GOITY_ROBERTS; -#0.0010 D0 K+ tau- anti-nu_tau GOITY_ROBERTS; -#0.0010 D+ K0 tau- anti-nu_tau GOITY_ROBERTS; -# fkw 4/28/00 B0B -> TAU D PI0 = 1/2 of TAU D PI+ because of pi0 wave function -# However, the same factor of 1/2 doesn't apply to BSB !!! -# -# fkw 3/28/01 There seem to be no semi-leptonic B to baryon decays in nature. -# I don't pretend to understand why. PDG 2000 has a limit of -# < 3.2e-3 where one might naively expect -# 10% * BR(B->/\c) = 0.1 * (6.4+-1.1)% -#0.0050 anti-nu_e e- ??? Baryon -#0.0050 anti-nu_mu mu- ??? Baryon -# -# b --> c (s c=) -# Sum = 11.44% -# 2-body = 4.72% -# more-body = 6.72% -0.010400000 D_s- D_s+ PHSP; #[Reconstructed PDG2011] -0.0099 D_s*+ D_s- SVS; -0.0099 D_s*- D_s+ SVS; -0.0197 D_s*- D_s*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -# fkw 4/28/00 more states with popped q\bar q. -# The one's here involve only popped and spectator. -# Popping stuff in the cs from the W comes further below. -# The same isospin comment applies here as above in the -# semi-leptonic decays with tau and popped q\bar q. -0.0096 D_s- D+ K0 PHSP; -0.0096 D_s- anti-D0 K+ PHSP; -0.0096 D_s*- D+ K0 PHSP; -0.0096 D_s*- D0 K+ PHSP; -# -0.0024 D_s- D+ pi0 K0 PHSP; -0.0048 D_s- D0 pi+ K0 PHSP; -0.0048 D_s- D+ pi- K+ PHSP; -0.0024 D_s- D0 pi0 K+ PHSP; -# -0.0024 D_s*- D+ pi0 K0 PHSP; -0.0048 D_s*- D0 pi+ K0 PHSP; -0.0048 D_s*- D+ pi- K+ PHSP; -0.0024 D_s*- D0 pi0 K+ PHSP; -# -# -# b --> (c ) (c ) (s ) -# Sum = 8.0% -# DDK amplitudes R.A.Briere 10/97 -# fkw 4/28/00 these are q\bar q popping that don't involve the spectator -# Bd->Bs just involves switching the c\bar d to c\bar s. -# -0.0150 D_s*+ anti-D*0 K- PHSP; -0.0150 D_s*+ D*- anti-K0 PHSP; -# -0.0050 D_s*+ anti-D0 K- PHSP; -0.0050 D_s*+ D- anti-K0 PHSP; -# -0.0050 D_s+ anti-D*0 K- PHSP; -0.0050 D_s+ D*- anti-K0 PHSP; -# -0.0020 D_s+ anti-D0 K- PHSP; -0.0020 D_s+ D- anti-K0 PHSP; -# -0.0030 D_s*+ anti-D*0 K*- PHSP; -0.0030 D_s*+ D*- anti-K*0 PHSP; -# -0.0050 D_s*+ anti-D0 K*- PHSP; -0.0050 D_s*+ D- anti-K*0 PHSP; -# -0.0025 D_s+ anti-D*0 K*- PHSP; -0.0025 D_s+ D*- anti-K*0 PHSP; -# -0.0025 D_s+ anti-D0 K*- PHSP; -0.0025 D_s+ D- anti-K*0 PHSP; -# -# -# b --> c (d c=) -# Sum = 1.0% -0.0017 D_s- D+ PHSP; -0.0017 D*+ D_s- SVS; -0.0017 D_s*- D+ SVS; -0.0017 D_s*- D*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -# fkw 4/38/00 more popping at the lower vertex -# but with upper vertex cabbibo suppressed. -0.0007 D- D+ K0 PHSP; -0.0007 D- anti-D0 K+ PHSP; -0.0007 D*- D+ K0 PHSP; -0.0007 D*- D0 K+ PHSP; -# -0.0003 D- D+ pi0 K0 PHSP; -0.0007 D- D0 pi+ K0 PHSP; -0.0003 D- D+ pi- K+ PHSP; -0.0007 D- D0 pi0 K+ PHSP; -# -0.0003 D*- D+ pi0 K0 PHSP; -0.0007 D*- D0 pi+ K0 PHSP; -0.0003 D*- D+ pi- K+ PHSP; -0.0007 D*- D0 pi0 K+ PHSP; -# -# b --> c (s u=) -# exclusive -# Sum = 0.09% -0.00015 D_s*+ K- SVS; -0.000150000 D_s+ K- PHSP; #[Reconstructed PDG2011] -0.00030 D_s*+ K*- SVV_HELAMP 0.228 0.0 0.932 0.0 0.0283 0.0; -0.00030 K*- D_s+ SVS; -# -# fkw 4/28/00 Strategy for charmonium modes: -# Take Bd BR's, replace spectator, -# assume etaprime = 2/3 ss -# and eta = 1/3 ss -# -# Note: Just for kicks I gave the c\bar c decays a small piece that is -# self tagging. See if you can find it. This is already in -# the B0 decays in cleo's version of decay.dec . -# -# B --> (c c=) (s s=) -# 2.65% -# should be: psi = 0.80% CLNS 94/1315 but isn't quite right. -0.00064 J/psi eta' SVS; -0.00032 J/psi eta SVS; -0.001300000 J/psi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.00008 J/psi K0 SVS; -0.00070 J/psi K- K+ PHSP; -0.00070 J/psi anti-K0 K0 PHSP; -0.00070 J/psi anti-K0 K+ pi- PHSP; -0.00070 J/psi anti-K0 K0 pi0 PHSP; -0.00070 J/psi K- K+ pi0 PHSP; -# LHCb PR 04/02/04 Add (cc) phi n pi(+/0) -0.00039 J/psi phi pi+ pi- PHSP; -0.00039 J/psi phi pi0 pi0 PHSP; -# LHCb PR add (cc) phi eta(') + npi see CDF QQ -0.0002 J/psi eta pi+ pi- PHSP; -0.0002 J/psi eta pi0 pi0 PHSP; -0.0004 J/psi eta' pi+ pi- PHSP; -0.0004 J/psi eta' pi0 pi0 PHSP; -0.0002 J/psi pi+ pi- PHSP; -0.0002 J/psi pi0 pi0 PHSP; -# psi' = 0.34% CLNS 94/1315 -# -0.000465 psi(2S) eta' SVS; -0.000235 psi(2S) eta SVS; -0.000680000 psi(2S) phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.0003 psi(2S) K- K+ PHSP; -0.0003 psi(2S) anti-K0 K0 PHSP; -0.0003 psi(2S) anti-K0 K+ pi- PHSP; -0.0003 psi(2S) anti-K0 K0 pi0 PHSP; -0.0003 psi(2S) K- K+ pi0 PHSP; -0.00034 psi(2S) phi pi+ pi- PHSP; -0.00034 psi(2S) phi pi0 pi0 PHSP; -0.0002 psi(2S) eta pi+ pi- PHSP; -0.0002 psi(2S) eta pi0 pi0 PHSP; -0.0004 psi(2S) eta' pi+ pi- PHSP; -0.0004 psi(2S) eta' pi0 pi0 PHSP; -0.0002 psi(2S) pi+ pi- PHSP; -0.0002 psi(2S) pi0 pi0 PHSP; -# -# chic0 = 0.05% (20% of chic2) -# Bodwin et.al. Phys Rev D46 1992 -0.00010 chi_c0 eta' PHSP; -0.00005 chi_c0 eta PHSP; -0.00020 phi chi_c0 SVS; -0.00003 chi_c0 K- K+ PHSP; -0.00003 chi_c0 anti-K0 K0 PHSP; -0.00003 chi_c0 anti-K0 K+ pi- PHSP; -0.00003 chi_c0 anti-K0 K0 pi0 PHSP; -0.00003 chi_c0 K- K+ pi0 PHSP; -# -# -# chic1 = 0.37% CLNS 94/1315 -0.0007 chi_c1 eta' SVS; -0.0003 chi_c1 eta SVS; -0.0014 chi_c1 phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00026 chi_c1 K- K+ PHSP; -0.00026 chi_c1 anti-K0 K0 PHSP; -0.00026 chi_c1 anti-K0 K+ pi- PHSP; -0.00026 chi_c1 anti-K0 K0 pi0 PHSP; -0.00026 chi_c1 K- K+ pi0 PHSP; -0.00040 chi_c1 phi pi+ pi- PHSP; -0.00040 chi_c1 phi pi0 pi0 PHSP; -0.0001 chi_c1 eta pi+ pi- PHSP; -0.0001 chi_c1 eta pi0 pi0 PHSP; -0.0002 chi_c1 eta' pi+ pi- PHSP; -0.0002 chi_c1 eta' pi0 pi0 PHSP; -# -# -# chic2 = 0.25% CLNS 94/1315 -0.000465 chi_c2 eta' STS; -0.000235 chi_c2 eta STS; -#0.0010 chi_c2 phi STV; whb: model doesn't exist! -0.00016 chi_c2 K- K+ PHSP; -0.00016 chi_c2 anti-K0 K0 PHSP; -0.00016 chi_c2 anti-K0 K+ pi- PHSP; -0.00016 chi_c2 anti-K0 K0 pi0 PHSP; -0.00016 chi_c2 K- K+ pi0 PHSP; -# -# -# etac(1s) = 0.41% Guess: CBX 97-65 -# -0.0008 eta_c eta' PHSP; -0.0004 eta_c eta PHSP; -0.0015 phi eta_c SVS; -0.00028 eta_c K- K+ PHSP; -0.00028 eta_c anti-K0 K0 PHSP; -0.00028 eta_c anti-K0 K+ pi- PHSP; -0.00028 eta_c anti-K0 K0 pi0 PHSP; -0.00028 eta_c K- K+ pi0 PHSP; -0.00040 eta_c phi pi+ pi- PHSP; -0.00040 eta_c phi pi0 pi0 PHSP; -0.0001 eta_c eta pi+ pi- PHSP; -0.0001 eta_c eta pi0 pi0 PHSP; -0.0002 eta_c eta' pi+ pi- PHSP; -0.0002 eta_c eta' pi0 pi0 PHSP; -# -# -# etac(2s) = 0.18% Guess: CBX 97-65 -0.0004 eta_c(2S) eta' PHSP; -0.0002 eta_c(2S) eta PHSP; -0.0006 phi eta_c(2S) SVS; -0.00012 eta_c(2S) K- K+ PHSP; -0.00012 eta_c(2S) anti-K0 K0 PHSP; -0.00012 eta_c(2S) anti-K0 K+ pi- PHSP; -0.00012 eta_c(2S) anti-K0 K0 pi0 PHSP; -0.00012 eta_c(2S) K- K+ pi0 PHSP; -# -# -# hc = 0.25% (100% of chic2) -# Bodwin et.al. Phys Rev D46 1992 -# -0.000465 h_c eta' SVS; -0.000235 h_c eta SVS; -0.0010 h_c phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00016 h_c K- K+ PHSP; -0.00016 h_c anti-K0 K0 PHSP; -0.00016 h_c anti-K0 K+ pi- PHSP; -0.00016 h_c anti-K0 K0 pi0 PHSP; -0.00016 h_c K- K+ pi0 PHSP; -# -# -# b --> c (d u=) -# Exclusive Channels = 6.33% -# fkw 4/28/00 I rearanged this a bit after copying it from -# B0B decay list. -# -# first come the external W-emission decays: -# -0.0008 D_s1+ pi- SVS; -0.0021 D_s1+ rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.0013 D_s2*+ pi- STS; -#0.0037 D_s2*+ rho- STV; # whb: model doesn't exist -# -0.0027 D_s*+ pi- SVS; -0.003200000 D_s+ pi- PHSP; #[Reconstructed PDG2011] -0.0073 rho- D_s+ SVS; -0.0070 D_s*+ rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -0.0085 a_1- D_s+ SVS; -0.0009 D_s+ rho0 pi- PHSP; -0.0009 D_s+ rho- pi0 PHSP; -0.008400000 D_s+ pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -0.0009 D_s+ pi0 pi- pi0 PHSP; -# -0.0122 D_s*+ a_1- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.0010 D_s*+ rho0 pi- PHSP; -0.0010 D_s*+ rho- pi0 PHSP; -0.0077 D_s*+ pi+ pi- pi- PHSP; -0.0010 D_s*+ pi0 pi- pi0 PHSP; -# -# then the color suppressed decays: -# -# fkw 4/28/00 color suppressed modes bumped up by factor 2 from isospin -# i.e. Bs doesn't have the factor 2 suppression Bd has. -0.0002 D*0 K0 SVS; -0.0002 D0 K0 PHSP; -0.0002 K*0 D0 SVS; -0.0002 D*0 K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -# PR LHCb Add p pbar mode -0.000000001 p+ anti-p- PHSP; -# fkw 4/28/00 ignore the internal W emission decays with additional -# q\bar q popping. -# -# Here come the various types of "inclusive unknown" decays: -# -# Start with B to baryons: -# fkw 3/28/01 I don't know what I'm doing here!!! This needs to be checked!!! -# Mark Whitehead 30/4/2010 Weighted PYHTIA to get total BF = 100% -0.019574780 cs_0 anti-ud_0 PYTHIA 63; -0.039129957 cs_1 anti-ud_1 PYTHIA 63; -# -# Next come external W-emission: -0.301256716 anti-u d c anti-s PYTHIA 23; -0.048443906 anti-u d c anti-s PYTHIA 65; -# Now the internal W-emission: -0.019086636 anti-u c d anti-s PYTHIA 23; -# Then some b->u external W-emission with upper vertex charm -0.003912996 anti-c s u anti-s PYTHIA 23; -# and finally some cabibbo suppressed external and internal W-emission -0.014683536 anti-u s c anti-s PYTHIA 23; -0.002152148 anti-u s c anti-s PYTHIA 65; -0.000880424 anti-u c s anti-s PYTHIA 23; -# and some c cbar d stuff as well as c cbar s -0.005391151 anti-c d c anti-s PYTHIA 43; -0.001468354 anti-c d c anti-s PYTHIA 43; -# and some miscellaneous charmless stuff -0.003521696 anti-u u d anti-s PYTHIA 23; -0.000684774 anti-d d d anti-s PYTHIA 23; -0.000880424 anti-s s d anti-s PYTHIA 23; -0.001956498 anti-u u s anti-s PYTHIA 23; -0.001565198 anti-d d s anti-s PYTHIA 23; -0.001271724 anti-s s s anti-s PYTHIA 23; -0.004891245 s anti-s PYTHIA 91; - -# fkw 5/10/00 the b->ulnu decays are loosely modelled according to B0 in EvtGen -0.000200 K+ e- anti-nu_e PHOTOS ISGW2; -0.000300 K*+ e- anti-nu_e PHOTOS ISGW2; -0.000300 K_1+ e- anti-nu_e PHOTOS ISGW2; -0.000200 K'_1+ e- anti-nu_e PHOTOS ISGW2; -# -# -0.000200 K+ mu- anti-nu_mu PHOTOS ISGW2; -0.000300 K*+ mu- anti-nu_mu PHOTOS ISGW2; -0.000300 K_1+ mu- anti-nu_mu PHOTOS ISGW2; -0.000200 K'_1+ mu- anti-nu_mu PHOTOS ISGW2; -# ------------- -# 2e-3 for charmless semi-leptonic - -#*********************************************************** -# -# fkw 5/10/00 -# -# ideas behind these (largely) made up Br's for charmless -# hadronic B decays: -# (1) any PP and PV modes that are used or calculated -# in globfit code by Hou,Smith,Wuerthwein are taken from -# the latest fit i.e. May2000 -# (2) anything else is from Ali,Kramer,Lue -# -# None of this should be taken too serious! -# -#*********************************************************** -# Mark Whitehead 30/4/2010 Updated K+K- -# PR LHCb 04/07/04 update BR -0.000033000 K- K+ PHSP; #[Reconstructed PDG2011] -# PR LHCb 04/07/04 split into KS/KL -0.0000000 anti-K0 K0 PHSP; -0.0000100 K_S0 K_S0 PHSP; -0.0000100 K_L0 K_L0 PHSP; -# PR LHCb 04/07/04 update BR -0.000004900 pi- K+ PHSP; #[Reconstructed PDG2011] -0.0000002 pi0 K0 PHSP; -# PR LHCb 04/07/04 add Bs->pi+ pi- -0.00000001 pi+ pi- PHSP; -# -0.0000012 omega eta SVS; -0.0000025 omega eta' SVS; -0.0000013 phi eta SVS; -0.0000025 phi eta' SVS; -0.00000008 omega anti-K0 SVS; -0.000000002 phi anti-K0 SVS; -# -#next is just twice PI- RHO0 -0.0000250 K*+ pi- SVS; -0.0000120 rho- K+ SVS; -0.00000002 rho0 K0 SVS; -0.00000002 K*0 pi0 SVS; -# -0.0000046 K*- K+ SVS; -# PR LHCb 04/07/04 Split into KS/KL -0.0000000 anti-K*0 K0 SVS; -0.0000020 anti-K*0 K_S0 SVS; -0.0000020 anti-K*0 K_L0 SVS; -0.0000082 K*+ K- SVS; -# PR LHCb 04/07/04 Split into KS/KL -0.0000000 K*0 anti-K0 SVS; -0.0000020 K*0 K_S0 SVS; -0.0000020 K*0 K_L0 SVS; -# -0.0000580 eta' eta' PHSP; -0.0000250 eta' eta PHSP; -0.0000040 eta eta PHSP; -#### Already included above 0.0000200 phi eta SVS; -#### Already included above 0.0000100 phi eta' SVS; -# -#next comes stuff from Ali,Kramer,Lue PRD58, 094009 FOR NC=3 -0.00000007 K0 eta' PHSP; -0.00000023 K0 eta PHSP; -0.000000021 K*0 eta' SVS; -0.00000007 K*0 eta SVS; -# -#next comes stuff from Ali,Kramer,Lue PRD58, 094009 FOR NC=3 -# for vector-vector final states -0.000020 rho- K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.0000008 rho0 K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.000000005 omega K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -0.000006 K*- K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# PR LHCb 04/07/04 Update BR -0.000004 anti-K*0 K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.000014000 phi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000000004 phi K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -# decays that go via b->d penguins -#### Already included above 0.0000004 phi K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# PR LHCb : add Bs -> mu+ mu- -0.0000000035 mu- mu+ PHSP; -#PR LHCb 04/08/2004 add Bs -> tau+ tau- (BR not to take too seriously) -0.0000000020 tau- tau+ PHSP; -# PR LHCb 04/05/2004 : add Bs -> phi gamma -0.000057000 phi gamma SVP_HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -# PR LHCb 04/08/2004 : add Bs -> phi mu mu, phi e e -0.0000023 phi e- e+ BTOSLLALI; -0.0000023 phi mu- mu+ BTOSLLALI; -# PR LHCb 16 apr 2004 : add Bs -> gamma gamma -0.0000005 gamma gamma PHSP; -#-------------- -# 257.122e-6 for all the charmless hadronic -# -0.000150000 D_s- K+ PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -# B_s decays. -# ------------------------------------------------------- -# whb&fkw 3/28/01 Taken from fkw's QQ tables. -# most dubious part are the B to baryons. -# fkw 4/28/00 made the Bs parallel to the Bd as best as I could -# ------------------------------------------------------- -Decay B_s0 -0.0210 D_s- e+ nu_e PHOTOS HQET2 1.185 1.081; -0.0490 D_s*- e+ nu_e PHOTOS HQET2 1.207 0.920 1.406 0.853; -0.0040 D_s1- e+ nu_e PHOTOS ISGW2; -0.0040 D_s0*- e+ nu_e PHOTOS ISGW2; -0.0070 D'_s1- e+ nu_e PHOTOS ISGW2; -0.0070 D_s2*- e+ nu_e PHOTOS ISGW2; -0.0210 D_s- mu+ nu_mu PHOTOS HQET2 1.185 1.081; -0.0490 D_s*- mu+ nu_mu PHOTOS HQET2 1.207 0.920 1.406 0.853; -0.0040 D_s1- mu+ nu_mu PHOTOS ISGW2; -0.0040 D_s0*- mu+ nu_mu PHOTOS ISGW2; -0.0070 D'_s1- mu+ nu_mu PHOTOS ISGW2; -0.0070 D_s2*- mu+ nu_mu PHOTOS ISGW2; -#fkw 5/04/01 changed these to account for taking out non-res -#0.0070 D_s- tau+ nu_tau ISGW2; -#0.0150 D_s*- tau+ nu_tau ISGW2; -#0.0013 D_s1- tau+ nu_tau ISGW2; -#0.0013 D_s0*- tau+ nu_tau ISGW2; -#0.0023 D'_s1- tau+ nu_tau ISGW2; -#0.0023 D_s2*- tau+ nu_tau ISGW2; -0.0080 D_s- tau+ nu_tau ISGW2; -0.0160 D_s*- tau+ nu_tau ISGW2; -0.0018 D_s1- tau+ nu_tau ISGW2; -0.0018 D_s0*- tau+ nu_tau ISGW2; -0.0028 D'_s1- tau+ nu_tau ISGW2; -0.0028 D_s2*- tau+ nu_tau ISGW2; -# -# fkw 4/28/00 the next few are decays where a u\bar u or d\bar d is popped -# between the charm quark and the spectator. I can thus not -# just replace a D by a Ds as above when going from Bd to Bs. -# -# fkw 5/04/01 Had to take non-res out because it crashed EvtGen. -#0.0010 anti-D*0 K- tau+ nu_tau GOITY_ROBERTS; -#0.0010 D*- anti-K0 tau+ nu_tau GOITY_ROBERTS; -#0.0010 anti-D0 K- tau+ nu_tau GOITY_ROBERTS; -#0.0010 D- anti-K0 tau+ nu_tau GOITY_ROBERTS; -# fkw 4/28/00 B0 -> TAU D PI0 = 1/2 of TAU D PI- because of pi0 wave function -# However, the same factor of 1/2 doesn't apply to BS0 !!! -# fkw 3/28/01 There seem to be no semi-leptonic B to baryon decays in nature. -# I don't pretend to understand why. PDG 2000 has a limit of -# < 3.2e-3 where one might naively expect -# 10% * BR(B->/\c) = 0.1 * (6.4+-1.1)% -#0.0050 nu_e e+ B-Baryon -#0.0050 nu_mu mu+ B-Baryon -# -# b --> c (s c=) -# Sum = 11.44% -# 2-body = 4.72% -# more-body = 6.72% -0.010400000 D_s- D_s+ PHSP; #[Reconstructed PDG2011] -0.0099 D_s*+ D_s- SVS; -0.0099 D_s*- D_s+ SVS; -0.0197 D_s*- D_s*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -# fkw 4/28/00 more states with popped q\bar q. -# The one's here involve only popped and spectator. -# Popping stuff in the cs from the W comes further below. -# The same isospin comment applies here as above in the -# semi-leptonic decays with tau and popped q\bar q. -0.0096 D_s+ D- anti-K0 PHSP; -0.0096 D_s+ D0 K- PHSP; -0.0096 D_s*+ D- anti-K0 PHSP; -0.0096 D_s*+ anti-D0 K- PHSP; -# -0.0024 D_s+ D- pi0 anti-K0 PHSP; -0.0048 D_s+ anti-D0 pi- anti-K0 PHSP; -0.0048 D_s+ D- pi+ K- PHSP; -0.0024 D_s+ anti-D0 pi0 K- PHSP; -# -0.0024 D_s*+ D- pi0 anti-K0 PHSP; -0.0048 D_s*+ anti-D0 pi- anti-K0 PHSP; -0.0048 D_s*+ D- pi+ K- PHSP; -0.0024 D_s*+ anti-D0 pi0 K- PHSP; -# -# -# b --> (c ) (c ) (s ) -# Sum = 8.0% -# DDK amplitudes R.A.Briere 10/97 -# fkw 4/28/00 these are q\bar q popping that don't involve the spectator -# Bd->Bs just involves switching the c\bar d to c\bar s. -# -0.0150 D_s*- D*0 K+ PHSP; -0.0150 D_s*- D*+ K0 PHSP; -0.0050 D_s*- D0 K+ PHSP; -0.0050 D_s*- D+ K0 PHSP; -0.0050 D_s- D*0 K+ PHSP; -0.0050 D_s- D*+ K0 PHSP; -0.0020 D_s- D0 K+ PHSP; -0.0020 D_s- D+ K0 PHSP; -0.0030 D_s*- D*0 K*+ PHSP; -0.0030 D_s*- D*+ K*0 PHSP; -0.0050 D_s*- D0 K*+ PHSP; -0.0050 D_s*- D+ K*0 PHSP; -0.0025 D_s- D*0 K*+ PHSP; -0.0025 D_s- D*+ K*0 PHSP; -0.0025 D_s- D0 K*+ PHSP; -0.0025 D_s- D+ K*0 PHSP; -# -# -# b --> c (d c=) -# Sum = 1.36% -0.0017 D_s+ D- PHSP; -0.0017 D*- D_s+ SVS; -0.0017 D_s*+ D- SVS; -0.0017 D_s*+ D*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -# fkw 4/38/00 more popping at the lower vertex -# but with upper vertex cabbibo suppressed. -0.0007 D+ D- anti-K0 PHSP; -0.0007 D+ D0 K- PHSP; -0.0007 D*+ D- anti-K0 PHSP; -0.0007 D*+ anti-D0 K- PHSP; -# -0.0003 D+ D- pi0 anti-K0 PHSP; -0.0007 D+ anti-D0 pi- anti-K0 PHSP; -0.0003 D+ D- pi+ K- PHSP; -0.0007 D+ anti-D0 pi0 K- PHSP; -# -0.0003 D*+ D- pi0 anti-K0 PHSP; -0.0007 D*+ anti-D0 pi- anti-K0 PHSP; -0.0003 D*+ D- pi+ K- PHSP; -0.0007 D*+ anti-D0 pi0 K- PHSP; -# -# b --> c (u s=) -# exclusive -# Sum = 0.9% -0.00015 D_s*- K+ SVS; -0.000150000 D_s- K+ PHSP; #[Reconstructed PDG2011] -0.00030 D_s*- K*+ SVV_HELAMP 0.0283 0.0 0.932 0.0 0.228 0.0; -0.00030 K*+ D_s- SVS; -# -# fkw 4/28/00 Strategy for charmonium modes: -# Take Bd BR's, replace spectator, -# assume etaprime = 2/3 ss -# and eta = 1/3 ss -# -# Note: Just for kicks I gave the c\bar c decays a small piece that is -# self tagging. See if you can find it. This is already in -# the B0 decays in cleo's version of decay.dec . -# -# B --> (c c=) (s s=) -# 2.65% -# should be: psi = 0.80% CLNS 94/1315 but isn't quite right. -0.00064 J/psi eta' SVS; -0.00032 J/psi eta SVS; -0.001300000 J/psi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.00008 J/psi K0 SVS; -0.00070 J/psi K- K+ PHSP; -0.00070 J/psi anti-K0 K0 PHSP; -0.00070 J/psi K0 K- pi+ PHSP; -0.00070 J/psi anti-K0 K0 pi0 PHSP; -0.00070 J/psi K- K+ pi0 PHSP; -# LHCb PR 04/02/04 Add (cc) phi n pi(+/0) -0.00039 J/psi phi pi+ pi- PHSP; -0.00039 J/psi phi pi0 pi0 PHSP; -# LHCb PR Add (cc) phi eta(') + npi like in CDF QQ -0.0002 J/psi eta pi+ pi- PHSP; -0.0002 J/psi eta pi0 pi0 PHSP; -0.0004 J/psi eta' pi+ pi- PHSP; -0.0004 J/psi eta' pi0 pi0 PHSP; -0.0002 J/psi pi+ pi- PHSP; -0.0002 J/psi pi0 pi0 PHSP; -# psi' = 0.34% CLNS 94/1315 -0.000465 psi(2S) eta' SVS; -0.000235 psi(2S) eta SVS; -0.000680000 psi(2S) phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.0003 psi(2S) K- K+ PHSP; -0.0003 psi(2S) anti-K0 K0 PHSP; -0.0003 psi(2S) K0 K- pi+ PHSP; -0.0003 psi(2S) anti-K0 K0 pi0 PHSP; -0.0003 psi(2S) K- K+ pi0 PHSP; -0.00034 psi(2S) phi pi+ pi- PHSP; -0.00034 psi(2S) phi pi0 pi0 PHSP; -0.0002 psi(2S) eta pi+ pi- PHSP; -0.0002 psi(2S) eta pi0 pi0 PHSP; -0.0004 psi(2S) eta' pi+ pi- PHSP; -0.0004 psi(2S) eta' pi0 pi0 PHSP; -0.0002 psi(2S) pi+ pi- PHSP; -0.0002 psi(2S) pi0 pi0 PHSP; -# -# chic0 = 0.05% (20% of chic2) -# Bodwin et.al. Phys Rev D46 1992 -0.00010 chi_c0 eta' PHSP; -0.00005 chi_c0 eta PHSP; -0.00020 phi chi_c0 SVS; -0.00003 chi_c0 K- K+ PHSP; -0.00003 chi_c0 anti-K0 K0 PHSP; -0.00003 chi_c0 K0 K- pi+ PHSP; -0.00003 chi_c0 anti-K0 K0 pi0 PHSP; -0.00003 chi_c0 K- K+ pi0 PHSP; -# -# -# chic1 = 0.37% CLNS 94/1315 -0.0007 chi_c1 eta' SVS; -0.0003 chi_c1 eta SVS; -0.0014 chi_c1 phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00026 chi_c1 K- K+ PHSP; -0.00026 chi_c1 anti-K0 K0 PHSP; -0.00026 chi_c1 K0 K- pi+ PHSP; -0.00026 chi_c1 anti-K0 K0 pi0 PHSP; -0.00026 chi_c1 K- K+ pi0 PHSP; -0.00040 chi_c1 phi pi+ pi- PHSP; -0.00040 chi_c1 phi pi0 pi0 PHSP; -0.0001 chi_c1 eta pi+ pi- PHSP; -0.0001 chi_c1 eta pi0 pi0 PHSP; -0.0002 chi_c1 eta' pi+ pi- PHSP; -0.0002 chi_c1 eta' pi0 pi0 PHSP; -# -# -# chic2 = 0.25% CLNS 94/1315 -0.000465 chi_c2 eta' STS; -0.000235 chi_c2 eta STS; -#0.0010 chi_c2 phi STV; whb: doesn't exist -0.00016 chi_c2 K- K+ PHSP; -0.00016 chi_c2 anti-K0 K0 PHSP; -0.00016 chi_c2 K0 K- pi+ PHSP; -0.00016 chi_c2 anti-K0 K0 pi0 PHSP; -0.00016 chi_c2 K- K+ pi0 PHSP; -# -# -# etac(1s) = 0.41% Guess: CBX 97-65 -0.0008 eta_c eta' PHSP; -0.0004 eta_c eta PHSP; -0.0015 phi eta_c SVS; -0.00028 eta_c K- K+ PHSP; -0.00028 eta_c K0 anti-K0 PHSP; -0.00028 eta_c K0 K- pi+ PHSP; -0.00028 eta_c K0 anti-K0 pi0 PHSP; -0.00028 eta_c K- K+ pi0 PHSP; -0.00040 eta_c phi pi+ pi- PHSP; -0.00040 eta_c phi pi0 pi0 PHSP; -0.0001 eta_c eta pi+ pi- PHSP; -0.0001 eta_c eta pi0 pi0 PHSP; -0.0002 eta_c eta' pi+ pi- PHSP; -0.0002 eta_c eta' pi0 pi0 PHSP; -# -# -# etac(2s) = 0.18% Guess: CBX 97-65 -0.0004 eta_c(2S) eta' PHSP; -0.0002 eta_c(2S) eta PHSP; -0.0006 phi eta_c(2S) SVS; -0.00012 eta_c(2S) K- K+ PHSP; -0.00012 eta_c(2S) anti-K0 K0 PHSP; -0.00012 eta_c(2S) K0 K- pi+ PHSP; -0.00012 eta_c(2S) anti-K0 K0 pi0 PHSP; -0.00012 eta_c(2S) K- K+ pi0 PHSP; -# -# -# hc = 0.25% (100% of chic2) -# Bodwin et.al. Phys Rev D46 1992 -0.000465 h_c eta' SVS; -0.000235 h_c eta SVS; -0.0010 h_c phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00016 h_c K- K+ PHSP; -0.00016 h_c anti-K0 K0 PHSP; -0.00016 h_c K0 K- pi+ PHSP; -0.00016 h_c anti-K0 K0 pi0 PHSP; -0.00016 h_c K- K+ pi0 PHSP; -# -# -# b --> c (d u=) -# Exclusive Channels = 6.33% -# fkw 4/28/00 I rearanged this a bit after copying it from -# B0B decay list. -# -# first come the external W-emission decays: -# -0.0008 D_s1- pi+ SVS; -0.0021 D_s1- rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.0013 D_s2*- pi+ STS; -#0.0037 D_s2*- rho+ STV; #whb: STV does not exist yet -# -0.0027 D_s*- pi+ SVS; -0.003200000 D_s- pi+ PHSP; #[Reconstructed PDG2011] -0.0073 rho+ D_s- SVS; -0.0070 D_s*- rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -0.0085 a_1+ D_s- SVS; -0.0009 D_s- rho0 pi+ PHSP; -0.0009 D_s- rho+ pi0 PHSP; -0.008400000 D_s- pi- pi+ pi+ PHSP; #[Reconstructed PDG2011] -0.0009 D_s- pi0 pi+ pi0 PHSP; -# -0.0122 D_s*- a_1+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.0010 D_s*- rho0 pi+ PHSP; -0.0010 D_s*- rho+ pi0 PHSP; -0.0077 D_s*- pi- pi+ pi+ PHSP; -0.0010 D_s*- pi0 pi+ pi0 PHSP; -# -# then the color suppressed decays: -# -# fkw 4/28/00 color suppressed modes bumped up by factor 2 from isospin -# i.e. Bs doesn't have the factor 2 suppression Bd has. -0.0002 anti-D*0 anti-K0 SVS; -0.0002 anti-D0 anti-K0 PHSP; -0.0002 anti-K*0 anti-D0 SVS; -0.0002 anti-D*0 anti-K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -# PR LHCb : add p ppbar mode -0.000000001 p+ anti-p- PHSP; -# fkw 4/28/00 ignore the internal W emission decays with additional -# q\bar q popping. -# -# Here come the various types of "inclusive unknown" decays: -# -# Start with B to baryons: -# fkw 3/28/01 I don't know what I'm doing here!!! This needs to be checked!!! -# Mark Whitehead 30/4/2010 Weight PYTHIA to get Total BF=100% -0.019574780 anti-cs_0 ud_0 PYTHIA 63; -0.039129957 anti-cs_1 ud_1 PYTHIA 63; -# -# Next come external W-emission: -0.301256716 u anti-d anti-c s PYTHIA 23; -0.048443906 u anti-d anti-c s PYTHIA 65; -# Now the internal W-emission: -0.019086636 u anti-c anti-d s PYTHIA 23; -# Then some b->u external W-emission with upper vertex charm -0.003912996 c anti-s anti-u s PYTHIA 23; -# and finally some cabibbo suppressed external and internal W-emission -0.014683536 u anti-s anti-c s PYTHIA 23; -0.002152148 u anti-s anti-c s PYTHIA 65; -0.000880424 u anti-c anti-s s PYTHIA 23; -# and some c cbar d stuff as well as c cbar s -0.005391151 c anti-d anti-c s PYTHIA 43; -0.001468354 c anti-d anti-c s PYTHIA 43; -# and some miscellaneous charmless stuff -0.003521696 u anti-u anti-d s PYTHIA 23; -0.000684774 d anti-d anti-d s PYTHIA 23; -0.000880424 s anti-s anti-d s PYTHIA 23; -0.001956498 u anti-u anti-s s PYTHIA 23; -0.001565198 d anti-d anti-s s PYTHIA 23; -0.001271724 s anti-s anti-s s PYTHIA 23; -0.004891245 anti-s s PYTHIA 91; - -# fkw 5/10/00 the b->ulnu decays are loosely modelled according to B0 in EvtGen -0.000200 K- e+ nu_e PHOTOS ISGW2; -0.000300 K*- e+ nu_e PHOTOS ISGW2; -0.000300 K_1- e+ nu_e PHOTOS ISGW2; -0.000200 K'_1- e+ nu_e PHOTOS ISGW2; -# -# -0.000200 K- mu+ nu_mu PHOTOS ISGW2; -0.000300 K*- mu+ nu_mu PHOTOS ISGW2; -0.000300 K_1- mu+ nu_mu PHOTOS ISGW2; -0.000200 K'_1- mu+ nu_mu PHOTOS ISGW2; -# ------------- -# 2e-3 for charmless semi-leptonic - -#*********************************************************** -# -# fkw 5/10/00 -# -# ideas behind these (largely) made up Br's for charmless -# hadronic B decays: -# (1) any PP and PV modes that are used or calculated -# in globfit code by Hou,Smith,Wuerthwein are taken from -# the latest fit i.e. May2000 -# (2) anything else is from Ali,Kramer,Lue -# -# None of this should be taken too serious! -# -#*********************************************************** -# Mark Whitehead 30/4/2010 Update K+K- -# PR LHCb update Br Bs -> K- K+ -0.000033000 K- K+ PHSP; #[Reconstructed PDG2011] -# PR LHCb 4/07/04 Split in KS/KL -0.0000000 anti-K0 K0 PHSP; -0.0000100 K_S0 K_S0 PHSP; -0.0000100 K_L0 K_L0 PHSP; -# -0.000004900 pi+ K- PHSP; #[Reconstructed PDG2011] -0.0000002 pi0 anti-K0 PHSP; -# PR LHCb 4/07/04 add Bs -> pi+ pi- -0.00000001 pi+ pi- PHSP; -# -0.0000012 omega eta SVS; -0.0000025 omega eta' SVS; -0.0000013 phi eta SVS; -0.0000025 phi eta' SVS; -0.00000008 omega K0 SVS; -0.000000002 phi K0 SVS; -# -0.0000250 K*- pi+ SVS; -0.0000120 rho+ K- SVS; -0.00000002 rho0 K0 SVS; -0.00000002 anti-K*0 pi0 SVS; -# -0.0000046 K*+ K- SVS; -# PR LHCb 4/07/04 split in KS/KL -0.0000000 K*0 anti-K0 SVS; -0.0000020 K*0 K_S0 SVS; -0.0000020 K*0 K_L0 SVS; -0.0000082 K*- K+ SVS; -# PR LHCb 4/07/04 split in KS/KL -0.0000000 anti-K*0 K0 SVS; -0.0000020 anti-K*0 K_S0 SVS; -0.0000020 anti-K*0 K_L0 SVS; -# -0.0000580 eta' eta' PHSP; -0.0000250 eta' eta PHSP; -0.0000040 eta eta PHSP; -### Already included above 0.0000200 phi eta SVS; -### Already included above 0.0000100 phi eta' SVS; -# -#next comes stuff from Ali,Kramer,Lue PRD58, 094009 FOR NC=3 -0.00000007 anti-K0 eta' PHSP; -0.00000023 anti-K0 eta PHSP; -0.000000021 anti-K*0 eta' SVS; -0.00000007 anti-K*0 eta SVS; -# -#next comes stuff from Ali,Kramer,Lue PRD58, 094009 FOR NC=3 -# for vector-vector final states -0.000020 rho+ K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.0000008 rho0 anti-K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.000000005 omega anti-K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -0.000006 K*- K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# PR LHCb Update BR -0.000004 anti-K*0 K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.000014000 phi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000000004 phi anti-K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -# decays that go via b->d penguins -#### Already included above 0.0000004 phi anti-K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -#PR LHCb add Bs -> mu+ mu- -0.0000000035 mu+ mu- PHSP; -#PR LHCb 04/08/2004 add Bs -> tau+ tau- (BR not to take too seriously) -0.0000000020 tau+ tau- PHSP; -# PR LHCb 04/05/2004 : add Bs -> phi gamma -0.000057000 phi gamma SVP_HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -# PR LHCb 04/08/2004 : add Bs -> phi mu mu, phi e e -0.0000023 phi e+ e- BTOSLLALI; -0.0000023 phi mu+ mu- BTOSLLALI; -# PR LHCb 16 Apr 2004 : add Bs -> gamma gamma -0.0000005 gamma gamma PHSP; -#-------------- -# 257.122e-6 for all the charmless hadronic -# -0.000150000 D_s+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay - -# whb: QQ B_c included- Near end of File -#Decay B_c- -#CHANNEL 0 0.0700 TAU- NUTB -#CHANNEL 1 0.1100 NUEB E- *CC* -#CHANNEL 1 0.1100 NUMB MU- *CC* -#CHANNEL 1 0.0300 NUTB TAU- *CC* -#CHANNEL 0 0.3400 *DU* *CC* -#CHANNEL 0 0.0700 *SC* *CC* -#CHANNEL 0 0.2700 *SC* -#0.0700 tau- anti-nu_tau PHSP; -#0.1100 anti-nu_e e- *CC* Simpleleptonic; -#0.1100 anti-nu_mu mu- *CC* Simple leptonic; -#0.0300 anti-nu_tau tau- *CC* Simple leptonic; -#0.3400 *DU* *CC* PHSP; -#0.0700 *SC* *CC* PHSP; -#0.2700 *SC* PHSP; -#Enddecay -# -#Decay B_c+ -#CHANNEL 0 0.0700 TAU+ NUT -#CHANNEL 1 0.1100 NUE E+ *CC* -#CHANNEL 1 0.1100 NUM MU+ *CC* -#CHANNEL 1 0.0300 NUT TAU+ *CC* -#CHANNEL 0 0.3400 *UD* *CC* -#CHANNEL 0 0.0700 *CS* *CC* -#CHANNEL 0 0.2700 *CS* -#0.0700 tau+ nu_tau PHSP; -#0.1100 nu_e E+ *CC* Simple leptonic; -#0.1100 nu_mu mu+ *CC* Simple leptonic; -#0.0300 nu_tau tau+ *CC* Simple leptonic; -#0.3400 *UD* *CC* PHSP; -#0.0700 *CS* *CC* PHSP; -#0.2700 *CS* PHSP; -#Enddecay - -# -# Updated to PDG 2008 -# -Decay tau- -0.154002925 e- anti-nu_e nu_tau PHOTOS TAULNUNU; #[Reconstructed PDG2011] -0.170000000 mu- anti-nu_mu nu_tau PHOTOS TAULNUNU; #[Reconstructed PDG2011] -0.109100000 pi- nu_tau TAUSCALARNU; #[Reconstructed PDG2011] -0.006960000 K- nu_tau TAUSCALARNU; #[Reconstructed PDG2011] -0.255100000 pi- pi0 nu_tau TAUHADNU -0.108 0.775 0.149 1.364 0.400; #[Reconstructed PDG2011] -0.001124109 nu_tau gamma pi- pi0 PYTHIA 21; -0.079301562 pi0 pi0 pi- nu_tau TAUHADNU -0.108 0.775 0.149 1.364 0.400 1.23 0.4; #[Reconstructed PDG2011] -0.000385656 nu_tau K- pi0 pi0 PYTHIA 21; -0.008508640 nu_tau pi- pi0 pi0 pi0 PYTHIA 21; -0.000864699 nu_tau pi- pi0 pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -#0.2515 rho- nu_tau TAUVECTORNU; -#0.1790 a_1- nu_tau TAUVECTORNU; -# Modes with K0s -# -0.000319939 nu_tau pi- anti-K0 PYTHIA 21; -0.001590000 nu_tau K- K0 PYTHIA 21; -0.001700000 nu_tau K0 pi- anti-K0 PYTHIA 21; -0.001590000 nu_tau K- pi0 K0 PYTHIA 21; -0.004000000 nu_tau pi- anti-K0 pi0 PYTHIA 21; -# 3 Charged Particles -# -0.093200000 pi- pi- pi+ nu_tau TAUHADNU -0.108 0.775 0.149 1.364 0.400 1.23 0.4; #[Reconstructed PDG2011] -0.046100000 nu_tau pi- pi+ pi- pi0 PYTHIA 21; -0.000501526 nu_tau pi- pi- pi+ pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.000155646 nu_tau pi- pi- pi+ pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.003420000 nu_tau K- pi+ pi- PYTHIA 21; -0.001360000 nu_tau K- pi+ pi- pi0 PYTHIA 21; -0.001400000 nu_tau K- pi- K+ PYTHIA 21; -0.000015800 nu_tau K- K+ K- PYTHIA 21; -# 5 Charged Particles -# -0.000700406 nu_tau pi- pi- pi- pi+ pi+ PHSP; #[Reconstructed PDG2011] -0.000129705 nu_tau pi- pi- pi- pi+ pi+ pi0 PHSP; #[Reconstructed PDG2011] -# Misc other modes -# -0.012000000 K*- nu_tau TAUVECTORNU; #[Reconstructed PDG2011] -0.001390000 nu_tau eta pi- pi0 PYTHIA 21; -0.003199387 nu_tau pi- omega pi0 PYTHIA 21; -0.000410000 nu_tau K- omega PYTHIA 21; -0.002200000 anti-K*0 pi- nu_tau PHSP; #[Reconstructed PDG2011] -0.002100000 K*0 K- nu_tau PHSP; #[Reconstructed PDG2011] -0.000034000 phi pi- nu_tau PHSP; #[Reconstructed PDG2011] -0.000037000 phi K- nu_tau PHSP; #[Reconstructed PDG2011] -0.003600000 mu- anti-nu_mu nu_tau gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.017500000 e- anti-nu_e nu_tau gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.004290000 K- pi0 nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.002200000 anti-K0 rho- nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000260000 pi- anti-K0 pi0 pi0 nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000310000 pi- K0 anti-K0 pi0 nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000061000 K- K+ pi- pi0 nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000028000 e- e- e+ anti-nu_e nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.004700000 K_1- nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001700000 K'_1- nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001500000 K'*- nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000150000 eta pi- pi0 pi0 nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000161000 eta K- nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000138000 eta K*- nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000048000 eta K- pi0 nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000093000 eta anti-K0 pi- nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000360000 f_1 pi- nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -CDecay tau+ -# -# Vector Mesons Updated PDG 2008 -# -Decay D*+ -0.6770 D0 pi+ VSS; -0.3070 D+ pi0 VSS; -0.0160 D+ gamma VSP_PWAVE; -Enddecay -Decay D*- -0.6770 anti-D0 pi- VSS; -0.3070 D- pi0 VSS; -0.0160 D- gamma VSP_PWAVE; -Enddecay -Decay D*0 -0.619000000 D0 pi0 VSS; #[Reconstructed PDG2011] -0.381000000 D0 gamma VSP_PWAVE; #[Reconstructed PDG2011] -Enddecay -Decay anti-D*0 -0.6190 anti-D0 pi0 VSS; -0.3810 anti-D0 gamma VSP_PWAVE; -Enddecay -# -Decay D_s*+ -0.942000000 D_s+ gamma VSP_PWAVE; #[Reconstructed PDG2011] -0.058000000 D_s+ pi0 VSS; #[Reconstructed PDG2011] -Enddecay -Decay D_s*- -0.942000000 D_s- gamma VSP_PWAVE; #[Reconstructed PDG2011] -0.058000000 D_s- pi0 VSS; #[Reconstructed PDG2011] -Enddecay -# -# -# D+ Meson -# -Decay D+ -0.055200000 anti-K*0 e+ nu_e PHOTOS ISGW2; # PDG2014 -0.088300000 anti-K0 e+ nu_e PHOTOS ISGW2; # PDG2014 -0.002773020 anti-K_10 e+ nu_e PHOTOS ISGW2; # Keep same as in 2010 version -0.002927076 anti-K_2*0 e+ nu_e PHOTOS ISGW2; # Keep same as in 2010 version -0.004050000 pi0 e+ nu_e PHOTOS ISGW2; # PDG2014 -0.001140000 eta e+ nu_e PHOTOS ISGW2; # PDG2014 -0.000220000 eta' e+ nu_e PHOTOS ISGW2; # PDG2014 -0.002180000 rho0 e+ nu_e PHOTOS ISGW2; # PDG2014 -0.001820000 omega e+ nu_e PHOTOS ISGW2; # PDG2014 -0.003321725 K- pi+ e+ nu_e PHOTOS PHSP; # PDG2014 (subtracted K*)+tiny bit to have sum=1 -0.001200122 anti-K0 pi0 e+ nu_e PHOTOS PHSP; # Keep same as in 2010 version+tiny bit to have sum=1 -# -0.052800000 anti-K*0 mu+ nu_mu PHOTOS ISGW2; # PDG2014 -0.092000000 anti-K0 mu+ nu_mu PHOTOS ISGW2; # PDG2014 -0.002773020 anti-K_10 mu+ nu_mu PHOTOS ISGW2; # Keep same as in 2010 version -0.002927076 anti-K_2*0 mu+ nu_mu PHOTOS ISGW2; # Keep same as in 2010 version -0.004050000 pi0 mu+ nu_mu PHOTOS ISGW2; # Same as electron -0.001140000 eta mu+ nu_mu PHOTOS ISGW2; # Same as electron -0.002200000 eta' mu+ nu_mu PHOTOS ISGW2; # Same as electron -0.002400000 rho0 mu+ nu_mu PHOTOS ISGW2; # PDG2014 -0.001820000 omega mu+ nu_mu PHOTOS ISGW2; # Same as electron -0.002921725 K- pi+ mu+ nu_mu PHOTOS PHSP; # PDG2014 (subtracted K*)+tiny bit to have sum=1 -0.001200122 anti-K0 pi0 mu+ nu_mu PHOTOS PHSP; # Keep same as in 2010 version+tiny bit to have sum=1 -# -# -0.000382000 mu+ nu_mu PHOTOS SLN; #[Reconstructed PDG2011] -0.000770283 tau+ nu_tau SLN; #[Reconstructed PDG2011] -# -0.014900000 K_S0 pi+ PHSP; #[Reconstructed PDG2011] -0.014600000 K_L0 pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 pi+ PHSP; #[Reconstructed PDG2011] -# -0.025950843 a_1+ K_S0 SVS; #[Reconstructed PDG2011] -0.025950843 a_1+ K_L0 SVS; #[Reconstructed PDG2011] -0.000000000 a_1+ anti-K0 SVS; #[Reconstructed PDG2011] -# -0.027090862 anti-K'_10 pi+ SVS; #[Reconstructed PDG2011] -#0.0115 anti-K_0*0N pi+ PHSP; -0.013387523 anti-K*0 rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -# -# the Dalitz mode below includes K*bar(892)0 pi+, -# K*bar(1430)0 pi+, and K*bar(1680)0 pi+ resonances. -0.094000000 K- pi+ pi+ D_DALITZ; #[Reconstructed PDG2011] -# the Dalitz mode below includes K0bar rho+, -# and K*bar(892)0 pi+ resonances -0.069900000 K_S0 pi+ pi0 D_DALITZ; # PDG2014 -0.069900000 K_L0 pi+ pi0 D_DALITZ; # Assume to be same as K_S0 pi+ pi0 -0.000000000 anti-K0 pi+ pi0 D_DALITZ; #[Reconstructed PDG2011] -#0.0100 anti-K0 eta pi+ PHSP; -# -0.001247859 K_S0 rho0 pi+ PHSP; #[Reconstructed PDG2011] -0.001247859 K_L0 rho0 pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 rho0 pi+ PHSP; #[Reconstructed PDG2011] -# -0.003851416 anti-K0 omega pi+ PHSP; #[Reconstructed PDG2011] -0.007032686 K- rho+ pi+ PHSP; #[Reconstructed PDG2011] -0.009274210 K*- pi+ pi+ PHSP; #[Reconstructed PDG2011] -0.047187552 anti-K*0 pi0 pi+ PHSP; #[Reconstructed PDG2011] -#0.0100 anti-K*0 eta pi+ PHSP; -0.001101505 anti-K*0 rho0 pi+ PHSP; #[Reconstructed PDG2011] -0.003851416 anti-K*0 omega pi+ PHSP; #[Reconstructed PDG2011] -#0.0100 K*- rho+ pi+ PHSP; -# -0.008473116 K- pi+ pi+ pi0 PHSP; #[Reconstructed PDG2011] -# -#0.002472609 K_S0 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -#0.002472609 K_L0 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.031200000 K_S0 pi+ pi+ pi- PHSP; # PDG2014 (why it was much smaller?) -0.031200000 K_L0 pi+ pi+ pi- PHSP; # PDG2014 -0.000000000 anti-K0 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -# -#0.0188 anti-K0 pi+ pi0 pi0 PHSP; -0.005700000 K- pi+ pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.003851416 K- pi+ pi+ pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.006701464 anti-K0 pi+ pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.002695991 anti-K0 pi+ pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.004600000 K_S0 K_S0 K+ PHSP; #[Reconstructed PDG2011] -0.003111944 K_L0 K_L0 K+ PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 anti-K0 K+ PHSP; #[Reconstructed PDG2011] -# -0.004660214 phi pi+ SVS; #[Reconstructed PDG2011] -0.023000000 phi pi+ pi0 PHSP; #[Reconstructed PDG2011] -# -0.002860000 K_S0 K+ PHSP; #[Reconstructed PDG2011] -0.002195307 K_L0 K+ PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K+ PHSP; #[Reconstructed PDG2011] -# -0.002179902 anti-K*0 K+ SVS; #[Reconstructed PDG2011] -# -0.016000000 K*+ K_S0 SVS; #[Reconstructed PDG2011] -0.011145999 K*+ K_L0 SVS; #[Reconstructed PDG2011] -0.000000000 K*+ anti-K0 SVS; #[Reconstructed PDG2011] -# -#0.0180 anti-K*0 K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.002826940 K+ K- pi+ PHSP; #[Reconstructed PDG2011] -0.000770283 K+ anti-K0 pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K0 pi+ PHSP; #[Reconstructed PDG2011] -0.000770283 K*+ K- pi+ PHSP; #[Reconstructed PDG2011] -0.000770283 K+ K*- pi+ PHSP; #[Reconstructed PDG2011] -0.000770283 K*+ anti-K0 pi0 PHSP; #[Reconstructed PDG2011] -0.000770283 K+ anti-K*0 pi0 PHSP; #[Reconstructed PDG2011] -0.000770283 anti-K*0 K0 pi+ PHSP; #[Reconstructed PDG2011] -0.000770283 anti-K0 K*0 pi+ PHSP; #[Reconstructed PDG2011] -# -0.001260000 pi0 pi+ PHSP; #[Reconstructed PDG2011] -0.000830000 rho0 pi+ SVS; #[Reconstructed PDG2011] -0.002440000 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.004700000 pi+ pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.011600000 pi+ pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.003851416 pi+ pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.003430000 eta pi+ PHSP; #[Reconstructed PDG2011] -0.004400000 eta' pi+ PHSP; #[Reconstructed PDG2011] -0.001380000 eta pi+ pi0 PHSP; #[Reconstructed PDG2011] -0.002310850 eta pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.001540566 eta pi+ pi0 pi0 PHSP; #[Reconstructed PDG2011] -#lange jul22,2002 -0.001660000 pi+ pi+ pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -# -# March 2009 New Modes -0.009300000 anti-K*0 a_1+ PHSP; #[Reconstructed PDG2011] -0.010545178 K+ K- pi+ pi0 PHSP; #[Reconstructed PDG2011] -# -0.001740000 K+ K_S0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.001270967 K+ K_L0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 K+ anti-K0 pi+ pi- PHSP; #[Reconstructed PDG2011] -# -0.002380000 K_S0 K- pi+ pi+ PHSP; #[Reconstructed PDG2011] -0.001756246 K_L0 K- pi+ pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 K0 K- pi+ pi+ PHSP; #[Reconstructed PDG2011] -# -0.000230000 K+ K- pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -# -0.000240000 K+ K- K_S0 pi+ PHSP; #[Reconstructed PDG2011] -0.000161759 K+ K- K_L0 pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 K+ K- anti-K0 pi+ PHSP; #[Reconstructed PDG2011] -# Doubly Cabibbo suppressed modes -0.000237000 K+ pi0 PHSP; #[Reconstructed PDG2011] -0.000332000 K+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000089000 K+ K+ K- PHSP; #[Reconstructed PDG2011] -0.001720000 K- rho0 pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001600000 eta' pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000210000 K+ rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -# -Decay D- -0.055200000 K*0 e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.088300000 K0 e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.002773020 K_10 e- anti-nu_e PHOTOS ISGW2; # Keep same as in 2010 version -0.002927076 K_2*0 e- anti-nu_e PHOTOS ISGW2; # Keep same as in 2010 version -0.004050000 pi0 e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.001140000 eta e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.000220000 eta' e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.002180000 rho0 e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.001820000 omega e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.003321725 K+ pi- e- anti-nu_e PHOTOS PHSP; # PDG2014 (subtracted K*)+tiny bit to have sum=1 -0.001200122 K0 pi0 e- anti-nu_e PHOTOS PHSP; # Keep same as in 2010 version+tiny bit to have sum=1 -# -0.052800000 K*0 mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.092000000 K0 mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.002773020 K_10 mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.002927076 K_2*0 mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.004050000 pi0 mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.001140000 eta mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.002200000 eta' mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.002400000 rho0 mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.001820000 omega mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.002921725 K+ pi- mu- anti-nu_mu PHOTOS PHSP; #[Reconstructed PDG2011] -0.001200122 K0 pi0 mu- anti-nu_mu PHOTOS PHSP; #[Reconstructed PDG2011] -# -0.000382000 mu- anti-nu_mu PHOTOS SLN; #[Reconstructed PDG2011] -0.000770283 tau- anti-nu_tau SLN; #[Reconstructed PDG2011] -# -0.014900000 K_S0 pi- PHSP; #[Reconstructed PDG2011] -0.014600000 K_L0 pi- PHSP; #[Reconstructed PDG2011] -0.000000000 K0 pi- PHSP; #[Reconstructed PDG2011] -# -0.025950843 a_1- K_S0 SVS; #[Reconstructed PDG2011] -0.025950843 a_1- K_L0 SVS; #[Reconstructed PDG2011] -0.000000000 a_1- K0 SVS; #[Reconstructed PDG2011] -# -0.027090862 K'_10 pi- SVS; #[Reconstructed PDG2011] -#0.0115 K_0*0N pi- PHSP; -0.013387523 K*0 rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -# -# the Dalitz mode below includes K*(892)0 pi-, K*(1430)0 pi-, and K*(1680)0 pi- resonances. -0.094000000 K+ pi- pi- D_DALITZ; #[Reconstructed PDG2011] -# the Dalitz mode below includes K0 rho-, and K*(892)0 pi- resonances. -0.069900000 K_S0 pi- pi0 D_DALITZ; # PDG2014 -0.069900000 K_L0 pi- pi0 D_DALITZ; # Assume to be same as K_S0 pi- pi0 -0.000000000 K0 pi- pi0 D_DALITZ; #[Reconstructed PDG2011] -# -#0.0100 K0 eta pi- PHSP; -0.001247859 K_S0 rho0 pi- PHSP; #[Reconstructed PDG2011] -0.001247859 K_L0 rho0 pi- PHSP; #[Reconstructed PDG2011] -0.000000000 K0 rho0 pi- PHSP; #[Reconstructed PDG2011] -# -0.003851416 K0 omega pi- PHSP; #[Reconstructed PDG2011] -0.007032686 K+ rho- pi- PHSP; #[Reconstructed PDG2011] -0.009274210 K*+ pi- pi- PHSP; #[Reconstructed PDG2011] -0.047187552 K*0 pi0 pi- PHSP; #[Reconstructed PDG2011] -#0.0100 K*0 eta pi- PHSP; -0.001101505 K*0 rho0 pi- PHSP; #[Reconstructed PDG2011] -0.003851416 K*0 omega pi- PHSP; #[Reconstructed PDG2011] -#0.0100 K*+ rho- pi- PHSP; -# -0.008473116 K+ pi- pi- pi0 PHSP; #[Reconstructed PDG2011] -# -0.031200000 K_S0 pi- pi- pi+ PHSP; # PDG2014 (why it was much smaller?) -0.031200000 K_L0 pi- pi- pi+ PHSP; # PDG2014 -0.000000000 K0 pi- pi- pi+ PHSP; #[Reconstructed PDG2011] -# -#0.0188 K0 pi- pi0 pi0 PHSP; -0.005700000 K+ pi- pi- pi- pi+ PHSP; #[Reconstructed PDG2011] -0.003851416 K+ pi- pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.006701464 K0 pi- pi- pi+ pi0 PHSP; #[Reconstructed PDG2011] -0.002695991 K0 pi- pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.004600000 K_S0 K_S0 K- PHSP; #[Reconstructed PDG2011] -0.003111944 K_L0 K_L0 K- PHSP; #[Reconstructed PDG2011] -0.000000000 K0 K0 K- PHSP; #[Reconstructed PDG2011] -# -0.004660214 phi pi- SVS; #[Reconstructed PDG2011] -0.023000000 phi pi- pi0 PHSP; #[Reconstructed PDG2011] -# -0.002860000 K_S0 K- PHSP; #[Reconstructed PDG2011] -0.002195307 K_L0 K- PHSP; #[Reconstructed PDG2011] -0.000000000 K0 K- PHSP; #[Reconstructed PDG2011] -# -0.002179902 K*0 K- SVS; #[Reconstructed PDG2011] -# -0.016000000 K*- K_S0 SVS; #[Reconstructed PDG2011] -0.011145999 K*- K_L0 SVS; #[Reconstructed PDG2011] -0.000000000 K*- K0 SVS; #[Reconstructed PDG2011] -# -#0.0180 K*0 K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.002826940 K- K+ pi- PHSP; #[Reconstructed PDG2011] -0.000770283 K- K0 pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K0 pi- PHSP; #[Reconstructed PDG2011] -0.000770283 K*- K+ pi- PHSP; #[Reconstructed PDG2011] -0.000770283 K- K*+ pi- PHSP; #[Reconstructed PDG2011] -0.000770283 K*- K0 pi0 PHSP; #[Reconstructed PDG2011] -0.000770283 K- K*0 pi0 PHSP; #[Reconstructed PDG2011] -0.000770283 K*0 anti-K0 pi- PHSP; #[Reconstructed PDG2011] -0.000770283 K0 anti-K*0 pi- PHSP; #[Reconstructed PDG2011] -# -0.001260000 pi0 pi- PHSP; #[Reconstructed PDG2011] -0.000830000 rho0 pi- SVS; #[Reconstructed PDG2011] -0.002440000 pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.004700000 pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.011600000 pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.003851416 pi- pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.003430000 eta pi- PHSP; #[Reconstructed PDG2011] -0.004400000 eta' pi- PHSP; #[Reconstructed PDG2011] -0.001380000 eta pi- pi0 PHSP; #[Reconstructed PDG2011] -0.002310850 eta pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.001540566 eta pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] -#lange jul22,2002 -0.001660000 pi+ pi- pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -# -# March 2009 New Modes -0.009300000 K*0 a_1- PHSP; #[Reconstructed PDG2011] -0.010545178 K+ K- pi- pi0 PHSP; #[Reconstructed PDG2011] -# -0.001740000 K- K_S0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.001270967 K- K_L0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 K- K0 pi+ pi- PHSP; #[Reconstructed PDG2011] -# -0.002380000 K_S0 K+ pi- pi- PHSP; #[Reconstructed PDG2011] -0.001756246 K_L0 K+ pi- pi- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K+ pi- pi- PHSP; #[Reconstructed PDG2011] -# -0.000230000 K+ K- pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -# -0.000240000 K+ K- K_S0 pi- PHSP; #[Reconstructed PDG2011] -0.000161759 K+ K- K_L0 pi- PHSP; #[Reconstructed PDG2011] -0.000000000 K+ K- K0 pi- PHSP; #[Reconstructed PDG2011] -# Doubly Cabibbo suppressed modes -0.000237000 K- pi0 PHSP; #[Reconstructed PDG2011] -0.000332000 K- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000089000 K- K+ K- PHSP; #[Reconstructed PDG2011] -0.001720000 K+ rho0 pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001600000 eta' pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000210000 K- rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay K*BR -1.0000 anti-K0 pi0 VSS; -Enddecay -# -# -Decay D0 -# updated according to suggestions by P. Roudeau, -# using PDG2004 measurements and imposing the equality -# of sl partial widths for D+ and D0. -# Include additional decay anti-K0 pi- e+ nu_e , K- pi0 e+ nu_e. -# -0.021600000 K*- e+ nu_e PHOTOS ISGW2; # PDG2014 -0.035500000 K- e+ nu_e PHOTOS ISGW2; # PDG2014 -0.000760000 K_1- e+ nu_e PHOTOS ISGW2; # PDG2014 -0.001100000 K_2*- e+ nu_e PHOTOS ISGW2; # Small decrease as this is unmeasured -0.002890000 pi- e+ nu_e PHOTOS ISGW2; # PDG2014 -0.001770000 rho- e+ nu_e PHOTOS ISGW2; # PDG2014 -0.001080000 anti-K0 pi- e+ nu_e PHOTOS PHSP; # PDG2014 subtracting K* (decreased due large uncertaity ) -0.000400000 K- pi0 e+ nu_e PHOTOS PHSP; # PDG2014 subtracting K* (decreased due large uncertaity ) -# -0.021000000 K*- mu+ nu_mu PHOTOS ISGW2; # 1.1 * PDG2014 -0.034700000 K- mu+ nu_mu PHOTOS ISGW2; # 1.05 * PDG2014 -0.000076000 K_1- mu+ nu_mu PHOTOS ISGW2; # PDG2014 for electron -0.001100000 K_2*- mu+ nu_mu PHOTOS ISGW2; # copy from electron -0.002370000 pi- mu+ nu_mu PHOTOS ISGW2; # PDG2014 -0.002015940 rho- mu+ nu_mu PHOTOS ISGW2; # PDG2014 for electron -0.001080000 anti-K0 pi- mu+ nu_mu PHOTOS PHSP; # copy electron -0.000400000 K- pi0 mu+ nu_mu PHOTOS PHSP; # copy electron -# -0.038900000 K- pi+ PHSP; #[Reconstructed PDG2011] -# -0.012200000 K_S0 pi0 PHSP; #[Reconstructed PDG2011] -0.010000000 K_L0 pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.004290000 K_S0 eta PHSP; #[Reconstructed PDG2011] -0.003802795 K_L0 eta PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 eta PHSP; #[Reconstructed PDG2011] -# -0.009300000 K_S0 eta' PHSP; #[Reconstructed PDG2011] -0.008980094 K_L0 eta' PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 eta' PHSP; #[Reconstructed PDG2011] -# -0.011100000 omega K_S0 SVS; #[Reconstructed PDG2011] -0.010904400 omega K_L0 SVS; #[Reconstructed PDG2011] -0.000000000 omega anti-K0 SVS; #[Reconstructed PDG2011] -# -0.001603588 anti-K*0 eta SVS; #[Reconstructed PDG2011] -0.000916336 anti-K*0 eta' SVS; #[Reconstructed PDG2011] -0.078000000 a_1+ K- SVS; #[Reconstructed PDG2011] -0.067625607 K*- rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.015800000 anti-K*0 rho0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.011000000 anti-K*0 omega SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -# the Dalitz mode below includes K*bar(892)0 pi0, -# K*(892)- pi+, and K- rho(770)+ resonances -0.139000000 K- pi+ pi0 D_DALITZ; #[Reconstructed PDG2011] -0.006634274 K*BR pi0 SVS; #[Reconstructed PDG2011] -0.016000000 K_1- pi+ SVS; #[Reconstructed PDG2011] -0.006505987 anti-K_10 pi0 SVS; #[Reconstructed PDG2011] -# -# the Dalitz mode below includes K*(892)- pi+ and Kbar0 rho(770)0 resonances -# LHCb PR 09 Apr 2004 split into KS/KL -0.029400000 K_S0 pi+ pi- D_DALITZ; #[Reconstructed PDG2011] -0.027856619 K_L0 pi+ pi- D_DALITZ; #[Reconstructed PDG2011] -0.000000000 anti-K0 pi+ pi- D_DALITZ; #[Reconstructed PDG2011] -# -0.008300000 K_S0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.004425904 K_L0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.024000000 anti-K*0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.010629499 anti-K*0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.009163361 K*- pi+ pi0 PHSP; #[Reconstructed PDG2011] -0.006231086 K- rho+ pi0 PHSP; #[Reconstructed PDG2011] -0.005305586 K- pi+ rho0 PHSP; #[Reconstructed PDG2011] -0.019000000 K- pi+ omega PHSP; #[Reconstructed PDG2011] -0.009163361 K- pi+ eta PHSP; #[Reconstructed PDG2011] -0.007500000 K- pi+ eta' PHSP; #[Reconstructed PDG2011] -0.013300000 K- pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -# -0.054000000 K_S0 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.010079698 K_L0 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -# -# K- pi+ pi0 pi0 is (15 +/- 5)% in the PDG, but we decrease it to -# have everything add to 1 and get enough neutral kaons: -#0.02575 K- pi+ pi0 pi0 PHSP; -# -#0.0143 anti-K0 pi0 pi0 pi0 PHSP; -0.040316317 anti-K0 pi0 pi0 pi0 PHSP; # Add in to fill sum to 1. [MK June 2015] -0.000000000 K- pi+ pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.003482077 K- pi+ pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.002800000 K_S0 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.002684865 K_L0 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -# -#0.0638 anti-K0 pi+ pi- pi0 pi0 PHSP; -#0.0192 anti-K0 pi+ pi- pi0 pi0 pi0 PHSP; -# -0.002034266 phi K_S0 SVS; #[Reconstructed PDG2011] -0.002034266 phi K_L0 SVS; #[Reconstructed PDG2011] -0.000000000 phi anti-K0 SVS; #[Reconstructed PDG2011] -# -0.004650000 K_S0 K+ K- PHSP; #[Reconstructed PDG2011] -0.002785662 K_L0 K+ K- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K+ K- PHSP; #[Reconstructed PDG2011] -# -0.000950000 K_S0 K_S0 K_S0 PHSP; #[Reconstructed PDG2011] -0.003940000 K+ K- PHSP; #[Reconstructed PDG2011] -0.000190000 K_S0 K_S0 PHSP; #[Reconstructed PDG2011] -0.000366534 K_L0 K_L0 PHSP; #[Reconstructed PDG2011] -0.000366534 K*0 anti-K0 SVS; #[Reconstructed PDG2011] -# -0.000091634 anti-K*0 K_S0 SVS; #[Reconstructed PDG2011] -0.000091634 anti-K*0 K_L0 SVS; #[Reconstructed PDG2011] -0.000000000 anti-K*0 K0 SVS; #[Reconstructed PDG2011] -# -0.000485658 K*- K+ SVS; #[Reconstructed PDG2011] -0.001365341 K*+ K- SVS; #[Reconstructed PDG2011] -0.001282871 anti-K*0 K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000714742 phi pi0 SVS; #[Reconstructed PDG2011] -0.001007970 phi pi+ pi- PHSP; #[Reconstructed PDG2011] -0.002430000 K+ K- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.002749008 K+ K- pi0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.001280000 K_S0 K_S0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.001255381 K_L0 K_L0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K0 pi+ pi- PHSP; #[Reconstructed PDG2011] -# -0.001374504 anti-K0 K0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.001397000 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000800000 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.000640000 eta pi0 PHSP; #[Reconstructed PDG2011] -0.000810000 eta' pi0 PHSP; #[Reconstructed PDG2011] -0.001670000 eta eta PHSP; #[Reconstructed PDG2011] -0.009800000 rho+ pi- SVS; #[Reconstructed PDG2011] -0.004970000 rho- pi+ SVS; #[Reconstructed PDG2011] -0.003730000 rho0 pi0 SVS; #[Reconstructed PDG2011] -0.001209564 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000091634 pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.005620000 pi+ pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -0.009360000 pi+ pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.001510000 pi+ pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.005498017 pi+ pi- pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.000420000 pi+ pi- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -# -# Doubly Cabibbo suppressed decays: -0.000137450 pi- K+ PHSP; #[Reconstructed PDG2011] -0.000128287 pi- K*+ PHSP; #[Reconstructed PDG2011] -0.000274901 pi- K+ pi0 PHSP; #[Reconstructed PDG2011] -0.000247411 K+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -# PR LHCb - 19 Apr. 2004 Add D0 -> mu+ mu- -0.000000000 mu+ mu- PHSP; #[Reconstructed PDG2011] -# -# March 2009 New Modes -0.000140000 phi eta PHSP; #[Reconstructed PDG2011] -0.019000000 anti-K*0 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000220000 K- pi+ pi- pi+ pi- pi+ PHSP; #[Reconstructed PDG2011] -0.000641435 K+ K- pi0 PHSP; #[Reconstructed PDG2011] -0.003100000 K+ K- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000221000 K+ K- K- pi+ PHSP; #[Reconstructed PDG2011] -# -0.005600000 K_S0 eta pi0 PHSP; #[Reconstructed PDG2011] -0.003665345 K_L0 eta pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 eta pi0 PHSP; #[Reconstructed PDG2011] -# -0.002600000 K_S0 K+ pi- PHSP; #[Reconstructed PDG2011] -0.002382474 K_L0 K+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K+ pi- PHSP; #[Reconstructed PDG2011] -# -0.003500000 K_S0 K- pi+ PHSP; #[Reconstructed PDG2011] -0.003344627 K_L0 K- pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 K0 K- pi+ PHSP; #[Reconstructed PDG2011] -# -0.000310000 K_S0 K_S0 K+ pi- PHSP; #[Reconstructed PDG2011] -0.000293228 K_L0 K_L0 K+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K0 K+ pi- PHSP; #[Reconstructed PDG2011] -# -0.000310000 K_S0 K_S0 K- pi+ PHSP; #[Reconstructed PDG2011] -0.000293228 K_L0 K_L0 K- pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K0 K- pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 K- pi+ pi- e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001820000 rho0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001090000 eta pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001600000 omega pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000450000 eta' pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001260000 eta eta' PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000027000 phi gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000328000 anti-K*0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -# -Decay K*0R -1.0000 K0 pi0 VSS; -Enddecay -# -# -Decay anti-D0 -0.021600000 K*+ e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.035500000 K+ e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.000760000 K_1+ e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.001100000 K_2*+ e- anti-nu_e PHOTOS ISGW2; # Small decrease as this is unmeasured -0.002890000 pi+ e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.001770000 rho+ e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.001080000 K0 pi+ e- anti-nu_e PHOTOS PHSP; # PDG2014 subtracting K* (decreased due large uncertaity ) -0.000400000 K+ pi0 e- anti-nu_e PHOTOS PHSP; # PDG2014 subtracting K* (decreased due large uncertaity ) -# -0.021000000 K*+ mu- anti-nu_mu PHOTOS ISGW2; # 1.1 * PDG2014 -0.034700000 K+ mu- anti-nu_mu PHOTOS ISGW2; # 1.05 * PDG2014 -0.000076000 K_1+ mu- anti-nu_mu PHOTOS ISGW2; # PDG2014 for electron -0.001100000 K_2*+ mu- anti-nu_mu PHOTOS ISGW2; # copy from electron -0.002370000 pi+ mu- anti-nu_mu PHOTOS ISGW2; # PDG2014 -0.002015940 rho+ mu- anti-nu_mu PHOTOS ISGW2; # PDG2014 for electron -0.001080000 K0 pi+ mu- anti-nu_mu PHOTOS PHSP; # copy electron -0.000400000 K+ pi0 mu- anti-nu_mu PHOTOS PHSP; # copy electron -# -0.038900000 K+ pi- PHSP; #[Reconstructed PDG2011] -# -0.012200000 K_S0 pi0 PHSP; #[Reconstructed PDG2011] -0.010000000 K_L0 pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 K0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.004290000 K_S0 eta PHSP; #[Reconstructed PDG2011] -0.003818748 K_L0 eta PHSP; #[Reconstructed PDG2011] -0.000000000 K0 eta PHSP; #[Reconstructed PDG2011] -# -0.009300000 K_S0 eta' PHSP; #[Reconstructed PDG2011] -0.009017767 K_L0 eta' PHSP; #[Reconstructed PDG2011] -0.000000000 K0 eta' PHSP; #[Reconstructed PDG2011] -# -0.011100000 omega K_S0 SVS; #[Reconstructed PDG2011] -0.010950146 omega K_L0 SVS; #[Reconstructed PDG2011] -0.000000000 omega K0 SVS; #[Reconstructed PDG2011] -# -0.001610316 K*0 eta SVS; #[Reconstructed PDG2011] -0.000920180 K*0 eta' SVS; #[Reconstructed PDG2011] -0.078000000 a_1- K+ SVS; #[Reconstructed PDG2011] -0.067909308 K*+ rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.015800000 K*0 rho0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.011000000 K*0 omega SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -# the Dalitz mode below includes K*(892)0 pi0, K*(892)+ pi-, and K+ rho(770)- resonances -0.139000000 K+ pi- pi0 D_DALITZ; #[Reconstructed PDG2011] -0.006662106 K*0R pi0 SVS; #[Reconstructed PDG2011] -0.016000000 K_1+ pi- SVS; #[Reconstructed PDG2011] -0.006533280 K_10 pi0 SVS; #[Reconstructed PDG2011] -# the Dalitz mode below includes K*(892)+ pi- and K0 rho(770)0 resonances -# LHCb PR 09 Apr 2004, split into KS/KL -0.000000000 K0 pi+ pi- D_DALITZ; #[Reconstructed PDG2011] -0.029400000 K_S0 pi+ pi- D_DALITZ; #[Reconstructed PDG2011] -0.027973482 K_L0 pi+ pi- D_DALITZ; #[Reconstructed PDG2011] -# -0.008300000 K_S0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.004444471 K_L0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 K0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.024000000 K*0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.010674092 K*0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.009201803 K*+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.006257226 K+ rho- pi0 PHSP; #[Reconstructed PDG2011] -0.005327844 K+ pi- rho0 PHSP; #[Reconstructed PDG2011] -0.019000000 K+ pi- omega PHSP; #[Reconstructed PDG2011] -0.009201803 K+ pi- eta PHSP; #[Reconstructed PDG2011] -0.007500000 K+ pi- eta' PHSP; #[Reconstructed PDG2011] -0.013300000 K+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -# -0.054000000 K_S0 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.010121984 K_L0 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 K0 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -# -# K+ pi- pi0 pi0 is (15 +/- 5)% in the PDG, but we decrease it to -# have everything add to 1 and get enough neutral kaons: -#0.02575 K+ pi- pi0 pi0 PHSP; -# -#0.0143 K0 pi0 pi0 pi0 PHSP; -0.040346268 K0 pi0 pi0 pi0 PHSP; -0.000000000 K+ pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.003496685 K+ pi- pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.002800000 K_S0 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.002696128 K_L0 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 K0 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -# -#0.0638 K0 pi- pi+ pi0 pi0 PHSP; -#0.0192 K0 pi- pi+ pi0 pi0 pi0 PHSP; -# -0.002042800 phi K_S0 SVS; #[Reconstructed PDG2011] -0.002042800 phi K_L0 SVS; #[Reconstructed PDG2011] -0.000000000 phi K0 SVS; #[Reconstructed PDG2011] -# -0.004650000 K_S0 K+ K- PHSP; #[Reconstructed PDG2011] -0.002797348 K_L0 K+ K- PHSP; #[Reconstructed PDG2011] -0.000000000 K0 K+ K- PHSP; #[Reconstructed PDG2011] -# -0.000950000 K_S0 K_S0 K_S0 PHSP; #[Reconstructed PDG2011] -0.003940000 K+ K- PHSP; #[Reconstructed PDG2011] -0.000190000 K_S0 K_S0 PHSP; #[Reconstructed PDG2011] -0.000368072 K_L0 K_L0 PHSP; #[Reconstructed PDG2011] -0.000368072 anti-K*0 K0 SVS; #[Reconstructed PDG2011] -# -0.000092018 K*0 K_S0 SVS; #[Reconstructed PDG2011] -0.000092018 K*0 K_L0 SVS; #[Reconstructed PDG2011] -0.000000000 K*0 anti-K0 SVS; #[Reconstructed PDG2011] -# -0.000487696 K*+ K- SVS; #[Reconstructed PDG2011] -0.001371069 K*- K+ SVS; #[Reconstructed PDG2011] -0.001288252 K*0 anti-K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000717741 phi pi0 SVS; #[Reconstructed PDG2011] -0.001012198 phi pi+ pi- PHSP; #[Reconstructed PDG2011] -0.002430000 K+ K- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.002760541 K+ K- pi0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.001280000 K_S0 K_S0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.001260647 K_L0 K_L0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K0 pi+ pi- PHSP; #[Reconstructed PDG2011] -# -0.001380270 anti-K0 K0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.001397000 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000800000 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.000640000 eta pi0 PHSP; #[Reconstructed PDG2011] -0.000810000 eta' pi0 PHSP; #[Reconstructed PDG2011] -0.001670000 eta eta PHSP; #[Reconstructed PDG2011] -0.009128189 rho+ pi- SVS; #[Reconstructed PDG2011] -0.004637709 rho- pi+ SVS; #[Reconstructed PDG2011] -0.003730000 rho0 pi0 SVS; #[Reconstructed PDG2011] -0.001214638 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000092018 pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.005620000 pi+ pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -0.009360000 pi+ pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.001510000 pi+ pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.005521082 pi+ pi- pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.000420000 pi+ pi- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -# -# Doubly Cabibbo suppressed decays: -0.000138027 pi+ K- PHSP; #[Reconstructed PDG2011] -0.000128825 pi+ K*- PHSP; #[Reconstructed PDG2011] -0.000276054 pi+ K- pi0 PHSP; #[Reconstructed PDG2011] -0.000248449 K- pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -# PR LHCb - 19 Apr. 2004 Add anti-D0 -> mu+ mu- -0.000000000 mu- mu+ PHSP; #[Reconstructed PDG2011] -# -# March 2009 New Modes -0.000140000 phi eta PHSP; #[Reconstructed PDG2011] -0.019000000 K*0 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000220000 K+ pi- pi- pi+ pi- pi+ PHSP; #[Reconstructed PDG2011] -0.000644126 K+ K- pi0 PHSP; #[Reconstructed PDG2011] -0.003100000 K+ K- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000221000 K+ K+ K- pi- PHSP; #[Reconstructed PDG2011] -# -0.005600000 K_S0 eta pi0 PHSP; #[Reconstructed PDG2011] -0.003680721 K_L0 eta pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 K0 eta pi0 PHSP; #[Reconstructed PDG2011] -# -0.002600000 K_S0 K- pi+ PHSP; #[Reconstructed PDG2011] -0.002392469 K_L0 K- pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 K0 K- pi+ PHSP; #[Reconstructed PDG2011] -# -0.003500000 K_S0 K+ pi- PHSP; #[Reconstructed PDG2011] -0.003358658 K_L0 K+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K+ pi- PHSP; #[Reconstructed PDG2011] -# -0.000310000 K_S0 K_S0 K+ pi- PHSP; #[Reconstructed PDG2011] -0.000294458 K_L0 K_L0 K+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K0 K+ pi- PHSP; #[Reconstructed PDG2011] -# -0.000310000 K_S0 K_S0 K- pi+ PHSP; #[Reconstructed PDG2011] -0.000294458 K_L0 K_L0 K- pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K0 K- pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 K+ pi- pi+ e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001820000 rho0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001090000 eta pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001600000 omega pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000450000 eta' pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001260000 eta eta' PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000027000 phi gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000328000 K*0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -# Updated to PDG 2008 -Decay D_s+ -0.024900000 phi e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] -0.026700000 eta e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] -0.009900000 eta' e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] -0.002058115 anti-K0 e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] -0.000762265 anti-K*0 e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] -0.018309605 phi mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.022845082 eta mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.008186726 eta' mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.002058115 anti-K0 mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.000762265 anti-K*0 mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.005800000 mu+ nu_mu PHOTOS SLN; #[Reconstructed PDG2011] -0.031100000 tau+ nu_tau SLN; #[Reconstructed PDG2011] -### Lange Nov14, 2004 - average cleo + babar (prelim) using stat error only.. -0.045000000 phi pi+ SVS; #[Reconstructed PDG2011] -0.015600000 eta pi+ PHSP; #[Reconstructed PDG2011] -0.038000000 eta' pi+ PHSP; #[Reconstructed PDG2011] -0.002300000 omega pi+ SVS; #[Reconstructed PDG2011] -0.000304906 rho+ pi0 SVS; #[Reconstructed PDG2011] -0.000076226 pi+ pi0 PHSP; #[Reconstructed PDG2011] -#? -0.000196200 rho0 pi+ SVS; # PDG 2014 -0.007852048 f_0 pi+ PHSP; # PDG 2014 -0.001753646 f_2 pi+ PHSP; # PDG 2014 -0.004754077 f'_0 pi+ PHSP; # PDG 2014 -0.005768112 f_0(1500) pi+ PHSP; # PDG 2014 -#0.000735750 rho(2S)0 pi+ PHSP; # PDG 2014 -0.000000000 pi+ pi- pi+ PHSP; # PDG 2014 (filled by exclusives) -0.084000000 phi rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.089000000 rho+ eta SVS; #[Reconstructed PDG2011] -0.124213286 rho+ eta' SVS; # Decrease compared to PDG 2014 to preserve unitarity after -# # fixing Ds --> 3pi, we also have too much of inclusive eta', -# #so pick this decay -0.006500000 pi+ pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.007622650 phi pi+ pi0 PHSP; #[Reconstructed PDG2011] -0.011433975 eta pi+ pi0 PHSP; #[Reconstructed PDG2011] -0.011433975 eta' pi+ pi0 PHSP; #[Reconstructed PDG2011] -0.012100000 phi pi+ pi- pi+ PHSP; #[Reconstructed PDG2011] -0.003811325 phi pi+ pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.003811325 eta pi+ pi- pi+ PHSP; #[Reconstructed PDG2011] -0.003811325 eta pi+ pi0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.014900000 K_S0 K+ PHSP; #[Reconstructed PDG2011] -0.011472088 K_L0 K+ PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K+ PHSP; #[Reconstructed PDG2011] -# -0.030490600 anti-K*0 K+ SVS; #[Reconstructed PDG2011] -0.054000000 K*+ anti-K0 SVS; #[Reconstructed PDG2011] -0.072000000 anti-K*0 K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.002286795 anti-K0 K+ pi0 PHSP; #[Reconstructed PDG2011] -0.000914718 anti-K*0 K+ pi0 PHSP; #[Reconstructed PDG2011] -0.000914718 K*+ anti-K0 pi0 PHSP; #[Reconstructed PDG2011] -0.003049060 anti-K*0 K*+ pi0 PHSP; #[Reconstructed PDG2011] -0.003811325 K+ K- pi+ PHSP; #[Reconstructed PDG2011] -# -0.009600000 K_S0 K+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.007470197 K_L0 K+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K+ pi+ pi- PHSP; #[Reconstructed PDG2011] -# -0.000762265 anti-K0 K+ pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 K+ K- pi+ pi- pi+ PHSP; #[Reconstructed PDG2011] -0.000152453 phi K+ SVS; #[Reconstructed PDG2011] -0.001390000 eta K+ PHSP; #[Reconstructed PDG2011] -0.001600000 eta' K+ PHSP; #[Reconstructed PDG2011] -0.000152453 eta K+ pi0 PHSP; #[Reconstructed PDG2011] -0.000152453 eta K+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000152453 eta' K+ pi0 PHSP; #[Reconstructed PDG2011] -0.000152453 eta' K+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000490000 K+ K- K+ PHSP; #[Reconstructed PDG2011] -# -0.001200000 K_S0 pi+ PHSP; #[Reconstructed PDG2011] -0.000968077 K_L0 pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 K0 pi+ PHSP; #[Reconstructed PDG2011] -# -0.001143397 rho+ K0 SVS; #[Reconstructed PDG2011] -0.002700000 rho0 K+ SVS; #[Reconstructed PDG2011] -0.010000000 K0 pi+ pi0 PHSP; #[Reconstructed PDG2011] -0.001905662 a_1+ K0 SVS; #[Reconstructed PDG2011] -0.006021893 K*0 pi+ SVS; #[Reconstructed PDG2011] -0.003811325 K*0 rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.003811325 K*0 pi+ pi0 PHSP; #[Reconstructed PDG2011] -# -# March 2009 New Modes -0.000820000 K+ pi0 PHSP; #[Reconstructed PDG2011] -0.004200000 K+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.008000000 pi+ pi+ pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -0.049000000 pi+ pi+ pi+ pi- pi- pi0 PHSP; #[Reconstructed PDG2011] -0.001300000 p+ anti-n0 PHSP; #[Reconstructed PDG2011] -# -0.000840000 K_S0 K_S0 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000686038 K_L0 K_L0 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K0 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -# -0.002900000 K_S0 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.002424003 K_L0 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -# Doubly Cabibbo suppressed -0.000129000 K+ K+ pi- PHSP; #[Reconstructed PDG2011] -0.003700000 K0 e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001800000 K*0 e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000000 K+ K- pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.028000000 omega pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.016000000 omega pi+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -# Updated to PDG 2008 -Decay D_s- -0.024900000 phi e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] -0.026700000 eta e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] -0.009900000 eta' e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] -0.002058115 K0 e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] -0.000762265 K*0 e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] -0.018309605 phi mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.022845082 eta mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.008186726 eta' mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.002058115 K0 mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.000762265 K*0 mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.005800000 mu- anti-nu_mu PHOTOS SLN; #[Reconstructed PDG2011] -0.031100000 tau- anti-nu_tau SLN; #[Reconstructed PDG2011] -0.045000000 phi pi- SVS; #[Reconstructed PDG2011] -0.015600000 eta pi- PHSP; #[Reconstructed PDG2011] -0.038000000 eta' pi- PHSP; #[Reconstructed PDG2011] -0.002300000 omega pi- SVS; #[Reconstructed PDG2011] -0.000304906 rho- pi0 SVS; #[Reconstructed PDG2011] -0.000076226 pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000196200 rho0 pi- SVS; # PDG 2014 -0.007852048 f_0 pi- PHSP; # PDG 2014 -0.001753646 f_2 pi- PHSP; # PDG 2014 -0.004754077 f'_0 pi- PHSP; # PDG 2014 -0.005768112 f_0(1500) pi- PHSP; # PDG 2014 -#0.000735750 rho(2S)0 pi- PHSP; # PDG 2014 -0.000000000 pi- pi+ pi- PHSP; # PDG 2014 (filled by exclusives) -0.084000000 phi rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.089000000 rho- eta SVS; #[Reconstructed PDG2011] -0.124213286 rho- eta' SVS; # Decrease compared to PDG 2014 to preserve unitarity after -0.006500000 pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.007622650 phi pi- pi0 PHSP; #[Reconstructed PDG2011] -0.011433975 eta pi- pi0 PHSP; #[Reconstructed PDG2011] -0.011433975 eta' pi- pi0 PHSP; #[Reconstructed PDG2011] -0.012100000 phi pi- pi- pi+ PHSP; #[Reconstructed PDG2011] -0.003811325 phi pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.003811325 eta pi- pi- pi+ PHSP; #[Reconstructed PDG2011] -0.003811325 eta pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.014900000 K_S0 K- PHSP; #[Reconstructed PDG2011] -0.011472088 K_L0 K- PHSP; #[Reconstructed PDG2011] -0.000000000 K0 K- PHSP; #[Reconstructed PDG2011] -# -0.030490600 K*0 K- SVS; #[Reconstructed PDG2011] -0.054000000 K*- K0 SVS; #[Reconstructed PDG2011] -0.072000000 K*0 K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.002286795 K0 K- pi0 PHSP; #[Reconstructed PDG2011] -0.000914718 K*0 K- pi0 PHSP; #[Reconstructed PDG2011] -0.000914718 K*- K0 pi0 PHSP; #[Reconstructed PDG2011] -0.003049060 K*0 K*- pi0 PHSP; #[Reconstructed PDG2011] -0.003811325 K+ K- pi- PHSP; #[Reconstructed PDG2011] -# -0.009600000 K_S0 K- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.007470197 K_L0 K- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 K0 K- pi+ pi- PHSP; #[Reconstructed PDG2011] -# -0.000762265 K0 K- pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 K- K+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000152453 phi K- SVS; #[Reconstructed PDG2011] -0.001390000 eta K- PHSP; #[Reconstructed PDG2011] -0.001600000 eta' K- PHSP; #[Reconstructed PDG2011] -0.000152453 eta K- pi0 PHSP; #[Reconstructed PDG2011] -0.000152453 eta K- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000152453 eta' K- pi0 PHSP; #[Reconstructed PDG2011] -0.000152453 eta' K- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000490000 K- K- K+ PHSP; #[Reconstructed PDG2011] -# -0.001200000 K_S0 pi- PHSP; #[Reconstructed PDG2011] -0.000968077 K_L0 pi- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 pi- PHSP; #[Reconstructed PDG2011] -# -0.001143397 rho- anti-K0 SVS; #[Reconstructed PDG2011] -0.002700000 rho0 K- SVS; #[Reconstructed PDG2011] -0.010000000 anti-K0 pi- pi0 PHSP; #[Reconstructed PDG2011] -0.001905662 a_1- anti-K0 SVS; #[Reconstructed PDG2011] -0.006021893 anti-K*0 pi- SVS; #[Reconstructed PDG2011] -0.003811325 anti-K*0 rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.003811325 anti-K*0 pi- pi0 PHSP; #[Reconstructed PDG2011] -# -# March 2009 New Modes -0.000820000 K- pi0 PHSP; #[Reconstructed PDG2011] -0.004200000 K- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.008000000 pi+ pi+ pi- pi- pi- PHSP; #[Reconstructed PDG2011] -0.049000000 pi+ pi+ pi- pi- pi- pi0 PHSP; #[Reconstructed PDG2011] -0.001300000 anti-p- n0 PHSP; #[Reconstructed PDG2011] -# -0.000840000 K_S0 K_S0 pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -0.000686038 K_L0 K_L0 pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K0 pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -# -0.002900000 K_S0 pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -0.002424003 K_L0 pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -0.000000000 K0 pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -# Doubly Cabibbo suppressed -0.000129000 K- K- pi+ PHSP; #[Reconstructed PDG2011] -0.003700000 anti-K0 e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001800000 anti-K*0 e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000000 K- K+ pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.028000000 omega pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.016000000 omega pi- pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -# D** -# -Decay D_0*+ -0.3333 D+ pi0 PHSP; -0.6667 D0 pi+ PHSP; -Enddecay -Decay D_0*- -0.3333 D- pi0 PHSP; -0.6667 anti-D0 pi- PHSP; -Enddecay -Decay D_0*0 -0.3333 D0 pi0 PHSP; -0.6667 D+ pi- PHSP; -Enddecay -Decay anti-D_0*0 -0.3333 anti-D0 pi0 PHSP; -0.6667 D- pi+ PHSP; -Enddecay -# - -SetLineshapePW D_1+ D*+ pi0 2 -SetLineshapePW D_1+ D*0 pi+ 2 -SetLineshapePW D_1- D*- pi0 2 -SetLineshapePW D_1- anti-D*0 pi- 2 -SetLineshapePW D_10 D*0 pi0 2 -SetLineshapePW D_10 D*+ pi- 2 -SetLineshapePW anti-D_10 anti-D*0 pi0 2 -SetLineshapePW anti-D_10 D*- pi+ 2 - -Decay D_1+ -0.3333 D*+ pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -0.6667 D*0 pi+ VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -Enddecay -Decay D_1- -0.3333 D*- pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -0.6667 anti-D*0 pi- VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -Enddecay -Decay D_10 -0.3333 D*0 pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -0.6667 D*+ pi- VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -Enddecay -Decay anti-D_10 -0.3333 anti-D*0 pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -0.6667 D*- pi+ VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -Enddecay -# -Decay D'_1+ -0.3333 D*+ pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.6667 D*0 pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -Decay D'_1- -0.3333 D*- pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.6667 anti-D*0 pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -Decay D'_10 -0.6667 D*+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.3333 D*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -Decay anti-D'_10 -0.3333 anti-D*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.6667 D*- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# - -SetLineshapePW D_2*+ D*+ pi0 2 -SetLineshapePW D_2*+ D*0 pi+ 2 -SetLineshapePW D_2*- D*- pi0 2 -SetLineshapePW D_2*- anti-D*0 pi- 2 -SetLineshapePW D_2*0 D*0 pi0 2 -SetLineshapePW D_2*0 D*+ pi- 2 -SetLineshapePW anti-D_2*0 anti-D*0 pi0 2 -SetLineshapePW anti-D_2*0 D*- pi+ 2 - -Decay D_2*+ -0.1030 D*+ pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.2090 D*0 pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.2290 D+ pi0 TSS; -0.4590 D0 pi+ TSS; -Enddecay -Decay D_2*- -0.1030 D*- pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.2090 anti-D*0 pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.2290 D- pi0 TSS; -0.4590 anti-D0 pi- TSS; -Enddecay -Decay D_2*0 -0.2090 D*+ pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.1030 D*0 pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.2290 D0 pi0 TSS; -0.4590 D+ pi- TSS; -Enddecay -Decay anti-D_2*0 -0.1030 anti-D*0 pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.2090 D*- pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.2290 anti-D0 pi0 TSS; -0.4590 D- pi+ TSS; -Enddecay -# -# D_s ** -# -Decay D_s0*+ -# 0.5000 D+ K0 PHSP; -# 0.5000 D0 K+ PHSP; -1.000 D_s+ pi0 PHSP; -Enddecay -Decay D_s0*- -# 0.5000 D- anti-K0 PHSP; -# 0.5000 anti-D0 K- PHSP; -1.000 D_s- pi0 PHSP; -Enddecay -Decay D'_s1+ -0.5000 D*+ K0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -0.5000 D*0 K+ VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -0.0000 gamma D_s*+ PHSP; -0.0000 gamma D_s+ PHSP; -Enddecay -Decay D'_s1- -0.5000 D*- anti-K0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -0.5000 anti-D*0 K- VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -0.0000 gamma D_s*- PHSP; -0.0000 gamma D_s- PHSP; -Enddecay -Decay D_s1+ -0.80000 D_s*+ pi0 PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.20000 D_s+ gamma VSP_PWAVE; -Enddecay -Decay D_s1- -0.80000 D_s*- pi0 PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.20000 D_s- gamma VSP_PWAVE; -Enddecay -Decay D_s2*+ -0.0500 D*+ K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0500 D*0 K+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.4300 D+ K0 TSS; -0.4700 D0 K+ TSS; -Enddecay -Decay D_s2*- -0.0500 D*- anti-K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0500 anti-D*0 K- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.4300 D- anti-K0 TSS; -0.4700 anti-D0 K- TSS; -Enddecay -# -# -# Charm Mesons: Radially Excited States -# -Decay D(2S)0 -0.6667 D*+ pi- SVS; -0.3333 D*0 pi0 SVS; -Enddecay -Decay anti-D(2S)0 -0.3333 anti-D*0 pi0 SVS; -0.6667 D*- pi+ SVS; -Enddecay -Decay D(2S)+ -0.3333 D*+ pi0 SVS; -0.6667 D*0 pi+ SVS; -Enddecay -Decay D(2S)- -0.3333 D*- pi0 SVS; -0.6667 anti-D*0 pi- SVS; -Enddecay -Decay D*(2S)0 -0.3333 D*+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1667 D*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1667 D0 pi0 VSS; -0.3333 D+ pi- VSS; -Enddecay -Decay anti-D*(2S)0 -0.1667 anti-D*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.3333 D*- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1667 anti-D0 pi0 VSS; -0.3333 D- pi+ VSS; -Enddecay -Decay D*(2S)+ -0.1667 D*+ pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.3333 D*0 pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1667 D+ pi0 VSS; -0.3333 D0 pi+ VSS; -Enddecay -Decay D*(2S)- -0.1667 D*- pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.3333 anti-D*0 pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1667 D- pi0 VSS; -0.3333 anti-D0 pi- VSS; -Enddecay -# -# -# Strange Mesons updated to PDG 2008 -# -# -Decay K_S0 -0.691086452 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.305986452 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.000000201 pi+ pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001722185 pi+ pi- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000042831 pi+ pi- e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000025 pi0 gamma gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000002399 gamma gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000344328 pi+ e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000344328 pi- e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000235400 pi+ mu- anti-nu_mu PHSP; #[New mode added] #TP manually added 9/1/2011 according to pdg -0.000235400 pi- mu+ nu_mu PHSP; #[New mode added] #TP manually added 9/1/2011 according to pdg -Enddecay -# -# K_L0 is decayed in GEANT -# -Decay K0 -0.500 K_L0 PHSP; -0.500 K_S0 PHSP; -Enddecay -Decay anti-K0 -0.500 K_L0 PHSP; -0.500 K_S0 PHSP; -Enddecay -# -Decay K*0 -0.6657 K+ pi- VSS; -0.3323 K0 pi0 VSS; -0.0020 K0 gamma VSP_PWAVE; -Enddecay -# -Decay anti-K*0 -0.6657 K- pi+ VSS; -0.3323 anti-K0 pi0 VSS; -0.0020 anti-K0 gamma VSP_PWAVE; -Enddecay -# -Decay K*+ -0.6657 K0 pi+ VSS; -0.3323 K+ pi0 VSS; -0.0020 K+ gamma VSP_PWAVE; -Enddecay -# -Decay K*- -0.6657 anti-K0 pi- VSS; -0.3323 K- pi0 VSS; -0.0020 K- gamma VSP_PWAVE; -Enddecay -# -# The decays below are for particle aliases and used when -# generating CP violating decays that depends on the decay -# of the neutral K* -# -Decay K*L -1.0000 pi0 K_L0 VSS; -Enddecay -Decay K*S -1.0000 pi0 K_S0 VSS; -Enddecay -Decay K*BL -1.0000 pi0 K_L0 VSS; -Enddecay -Decay K*BS -1.0000 pi0 K_S0 VSS; -Enddecay -Decay K*0T -1.0000 pi- K+ VSS; -Enddecay -Decay anti-K*0T -1.0000 pi+ K- VSS; -Enddecay -# -# -Decay K_0*+ -0.6667 K0 pi+ PHSP; -0.3333 K+ pi0 PHSP; -Enddecay -# -Decay K_0*- -0.6667 anti-K0 pi- PHSP; -0.3333 K- pi0 PHSP; -Enddecay -# -Decay K_0*0 -0.6667 K+ pi- PHSP; -0.3333 K0 pi0 PHSP; -Enddecay -# -Decay K_0*0N -1.0000 K0 pi0 PHSP; -Enddecay -# -Decay anti-K_0*0 -0.6667 K- pi+ PHSP; -0.3333 anti-K0 pi0 PHSP; -Enddecay -# -Decay anti-K_0*0N -1.0000 anti-K0 pi0 PHSP; -Enddecay -# -Decay K_10 -0.2800 rho- K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1400 rho0 K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1067 K*+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0533 K*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -#To large masses can cause infinit loops -0.1100 omega K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1444 K0 pi+ pi- PHSP; -0.1244 K+ pi- pi0 PHSP; -0.0412 K0 pi0 pi0 PHSP; -Enddecay -# -Decay anti-K_10 -0.2800 rho+ K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1400 rho0 anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1067 K*- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0533 anti-K*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -#To large masses can cause infinit loops -0.1100 omega anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1444 anti-K0 pi+ pi- PHSP; -0.1244 K- pi+ pi0 PHSP; -0.0412 anti-K0 pi0 pi0 PHSP; -Enddecay -# -Decay K_1+ -0.2800 rho+ K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1400 rho0 K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1067 K*0 pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0533 K*+ pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -#To large masses can cause infinit loops -0.1100 omega K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1444 K+ pi+ pi- PHSP; -0.1244 K0 pi+ pi0 PHSP; -0.0412 K+ pi0 pi0 PHSP; -Enddecay -# -Decay K_1- -0.2800 rho- anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1400 rho0 K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1067 anti-K*0 pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0533 K*- pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -#To large masses can cause infinit loops -0.1100 omega K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1444 K- pi+ pi- PHSP; -0.1244 anti-K0 pi- pi0 PHSP; -0.0412 K- pi0 pi0 PHSP; -Enddecay -# -Decay K'_1+ -0.6300 K*0 pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.3100 K*+ pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0200 rho+ K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0100 rho0 K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0100 omega K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0133 K+ pi+ pi- PHSP; -0.0067 K+ pi0 pi0 PHSP; -Enddecay -# -Decay K'_1- -0.6300 anti-K*0 pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.3100 K*- pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0200 rho- anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0100 rho0 K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0100 omega K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0133 K- pi+ pi- PHSP; -0.0067 K- pi0 pi0 PHSP; -Enddecay -# -Decay K'_10 -0.6300 K*+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.3100 K*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0200 rho- K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0100 rho0 K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0100 omega K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0133 K0 pi+ pi- PHSP; -0.0067 K0 pi0 pi0 PHSP; -Enddecay -# -Decay anti-K'_10 -0.6300 K*- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.3100 anti-K*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0200 rho+ K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0100 rho0 anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0100 omega anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0133 anti-K0 pi+ pi- PHSP; -0.0067 anti-K0 pi0 pi0 PHSP; -Enddecay -# -Decay K_2*+ -0.3340 K0 pi+ TSS; -0.1670 K+ pi0 TSS; -0.1645 K*0 pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0835 K*+ pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0450 K*0 pi+ pi0 PHSP; -0.0450 K*+ pi+ pi- PHSP; -0.0450 K*+ pi0 pi0 PHSP; -0.0580 rho+ K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0290 rho0 K+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0290 omega K+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -Enddecay -# -Decay K_2*- -0.3340 anti-K0 pi- TSS; -0.1670 K- pi0 TSS; -0.1645 anti-K*0 pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0835 K*- pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0450 anti-K*0 pi- pi0 PHSP; -0.0450 K*- pi+ pi- PHSP; -0.0450 K*- pi0 pi0 PHSP; -0.0580 rho- K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0290 rho0 K- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0290 omega K- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -Enddecay -# -Decay K_2*0 -0.3340 K+ pi- TSS; -0.1670 K0 pi0 TSS; -0.1645 K*+ pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0835 K*0 pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0450 K*0 pi+ pi- PHSP; -0.0450 K*0 pi0 pi0 PHSP; -0.0450 K*+ pi- pi0 PHSP; -0.0580 rho- K+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0290 rho0 K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0290 omega K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -Enddecay -# -Decay anti-K_2*0 -0.3340 K- pi+ TSS; -0.1670 anti-K0 pi0 TSS; -0.1645 K*- pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0835 anti-K*0 pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0450 anti-K*0 pi+ pi- PHSP; -0.0450 anti-K*0 pi0 pi0 PHSP; -0.0450 K*- pi+ pi0 PHSP; -0.0580 rho+ K- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0290 rho0 anti-K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0290 omega anti-K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -Enddecay - - - - -# Decay K*(1410) -Decay K'*0 -0.0467 K+ pi- VSS; -0.0233 K0 pi0 VSS; -0.5760 K*+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.2880 K*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0440 rho- K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0220 rho0 K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# -Decay anti-K'*0 -0.0467 K- pi+ VSS; -0.0233 anti-K0 pi0 VSS; -0.5760 K*- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.2880 anti-K*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0440 rho+ K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0220 rho0 anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# -Decay K'*+ -0.0467 K0 pi+ VSS; -0.0233 K+ pi0 VSS; -0.5760 K*0 pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.2880 K*+ pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0440 rho+ K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0220 rho0 K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# -Decay K'*- -0.0467 anti-K0 pi- VSS; -0.0233 K- pi0 VSS; -0.5760 anti-K*0 pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.2880 K*- pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0440 rho- K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0220 rho0 K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# - - -# Decay K*(1680) -Decay K''*0 -0.2580 K+ pi- VSS; -0.1290 K0 pi0 VSS; -0.2093 K*+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1047 K*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1993 rho- K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0997 rho0 K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# -Decay anti-K''*0 -0.2580 K- pi+ VSS; -0.1290 anti-K0 pi0 VSS; -0.2093 K*- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1047 anti-K*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1993 rho+ K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0997 rho0 anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# -Decay K''*+ -0.2580 K0 pi+ VSS; -0.1290 K+ pi0 VSS; -0.2093 K*0 pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1047 K*+ pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1993 rho+ K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0997 rho0 K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# -Decay K''*- -0.2580 anti-K0 pi- VSS; -0.1290 K- pi0 VSS; -0.2093 anti-K*0 pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1047 K*- pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1993 rho- K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0997 rho0 K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay - -Decay Xsd -1.00000 d anti-s PYTHIA 42; -Enddecay - -Decay anti-Xsd -1.00000 anti-d s PYTHIA 42; -Enddecay - -Decay Xsu -1.00000 u anti-s PYTHIA 42; -Enddecay - -Decay anti-Xsu -1.00000 anti-u s PYTHIA 42; -Enddecay - -# Xss decays can be uncommented when Jst74/lucomp.F recognizes Xss -Decay Xss -1.00000 s anti-s PYTHIA 42; -Enddecay - -Decay anti-Xss -1.00000 anti-s s PYTHIA 42; -Enddecay - -# -# Light Mesons Updated to PDG 2008 -# -Decay pi0 -0.988228297 gamma gamma PHSP; #[Reconstructed PDG2011] -0.011738247 e+ e- gamma PI0_DALITZ; #[Reconstructed PDG2011] -0.000033392 e+ e+ e- e- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000065 e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay eta -0.393100000 gamma gamma PHSP; #[Reconstructed PDG2011] -0.325700000 pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.227400000 pi- pi+ pi0 ETA_DALITZ; #[Reconstructed PDG2011] -0.046000000 gamma pi- pi+ PHSP; #[Reconstructed PDG2011] -0.007000000 gamma e+ e- PHSP; #[Reconstructed PDG2011] -0.000310000 gamma mu+ mu- PHSP; #[Reconstructed PDG2011] -0.000270000 gamma gamma pi0 PHSP; #[Reconstructed PDG2011] -0.000214200 pi+ pi- e+ e- PHSP; #[Reconstructed PDG2011] -0.000005800 mu+ mu- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay rho0 -1.000 pi+ pi- VSS; -Enddecay -Decay rho+ -1.000 pi+ pi0 VSS; -Enddecay -Decay rho- -1.000 pi- pi0 VSS; -Enddecay -# -Decay omega -0.892000000 pi- pi+ pi0 OMEGA_DALITZ; #[Reconstructed PDG2011] -0.082800000 pi0 gamma VSP_PWAVE; #[Reconstructed PDG2011] -0.015300000 pi- pi+ VSS; #[Reconstructed PDG2011] -0.000460000 eta gamma VSP_PWAVE; #[Reconstructed PDG2011] -0.000770000 pi0 e+ e- PHOTOS PHSP; #[Reconstructed PDG2011] -0.000130000 pi0 mu+ mu- PHOTOS PHSP; #[Reconstructed PDG2011] -0.00150 pi+ pi- gamma PHSP; -0.000066000 pi0 pi0 gamma PHSP; #[Reconstructed PDG2011] -0.00050 pi+ pi- pi+ pi- PHSP; -0.000072800 e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000090000 mu+ mu- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay eta' -0.432000000 pi+ pi- eta PHSP; #[Reconstructed PDG2011] -0.217000000 pi0 pi0 eta PHSP; #[Reconstructed PDG2011] -0.293511000 rho0 gamma SVP_HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.027500000 omega gamma SVP_HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.022200000 gamma gamma PHSP; #[Reconstructed PDG2011] -0.001680000 pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.000109000 gamma mu- mu+ PHOTOS PHSP; #[Reconstructed PDG2011] -0.003600000 pi+ pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.002400000 pi+ pi- e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay phi -0.489000000 K+ K- VSS; #[Reconstructed PDG2011] -0.342000000 K_L0 K_S0 VSS; #[Reconstructed PDG2011] -0.0425 rho+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0425 rho0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0425 rho- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0250 pi+ pi- pi0 PHSP; -0.013090000 eta gamma VSP_PWAVE; #[Reconstructed PDG2011] -0.000687600 pi0 gamma VSP_PWAVE; #[Reconstructed PDG2011] -0.000295400 e+ e- PHOTOS VLL; #[Reconstructed PDG2011] -0.000287000 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] -0.000113000 pi0 pi0 gamma PHSP; #[Reconstructed PDG2011] -0.000115000 eta e+ e- PHSP; #[Reconstructed PDG2011] -0.000322000 f_0 gamma PHSP; #[Reconstructed PDG2011] -0.000074000 pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000047000 omega pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000041000 pi+ pi- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000004000 pi+ pi- pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000011200 pi0 e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000072700 pi0 eta gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000062500 eta' gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000014000 mu+ mu- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay a_1+ -0.4920 rho0 pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.5080 rho+ pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -Decay a_10 -0.5000 rho- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.5000 rho+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -Decay a_1- -0.4920 rho0 pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.5080 rho- pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# -Decay a_2+ -0.3500 rho0 pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.3500 rho+ pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.1430 eta pi+ TSS; -0.1000 omega pi+ pi0 PHSP; -0.0490 anti-K0 K+ TSS; -0.0027 pi+ gamma PHSP; -0.0053 eta' pi+ TSS; -Enddecay -# -Decay a_2- -0.3500 rho0 pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.3500 rho- pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.1430 eta pi- TSS; -0.1000 omega pi- pi0 PHSP; -0.0490 anti-K0 K- TSS; -0.0027 pi- gamma PHSP; -0.0053 eta' pi- TSS; -Enddecay -# -Decay a_20 -0.3500 rho+ pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.3500 rho- pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.1430 eta pi0 TSS; -0.1000 omega pi+ pi- PHSP; -0.0245 K+ K- TSS; -0.01225 K_L0 K_L0 TSS; -0.01225 K_S0 K_S0 TSS; -0.0027 pi0 gamma PHSP; -0.0053 eta' pi0 TSS; -Enddecay -# -Decay b_1+ -0.9984 omega pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0016 pi+ gamma VSP_PWAVE; -Enddecay -Decay b_1- -0.9984 omega pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0016 pi- gamma VSP_PWAVE; -Enddecay -Decay b_10 -0.9984 omega pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0016 pi0 gamma VSP_PWAVE; -Enddecay -# -Decay a_00 -0.9000 eta pi0 PHSP; -0.0500 K+ K- PHSP; -0.0250 K_S0 K_S0 PHSP; -0.0250 K_L0 K_L0 PHSP; -Enddecay -Decay a_0+ -0.9000 eta pi+ PHSP; -0.1000 anti-K0 K+ PHSP; -Enddecay -Decay a_0- -0.9000 eta pi- PHSP; -0.1000 K0 K- PHSP; -Enddecay -# -Decay f_0 -0.6667 pi+ pi- PHSP; -0.3333 pi0 pi0 PHSP; -#0.1100 K+ K- PHSP; -#0.0550 K_S0 K_S0 PHSP; -#0.0550 K_L0 K_L0 PHSP; -Enddecay -# -# -# MK: Based on PDG 2014 without any attempt to really include everything. One -# thing, which is missing is KK mode, but data are scattered quite lot and -# I would also need to find place where to make space for it. For needs I -# have at this moment, this should be sufficient -#Decay f_0(1370) -#0.17333 pi+ pi- PHSP; -#0.08667 pi0 pi0 PHSP; -#0.26000 pi+ pi+ pi- pi- PHSP; -#0.32000 pi+ pi- pi0 pi0 PHSP; -#0.10667 rho+ rho- PHSP; -#0.05333 rho0 rho0 PHSP; -#Enddecay -Decay f'_0 -0.5200 pi+ pi- PHSP; -0.2600 pi0 pi0 PHSP; -0.0750 pi+ pi+ pi- pi- PHSP; -0.0750 pi+ pi- pi0 pi0 PHSP; -0.0350 K+ K- PHSP; -0.0175 K_S0 K_S0 PHSP; -0.0175 K_L0 K_L0 PHSP; -Enddecay -# -Decay f_1 -0.110000000 rho0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.043364159 rho0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.043442860 rho+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.043442860 rho- pi+ pi0 PHSP; #[Reconstructed PDG2011] -0.094440999 a_00 pi0 VSS; #[Reconstructed PDG2011] -0.094440999 a_0+ pi- VSS; #[Reconstructed PDG2011] -0.094440999 a_0- pi+ VSS; #[Reconstructed PDG2011] -0.086570916 eta pi+ pi- PHSP; #[Reconstructed PDG2011] -0.043285458 eta pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.020226114 K+ K- pi0 PHSP; #[Reconstructed PDG2011] -0.010152407 K0 anti-K0 pi0 PHSP; #[Reconstructed PDG2011] -0.020226114 anti-K0 K+ pi- PHSP; #[Reconstructed PDG2011] -0.020226114 K0 K- pi+ PHSP; #[Reconstructed PDG2011] -0.055000000 gamma rho0 PHSP; #[Reconstructed PDG2011] -0.220000000 pi0 pi0 pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000000 pi+ pi+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000740000 phi gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay f'_1 -0.2500 K+ K- pi0 PHSP; -0.2500 K0 anti-K0 pi0 PHSP; -0.2500 anti-K0 K+ pi- PHSP; -0.2500 K0 K- pi+ PHSP; -Enddecay -# -Decay f_2 -0.5650 pi+ pi- TSS; -0.2820 pi0 pi0 TSS; -0.028000000 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.071000000 pi+ pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.003000000 pi0 pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.0230 K+ K- TSS; -0.0115 K_S0 K_S0 TSS; -0.0115 K_L0 K_L0 TSS; -0.004000000 eta eta TSS; #[Reconstructed PDG2011] -0.000016400 gamma gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay f_0(1500) -0.019000000 eta eta' PHSP; #[Reconstructed PDG2011] -0.051000000 eta eta PHSP; #[Reconstructed PDG2011] -0.1410 pi0 pi0 pi0 pi0 PHSP; -0.3540 pi+ pi- pi+ pi- PHSP; -0.2330 pi+ pi- PHSP; -0.1160 pi0 pi0 PHSP; -0.0430 K+ K- PHSP; -0.0215 K_S0 K_S0 PHSP; -0.0215 K_L0 K_L0 PHSP; -Enddecay -# -Decay f'_2 -0.443904021 K+ K- TSS; #[Reconstructed PDG2011] -0.221952010 K_S0 K_S0 TSS; #[Reconstructed PDG2011] -0.221952010 K_L0 K_L0 TSS; #[Reconstructed PDG2011] -0.104000000 eta eta TSS; #[Reconstructed PDG2011] -0.005493862 pi+ pi- TSS; #[Reconstructed PDG2011] -0.002696987 pi0 pi0 TSS; #[Reconstructed PDG2011] -0.000001110 gamma gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay h_1 -0.3333 rho+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.3333 rho- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.3334 rho0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# -Decay h'_1 -0.2500 K*+ K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.2500 K*- K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.2500 anti-K*0 K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.2500 K*0 anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# -Decay rho(2S)+ -0.4000 pi+ pi0 PHSP; -0.4000 pi+ pi+ pi- pi0 PHSP; -0.2000 pi+ pi0 pi0 pi0 PHSP; -Enddecay -Decay rho(2S)- -0.4000 pi- pi0 PHSP; -0.4000 pi- pi+ pi- pi0 PHSP; -0.2000 pi- pi0 pi0 pi0 PHSP; -Enddecay -Decay rho(2S)0 -0.4000 pi+ pi- PHSP; -0.3500 pi+ pi- pi+ pi- PHSP; -0.1500 pi+ pi- pi0 pi0 PHSP; -0.1000 pi0 pi0 pi0 pi0 PHSP; -Enddecay -Decay phi(1680) -0.08 pi+ pi- PHSP; -0.05 pi+ pi+ pi- pi- PHSP; -0.10 pi0 pi+ pi- PHSP; -0.10 pi0 pi+ pi+ pi- pi- PHSP; -0.12 pi0 pi0 pi+ pi- PHSP; -0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; -0.05 pi0 pi0 pi0 pi+ pi- PHSP; -0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -0.04 K+ K- pi+ pi- PHSP; -0.02 K0 K- pi+ PHSP; -0.02 anti-K0 K+ pi- PHSP; -0.02 K0 K- pi+ pi+ pi- PHSP; -0.02 anti-K0 K+ pi- pi- pi+ PHSP; -0.02 K0 K- pi0 pi+ PHSP; -0.02 anti-K0 K+ pi0 pi- PHSP; -0.02 eta pi0 pi+ pi- PHSP; -0.01 eta rho- pi0 pi+ PHSP; -0.01 eta rho+ pi0 pi- PHSP; -Enddecay -Decay rho(3S)0 -0.08 pi+ pi- PHSP; -0.05 pi+ pi+ pi- pi- PHSP; -0.10 pi0 pi+ pi- PHSP; -0.10 pi0 pi+ pi+ pi- pi- PHSP; -0.12 pi0 pi0 pi+ pi- PHSP; -0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; -0.05 pi0 pi0 pi0 pi+ pi- PHSP; -0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -0.04 K+ K- pi+ pi- PHSP; -0.02 K0 K- pi+ PHSP; -0.02 anti-K0 K+ pi- PHSP; -0.02 K0 K- pi+ pi+ pi- PHSP; -0.02 anti-K0 K+ pi- pi- pi+ PHSP; -0.02 K0 K- pi0 pi+ PHSP; -0.02 anti-K0 K+ pi0 pi- PHSP; -0.02 eta pi0 pi+ pi- PHSP; -0.01 eta rho- pi0 pi+ PHSP; -0.01 eta rho+ pi0 pi- PHSP; -Enddecay -Decay omega(1650) -0.08 pi+ pi- PHSP; -0.05 pi+ pi+ pi- pi- PHSP; -0.10 pi0 pi+ pi- PHSP; -0.10 pi0 pi+ pi+ pi- pi- PHSP; -0.12 pi0 pi0 pi+ pi- PHSP; -0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; -0.05 pi0 pi0 pi0 pi+ pi- PHSP; -0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -0.04 K+ K- pi+ pi- PHSP; -0.02 K0 K- pi+ PHSP; -0.02 anti-K0 K+ pi- PHSP; -0.02 K0 K- pi+ pi+ pi- PHSP; -0.02 anti-K0 K+ pi- pi- pi+ PHSP; -0.02 K0 K- pi0 pi+ PHSP; -0.02 anti-K0 K+ pi0 pi- PHSP; -0.02 eta pi0 pi+ pi- PHSP; -0.01 eta rho- pi0 pi+ PHSP; -0.01 eta rho+ pi0 pi- PHSP; -Enddecay -#Decay rho(1900) -#0.08 pi+ pi- PHSP; -#0.05 pi+ pi+ pi- pi- PHSP; -#0.10 pi0 pi+ pi- PHSP; -#0.10 pi0 pi+ pi+ pi- pi- PHSP; -#0.12 pi0 pi0 pi+ pi- PHSP; -#0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -#0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; -#0.05 pi0 pi0 pi0 pi+ pi- PHSP; -#0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -#0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -#0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -#0.04 K+ K- pi+ pi- PHSP; -#0.02 K0 K- pi+ PHSP; -#0.02 anti-K0 K+ pi- PHSP; -#0.02 K0 K- pi+ pi+ pi- PHSP; -#0.02 anti-K0 K+ pi- pi- pi+ PHSP; -#0.02 K0 K- pi0 pi+ PHSP; -#0.02 anti-K0 K+ pi0 pi- PHSP; -#0.02 eta pi0 pi+ pi- PHSP; -#0.01 eta rho- pi0 pi+ PHSP; -#0.01 eta rho+ pi0 pi- PHSP; -#Enddecay -Decay omega(2S) -0.08 pi+ pi- PHSP; -0.05 pi+ pi+ pi- pi- PHSP; -0.10 pi0 pi+ pi- PHSP; -0.10 pi0 pi+ pi+ pi- pi- PHSP; -0.12 pi0 pi0 pi+ pi- PHSP; -0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; -0.05 pi0 pi0 pi0 pi+ pi- PHSP; -0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -0.04 K+ K- pi+ pi- PHSP; -0.02 K0 K- pi+ PHSP; -0.02 anti-K0 K+ pi- PHSP; -0.02 K0 K- pi+ pi+ pi- PHSP; -0.02 anti-K0 K+ pi- pi- pi+ PHSP; -0.02 K0 K- pi0 pi+ PHSP; -0.02 anti-K0 K+ pi0 pi- PHSP; -0.02 eta pi0 pi+ pi- PHSP; -0.01 eta rho- pi0 pi+ PHSP; -0.01 eta rho+ pi0 pi- PHSP; -Enddecay -#Decay rho(2150) -#0.08 pi+ pi- PHSP; -#0.05 pi+ pi+ pi- pi- PHSP; -#0.10 pi0 pi+ pi- PHSP; -#0.10 pi0 pi+ pi+ pi- pi- PHSP; -#0.12 pi0 pi0 pi+ pi- PHSP; -#0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -#0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; -#0.05 pi0 pi0 pi0 pi+ pi- PHSP; -#0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -#0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -#0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -#0.04 K+ K- pi+ pi- PHSP; -#0.02 K0 K- pi+ PHSP; -#0.02 anti-K0 K+ pi- PHSP; -#0.02 K0 K- pi+ pi+ pi- PHSP; -#0.02 anti-K0 K+ pi- pi- pi+ PHSP; -#0.02 K0 K- pi0 pi+ PHSP; -#0.02 anti-K0 K+ pi0 pi- PHSP; -#0.02 eta pi0 pi+ pi- PHSP; -#0.01 eta rho- pi0 pi+ PHSP; -#0.01 eta rho+ pi0 pi- PHSP; -#Enddecay -#Decay omega(1960) -#0.08 pi+ pi- PHSP; -#0.05 pi+ pi+ pi- pi- PHSP; -#0.10 pi0 pi+ pi- PHSP; -#0.10 pi0 pi+ pi+ pi- pi- PHSP; -#0.12 pi0 pi0 pi+ pi- PHSP; -#0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -#0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; -#0.05 pi0 pi0 pi0 pi+ pi- PHSP; -#0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -#0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -#0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -#0.04 K+ K- pi+ pi- PHSP; -#0.02 K0 K- pi+ PHSP; -#0.02 anti-K0 K+ pi- PHSP; -#0.02 K0 K- pi+ pi+ pi- PHSP; -#0.02 anti-K0 K+ pi- pi- pi+ PHSP; -#0.02 K0 K- pi0 pi+ PHSP; -#0.02 anti-K0 K+ pi0 pi- PHSP; -#0.02 eta pi0 pi+ pi- PHSP; -#0.01 eta rho- pi0 pi+ PHSP; -#0.01 eta rho+ pi0 pi- PHSP; -#Enddecay -#Decay rho(1965) -#0.08 pi+ pi- PHSP; -#0.05 pi+ pi+ pi- pi- PHSP; -#0.10 pi0 pi+ pi- PHSP; -#0.10 pi0 pi+ pi+ pi- pi- PHSP; -#0.12 pi0 pi0 pi+ pi- PHSP; -#0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -#0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; -#0.05 pi0 pi0 pi0 pi+ pi- PHSP; -#0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -#0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -#0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -#0.04 K+ K- pi+ pi- PHSP; -#0.02 K0 K- pi+ PHSP; -#0.02 anti-K0 K+ pi- PHSP; -#0.02 K0 K- pi+ pi+ pi- PHSP; -#0.02 anti-K0 K+ pi- pi- pi+ PHSP; -#0.02 K0 K- pi0 pi+ PHSP; -#0.02 anti-K0 K+ pi0 pi- PHSP; -#0.02 eta pi0 pi+ pi- PHSP; -#0.01 eta rho- pi0 pi+ PHSP; -#0.01 eta rho+ pi0 pi- PHSP; -#Enddecay -# -# -# cc= mesons Updated to PDG 2008 -# -Decay eta_c -0.001300000 p+ anti-p- PHSP; #[Reconstructed PDG2011] -0.002700000 phi phi SVV_HELAMP 1.0 0.0 0.0 0.0 -1.0 0.0; #[Reconstructed PDG2011] -0.002900000 phi K+ K- PHSP; #[Reconstructed PDG2011] -0.0067 rho0 rho0 SVV_HELAMP 1.0 0.0 0.0 0.0 -1.0 0.0; -0.0133 rho+ rho- SVV_HELAMP 1.0 0.0 0.0 0.0 -1.0 0.0; -0.012000000 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.001600000 K+ K- K+ K- PHSP; #[Reconstructed PDG2011] -0.015000000 K+ K- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.0327 eta pi+ pi- PHSP; -0.0163 eta pi0 pi0 PHSP; -0.0273 eta' pi+ pi- PHSP; -0.0137 eta' pi0 pi0 PHSP; -0.0117 pi0 K+ K- PHSP; -0.0233 K+ anti-K0 pi- PHSP; -0.0233 K- K0 pi+ PHSP; -0.0117 K0 anti-K0 pi0 PHSP; -0.0046 K*+ K*- SVV_HELAMP 1.0 0.0 0.0 0.0 -1.0 0.0; -0.0046 K*0 anti-K*0 SVV_HELAMP 1.0 0.0 0.0 0.0 -1.0 0.0 ; -0.01 K*0 K- pi+ PHSP; -0.01 anti-K*0 K+ pi- PHSP; -# -#March 2009 New Modes -0.01500 K*0 anti-K*0 pi+ pi- PHSP; -0.007100000 K+ K- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.015000000 pi+ pi- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.001040000 Lambda0 anti-Lambda0 PHSP; #[Reconstructed PDG2011] -0.007600000 f_2 f_2 PHSP; #[Reconstructed PDG2011] -0.027000000 f_2 f'_2 PHSP; #[Reconstructed PDG2011] -# -0.682497000 rndmflav anti-rndmflav PYTHIA 42; -0.000063000 gamma gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay eta_c(2S) - 0.019 K+ anti-K0 pi- PHSP; - 0.019 K- K0 pi+ PHSP; - 0.0095 pi0 K+ K- PHSP; - 0.0095 K0 anti-K0 pi0 PHSP; -0.943 rndmflav anti-rndmflav PYTHIA 42; -Enddecay -# -Decay J/psi -0.059400000 e+ e- PHOTOS VLL; #[Reconstructed PDG2011] -0.059300000 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] -0.005600000 rho0 pi0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.00563 rho+ pi- PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.00563 rho- pi+ PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.004000000 omega pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.00364 a_20 rho0 PHSP; -0.00363 a_2+ rho- PHSP; -0.00363 a_2- rho+ PHSP; -0.008500000 omega pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.004300000 omega f_2 PHSP; #[Reconstructed PDG2011] -0.004300000 omega pi+ pi- PHSP; #[Reconstructed PDG2011] -0.00300 K*0 anti-K_2*0 PHSP; -0.00300 anti-K*0 K_2*0 PHSP; -0.00305 omega K*0 anti-K0 PHSP; -0.00305 omega anti-K*0 K0 PHSP; -0.00256 K*+ K- PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.00256 K*- K+ PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.002195 K*0 anti-K0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.002195 anti-K*0 K0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.00190 K_1+ K- PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.00190 K_1- K+ PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.003400000 omega pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.001500000 b_1+ pi- PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.001500000 b_1- pi+ PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -# -0.001700000 omega pi- K+ K_S0 PHSP; #[Reconstructed PDG2011] -0.0017 omega pi- K+ K_L0 PHSP; -0.001700000 omega pi+ K- K_S0 PHSP; #[Reconstructed PDG2011] -0.0017 omega pi+ K- K_L0 PHSP; -0.0000 omega pi- K+ K0 PHSP; -0.0000 omega pi- K+ anti-K0 PHSP; -0.0000 omega pi+ K- K0 PHSP; -0.0000 omega pi+ K- anti-K0 PHSP; -# -0.002300000 b_10 pi0 PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.002290000 eta pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000545 phi K*0 anti-K0 PHSP; -0.000545 phi anti-K*0 K0 PHSP; -0.000545 phi K*+ K- PHSP; -0.000545 phi K*- K+ PHSP; -0.0008 omega K0 anti-K0 PHSP; -0.0008 omega K+ K- PHSP; -0.001660000 phi pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.001600000 Delta++ anti-p- pi- PHSP; #[Reconstructed PDG2011] -0.0016 anti-Delta-- p+ pi+ PHSP; -0.001740000 omega eta PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000915 phi K0 anti-K0 PHSP; -0.000915 phi K+ K- PHSP; -0.001100000 omega p+ anti-p- PHSP; #[Reconstructed PDG2011] -0.0011 Delta++ anti-Delta-- PHSP; -0.000515 Sigma- anti-Sigma+ PHSP; -0.001500000 Sigma+ anti-Sigma- PHSP; #[Reconstructed PDG2011] -0.000720000 eta pi+ pi- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000147000 pi+ pi- PHSP; #[Reconstructed PDG2011] - -0.017000000 gamma eta_c PHSP; #[Reconstructed PDG2011] -0.008300000 gamma pi+ pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.0061 gamma eta pi+ pi- PHSP; -0.00225 gamma rho+ rho- PHSP; -0.00225 gamma rho0 rho0 PHSP; -0.005280000 gamma eta' PHSP; #[Reconstructed PDG2011] -0.001850000 gamma pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.002100000 gamma K+ K- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.001610000 gamma omega omega PHSP; #[Reconstructed PDG2011] -0.001430000 gamma f_2 PHSP; #[Reconstructed PDG2011] -0.0040 gamma K*0 anti-K*0 PHSP; -# -# March 2009 New Modes -0.001100000 eta pi- K+ K_S0 PHSP; #[Reconstructed PDG2011] -0.0011 eta pi- K+ K_L0 PHSP; -0.001100000 eta pi+ K- K_S0 PHSP; #[Reconstructed PDG2011] -0.0011 eta pi+ K- K_L0 PHSP; -0.0000 eta pi- K+ K0 PHSP; -0.0000 eta pi- K+ anti-K0 PHSP; -0.0000 eta pi+ K- K0 PHSP; -0.0000 eta pi+ K- anti-K0 PHSP; -# -0.055000000 pi+ pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.029000000 pi+ pi- pi+ pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.020700000 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.019400000 pi+ pi- pi0 K+ K- PHSP; #[Reconstructed PDG2011] -0.016100000 pi+ pi- pi+ pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.009000000 pi+ pi- pi+ pi- pi+ pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.006600000 pi+ pi- K+ K- PHSP; #[Reconstructed PDG2011] -0.001840000 pi+ pi- K+ K- eta PHSP; #[Reconstructed PDG2011] -0.002450000 pi0 pi0 K+ K- PHSP; #[Reconstructed PDG2011] -0.005000000 pi+ pi- pi+ pi- K+ K- PHSP; #[Reconstructed PDG2011] -0.00102 K+ K- pi0 PHSP; -0.00102 K0 anti-K0 pi0 PHSP; -0.00203 K+ anti-K0 pi- PHSP; -0.00203 K- K0 pi+ PHSP; -0.003550000 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -#### Already included above 0.00229 pi+ pi- pi+ pi- eta PHSP; -0.004300000 pi+ pi- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.002170000 p+ anti-p- PHSP; #[Reconstructed PDG2011] -0.001190000 p+ anti-p- pi0 PHSP; #[Reconstructed PDG2011] -0.006000000 p+ anti-p- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.002300000 p+ anti-p- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.002000000 p+ anti-p- eta PHSP; #[Reconstructed PDG2011] -0.002200000 n0 anti-n0 PHSP; #[Reconstructed PDG2011] -0.004000000 n0 anti-n0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.001290000 Sigma0 anti-Sigma0 PHSP; #[Reconstructed PDG2011] -0.002120000 p+ anti-n0 pi- PHSP; #[Reconstructed PDG2011] -0.001200000 Xi0 anti-Xi0 PHSP; #[Reconstructed PDG2011] -0.000850000 Xi- anti-Xi+ PHSP; #[Reconstructed PDG2011] -0.001610000 Lambda0 anti-Lambda0 PHSP; #[Reconstructed PDG2011] -# -0.084693481 rndmflav anti-rndmflav PYTHIA 42; -0.365559757 g g g PYTHIA 92; -0.032103862 gamma g g PYTHIA 92; -0.0 K0 anti-K0 PHSP; -0.0 K_S0 K_S0 PHSP; -0.0 K_L0 K_L0 PHSP; -0.000146000 K_S0 K_L0 PHSP; #[Reconstructed PDG2011] -0.001900000 K'_1+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001900000 K'_1- K+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000800000 phi f'_2 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000870000 phi pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000560000 phi pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000680000 omega f'_1 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000750000 phi eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000590000 Xi*- anti-Xi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000450000 omega pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000400000 phi eta' PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000320000 phi f_0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000320000 Xi*0 anti-Xi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000260000 phi f_1 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000400000 eta pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000182000 omega eta' PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000140000 omega f_0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000230000 K*0 anti-K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000720000 phi f_2 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000210000 p+ anti-p- eta' PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000045000 p+ anti-p- phi PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000890000 p+ K- anti-Lambda0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000760000 K+ K- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000290000 p+ K- anti-Sigma0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000237000 K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000260000 Lambda0 anti-Lambda0 eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000012000 gamma gamma gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000950000 gamma f_2 f_2 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001104000 gamma eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000610000 gamma f_1 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000450000 gamma f'_2 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000400000 gamma phi phi PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000380000 gamma p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000034900 gamma pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.008800000 gamma e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay psi(2S) -0.007720000 e+ e- PHOTOS VLL; #[Reconstructed PDG2011] -0.007700000 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] -0.003000000 tau+ tau- PHOTOS VLL; #[Reconstructed PDG2011] -0.336000000 J/psi pi+ pi- VVPIPI; #[Reconstructed PDG2011] -0.177300000 J/psi pi0 pi0 VVPIPI; #[Reconstructed PDG2011] -0.032800000 J/psi eta PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.001300000 J/psi pi0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.096200000 gamma chi_c0 PHSP; #[Reconstructed PDG2011] -0.092000000 gamma chi_c1 PHSP; #[Reconstructed PDG2011] -0.087400000 gamma chi_c2 PHSP; #[Reconstructed PDG2011] -0.003400000 gamma eta_c PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000121000 gamma eta' PHSP; #[Reconstructed PDG2011] -0.000210000 gamma f_2 PHSP; #[Reconstructed PDG2011] -0.003500000 pi+ pi- pi+ pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000350000 pi+ pi- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.002900000 pi+ pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000200000 b_1+ pi- PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000200000 b_1- pi+ PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000240000 b_10 pi0 PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000168000 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.0000545 K*0 anti-K0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0000545 anti-K*0 K0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.000022 rho0 eta PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.000021000 omega pi0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000028000 phi eta PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000008 rho+ pi- PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.000008 rho- pi+ PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.000008 rho0 pi0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.000001 phi pi0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.000001 omega eta PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0000085 K*+ K- PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0000085 K*- K+ PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.000185000 omega K+ K- PHSP; #[Reconstructed PDG2011] -0.000340000 K+ K- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000600000 p+ anti-p- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000133000 p+ anti-p- pi0 PHSP; #[Reconstructed PDG2011] -0.000276000 p+ anti-p- PHSP; #[Reconstructed PDG2011] -0.000500000 K_1+ K- PHSP; #[Reconstructed PDG2011] -0.000500000 K_1- K+ PHSP; #[Reconstructed PDG2011] -0.000220000 rho0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000280000 Lambda0 anti-Lambda0 PHSP; #[Reconstructed PDG2011] -0.000128000 Delta++ anti-Delta-- PHSP; #[Reconstructed PDG2011] -0.000220000 Sigma0 anti-Sigma0 PHSP; #[Reconstructed PDG2011] -0.00026 Sigma*+ anti-Sigma*- PHSP; -0.000180000 Xi- anti-Xi+ PHSP; #[Reconstructed PDG2011] -0.000080000 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000063000 K+ K- PHSP; #[Reconstructed PDG2011] -0.000070000 phi K- K+ PHSP; #[Reconstructed PDG2011] -0.000117000 phi pi- pi+ PHSP; #[Reconstructed PDG2011] -0.000170000 pi+ pi- K_S0 K_S0 PHSP; #[Reconstructed PDG2011] -0.0008 h_c pi0 PHSP; -0.0 K0 anti-K0 PHSP; -0.0 K_S0 K_S0 PHSP; -0.0 K_L0 K_L0 PHSP; -0.000054000 K_S0 K_L0 PHSP; #[Reconstructed PDG2011] -# -# March 2009 New Modes -0.004800000 pi+ pi- pi+ pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.001200000 pi+ pi- pi+ pi- eta PHSP; #[Reconstructed PDG2011] -0.001300000 K+ K- pi+ pi- eta PHSP; #[Reconstructed PDG2011] -0.001000000 K+ K- pi+ pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.001900000 K+ K- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.001260000 K+ K- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -# -0.013568632 rndmflav anti-rndmflav PYTHIA 42; -0.103318590 g g g PYTHIA 92; -0.007344778 gamma g g PYTHIA 92; -0.000100000 Lambda0 anti-p- K+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000180000 Lambda0 anti-p- K+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000280000 Lambda0 anti-Lambda0 pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000260000 Sigma+ anti-Sigma- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000280000 Xi0 anti-Xi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000060000 eta p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000069000 omega p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000320000 p+ anti-n0 pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000950000 eta pi+ pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000450000 eta' pi+ pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000000 omega pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000220000 omega f_2 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000220000 rho0 K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000190000 K*0 anti-K_2*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000050000 rho0 p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000020000 pi+ pi- pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000730000 p+ anti-p- pi+ pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000060000 K+ K- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000110000 K+ K- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000031000 phi eta' PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000032000 omega eta' PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000027000 p+ anti-p- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000044000 phi f'_2 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000870000 gamma eta pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000400000 gamma pi+ pi- pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000190000 gamma K+ K- pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000029000 gamma p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000028000 gamma pi+ pi- p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay - -Decay psi(4040) -0.000010700 e+ e- PHOTOS VLL; #[Reconstructed PDG2011] -0.000014000 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] -0.000005000 tau+ tau- VLL; #[Reconstructed PDG2011] -0.002099938 D0 anti-D0 VSS; #[Reconstructed PDG2011] -0.000899973 D+ D- VSS; #[Reconstructed PDG2011] -0.167895013 D*0 anti-D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.167895013 anti-D*0 D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.181494610 D*+ D- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.181494610 D*- D+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.159695257 D*0 anti-D*0 PHSP; #[Reconstructed PDG2011] -0.098197084 D*+ D*- PHSP; #[Reconstructed PDG2011] -0.000000000 D0 anti-D0 pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D+ D- pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D0 D- pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 anti-D0 D+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 D*+ D- pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D*- D+ pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D*+ anti-D0 pi- PHSP; #[Reconstructed PDG2011] -0.000000000 D*- D0 pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 D+ anti-D*0 pi- PHSP; #[Reconstructed PDG2011] -0.000000000 D- D*0 pi+ PHSP; #[Reconstructed PDG2011] -0.040298803 D_s+ D_s- VSS; #[Reconstructed PDG2011] -Enddecay -# -Decay psi(4160) -0.000008100 e+ e- PHOTOS VLL; #[Reconstructed PDG2011] -0.000009999 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] -0.000006000 tau+ tau- VLL; #[Reconstructed PDG2011] -0.039697852 D0 anti-D0 VSS; #[Reconstructed PDG2011] -0.038697906 D+ D- VSS; #[Reconstructed PDG2011] -0.051997187 D*0 anti-D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.051997187 anti-D*0 D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.051497214 D*+ D- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.051497214 D*- D+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.298613845 D*0 anti-D*0 PHSP; #[Reconstructed PDG2011] -0.308183327 D*+ D*- PHSP; #[Reconstructed PDG2011] -0.000000000 D0 anti-D0 pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D+ D- pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D0 D- pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 anti-D0 D+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 D*+ D- pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D*- D+ pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D*+ anti-D0 pi- PHSP; #[Reconstructed PDG2011] -0.000000000 D*- D0 pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 D+ anti-D*0 pi- PHSP; #[Reconstructed PDG2011] -0.000000000 D- D*0 pi+ PHSP; #[Reconstructed PDG2011] -0.009999459 D_s+ D_s- VSS; #[Reconstructed PDG2011] -0.048897355 D_s*+ D_s- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.048897355 D_s*- D_s+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000000000 D_s+ D_s- pi0 PHSP; #[Reconstructed PDG2011] -Enddecay -# -Decay psi(4415) -0.000009400 e+ e- PHOTOS VLL; #[Reconstructed PDG2011] -0.000011000 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] -0.000007000 tau+ tau- VLL; #[Reconstructed PDG2011] -0.024399331 D0 anti-D0 VSS; #[Reconstructed PDG2011] -0.021899400 D+ D- VSS; #[Reconstructed PDG2011] -0.031999123 D*0 anti-D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.031999123 anti-D*0 D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.034299060 D*+ D- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.034299060 D*- D+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.345090544 D*0 anti-D*0 PHSP; #[Reconstructed PDG2011] -0.353890303 D*+ D*- PHSP; #[Reconstructed PDG2011] -0.000000000 D0 anti-D0 pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D+ D- pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D0 D- pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 anti-D0 D+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 D*+ D- pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D*- D+ pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D*+ anti-D0 pi- PHSP; #[Reconstructed PDG2011] -0.000000000 D*- D0 pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 D+ anti-D*0 pi- PHSP; #[Reconstructed PDG2011] -0.000000000 D- D*0 pi+ PHSP; #[Reconstructed PDG2011] -0.011799677 D_s+ D_s- VSS; #[Reconstructed PDG2011] -0.041998849 D_s*+ D_s- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.041998849 D_s*- D_s+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.026299279 D_s*+ D_s*- PHSP; #[Reconstructed PDG2011] -0.000000000 D_s+ D_s- pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D_s*+ D_s- pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D_s+ D_s*- pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D_s+ D- anti-K0 PHSP; #[Reconstructed PDG2011] -0.000000000 D_s- D+ anti-K0 PHSP; #[Reconstructed PDG2011] -0.000000000 D0 D_s- K+ PHSP; #[Reconstructed PDG2011] -0.000000000 anti-D0 D_s+ K- PHSP; #[Reconstructed PDG2011] -Enddecay -# -Decay chi_c0 -0.011600000 gamma J/psi PHSP; #[Reconstructed PDG2011] -0.000228000 p+ anti-p- PHSP; #[Reconstructed PDG2011] -0.000222000 gamma gamma PHSP; #[Reconstructed PDG2011] -0.00243 pi0 pi0 PHSP; -0.00487 pi+ pi- PHSP; -0.013800000 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.002810000 K+ K- K+ K- PHSP; #[Reconstructed PDG2011] -0.012000000 pi+ pi- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.008900000 rho0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.0100 rho+ pi- pi0 PHSP; -0.0100 rho- pi+ pi0 PHSP; -0.00057 K+ K- PHSP; -0.000920000 phi phi PHSP; #[Reconstructed PDG2011] -0.001700000 anti-K*0 K*0 PHSP; #[Reconstructed PDG2011] -0.0036 anti-K*0 K+ pi- PHSP; -0.0036 K*0 K- pi+ PHSP; -0.0043 K*+ anti-K0 pi- PHSP; -0.0043 K*- K0 pi+ PHSP; -0.018000000 pi+ pi- K+ K- PHSP; #[Reconstructed PDG2011] -0.002100000 pi+ pi- p+ anti-p- PHSP; #[Reconstructed PDG2011] -0.002680000 eta eta PHSP; #[Reconstructed PDG2011] -0.000330000 Lambda0 anti-Lambda0 PHSP; #[Reconstructed PDG2011] -0.00086 f_0 f_0 PHSP; -0.0 K0 anti-K0 PHSP; -0.003160000 K_S0 K_S0 PHSP; #[Reconstructed PDG2011] -0.00282 K_L0 K_L0 PHSP; -0.0 K_S0 K_L0 PHSP; -# -# March 2009 New Modes -0.002030000 eta' eta' PHSP; #[Reconstructed PDG2011] -0.002200000 omega omega PHSP; #[Reconstructed PDG2011] -0.00325 K_1+ K- PHSP; -0.00325 K_1- K+ PHSP; -0.000990000 K+ K- phi PHSP; #[Reconstructed PDG2011] -0.001140000 p+ anti-n0 pi- PHSP; #[Reconstructed PDG2011] -0.000525 K+ anti-p- Lambda0 PHSP; -0.000525 K- p+ Lambda0 PHSP; -0.005800000 K_S0 K_S0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.00590 K_L0 K_L0 pi+ pi- PHSP; -0.00000 K0 anti-K0 pi+ pi- PHSP; -0.001400000 K+ K- K_S0 K_S0 PHSP; #[Reconstructed PDG2011] -0.00150 K+ K- K_L0 K_L0 PHSP; -0.00000 K+ K- K0 anti-K0 PHSP; -# -0.799360000 rndmflav anti-rndmflav PYTHIA 42; -0.034000000 pi+ pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.005700000 K+ K- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.003100000 K+ K- eta pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000570000 p+ anti-p- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000370000 p+ anti-p- eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001050000 pi0 pi0 p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000420000 Sigma0 anti-Sigma0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000310000 Sigma+ anti-Sigma- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000320000 Xi0 anti-Xi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000490000 Xi- anti-Xi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay chi_c1 -0.344000000 J/psi gamma VVP 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.007600000 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000073000 p+ anti-p- PHSP; #[Reconstructed PDG2011] -0.005800000 pi+ pi- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.004500000 pi+ pi- K+ K- PHSP; #[Reconstructed PDG2011] -0.003900000 rho0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.0020 rho+ pi- pi0 PHSP; -0.0020 rho- pi+ pi0 PHSP; -0.0016 anti-K*0 K+ pi- PHSP; -0.0016 K*0 K- pi+ PHSP; -0.001500000 anti-K*0 K*0 PHSP; #[Reconstructed PDG2011] -0.0009 K*+ anti-K0 pi- PHSP; -0.0009 K*- K0 pi+ PHSP; -0.000500000 pi+ pi- p+ anti-p- PHSP; #[Reconstructed PDG2011] -0.000720000 pi+ pi- K_S0 K_S0 PHSP; #[Reconstructed PDG2011] -0.0003 K+ K- K_S0 K_S0 PHSP; -0.000118000 Lambda0 anti-Lambda0 PHSP; #[Reconstructed PDG2011] -0.00385 K+ anti-K0 pi- PHSP; -0.00385 K- K0 pi+ PHSP; -0.000560000 K+ K- K+ K- PHSP; #[Reconstructed PDG2011] -0.00000 K0 anti-K0 PHSP; -0.00001 K_S0 K_S0 PHSP; -0.00001 K_L0 K_L0 PHSP; -0.00000 K_S0 K_L0 PHSP; -# -# March 2009 New Modes -0.002200000 pi+ pi- eta PHSP; #[Reconstructed PDG2011] -0.002400000 pi+ pi- eta' PHSP; #[Reconstructed PDG2011] -0.001910000 K+ K- pi0 PHSP; #[Reconstructed PDG2011] -# -0.587724 rndmflav anti-rndmflav PYTHIA 42; -0.008700000 pi+ pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001180000 K+ K- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001200000 K+ K- eta pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000330000 K+ K- eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.002800000 f_2 eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000430000 K+ K- phi PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000120000 p+ anti-p- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000320000 K+ anti-p- Lambda0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000084000 Xi- anti-Xi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000229000 gamma rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000078000 gamma omega PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay - - -# -Decay chi_c2 -0.195000000 gamma J/psi PHSP; #[Reconstructed PDG2011] -0.000256000 gamma gamma PHSP; #[Reconstructed PDG2011] -0.000072000 p+ anti-p- PHSP; #[Reconstructed PDG2011] -0.00072 pi0 pi0 TSS; -0.00145 pi+ pi- TSS; -0.011100000 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.001780000 K+ K- K+ K- PHSP; #[Reconstructed PDG2011] -0.008600000 pi+ pi- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.009200000 pi+ pi- K+ K- PHSP; #[Reconstructed PDG2011] -0.004000000 rho0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.0046 rho+ pi- pi0 PHSP; -0.0046 rho- pi+ pi0 PHSP; -0.001090000 K+ K- TSS; #[Reconstructed PDG2011] -0.002400000 pi+ pi- K_S0 K_S0 PHSP; #[Reconstructed PDG2011] -0.0003 K+ K- K_S0 K_S0 PHSP; -0.001480000 phi phi PHSP; #[Reconstructed PDG2011] -0.00115 anti-K*0 K+ pi- PHSP; -0.00115 K*0 K- pi+ PHSP; -0.002500000 anti-K*0 K*0 PHSP; #[Reconstructed PDG2011] -0.0016 K*+ anti-K0 pi- PHSP; -0.0016 K*- K0 pi+ PHSP; -0.001320000 pi+ pi- p+ anti-p- PHSP; #[Reconstructed PDG2011] -0.000186000 Lambda0 anti-Lambda0 PHSP; #[Reconstructed PDG2011] -0.00000 K0 anti-K0 PHSP; -0.000580000 K_S0 K_S0 PHSP; #[Reconstructed PDG2011] -0.00065 K_L0 K_L0 PHSP; -0.00000 K_S0 K_L0 PHSP; -# -# March 2009 New Modes -0.001900000 omega omega PHSP; #[Reconstructed PDG2011] -0.0007 anti-K0 K+ pi- PHSP; -0.0007 K0 K- pi+ PHSP; -0.001550000 K+ K- phi PHSP; #[Reconstructed PDG2011] -0.001100000 p+ anti-n0 pi- PHSP; #[Reconstructed PDG2011] -# -0.709461000 rndmflav anti-rndmflav PYTHIA 42; -0.020000000 pi+ pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.002200000 K+ K- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001400000 K+ K- eta pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000520000 pi+ pi- eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000540000 pi+ pi- eta' PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000540000 eta eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000330000 K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000470000 p+ anti-p- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000200000 p+ anti-p- eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000850000 pi0 pi0 p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000155000 Xi- anti-Xi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay psi(3770) -0.410000000 D+ D- VSS; #[Reconstructed PDG2011] -0.520000000 D0 anti-D0 VSS; #[Reconstructed PDG2011] -0.001930000 J/psi pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000800000 J/psi pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.0073 gamma chi_c0 PHSP; -0.0029 gamma chi_c1 PHSP; -0.055850300 rndmflav anti-rndmflav PYTHIA 42; -0.000900000 J/psi eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000009700 e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000310000 phi eta PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay X_1(3872) -1.000 rndmflav anti-rndmflav PYTHIA 42; -Enddecay -# -# -# bb= Mesons Updated to PDG 2008 -# -Decay eta_b -1.000 rndmflav anti-rndmflav PYTHIA 42; -Enddecay -# -Decay Upsilon -0.024800000 e+ e- PHOTOS VLL; #[Reconstructed PDG2011] -0.024800000 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] -0.026000000 tau+ tau- VLL; #[Reconstructed PDG2011] -0.014959973 d anti-d PYTHIA 91; -0.044879919 u anti-u PYTHIA 91; -0.014959973 s anti-s PYTHIA 91; -0.044879919 c anti-c PYTHIA 91; -0.774328202 g g g PYTHIA 92; -0.028922614 gamma g g PYTHIA 92; -0.000063000 gamma pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000017000 gamma pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000011400 gamma K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000290000 gamma pi+ pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000250000 gamma pi+ pi+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000250000 gamma pi+ pi+ pi+ pi- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000240000 gamma pi+ pi+ pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000150000 gamma pi+ pi- p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000040000 gamma pi+ pi+ pi- pi- p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000020000 gamma K+ K+ K- K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000037000 gamma f'_2 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000101000 gamma f_2 PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay Upsilon(2S) -0.019100000 e+ e- PHOTOS VLL; #[Reconstructed PDG2011] -0.019300000 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] -0.020000000 tau+ tau- VLL; #[Reconstructed PDG2011] -0.181000000 Upsilon pi+ pi- PHSP; #[Reconstructed PDG2011] -0.086000000 Upsilon pi0 pi0 PHSP; #[Reconstructed PDG2011] -# V-> gamma S Partial wave (L,S)=(0,1) -0.038000000 gamma chi_b0 HELAMP 1. 0. +1. 0.; #[Reconstructed PDG2011] -# V-> gamma V Partial wave (L,S)=(0,1) -0.069000000 gamma chi_b1 HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; #[Reconstructed PDG2011] -# V-> gamma T Partial wave (L,S)=(0,1) -0.071500000 gamma chi_b2 HELAMP 2.4494897 0. 1.7320508 0. 1. 0. 1. 0. 1.7320508 0. 2.4494897 0.; #[Reconstructed PDG2011] -0.00500 d anti-d PYTHIA 91; -0.02000 u anti-u PYTHIA 91; -0.00500 s anti-s PYTHIA 91; -0.02000 c anti-c PYTHIA 91; -0.42160 g g g PYTHIA 92; -0.01600 gamma g g PYTHIA 92; -0.000210000 Upsilon eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000390000 gamma eta_b PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay Upsilon(3S) -0.0181 e+ e- PHOTOS VLL; -0.021800000 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] -0.022900000 tau+ tau- VLL; #[Reconstructed PDG2011] -0.044000000 Upsilon pi+ pi- PHSP; #[Reconstructed PDG2011] -0.022000000 Upsilon pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.024500000 Upsilon(2S) pi+ pi- PHSP; #[Reconstructed PDG2011] -0.018500000 Upsilon(2S) pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.050000000 Upsilon(2S) gamma gamma PHSP; #[Reconstructed PDG2011] -# V-> gamma S Partial wave (L,S)=(0,1) -0.059000000 gamma chi_b0(2P) HELAMP 1. 0. 1. 0.; #[Reconstructed PDG2011] -# V-> gamma V Partial wave (L,S)=(0,1) -0.126000000 gamma chi_b1(2P) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; #[Reconstructed PDG2011] -# V-> gamma T Partial wave (L,S)=(0,1) -0.131000000 gamma chi_b2(2P) HELAMP 2.4494897 0. 1.7320508 0. 1. 0. 1. 0. 1.7320508 0. 2.4494897 0.; #[Reconstructed PDG2011] -0.00700 d anti-d PYTHIA 91; -0.02800 u anti-u PYTHIA 91; -0.00700 s anti-s PYTHIA 91; -0.02800 c anti-c PYTHIA 91; -0.37780 g g g PYTHIA 92; -0.01000 gamma g g PYTHIA 92; -0.003000000 gamma chi_b0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000510000 gamma eta_b PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# - -Decay Upsilon(5S) -0.5 B+ B- PHSP; -0.481487200 g g g PYTHIA 92; -0.000002800 e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.005300000 Upsilon pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.007800000 Upsilon(2S) pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.004800000 Upsilon(3S) pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000610000 Upsilon K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay - -Decay chi_b0 -# S-> gamma V Partial wave (L,S)=(0,0) -0.0500 gamma Upsilon HELAMP 1. 0. 1. 0.; -0.949650000 rndmflav anti-rndmflav PYTHIA 42; -0.000110000 pi+ pi+ pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000240000 pi+ pi+ pi+ pi- pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay chi_b1 -# V-> gamma V Partial wave (L,S)=(0,1) -0.350000000 gamma Upsilon HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; #[Reconstructed PDG2011] -0.643080000 g g PYTHIA 91; -0.000200000 pi+ pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000800000 pi+ pi+ pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000150000 pi+ pi+ pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000350000 pi+ pi+ pi- pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000860000 pi+ pi+ pi- pi- K+ K- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000190000 pi+ pi+ pi+ pi- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001700000 pi+ pi+ pi+ pi- pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000260000 pi+ pi+ pi+ pi- pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000750000 pi+ pi+ pi+ pi- pi- pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000260000 pi+ pi+ pi+ pi+ pi- pi- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001400000 pi+ pi+ pi+ pi+ pi- pi- pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay chi_b2 -# T-> gamma V Partial wave (L,S)=(0,2) Use PHSP. -0.220000000 gamma Upsilon PHSP; #[Reconstructed PDG2011] -#0.2200 gamma Upsilon HELAMP 1. 0. 1.7320508 0. 2.4494897 0. -# 2.4494897 0. 1.7320508 0. 1. 0.; -0.775550000 g g PYTHIA 91; -0.000080000 pi+ pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000350000 pi+ pi+ pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000110000 pi+ pi+ pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000210000 pi+ pi+ pi- pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000390000 pi+ pi+ pi- pi- K+ K- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000070000 pi+ pi+ pi+ pi- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001000000 pi+ pi+ pi+ pi- pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000360000 pi+ pi+ pi+ pi- pi- pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000080000 pi+ pi+ pi+ pi+ pi- pi- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001800000 pi+ pi+ pi+ pi+ pi- pi- pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay chi_b0(2P) -# S-> gamma V Partial wave (L,S)=(0,0) -0.009000000 gamma Upsilon HELAMP 1. 0. 1. 0.; #[Reconstructed PDG2011] -0.046000000 gamma Upsilon(2S) HELAMP 1. 0. 1. 0.; #[Reconstructed PDG2011] -# S-> gamma V Partial wave (L,S)=(0,0) -0.00150 gamma Upsilon_1(1D) HELAMP 1. 0. 1. 0.; -0.94350 g g PYTHIA 91; -Enddecay -# -Decay chi_b1(2P) -# V-> gamma V Partial wave (L,S)=(0,1) -0.085000000 gamma Upsilon HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; #[Reconstructed PDG2011] -0.210000000 gamma Upsilon(2S) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; #[Reconstructed PDG2011] -# V-> gamma V Partial wave (L,S)=(0,1) -0.0097 gamma Upsilon_1(1D) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; -# V-> gamma T Partial wave (L,S)=(0,1) -0.0236 gamma Upsilon_2(1D) HELAMP 2.4494897 0. 1.7320508 0. 1. 0. 1. 0. 1.7320508 0. 2.4494897 0.; -0.648650000 g g PYTHIA 91; -0.016300000 omega Upsilon PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000310000 pi+ pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000590000 pi+ pi+ pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000100000 pi+ pi+ pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000550000 pi+ pi+ pi- pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001000000 pi+ pi+ pi- pi- K+ K- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000120000 pi+ pi+ pi+ pi- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001200000 pi+ pi+ pi+ pi- pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000200000 pi+ pi+ pi+ pi- pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000610000 pi+ pi+ pi+ pi- pi- pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000170000 pi+ pi+ pi+ pi+ pi- pi- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001900000 pi+ pi+ pi+ pi+ pi- pi- pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay chi_b2(2P) -# T-> gamma V Partial wave (L,S)=(0,2) Use PHSP. -0.071000000 gamma Upsilon PHSP; #[Reconstructed PDG2011] -#0.0710 gamma Upsilon HELAMP 1. 0. 1.7320508 0. 2.4494897 0. -# 2.4494897 0. 1.7320508 0. 1. 0.; -0.162000000 gamma Upsilon(2S) PHSP; #[Reconstructed PDG2011] -#0.1620 gamma Upsilon(2S) HELAMP 1. 0. 1.7320508 0. 2.4494897 0. -# 2.4494897 0. 1.7320508 0. 1. 0.; -# T-> gamma V Partial wave (L,S)=(0,2) Use PHSP. -0.00023 gamma Upsilon_1(1D) PHSP; -#0.00023 gamma Upsilon_1(1D) HELAMP 1. 0. 1.7320508 0. 2.4494897 0. -# 2.4494897 0. 1.7320508 0. 1. 0.; -# T -> gamma T Partial wave (L,S)=(0,2) -0.00290 gamma Upsilon_2(1D) PHSP; -#0.00290 gamma Upsilon_2(1D) HELAMP -1. 0. -1.2247449 0. -# -1.2247449 0. -1. 0. -# 1. 0. 1.2247449 0. -# 1.2247449 0. 1. 0.; -# spin 3 not yet in HELAMP. -0.01420 gamma Upsilon_3(1D) PYTHIA 0; -# T-> gamma 3 Partial wave (L,S)=(0,2) -#0.01420 gamma Upsilon_3(1D) HELAMP 3.8729833 0. 3.1622777 0. -# 2.4494897 0. 1.7320508. 0. 1. 0. -# 1. 0. 1.7320508 0. 2.4494897 0. -# 3.1622777 0. 3.8729833 0.; -0.734240000 g g PYTHIA 91; -0.011000000 omega Upsilon PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000390000 pi+ pi+ pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000090000 pi+ pi+ pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000240000 pi+ pi+ pi- pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000470000 pi+ pi+ pi- pi- K+ K- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000090000 pi+ pi+ pi+ pi- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001200000 pi+ pi+ pi+ pi- pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000140000 pi+ pi+ pi+ pi- pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000420000 pi+ pi+ pi+ pi- pi- pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000090000 pi+ pi+ pi+ pi+ pi- pi- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001300000 pi+ pi+ pi+ pi+ pi- pi- pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay h_b -1.00000 g g PYTHIA 91; -Enddecay - -Decay chi_b0(3P) -#see Kwong and Rosner, PRD 38,279 (1988) -# S-> gamma V Partial wave (L,S)=(0,0) -0.01700 gamma Upsilon(3S) HELAMP 1. 0. 1. 0.; -# S-> gamma V Partial wave (L,S)=(0,0) -0.00400 gamma Upsilon_1(2D) HELAMP 1. 0. 1. 0.; -0.97900 g g PYTHIA 91; -Enddecay - -Decay chi_b1(3P) -#see Kwong and Rosner, PRD 38,279 (1988) -# V-> gamma V Partial wave (L,S)=(0,1) -0.15000 gamma Upsilon(3S) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; -# V-> gamma T Partial wave (L,S)=(0,1) -0.03100 gamma Upsilon_2(2D) HELAMP 2.4494897 0. 1.7320508 0. 1. 0. 1. 0. 1.7320508 0. 2.4494897 0.; -# V-> gamma V Partial wave (L,S)=(0,1) -0.01300 gamma Upsilon_1(2D) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; -0.80600 g g PYTHIA 91; -Enddecay - -Decay chi_b2(3P) -#see Kwong and Rosner, PRD 38,279 (1988) -# T-> gamma V Partial wave (L,S)=(0,2) Use PHSP. -0.08700 gamma Upsilon(3S) PHSP; -0.00000 gamma Upsilon(2S) PHSP; -0.00000 gamma Upsilon PHSP; -#0.08700 gamma Upsilon(3S) HELAMP 1. 0. 1.7320508 0. 2.4494897 0. -# 2.4494897 0. 1.7320508 0. 1. 0.; -#0.00000 gamma Upsilon(2S) HELAMP 1. 0. 1.7320508 0. 2.4494897 0. -# 2.4494897 0. 1.7320508 0. 1. 0.; -#0.00000 gamma Upsilon HELAMP 1. 0. 1.7320508 0. 2.4494897 0. -# 2.4494897 0. 1.7320508 0. 1. 0.; -# spin 3 not yet in HELAMP -0.02200 Upsilon_3(2D) gamma PHSP; -# T -> gamma 3 Partial wave (L,S)=(0,2) -#0.02200 gamma Upsilon_3(2D) HELAMP 3.8729833 0. 3.1622777 0. -# 2.4494897 0. 1.7320508. 0. 1. 0. -# 1. 0. 1.7320508 0. 2.4494897 0. -# 3.1622777 0. 3.8729833 0.; -# T -> gamma T Partial wave (L,S)=(0,2) -0.00400 gamma Upsilon_2(2D) PHSP; -#0.00400 gamma Upsilon_2(2D) HELAMP -1. 0. -1.2247449 0. -# -1.2247449 0. -1. 0. -# 1. 0. 1.2247449 0. -# 1.2247449 0. 1. 0.; -# T-> gamma V Partial wave (L,S)=(0,2) -0.00040 gamma Upsilon_1(2D) PHSP; -#0.00040 gamma Upsilon_1(2D) HELAMP 1. 0. 1.7320508 0. 2.4494897 0. -# 2.4494897 0. 1.7320508 0. 1. 0.; -0.88660 g g PYTHIA 91; -Enddecay - -Decay Upsilon_1(1D) -#see Kwong and Rosner, PRD 38,279 (1988) -0.00140 Upsilon pi+ pi- PHSP; -0.00070 Upsilon pi0 pi0 PHSP; -# V-> gamma S Partial wave (L,S)=(0,1) -0.60200 gamma chi_b0 HELAMP 1. 0. +1. 0.; -# V-> gamma V Partial wave (L,S)=(0,1) -0.31800 gamma chi_b1 HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; -# V-> gamma T Partial wave (L,S)=(0,1) -0.02600 gamma chi_b2 HELAMP 2.4494897 0. 1.7320508 0. 1. 0. 1. 0. 1.7320508 0. 2.4494897 0.; -0.05190 g g g PYTHIA 92; -Enddecay - -Decay Upsilon_2(1D) -#see Kwong and Rosner, PRD 38,279 (1988) -0.00140 Upsilon pi+ pi- PHSP; -0.00070 Upsilon pi0 pi0 PHSP; -# T-> gamma T Partial wave (L,S)=(0,2) -0.20300 gamma chi_b2 PHSP; -#0.20300 gamma chi_b2 HELAMP -1. 0. -1.2247449 0. -# -1.2247449 0. -1. 0. -# 1. 0. 1.2247449 0. -# 1.2247449 0. 1. 0.; -# T-> gamma V Partial wave (L,S)=(0,2) Use PHSP. -0.78500 gamma chi_b1 PHSP; -#0.78500 gamma chi_b1 HELAMP 1. 0. 1.7320508 0. 2.4494897 0. -# 2.4494897 0. 1.7320508 0. 1. 0.; -0.00990 g g g PYTHIA 92; -Enddecay - -Decay Upsilon_3(1D) -#see Kwong and Rosner, PRD 38,279 (1988) -0.00200 Upsilon pi+ pi- PHSP; -0.00100 Upsilon pi0 pi0 PHSP; -0.95400 chi_b2 gamma PHSP; -0.04300 g g g PYTHIA 92; -Enddecay - -Decay Upsilon_1(2D) -#see Kwong and Rosner, PRD 38,279 (1988) -0.00000 Upsilon pi+ pi- PHSP; -0.00000 Upsilon pi0 pi0 PHSP; -0.00000 Upsilon(2S) pi+ pi- PHSP; -0.00000 Upsilon(2S) pi0 pi0 PHSP; -# V-> gamma S Partial wave (L,S)=(0,1) -0.51000 gamma chi_b0(2P) HELAMP 1. 0. +1. 0.; -# V-> gamma V Partial wave (L,S)=(0,1) -0.26000 gamma chi_b1(2P) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; -# V-> gamma T Partial wave (L,S)=(0,1) -0.01400 gamma chi_b2(2P) HELAMP 2.4494897 0. 1.7320508 0. 1. 0. 1. 0. 1.7320508 0. 2.4494897 0.; -0.21600 g g g PYTHIA 92; -Enddecay - -Decay Upsilon_2(2D) -#see Kwong and Rosner, PRD 38,279 (1988) -0.00000 Upsilon pi+ pi- PHSP; -0.00000 Upsilon pi0 pi0 PHSP; -0.00000 Upsilon(2S) pi+ pi- PHSP; -0.00000 Upsilon(2S) pi0 pi0 PHSP; -# T-> gamma T Partial wave (L,S)=(0,2) -0.04000 gamma chi_b2(2P) PHSP; -#0.04000 gamma chi_b2(2P) HELAMP -1. 0. -1.2247449 0. -# -1.2247449 0. -1. 0. -# 1. 0. 1.2247449 0. -# 1.2247449 0. 1. 0.; -# T-> gamma V Partial wave (L,S)=(0,2) Use PHSP. -0.13000 gamma chi_b1(2P) PHSP; -#0.13000 gamma chi_b1(2P) HELAMP 1. 0. 1.7320508 0. 2.4494897 0. -# 2.4494897 0. 1.7320508 0. 1. 0.; -0.83000 g g g PYTHIA 92; -Enddecay - -Decay Upsilon_3(2D) -#see Kwong and Rosner, PRD 38,279 (1988) -0.00000 Upsilon pi+ pi- PHSP; -0.00000 Upsilon pi0 pi0 PHSP; -0.00000 Upsilon(2S) pi+ pi- PHSP; -0.00000 Upsilon(2S) pi0 pi0 PHSP; -0.72000 chi_b2(2P) gamma PHSP; -0.28000 g g g PYTHIA 92; -Enddecay - -Decay h_b(2P) -1.00000 g g PYTHIA 91; -Enddecay -Decay h_b(3P) -1.00000 g g PYTHIA 91; -Enddecay -Decay eta_b2(1D) -1.00000 g g PYTHIA 91; -Enddecay -Decay eta_b2(2D) -1.00000 g g PYTHIA 91; -Enddecay -# -# Charm Baryons -# -Decay Lambda_c+ -0.021000000 e+ nu_e Lambda0 PYTHIA 22; -0.00500 e+ nu_e Sigma0 PYTHIA 22; -0.00500 e+ nu_e Sigma*0 PYTHIA 22; -0.00300 e+ nu_e n0 PYTHIA 22; -0.00200 e+ nu_e Delta0 PYTHIA 22; -0.00600 e+ nu_e p+ pi- PYTHIA 22; -0.00600 e+ nu_e n0 pi0 PYTHIA 22; -0.020000000 mu+ nu_mu Lambda0 PYTHIA 22; -0.00500 mu+ nu_mu Sigma0 PYTHIA 22; -0.00500 mu+ nu_mu Sigma*0 PYTHIA 22; -0.00300 mu+ nu_mu n0 PYTHIA 22; -0.00200 mu+ nu_mu Delta0 PYTHIA 22; -0.00600 mu+ nu_mu p+ pi- PYTHIA 22; -0.00600 mu+ nu_mu n0 pi0 PYTHIA 22; -0.008600000 Delta++ K- PYTHIA 0; -0.02500 Delta++ K*- PYTHIA 0; -0.023000000 p+ anti-K0 PYTHIA 0; -0.016000000 p+ anti-K*0 PYTHIA 0; -0.00500 Delta+ anti-K0 PYTHIA 0; -0.00500 Delta+ anti-K*0 PYTHIA 0; -0.010700000 Lambda0 pi+ PYTHIA 0; -0.00500 Lambda0 rho+ PYTHIA 0; -0.010500000 Sigma0 pi+ PYTHIA 0; -0.00400 Sigma0 rho+ PYTHIA 0; -0.00400 Sigma*0 pi+ PYTHIA 0; -0.00400 Sigma*0 rho+ PYTHIA 0; -0.010000000 Sigma+ pi0 PYTHIA 0; -0.005500000 Sigma+ eta PYTHIA 0; -0.00200 Sigma+ eta' PYTHIA 0; -0.00400 Sigma+ rho0 PYTHIA 0; -0.027000000 Sigma+ omega PYTHIA 0; -0.00300 Sigma*+ pi0 PYTHIA 0; -0.008500000 Sigma*+ eta PYTHIA 0; -0.00300 Sigma*+ rho0 PYTHIA 0; -0.00300 Sigma*+ omega PYTHIA 0; -0.003900000 Xi0 K+ PYTHIA 0; -0.00200 Xi0 K*+ PYTHIA 0; -0.002600000 Xi*0 K+ PYTHIA 0; -0.00100 Delta++ pi- PYTHIA 0; -0.00100 Delta++ rho- PYTHIA 0; -0.00200 p+ pi0 PYTHIA 0; -0.00100 p+ eta PYTHIA 0; -0.00100 p+ eta' PYTHIA 0; -0.00200 p+ rho0 PYTHIA 0; -0.00200 p+ omega PYTHIA 0; -0.000820000 p+ phi PYTHIA 0; -0.002800000 p+ f_0 PYTHIA 0; -0.00100 Delta+ pi0 PYTHIA 0; -0.00100 Delta+ eta PYTHIA 0; -0.00100 Delta+ eta' PYTHIA 0; -0.00100 Delta+ rho0 PYTHIA 0; -0.00100 Delta+ omega PYTHIA 0; -0.00300 n0 pi+ PYTHIA 0; -0.00300 n0 rho+ PYTHIA 0; -0.00300 Delta0 pi+ PYTHIA 0; -0.00300 Delta0 rho+ PYTHIA 0; -0.00500 Lambda0 K+ PYTHIA 0; -0.00500 Lambda0 K*+ PYTHIA 0; -0.00200 Sigma0 K+ PYTHIA 0; -0.00200 Sigma0 K*+ PYTHIA 0; -0.00100 Sigma*0 K+ PYTHIA 0; -0.00100 Sigma*0 K*+ PYTHIA 0; -0.00200 Sigma+ K0 PYTHIA 0; -0.002800000 Sigma+ K*0 PYTHIA 0; -0.00100 Sigma*+ K0 PYTHIA 0; -0.00100 Sigma*+ K*0 PYTHIA 0; -0.064094509 u anti-d d su_0 PYTHIA 43; -0.028102977 u anti-d d su_1 PYTHIA 43; -0.017256214 u anti-s d su_0 PYTHIA 43; -0.017256214 u anti-d d ud_0 PYTHIA 43; -0.046838295 s uu_1 PYTHIA 43; -0.069024855 u su_0 PYTHIA 43; -0.069024855 u su_1 PYTHIA 43; -0.014791040 d uu_1 PYTHIA 43; -0.007395520 u ud_0 PYTHIA 43; -0.007395520 u ud_1 PYTHIA 43; -0.025400000 p+ K- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.033000000 p+ anti-K0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.012000000 p+ anti-K0 eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.026000000 p+ anti-K0 pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.023000000 p+ K- pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.011000000 p+ K*- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001100000 p+ K- pi+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.008000000 p+ K- pi+ pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000700000 p+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001800000 p+ pi+ pi+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000000 p+ K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.036000000 Lambda0 pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.015000000 Lambda0 pi+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.011000000 Lambda0 pi+ rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000000 Lambda0 pi+ pi+ pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.009500000 Lambda0 pi+ eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.012000000 Lambda0 pi+ omega PHSP; #[New mode added] #[Reconstructed PDG2011] -0.004700000 Lambda0 K+ anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.036000000 Sigma+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.017000000 Sigma- pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.018000000 Sigma0 pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.008300000 Sigma0 pi+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000000 Sigma+ K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.003100000 Sigma+ phi PHSP; #[New mode added] #[Reconstructed PDG2011] -0.002500000 Xi- K+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000000 Sigma+ K+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -CDecay anti-Lambda_c- -# -Decay Xi_c0 -1.000 PYTHIA 42; -Enddecay -Decay anti-Xi_c0 -1.000 PYTHIA 42; -Enddecay -# -Decay c-hadron -0.08000 e+ nu_e s specflav PYTHIA 22; -0.08000 mu+ nu_mu s specflav PYTHIA 22; -0.76000 u anti-d s specflav PYTHIA 42; -0.08000 u anti-s s specflav PYTHIA 42; -Enddecay -CDecay anti-c-hadron -# -Decay Sigma_c0 -1.0000 Lambda_c+ pi- PHSP; -Enddecay -Decay anti-Sigma_c0 -1.0000 anti-Lambda_c- pi+ PHSP; -Enddecay -# -Decay Sigma_c+ -1.0000 Lambda_c+ pi0 PHSP; -Enddecay -Decay anti-Sigma_c- -1.0000 anti-Lambda_c- pi0 PHSP; -Enddecay -# -Decay Xi_c+ -0.079535513 PYTHIA 42; -0.079535513 Sigma*+ anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.025689971 Lambda0 K- pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.010339617 Sigma+ K- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.064423765 Sigma+ anti-K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.023065299 Sigma0 K- pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.043744532 Xi0 pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.079535513 Xi- pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.186113099 Xi0 pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.138391792 Xi0 pi- pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.182931679 Xi0 e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -0.005567486 Omega- K+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.007158196 p+ K- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.009544262 p+ anti-K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.038177046 Sigma+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.014316392 Sigma- pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.011930327 Sigma+ K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -Decay anti-Xi_c- -0.079535513 PYTHIA 42; -0.079535513 anti-Sigma*- K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.025689971 anti-Lambda0 K+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.010339617 anti-Sigma- K+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.064423765 anti-Sigma- K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.023065299 anti-Sigma0 K+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.043744532 anti-Xi0 pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.079535513 anti-Xi+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.186113099 anti-Xi0 pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.138391792 anti-Xi0 pi+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.182931679 anti-Xi0 e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -0.005567486 anti-Omega+ K- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.007158196 anti-p- K+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.009544262 anti-p- K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.038177046 anti-Sigma- pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.014316392 anti-Sigma+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.011930327 anti-Sigma- K- K+ PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay Sigma_c++ -1.0000 Lambda_c+ pi+ PHSP; -Enddecay -Decay anti-Sigma_c-- -1.0000 anti-Lambda_c- pi- PHSP; -Enddecay -# -Decay Xi'_c+ -0.1000 Lambda0 K- pi+ pi+ PHSP; -0.0800 Sigma0 K- pi+ pi+ PHSP; -0.8200 gamma Xi_c+ PHSP; -Enddecay -Decay anti-Xi'_c- -0.1000 anti-Lambda0 K+ pi- pi- PHSP; -0.0800 anti-Sigma0 K+ pi- pi- PHSP; -0.8200 gamma anti-Xi_c- PHSP; -Enddecay -# -Decay Xi'_c0 -1.0000 gamma Xi_c0 PHSP; -Enddecay -Decay anti-Xi'_c0 -1.0000 gamma anti-Xi_c0 PHSP; -Enddecay -# -# Light Baryons -# Lambda0 updated Feb 2009 -Decay Lambda0 -0.638719992 p+ pi- PHSP; #[Reconstructed PDG2011] -0.357719992 n0 pi0 PHSP; #[Reconstructed PDG2011] -0.001741600 n0 gamma PHSP; #[Reconstructed PDG2011] -0.000832160 p+ pi- gamma PHSP; #[Reconstructed PDG2011] -0.000831216 p+ e- anti-nu_e PHOTOS PHSP; #[Reconstructed PDG2011] -0.000155040 p+ mu- anti-nu_mu PHOTOS PHSP; #[Reconstructed PDG2011] -Enddecay -# -Decay anti-Lambda0 -0.638719992 anti-p- pi+ PHSP; #[Reconstructed PDG2011] -0.357719992 anti-n0 pi0 PHSP; #[Reconstructed PDG2011] -0.001741600 anti-n0 gamma PHSP; #[Reconstructed PDG2011] -0.000832160 anti-p- pi+ gamma PHSP; #[Reconstructed PDG2011] -0.000831216 anti-p- e+ nu_e PHOTOS PHSP; #[Reconstructed PDG2011] -0.000155040 anti-p- mu+ nu_mu PHOTOS PHSP; #[Reconstructed PDG2011] -Enddecay -# -Decay Lambda(1405)0 -0.3333 Sigma+ pi- PHSP; -0.3333 Sigma- pi+ PHSP; -0.3333 Sigma0 pi0 PHSP; -Enddecay -# -Decay anti-Lambda(1405)0 -0.3333 anti-Sigma+ pi- PHSP; -0.3333 anti-Sigma- pi+ PHSP; -0.3333 anti-Sigma0 pi0 PHSP; -Enddecay -# -Decay Lambda(1520)0 -0.23 p+ K- PHSP; -0.23 n0 anti-K0 PHSP; -0.14 Sigma+ pi- PHSP; -0.14 Sigma- pi+ PHSP; -0.14 Sigma0 pi0 PHSP; -0.0333 Lambda0 pi0 pi0 PHSP; -0.0667 Lambda0 pi+ pi- PHSP; -0.003 Sigma+ pi- pi0 PHSP; -0.003 Sigma- pi+ pi0 PHSP; -0.001 Sigma0 pi0 pi0 PHSP; -0.002 Sigma0 pi+ pi- PHSP; -0.011 Lambda0 gamma PHSP; -Enddecay -# -Decay anti-Lambda(1520)0 -0.23 anti-p- K+ PHSP; -0.23 anti-n0 K0 PHSP; -0.14 anti-Sigma- pi+ PHSP; -0.14 anti-Sigma+ pi- PHSP; -0.14 anti-Sigma0 pi0 PHSP; -0.0333 anti-Lambda0 pi0 pi0 PHSP; -0.0667 anti-Lambda0 pi+ pi- PHSP; -0.003 anti-Sigma+ pi- pi0 PHSP; -0.003 anti-Sigma- pi+ pi0 PHSP; -0.001 anti-Sigma0 pi0 pi0 PHSP; -0.002 anti-Sigma0 pi+ pi- PHSP; -0.011 anti-Lambda0 gamma PHSP; -Enddecay -# -Decay Lambda(1600)0 -0.176 p+ K- PHSP; -0.176 n0 anti-K0 PHSP; -0.216 Sigma+ pi- PHSP; -0.216 Sigma- pi+ PHSP; -0.216 Sigma0 pi0 PHSP; -Enddecay -# -Decay anti-Lambda(1600)0 -0.176 anti-p- K+ PHSP; -0.176 anti-n0 K0 PHSP; -0.216 anti-Sigma+ pi- PHSP; -0.216 anti-Sigma- pi+ PHSP; -0.216 anti-Sigma0 pi0 PHSP; -Enddecay -# -Decay Lambda(1670)0 -0.10 p+ K- PHSP; -0.10 n0 anti-K0 PHSP; -0.16 Sigma+ pi- PHSP; -0.16 Sigma- pi+ PHSP; -0.16 Sigma0 pi0 PHSP; -0.32 Lambda0 eta PHSP; -Enddecay -# -Decay anti-Lambda(1670)0 -0.10 anti-p- K+ PHSP; -0.10 anti-n0 K0 PHSP; -0.16 anti-Sigma+ pi- PHSP; -0.16 anti-Sigma- pi+ PHSP; -0.16 anti-Sigma0 pi0 PHSP; -0.32 anti-Lambda0 eta PHSP; -Enddecay -# -Decay Lambda(1690)0 -0.125 p+ K- PHSP; -0.125 n0 anti-K0 PHSP; -0.10 Sigma+ pi- PHSP; -0.10 Sigma- pi+ PHSP; -0.10 Sigma0 pi0 PHSP; -0.0833 Lambda0 pi0 pi0 PHSP; -0.1667 Lambda0 pi+ pi- PHSP; -0.067 Sigma+ pi- pi0 PHSP; -0.067 Sigma- pi+ pi0 PHSP; -0.022 Sigma0 pi0 pi0 PHSP; -0.044 Sigma0 pi+ pi- PHSP; -Enddecay -# -Decay anti-Lambda(1690)0 -0.125 anti-p- K+ PHSP; -0.125 anti-n0 K0 PHSP; -0.10 anti-Sigma+ pi- PHSP; -0.10 anti-Sigma- pi+ PHSP; -0.10 anti-Sigma0 pi0 PHSP; -0.0833 anti-Lambda0 pi0 pi0 PHSP; -0.1667 anti-Lambda0 pi+ pi- PHSP; -0.067 anti-Sigma+ pi- pi0 PHSP; -0.067 anti-Sigma- pi+ pi0 PHSP; -0.022 anti-Sigma0 pi0 pi0 PHSP; -0.044 anti-Sigma0 pi+ pi- PHSP; -Enddecay -# -Decay Lambda(1800)0 -0.165 p+ K- PHSP; -0.165 n0 anti-K0 PHSP; -0.08 Sigma+ pi- PHSP; -0.08 Sigma- pi+ PHSP; -0.08 Sigma0 pi0 PHSP; -0.003 Sigma*+ pi- PHSP; -0.003 Sigma*- pi+ PHSP; -0.004 Sigma*0 pi0 PHSP; -0.21 p+ K*- PHSP; -0.21 n0 anti-K*0 PHSP; -Enddecay -# -Decay anti-Lambda(1800)0 -0.165 anti-p- K+ PHSP; -0.165 anti-n0 K0 PHSP; -0.08 anti-Sigma+ pi- PHSP; -0.08 anti-Sigma- pi+ PHSP; -0.08 anti-Sigma0 pi0 PHSP; -0.003 anti-Sigma*+ pi- PHSP; -0.003 anti-Sigma*- pi+ PHSP; -0.004 anti-Sigma*0 pi0 PHSP; -0.21 anti-p- K*+ PHSP; -0.21 anti-n0 K*0 PHSP; -Enddecay -# -Decay Lambda(1810)0 -0.165 p+ K- PHSP; -0.165 n0 anti-K0 PHSP; -0.08 Sigma+ pi- PHSP; -0.08 Sigma- pi+ PHSP; -0.08 Sigma0 pi0 PHSP; -0.003 Sigma*+ pi- PHSP; -0.003 Sigma*- pi+ PHSP; -0.004 Sigma*0 pi0 PHSP; -0.21 p+ K*- PHSP; -0.21 n0 anti-K*0 PHSP; -Enddecay -# -Decay anti-Lambda(1810)0 -0.165 anti-p- K+ PHSP; -0.165 anti-n0 K0 PHSP; -0.08 anti-Sigma+ pi- PHSP; -0.08 anti-Sigma- pi+ PHSP; -0.08 anti-Sigma0 pi0 PHSP; -0.003 anti-Sigma*+ pi- PHSP; -0.003 anti-Sigma*- pi+ PHSP; -0.004 anti-Sigma*0 pi0 PHSP; -0.21 anti-p- K*+ PHSP; -0.21 anti-n0 K*0 PHSP; -Enddecay -# -Decay Lambda(1820)0 -0.34 p+ K- PHSP; -0.34 n0 anti-K0 PHSP; -0.06 Sigma+ pi- PHSP; -0.06 Sigma- pi+ PHSP; -0.06 Sigma0 pi0 PHSP; -0.04 Sigma*+ pi- PHSP; -0.04 Sigma*- pi+ PHSP; -0.04 Sigma*0 pi0 PHSP; -0.01 Lambda0 eta PHSP; -0.003 Sigma+ pi- pi0 PHSP; -0.004 Sigma- pi+ pi0 PHSP; -0.001 Sigma0 pi0 pi0 PHSP; -0.002 Sigma0 pi+ pi- PHSP; -Enddecay -# -Decay anti-Lambda(1820)0 -0.34 anti-p- K+ PHSP; -0.34 anti-n0 K0 PHSP; -0.06 anti-Sigma+ pi- PHSP; -0.06 anti-Sigma- pi+ PHSP; -0.06 anti-Sigma0 pi0 PHSP; -0.04 anti-Sigma*+ pi- PHSP; -0.04 anti-Sigma*- pi+ PHSP; -0.04 anti-Sigma*0 pi0 PHSP; -0.01 anti-Lambda0 eta PHSP; -0.003 anti-Sigma+ pi- pi0 PHSP; -0.004 anti-Sigma- pi+ pi0 PHSP; -0.001 anti-Sigma0 pi0 pi0 PHSP; -0.002 anti-Sigma0 pi+ pi- PHSP; -Enddecay -# -Decay Lambda(1830)0 -0.05 p+ K- PHSP; -0.05 n0 anti-K0 PHSP; -0.24 Sigma+ pi- PHSP; -0.24 Sigma- pi+ PHSP; -0.24 Sigma0 pi0 PHSP; -0.06 Sigma*+ pi- PHSP; -0.06 Sigma*- pi+ PHSP; -0.06 Sigma*0 pi0 PHSP; -Enddecay -# -Decay anti-Lambda(1830)0 -0.05 anti-p- K+ PHSP; -0.05 anti-n0 K0 PHSP; -0.24 anti-Sigma+ pi- PHSP; -0.24 anti-Sigma- pi+ PHSP; -0.24 anti-Sigma0 pi0 PHSP; -0.06 anti-Sigma*+ pi- PHSP; -0.06 anti-Sigma*- pi+ PHSP; -0.06 anti-Sigma*0 pi0 PHSP; -Enddecay -# -# -Decay Sigma(1660)0 -0.07 p+ K- PHSP; -0.07 n0 anti-K0 PHSP; -0.16 Lambda0 pi0 PHSP; -0.35 Sigma+ pi- PHSP; -0.35 Sigma- pi+ PHSP; -Enddecay -# -Decay anti-Sigma(1660)0 -0.07 anti-p- K+ PHSP; -0.07 anti-n0 K0 PHSP; -0.16 anti-Lambda0 pi0 PHSP; -0.35 anti-Sigma+ pi- PHSP; -0.35 anti-Sigma- pi+ PHSP; -Enddecay -# -Decay Sigma(1670)0 -0.07 p+ K- PHSP; -0.07 n0 anti-K0 PHSP; -0.16 Lambda0 pi0 PHSP; -0.35 Sigma+ pi- PHSP; -0.35 Sigma- pi+ PHSP; -Enddecay -# -Decay anti-Sigma(1670)0 -0.07 anti-p- K+ PHSP; -0.07 anti-n0 K0 PHSP; -0.16 anti-Lambda0 pi0 PHSP; -0.35 anti-Sigma+ pi- PHSP; -0.35 anti-Sigma- pi+ PHSP; -Enddecay -# -Decay Sigma(1775)0 -0.215 p+ K- PHSP; -0.215 n0 anti-K0 PHSP; -0.20 Lambda0 pi0 PHSP; -0.02 Sigma+ pi- PHSP; -0.02 Sigma- pi+ PHSP; -0.055 Sigma*+ pi- PHSP; -0.055 Sigma*- pi+ PHSP; -0.22 Lambda(1520)0 pi0 PHSP; -Enddecay -# -Decay anti-Sigma(1775)0 -0.215 anti-p- K+ PHSP; -0.215 anti-n0 K0 PHSP; -0.20 anti-Lambda0 pi0 PHSP; -0.02 anti-Sigma+ pi- PHSP; -0.02 anti-Sigma- pi+ PHSP; -0.055 anti-Sigma*+ pi- PHSP; -0.055 anti-Sigma*- pi+ PHSP; -0.22 anti-Lambda(1520)0 pi0 PHSP; -Enddecay -Decay Sigma+ -0.515454300 p+ pi0 PHSP; #[Reconstructed PDG2011] -0.482854300 n0 pi+ PHSP; #[Reconstructed PDG2011] -0.001225905 p+ gamma PHSP; #[Reconstructed PDG2011] -0.000445905 n0 pi+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000019590 Lambda0 e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -Decay anti-Sigma- -0.515454300 anti-p- pi0 PHSP; #[Reconstructed PDG2011] -0.482854300 anti-n0 pi- PHSP; #[Reconstructed PDG2011] -0.001225905 anti-p- gamma PHSP; #[Reconstructed PDG2011] -0.000445905 anti-n0 pi- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000019590 anti-Lambda0 e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay Delta+ -0.6630 p+ pi0 PHSP; -0.3310 n0 pi+ PHSP; -0.0060 p+ gamma PHSP; -Enddecay -Decay anti-Delta- -0.6630 anti-p- pi0 PHSP; -0.3310 anti-n0 pi- PHSP; -0.0060 anti-p- gamma PHSP; -Enddecay -# -Decay Delta++ -1.0000 p+ pi+ PHSP; -Enddecay -Decay anti-Delta-- -1.0000 anti-p- pi- PHSP; -Enddecay -# -Decay Xi*0 -0.3330 Xi0 pi0 PHSP; -0.6670 Xi- pi+ PHSP; -Enddecay -Decay anti-Xi*0 -0.3330 anti-Xi0 pi0 PHSP; -0.6670 anti-Xi+ pi- PHSP; -Enddecay -# -Decay Delta0 -0.3310 p+ pi- PHSP; -0.6630 n0 pi0 PHSP; -0.0060 n0 gamma PHSP; -Enddecay -Decay anti-Delta0 -0.3310 anti-p- pi+ PHSP; -0.6630 anti-n0 pi0 PHSP; -0.0060 anti-n0 gamma PHSP; -Enddecay -# -Decay Delta- -1.0000 n0 pi- PHSP; -Enddecay -Decay anti-Delta+ -1.0000 anti-n0 pi+ PHSP; -Enddecay -# -Decay Sigma- -0.998015700 n0 pi- PHSP; #[Reconstructed PDG2011] -0.000460000 n0 pi- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001017000 n0 e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000450000 n0 mu- anti-nu_mu PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000057300 Lambda0 e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -Decay anti-Sigma+ -0.998015700 anti-n0 pi+ PHSP; #[Reconstructed PDG2011] -0.000460000 anti-n0 pi+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001017000 anti-n0 e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000450000 anti-n0 mu+ nu_mu PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000057300 anti-Lambda0 e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay Sigma0 -0.995024876 gamma Lambda0 PHSP; #[Reconstructed PDG2011] -0.004975124 Lambda0 e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -Decay anti-Sigma0 -0.995024876 gamma anti-Lambda0 PHSP; #[Reconstructed PDG2011] -0.004975124 anti-Lambda0 e- e+ PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay Sigma*- -0.8800 Lambda0 pi- PHSP; -0.0600 Sigma0 pi- PHSP; -0.0600 Sigma- pi0 PHSP; -Enddecay -Decay anti-Sigma*+ -0.8800 anti-Lambda0 pi+ PHSP; -0.0600 anti-Sigma0 pi+ PHSP; -0.0600 anti-Sigma+ pi0 PHSP; -Enddecay -# -Decay Sigma*+ -0.8800 Lambda0 pi+ PHSP; -0.0600 Sigma+ pi0 PHSP; -0.0600 Sigma0 pi+ PHSP; -Enddecay -Decay anti-Sigma*- -0.8800 anti-Lambda0 pi- PHSP; -0.0600 anti-Sigma- pi0 PHSP; -0.0600 anti-Sigma0 pi- PHSP; -Enddecay -# -Decay Sigma*0 -0.8800 Lambda0 pi0 PHSP; -0.0600 Sigma+ pi- PHSP; -0.0600 Sigma- pi+ PHSP; -Enddecay -Decay anti-Sigma*0 -0.8800 anti-Lambda0 pi0 PHSP; -0.0600 anti-Sigma- pi+ PHSP; -0.0600 anti-Sigma+ pi- PHSP; -Enddecay -# -Decay Xi0 -0.995242400 Lambda0 pi0 PHSP; #[Reconstructed PDG2011] -0.001162400 Lambda0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000007600 Lambda0 e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.003330000 Sigma0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000253000 Sigma+ e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000004600 Sigma+ mu- anti-nu_mu PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -Decay anti-Xi0 -0.995242400 anti-Lambda0 pi0 PHSP; #[Reconstructed PDG2011] -0.001162400 anti-Lambda0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000007600 anti-Lambda0 e- e+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.003330000 anti-Sigma0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000253000 anti-Sigma- e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000004600 anti-Sigma- mu+ nu_mu PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay Xi- -0.998870000 Lambda0 pi- PHSP; #[Reconstructed PDG2011] -0.000127000 Sigma- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000563000 Lambda0 e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000350000 Lambda0 mu- anti-nu_mu PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000087000 Sigma0 e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -Decay anti-Xi+ -0.998870000 anti-Lambda0 pi+ PHSP; #[Reconstructed PDG2011] -0.000127000 anti-Sigma+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000563000 anti-Lambda0 e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000350000 anti-Lambda0 mu+ nu_mu PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000087000 anti-Sigma0 e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay Xi*- -0.6670 Xi0 pi- PHSP; -0.3330 Xi- pi0 PHSP; -Enddecay -Decay anti-Xi*+ -0.6670 anti-Xi0 pi+ PHSP; -0.3330 anti-Xi+ pi0 PHSP; -Enddecay -# -Decay Omega- -0.675949296 Lambda0 K- PHSP; #[Reconstructed PDG2011] -0.233949296 Xi0 pi- PHSP; #[Reconstructed PDG2011] -0.084828169 Xi- pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 Xi- pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000493521 Xi*0 pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.004779718 Xi0 e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -Decay anti-Omega+ -0.675949296 anti-Lambda0 K+ PHSP; #[Reconstructed PDG2011] -0.233949296 anti-Xi0 pi+ PHSP; #[Reconstructed PDG2011] -0.084828169 anti-Xi+ pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 anti-Xi+ pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000493521 anti-Xi*0 pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.004779718 anti-Xi0 e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -# -Decay Sigma_c*0 -1.0000 Lambda_c+ pi- PHSP; -Enddecay -CDecay anti-Sigma_c*0 -# -Decay Sigma_c*+ -1.0000 Lambda_c+ pi0 PHSP; -Enddecay -CDecay anti-Sigma_c*- -# -Decay Sigma_c*++ -1.0000 Lambda_c+ pi+ PHSP; -Enddecay -CDecay anti-Sigma_c*-- -# -Decay Xi_c*0 -0.5000 Xi_c0 pi0 PHSP; -0.5000 Xi_c0 gamma PHSP; -Enddecay -CDecay anti-Xi_c*0 -# -Decay Xi_c*+ -0.5000 Xi_c+ pi0 PHSP; -0.5000 Xi_c+ gamma PHSP; -Enddecay -CDecay anti-Xi_c*- -# -Decay Omega_c0 -1.00000 PYTHIA 42; -Enddecay -# -CDecay anti-Omega_c0 -# -Decay Omega_c*0 -1.0000 Omega_c0 gamma PHSP; -Enddecay -# -CDecay anti-Omega_c*0 -# -Decay Xu0 -# X_u^0 -> u anti-u -# -1.0 u anti-u PYTHIA 42; -Enddecay -Decay Xu+ -# X_u^+ -> u anti-d -# -1.0 u anti-d PYTHIA 42; -Enddecay -CDecay Xu- - -#lange - PYTHIA is making h_c mesons - better add a decay -# channel for them. -Decay h_c -0.01 J/psi pi0 PHSP; -0.5 eta_c gamma PHSP; -0.49 rndmflav anti-rndmflav PYTHIA 42; -Enddecay - -# 12/08/03 RJT Update b-baryon decays... -Decay Lambda_b0 -# SemiLeptonic Decays (inclusive BR = 7.7 +/- 1.8%) -0.050000000 Lambda_c+ e- anti-nu_e PHSP; #[Reconstructed PDG2011] -0.006300000 Lambda_c(2593)+ e- anti-nu_e PHSP; #[Reconstructed PDG2011] -0.011000000 Lambda_c(2625)+ e- anti-nu_e PHSP; #[Reconstructed PDG2011] - 0.00000 Sigma_c0 pi+ e- anti-nu_e PHSP; - 0.00000 Sigma_c+ pi0 e- anti-nu_e PHSP; - 0.00000 Sigma_c++ pi- e- anti-nu_e PHSP; - 0.00000 Sigma_c*0 pi+ e- anti-nu_e PHSP; - 0.00000 Sigma_c*+ pi0 e- anti-nu_e PHSP; - 0.00000 Sigma_c*++ pi- e- anti-nu_e PHSP; -# -0.050000000 Lambda_c+ mu- anti-nu_mu PHSP; #[Reconstructed PDG2011] -0.006300000 Lambda_c(2593)+ mu- anti-nu_mu PHSP; #[Reconstructed PDG2011] -0.011000000 Lambda_c(2625)+ mu- anti-nu_mu PHSP; #[Reconstructed PDG2011] - 0.00000 Sigma_c0 pi+ mu- anti-nu_mu PHSP; - 0.00000 Sigma_c+ pi0 mu- anti-nu_mu PHSP; - 0.00000 Sigma_c++ pi- mu- anti-nu_mu PHSP; - 0.00000 Sigma_c*0 pi+ mu- anti-nu_mu PHSP; - 0.00000 Sigma_c*+ pi0 mu- anti-nu_mu PHSP; - 0.00000 Sigma_c*++ pi- mu- anti-nu_mu PHSP; -# - 0.01720 Lambda_c+ tau- anti-nu_tau PHSP; - 0.00430 Lambda_c(2593)+ tau- anti-nu_tau PHSP; - 0.00320 Lambda_c(2625)+ tau- anti-nu_tau PHSP; - 0.00000 Sigma_c0 pi+ tau- anti-nu_tau PHSP; - 0.00000 Sigma_c+ pi0 tau- anti-nu_tau PHSP; - 0.00000 Sigma_c++ pi- tau- anti-nu_tau PHSP; - 0.00000 Sigma_c*0 pi+ tau- anti-nu_tau PHSP; - 0.00000 Sigma_c*+ pi0 tau- anti-nu_tau PHSP; - 0.00000 Sigma_c*++ pi- tau- anti-nu_tau PHSP; -# Hadronic Decays with Lambda_c+ -0.008800000 Lambda_c+ pi- PHSP; #[Reconstructed PDG2011] - 0.02200 Lambda_c+ pi- pi+ pi- PHSP; - 0.00055 Lambda_c+ K- PHSP; - 0.02200 Lambda_c+ D_s- PHSP; - 0.04400 Lambda_c+ D_s*- PHSP; - 0.01000 Lambda_c+ rho- PHSP; - 0.02000 Lambda_c+ a_1- PHSP; - 0.02000 Lambda0 K0 pi+ pi+ pi- pi- PHSP; -# Addition PR LHCb 09 Apr 2004, Lambda_b -> Lambda D0b - 0.00080 Lambda0 anti-D0 PHSP; -# Addition PR LHCb 04/07/04 -0.000006000 p+ K- PHSP; #[Reconstructed PDG2011] -0.000003800 p+ pi- PHSP; #[Reconstructed PDG2011] -# Addition PR LHCb 09 Apr 2004, Lambda_b -> Lambda rho0 and -> Lambda phi - 0.0000050 Lambda0 rho0 PHSP; - 0.0000200 Lambda0 phi PHSP; -# - 0.00047 Lambda0 J/psi PHSP; - 0.00038 Lambda0 psi(2S) PHSP; - 0.00100 Lambda0 eta_c PHSP; - 0.00080 n0 D0 PHSP; -# -# Additional decays from hep-ph/9709372 scaled to the Lambda_c0 pi rate - 0.00060 Sigma_c+ pi- PHSP; - 0.00060 Sigma_c0 pi0 PHSP; - 0.00040 Sigma_c0 eta PHSP; - 0.00050 Sigma_c0 eta' PHSP; - 0.00030 Xi_c0 K0 PHSP; - 0.00050 Xi'_c0 K0 PHSP; -# PR LHCb 27 Apr 2004, addition of Pythia decays -0.398544837 anti-u d c ud_0 PYTHIA 23; -0.082218903 anti-u c d ud_0 PYTHIA 43; -0.072280354 anti-c s c ud_0 PYTHIA 43; -0.010842053 anti-u d u ud_0 PYTHIA 22; -0.010842053 anti-c s u ud_0 PYTHIA 22; -# PR LHCb 2 Dec 2004, add Lambda gamma decay mode - 0.000065 Lambda0 gamma HELAMP 1. 0. 0. 0. ; - 0.000059 Lambda(1520)0 gamma PHSP ; - 0.000056 Lambda(1670)0 gamma HELAMP 1. 0. 0. 0. ; - 0.000057 Lambda(1600)0 gamma HELAMP 1. 0. 0. 0. ; -0.056000000 Lambda_c+ pi+ pi- mu- anti-nu_mu PHSP; #[New mode added] #[Reconstructed PDG2011] -0.056000000 Lambda_c+ pi+ pi- e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay - -Decay anti-Lambda_b0 -# SemiLeptonic Decays (inclusive BR = 7.7 +/- 1.8%) -0.050000000 anti-Lambda_c- e+ nu_e PHSP; #[Reconstructed PDG2011] -0.006300000 anti-Lambda_c(2593)- e+ nu_e PHSP; #[Reconstructed PDG2011] -0.011000000 anti-Lambda_c(2625)- e+ nu_e PHSP; #[Reconstructed PDG2011] - 0.00000 anti-Sigma_c0 pi- e+ nu_e PHSP; - 0.00000 anti-Sigma_c- pi0 e+ nu_e PHSP; - 0.00000 anti-Sigma_c-- pi+ e+ nu_e PHSP; - 0.00000 anti-Sigma_c*0 pi- e+ nu_e PHSP; - 0.00000 anti-Sigma_c*- pi0 e+ nu_e PHSP; - 0.00000 anti-Sigma_c*-- pi+ e+ nu_e PHSP; -# -0.050000000 anti-Lambda_c- mu+ nu_mu PHSP; #[Reconstructed PDG2011] -0.006300000 anti-Lambda_c(2593)- mu+ nu_mu PHSP; #[Reconstructed PDG2011] -0.011000000 anti-Lambda_c(2625)- mu+ nu_mu PHSP; #[Reconstructed PDG2011] - 0.00000 anti-Sigma_c0 pi- mu+ nu_mu PHSP; - 0.00000 anti-Sigma_c- pi0 mu+ nu_mu PHSP; - 0.00000 anti-Sigma_c-- pi+ mu+ nu_mu PHSP; - 0.00000 anti-Sigma_c*0 pi- mu+ nu_mu PHSP; - 0.00000 anti-Sigma_c*- pi0 mu+ nu_mu PHSP; - 0.00000 anti-Sigma_c*-- pi+ mu+ nu_mu PHSP; -# - 0.01720 anti-Lambda_c- tau+ nu_tau PHSP; - 0.00430 anti-Lambda_c(2593)- tau+ nu_tau PHSP; - 0.00320 anti-Lambda_c(2625)- tau+ nu_tau PHSP; - 0.00000 anti-Sigma_c0 pi- tau+ nu_tau PHSP; - 0.00000 anti-Sigma_c- pi0 tau+ nu_tau PHSP; - 0.00000 anti-Sigma_c-- pi+ tau+ nu_tau PHSP; - 0.00000 anti-Sigma_c*0 pi- tau+ nu_tau PHSP; - 0.00000 anti-Sigma_c*- pi0 tau+ nu_tau PHSP; - 0.00000 anti-Sigma_c*-- pi+ tau+ nu_tau PHSP; -# Hadronic Decays with anti-Lambda_c- -0.008800000 anti-Lambda_c- pi+ PHSP; #[Reconstructed PDG2011] - 0.02200 anti-Lambda_c- pi+ pi+ pi- PHSP; - 0.00055 anti-Lambda_c- K+ PHSP; - 0.02200 anti-Lambda_c- D_s+ PHSP; - 0.04400 anti-Lambda_c- D_s*+ PHSP; - 0.01000 anti-Lambda_c- rho+ PHSP; - 0.02000 anti-Lambda_c- a_1+ PHSP; - 0.02000 Lambda0 anti-K0 pi- pi- pi+ pi+ PHSP; - # Addition LHCb PR 09 Apr 2004 Lambda_b -> Lambda D0b - 0.00080 anti-Lambda0 D0 PHSP; - # PR LHCb 04/07/04 Addition -0.000006000 anti-p- K+ PHSP; #[Reconstructed PDG2011] -0.000003800 anti-p- pi+ PHSP; #[Reconstructed PDG2011] -# Addition PR LHCb 09 Apr 2004, Lambda_b -> Lambda rho0 and -> Lambda phi - 0.0000050 anti-Lambda0 rho0 PHSP; - 0.0000200 anti-Lambda0 phi PHSP; -# - 0.00047 anti-Lambda0 J/psi PHSP; - 0.00038 anti-Lambda0 psi(2S) PHSP; - 0.001000 anti-Lambda0 eta_c PHSP; - 0.00080 anti-n0 anti-D0 PHSP; -# -# Additional decays from hep-ph/9709372 scaled to the Lambda_c0 pi rate - 0.00060 anti-Sigma_c- pi+ PHSP; - 0.00060 anti-Sigma_c0 pi0 PHSP; - 0.00040 anti-Sigma_c0 eta PHSP; - 0.00050 anti-Sigma_c0 eta' PHSP; - 0.00030 anti-Xi_c0 anti-K0 PHSP; - 0.00050 anti-Xi'_c0 anti-K0 PHSP; -# PR LHCb 27 Apr 2004, addition of Pythia decays -0.398544837 u anti-d anti-c anti-ud_0 PYTHIA 23; -0.082218903 u anti-c anti-d anti-ud_0 PYTHIA 43; -0.072280354 c anti-s anti-c anti-ud_0 PYTHIA 43; -0.010842053 u anti-d anti-u anti-ud_0 PYTHIA 22; -0.010842053 c anti-s anti-u anti-ud_0 PYTHIA 22; -# PR LHCb 2 Dec 2004 add Lambda gamma - 0.000065 anti-Lambda0 gamma HELAMP 0. 0. 1. 0. ; - 0.000059 anti-Lambda(1520)0 gamma PHSP ; - 0.000056 anti-Lambda(1670)0 gamma HELAMP 0. 0. 1. 0. ; - 0.000057 anti-Lambda(1600)0 gamma HELAMP 0. 0. 1. 0. ; -0.056000000 anti-Lambda_c- pi- pi+ mu+ nu_mu PHSP; #[New mode added] #[Reconstructed PDG2011] -0.056000000 anti-Lambda_c- pi- pi+ e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay - -Decay Xi_b- -# SemiLeptonic Decays - 0.05460 Xi_c0 e- anti-nu_e PHSP; - 0.05460 Xi_c0 mu- anti-nu_mu PHSP; - 0.02000 Xi_c0 tau- anti-nu_tau PHSP; -# Hadronic Decays with Xi_c0 - 0.00600 Xi_c0 pi- PHSP; - 0.02200 Xi_c0 pi- pi+ pi- PHSP; - 0.00055 Xi_c0 K- PHSP; - 0.02200 Xi_c0 D_s- PHSP; - 0.00047 Xi- J/psi PHSP; -# added by D.Litvintsev 12/8/03: - 0.00038 Xi- psi(2S) PHSP; - 0.00018 D0 Lambda0 pi- PHSP; - 0.00020 Sigma_c0 K- PHSP; - 0.00020 Omega_c0 K- PHSP; -# -# aaa 10/19/05 Do not if this is correct but filling out with inclusives -0.38757 d anti-u d cs_0 PYTHIA 43; -0.16995 d anti-u d cs_1 PYTHIA 43; -0.06335 s anti-u d cs_0 PYTHIA 43; -0.00568 d anti-u s cs_1 PYTHIA 43; -0.00797 d anti-u s cs_0 PYTHIA 43; -0.06148 s anti-c d cs_0 PYTHIA 43; -0.06918 d anti-u d cd_0 PYTHIA 43; -0.03999 s anti-c d cd_0 PYTHIA 43; -0.00865 d anti-u d su_0 PYTHIA 43; -0.00500 s anti-c d su_0 PYTHIA 43; -Enddecay - -Decay anti-Xi_b+ -# SemiLeptonic Decays - 0.05460 anti-Xi_c0 e+ nu_e PHSP; - 0.05460 anti-Xi_c0 mu+ nu_mu PHSP; - 0.02000 anti-Xi_c0 tau+ nu_tau PHSP; -# Hadronic Decays with anti-Xi_c0 - 0.00600 anti-Xi_c0 pi+ PHSP; - 0.02200 anti-Xi_c0 pi+ pi+ pi- PHSP; - 0.00055 anti-Xi_c0 K+ PHSP; - 0.02200 anti-Xi_c0 D_s+ PHSP; - 0.00047 anti-Xi+ J/psi PHSP; -# added by D.Litvintsev 12/8/03: - 0.00038 anti-Xi+ psi(2S) PHSP; - 0.00018 anti-D0 anti-Lambda0 pi+ PHSP; - 0.00020 anti-Sigma_c0 K+ PHSP; - 0.00020 anti-Omega_c0 K+ PHSP; -# aaa 10/19/05 Do not if this is correct but filling out with inclusives -0.38757 u anti-d anti-d anti-cs_0 PYTHIA 43; -0.16995 u anti-d anti-d anti-cs_1 PYTHIA 43; -0.06335 u anti-s anti-d anti-cs_0 PYTHIA 43; -0.00568 u anti-d anti-s anti-cs_1 PYTHIA 43; -0.00797 u anti-d anti-s anti-cs_0 PYTHIA 43; -0.06148 c anti-s anti-d anti-cs_0 PYTHIA 43; -0.06918 u anti-d anti-d anti-cd_0 PYTHIA 43; -0.03999 c anti-s anti-d anti-cd_0 PYTHIA 43; -0.00865 u anti-d anti-d anti-su_0 PYTHIA 43; -0.00500 c anti-s anti-d anti-su_0 PYTHIA 43; -Enddecay - -Decay Xi_b0 -# SemiLeptonic Decays - 0.05460 Xi_c+ e- anti-nu_e PHSP; - 0.05460 Xi_c+ mu- anti-nu_mu PHSP; - 0.02000 Xi_c+ tau- anti-nu_tau PHSP; -# Hadronic Decays with Xi_c+ - 0.00600 Xi_c+ pi- PHSP; - 0.02200 Xi_c+ pi- pi+ pi- PHSP; - 0.00055 Xi_c+ K- PHSP; - 0.02200 Xi_c+ D_s- PHSP; - 0.00047 Xi0 J/psi PHSP; -# added by D.Litvintsev 12/8/03: - 0.00020 D0 Lambda0 PHSP; - 0.00010 Lambda_c+ K- PHSP; - 0.00020 Sigma_c0 anti-K0 PHSP; - 0.00020 Omega_c0 K0 PHSP; -# -# Additional decays from hep-ph/9709372 scaled to the Lambda_c0 pi rate - 0.00020 Xi'_c+ pi- PHSP; - 0.00003 Xi_c0 pi0 PHSP; - 0.00015 Xi_c0 eta PHSP; - 0.00004 Xi_c0 eta' PHSP; - 0.00020 Xi'_c0 pi0 PHSP; - 0.00020 Xi'_c0 eta PHSP; - 0.00030 Xi'_c0 eta' PHSP; - 0.00040 Sigma_c+ K- PHSP; -# aaa 10/19/05 Do not if this is correct but filling out with inclusives -0.58591 d anti-u s cu_0 PYTHIA 43; -0.01363 s anti-u s cu_1 PYTHIA 43; -0.09539 s anti-u s cc_1 PYTHIA 43; -0.10900 s anti-u d cu_1 PYTHIA 43; -0.01363 d anti-u d uu_1 PYTHIA 43; -Enddecay - -Decay anti-Xi_b0 - 0.05460 anti-Xi_c- e+ nu_e PHSP; - 0.05460 anti-Xi_c- mu+ nu_mu PHSP; - 0.02000 anti-Xi_c- tau+ nu_tau PHSP; -# Hadronic Decays with anti-Xi_c- - 0.00600 anti-Xi_c- pi+ PHSP; - 0.02200 anti-Xi_c- pi+ pi+ pi- PHSP; - 0.00055 anti-Xi_c- K+ PHSP; - 0.02200 anti-Xi_c- D_s+ PHSP; - 0.00047 anti-Xi0 J/psi PHSP; -# added by D.Litvintsev 12/8/03: - 0.00020 anti-D0 anti-Lambda0 PHSP; - 0.00010 anti-Lambda_c- K+ PHSP; - 0.00020 anti-Sigma_c0 K0 PHSP; - 0.00020 anti-Omega_c0 anti-K0 PHSP; -# -# Additional decays from hep-ph/9709372 scaled to the Lambda_c0 pi rate - 0.00020 anti-Xi'_c- pi+ PHSP; - 0.00003 anti-Xi_c0 pi0 PHSP; - 0.00015 anti-Xi_c0 eta PHSP; - 0.00004 anti-Xi_c0 eta' PHSP; - 0.00020 anti-Xi'_c0 pi0 PHSP; - 0.00020 anti-Xi'_c0 eta PHSP; - 0.00030 anti-Xi'_c0 eta' PHSP; - 0.00040 anti-Sigma_c- K+ PHSP; -# aaa 10/19/05 Do not if this is correct but filling out with inclusives -0.58591 u anti-d anti-s anti-cu_0 PYTHIA 43; -0.01363 u anti-s anti-s anti-cu_1 PYTHIA 43; -0.09539 u anti-s anti-s anti-cc_1 PYTHIA 43; -0.10900 u anti-s anti-d anti-cu_1 PYTHIA 43; -0.01363 u anti-d anti-d anti-uu_1 PYTHIA 43; -Enddecay - -# added by D.Litvintsev 12/8/03: -Decay Omega_b- -# SemiLeptonic Decays - 0.05460 Omega_c0 e- anti-nu_e PHSP; - 0.05460 Omega_c0 mu- anti-nu_mu PHSP; - 0.02000 Omega_c0 tau- anti-nu_tau PHSP; -# Hadronic Decays with Xi_c+ - 0.00600 Omega_c0 pi- PHSP; - 0.02200 Omega_c0 pi- pi+ pi- PHSP; - 0.00055 Omega_c0 K- PHSP; - 0.02200 Omega_c0 D_s- PHSP; - 0.0011 D0 Xi- PHSP; -# - 0.00047 Omega- J/psi PHSP; - 0.00038 Omega- psi(2S) PHSP; -# aaa 10/19/05 Do not if this is correct but filling out with inclusives -0.68192 d anti-u s cs_0 PYTHIA 43; -0.10910 d anti-u d cs_0 PYTHIA 43; -0.02728 d anti-u s su_0 PYTHIA 43; -Enddecay - -Decay anti-Omega_b+ -# SemiLeptonic Decays - 0.05460 anti-Omega_c0 e+ nu_e PHSP; - 0.05460 anti-Omega_c0 mu+ nu_mu PHSP; - 0.02000 anti-Omega_c0 tau+ nu_tau PHSP; -# Hadronic Decays with Xi_c+ - 0.00600 anti-Omega_c0 pi+ PHSP; - 0.02200 anti-Omega_c0 pi+ pi+ pi- PHSP; - 0.00055 anti-Omega_c0 K+ PHSP; - 0.02200 anti-Omega_c0 D_s+ PHSP; - 0.0011 anti-D0 anti-Xi+ PHSP; -# - 0.00047 anti-Omega+ J/psi PHSP; - 0.00038 anti-Omega+ psi(2S) PHSP; -# aaa 10/19/05 Do not if this is correct but filling out with inclusives -0.68192 u anti-d anti-s anti-cs_0 PYTHIA 43; -0.10910 u anti-d anti-d anti-cs_0 PYTHIA 43; -0.02728 u anti-d anti-s anti-su_0 PYTHIA 43; -Enddecay - - -Decay Sigma_b+ - 1.00000 Lambda_b0 pi+ PHSP; -Enddecay -Decay anti-Sigma_b- - 1.00000 anti-Lambda_b0 pi- PHSP; -Enddecay - -Decay Sigma_b- - 1.00000 Lambda_b0 pi- PHSP; -Enddecay -Decay anti-Sigma_b+ - 1.00000 anti-Lambda_b0 pi+ PHSP; -Enddecay - -Decay Sigma_b0 - 1.00000 Lambda_b0 gamma PHOTOS PHSP; -Enddecay -Decay anti-Sigma_b0 - 1.00000 anti-Lambda_b0 gamma PHOTOS PHSP; -Enddecay - - -# -# B_c Mesons -# - -Decay B_c- -0.01600 tau- anti-nu_tau SLN; -# -# SemiLeptonic Decays -0.01900 J/psi e- anti-nu_e PHOTOS PHSP; -0.00094 psi(2S) e- anti-nu_e PHOTOS PHSP; -0.00750 eta_c e- anti-nu_e PHOTOS PHSP; -0.00020 eta_c(2S) e- anti-nu_e PHOTOS PHSP; -0.00004 anti-D0 e- anti-nu_e PHOTOS PHSP; -0.00018 anti-D*0 e- anti-nu_e PHOTOS PHSP; -0.04030 anti-B_s0 e- anti-nu_e PHOTOS PHSP; -0.05060 anti-B_s*0 e- anti-nu_e PHOTOS PHSP; -0.00340 anti-B0 e- anti-nu_e PHOTOS PHSP; -0.00580 anti-B*0 e- anti-nu_e PHOTOS PHSP; -# -0.01900 J/psi mu- anti-nu_mu PHOTOS PHSP; -0.00094 psi(2S) mu- anti-nu_mu PHOTOS PHSP; -0.00750 eta_c mu- anti-nu_mu PHOTOS PHSP; -0.00020 eta_c(2S) mu- anti-nu_mu PHOTOS PHSP; -0.00004 anti-D0 mu- anti-nu_mu PHOTOS PHSP; -0.00018 anti-D*0 mu- anti-nu_mu PHOTOS PHSP; -0.04030 anti-B_s0 mu- anti-nu_mu PHOTOS PHSP; -0.05060 anti-B_s*0 mu- anti-nu_mu PHOTOS PHSP; -0.00340 anti-B0 mu- anti-nu_mu PHOTOS PHSP; -0.00580 anti-B*0 mu- anti-nu_mu PHOTOS PHSP; -# -0.00480 J/psi tau- anti-nu_tau PHSP; -0.00008 psi(2S) tau- anti-nu_tau PHSP; -0.00230 eta_c tau- anti-nu_tau PHSP; -0.000016 eta_c(2S) tau- anti-nu_tau PHSP; -0.00002 anti-D0 tau- anti-nu_tau PHSP; -0.00008 anti-D*0 tau- anti-nu_tau PHSP; -# -# -# Hadronic Decays -0.00200 eta_c pi- PHSP; -0.00420 rho- eta_c SVS; -0.00013 eta_c K- PHSP; -0.00020 K*- eta_c SVS; -0.00130 J/psi pi- SVS; -0.00400 J/psi rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00011 J/psi K- SVS; -0.00022 J/psi K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -0.000053 D- D0 PHSP; -0.000075 D*0 D- SVS; -0.000049 D*- D0 SVS; -0.00033 D*- D*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.0000048 D_s- D0 PHSP; -0.0000071 D*0 D_s- SVS; -0.0000045 D_s*- D0 SVS; -0.000026 D_s*- D*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -0.0000003 D- anti-D0 PHSP; -0.0000003 anti-D*0 D- SVS; -0.0000004 D*- anti-D0 SVS; -0.0000016 anti-D*0 D*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.0000066 D_s- anti-D0 PHSP; -0.0000063 anti-D*0 D_s- SVS; -0.0000085 D_s*- anti-D0 SVS; -0.0000404 D_s*- anti-D*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -0.00280 eta_c D_s- PHSP; -0.00270 D_s*- eta_c SVS; -0.00015 eta_c D- PHSP; -0.00010 D*- eta_c SVS; -0.00170 J/psi D_s- SVS; -0.00670 J/psi D_s*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00009 J/psi D- SVS; -0.00028 J/psi D*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -0.16400 anti-B_s0 pi- PHSP; -0.07200 rho- anti-B_s0 SVS; -0.01060 anti-B_s0 K- PHSP; -0.00000 K*- anti-B_s0 SVS; -0.06500 anti-B_s*0 pi- SVS; -0.20200 anti-B_s*0 rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00370 anti-B_s*0 K- SVS; -0.00000 anti-B_s*0 K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.01060 anti-B0 pi- PHSP; -0.00960 rho- anti-B0 SVS; -0.00070 anti-B0 K- PHSP; -0.00015 K*- anti-B0 SVS; -0.00950 anti-B*0 pi- SVS; -0.02570 anti-B*0 rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00055 anti-B*0 K- SVS; -0.00058 anti-B*0 K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00037 B- pi0 PHSP; -0.00034 rho0 B- SVS; -0.01980 B- K0 PHSP; -0.00430 K*0 B- SVS; -0.00033 B*- pi0 SVS; -0.00090 B*- rho0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.01600 B*- K0 SVS; -0.01670 B*- K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# PR LHCb 09 Apr 2004 Add B_c+ -> rho0 pi+ - 0.00002 rho0 pi- SVS; -0.06005 anti-c s PYTHIA 42; -# PR LHCb 27 Apr 2004 Add Pythia Modes -# -# ash 10/27/03 Do not if this is correct but filling out with unknown cs -#0.0200235 cs_0 anti-uu_0 PYTHIA 63; -#0.0400470 cs_1 anti-uu_1 PYTHIA 63; -# -Enddecay - -# 09/15/03 A. Sanchez: Using BR's from hep-ph/0308214 -# -# Total Br = 0.939865 + .06135 cs -Decay B_c+ -0.01600 tau+ nu_tau SLN; -# -# SemiLeptonic Decays -0.01900 J/psi e+ nu_e PHOTOS PHSP; -0.00094 psi(2S) e+ nu_e PHOTOS PHSP; -0.00750 eta_c e+ nu_e PHOTOS PHSP; -0.00020 eta_c(2S) e+ nu_e PHOTOS PHSP; -0.00004 D0 e+ nu_e PHOTOS PHSP; -0.00018 D*0 e+ nu_e PHOTOS PHSP; -0.04030 B_s0 e+ nu_e PHOTOS PHSP; -0.05060 B_s*0 e+ nu_e PHOTOS PHSP; -0.00340 B0 e+ nu_e PHOTOS PHSP; -0.00580 B*0 e+ nu_e PHOTOS PHSP; -# -0.01900 J/psi mu+ nu_mu PHOTOS PHSP; -0.00094 psi(2S) mu+ nu_mu PHOTOS PHSP; -0.00750 eta_c mu+ nu_mu PHOTOS PHSP; -0.00020 eta_c(2S) mu+ nu_mu PHOTOS PHSP; -0.00004 D0 mu+ nu_mu PHOTOS PHSP; -0.00018 D*0 mu+ nu_mu PHOTOS PHSP; -0.04030 B_s0 mu+ nu_mu PHOTOS PHSP; -0.05060 B_s*0 mu+ nu_mu PHOTOS PHSP; -0.00340 B0 mu+ nu_mu PHOTOS PHSP; -0.00580 B*0 mu+ nu_mu PHOTOS PHSP; -# -0.00480 J/psi tau+ nu_tau PHSP; -0.00008 psi(2S) tau+ nu_tau PHSP; -0.00230 eta_c tau+ nu_tau PHSP; -0.000016 eta_c(2S) tau+ nu_tau PHSP; -0.00002 D0 tau+ nu_tau PHSP; -0.00008 D*0 tau+ nu_tau PHSP; -# -# Hadronic Decays -0.00200 eta_c pi+ PHSP; -0.00420 rho+ eta_c SVS; -0.00013 eta_c K+ PHSP; -0.00020 K*+ eta_c SVS; -0.00130 J/psi pi+ SVS; -0.00400 J/psi rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00011 J/psi K+ SVS; -0.00022 J/psi K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -0.000053 D+ anti-D0 PHSP; -0.000075 anti-D*0 D+ SVS; -0.000049 D*+ anti-D0 SVS; -0.00033 D*+ anti-D*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.0000048 D_s+ anti-D0 PHSP; -0.0000071 anti-D*0 D_s+ SVS; -0.0000045 D_s*+ anti-D0 SVS; -0.000026 D_s*+ anti-D*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -0.0000003 D+ D0 PHSP; -0.0000003 D*0 D+ SVS; -0.0000004 D*+ D0 SVS; -0.0000016 D*0 D*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.0000066 D_s+ D0 PHSP; -0.0000063 D*0 D_s+ SVS; -0.0000085 D_s*+ D0 SVS; -0.0000404 D_s*+ D*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -0.00280 eta_c D_s+ PHSP; -0.00270 D_s*+ eta_c SVS; -0.00015 eta_c D+ PHSP; -0.00010 D*+ eta_c SVS; -0.00170 J/psi D_s+ SVS; -0.00670 J/psi D_s*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00009 J/psi D+ SVS; -0.00028 J/psi D*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -0.16400 B_s0 pi+ PHSP; -0.07200 rho+ B_s0 SVS; -0.01060 B_s0 K+ PHSP; -0.00000 K*+ B_s0 SVS; -0.06500 B_s*0 pi+ SVS; -0.20200 B_s*0 rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00370 B_s*0 K+ SVS; -0.00000 B_s*0 K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.01060 B0 pi+ PHSP; -0.00960 rho+ B0 SVS; -0.00070 B0 K+ PHSP; -0.00015 K*+ B0 SVS; -0.00950 B*0 pi+ SVS; -0.02570 B*0 rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00055 B*0 K+ SVS; -0.00058 B*0 K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00037 B+ pi0 PHSP; -0.00034 rho0 B+ SVS; -0.01980 B+ anti-K0 PHSP; -0.00430 K*0 B+ SVS; -0.00033 B*+ pi0 SVS; -0.00090 B*+ rho0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.01600 B*+ anti-K0 SVS; -0.01670 B*+ K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# PR LHCb 09 Apr 2004 Add B_c+ -> rho0 pi+ - 0.00002 rho0 pi+ SVS; -0.06005 c anti-s PYTHIA 42; -# PR LHCb 27 Apr 2004 Add Pythia Modes -# -# ash 10/27/03 Do not if this is correct but filling out with unknown cs -#0.0200235 anti-cs_0 uu_0 PYTHIA 63; -#0.0400470 anti-cs_1 uu_1 PYTHIA 63; -# -Enddecay - - -# Add excited Lambda_c decays (R.J. Tesarek 12/9/03) -# Just a guess for the last two BR [Lambda_c(2593)+]. -Decay Lambda_c(2593)+ -0.096585366 Sigma_c++ pi- PHSP; #[Reconstructed PDG2011] -0.096585366 Sigma_c0 pi+ PHSP; #[Reconstructed PDG2011] -0.190000000 Lambda_c+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.096585366 Sigma_c+ pi0 PHSP; #[Reconstructed PDG2011] -0.036219512 Lambda_c+ pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.004024390 Lambda_c+ gamma PHSP; #[Reconstructed PDG2011] -0.240000000 Sigma_c*++ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.240000000 Sigma_c*0 pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -Decay anti-Lambda_c(2593)- -0.096585366 anti-Sigma_c-- pi+ PHSP; #[Reconstructed PDG2011] -0.096585366 anti-Sigma_c0 pi- PHSP; #[Reconstructed PDG2011] -0.190000000 anti-Lambda_c- pi- pi+ PHSP; #[Reconstructed PDG2011] -0.096585366 anti-Sigma_c- pi0 PHSP; #[Reconstructed PDG2011] -0.036219512 anti-Lambda_c- pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.004024390 anti-Lambda_c- gamma PHSP; #[Reconstructed PDG2011] -0.240000000 anti-Sigma_c*-- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.240000000 anti-Sigma_c*0 pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay Lambda_c(2625)+ -0.670000000 Lambda_c+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.320294118 Lambda_c+ pi0 PHSP; #[Reconstructed PDG2011] -0.009705882 Lambda_c+ gamma PHSP; #[Reconstructed PDG2011] -Enddecay -Decay anti-Lambda_c(2625)- -0.670000000 anti-Lambda_c- pi- pi+ PHSP; #[Reconstructed PDG2011] -0.320294118 anti-Lambda_c- pi0 PHSP; #[Reconstructed PDG2011] -0.009705882 anti-Lambda_c- gamma PHSP; #[Reconstructed PDG2011] -Enddecay - -# Add excited B hadrons (LHCb PR 10/03/04) -# Reference : Pythia 6.205 decay table -# PDG Id = 5312 -Decay Xi'_b- - 1.0000 Xi_b- gamma PHSP; -Enddecay -Decay anti-Xi'_b+ - 1.0000 anti-Xi_b+ gamma PHSP; -Enddecay -# PDG Id = 5322 -Decay Xi'_b0 - 1.0000 Xi_b0 gamma PHSP; -Enddecay -Decay anti-Xi'_b0 - 1.0000 anti-Xi_b0 gamma PHSP; -Enddecay -# PDG Id = 10521 -Decay B_0*+ - 0.6670 B0 pi+ PHSP; - 0.3330 B+ pi0 PHSP; -Enddecay -Decay B_0*- - 0.6670 anti-B0 pi- PHSP; - 0.3330 B- pi0 PHSP; -Enddecay -# PDG Id = 20523 Broad : S wave -Decay B'_1+ - 0.6670 B*0 pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; - 0.3330 B*+ pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -Decay B'_1- - 0.6670 anti-B*0 pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; - 0.3330 B*- pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# PDG Id = 10523 Narrow : D wave -Decay B_1+ - 0.6670 B*0 pi+ VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; - 0.3330 B*+ pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -Enddecay -Decay B_1- - 0.6670 anti-B*0 pi- VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; - 0.3330 B*- pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -Enddecay -# PDG Id = 525 Narrow : D wave -Decay B_2*+ - 0.3000 B0 pi+ TSS; - 0.1500 B+ pi0 TSS; - 0.1600 B*0 pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; - 0.0800 B*+ pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; - 0.1300 B*0 pi+ pi0 PHSP; - 0.0600 B*+ pi+ pi- PHSP; - 0.0800 B0 pi+ pi0 PHSP; - 0.0400 B+ pi+ pi- PHSP; -Enddecay -Decay B_2*- - 0.3000 anti-B0 pi- TSS; - 0.1500 B- pi0 TSS; - 0.1600 anti-B*0 pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; - 0.0800 B*- pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; - 0.1300 anti-B*0 pi- pi0 PHSP; - 0.0600 B*- pi- pi+ PHSP; - 0.0800 anti-B0 pi- pi0 PHSP; - 0.0400 B- pi- pi+ PHSP; -Enddecay -# PDG Id = 10511 -Decay B_0*0 - 0.6670 B+ pi- PHSP; - 0.3330 B0 pi0 PHSP; -Enddecay -Decay anti-B_0*0 - 0.6670 B- pi+ PHSP; - 0.3330 anti-B0 pi0 PHSP; -Enddecay -# PDG Id = 20513 Broad : S wave -Decay B'_10 - 0.6670 B*+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; - 0.3330 B*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -Decay anti-B'_10 - 0.6670 B*- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; - 0.3330 anti-B*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# PDG Id = 10513 Narrow : D wave -Decay B_10 - 0.6670 B*+ pi- VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; - 0.3330 B*0 pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -Enddecay -Decay anti-B_10 - 0.6670 B*- pi+ VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; - 0.3330 anti-B*0 pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -Enddecay -# PDG Id = 515 -Decay B_2*0 - 0.3000 B+ pi- TSS; - 0.1500 B0 pi0 TSS; - 0.1600 B*+ pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; - 0.0800 B*0 pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; - 0.1300 B*+ pi- pi0 PHSP; - 0.0600 B*0 pi+ pi- PHSP; - 0.0800 B+ pi- pi0 PHSP; - 0.0400 B0 pi+ pi- PHSP; -Enddecay -Decay anti-B_2*0 - 0.3000 B- pi+ TSS; - 0.1500 anti-B0 pi0 TSS; - 0.1600 B*- pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; - 0.0800 anti-B*0 pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; - 0.1300 B*- pi+ pi0 PHSP; - 0.0600 anti-B*0 pi- pi+ PHSP; - 0.0800 B- pi+ pi0 PHSP; - 0.0400 anti-B0 pi- pi+ PHSP; -Enddecay -# PDG Id = 10531 -Decay B_s0*0 - 0.5000 B+ K- PHSP; - 0.5000 B0 anti-K0 PHSP; -Enddecay -Decay anti-B_s0*0 - 0.5000 B- K+ PHSP; - 0.5000 anti-B0 K0 PHSP; -Enddecay -# PDG Id = 20533 Broad : S wave -Decay B'_s10 - 0.5000 B*+ K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; - 0.5000 B*0 anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -Decay anti-B'_s10 - 0.5000 B*- K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; - 0.5000 anti-B*0 K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# PDG Id = 10533 Narrow : D wave -Decay B_s10 - 0.5000 B*+ K- VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; - 0.5000 B*0 anti-K0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -Enddecay -Decay anti-B_s10 - 0.5000 B*- K+ VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; - 0.5000 anti-B*0 K0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -Enddecay -# PDG Id = 535 Narrow : D wave -Decay B_s2*0 - 0.3000 B+ K- TSS; - 0.3000 B0 anti-K0 TSS; - 0.2000 B*+ K- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; - 0.2000 B*0 anti-K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -Enddecay -Decay anti-B_s2*0 - 0.3000 B- K+ TSS; - 0.3000 anti-B0 K0 TSS; - 0.2000 B*- K+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; - 0.2000 anti-B*0 K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -Enddecay -# PDG Id = 543 -Decay B_c*+ - 1.0000 B_c+ gamma VSP_PWAVE; -Enddecay -Decay B_c*- - 1.0000 B_c- gamma VSP_PWAVE; -Enddecay -# PDG Id = 545 Narrow : D wave -Decay B_c2*+ - 0.3000 B0 D+ TSS; - 0.3000 B+ D0 TSS; - 0.2000 B*0 D+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; - 0.2000 B*+ D0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -Enddecay -Decay B_c2*- - 0.3000 anti-B0 D- TSS; - 0.3000 B- anti-D0 TSS; - 0.2000 anti-B*0 D- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; - 0.2000 B*- anti-D0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -Enddecay -# PDG Id = 5114 -Decay Sigma_b*- - 1.0000 Lambda_b0 pi- PHSP; -Enddecay -Decay anti-Sigma_b*+ - 1.0000 anti-Lambda_b0 pi+ PHSP; -Enddecay -# PDG Id = 5224 -Decay Sigma_b*+ - 1.0000 Lambda_b0 pi+ PHSP; -Enddecay -Decay anti-Sigma_b*- - 1.0000 anti-Lambda_b0 pi- PHSP; -Enddecay -# PDG Id = 5214 -Decay Sigma_b*0 - 1.0000 Lambda_b0 pi0 PHSP; -Enddecay -Decay anti-Sigma_b*0 - 1.0000 anti-Lambda_b0 pi0 PHSP; -Enddecay -# PDG Id = 5314 -Decay Xi_b*- - 1.0000 Xi_b- gamma PHSP; -Enddecay -Decay anti-Xi_b*+ - 1.0000 anti-Xi_b+ gamma PHSP; -Enddecay -# PDG Id = 5324 -Decay Xi_b*0 - 1.0000 Xi_b0 gamma PHSP; -Enddecay -Decay anti-Xi_b*0 - 1.0000 anti-Xi_b0 gamma PHSP; -Enddecay -# PDG Id = 5334 -Decay Omega_b*- - 1.0000 Omega_b- gamma PHSP; -Enddecay -Decay anti-Omega_b*+ - 1.0000 anti-Omega_b+ gamma PHSP; -Enddecay -# PDG Id = 10541 -Decay B_c0*+ - 0.5000 B0 D+ PHSP; - 0.5000 B+ D0 PHSP; -Enddecay -Decay B_c0*- - 0.5000 anti-B0 D- PHSP; - 0.5000 B- anti-D0 PHSP; -Enddecay -# PDG Id = 10543 Narrow : D wave -Decay B_c1+ - 0.5000 B*0 D+ VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; - 0.5000 B*+ D0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -Enddecay -Decay B_c1- - 0.5000 anti-B*0 D- VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; - 0.5000 B*- anti-D0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -Enddecay -# PDG Id = 20543 Broad : S wave -Decay B'_c1+ - 0.5000 B*0 D+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; - 0.5000 B*+ D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -Decay B'_c1- - 0.5000 anti-B*0 D- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; - 0.5000 B*- anti-D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay - -# Excited charmed Baryons LHCb PR 3-05-2006 -Decay Xi_cc*++ - 0.08 e+ nu_e Xi_c+ PHSP ; - 0.08 mu+ nu_mu Xi_c+ PHSP ; -0.51 u anti-d s cu_0 PYTHIA 42; -0.25 u anti-d s cu_1 PYTHIA 42; -0.05 u anti-s s cu_0 PYTHIA 42; -0.03 u anti-s s cu_1 PYTHIA 42; -Enddecay - -Decay anti-Xi_cc*-- - 0.08 e- anti-nu_e anti-Xi_c- PHSP; - 0.08 mu- anti-nu_mu anti-Xi_c- PHSP; -0.51 anti-u d anti-s anti-cu_0 PYTHIA 42; -0.25 anti-u d anti-s anti-cu_0 PYTHIA 42; -0.05 anti-u s anti-s anti-cu_1 PYTHIA 42; -0.03 anti-u s anti-s anti-cu_1 PYTHIA 42; -Enddecay - -Decay Xi_cc++ - 0.08 e+ nu_e Xi_c+ PHSP ; - 0.08 mu+ nu_mu Xi_c+ PHSP ; -0.51 u anti-d s cu_0 PYTHIA 42; -0.25 u anti-d s cu_1 PYTHIA 42; -0.05 u anti-s s cu_0 PYTHIA 42; -0.03 u anti-s s cu_1 PYTHIA 42; -Enddecay - -Decay anti-Xi_cc-- - 0.08 e- anti-nu_e anti-Xi_c- PHSP; - 0.08 mu- anti-nu_mu anti-Xi_c- PHSP; -0.51 anti-u d anti-s anti-cu_0 PYTHIA 42; -0.25 anti-u d anti-s anti-cu_0 PYTHIA 42; -0.05 anti-u s anti-s anti-cu_1 PYTHIA 42; -0.03 anti-u s anti-s anti-cu_1 PYTHIA 42; -Enddecay - -Decay Xi_cc*+ - 0.08 e+ nu_e Xi_c0 PHSP; - 0.08 mu+ nu_mu Xi_c0 PHSP; -0.51 u anti-d s cd_0 PYTHIA 42; -0.25 u anti-d s cd_1 PYTHIA 42; -0.05 u anti-s s cd_0 PYTHIA 42; -0.03 u anti-s s cd_1 PYTHIA 42; -Enddecay - -Decay anti-Xi_cc*- - 0.08 e- anti-nu_e anti-Xi_c0 PHSP; - 0.08 mu- anti-nu_mu anti-Xi_c0 PHSP; -0.51 anti-u d anti-s anti-cd_0 PYTHIA 42; -0.25 anti-u d anti-s anti-cd_1 PYTHIA 42; -0.05 anti-u s anti-s anti-cd_0 PYTHIA 42; -0.03 anti-u s anti-s anti-cd_1 PYTHIA 42; -Enddecay - -Decay Xi_cc+ - 0.08 e+ nu_e Xi_c0 PHSP; - 0.08 mu+ nu_mu Xi_c0 PHSP; -0.51 u anti-d s cd_0 PYTHIA 42; -0.25 u anti-d s cd_1 PYTHIA 42; -0.05 u anti-s s cd_0 PYTHIA 42; -0.03 u anti-s s cd_1 PYTHIA 42; -Enddecay - -Decay anti-Xi_cc- - 0.08 e- anti-nu_e anti-Xi_c0 PHSP; - 0.08 mu- anti-nu_mu anti-Xi_c0 PHSP; -0.51 anti-u d anti-s anti-cd_0 PYTHIA 42; -0.25 anti-u d anti-s anti-cd_1 PYTHIA 42; -0.05 anti-u s anti-s anti-cd_0 PYTHIA 42; -0.03 anti-u s anti-s anti-cd_1 PYTHIA 42; -Enddecay - -Decay Omega_cc+ - 0.08 e+ nu_e Omega_c0 PHSP; - 0.08 mu+ nu_mu Omega_c0 PHSP; -0.51 u anti-d s cs_0 PYTHIA 42; -0.25 u anti-d s cs_1 PYTHIA 42; -0.05 u anti-s s cs_0 PYTHIA 42; -0.03 u anti-s s cs_1 PYTHIA 42; -Enddecay - -Decay anti-Omega_cc- - 0.08 e- anti-nu_e anti-Omega_c0 PHSP; - 0.08 mu- anti-nu_mu anti-Omega_c0 PHSP; -0.51 anti-u d anti-s anti-cs_0 PYTHIA 42; -0.25 anti-u d anti-s anti-cs_1 PYTHIA 42; -0.05 anti-u s anti-s anti-cs_0 PYTHIA 42; -0.03 anti-u s anti-s anti-cs_1 PYTHIA 42; -Enddecay - -Decay Omega_cc*+ - 0.08 e+ nu_e Omega_c0 PHSP; - 0.08 mu+ nu_mu Omega_c0 PHSP; -0.51 u anti-d s cs_0 PYTHIA 42; -0.25 u anti-d s cs_1 PYTHIA 42; -0.05 u anti-s s cs_0 PYTHIA 42; -0.03 u anti-s s cs_1 PYTHIA 42; -Enddecay - -Decay anti-Omega_cc*- - 0.08 e- anti-nu_e anti-Omega_c0 PHSP; - 0.08 mu- anti-nu_mu anti-Omega_c0 PHSP; -0.51 anti-u d anti-s anti-cs_0 PYTHIA 42; -0.25 anti-u d anti-s anti-cs_1 PYTHIA 42; -0.05 anti-u s anti-s anti-cs_0 PYTHIA 42; -0.03 anti-u s anti-s anti-cs_1 PYTHIA 42; -Enddecay - -Decay K_L0 -#0.202464226 pi+ e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -#0.202464226 pi- e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -#0.135033299 pi+ mu- anti-nu_mu PHSP; #[New mode added] #[Reconstructed PDG2011] -#0.135033299 pi- mu+ nu_mu PHSP; #[New mode added] #[Reconstructed PDG2011] -#0.000025738 pi0 pi+ e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -#0.000025738 pi0 pi- e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -#0.000006205 pi+ e- anti-nu_e e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] -#0.000006205 pi- e+ nu_e e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] -#0.194795855 pi0 pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -#0.125231606 pi+ pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -#0.001880711 pi+ e- anti-nu_e gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -#0.001880711 pi- e+ nu_e gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -#0.000277023 pi+ mu- anti-nu_mu gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -#0.000277023 pi- mu+ nu_mu gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -#0.000040995 pi+ pi- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -#0.000001262 pi0 gamma gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -#0.000000016 pi0 gamma e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] -#0.000545653 gamma gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -#0.000009265 e+ e- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -#0.000000355 mu+ mu- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -#0.000000584 e+ e- gamma gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -#0.000000007 mu+ mu- gamma gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay - -End diff --git a/GeneratorInterface/EvtGenInterface/data/DECAY_NOLONGLIFE.DEC b/GeneratorInterface/EvtGenInterface/data/DECAY_NOLONGLIFE.DEC deleted file mode 100644 index 5fe810d29b606..0000000000000 --- a/GeneratorInterface/EvtGenInterface/data/DECAY_NOLONGLIFE.DEC +++ /dev/null @@ -1,10094 +0,0 @@ - -######################################################################## -# Copyright 1998-2020 CERN for the benefit of the EvtGen authors # -# # -# This file is part of EvtGen. # -# # -# EvtGen is free software: you can redistribute it and/or modify # -# it under the terms of the GNU General Public License as published by # -# the Free Software Foundation, either version 3 of the License, or # -# (at your option) any later version. # -# # -# EvtGen is distributed in the hope that it will be useful, # -# but WITHOUT ANY WARRANTY; without even the implied warranty of # -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # -# GNU General Public License for more details. # -# # -# You should have received a copy of the GNU General Public License # -# along with EvtGen. If not, see . # -######################################################################## - -# Updated to PDG 2010 by Tomas Pilar - T.Pilar@warwick.ac.uk -# Updated Mixing Parameters Mark Whitehead May 2009 -# -Define qoverp_incohMix_B_s0 1.0 -Define dm_incohMix_B_s0 17.8e12 -Define qoverp_incohMix_B0 1.0 -Define dm_incohMix_B0 0.507e12 -# Old definition of dm still in some decay models -Define dm 0.507e12 -#Define dgamma 0 -#Define qoverp 1 -#Define phaseqoverp 0 -#Define values for B0s mixing -#Define dms 20.e12 -# DeltaGammas corresponds to DG/G = 10% -#Define dgammas 6.852e10 -# Activate incoherent Mixing -### TODO: find a way to give mixing parameters through decay file to EvtGen -#####yesIncoherentB0Mixing dm dgamma -#####yesIncoherentBsMixing dms dgammas -# define the values of the CKM angles (alpha=70, beta=40) -Define alpha 1.365 -Define beta 0.39 -Define gamma 1.387 -Define twoBetaPlusGamma 2.167 -Define betaPlusHalfGamma 1.0835 -Define minusGamma -1.387 -Define minusTwoBeta -0.78 - -# New definitions for psiKstar modes (Lange, July 26, 2000) -Define PKHplus 0.159 -Define PKHzero 0.775 -Define PKHminus 0.612 -Define PKphHplus 1.563 -Define PKphHzero 0.0 -Define PKphHminus 2.712 - -Define Aplus 0.490 -Define Azero 1.10 -Define Aminus 0.4 -# -Define phAplus 2.5 -Define phAzero 0.0 -Define phAminus -0.17 - -# -# These particle aliases are used in for CP violating decays -# in which the decay distributions depends on how the K* decayed. -# -# -Alias K*L K*0 -Alias K*S K*0 -Alias K*BL anti-K*0 -Alias K*BS anti-K*0 -Alias K*0T K*0 -Alias anti-K*0T anti-K*0 -Alias K*BR anti-K*0 -Alias K*0R K*0 -Alias anti-K_0*0N anti-K_0*0 -Alias K_0*0N K_0*0 -# -ChargeConj K*L K*BL -ChargeConj K*S K*BS -ChargeConj K*0T anti-K*0T -ChargeConj K_0*0N anti-K_0*0N -ChargeConj K*0R K*BR -#JetSet parameter modifications -#(Very important that there are no blank spaces in the parameter string!) -#Turn of B0-B0B mixing in JetSet: -#JetSetPar MSTJ(26)=0 -# control of L=1 mesons (in order: J1S0 J0S1 J1S1 J2S1) - commented out by NB/WP -#JetSetPar PARJ(14)=0.05 -#JetSetPar PARJ(15)=0.05 -#JetSetPar PARJ(16)=0.05 -#JetSetPar PARJ(17)=0.05 -#cut-off parameter used to stop fragmentation process (should not be changed) -#####JetSetPar PARJ(33)=0.3 SET NOW IN GAUSS - -# PR LHCb 10/01/2006 -# Turn on PHOTOS for all decays -yesPhotos -# -# -#Decay vpho -#1.000 PYCONT; -#Enddecay -# -# use new VSS_BMIX mixing decay model (DK,28-Oct-1999) -Decay Upsilon(4S) -0.515122645 B+ B- VSS; #[Reconstructed PDG2011] -0.483122645 B0 anti-B0 VSS_BMIX dm; #[Reconstructed PDG2011] -0.000015583 e+ e- PHOTOS VLL; #[Reconstructed PDG2011] -0.000015766 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] -0.000015766 tau+ tau- PHOTOS VLL; #[Reconstructed PDG2011] -0.000084099 Upsilon(2S) pi+ pi- VVPIPI; #[Reconstructed PDG2011] -0.000044342 Upsilon(2S) pi0 pi0 VVPIPI; #[Reconstructed PDG2011] -0.000080123 Upsilon pi+ pi- VVPIPI; #[Reconstructed PDG2011] -0.000044342 Upsilon pi0 pi0 VVPIPI; #[Reconstructed PDG2011] -0.000194392 Upsilon eta PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -# BF ~ (2J+1)E^3_gamma; see PRL 94, 032001 -# V-> gamma S Partial wave (L,S)=(0,0) -0.000092625 gamma chi_b0(3P) HELAMP 1. 0. 1. 0.; #[Reconstructed PDG2011] -# V-> gamma V Partial wave (L,S)=(0,1) -0.000138938 gamma chi_b1(3P) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; #[Reconstructed PDG2011] -# V-> gamma T Partial wave (L,S)=(0,1) -0.000129084 gamma chi_b2(3P) HELAMP 2.4494897 0. 1.7320508 0. 1. 0. 1. 0. 1.7320508 0. 2.4494897 0.; #[Reconstructed PDG2011] -# V-> gamma S Partial wave (L,S)=(0,0) -0.000002956 gamma chi_b0(2P) HELAMP 1. 0. 1. 0.; #[Reconstructed PDG2011] -# V-> gamma V Partial wave (L,S)=(0,1) -0.000007883 gamma chi_b1(2P) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; #[Reconstructed PDG2011] -# V-> gamma T Partial wave (L,S)=(0,1) -0.000011825 gamma chi_b2(2P) HELAMP 2.4494897 0. 1.7320508 0. 1. 0. 1. 0. 1.7320508 0. 2.4494897 0.; #[Reconstructed PDG2011] -0.000837571 g g g PYTHIA 92; -0.000039415 gamma g g PYTHIA 92; -Enddecay -# -# -# -Decay anti-B0 -# Updated to PDG 2008 -# b -> c semileptonic -# -0.0493 D*+ e- anti-nu_e PHOTOS HQET2 1.207 0.920 1.406 0.853; # 1.0 * PDG2014 -0.0219 D+ e- anti-nu_e PHOTOS HQET2 1.185 1.081; # 1.0 * PDG2014 -0.0042 D_1+ e- anti-nu_e PHOTOS ISGW2; # PDG2014+D_J below -0.0045 D_0*+ e- anti-nu_e PHOTOS ISGW2; # PDG2014+D_J below -0.0046 D'_1+ e- anti-nu_e PHOTOS ISGW2; # PDG2014+D_J below -0.0033 D_2*+ e- anti-nu_e PHOTOS ISGW2; # PDG2014+D_J below -0.00045 D*+ pi0 e- anti-nu_e PHOTOS GOITY_ROBERTS; # Increase by 1.5 compared to 2011 -0.00490 D*0 pi+ e- anti-nu_e PHOTOS GOITY_ROBERTS; # Same as 2011 -0.0015 D+ pi0 e- anti-nu_e PHOTOS GOITY_ROBERTS; # 1.5 * of 2011 table -0.0043 D0 pi+ e- anti-nu_e PHOTOS GOITY_ROBERTS; # In principle should be in D**, but go to PDG2014 to fill inclusive -# Do same as for electrons -0.0493 D*+ mu- anti-nu_mu PHOTOS HQET2 1.207 0.920 1.406 0.853; #[Reconstructed PDG2011] -0.0219 D+ mu- anti-nu_mu PHOTOS HQET2 1.185 1.081; #[Reconstructed PDG2011] -0.0042 D_1+ mu- anti-nu_mu PHOTOS ISGW2; -0.0045 D_0*+ mu- anti-nu_mu PHOTOS ISGW2; -0.0046 D'_1+ mu- anti-nu_mu PHOTOS ISGW2; -0.0033 D_2*+ mu- anti-nu_mu PHOTOS ISGW2; -0.00045 D*+ pi0 mu- anti-nu_mu PHOTOS GOITY_ROBERTS; -0.00490 D*0 pi+ mu- anti-nu_mu PHOTOS GOITY_ROBERTS; #[Reconstructed PDG2011] -0.0015 D+ pi0 mu- anti-nu_mu PHOTOS GOITY_ROBERTS; -0.0043 D0 pi+ mu- anti-nu_mu PHOTOS GOITY_ROBERTS; -# -# b -> c tau nu -# -0.015000000 D*+ tau- anti-nu_tau ISGW2; #[Reconstructed PDG2011] -0.011000000 D+ tau- anti-nu_tau ISGW2; #[Reconstructed PDG2011] -0.0013 D_1+ tau- anti-nu_tau ISGW2; -0.0013 D_0*+ tau- anti-nu_tau ISGW2; -0.0020 D'_1+ tau- anti-nu_tau ISGW2; -0.0020 D_2*+ tau- anti-nu_tau ISGW2; -# -# b -> u l nu -# -# 03/28/01 S.Menke included inclusive B -> X_u l nu decays for m(X_u) > 1.26 GeV. -# with some thresholds to gradually switch from excl. to incl. -# modeling without big jumps keeping the better known excl. -# Brs at their actual values and constrain the incl. Br and -# weights in a way that ~40% of the total BR belongs to -# the mass region > 1.5 GeV -# October 20, 2004 - Lange - update using sl awg input -# March 30, 2005 J. Dingfelder: Updated B -> X_u l nu hybrid model -# (supersedes older version by S. Menke). Inclusive -# decays are reweighted in three kinematic -# variables mX, q2, and El (=> 512 weights total). -# The list of weights is included as ModelAlias -# once per B charge state. -# NOTE: - The specified parameters for model VUBHYBRID are: -# mb, a, alpha_s, nbins_mX, nbins_q2, nbins_El, -# list of threshold values for mX, q2, El in ascending order. -# -# *** DO NOT CHANGE ANY OF THESE PARAMETERS! *** -# Otherwise a new set of weights would be needed, since they were -# generated for a certain set of values for mb, a, excl. BFs, non-res BF. -# -# - If no binning (nbins or thresholds) are specified after the first -# three parameters (mb,a,alpha_s) no hybrid weighting is performed. - -# --- Hybrid weights for neutral B -> Xu l nu decays -# NOTE: Do NOT CHANGE any BFs without using the corresponding set of -# hybrid weights (and vice versa). - -0.000145000 pi+ e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.000294000 rho+ e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.000000 D(2S)+ e- anti-nu_e PHOTOS ISGW2; -0.000000 D*(2S)+ e- anti-nu_e PHOTOS ISGW2; -0.001892 Xu+ e- anti-nu_e PHOTOS VUB 4.8 1.29 0.22 20 0.30 0.55 1.20 0.61 1.26 0.85 1.34 1.08 1.41 1.21 1.48 1.30 1.55 1.30 1.61 1.33 1.67 1.36 1.73 1.39 1.79 1.33 1.84 1.42 1.90 1.39 1.95 1.39 2.00 1.37 2.50 1.30 3.00 0.74 3.50 0.99 4.00 1.09 4.50 1.00; -# -0.000145000 pi+ mu- anti-nu_mu PHOTOS ISGW2; # PDG2014 -0.000294000 rho+ mu- anti-nu_mu PHOTOS ISGW2; # PDG2014 -0.000000 D(2S)+ mu- anti-nu_mu PHOTOS ISGW2; -0.000000 D*(2S)+ mu- anti-nu_mu PHOTOS ISGW2; -0.001892 Xu+ mu- anti-nu_mu PHOTOS VUB 4.8 1.29 0.22 20 0.30 0.55 1.20 0.61 1.26 0.85 1.34 1.08 1.41 1.21 1.48 1.30 1.55 1.30 1.61 1.33 1.67 1.36 1.73 1.39 1.79 1.33 1.84 1.42 1.90 1.39 1.95 1.39 2.00 1.37 2.50 1.30 3.00 0.74 3.50 0.99 4.00 1.09 4.50 1.00; -# -0.000060 pi+ tau- anti-nu_tau ISGW2; -0.000083 rho+ tau- anti-nu_tau ISGW2; -0.000090 a_1+ tau- anti-nu_tau ISGW2; -0.000008 b_1+ tau- anti-nu_tau ISGW2; -0.000008 a_0+ tau- anti-nu_tau ISGW2; -0.000008 a_2+ tau- anti-nu_tau ISGW2; -0.000000 rho(2S)+ tau- anti-nu_tau ISGW2; -0.000000 D(2S)+ tau- anti-nu_tau ISGW2; -0.000000 D*(2S)+ tau- anti-nu_tau ISGW2; -# - -# -# b->u hadronic -# Ref. [B1]: -# Lange Nov 14, 2004 (flip D_s K -- is opposite of D_s pi) -0.000024000 D_s- pi+ PHSP; #[Reconstructed PDG2011] -0.000030000 D_s+ K- PHSP; #[Reconstructed PDG2011] -0.000021000 D_s*- pi+ SVS; #[Reconstructed PDG2011] -0.000021900 D_s*+ K- SVS; #[Reconstructed PDG2011] -# -0.000016 rho+ D_s- SVS; -0.000035000 K*- D_s+ SVS; #[Reconstructed PDG2011] -0.000041000 D_s*- rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000032000 D_s*+ K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] - - -# -# b -> s gamma -# -0.000043300 anti-K*0 gamma HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -# PR LHCb add omega gamma -0.000000440 omega gamma HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -#0.0000135 anti-K_10 gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000065 anti-K'_10 gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000128 anti-K'*0 gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000166 anti-K_2*0 gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000017 anti-K''*0 gamma HELAMP 1.0 0.0 1.0 0.0; -0.0003118 anti-Xsd gamma BTOXSGAMMA 2 ; -# -0.000000160 anti-K0 e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.000001030 anti-K*0 e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.0000050 anti-Xsd e+ e- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; -0.000000450 anti-K0 mu+ mu- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.000001050 anti-K*0 mu+ mu- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.0000025 anti-Xsd mu+ mu- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; -0.0000001 anti-K0 tau+ tau- PHOTOS BTOSLLBALL; -0.0000002 anti-K*0 tau+ tau- PHOTOS BTOSLLBALL; -0.0000002 anti-Xsd tau+ tau- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; -# -#------------------------------------------------------------------------------ -# 2- and 3-body modes revised Feb.2005 Markus Cristinziani, SLAC -#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv -# B0 -> CP eigenstates (some exclusive b -> u) sum=0.00036 -# -0.000005130 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000001620 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.0000010 pi0 eta PHSP; -0.000001200 pi0 eta' PHSP; #[Reconstructed PDG2011] -0.000001 pi0 a_00 PHSP; -0.000001 pi0 f_0 PHSP; -# pi0 rho0 is with the 3-body modes -0.000001 omega pi0 SVS; -0.000001 a_10 pi0 SVS; -0.000001 b_10 pi0 SVS; -0.000001 eta eta PHSP; -0.000001 eta eta' PHSP; -0.000001 eta a_00 PHSP; -0.000001 eta f_0 PHSP; -0.000001 rho0 eta SVS; -0.000000940 omega eta SVS; #[Reconstructed PDG2011] -0.000001 a_10 eta SVS; -0.000001 b_10 eta SVS; -0.000001 eta' eta' PHSP; -0.000001 eta' a_00 PHSP; -0.000001 eta' f_0 PHSP; -0.000001 rho0 eta' SVS; -0.000001000 omega eta' SVS; #[Reconstructed PDG2011] -0.000001 a_10 eta' SVS; -0.000001 b_10 eta' SVS; -0.000001 a_00 a_00 PHSP; -0.000001 a_00 f_0 PHSP; -0.000001 rho0 a_00 SVS; -0.000001 omega a_00 SVS; -0.000001 a_10 a_00 SVS; -0.000001 b_10 a_00 SVS; -0.000001 f_0 f_0 PHSP; -0.000001 rho0 f_0 SVS; -0.000001 omega f_0 SVS; -0.000001 a_10 f_0 SVS; -0.000001 b_10 f_0 SVS; - -# Penguin dominated modes are sin2beta, not sin2alpha -0.000004300 phi K_S0 SVS; #[Reconstructed PDG2011] -0.000004300 phi K_L0 SVS; #[Reconstructed PDG2011] -0.000000550 eta K_S0 PHSP; #[Reconstructed PDG2011] -0.000000550 eta K_L0 PHSP; #[Reconstructed PDG2011] -0.000033000 eta' K_S0 PHSP; #[Reconstructed PDG2011] -0.000033000 eta' K_L0 PHSP; #[Reconstructed PDG2011] -0.000002500 omega K_S0 SVS; #[Reconstructed PDG2011] -0.000002500 omega K_L0 SVS; #[Reconstructed PDG2011] -#don't allow jetset to simulate the same decay but to a K0 or anti-K0 -#Lange 1/30/2003 -0.0 phi K0 PHSP; -0.0 phi anti-K0 PHSP; -0.0 eta K0 PHSP; -0.0 eta anti-K0 PHSP; -0.0 eta' K0 PHSP; -0.0 eta' anti-K0 PHSP; -0.0 omega K0 PHSP; -0.0 omega anti-K0 PHSP; -# phipi0 has no simple Pengiun or tree so who knows - ditto phieta/eta'? -0.000001 phi pi0 SVS; -0.000001 phi eta SVS; -0.000001 phi eta' SVS; -# -0.000015900 anti-K*0 eta SVS; #[Reconstructed PDG2011] -0.000003800 anti-K*0 eta' SVS; #[Reconstructed PDG2011] -0.000002000 anti-K*0 omega SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000001 phi omega SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000001 omega omega SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000001 omega rho0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -# -# -#2-body modes from Jim Olsen -0.000019400 K- pi+ PHSP; #[Reconstructed PDG2011] -0.0000004 K+ K- PHSP; -# K_S0 K_L0 is 0 -# see http://babar-hn.slac.stanford.edu:5090/HyperNews/get/pubboard14/156.html -0.000000240 K_S0 K_S0 PHSP; #[Reconstructed PDG2011] -0.0000000 K_S0 K_L0 PHSP; -0.000000240 K_L0 K_L0 PHSP; #[Reconstructed PDG2011] -# declare K0 pi0 not to have it through Pythia -0.000000 anti-K0 pi0 PHSP; -# Split into K_S0 K_L0 (LHCb - P. Robbe) -0.000004750 K_S0 pi0 PHSP; #[Reconstructed PDG2011] -0.000004750 K_L0 pi0 PHSP; #[Reconstructed PDG2011] -# 0 to keep PYTHIA from generating it -0.000000 K0 anti-K0 PHSP; -# -# 3-body decays -# this model generates interferences and higher mass rho -# -# 3-body by John Back (jback@slac.stanford.edu) - Oct 15, 2002 -# JGS intersperses modes with pi0->eta,eta' -# anti-B0 modes -# Model generates rho(770), rho(1450) and rho(1700) resonances -# with interference (uses CKM angle alpha) -0.000024 pi- pi+ pi0 BTO3PI_CP dm alpha; -# Put in with 0 BR to keep PYTHIA from generating these (see BTO3PI_CP above) -0.000000 rho0 pi0 SVS; -0.000000 rho- pi+ SVS; -0.000000 rho+ pi- SVS; -0.000000 rho(2S)- pi+ SVS; -0.000000 rho(2S)+ pi- SVS; -0.000000 rho(3S)- pi+ SVS; -0.000000 rho(3S)+ pi- SVS; -# -# rho0 3-body modes -0.000002350 rho0 K_S0 SVS; #[Reconstructed PDG2011] -0.000002350 rho0 K_L0 SVS; #[Reconstructed PDG2011] -# -# rho+ 3-body modes -0.000008400 rho+ K- SVS; #[Reconstructed PDG2011] -# -# rho(1450) 3-body modes -0.0000005 rho(2S)0 K_S0 SVS; -0.0000005 rho(2S)0 K_L0 SVS; -# -# -# f0,a0(980) 3-body modes -0.0000055 f_0 anti-K0 PHSP; -0.000001 a_00 anti-K0 PHSP; -0.000001 a_0+ K- PHSP; -0.000003 a_0+ pi- PHSP; -0.000001 a_0- pi+ PHSP; -# -# K*0(892) 3-body modes -0.000003600 anti-K*0 pi0 SVS; #[Reconstructed PDG2011] -0.000003 anti-K*0 K0 SVS; -# -# K*0(1430) 3-body modes -0.000001 anti-K_0*0 pi0 PHSP; -0.000003 anti-K_0*0 K0 PHSP; -# -# K*0(1680) 3-body modes -0.000001 anti-K''*0 pi0 SVS; -0.000001 anti-K''*0 K0 SVS; - -# -# K*-(892) 3-body modes -0.000009400 K*- pi+ SVS; #[Reconstructed PDG2011] -0.000002 K*- K+ SVS; -# -# K*-(1430) 3-body modes -0.000033000 K_0*- pi+ PHSP; #[Reconstructed PDG2011] -0.000002 K_0*- K+ PHSP; -# -# K*0(1680) 3-body modes -0.000001 K''*- pi+ SVS; -0.000001 K''*- K+ SVS; -# -# -# Non-resonant 3-body left-overs -# Most modes are set at 1e-6 -# -# pi-pi+pi0: high mass + f0(400-1200) = (1+1)e-6 -####0402270.000002 pi- pi+ pi0 PHSP; -0.000017 pi- pi+ eta PHSP; -0.000001 pi- pi+ eta' PHSP; -# -# pi- pi+ anti-K0: total-rhoK0-f0K0-piK*(892)-piK*(1430)=45-5-6-13./3-11./3 -0.000000000 pi- pi+ anti-K0 PHSP; #[Reconstructed PDG2011] -# -# K- pi+ pi0 -0.000027500 K- pi+ pi0 PHSP; #[Reconstructed PDG2011] -0.000020 K- pi+ eta PHSP; -0.000001 K- pi+ eta' PHSP; -# -# pi- K+ K0. -# Both B0 and B0bar can decay to these => 0.5e-6 each -0.0000005 pi- K+ anti-K0 PHSP; -0.0000005 pi+ K- K0 PHSP; -# -# K- K+ anti-K0 -# PR LHCb 09 Apr 2004 split into KL/KS -0.000000 K- K+ anti-K0 PHSP; -0.000012350 K- K+ K_S0 PHSP; #[Reconstructed PDG2011] -0.000012350 K- K+ K_L0 PHSP; #[Reconstructed PDG2011] -# -# K- K+ pi0 -0.000001 K- K+ pi0 PHSP; -0.000001 K- K+ eta PHSP; -0.000001 K- K+ eta' PHSP; -# -# pi0 anti-K0 K0 -0.000002 anti-K0 K0 pi0 PHSP; -0.000001 anti-K0 K0 eta PHSP; -0.000001 anti-K0 K0 eta' PHSP; -# -# pi0 pi0 anti-K0 -0.000002 anti-K0 pi0 pi0 PHSP; -0.000001 anti-K0 pi0 eta PHSP; -0.000001 anti-K0 pi0 eta' PHSP; -0.000001 anti-K0 eta eta PHSP; -0.000001 anti-K0 eta eta' PHSP; -0.000001 anti-K0 eta' eta' PHSP; -# -# anti-K0 K0 anti-K0: 8*BF(KsKsKs)~=48 (8 is a guess) -0.000048 anti-K0 K0 anti-K0 PHSP; -# -# pi0 pi0 pi0 -0.000001 pi0 pi0 pi0 PHSP; -0.000001 pi0 pi0 eta PHSP; -0.000001 pi0 pi0 eta' PHSP; -0.000001 pi0 eta eta PHSP; -0.000001 pi0 eta eta' PHSP; -# -#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -# 2- and 3-body modes revised Feb.2005 Markus Cristinziani, SLAC -#--------------------------------------------------------------------------- -# -#4-body modes from Andrei Gritsan -#--- 4-body rho-rho, rho-pi-pi, pi-pi-pi-pi -------------------------- -# PR LHCb 21 Apr 2004 : set polarisation to longitudinal -0.000000730 rho0 rho0 SVV_HELAMP 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000024200 rho+ rho- SVV_HELAMP 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000003 rho0 pi+ pi- PHSP; -0.000003 omega pi+ pi- PHSP; -0.000001 rho0 pi0 pi0 PHSP; -0.000001 omega pi0 pi0 PHSP; -0.0000005 rho0 pi0 eta PHSP; -0.0000002 rho0 eta eta PHSP; -0.0000002 rho0 pi0 eta' PHSP; -0.0000001 rho0 eta eta' PHSP; -0.0000005 omega pi0 eta PHSP; -0.0000002 omega eta eta PHSP; -0.0000002 omega pi0 eta' PHSP; -0.0000001 omega eta eta' PHSP; -0.000010 rho+ pi- pi0 PHSP; -0.000005 rho+ pi- eta PHSP; -0.000010 rho- pi+ pi0 PHSP; -0.000005 rho- pi+ eta PHSP; -0.000010 pi+ pi- pi+ pi- PHSP; -0.000010 pi+ pi- pi0 pi0 PHSP; -0.000005 pi+ pi- eta pi0 PHSP; -0.000002 pi+ pi- eta eta PHSP; -0.000002 pi+ pi- eta' pi0 PHSP; -0.000001 pi+ pi- eta' eta PHSP; -0.000016500 a_1+ pi- SVS; #[Reconstructed PDG2011] -0.000016500 a_1- pi+ SVS; #[Reconstructed PDG2011] -0.0000055 b_1+ pi- SVS; -0.0000055 b_1- pi+ SVS; -0.000002 rho- a_0+ SVS; -0.000010 rho+ a_0- SVS; -0.000001 f_0 pi+ pi- PHSP; -0.000001 f_0 pi0 pi0 PHSP; -0.000001 a_0- pi+ pi0 PHSP; -0.000001 a_00 pi0 pi0 PHSP; -0.000001 a_0+ pi- pi0 PHSP; -#--- 4-body rho-K*, rho-pi-K, K*-pi-pi, pi-pi-pi-K ------------------- -0.000003400 rho0 anti-K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000010 rho+ K*- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000050600 pi- pi+ anti-K*0 PHSP; #[Reconstructed PDG2011] -0.000010 pi+ pi0 K*- PHSP; -0.000005 pi+ eta K*- PHSP; -0.000002 pi+ eta' K*- PHSP; -0.000010 rho+ K- pi0 PHSP; -0.000005 rho+ K- eta PHSP; -0.000002 rho+ K- eta' PHSP; -0.000010 rho+ anti-K0 pi- PHSP; -0.000010 rho- anti-K0 pi+ PHSP; -0.000005 rho0 anti-K0 pi0 PHSP; -0.000002 rho0 anti-K0 eta PHSP; -0.000001 rho0 anti-K0 eta' PHSP; -0.000010 rho0 K- pi+ PHSP; -0.000005 omega anti-K0 pi0 PHSP; -0.000002 omega anti-K0 eta PHSP; -0.000001 omega anti-K0 eta' PHSP; -0.000005100 omega K- pi+ PHSP; #[Reconstructed PDG2011] -0.000010 pi+ pi0 pi- anti-K0 PHSP; -0.000005 pi+ eta pi- anti-K0 PHSP; -0.000010 pi0 pi0 pi0 anti-K0 PHSP; -0.000005 pi0 pi0 eta anti-K0 PHSP; -0.000002 pi0 eta eta anti-K0 PHSP; -0.000002 pi0 pi0 eta' anti-K0 PHSP; -0.000001 pi0 eta eta' anti-K0 PHSP; -0.000010 pi+ pi- pi+ K- PHSP; -0.000010 pi0 pi0 pi+ K- PHSP; -0.000005 pi0 eta pi+ K- PHSP; -0.000002 eta eta pi+ K- PHSP; -0.000002 pi0 eta' pi+ K- PHSP; -0.000001 eta eta' pi+ K- PHSP; -0.000010 rho0 anti-K_0*0 PHSP; -0.000020 rho+ K_0*- PHSP; -0.000010 pi- pi+ anti-K_0*0 PHSP; -0.000010 pi0 pi0 anti-K_0*0 PHSP; -0.000010 pi+ pi0 K_0*- PHSP; -0.000005 anti-K*0 f_0 SVS; -0.000010 a_10 anti-K0 SVS; -0.000016000 a_1+ K- SVS; #[Reconstructed PDG2011] -0.000010 b_10 anti-K0 SVS; -0.0000074 b_1+ K- SVS; -0.000005 anti-K*0 a_00 SVS; -0.000005 K*- a_0+ SVS; -#--- 4-body K*-K*, rho-K-K, K*-K-pi, phi-pi-pi, pi-pi-K-K ------------ -0.000001280 K*0 anti-K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000001 K*+ K*- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.0000001 phi rho0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.0000001 phi pi- pi+ PHSP; -0.000001 K+ K- rho0 PHSP; -0.000001 K0 anti-K0 rho0 PHSP; -0.000001 K+ K- omega PHSP; -0.000001 K0 anti-K0 omega PHSP; -0.000001 K+ anti-K0 rho- PHSP; -0.000001 K- K0 rho+ PHSP; -0.000001 K+ K- pi- pi+ PHSP; -0.000001 K+ K- pi0 pi0 PHSP; -0.0000005 K+ K- pi0 eta PHSP; -0.0000002 K+ K- eta eta PHSP; -0.0000002 K+ K- pi0 eta' PHSP; -0.0000001 K+ K- eta eta' PHSP; -0.000001 K0 anti-K0 pi- pi+ PHSP; -0.000001 K0 anti-K0 pi0 pi0 PHSP; -0.0000005 K0 anti-K0 pi0 eta PHSP; -0.0000002 K0 anti-K0 eta eta PHSP; -0.0000002 K0 anti-K0 pi0 eta' PHSP; -0.0000001 K0 anti-K0 eta eta' PHSP; -0.000001 K*+ K- pi0 PHSP; -0.000001 K*- K+ pi0 PHSP; -0.000001 K*0 anti-K0 pi0 PHSP; -0.000001 K0 anti-K*0 pi0 PHSP; -0.000003320 K+ anti-K*0 pi- PHSP; #[Reconstructed PDG2011] -0.000001 K*+ anti-K0 pi- PHSP; -0.0000033 K- K*0 pi+ PHSP; -0.000001 K*- K0 pi+ PHSP; -#--- 4-body phi-K*, phi-K-pi, K-K-K*, pi-K-K-K ----------------------- -0.000009800 phi anti-K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000010 phi K- pi+ PHSP; -0.000010 phi anti-K0 pi0 PHSP; -0.000007 phi anti-K0 eta PHSP; -0.000017700 K- K+ anti-K*0 PHSP; #[Reconstructed PDG2011] -0.000010 K- K*+ anti-K0 PHSP; -0.000010 K*- K+ anti-K0 PHSP; -0.000010 K+ K- K- pi+ PHSP; -0.000010 K+ K- anti-K0 pi0 PHSP; -0.000005 K+ K- anti-K0 eta PHSP; -0.000010 K0 anti-K0 anti-K0 pi0 PHSP; -0.000005 K0 anti-K0 anti-K0 eta PHSP; -0.000003900 phi anti-K_0*0 PHSP; #[Reconstructed PDG2011] -0.000010 K- K+ anti-K_0*0 PHSP; -0.000010 K- K_0*+ anti-K0 PHSP; -0.000010 K_0*- K+ anti-K0 PHSP; -0.000002 phi anti-K'_10 PHSP; -0.000002 K- K+ anti-K'_10 PHSP; -#--- 4-body phi-phi, phi-K-K, K-K-K-K -------------------------------- -0.0000001 phi phi SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.0000001 phi K+ K- PHSP; -0.0000001 phi K0 anti-K0 PHSP; -0.0000001 K+ K- K+ K- PHSP; -0.0000001 K0 anti-K0 K+ K- PHSP; -0.0000001 K0 anti-K0 K0 anti-K0 PHSP; -#5-body modes from Jim Smith - 1/30/05 -#--- 5-body rho-rho-pi, rho-pi-pi-pi, pi-pi-pi-pi-pi ------------------- -0.000010 rho0 rho0 pi0 PHSP; -0.000005 rho0 rho0 eta PHSP; -0.000002 rho0 rho0 eta' PHSP; -0.000010 omega rho0 pi0 PHSP; -0.000005 omega rho0 eta PHSP; -0.000002 omega rho0 eta' PHSP; -0.000010 rho+ rho- pi0 PHSP; -0.000005 rho+ rho- eta PHSP; -0.000002 rho+ rho- eta' PHSP; -0.000010 rho0 rho+ pi- PHSP; -0.000010 omega rho+ pi- PHSP; -0.000002 rho0 pi+ pi- pi0 PHSP; -0.000001 rho0 pi+ pi- eta PHSP; -0.000001 rho0 pi+ pi- eta' PHSP; -0.000002 rho0 pi0 pi0 pi0 PHSP; -0.000001 rho0 pi0 eta pi0 PHSP; -0.000001 rho0 pi0 eta' pi0 PHSP; -0.000002 omega pi+ pi- pi0 PHSP; -0.000001 omega pi+ pi- eta PHSP; -0.000001 omega pi+ pi- eta' PHSP; -0.000002 omega pi0 pi0 pi0 PHSP; -0.000001 omega pi0 eta pi0 PHSP; -0.000001 omega pi0 eta' pi0 PHSP; -0.000002 rho+ pi- pi+ pi- PHSP; -0.000002 rho+ pi- pi0 pi0 PHSP; -0.000001 rho+ pi- pi0 eta PHSP; -0.000001 rho+ pi- pi0 eta' PHSP; -0.000002 rho- pi+ pi+ pi- PHSP; -0.000002 rho- pi+ pi0 pi0 PHSP; -0.000001 rho- pi+ pi0 eta PHSP; -0.000001 rho- pi+ pi0 eta' PHSP; -0.000001 pi+ pi- pi+ pi- pi0 PHSP; -0.0000005 pi+ pi- pi+ pi- eta PHSP; -0.0000002 pi+ pi- pi+ pi- eta' PHSP; -0.000001 pi+ pi- pi0 pi0 pi0 PHSP; -0.0000005 pi+ pi- pi0 pi0 eta PHSP; -0.0000002 pi+ pi- pi0 pi0 eta' PHSP; -0.0000005 pi0 pi0 pi0 pi0 pi0 PHSP; -0.0000002 pi0 pi0 pi0 pi0 eta PHSP; -0.0000001 pi0 pi0 pi0 pi0 eta' PHSP; -0.000010 a_1+ rho- PHSP; -0.000010 a_1- rho+ PHSP; -0.000010 a_10 rho0 PHSP; -0.000010 a_10 omega PHSP; -0.000010 a_1+ pi- pi0 PHSP; -0.000005 a_1+ pi- eta PHSP; -0.000002 a_1+ pi- eta' PHSP; -0.000010 a_10 pi+ pi- PHSP; -0.000010 a_10 pi0 pi0 PHSP; -0.000005 a_10 pi0 eta PHSP; -0.000002 a_10 pi0 eta' PHSP; -0.000010 a_1- pi+ pi0 PHSP; -0.000005 a_1- pi+ eta PHSP; -0.000002 a_1- pi+ eta' PHSP; -0.000010 rho+ f_0 pi- PHSP; -0.000010 rho- f_0 pi+ PHSP; -0.000010 rho0 f_0 pi0 PHSP; -0.000005 rho0 f_0 eta PHSP; -0.000002 rho0 f_0 eta' PHSP; -0.000010 omega f_0 pi0 PHSP; -0.000010 rho+ a_00 pi- PHSP; -0.000010 rho+ a_0- pi0 PHSP; -0.000005 rho+ a_0- eta PHSP; -0.000002 rho+ a_0- eta' PHSP; -0.000010 rho0 a_0+ pi- PHSP; -0.000010 rho0 a_0- pi+ PHSP; -0.000010 rho0 a_00 pi0 PHSP; -0.000005 rho0 a_00 eta PHSP; -0.000002 rho0 a_00 eta' PHSP; -0.000010 rho- a_00 pi+ PHSP; -0.000010 rho- a_0+ pi0 PHSP; -0.000005 rho- a_0+ eta PHSP; -0.000002 rho- a_0+ eta' PHSP; -0.000002 f_0 pi+ pi- pi0 PHSP; -0.000001 f_0 pi+ pi- eta PHSP; -0.000001 f_0 pi+ pi- eta' PHSP; -0.000002 f_0 pi0 pi0 pi0 PHSP; -0.000001 f_0 pi0 pi0 eta PHSP; -0.000001 f_0 pi0 pi0 eta' PHSP; -0.000001 a_00 pi+ pi- pi0 PHSP; -0.000001 a_00 pi0 pi0 pi0 PHSP; -0.000001 a_0+ pi- pi+ pi- PHSP; -0.000001 a_0+ pi- pi0 pi0 PHSP; -0.000001 a_0- pi+ pi+ pi- PHSP; -0.000001 a_0- pi+ pi0 pi0 PHSP; -#--- 5-body rho-K*pi, rho-2pi-K, K*-3pi, 4pi-K ------------------- -0.000010 rho0 K*- pi+ PHSP; -0.000010 rho+ K*- pi0 PHSP; -0.000005 rho+ K*- eta PHSP; -0.000002 rho+ K*- eta' PHSP; -0.000010 rho0 anti-K*0 pi0 PHSP; -0.000005 rho0 anti-K*0 eta PHSP; -0.000002 rho0 anti-K*0 eta' PHSP; -0.000010 rho- anti-K*0 pi+ PHSP; -0.000010 rho+ anti-K*0 pi- PHSP; -0.000010 omega K*- pi+ PHSP; -0.000010 omega anti-K*0 pi0 PHSP; -0.000005 omega anti-K*0 eta PHSP; -0.000002 omega anti-K*0 eta' PHSP; -0.000010 pi+ pi- K*- pi+ PHSP; -0.000010 pi+ pi0 K*- pi0 PHSP; -0.000005 pi+ pi0 K*- eta PHSP; -0.000002 pi+ pi0 K*- eta' PHSP; -0.000010 pi+ pi- anti-K*0 pi0 PHSP; -0.000005 pi+ pi- anti-K*0 eta PHSP; -0.000002 pi+ pi- anti-K*0 eta' PHSP; -0.000010 pi0 pi0 anti-K*0 pi0 PHSP; -0.000005 pi0 pi0 anti-K*0 eta PHSP; -0.000002 pi0 pi0 anti-K*0 eta' PHSP; -0.000010 rho- K- pi+ pi+ PHSP; -0.000010 rho0 K- pi+ pi0 PHSP; -0.000005 rho0 K- pi+ eta PHSP; -0.000002 rho0 K- pi+ eta' PHSP; -0.000010 rho+ K- pi+ pi- PHSP; -0.000010 rho+ K- pi0 pi0 PHSP; -0.000005 rho+ K- pi0 eta PHSP; -0.000002 rho+ K- pi0 eta' PHSP; - -0.000010 rho0 anti-K0 pi+ pi- PHSP; -0.000010 rho0 anti-K0 pi0 pi0 PHSP; -0.000005 rho0 anti-K0 pi0 eta PHSP; -0.000002 rho0 anti-K0 pi0 eta' PHSP; -0.000010 rho- anti-K0 pi+ pi0 PHSP; -0.000005 rho- anti-K0 pi+ eta PHSP; -0.000002 rho- anti-K0 pi+ eta' PHSP; -0.000010 rho+ anti-K0 pi- pi0 PHSP; -0.000005 rho+ anti-K0 pi- eta PHSP; -0.000002 rho+ anti-K0 pi- eta' PHSP; -0.000010 omega K- pi+ pi0 PHSP; -0.000005 omega K- pi+ eta PHSP; -0.000002 omega K- pi+ eta' PHSP; -0.000010 omega anti-K0 pi+ pi- PHSP; -0.000010 omega anti-K0 pi0 pi0 PHSP; -0.000005 omega anti-K0 pi0 eta PHSP; -0.000002 omega anti-K0 pi0 eta' PHSP; -0.000002 pi+ pi- pi+ K- pi0 PHSP; -0.000001 pi+ pi- pi+ K- eta PHSP; -0.000001 pi+ pi- pi+ K- eta' PHSP; -0.000002 pi0 pi0 pi+ K- pi0 PHSP; -0.000001 pi0 pi0 pi+ K- eta PHSP; -0.000001 pi0 pi0 pi+ K- eta' PHSP; -0.000002 pi+ pi- pi+ anti-K0 pi- PHSP; -0.000002 pi+ pi- pi0 anti-K0 pi0 PHSP; -0.000001 pi+ pi- pi0 anti-K0 eta PHSP; -0.000001 pi+ pi- pi0 anti-K0 eta' PHSP; -0.000002 pi0 pi0 pi0 anti-K0 pi0 PHSP; -0.000001 pi0 pi0 pi0 anti-K0 eta PHSP; -0.000001 pi0 pi0 pi0 anti-K0 eta' PHSP; -0.000010 rho+ anti-K_0*0 pi- PHSP; -0.000010 rho0 anti-K_0*0 pi0 PHSP; -0.000005 rho0 anti-K_0*0 eta PHSP; -0.000002 rho0 anti-K_0*0 eta' PHSP; -0.000010 rho- anti-K_0*0 pi+ PHSP; -0.000010 rho+ K_0*- pi0 PHSP; -0.000005 rho+ K_0*- eta PHSP; -0.000002 rho+ K_0*- eta' PHSP; -0.000010 rho0 K_0*- pi+ PHSP; -0.000010 pi+ pi- K_0*- pi+ PHSP; -0.000010 pi+ pi0 K_0*- pi0 PHSP; -0.000005 pi+ pi0 K_0*- eta PHSP; -0.000002 pi+ pi0 K_0*- eta' PHSP; -0.000010 pi+ pi- anti-K_0*0 pi0 PHSP; -0.000005 pi+ pi- anti-K_0*0 eta PHSP; -0.000002 pi+ pi- anti-K_0*0 eta' PHSP; -0.000010 pi0 pi0 anti-K_0*0 pi0 PHSP; -0.000005 pi0 pi0 anti-K_0*0 eta PHSP; -0.000005 pi0 pi0 anti-K_0*0 eta' PHSP; -0.000010 K*- f_0 pi+ PHSP; -0.000010 anti-K*0 f_0 pi0 PHSP; -0.000005 anti-K*0 f_0 eta PHSP; -0.000002 anti-K*0 f_0 eta' PHSP; -0.000010 a_1+ anti-K0 pi- PHSP; -0.000020 a_10 anti-K*0 PHSP; -0.000010 a_10 K- pi+ PHSP; -0.000010 a_10 anti-K0 pi0 PHSP; -0.000020 a_1+ K*- PHSP; -0.000010 a_1+ K- pi0 PHSP; -0.000010 a_1- anti-K0 pi+ PHSP; -0.000005 K*- a_00 pi+ PHSP; -0.000005 K*- a_0+ pi0 PHSP; -0.000002 K*- a_0+ eta PHSP; -0.000001 K*- a_0+ eta' PHSP; -0.000005 anti-K*0 a_0+ pi- PHSP; -0.000005 anti-K*0 a_00 pi0 PHSP; -0.000002 anti-K*0 a_00 eta PHSP; -0.000001 anti-K*0 a_00 eta' PHSP; -#--- 5-body K*-K*pi,rho-K-Kpi, K*-K-2pi, phi-3pi, 3pi-K-K ------------ -0.000001 K*- K*0 pi+ PHSP; -0.000001 K*+ anti-K*0 pi- PHSP; -0.000001 K*- K*+ pi0 PHSP; -0.0000005 K*- K*+ eta PHSP; -0.0000002 K*- K*+ eta' PHSP; -0.000001 K*0 anti-K*0 pi0 PHSP; -0.0000005 K*0 anti-K*0 eta PHSP; -0.0000002 K*0 anti-K*0 eta' PHSP; -0.000001 phi rho+ pi- PHSP; -0.000001 phi rho- pi+ PHSP; -0.000001 phi rho0 pi0 PHSP; -0.0000005 phi rho0 eta PHSP; -0.0000002 phi rho0 eta' PHSP; -0.000001 phi omega pi0 PHSP; -0.000001 phi f_0 pi0 PHSP; -0.000001 phi pi+ pi- pi0 PHSP; -0.0000005 phi pi+ pi- eta PHSP; -0.0000002 phi pi+ pi- eta' PHSP; -0.000001 phi pi0 pi0 pi0 PHSP; -0.0000005 phi pi0 pi0 eta PHSP; -0.0000002 phi pi0 pi0 eta' PHSP; -0.000001 K0 K- rho0 pi+ PHSP; -0.000001 K0 K- rho+ pi0 PHSP; -0.0000005 K0 K- rho+ eta PHSP; -0.0000002 K0 K- rho+ eta' PHSP; -0.000001 K0 K- omega pi+ PHSP; -0.000001 K0 K- f_0 pi+ PHSP; -0.000001 K+ K- rho+ pi- PHSP; -0.000001 K+ K- rho- pi+ PHSP; -0.000001 K+ K- rho0 pi0 PHSP; -0.0000005 K+ K- rho0 eta PHSP; -0.0000002 K+ K- rho0 eta' PHSP; -0.000001 K+ K- omega pi0 PHSP; -0.0000005 K+ K- omega eta PHSP; -0.0000002 K+ K- omega eta' PHSP; -0.000001 K+ K- f_0 pi0 PHSP; -0.000001 K0 anti-K0 rho+ pi- PHSP; -0.000001 K0 anti-K0 rho- pi+ PHSP; -0.000001 K0 anti-K0 rho0 pi0 PHSP; -0.0000005 K0 anti-K0 rho0 eta PHSP; -0.0000002 K0 anti-K0 rho0 eta' PHSP; -0.000001 K0 anti-K0 omega pi0 PHSP; -0.000001 K0 anti-K0 f_0 pi0 PHSP; -0.000001 anti-K0 K+ rho0 pi- PHSP; -0.000001 anti-K0 K+ rho- pi0 PHSP; -0.0000005 anti-K0 K+ rho- eta PHSP; -0.0000002 anti-K0 K+ rho- eta' PHSP; -0.000001 anti-K0 K+ omega pi- PHSP; -0.000001 anti-K0 K+ f_0 pi- PHSP; -0.0000002 K0 K- pi+ pi+ pi- PHSP; -0.0000002 K0 K- pi+ pi0 pi0 PHSP; -0.0000001 K0 K- pi+ pi0 eta PHSP; -0.0000001 K0 K- pi+ pi0 eta' PHSP; -0.0000002 K+ K- pi+ pi- pi0 PHSP; -0.0000001 K+ K- pi+ pi- eta PHSP; -0.0000001 K+ K- pi+ pi- eta' PHSP; -0.0000002 K+ K- pi0 pi0 pi0 PHSP; -0.0000001 K+ K- pi0 pi0 eta PHSP; -0.0000001 K+ K- pi0 pi0 eta' PHSP; -0.0000002 K0 anti-K0 pi+ pi- pi0 PHSP; -0.0000001 K0 anti-K0 pi+ pi- eta PHSP; -0.0000001 K0 anti-K0 pi+ pi- eta' PHSP; -0.0000002 K0 anti-K0 pi0 pi0 pi0 PHSP; -0.0000001 K0 anti-K0 pi0 pi0 eta PHSP; -0.0000001 K0 anti-K0 pi0 pi0 eta' PHSP; -0.0000002 anti-K0 K+ pi- pi+ pi- PHSP; -0.0000002 anti-K0 K+ pi- pi0 pi0 PHSP; -0.0000001 anti-K0 K+ pi- pi0 eta PHSP; -0.0000001 anti-K0 K+ pi- pi0 eta' PHSP; -0.000001 K*0 K- pi+ pi0 PHSP; -0.0000005 K*0 K- pi+ eta PHSP; -0.0000002 K*0 K- pi+ eta' PHSP; -0.000001 K*- K0 pi+ pi0 PHSP; -0.0000005 K*- K0 pi+ eta PHSP; -0.0000002 K*- K0 pi+ eta' PHSP; -0.000001 K*+ K- pi+ pi- PHSP; -0.000001 K*+ K- pi0 pi0 PHSP; -0.0000005 K*+ K- pi0 eta PHSP; -0.0000002 K*+ K- pi0 eta' PHSP; -0.000001 K*- K+ pi+ pi- PHSP; -0.000001 K*- K+ pi0 pi0 PHSP; -0.0000005 K*- K+ pi0 eta PHSP; -0.0000002 K*- K+ pi0 eta' PHSP; -0.000001 K*0 anti-K0 pi+ pi- PHSP; -0.000001 K*0 anti-K0 pi0 pi0 PHSP; -0.0000005 K*0 anti-K0 pi0 eta PHSP; -0.0000002 K*0 anti-K0 pi0 eta' PHSP; -0.000001 K0 anti-K*0 pi+ pi- PHSP; -0.000001 K0 anti-K*0 pi0 pi0 PHSP; -0.0000005 K0 anti-K*0 pi0 eta PHSP; -0.0000002 K0 anti-K*0 pi0 eta' PHSP; -0.000001 K+ anti-K*0 pi- pi0 PHSP; -0.0000005 K+ anti-K*0 pi- eta PHSP; -0.0000002 K+ anti-K*0 pi- eta' PHSP; -0.000001 K*+ anti-K0 pi- pi0 PHSP; -0.0000005 K*+ anti-K0 pi- eta PHSP; -0.0000002 K*+ anti-K0 pi- eta' PHSP; -#--- 5-body phi-K*-pi, phi-K-2pi, K-K-K*-pi, 2pi-K-K-K -------------------- -0.000010 phi K*- pi+ PHSP; -0.000010 phi anti-K*0 pi0 PHSP; -0.000005 phi anti-K*0 eta PHSP; -0.000002 phi anti-K*0 eta' PHSP; -0.000010 phi K- rho+ PHSP; -0.000010 phi anti-K0 rho0 PHSP; -0.000010 phi anti-K0 omega PHSP; -0.000010 phi anti-K0 f_0 PHSP; -0.000010 phi anti-K0 pi+ pi- PHSP; -0.000010 phi anti-K0 pi0 pi0 PHSP; -0.000005 phi anti-K0 pi0 eta PHSP; -0.000002 phi anti-K0 pi0 eta' PHSP; -0.000010 phi K- pi+ pi0 PHSP; -0.000005 phi K- pi+ eta PHSP; -0.000002 phi K- pi+ eta' PHSP; -0.000010 K+ K- K*- pi+ PHSP; -0.000010 K- K*+ K- pi+ PHSP; -0.000010 K- K*0 anti-K0 pi+ PHSP; -0.000010 K- K0 anti-K*0 pi+ PHSP; -0.000010 K0 K*- anti-K0 pi+ PHSP; -0.000010 K- K+ K- rho+ PHSP; -0.000010 K- K+ anti-K0 rho0 PHSP; -0.000010 K- K+ anti-K0 omega PHSP; -0.000010 K- K+ anti-K0 f_0 PHSP; -0.000010 K+ K- K- pi+ pi0 PHSP; -0.000005 K+ K- K- pi+ eta PHSP; -0.000002 K+ K- K- pi+ eta' PHSP; -0.000010 K+ K- anti-K0 pi+ pi- PHSP; -0.000010 K+ K- anti-K0 pi0 pi0 PHSP; -0.000005 K+ K- anti-K0 pi0 eta PHSP; -0.000005 K+ K- anti-K0 pi0 eta' PHSP; -0.000010 K0 anti-K0 K- pi+ pi0 PHSP; -0.000005 K0 anti-K0 K- pi+ eta PHSP; -0.000002 K0 anti-K0 K- pi+ eta' PHSP; -0.000010 K0 anti-K0 anti-K0 pi+ pi- PHSP; -0.000010 K0 anti-K0 anti-K0 pi0 pi0 PHSP; -0.000005 K0 anti-K0 anti-K0 pi0 eta PHSP; -0.000002 K0 anti-K0 anti-K0 pi0 eta' PHSP; -0.000010 phi K_0*- pi+ PHSP; -0.000010 phi anti-K_0*0 pi0 PHSP; -0.000010 K+ K- K_0*- pi+ PHSP; -0.000010 K+ K- anti-K_0*0 pi0 PHSP; -0.000005 K+ K- anti-K_0*0 eta PHSP; -0.000002 K+ K- anti-K_0*0 eta' PHSP; -0.000010 K- K- K_0*+ pi+ PHSP; -0.000010 K- anti-K_0*0 K0 pi+ PHSP; -0.000010 K- K_0*0 anti-K0 pi+ PHSP; -0.000010 K0 anti-K0 K_0*- pi+ PHSP; -0.000010 K0 anti-K0 anti-K_0*0 pi0 PHSP; -0.000005 K0 anti-K0 anti-K_0*0 eta PHSP; -0.000002 K0 anti-K0 anti-K_0*0 eta' PHSP; -0.000010 anti-K0 anti-K0 K_0*0 pi0 PHSP; -0.000005 anti-K0 anti-K0 K_0*0 eta PHSP; -0.000002 anti-K0 anti-K0 K_0*0 eta' PHSP; -0.000002 phi K'_1- pi+ PHSP; -0.000002 phi anti-K'_10 pi0 PHSP; -0.000001 phi anti-K'_10 eta PHSP; -0.000001 phi anti-K'_10 eta' PHSP; -0.000002 K- K+ K'_1- pi+ PHSP; -0.000002 K- K+ anti-K'_10 pi0 PHSP; -0.000001 K- K+ anti-K'_10 eta PHSP; -0.000001 K- K+ anti-K'_10 eta' PHSP; -0.000002 K- K- K'_1+ pi+ PHSP; -0.000002 K0 anti-K0 anti-K'_10 pi0 PHSP; -0.000001 K0 anti-K0 anti-K'_10 eta PHSP; -0.000001 K0 anti-K0 anti-K'_10 eta' PHSP; -0.000002 anti-K0 anti-K0 K'_10 pi0 PHSP; -0.000001 anti-K0 anti-K0 K'_10 eta PHSP; -0.000001 anti-K0 anti-K0 K'_10 eta' PHSP; -#--- 5-body phi-phi-K, phi-phi-pi, phi-3K, phi-K-K-pi, 5K, 4K-pi ------------ -0.000004100 phi phi anti-K0 PHSP; #[Reconstructed PDG2011] -0.0000001 phi phi pi0 PHSP; -0.000001 phi K+ K- anti-K0 PHSP; -0.000001 phi K0 anti-K0 anti-K0 PHSP; -0.0000001 phi K+ K- pi0 PHSP; -0.0000001 phi K0 anti-K0 pi0 PHSP; -0.0000001 phi anti-K0 K+ pi- PHSP; -0.0000001 phi K0 K- pi+ PHSP; -0.0000001 K+ K- K+ K- anti-K0 PHSP; -0.0000001 K0 anti-K0 K+ K- anti-K0 PHSP; -0.0000001 K+ K- K+ K- pi0 PHSP; -0.0000001 K+ K- K0 anti-K0 pi0 PHSP; -0.0000001 K+ K- K+ anti-K0 pi- PHSP; -0.0000001 K+ K- K0 K- pi+ PHSP; -0.0000001 K0 anti-K0 K0 anti-K0 pi0 PHSP; -0.0000001 K0 anti-K0 anti-K0 K+ pi- PHSP; -0.0000001 K0 anti-K0 K0 K- pi+ PHSP; -#--- 6-body phi-phi-K*, phi-3Kpi, phi-K-K-2pi ------------ -0.000003 phi phi anti-K*0 PHSP; -0.000001 phi K+ K- anti-K*0 PHSP; -0.000001 phi K0 anti-K0 anti-K*0 PHSP; -0.000001 phi anti-K0 K- K*+ PHSP; -0.000001 phi anti-K0 anti-K0 K*0 PHSP; -0.0000001 phi K+ K- K- pi+ PHSP; -0.0000001 phi K+ K- anti-K0 pi0 PHSP; -0.0000001 phi K0 anti-K0 K- pi+ PHSP; -0.0000001 phi K0 anti-K0 anti-K0 pi0 PHSP; -#--- 6-body a1a1 ------------ -0.000050 a_10 a_10 PHSP; -0.000050 a_1+ a_1- PHSP; -# -# PR LHCb: 7 Nov 2005 Add anti-K*0 pi0 pi0 -0.0000067 anti-K*0 pi0 pi0 PHSP; -# -# B -> cc= s -# -# Charmonium states - updated from Lange's recommendations (august 23,2000) -# Based on new BABAR results I'm making the following changes (Lange, March 13, 2001 -# J/psi K0 was 10, now 9 x 10^-4 -# J/psi pi0 was 2.5, now 2.0 x 10^-4 -# J/psi Kstar was 15, now 13 -# Fix chic1 KS CP eigenstate -# adding J/psi rho and omega - for lack of better thing will use the Kstar helicity amplitudes. -# Psi2sKs 30 ->31 -# chic1 Kstar: 12 ->6 -0.000435500 J/psi K_S0 SVS; #[Reconstructed PDG2011] -0.000435500 J/psi K_L0 SVS; #[Reconstructed PDG2011] -# -# -0.001330000 J/psi anti-K*0 SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] -0.000017600 J/psi pi0 SVS; #[Reconstructed PDG2011] -0.000027000 J/psi rho0 SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] -0.000030 J/psi omega SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; -0.000000000 J/psi K- pi+ PHSP; #[Reconstructed PDG2011] -0.0001 J/psi anti-K0 pi0 PHSP; -#rl0.0007 J/psi anti-K0 pi+ pi- PHSP; -#rl0.00035 J/psi anti-K0 pi0 pi0 PHSP; -#rl0.00035 J/psi K- pi+ pi0 PHSP; -0.001300000 J/psi anti-K_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; #[Reconstructed PDG2011] -0.0001 J/psi anti-K'_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; -0.0005 J/psi anti-K_2*0 PHSP; -0.000094000 J/psi phi anti-K0 PHSP; #[Reconstructed PDG2011] -# -0.000310000 psi(2S) K_S0 SVS; #[Reconstructed PDG2011] -0.000310000 psi(2S) K_L0 SVS; #[Reconstructed PDG2011] -# -# -0.000610000 psi(2S) anti-K*0 SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] - -0.0004 psi(2S) K- pi+ PHSP; -0.0002 psi(2S) anti-K0 pi0 PHSP; -0.0002 psi(2S) anti-K0 pi+ pi- PHSP; -0.0001 psi(2S) anti-K0 pi0 pi0 PHSP; -0.0001 psi(2S) K- pi+ pi0 PHSP; -0.0004 psi(2S) anti-K_10 PHSP; - -# -0.000445000 eta_c K_S0 PHSP; #[Reconstructed PDG2011] -0.000445000 eta_c K_L0 PHSP; #[Reconstructed PDG2011] -# -# -0.000610000 anti-K*0 eta_c SVS; #[Reconstructed PDG2011] -0.0002 eta_c K- pi+ PHSP; -0.0001 eta_c anti-K0 pi0 PHSP; -0.0002 eta_c anti-K0 pi+ pi- PHSP; -0.0001 eta_c anti-K0 pi0 pi0 PHSP; -0.0001 eta_c K- pi+ pi0 PHSP; -# -0.00024 eta_c(2S) K_S0 PHSP; -0.00024 eta_c(2S) K_L0 PHSP; -# -# -0.00066 anti-K*0 eta_c(2S) SVS; -0.00008 eta_c(2S) K- pi+ PHSP; -0.00005 eta_c(2S) anti-K0 pi0 PHSP; -0.00008 eta_c(2S) anti-K0 pi+ pi- PHSP; -0.00005 eta_c(2S) anti-K0 pi0 pi0 PHSP; -0.00005 eta_c(2S) K- pi+ pi0 PHSP; -# -0.000070000 chi_c0 K_S0 PHSP; #[Reconstructed PDG2011] -0.000070000 chi_c0 K_L0 PHSP; #[Reconstructed PDG2011] -# -# -0.00030 anti-K*0 chi_c0 SVS; -0.0002 chi_c0 K- pi+ PHSP; -0.0001 chi_c0 anti-K0 pi0 PHSP; -0.0002 chi_c0 anti-K0 pi+ pi- PHSP; -0.0001 chi_c0 anti-K0 pi0 pi0 PHSP; -0.0001 chi_c0 K- pi+ pi0 PHSP; -# -0.000195000 chi_c1 K_S0 SVS; #[Reconstructed PDG2011] -0.000195000 chi_c1 K_L0 SVS; #[Reconstructed PDG2011] -# -# -0.000222000 chi_c1 anti-K*0 SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] -0.0004 chi_c1 K- pi+ PHSP; -0.0002 chi_c1 anti-K0 pi0 PHSP; -0.0004 chi_c1 anti-K0 pi+ pi- PHSP; -0.0002 chi_c1 anti-K0 pi0 pi0 PHSP; -0.0002 chi_c1 K- pi+ pi0 PHSP; -# -0.00005 chi_c2 K_S0 STS; -0.00005 chi_c2 K_L0 STS; -# -# -0.00003 chi_c2 anti-K*0 PHSP; -0.0002 chi_c2 K- pi+ PHSP; -0.0001 chi_c2 anti-K0 pi0 PHSP; -0.0002 chi_c2 anti-K0 pi+ pi- PHSP; -0.0001 chi_c2 anti-K0 pi0 pi0 PHSP; -0.0001 chi_c2 K- pi+ pi0 PHSP; -# -0.00024 psi(3770) K_S0 SVS; -0.00024 psi(3770) K_L0 SVS; -# -# -0.00048 psi(3770) anti-K*0 SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; -0.00014 psi(3770) K- pi+ PHSP; -0.00014 psi(3770) anti-K0 pi0 PHSP; -0.00014 psi(3770) anti-K0 pi+ pi- PHSP; -0.00007 psi(3770) anti-K0 pi0 pi0 PHSP; -0.00007 psi(3770) K- pi+ pi0 PHSP; -0.00029 psi(3770) anti-K_10 PHSP; -# -# b-> c (dc=) -# -0.000211000 D- D+ PHSP; #[Reconstructed PDG2011] -# See Ref [B1] for the next 3: -0.000305 D*+ D- SVS; -0.000610000 D*- D+ SVS; #[Reconstructed PDG2011] -0.000820000 D*+ D*- SVV_HELAMP 0.47 0.0 0.96 0.0 0.56 0.0; #[Reconstructed PDG2011] - -# -# b -> c (sc=) --> D Ds X Sum = 10% -# -0.007200000 D+ D_s- PHSP; #[Reconstructed PDG2011] -0.008000000 D*+ D_s- SVS; #[Reconstructed PDG2011] -0.007400000 D_s*- D+ SVS; #[Reconstructed PDG2011] -0.017700000 D*+ D_s*- SVV_HELAMP 0.4904 0.0 0.7204 0.0 0.4904 0.0; #[Reconstructed PDG2011] -0.0006 D'_1+ D_s- SVS; -0.0012 D'_1+ D_s*- SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; -0.0012 D_1+ D_s- SVS; -0.0024 D_1+ D_s*- SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; -0.0042 D_2*+ D_s- STS; -0.0040 D_2*+ D_s*- PHSP; -# -0.0018 D_s- D+ pi0 PHSP; -0.0037 D_s- D0 pi+ PHSP; -0.0018 D_s*- D+ pi0 PHSP; -0.0037 D_s*- D0 pi+ PHSP; -0.0030 D_s- D+ pi+ pi- PHSP; -0.0022 D_s- D+ pi0 pi0 PHSP; -0.0022 D_s- D0 pi+ pi0 PHSP; -0.0030 D_s*- D+ pi+ pi- PHSP; -0.0022 D_s*- D+ pi0 pi0 PHSP; -0.0022 D_s*- D0 pi+ pi0 PHSP; -# -# b -> c (sc=) --> D D= K X Sum = 8% -# Update: Ref. [B1] -# -# External W-emission amplitude -0.001700000 D+ anti-D0 K- PHSP; #[Reconstructed PDG2011] -0.004600000 D+ anti-D*0 K- PHSP; #[Reconstructed PDG2011] -0.003100000 D*+ anti-D0 K- PHSP; #[Reconstructed PDG2011] -0.011800000 D*+ anti-D*0 K- PHSP; #[Reconstructed PDG2011] -# External+internal W-emission amplitude -0.0015 D+ D- anti-K0 PHSP; -0.0018 D*+ D- anti-K0 PHSP; -0.0047 D+ D*- anti-K0 PHSP; -0.007800000 D*+ D*- anti-K0 PHSP; #[Reconstructed PDG2011] -# Internal W-emission amplitude (color suppressed modes) -0.0005 D0 anti-D0 anti-K0 PHSP; -0.000120000 D*0 anti-D0 anti-K0 PHSP; #[Reconstructed PDG2011] -0.0015 D0 anti-D*0 anti-K0 PHSP; -0.0015 D*0 anti-D*0 anti-K0 PHSP; - -0.0025 D+ anti-D0 K*- PHSP; -0.0025 D*+ anti-D0 K*- PHSP; -0.0025 D+ anti-D*0 K*- PHSP; -0.0050 D*+ anti-D*0 K*- PHSP; -# -0.0025 D+ D- anti-K*0 PHSP; -0.0025 D*+ D- anti-K*0 PHSP; -0.0025 D+ D*- anti-K*0 PHSP; -0.0050 D*+ D*- anti-K*0 PHSP; -# -0.0005 anti-D0 D0 anti-K*0 PHSP; -0.0005 anti-D0 D*0 anti-K*0 PHSP; -0.0005 anti-D*0 D0 anti-K*0 PHSP; -0.0010 anti-D*0 D*0 anti-K*0 PHSP; -# -# -# B -> D(*) X Exclusive modes -# -0.002760000 D*+ pi- SVS; #[Reconstructed PDG2011] -0.002680000 D+ pi- PHSP; #[Reconstructed PDG2011] -0.007110000 rho- D+ SVS; #[Reconstructed PDG2011] -# -# D* rho HELAMP parameters taken from ICHEP 98-852. -0.006800000 rho- D*+ SVV_HELAMP 0.152 1.47 0.936 0 0.317 0.19; #[Reconstructed PDG2011] -0.0005 D+ pi- pi0 PHSP; -0.008200000 D*+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000840000 D0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000620000 D*0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.0005 D*0 pi0 pi0 PHSP; -# -# D a1 updated Ref. [B1] -0.006000000 a_1- D+ SVS; #[Reconstructed PDG2011] -0.000000000 D+ rho0 pi- PHSP; #[Reconstructed PDG2011] -0.0011 D+ rho- pi0 PHSP; -0.002000000 D+ pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -0.0010 D+ pi0 pi- pi0 PHSP; -0.0010 D0 pi+ pi- pi0 PHSP; -0.0001 D0 pi0 pi0 pi0 PHSP; -# -# SVV_HELAMP for D* a1 taken from factorization. Recommandation -# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/168.html: -# updated Ref. [B1] -# October 26, 2004 Lange update -# Dec 7 2015, MK update with PDG2015, details see corresponding B0 -0.011000000 D*+ a_1- SVV_HELAMP 0.200 0.0 0.866 0.0 0.458 0.0; #[Reconstructed PDG2011] -# -0.001600000 D*+ rho0 pi- PHSP; #[Reconstructed PDG2011] -0.0010 D*+ rho- pi0 PHSP; -0.0005 D*+ pi+ pi- pi- PHSP; -0.0010 D*+ pi0 pi- pi0 PHSP; -0.0010 D*0 pi+ pi- pi0 PHSP; -0.0001 D*0 pi0 pi0 pi0 PHSP; -# -# B->D** pi and D** rho, recommendation -# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/151.html -#further updates October 26, 2004 - Lange -# October 26, 2004 Lange update -# -0.0001 D_1+ pi- SVS; -0.0001 D'_1+ pi- SVS; -0.00006 D_0*+ pi- PHSP; -0.000215 D_2*+ pi- STS; -0.0004 D_1+ rho- PHSP; -0.0013 D'_1+ rho- PHSP; -0.0022 D_2*+ rho- PHSP; -# -# -# B->DK, recommendation -# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/151.html: -# update: Ref. [B1]: -# -0.000214000 D*+ K- SVS; #[Reconstructed PDG2011] -0.000200000 D+ K- PHSP; #[Reconstructed PDG2011] -0.000330000 D*+ K*- SVV_HELAMP 0.228 0.0 0.932 0.0 0.283 0.0; #[Reconstructed PDG2011] -0.000450000 K*- D+ SVS; #[Reconstructed PDG2011] -#more DK modes - October 26, 2004 -Lange -0.000036 D*0 K0 SVS; -0.000052 D0 K0 PHSP; -0.000042000 anti-K*0 D0 SVS; #[Reconstructed PDG2011] -0.00001 anti-K*0 anti-D0 SVS; -0.00004 D*0 anti-K*0 SVV_HELAMP 1. 0. 1. 0. 1. 0.; -0.00001 anti-D*0 anti-K*0 SVV_HELAMP 1. 0. 1. 0. 1. 0.; -# -# -# Color-suppressed modes. Br's are expectations from -# Phys. Rev. D57 (1998), 5363-5369, except for the eta' modes, which are set -# equal to the eta modes. SVV_HELAMP parameters are the same as in D*0 rho-, -# with phases set to 0. Recommendation http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/169.html: -# update: See Ref [B1]: -# further update October 26, 2004 Lange -# -0.000261000 D0 pi0 PHSP; #[Reconstructed PDG2011] -0.000170000 D*0 pi0 SVS; #[Reconstructed PDG2011] -# -0.000320000 rho0 D0 SVS; #[Reconstructed PDG2011] -0.00029 D*0 rho0 SVV_HELAMP 0.228 0.0 0.932 0.0 0.283 0.0; -# -0.000202000 D0 eta PHSP; #[Reconstructed PDG2011] -0.000200000 D*0 eta SVS; #[Reconstructed PDG2011] -# -0.000125 D0 eta' PHSP; -0.000123000 D*0 eta' SVS; #[Reconstructed PDG2011] -# -0.000259000 omega D0 SVS; #[Reconstructed PDG2011] -0.000330000 D*0 omega SVV_HELAMP 0.228 0.0 0.932 0.0 0.283 0.0; #[Reconstructed PDG2011] -# -# -#October 26, 2004 - Lange -0.0016 D_s0*- D+ PHSP; -0.0015 D*+ D_s0*- SVS; -0.003500000 D_s1- D+ SVS; #[Reconstructed PDG2011] -0.009300000 D*+ D_s1- SVV_HELAMP 0.4904 0. 0.7204 0. 0.4904 0.; #[Reconstructed PDG2011] -# -# Feb 2009 -# -0.00088 D+ K- anti-K*0 PHSP; -0.00129 D*+ K- anti-K*0 PHSP; -# -# Feb 2009 -# -0.002800000 D+ omega pi- PHSP; #[Reconstructed PDG2011] -0.002890000 D*+ omega pi- PHSP; #[Reconstructed PDG2011] -# -# Feb 2009 -# -0.00049 D+ K0 pi- PHSP; -0.0003 D*+ K0 pi- PHSP; -# -# Feb 2009 -# -0.00043 D'_s1- D+ PHSP; -0.00083 D'_s1- D*+ PHSP; -##### Already included above 0.0023 D_s1- D*+ PHSP; -# -# -# Lam_c X / Sigma_c X 6.0 % -# -#0.01000 cd_0 anti-ud_0 PYTHIA 63; -#0.03000 cd_1 anti-ud_1 PYTHIA 63; -0.010463563 cd_0 anti-ud_0 PYTHIA 63; -0.020927220 cd_1 anti-ud_1 PYTHIA 63; -# -# Xi_c X 2.5% -# -#0.00600 cs_0 anti-ud_0 PYTHIA 63; -#0.01800 cs_1 anti-ud_1 PYTHIA 63; -0.002853725 cs_0 anti-ud_0 PYTHIA 63; -0.005707449 cs_1 anti-ud_1 PYTHIA 63; -# -# PR LHCb Add p pbar mode -0.0000001 p+ anti-p- PHSP; -# -0.250525685 anti-u d c anti-d PYTHIA 23; -0.042705898 anti-u d c anti-d PYTHIA 65; -0.019975978 anti-u s c anti-d PYTHIA 63; -0.017122253 anti-u c d anti-d PYTHIA 23; -0.000856098 anti-u c s anti-d PYTHIA 23; -#lange - try to crank up the psi production.... -0.070391402 anti-c s c anti-d PYTHIA 43; -0.005707449 anti-c d c anti-d PYTHIA 43; -0.002853725 anti-u d u anti-d PYTHIA 23; -0.003804966 anti-c s u anti-d PYTHIA 23; -# JGS 11/5/02 This and similar a few lines above have been divided by two -# to solve a double-counting problem for this channel -0.001950007 anti-u u d anti-d PYTHIA 23; -0.000066610 anti-d d d anti-d PYTHIA 23; -0.000085600 anti-s s d anti-d PYTHIA 23; -0.002092675 anti-u u s anti-d PYTHIA 23; -0.001712197 anti-d d s anti-d PYTHIA 23; -0.001426862 anti-s s s anti-d PYTHIA 23; -0.004756208 s anti-d PYTHIA 91; -0.000490000 D+ anti-K0 pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000880000 D+ K- K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000000 D*+ anti-K0 pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001290000 D*+ K- K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.017600000 D*+ pi- pi- pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.004700000 D*+ pi- pi- pi- pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000110000 D_s+ pi- anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000052000 D0 anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000046000 D0 K- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000006000 anti-D0 K- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000036000 D*0 anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.002700000 anti-D*0 pi- pi- pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000890000 eta_c anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000871000 J/psi anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000310000 J/psi omega anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000009500 J/psi eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000019000 J/psi pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000460000 J/psi anti-K0 pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000540000 J/psi anti-K0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000800000 J/psi K*- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000660000 J/psi anti-K*0 pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000170000 anti-K0 anti-D0 D0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000620000 psi(2S) anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000140000 chi_c0 anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000011200 chi_c1 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000390000 chi_c1 anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000158000 chi_c1 K+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000011000 eta anti-K_0*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000009600 eta anti-K_2*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000016000 omega anti-K_0*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000010100 omega anti-K_2*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000004700 anti-K0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000002700 f_2 anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000001400 f_0 K- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000007500 anti-K_2*0 phi PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000007600 eta anti-K0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000004600 K- pi+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000019500 anti-K0 pi- pi+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000041000 K- pi+ pi0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000012400 anti-K_2*0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000860 rho0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000002660 anti-p- p+ anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000001240 anti-p- p+ anti-K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000003140 anti-p- Lambda0 pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000004800 Lambda0 anti-Lambda0 anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000002500 Lambda0 anti-Lambda0 anti-K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000011000 Lambda0 anti-Lambda0 anti-D0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000114000 D0 anti-p- p+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000028000 D_s+ Lambda0 anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000103000 D*0 anti-p- p+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001500000 D*+ anti-p- n0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000338000 D+ anti-p- p+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000500000 D*+ anti-p- p+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000020000 Lambda_c+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000630000 Lambda_c+ anti-p- pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000120000 Sigma_c*++ anti-p- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000150000 Sigma_c0 anti-p- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000220000 Sigma_c++ anti-p- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -# -Decay B0 -# Updated to PDG 2008 -# b -> c semileptonic -# -0.0493 D*- e+ nu_e PHOTOS HQET2 1.207 0.920 1.406 0.853; # 1.0 * PDG2014 -0.0219 D- e+ nu_e PHOTOS HQET2 1.185 1.081; # 1.0 * PDG2014 -0.0042 D_1- e+ nu_e PHOTOS ISGW2; # PDG2014+D_J below -0.0045 D_0*- e+ nu_e PHOTOS ISGW2; # PDG2014+D_J below -0.0046 D'_1- e+ nu_e PHOTOS ISGW2; # PDG2014+D_J below -0.0033 D_2*- e+ nu_e PHOTOS ISGW2; # PDG2014+D_J below -0.00045 D*- pi0 e+ nu_e PHOTOS GOITY_ROBERTS; # Increase by 1.5 compared to 2011 -0.00490 anti-D*0 pi- e+ nu_e PHOTOS GOITY_ROBERTS; # Same as 2011 -0.0015 D- pi0 e+ nu_e PHOTOS GOITY_ROBERTS; # 1.5 * of 2011 table -0.0043 anti-D0 pi- e+ nu_e PHOTOS GOITY_ROBERTS; # In principle should be in D**, but go to PDG2014 to fill inclusive -# -# Do same as for electrons -0.0493 D*- mu+ nu_mu PHOTOS HQET2 1.207 0.920 1.406 0.853; -0.0219 D- mu+ nu_mu PHOTOS HQET2 1.185 1.081; -0.0042 D_1- mu+ nu_mu PHOTOS ISGW2; -0.0045 D_0*- mu+ nu_mu PHOTOS ISGW2; -0.0046 D'_1- mu+ nu_mu PHOTOS ISGW2; -0.0033 D_2*- mu+ nu_mu PHOTOS ISGW2; -0.00045 D*- pi0 mu+ nu_mu PHOTOS GOITY_ROBERTS; -0.00490 anti-D*0 pi- mu+ nu_mu PHOTOS GOITY_ROBERTS; -0.0015 D- pi0 mu+ nu_mu PHOTOS GOITY_ROBERTS; -0.0043 anti-D0 pi- mu+ nu_mu PHOTOS GOITY_ROBERTS; -# -# b -> c tau nu -# -0.015000000 D*- tau+ nu_tau ISGW2; #[Reconstructed PDG2011] -0.011000000 D- tau+ nu_tau ISGW2; #[Reconstructed PDG2011] -0.0013 D_1- tau+ nu_tau ISGW2; -0.0013 D_0*- tau+ nu_tau ISGW2; -0.0020 D'_1- tau+ nu_tau ISGW2; -0.0020 D_2*- tau+ nu_tau ISGW2; -# -# b -> u l nu -# -0.000145 pi- e+ nu_e PHOTOS ISGW2; # PDG2014 -0.000294 rho- e+ nu_e PHOTOS ISGW2; # PDG2014 -0.000000 D(2S)- e+ nu_e PHOTOS ISGW2; -0.000000 D*(2S)- e+ nu_e PHOTOS ISGW2; -0.001892 Xu- e+ nu_e VUB 4.8 1.29 0.22 20 0.30 0.55 1.20 0.61 1.26 0.85 1.34 1.08 1.41 1.21 1.48 1.30 1.55 1.30 1.61 1.33 1.67 1.36 1.73 1.39 1.79 1.33 1.84 1.42 1.90 1.39 1.95 1.39 2.00 1.37 2.50 1.30 3.00 0.74 3.50 0.99 4.00 1.09 4.50 1.00; -# -0.000145 pi- mu+ nu_mu PHOTOS ISGW2; # PDG2014 (electrons) -0.000294 rho- mu+ nu_mu PHOTOS ISGW2; # PDG2014 (electrons) -0.000000 D(2S)- mu+ nu_mu PHOTOS ISGW2; -0.000000 D*(2S)- mu+ nu_mu PHOTOS ISGW2; -0.001892 Xu- mu+ nu_mu VUB 4.8 1.29 0.22 20 0.30 0.55 1.20 0.61 1.26 0.85 1.34 1.08 1.41 1.21 1.48 1.30 1.55 1.30 1.61 1.33 1.67 1.36 1.73 1.39 1.79 1.33 1.84 1.42 1.90 1.39 1.95 1.39 2.00 1.37 2.50 1.30 3.00 0.74 3.50 0.99 4.00 1.09 4.50 1.00; -# -0.000060 pi- tau+ nu_tau ISGW2; -0.000083 rho- tau+ nu_tau ISGW2; -0.000090 a_1- tau+ nu_tau ISGW2; -0.000008 b_1- tau+ nu_tau ISGW2; -0.000008 a_0- tau+ nu_tau ISGW2; -0.000008 a_2- tau+ nu_tau ISGW2; -0.000000 rho(2S)- tau+ nu_tau ISGW2; -0.000000 D(2S)- tau+ nu_tau ISGW2; -0.000000 D*(2S)- tau+ nu_tau ISGW2; -# - -# -# b->u hadronic -# Ref. [B1]: -# Lange Nov 14, 2004 (flip D_s K --opposite of D_s pi) -0.000024000 D_s+ pi- PHSP; #[Reconstructed PDG2011] -0.000030000 D_s- K+ PHSP; #[Reconstructed PDG2011] -0.000021000 D_s*+ pi- SVS; #[Reconstructed PDG2011] -0.000021900 D_s*- K+ SVS; #[Reconstructed PDG2011] -# -0.000016 rho- D_s+ SVS; -0.000035000 K*+ D_s- SVS; #[Reconstructed PDG2011] -0.000041000 D_s*+ rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000032000 D_s*- K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] - - -# -# b -> s gamma -# -0.000043300 K*0 gamma HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -# PR LHCb add omega gamma -0.000000440 omega gamma HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -#0.0000135 K_10 gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000065 K'_10 gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000128 K'*0 gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000166 K_2*0 gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000017 K''*0 gamma HELAMP 1.0 0.0 1.0 0.0; -0.0003118 Xsd gamma BTOXSGAMMA 2 ; -# -0.000000160 K0 e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.000001030 K*0 e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.0000050 Xsd e+ e- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; -0.000000450 K0 mu+ mu- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.000001050 K*0 mu+ mu- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.0000025 Xsd mu+ mu- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; -0.0000001 K0 tau+ tau- PHOTOS BTOSLLBALL; -0.0000002 K*0 tau+ tau- PHOTOS BTOSLLBALL; -0.0000002 Xsd tau+ tau- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; -# -#------------------------------------------------------------------------------ -# 2- and 3-body modes revised Feb.2005 Markus Cristinziani, SLAC -#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv -# -# B0 -> CP eigenstates (some exclusive b -> u) sum=0.00036 -# -# PR LHCb 04/07/04 update BR -0.000005130 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000001620 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.0000010 pi0 eta PHSP; -0.000001200 pi0 eta' PHSP; #[Reconstructed PDG2011] -0.000001 pi0 a_00 PHSP; -0.000001 pi0 f_0 PHSP; -# pi0 rho0 is with the 3-body modes -0.000001 omega pi0 SVS; -0.000001 a_10 pi0 SVS; -0.000001 b_10 pi0 SVS; -0.000001 eta eta PHSP; -0.000001 eta eta' PHSP; -0.000001 eta a_00 PHSP; -0.000001 eta f_0 PHSP; -0.000001 rho0 eta SVS; -0.000000940 omega eta SVS; #[Reconstructed PDG2011] -0.000001 a_10 eta SVS; -0.000001 b_10 eta SVS; -0.000001 eta' eta' PHSP; -0.000001 eta' a_00 PHSP; -0.000001 eta' f_0 PHSP; -0.000001 rho0 eta' SVS; -0.000001000 omega eta' SVS; #[Reconstructed PDG2011] -0.000001 a_10 eta' SVS; -0.000001 b_10 eta' SVS; -0.000001 a_00 a_00 PHSP; -0.000001 a_00 f_0 PHSP; -0.000001 rho0 a_00 SVS; -0.000001 omega a_00 SVS; -0.000001 a_10 a_00 SVS; -0.000001 b_10 a_00 SVS; -0.000001 f_0 f_0 PHSP; -0.000001 rho0 f_0 SVS; -0.000001 omega f_0 SVS; -0.000001 a_10 f_0 SVS; -0.000001 b_10 f_0 SVS; - -# Penguin dominated modes are sin2beta, not sin2alpha -0.000004300 phi K_S0 SVS; #[Reconstructed PDG2011] -0.000004300 phi K_L0 SVS; #[Reconstructed PDG2011] -0.000000550 eta K_S0 PHSP; #[Reconstructed PDG2011] -0.000000550 eta K_L0 PHSP; #[Reconstructed PDG2011] -0.000033000 eta' K_S0 PHSP; #[Reconstructed PDG2011] -0.000033000 eta' K_L0 PHSP; #[Reconstructed PDG2011] -0.000002500 omega K_S0 SVS; #[Reconstructed PDG2011] -0.000002500 omega K_L0 SVS; #[Reconstructed PDG2011] -#don't allow jetset to simulate the same decay but to a K0 or anti-K0 -#Lange 1/30/2003 -0.0 phi K0 PHSP; -0.0 phi anti-K0 PHSP; -0.0 eta K0 PHSP; -0.0 eta anti-K0 PHSP; -0.0 eta' K0 PHSP; -0.0 eta' anti-K0 PHSP; -0.0 omega K0 PHSP; -0.0 omega anti-K0 PHSP; -# phipi0 has no simple Pengiun or tree so who knows - ditto phieta/eta'? -0.000001 phi pi0 SVS; -0.000001 phi eta SVS; -0.000001 phi eta' SVS; -# -0.000015900 K*0 eta SVS; #[Reconstructed PDG2011] -0.000003800 K*0 eta' SVS; #[Reconstructed PDG2011] -0.000002000 K*0 omega SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000001 phi omega SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000001 omega omega SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000001 omega rho0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -# -# PR LHCb 04/07/04 update BR -#2-body modes from Jim Olsen -0.000019400 K+ pi- PHSP; #[Reconstructed PDG2011] -0.0000004 K+ K- PHSP; -0.000000240 K_S0 K_S0 PHSP; #[Reconstructed PDG2011] -0.0000000 K_S0 K_L0 PHSP; -0.000000240 K_L0 K_L0 PHSP; #[Reconstructed PDG2011] -# Declare K0 pi0 not to have it through Pythia (LHCb - PR) -0.0000000 K0 pi0 PHSP; -# Split into K_s0 K_l0 (LHCb - P. Robbe) -0.000004750 K_S0 pi0 PHSP; #[Reconstructed PDG2011] -0.000004750 K_L0 pi0 PHSP; #[Reconstructed PDG2011] -#Put in with 0 BR to keep PYTHIA from generating it -0.0000000 K0 anti-K0 PHSP; -# -# 3-body John Back (jback@slac.stanford.edu) - Oct 15, 2002 -# JGS intersperses modes with pi0->eta,eta' -# B0 modes -# Model generates rho(770), rho(1450) and rho(1700) resonances -# with interference (uses CKM angle alpha) -0.000024 pi- pi+ pi0 BTO3PI_CP dm alpha; -# Put in with 0 BR to keep PYTHIA from generating these (see BTO3PI_CP above) -0.000000 rho0 pi0 SVS; -0.000000 rho+ pi- SVS; -0.000000 rho- pi+ SVS; -0.000000 rho(2S)+ pi- SVS; -0.000000 rho(2S)- pi+ SVS; -0.000000 rho(3S)+ pi- SVS; -0.000000 rho(3S)- pi+ SVS; -# -# rho0 3-body modes -0.000002350 rho0 K_S0 SVS; #[Reconstructed PDG2011] -0.000002350 rho0 K_L0 SVS; #[Reconstructed PDG2011] -# -# rho- 3-body modes -0.000008400 rho- K+ SVS; #[Reconstructed PDG2011] -# -# rho(1450) 3-body modes -0.0000005 rho(2S)0 K_S0 SVS; -0.0000005 rho(2S)0 K_L0 SVS; -# -# -# f0,a0(980) 3-body modes -0.0000055 f_0 K0 PHSP; -0.000001 a_00 K0 PHSP; -0.000001 a_0- K+ PHSP; -0.000001 a_0+ pi- PHSP; -0.000003 a_0- pi+ PHSP; -# -# K*0(892) 3-body modes -0.000003600 K*0 pi0 SVS; #[Reconstructed PDG2011] -0.000003 K*0 anti-K0 SVS; -# -# K*0(1430) 3-body modes -0.000001 K_0*0 pi0 PHSP; -0.000003 K_0*0 anti-K0 PHSP; -# -# K*0(1680) 3-body modes -0.000001 K''*0 pi0 SVS; -0.000001 K''*0 K0 SVS; - -# -# K*+(892) 3-body modes -0.000009400 K*+ pi- SVS; #[Reconstructed PDG2011] -0.000002 K*+ K- SVS; -# -# K*+(1430) 3-body modes -0.000033000 K_0*+ pi- PHSP; #[Reconstructed PDG2011] -0.000002 K_0*+ K- PHSP; -# -# K*0(1680) 3-body modes -0.000001 K''*+ pi- SVS; -0.000001 K''*+ K- SVS; -# -# -# Non-resonant 3-body left-overs -# Most modes are set at 1e-6 -# -# pi+pi-pi0: high mass + f0(400-1200) = (1+1)e-6 -#0402270.000002 pi+ pi- pi0 PHSP; -0.000017 pi+ pi- eta PHSP; -0.000001 pi+ pi- eta' PHSP; -# -# pi+ pi- K0: total-rhoK0-f0K0-piK*(892)-piK*(1430)=45-5-6-13./3-11./3 -0.000000000 pi+ pi- K0 PHSP; #[Reconstructed PDG2011] -# -# K+ pi- pi0 -0.000027500 K+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000020 K+ pi- eta PHSP; -0.000001 K+ pi- eta' PHSP; -# -# pi+ K- K0. -# Both B0 and B0bar can decay to these => 0.5e-6 each -0.0000005 pi+ K- K0 PHSP; -0.0000005 pi- K+ anti-K0 PHSP; -# -# K+ K- K0 -# PR LHCb 09 Apr 2004 split into KS/KL -0.000000 K+ K- K0 PHSP; -0.000012350 K+ K- K_S0 PHSP; #[Reconstructed PDG2011] -0.000012350 K+ K- K_L0 PHSP; #[Reconstructed PDG2011] -# -# K+ K- pi0 -0.000001 K+ K- pi0 PHSP; -0.000001 K+ K- eta PHSP; -0.000001 K+ K- eta' PHSP; -# -# pi0 K0 anti-K0 -0.000002 K0 anti-K0 pi0 PHSP; -0.000001 K0 anti-K0 eta PHSP; -0.000001 K0 anti-K0 eta' PHSP; -# -# pi0 pi0 K0 -0.000002 K0 pi0 pi0 PHSP; -0.000001 K0 pi0 eta PHSP; -0.000001 K0 pi0 eta' PHSP; -0.000001 K0 eta eta PHSP; -0.000001 K0 eta eta' PHSP; -0.000001 K0 eta' eta' PHSP; -# -# K0 anti-K0 K0: 8*BF(KsKsKs)~=48 (8 is a guess) -0.000048 K0 anti-K0 K0 PHSP; -# -# pi0 pi0 pi0 -0.000001 pi0 pi0 pi0 PHSP; -0.000001 pi0 pi0 eta PHSP; -0.000001 pi0 pi0 eta' PHSP; -0.000001 pi0 eta eta PHSP; -0.000001 pi0 eta eta' PHSP; -# -# PR LHCb: 7 Nov 2005 Add K*0 pi0 pi0 -0.0000067 K*0 pi0 pi0 PHSP; -#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -# 2- and 3-body modes revised Feb.2005 Markus Cristinziani, SLAC -#--------------------------------------------------------------------------- -# -#4-body modes from Andrei Gritsan -#--- 4-body rho-rho, rho-pi-pi, pi-pi-pi-pi -------------------------- -# PR LHCb 20 Apr 2004, set long. pol. -0.000000730 rho0 rho0 SVV_HELAMP 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000024200 rho+ rho- SVV_HELAMP 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000003 rho0 pi+ pi- PHSP; -0.000003 omega pi+ pi- PHSP; -0.000001 rho0 pi0 pi0 PHSP; -0.000001 omega pi0 pi0 PHSP; -0.0000005 rho0 pi0 eta PHSP; -0.0000002 rho0 eta eta PHSP; -0.0000002 rho0 pi0 eta' PHSP; -0.0000001 rho0 eta eta' PHSP; -0.0000005 omega pi0 eta PHSP; -0.0000002 omega eta eta PHSP; -0.0000002 omega pi0 eta' PHSP; -0.0000001 omega eta eta' PHSP; -0.000010 rho+ pi- pi0 PHSP; -0.000005 rho+ pi- eta PHSP; -0.000010 rho- pi+ pi0 PHSP; -0.000005 rho- pi+ eta PHSP; -0.000010 pi+ pi- pi+ pi- PHSP; -0.000010 pi+ pi- pi0 pi0 PHSP; -0.000005 pi+ pi- eta pi0 PHSP; -0.000002 pi+ pi- eta eta PHSP; -0.000002 pi+ pi- eta' pi0 PHSP; -0.000001 pi+ pi- eta' eta PHSP; -0.000016500 a_1+ pi- SVS; #[Reconstructed PDG2011] -0.000016500 a_1- pi+ SVS; #[Reconstructed PDG2011] -0.0000055 b_1+ pi- SVS; -0.0000055 b_1- pi+ SVS; -0.000002 rho- a_0+ SVS; -0.000010 rho+ a_0- SVS; -0.000001 f_0 pi+ pi- PHSP; -0.000001 f_0 pi0 pi0 PHSP; -0.000001 a_0- pi+ pi0 PHSP; -0.000001 a_00 pi0 pi0 PHSP; -0.000001 a_0+ pi- pi0 PHSP; -#--- 4-body rho-K*, rho-pi-K, K*-pi-pi, pi-pi-pi-K ------------------- -0.000003400 rho0 K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.0000100 rho- K*+ SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000050600 pi- pi+ K*0 PHSP; #[Reconstructed PDG2011] -0.000010 pi- pi0 K*+ PHSP; -0.000005 pi- eta K*+ PHSP; -0.000002 pi- eta' K*+ PHSP; -0.000010 rho- K+ pi0 PHSP; -0.000005 rho- K+ eta PHSP; -0.000002 rho- K+ eta' PHSP; -0.000010 rho- K0 pi+ PHSP; -0.000010 rho+ K0 pi- PHSP; -0.000005 rho0 K0 pi0 PHSP; -0.000002 rho0 K0 eta PHSP; -0.000001 rho0 K0 eta' PHSP; -0.000010 rho0 K+ pi- PHSP; -0.000005 omega K0 pi0 PHSP; -0.000002 omega K0 eta PHSP; -0.000001 omega K0 eta' PHSP; -0.000005100 omega K+ pi- PHSP; #[Reconstructed PDG2011] -0.000010 pi+ pi0 pi- K0 PHSP; -0.000005 pi+ eta pi- K0 PHSP; -0.000010 pi0 pi0 pi0 K0 PHSP; -0.000005 pi0 pi0 eta K0 PHSP; -0.000002 pi0 eta eta K0 PHSP; -0.000002 pi0 pi0 eta' K0 PHSP; -0.000001 pi0 eta eta' K0 PHSP; -0.000010 pi+ pi- pi- K+ PHSP; -0.000010 pi0 pi0 pi- K+ PHSP; -0.000005 pi0 eta pi- K+ PHSP; -0.000002 eta eta pi- K+ PHSP; -0.000002 pi0 eta' pi- K+ PHSP; -0.000001 eta eta' pi- K+ PHSP; -0.000010 rho0 K_0*0 PHSP; -0.000020 rho- K_0*+ PHSP; -0.000010 pi- pi+ K_0*0 PHSP; -0.000010 pi0 pi0 K_0*0 PHSP; -0.000010 pi- pi0 K_0*+ PHSP; -0.000005 K*0 f_0 SVS; -0.000010 a_10 K0 SVS; -0.000016000 a_1- K+ SVS; #[Reconstructed PDG2011] -0.000010 b_10 K0 SVS; -0.0000074 b_1- K+ SVS; -0.000005 K*0 a_00 SVS; -0.000005 K*+ a_0- SVS; -#--- 4-body K*-K*, rho-K-K, K*-K-pi, phi-pi-pi, pi-pi-K-K ------------ -0.000001280 K*0 anti-K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000001 K*+ K*- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.0000001 phi rho0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000001 K+ K- rho0 PHSP; -0.000001 K0 anti-K0 rho0 PHSP; -0.000001 K+ K- omega PHSP; -0.000001 K0 anti-K0 omega PHSP; -0.000001 K+ anti-K0 rho- PHSP; -0.000001 K- K0 rho+ PHSP; -0.0000001 phi pi- pi+ PHSP; -0.000001 K+ K- pi- pi+ PHSP; -0.000001 K+ K- pi0 pi0 PHSP; -0.0000005 K+ K- pi0 eta PHSP; -0.0000002 K+ K- eta eta PHSP; -0.0000002 K+ K- pi0 eta' PHSP; -0.0000001 K+ K- eta eta' PHSP; -0.000001 K0 anti-K0 pi- pi+ PHSP; -0.000001 K0 anti-K0 pi0 pi0 PHSP; -0.0000005 K0 anti-K0 pi0 eta PHSP; -0.0000002 K0 anti-K0 eta eta PHSP; -0.0000002 K0 anti-K0 pi0 eta' PHSP; -0.0000001 K0 anti-K0 eta eta' PHSP; -0.000001 K*+ K- pi0 PHSP; -0.000001 K*- K+ pi0 PHSP; -0.000001 K*0 anti-K0 pi0 PHSP; -0.000001 K0 anti-K*0 pi0 PHSP; -0.000001 K+ anti-K*0 pi- PHSP; -0.000001 K*+ anti-K0 pi- PHSP; -0.000003320 K- K*0 pi+ PHSP; #[Reconstructed PDG2011] -0.000001 K*- K0 pi+ PHSP; -#--- 4-body phi-K*, phi-K-pi, K-K-K*, pi-K-K-K ----------------------- -0.000009800 phi K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000010 phi K+ pi- PHSP; -0.000010 phi K0 pi0 PHSP; -0.000007 phi K0 eta PHSP; -0.000017700 K- K+ K*0 PHSP; #[Reconstructed PDG2011] -0.000010 K- K*+ K0 PHSP; -0.000010 K*- K+ K0 PHSP; -0.000010 K+ K- K+ pi- PHSP; -0.000010 K+ K- K0 pi0 PHSP; -0.000005 K+ K- K0 eta PHSP; -0.000010 K0 anti-K0 K0 pi0 PHSP; -0.000005 K0 anti-K0 K0 eta PHSP; -0.000003900 phi K_0*0 PHSP; #[Reconstructed PDG2011] -0.000010 K- K+ K_0*0 PHSP; -0.000010 K- K_0*+ K0 PHSP; -0.000010 K_0*- K+ K0 PHSP; -0.000002 phi K'_10 PHSP; -0.000002 K- K+ K'_10 PHSP; -#--- 4-body phi-phi, phi-K-K, K-K-K-K -------------------------------- -0.0000001 phi phi SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.0000001 phi K+ K- PHSP; -0.0000001 phi K0 anti-K0 PHSP; -0.0000001 K+ K- K+ K- PHSP; -0.0000001 K0 anti-K0 K+ K- PHSP; -0.0000001 K0 anti-K0 K0 anti-K0 PHSP; -#5-body modes from Jim Smith - 1/30/05 -#--- 5-body rho-rho-pi, rho-pi-pi-pi, pi-pi-pi-pi-pi ------------------- -0.000010 rho0 rho0 pi0 PHSP; -0.000005 rho0 rho0 eta PHSP; -0.000002 rho0 rho0 eta' PHSP; -0.000010 omega rho0 pi0 PHSP; -0.000005 omega rho0 eta PHSP; -0.000002 omega rho0 eta' PHSP; -0.000010 rho+ rho- pi0 PHSP; -0.000005 rho+ rho- eta PHSP; -0.000002 rho+ rho- eta' PHSP; -0.000010 rho0 rho+ pi- PHSP; -0.000010 omega rho+ pi- PHSP; -0.000002 rho0 pi+ pi- pi0 PHSP; -0.000001 rho0 pi+ pi- eta PHSP; -0.000001 rho0 pi+ pi- eta' PHSP; -0.000002 rho0 pi0 pi0 pi0 PHSP; -0.000001 rho0 pi0 eta pi0 PHSP; -0.000001 rho0 pi0 eta' pi0 PHSP; -0.000002 omega pi+ pi- pi0 PHSP; -0.000001 omega pi+ pi- eta PHSP; -0.000001 omega pi+ pi- eta' PHSP; -0.000002 omega pi0 pi0 pi0 PHSP; -0.000001 omega pi0 eta pi0 PHSP; -0.000001 omega pi0 eta' pi0 PHSP; -0.000002 rho+ pi- pi+ pi- PHSP; -0.000002 rho+ pi- pi0 pi0 PHSP; -0.000001 rho+ pi- pi0 eta PHSP; -0.000001 rho+ pi- pi0 eta' PHSP; -0.000002 rho- pi+ pi+ pi- PHSP; -0.000002 rho- pi+ pi0 pi0 PHSP; -0.000001 rho- pi+ pi0 eta PHSP; -0.000001 rho- pi+ pi0 eta' PHSP; -0.000001 pi+ pi- pi+ pi- pi0 PHSP; -0.0000005 pi+ pi- pi+ pi- eta PHSP; -0.0000002 pi+ pi- pi+ pi- eta' PHSP; -0.000001 pi+ pi- pi0 pi0 pi0 PHSP; -0.0000005 pi+ pi- pi0 pi0 eta PHSP; -0.0000002 pi+ pi- pi0 pi0 eta' PHSP; -0.0000005 pi0 pi0 pi0 pi0 pi0 PHSP; -0.0000002 pi0 pi0 pi0 pi0 eta PHSP; -0.0000001 pi0 pi0 pi0 pi0 eta' PHSP; -0.000010 a_1+ rho- PHSP; -0.000010 a_1- rho+ PHSP; -0.000010 a_10 rho0 PHSP; -0.000010 a_10 omega PHSP; -0.000010 a_1+ pi- pi0 PHSP; -0.000005 a_1+ pi- eta PHSP; -0.000002 a_1+ pi- eta' PHSP; -0.000010 a_10 pi+ pi- PHSP; -0.000010 a_10 pi0 pi0 PHSP; -0.000005 a_10 pi0 eta PHSP; -0.000002 a_10 pi0 eta' PHSP; -0.000010 a_1- pi+ pi0 PHSP; -0.000005 a_1- pi+ eta PHSP; -0.000002 a_1- pi+ eta' PHSP; -0.000010 rho+ f_0 pi- PHSP; -0.000010 rho- f_0 pi+ PHSP; -0.000010 rho0 f_0 pi0 PHSP; -0.000005 rho0 f_0 eta PHSP; -0.000002 rho0 f_0 eta' PHSP; -0.000010 omega f_0 pi0 PHSP; -0.000010 rho+ a_00 pi- PHSP; -0.000010 rho+ a_0- pi0 PHSP; -0.000005 rho+ a_0- eta PHSP; -0.000002 rho+ a_0- eta' PHSP; -0.000010 rho0 a_0+ pi- PHSP; -0.000010 rho0 a_0- pi+ PHSP; -0.000010 rho0 a_00 pi0 PHSP; -0.000005 rho0 a_00 eta PHSP; -0.000002 rho0 a_00 eta' PHSP; -0.000010 rho- a_00 pi+ PHSP; -0.000010 rho- a_0+ pi0 PHSP; -0.000005 rho- a_0+ eta PHSP; -0.000002 rho- a_0+ eta' PHSP; -0.000002 f_0 pi+ pi- pi0 PHSP; -0.000001 f_0 pi+ pi- eta PHSP; -0.000001 f_0 pi+ pi- eta' PHSP; -0.000002 f_0 pi0 pi0 pi0 PHSP; -0.000001 f_0 pi0 pi0 eta PHSP; -0.000001 f_0 pi0 pi0 eta' PHSP; -0.000001 a_00 pi+ pi- pi0 PHSP; -0.000001 a_00 pi0 pi0 pi0 PHSP; -0.000001 a_0+ pi- pi+ pi- PHSP; -0.000001 a_0+ pi- pi0 pi0 PHSP; -0.000001 a_0- pi+ pi+ pi- PHSP; -0.000001 a_0- pi+ pi0 pi0 PHSP; -#--- 5-body rho-K*pi, rho-2pi-K, K*-3pi, 4pi-K ------------------- -0.000010 rho0 K*+ pi- PHSP; -0.000010 rho- K*+ pi0 PHSP; -0.000005 rho- K*+ eta PHSP; -0.000002 rho- K*+ eta' PHSP; -0.000010 rho0 K*0 pi0 PHSP; -0.000005 rho0 K*0 eta PHSP; -0.000002 rho0 K*0 eta' PHSP; -0.000010 rho- K*0 pi+ PHSP; -0.000010 rho+ K*0 pi- PHSP; -0.000010 omega K*+ pi- PHSP; -0.000010 omega K*0 pi0 PHSP; -0.000005 omega K*0 eta PHSP; -0.000002 omega K*0 eta' PHSP; -0.000010 pi+ pi- K*+ pi- PHSP; -0.000010 pi- pi0 K*+ pi0 PHSP; -0.000005 pi- pi0 K*+ eta PHSP; -0.000002 pi- pi0 K*+ eta' PHSP; -0.000010 pi+ pi- K*0 pi0 PHSP; -0.000005 pi+ pi- K*0 eta PHSP; -0.000002 pi+ pi- K*0 eta' PHSP; -0.000010 pi0 pi0 K*0 pi0 PHSP; -0.000005 pi0 pi0 K*0 eta PHSP; -0.000002 pi0 pi0 K*0 eta' PHSP; -0.000010 rho+ K+ pi- pi- PHSP; -0.000010 rho0 K+ pi- pi0 PHSP; -0.000005 rho0 K+ pi- eta PHSP; -0.000002 rho0 K+ pi- eta' PHSP; -0.000010 rho- K+ pi+ pi- PHSP; -0.000010 rho- K+ pi0 pi0 PHSP; -0.000005 rho- K+ pi0 eta PHSP; -0.000002 rho- K+ pi0 eta' PHSP; -0.000010 rho0 K0 pi+ pi- PHSP; -0.000010 rho0 K0 pi0 pi0 PHSP; -0.000005 rho0 K0 pi0 eta PHSP; -0.000002 rho0 K0 pi0 eta' PHSP; -0.000010 rho+ K0 pi- pi0 PHSP; -0.000005 rho+ K0 pi- eta PHSP; -0.000002 rho+ K0 pi- eta' PHSP; -0.000010 rho- K0 pi+ pi0 PHSP; -0.000005 rho- K0 pi+ eta PHSP; -0.000002 rho- K0 pi+ eta' PHSP; -0.000010 omega K+ pi- pi0 PHSP; -0.000005 omega K+ pi- eta PHSP; -0.000002 omega K+ pi- eta' PHSP; -0.000010 omega K0 pi+ pi- PHSP; -0.000010 omega K0 pi0 pi0 PHSP; -0.000005 omega K0 pi0 eta PHSP; -0.000002 omega K0 pi0 eta' PHSP; -0.000002 pi+ pi- pi- K+ pi0 PHSP; -0.000001 pi+ pi- pi- K+ eta PHSP; -0.000001 pi+ pi- pi- K+ eta' PHSP; -0.000002 pi0 pi0 pi- K+ pi0 PHSP; -0.000001 pi0 pi0 pi- K+ eta PHSP; -0.000001 pi0 pi0 pi- K+ eta' PHSP; -0.000002 pi+ pi- pi+ K0 pi- PHSP; -0.000002 pi+ pi- pi0 K0 pi0 PHSP; -0.000001 pi+ pi- pi0 K0 eta PHSP; -0.000001 pi+ pi- pi0 K0 eta' PHSP; -0.000002 pi0 pi0 pi0 K0 pi0 PHSP; -0.000001 pi0 pi0 pi0 K0 eta PHSP; -0.000001 pi0 pi0 pi0 K0 eta' PHSP; -0.000010 rho+ K_0*0 pi- PHSP; -0.000010 rho0 K_0*0 pi0 PHSP; -0.000005 rho0 K_0*0 eta PHSP; -0.000002 rho0 K_0*0 eta' PHSP; -0.000010 rho- K_0*0 pi+ PHSP; -0.000010 rho- K_0*+ pi0 PHSP; -0.000005 rho- K_0*+ eta PHSP; -0.000002 rho- K_0*+ eta' PHSP; -0.000010 rho0 K_0*+ pi- PHSP; -0.000010 pi+ pi- K_0*+ pi- PHSP; -0.000010 pi- pi0 K_0*+ pi0 PHSP; -0.000005 pi- pi0 K_0*+ eta PHSP; -0.000002 pi- pi0 K_0*+ eta' PHSP; -0.000010 pi+ pi- K_0*0 pi0 PHSP; -0.000005 pi+ pi- K_0*0 eta PHSP; -0.000002 pi+ pi- K_0*0 eta' PHSP; -0.000010 pi0 pi0 K_0*0 pi0 PHSP; -0.000005 pi0 pi0 K_0*0 eta PHSP; -0.000005 pi0 pi0 K_0*0 eta' PHSP; -0.000010 K*+ f_0 pi- PHSP; -0.000010 K*0 f_0 pi0 PHSP; -0.000005 K*0 f_0 eta PHSP; -0.000002 K*0 f_0 eta' PHSP; -0.000010 a_1+ K0 pi- PHSP; -0.000020 a_10 K*0 PHSP; -0.000010 a_10 K+ pi- PHSP; -0.000010 a_10 K0 pi0 PHSP; -0.000020 a_1- K*+ PHSP; -0.000010 a_1- K+ pi0 PHSP; -0.000010 a_1- K0 pi+ PHSP; -0.000005 K*+ a_00 pi- PHSP; -0.000005 K*+ a_0- pi0 PHSP; -0.000002 K*+ a_0- eta PHSP; -0.000001 K*+ a_0- eta' PHSP; -0.000005 K*0 a_0+ pi- PHSP; -0.000005 K*0 a_00 pi0 PHSP; -0.000002 K*0 a_00 eta PHSP; -0.000001 K*0 a_00 eta' PHSP; -#--- 5-body K*-K*pi,rho-K-Kpi, K*-K-2pi, phi-3pi, 3pi-K-K ------------ -0.000001 K*- K*0 pi+ PHSP; -0.000001 K*+ anti-K*0 pi- PHSP; -0.000001 K*- K*+ pi0 PHSP; -0.0000005 K*- K*+ eta PHSP; -0.0000002 K*- K*+ eta' PHSP; -0.000001 K*0 anti-K*0 pi0 PHSP; -0.0000005 K*0 anti-K*0 eta PHSP; -0.0000002 K*0 anti-K*0 eta' PHSP; -0.000001 phi rho+ pi- PHSP; -0.000001 phi rho- pi+ PHSP; -0.000001 phi rho0 pi0 PHSP; -0.0000005 phi rho0 eta PHSP; -0.0000002 phi rho0 eta' PHSP; -0.000001 phi omega pi0 PHSP; -0.000001 phi f_0 pi0 PHSP; -0.000001 phi pi+ pi- pi0 PHSP; -0.0000005 phi pi+ pi- eta PHSP; -0.0000002 phi pi+ pi- eta' PHSP; -0.000001 phi pi0 pi0 pi0 PHSP; -0.0000005 phi pi0 pi0 eta PHSP; -0.0000002 phi pi0 pi0 eta' PHSP; -0.000001 K0 K- rho0 pi+ PHSP; -0.000001 K0 K- rho+ pi0 PHSP; -0.0000005 K0 K- rho+ eta PHSP; -0.0000002 K0 K- rho+ eta' PHSP; -0.000001 K0 K- omega pi+ PHSP; -0.000001 K0 K- f_0 pi+ PHSP; -0.000001 K+ K- rho+ pi- PHSP; -0.000001 K+ K- rho- pi+ PHSP; -0.000001 K+ K- rho0 pi0 PHSP; -0.0000005 K+ K- rho0 eta PHSP; -0.0000002 K+ K- rho0 eta' PHSP; -0.000001 K+ K- omega pi0 PHSP; -0.0000005 K+ K- omega eta PHSP; -0.0000002 K+ K- omega eta' PHSP; -0.000001 K+ K- f_0 pi0 PHSP; -0.000001 K0 anti-K0 rho+ pi- PHSP; -0.000001 K0 anti-K0 rho- pi+ PHSP; -0.000001 K0 anti-K0 rho0 pi0 PHSP; -0.0000005 K0 anti-K0 rho0 eta PHSP; -0.0000002 K0 anti-K0 rho0 eta' PHSP; -0.000001 K0 anti-K0 omega pi0 PHSP; -0.000001 K0 anti-K0 f_0 pi0 PHSP; -0.000001 anti-K0 K+ rho0 pi- PHSP; -0.000001 anti-K0 K+ rho- pi0 PHSP; -0.0000005 anti-K0 K+ rho- eta PHSP; -0.0000002 anti-K0 K+ rho- eta' PHSP; -0.000001 anti-K0 K+ omega pi- PHSP; -0.000001 anti-K0 K+ f_0 pi- PHSP; -0.0000002 K0 K- pi+ pi+ pi- PHSP; -0.0000002 K0 K- pi+ pi0 pi0 PHSP; -0.0000001 K0 K- pi+ pi0 eta PHSP; -0.0000001 K0 K- pi+ pi0 eta' PHSP; -0.0000002 K+ K- pi+ pi- pi0 PHSP; -0.0000001 K+ K- pi+ pi- eta PHSP; -0.0000001 K+ K- pi+ pi- eta' PHSP; -0.0000002 K+ K- pi0 pi0 pi0 PHSP; -0.0000001 K+ K- pi0 pi0 eta PHSP; -0.0000001 K+ K- pi0 pi0 eta' PHSP; -0.0000002 K0 anti-K0 pi+ pi- pi0 PHSP; -0.0000001 K0 anti-K0 pi+ pi- eta PHSP; -0.0000001 K0 anti-K0 pi+ pi- eta' PHSP; -0.0000002 K0 anti-K0 pi0 pi0 pi0 PHSP; -0.0000001 K0 anti-K0 pi0 pi0 eta PHSP; -0.0000001 K0 anti-K0 pi0 pi0 eta' PHSP; -0.0000002 anti-K0 K+ pi- pi+ pi- PHSP; -0.0000002 anti-K0 K+ pi- pi0 pi0 PHSP; -0.0000001 anti-K0 K+ pi- pi0 eta PHSP; -0.0000001 anti-K0 K+ pi- pi0 eta' PHSP; -0.000001 K*0 K- pi+ pi0 PHSP; -0.0000005 K*0 K- pi+ eta PHSP; -0.0000002 K*0 K- pi+ eta' PHSP; -0.000001 K*- K0 pi+ pi0 PHSP; -0.0000005 K*- K0 pi+ eta PHSP; -0.0000002 K*- K0 pi+ eta' PHSP; -0.000001 K*+ K- pi+ pi- PHSP; -0.000001 K*+ K- pi0 pi0 PHSP; -0.0000005 K*+ K- pi0 eta PHSP; -0.0000002 K*+ K- pi0 eta' PHSP; -0.000001 K*- K+ pi+ pi- PHSP; -0.000001 K*- K+ pi0 pi0 PHSP; -0.0000005 K*- K+ pi0 eta PHSP; -0.0000002 K*- K+ pi0 eta' PHSP; -0.000001 K*0 anti-K0 pi+ pi- PHSP; -0.000001 K*0 anti-K0 pi0 pi0 PHSP; -0.0000005 K*0 anti-K0 pi0 eta PHSP; -0.0000002 K*0 anti-K0 pi0 eta' PHSP; -0.000001 K0 anti-K*0 pi+ pi- PHSP; -0.000001 K0 anti-K*0 pi0 pi0 PHSP; -0.0000005 K0 anti-K*0 pi0 eta PHSP; -0.0000002 K0 anti-K*0 pi0 eta' PHSP; -0.000001 K+ anti-K*0 pi- pi0 PHSP; -0.0000005 K+ anti-K*0 pi- eta PHSP; -0.0000002 K+ anti-K*0 pi- eta' PHSP; -0.000001 K*+ anti-K0 pi- pi0 PHSP; -0.0000005 K*+ anti-K0 pi- eta PHSP; -0.0000002 K*+ anti-K0 pi- eta' PHSP; -#--- 5-body phi-K*-pi, phi-K-2pi, K-K-K*-pi, 2pi-K-K-K -------------------- -0.000010 phi K*+ pi- PHSP; -0.000010 phi K*0 pi0 PHSP; -0.000005 phi K*0 eta PHSP; -0.000002 phi K*0 eta' PHSP; -0.000010 phi K+ rho- PHSP; -0.000010 phi K0 rho0 PHSP; -0.000010 phi K0 omega PHSP; -0.000010 phi K0 f_0 PHSP; -0.000010 phi K0 pi+ pi- PHSP; -0.000010 phi K0 pi0 pi0 PHSP; -0.000005 phi K0 pi0 eta PHSP; -0.000002 phi K0 pi0 eta' PHSP; -0.000010 phi K+ pi- pi0 PHSP; -0.000005 phi K+ pi- eta PHSP; -0.000002 phi K+ pi- eta' PHSP; -0.000010 K- K+ K*+ pi- PHSP; -0.000010 K+ K*- K+ pi- PHSP; -0.000010 K+ K*0 anti-K0 pi- PHSP; -0.000010 K+ K0 anti-K*0 pi- PHSP; -0.000010 K0 K*+ anti-K0 pi- PHSP; -0.000010 K- K+ K+ rho- PHSP; -0.000010 K- K+ K0 rho0 PHSP; -0.000010 K- K+ K0 omega PHSP; -0.000010 K- K+ K0 f_0 PHSP; -0.000010 K+ K- K+ pi- pi0 PHSP; -0.000005 K+ K- K+ pi- eta PHSP; -0.000002 K+ K- K+ pi- eta' PHSP; -0.000010 K+ K- K0 pi+ pi- PHSP; -0.000010 K+ K- K0 pi0 pi0 PHSP; -0.000005 K+ K- K0 pi0 eta PHSP; -0.000005 K+ K- K0 pi0 eta' PHSP; -0.000010 K0 anti-K0 K+ pi- pi0 PHSP; -0.000005 K0 anti-K0 K+ pi- eta PHSP; -0.000002 K0 anti-K0 K+ pi- eta' PHSP; -0.000010 K0 anti-K0 K0 pi+ pi- PHSP; -0.000010 K0 anti-K0 K0 pi0 pi0 PHSP; -0.000005 K0 anti-K0 K0 pi0 eta PHSP; -0.000002 K0 anti-K0 K0 pi0 eta' PHSP; -0.000010 phi K_0*+ pi- PHSP; -0.000010 phi K_0*0 pi0 PHSP; -0.000010 K+ K- K_0*+ pi- PHSP; -0.000010 K+ K- K_0*0 pi0 PHSP; -0.000005 K+ K- K_0*0 eta PHSP; -0.000002 K+ K- K_0*0 eta' PHSP; -0.000010 K+ K+ K_0*- pi- PHSP; -0.000010 K+ anti-K_0*0 K0 pi- PHSP; -0.000010 K+ K_0*0 anti-K0 pi- PHSP; -0.000010 K0 anti-K0 K_0*+ pi- PHSP; -0.000010 K0 anti-K0 K_0*0 pi0 PHSP; -0.000005 K0 anti-K0 K_0*0 eta PHSP; -0.000002 K0 anti-K0 K_0*0 eta' PHSP; -0.000010 K0 K0 anti-K_0*0 pi0 PHSP; -0.000005 K0 K0 anti-K_0*0 eta PHSP; -0.000002 K0 K0 anti-K_0*0 eta' PHSP; -0.000002 phi K'_1+ pi- PHSP; -0.000002 phi K'_10 pi0 PHSP; -0.000001 phi K'_10 eta PHSP; -0.000001 phi K'_10 eta' PHSP; -0.000002 K- K+ K'_1+ pi- PHSP; -0.000002 K- K+ K'_10 pi0 PHSP; -0.000001 K- K+ K'_10 eta PHSP; -0.000001 K- K+ K'_10 eta' PHSP; -0.000002 K+ K+ K'_1- pi- PHSP; -0.000002 K0 anti-K0 K'_10 pi0 PHSP; -0.000001 K0 anti-K0 K'_10 eta PHSP; -0.000001 K0 anti-K0 K'_10 eta' PHSP; -0.000002 K0 K0 anti-K'_10 pi0 PHSP; -0.000001 K0 K0 anti-K'_10 eta PHSP; -0.000001 K0 K0 anti-K'_10 eta' PHSP; -#--- 5-body phi-phi-K, phi-phi-pi, phi-3K, phi-K-K-pi, 5K, 4K-pi ------------ -0.000004100 phi phi K0 PHSP; #[Reconstructed PDG2011] -0.0000001 phi phi pi0 PHSP; -0.000001 phi K+ K- K0 PHSP; -0.000001 phi K0 anti-K0 K0 PHSP; -0.0000001 phi K+ K- pi0 PHSP; -0.0000001 phi K0 anti-K0 pi0 PHSP; -0.0000001 phi anti-K0 K+ pi- PHSP; -0.0000001 phi K0 K- pi+ PHSP; -0.0000001 K+ K- K+ K- K0 PHSP; -0.0000001 K0 anti-K0 K+ K- K0 PHSP; -0.0000001 K+ K- K+ K- pi0 PHSP; -0.0000001 K+ K- K0 anti-K0 pi0 PHSP; -0.0000001 K+ K- K+ anti-K0 pi- PHSP; -0.0000001 K+ K- K0 K- pi+ PHSP; -0.0000001 K0 anti-K0 K0 anti-K0 pi0 PHSP; -0.0000001 K0 anti-K0 anti-K0 K+ pi- PHSP; -0.0000001 K0 anti-K0 K0 K- pi+ PHSP; -#--- 6-body phi-phi-K*, phi-3Kpi, phi-K-K-2pi ------------ -0.000003 phi phi K*0 PHSP; -0.000001 phi K+ K- K*0 PHSP; -0.000001 phi K0 anti-K0 K*0 PHSP; -0.000001 phi K0 K+ K*- PHSP; -0.000001 phi K0 K0 anti-K*0 PHSP; -0.0000001 phi K+ K- K+ pi- PHSP; -0.0000001 phi K+ K- K0 pi0 PHSP; -0.0000001 phi K0 anti-K0 K+ pi- PHSP; -0.0000001 phi K0 anti-K0 K0 pi0 PHSP; -#--- 6-body a1a1 ------------ -0.000050 a_10 a_10 PHSP; -0.000050 a_1+ a_1- PHSP; -# -# B -> cc= s -0.000435500 J/psi K_S0 SVS; #[Reconstructed PDG2011] -0.000435500 J/psi K_L0 SVS; #[Reconstructed PDG2011] -# -# -0.001330000 J/psi K*0 SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] -0.000017600 J/psi pi0 SVS; #[Reconstructed PDG2011] -0.000027000 J/psi rho0 SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] -0.00003 J/psi omega SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; -0.000000000 J/psi K+ pi- PHSP; #[Reconstructed PDG2011] -0.0001 J/psi K0 pi0 PHSP; -#rl0.0007 J/psi K0 pi- pi+ PHSP; -#rl0.00035 J/psi K0 pi0 pi0 PHSP; -#rl0.00035 J/psi K+ pi- pi0 PHSP; -0.001300000 J/psi K_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; #[Reconstructed PDG2011] -0.0001 J/psi K'_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; -0.0005 J/psi K_2*0 PHSP; -0.000094000 J/psi phi K0 PHSP; #[Reconstructed PDG2011] -# -0.000310000 psi(2S) K_S0 SVS; #[Reconstructed PDG2011] -0.000310000 psi(2S) K_L0 SVS; #[Reconstructed PDG2011] -# -# -0.000610000 psi(2S) K*0 SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] - -0.0004 psi(2S) K+ pi- PHSP; -0.0002 psi(2S) K0 pi0 PHSP; -0.0002 psi(2S) K0 pi- pi+ PHSP; -0.0001 psi(2S) K0 pi0 pi0 PHSP; -0.0001 psi(2S) K+ pi- pi0 PHSP; -0.0004 psi(2S) K_10 PHSP; -# -0.000445000 eta_c K_S0 PHSP; #[Reconstructed PDG2011] -0.000445000 eta_c K_L0 PHSP; #[Reconstructed PDG2011] -# -# -0.000610000 K*0 eta_c SVS; #[Reconstructed PDG2011] -0.0002 eta_c K+ pi- PHSP; -0.0001 eta_c K0 pi0 PHSP; -0.0002 eta_c K0 pi- pi+ PHSP; -0.0001 eta_c K0 pi0 pi0 PHSP; -0.0001 eta_c K+ pi- pi0 PHSP; -# -0.00024 eta_c(2S) K_S0 PHSP; -0.00024 eta_c(2S) K_L0 PHSP; -# -# -0.00066 K*0T eta_c(2S) SVS; -0.00008 eta_c(2S) K+ pi- PHSP; -0.00005 eta_c(2S) K0 pi0 PHSP; -0.00008 eta_c(2S) K0 pi- pi+ PHSP; -0.00005 eta_c(2S) K0 pi0 pi0 PHSP; -0.00005 eta_c(2S) K+ pi- pi0 PHSP; -# -0.000070000 chi_c0 K_S0 PHSP; #[Reconstructed PDG2011] -0.000070000 chi_c0 K_L0 PHSP; #[Reconstructed PDG2011] -# -# -0.0003 K*0 chi_c0 SVS; -0.0002 chi_c0 K+ pi- PHSP; -0.0001 chi_c0 K0 pi0 PHSP; -0.0002 chi_c0 K0 pi- pi+ PHSP; -0.0001 chi_c0 K0 pi0 pi0 PHSP; -0.0001 chi_c0 K+ pi- pi0 PHSP; -# -0.000195000 chi_c1 K_S0 SVS; #[Reconstructed PDG2011] -0.000195000 chi_c1 K_L0 SVS; #[Reconstructed PDG2011] -# -# -0.000222000 chi_c1 K*0 SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] -0.0004 chi_c1 K+ pi- PHSP; -0.0002 chi_c1 K0 pi0 PHSP; -0.0004 chi_c1 K0 pi- pi+ PHSP; -0.0002 chi_c1 K0 pi0 pi0 PHSP; -0.0002 chi_c1 K+ pi- pi0 PHSP; -# -0.00005 chi_c2 K_S0 STS; -0.00005 chi_c2 K_L0 STS; -# -# -0.00003 chi_c2 K*0 PHSP; -0.0002 chi_c2 K+ pi- PHSP; -0.0001 chi_c2 K0 pi0 PHSP; -0.0002 chi_c2 K0 pi- pi+ PHSP; -0.0001 chi_c2 K0 pi0 pi0 PHSP; -0.0001 chi_c2 K+ pi- pi0 PHSP; -# -0.00024 psi(3770) K_S0 SVS; -0.00024 psi(3770) K_L0 SVS; -# -# -0.00048 psi(3770) K*0 SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; -0.00014 psi(3770) K+ pi- PHSP; -0.00014 psi(3770) K0 pi0 PHSP; -0.00014 psi(3770) K0 pi- pi+ PHSP; -0.00007 psi(3770) K0 pi0 pi0 PHSP; -0.00007 psi(3770) K+ pi- pi0 PHSP; -0.00029 psi(3770) K_10 PHSP; -# -### ALREADY Included above 0.0000 phi K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -# -# -# b-> c (dc=) -# -0.000211000 D- D+ PHSP; #[Reconstructed PDG2011] -# See Ref [B1] for the next 3: -0.000305 D*- D+ SVS; -0.000610000 D*+ D- SVS; #[Reconstructed PDG2011] -0.000820000 D*- D*+ SVV_HELAMP 0.56 0.0 0.96 0.0 0.47 0.0; #[Reconstructed PDG2011] -# -# b -> c (sc=) --> D Ds X Sum = 10% -# -0.007200000 D- D_s+ PHSP; #[Reconstructed PDG2011] -0.008000000 D*- D_s+ SVS; #[Reconstructed PDG2011] -0.007400000 D_s*+ D- SVS; #[Reconstructed PDG2011] -0.017700000 D_s*+ D*- SVV_HELAMP 0.4904 0.0 0.7204 0.0 0.4904 0.0; #[Reconstructed PDG2011] -0.0006 D'_1- D_s+ SVS; -0.0012 D'_1- D_s*+ SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; -0.0012 D_1- D_s+ SVS; -0.0024 D_1- D_s*+ SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; -0.0042 D_2*- D_s+ STS; -0.0040 D_2*- D_s*+ PHSP; -# -0.0018 D_s+ D- pi0 PHSP; -0.0037 D_s+ anti-D0 pi- PHSP; -0.0018 D_s*+ D- pi0 PHSP; -0.0037 D_s*+ anti-D0 pi- PHSP; -0.0030 D_s+ D- pi- pi+ PHSP; -0.0022 D_s+ D- pi0 pi0 PHSP; -0.0022 D_s+ anti-D0 pi- pi0 PHSP; -0.0030 D_s*+ D- pi- pi+ PHSP; -0.0022 D_s*+ D- pi0 pi0 PHSP; -0.0022 D_s*+ anti-D0 pi- pi0 PHSP; -# -# b -> c (sc=) --> D D= K X Sum = 8% -# Update: Ref. [B1] -# October 26, 2004 Lange -per breco awg -# External W-emission amplitude -0.001700000 D- D0 K+ PHSP; #[Reconstructed PDG2011] -0.004600000 D- D*0 K+ PHSP; #[Reconstructed PDG2011] -0.003100000 D*- D0 K+ PHSP; #[Reconstructed PDG2011] -0.011800000 D*- D*0 K+ PHSP; #[Reconstructed PDG2011] -# External+internal W-emission amplitude -0.0015 D- D+ K0 PHSP; -0.0018 D*- D+ K0 PHSP; -0.0047 D- D*+ K0 PHSP; -0.007800000 D*- D*+ K0 PHSP; #[Reconstructed PDG2011] -# Internal W-emission amplitude (color suppressed modes) -0.0005 D0 anti-D0 K0 PHSP; -0.0005 D*0 anti-D0 K0 PHSP; -0.0015 D0 anti-D*0 K0 PHSP; -0.0015 D*0 anti-D*0 K0 PHSP; -########## -# K* modes -########### -0.0025 D- D0 K*+ PHSP; -0.0025 D*- D0 K*+ PHSP; -0.0025 D- D*0 K*+ PHSP; -0.0050 D*- D*0 K*+ PHSP; -# -0.0025 D- D+ K*0 PHSP; -0.0025 D*- D+ K*0 PHSP; -0.0025 D- D*+ K*0 PHSP; -0.0050 D*- D*+ K*0 PHSP; -# -0.0005 D0 anti-D0 K*0 PHSP; -0.0005 D0 anti-D*0 K*0 PHSP; -0.0005 D*0 anti-D0 K*0 PHSP; -0.0010 D*0 anti-D*0 K*0 PHSP; -# -# B -> D(*) X Exclusive modes -# -0.002760000 D*- pi+ SVS; #[Reconstructed PDG2011] -0.002680000 D- pi+ PHSP; #[Reconstructed PDG2011] -0.007110000 rho+ D- SVS; #[Reconstructed PDG2011] -# -# D* rho HELAMP parameters taken from ICHEP 98-852. -0.006800000 rho+ D*- SVV_HELAMP 0.317 0.19 0.936 0.0 0.152 1.47; #[Reconstructed PDG2011] -0.0005 D- pi+ pi0 PHSP; -0.008200000 D*- pi+ pi0 PHSP; #[Reconstructed PDG2011] -0.000840000 anti-D0 pi- pi+ PHSP; #[Reconstructed PDG2011] -0.000620000 anti-D*0 pi- pi+ PHSP; #[Reconstructed PDG2011] -0.0005 anti-D*0 pi0 pi0 PHSP; -# -# D a1 updated Ref. [B1] -0.006000000 a_1+ D- SVS; #[Reconstructed PDG2011] -0.000000000 D- rho0 pi+ PHSP; #[Reconstructed PDG2011] -0.0011 D- rho+ pi0 PHSP; -0.002000000 D- pi- pi+ pi+ PHSP; #[Reconstructed PDG2011] -0.0010 D- pi0 pi+ pi0 PHSP; -0.0010 anti-D0 pi- pi+ pi0 PHSP; -0.0001 anti-D0 pi0 pi0 pi0 PHSP; -# -# SVV_HELAMP for D* a1 taken from factorization. Recommandation -# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/168.html: -# updated Ref. [B1] -# October 26, 2004 Lange update -# -0.011000000 D*- a_1+ SVV_HELAMP 0.200 0.0 0.866 0.0 0.458 0.0; # MK, update with PDG2015 -# -0.001600000 D*- rho0 pi+ PHSP; # MK, Update with PDF2015 -0.0010 D*- rho+ pi0 PHSP; -0.0005 D*- pi- pi+ pi+ PHSP; # MK, update with PDG2015 -0.0010 D*- pi0 pi+ pi0 PHSP; -0.0010 anti-D*0 pi- pi+ pi0 PHSP; -0.0001 anti-D*0 pi0 pi0 pi0 PHSP; -# -# B->D** pi and D** rho, recommendation -# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/151.html -# -0.0001 D_1- pi+ SVS; -0.0001 D'_1- pi+ SVS; -0.00006 D_0*- pi+ PHSP; -0.000215 D_2*- pi+ STS; -0.0004 D_1- rho+ PHSP; -0.0013 D'_1- rho+ PHSP; -0.0022 D_2*- rho+ PHSP; -# -# -# B->DK, recommendation -# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/151.html: -# update: Ref. [B1]: -# -0.000214000 D*- K+ SVS; #[Reconstructed PDG2011] -0.000200000 D- K+ PHSP; #[Reconstructed PDG2011] -0.000330000 D*- K*+ SVV_HELAMP 0.283 0.0 0.932 0.0 0.228 0.0; #[Reconstructed PDG2011] -0.000450000 K*+ D- SVS; #[Reconstructed PDG2011] -#more DK modes - October 26, 2004 -Lange -0.000036 anti-D*0 anti-K0 SVS; -0.000052 anti-D0 anti-K0 PHSP; -0.000042000 K*0 anti-D0 SVS; #[Reconstructed PDG2011] -0.00001 K*0 D0 SVS; -0.00004 anti-D*0 K*0 SVV_HELAMP 1. 0. 1. 0. 1. 0.; -0.00001 D*0 K*0 SVV_HELAMP 1. 0. 1. 0. 1. 0.; -# -# -# Color-suppressed modes. Br's are expectations from -# Phys. Rev. D57 (1998), 5363-5369, except for the eta' modes, which are set -# equal to the eta modes. SVV_HELAMP parameters are the same as in D*0 rho-, -# with phases set to 0. Recommendation http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/169.html: -# update: See Ref [B1]: -# further update October 26, 2004 Lange -# -0.000261000 anti-D0 pi0 PHSP; #[Reconstructed PDG2011] -0.000170000 anti-D*0 pi0 SVS; #[Reconstructed PDG2011] -# -0.000320000 rho0 anti-D0 SVS; #[Reconstructed PDG2011] -0.00029 anti-D*0 rho0 SVV_HELAMP 0.283 0.0 0.932 0.0 0.228 0.0; -# -0.000202000 anti-D0 eta PHSP; #[Reconstructed PDG2011] -0.000200000 anti-D*0 eta SVS; #[Reconstructed PDG2011] -# -0.000125 anti-D0 eta' PHSP; -0.000123000 anti-D*0 eta' SVS; #[Reconstructed PDG2011] -# -0.000259000 omega anti-D0 SVS; #[Reconstructed PDG2011] -0.000330000 anti-D*0 omega SVV_HELAMP 0.283 0.0 0.932 0.0 0.228 0.0; #[Reconstructed PDG2011] -# -# PR LHCb : add ppbar mode -0.0000001 p+ anti-p- PHSP; -# -#October 26, 2004 - Lange -0.0016 D_s0*+ D- PHSP; -0.0015 D*- D_s0*+ SVS; -0.003500000 D_s1+ D- SVS; #[Reconstructed PDG2011] -0.009300000 D*- D_s1+ SVV_HELAMP 0.4904 0. 0.7204 0. 0.4904 0.; #[Reconstructed PDG2011] -# -# Feb 2009 -# -0.000880000 D- K+ anti-K*0 PHSP; #[Reconstructed PDG2011] -0.001290000 D*- K+ anti-K*0 PHSP; #[Reconstructed PDG2011] -# -# Feb 2009 -# -0.002800000 D- omega pi+ PHSP; #[Reconstructed PDG2011] -0.002890000 D*- omega pi+ PHSP; #[Reconstructed PDG2011] -# -# Feb 2009 -# -0.000490000 D- K0 pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 D*- K0 pi+ PHSP; #[Reconstructed PDG2011] -# -# Feb 2009 -# -0.00043 D'_s1+ D- PHSP; -0.00083 D'_s1+ D*- PHSP; -#### Already included above 0.0023 D_s1+ D*- PHSP; -# -# Lam_c X / Sigma_c X 4.0 % -# -#0.01000 anti-cd_0 ud_0 PYTHIA 63; -#0.03000 anti-cd_1 ud_1 PYTHIA 63; -0.010520663 anti-cd_0 ud_0 PYTHIA 63; -0.021041421 anti-cd_1 ud_1 PYTHIA 63; -# -# Xi_c X 2.5% -# -#0.00600 anti-cs_0 ud_0 PYTHIA 63; -#0.01800 anti-cs_1 ud_1 PYTHIA 63; -0.002869298 anti-cs_0 ud_0 PYTHIA 63; -0.005738595 anti-cs_1 ud_1 PYTHIA 63; -# -# -0.251926466 u anti-d anti-c d PYTHIA 23; -0.042944682 u anti-d anti-c d PYTHIA 43; -0.020084989 u anti-s anti-c d PYTHIA 43; -0.017215691 u anti-c anti-d d PYTHIA 23; -0.000860770 u anti-c anti-s d PYTHIA 23; -#lange - try to crank up the psi production.... -0.070775534 c anti-s anti-c d PYTHIA 43; -0.005738595 c anti-d anti-c d PYTHIA 43; -0.002869298 u anti-d anti-u d PYTHIA 23; -0.003825730 c anti-s anti-u d PYTHIA 23; -# JGS 11/5/02 This and similar a few lines above have been divided by two -# to solve a double-counting problem for this channel -0.001960649 u anti-u anti-d d PYTHIA 23; -0.000066973 d anti-d anti-d d PYTHIA 23; -0.000086068 s anti-s anti-d d PYTHIA 23; -0.002104095 u anti-u anti-s d PYTHIA 23; -0.001721541 d anti-d anti-s d PYTHIA 23; -0.001434649 s anti-s anti-s d PYTHIA 23; -0.004782163 anti-s d PYTHIA 91; -0.017600000 D*- pi+ pi+ pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.004700000 D*- pi+ pi+ pi+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000110000 D_s- pi+ K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000052000 anti-D0 K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000046000 anti-D0 K+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000006000 D0 K+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000036000 anti-D*0 K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.002700000 D*0 pi+ pi+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000890000 eta_c K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000871000 J/psi K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000310000 J/psi omega K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000009500 J/psi eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000019000 J/psi pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000460000 J/psi K0 pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000540000 J/psi K0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000800000 J/psi K*+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000660000 J/psi K*0 pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000170000 K0 D0 anti-D0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000620000 psi(2S) K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000140000 chi_c0 K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000011200 chi_c1 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000390000 chi_c1 K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000158000 chi_c1 K- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000011000 eta K_0*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000009600 eta K_2*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000016000 omega K_0*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000010100 omega K_2*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000004700 K0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000002700 f_2 K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000001400 f_0 K+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000007500 K_2*0 phi PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000007600 eta K0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000004600 K+ pi- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000019500 K0 pi+ pi- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000041000 K+ pi- pi0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000012400 K_2*0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000860 rho0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000002660 p+ anti-p- K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000001240 p+ anti-p- K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000003140 p+ anti-Lambda0 pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000004800 anti-Lambda0 Lambda0 K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000002500 anti-Lambda0 Lambda0 K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000011000 anti-Lambda0 Lambda0 D0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000114000 anti-D0 p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000028000 D_s- anti-Lambda0 p+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000103000 anti-D*0 p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001500000 D*- p+ anti-n0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000338000 D- p+ anti-p- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000500000 D*- p+ anti-p- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000020000 anti-Lambda_c- p+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000630000 anti-Lambda_c- p+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000120000 anti-Sigma_c*-- p+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000150000 anti-Sigma_c0 p+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000220000 anti-Sigma_c-- p+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -# -# -Decay B- -# Updated to PDG 2008 -# b -> c semileptonic -# -0.0569 D*0 e- anti-nu_e PHOTOS HQET2 1.207 0.920 1.406 0.853; # 1.0 * PDG2014 -0.0227 D0 e- anti-nu_e PHOTOS HQET2 1.185 1.081; # 1.0 * PDG2014 -0.0045 D_10 e- anti-nu_e PHOTOS ISGW2; # PDG2014 + D_10->D*+pi- = 2/3 -0.0037 D_0*0 e- anti-nu_e PHOTOS ISGW2; # PDG2014 + D_0*0->D+pi- = 2/3 -0.0040 D'_10 e- anti-nu_e PHOTOS ISGW2; # PDG2014 + Dprime_10->D*+pi- = 2/3 -0.0033 D_2*0 e- anti-nu_e PHOTOS ISGW2; # DG2014 + D_2*0->D+pi- = 0.459 -0.006100 D*+ pi- e- anti-nu_e PHOTOS GOITY_ROBERTS; # Same as 2011 -0.0003 D*0 pi0 e- anti-nu_e PHOTOS GOITY_ROBERTS; # same as 2011 -0.0021 D+ pi- e- anti-nu_e PHOTOS GOITY_ROBERTS; # PDG2014 (in principle covered by other decays, but there are some decays missing to inclusives) -0.0010 D0 pi0 e- anti-nu_e PHOTOS GOITY_ROBERTS; # same as 2011 -# -# For muonic decays do same as for electrons -0.0569 D*0 mu- anti-nu_mu PHOTOS HQET2 1.207 0.920 1.406 0.853; -0.0227 D0 mu- anti-nu_mu PHOTOS HQET2 1.185 1.081; -0.0045 D_10 mu- anti-nu_mu PHOTOS ISGW2; -0.0037 D_0*0 mu- anti-nu_mu PHOTOS ISGW2; -0.0040 D'_10 mu- anti-nu_mu PHOTOS ISGW2; -0.0033 D_2*0 mu- anti-nu_mu PHOTOS ISGW2; -0.006100 D*+ pi- mu- anti-nu_mu PHOTOS GOITY_ROBERTS; -0.0003 D*0 pi0 mu- anti-nu_mu PHOTOS GOITY_ROBERTS; -0.0021 D+ pi- mu- anti-nu_mu PHOTOS GOITY_ROBERTS; -0.0010 D0 pi0 mu- anti-nu_mu PHOTOS GOITY_ROBERTS; -# -# b -> c tau nu -# -0.020000000 D*0 tau- anti-nu_tau ISGW2; #[Reconstructed PDG2011] -0.007000000 D0 tau- anti-nu_tau ISGW2; #[Reconstructed PDG2011] -0.0013 D_10 tau- anti-nu_tau ISGW2; -0.0013 D_0*0 tau- anti-nu_tau ISGW2; -0.0020 D'_10 tau- anti-nu_tau ISGW2; -0.0020 D_2*0 tau- anti-nu_tau ISGW2; -# -# b -> u l nu -# -# NOTE: Do NOT CHANGE any BFs without using the corresponding set of -# hybrid weights (and vice versa). -# This will need check whether we get correct inclusive q2 dependence - -0.00007800 pi0 e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.00003800 eta e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.00015800 rho0 e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.00011900 omega e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.000230 eta' e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.000000 D(2S)0 e- anti-nu_e PHOTOS ISGW2; -0.000000 D*(2S)0 e- anti-nu_e PHOTOS ISGW2; -0.001948 Xu0 e- anti-nu_e VUB 4.8 1.29 0.22 20 0.30 0.54 1.20 0.95 1.26 0.78 1.34 0.98 1.41 0.91 1.48 1.23 1.55 1.36 1.61 1.39 1.67 1.38 1.73 1.43 1.79 1.41 1.84 1.42 1.90 1.45 1.95 1.40 2.00 1.42 2.50 1.31 3.00 1.36 3.50 1.15 4.00 1.01 4.50 1.51; -# -# For muons do same as for electrons -0.00007800 pi0 mu- anti-nu_mu PHOTOS ISGW2; -0.00003800 eta mu- anti-nu_mu PHOTOS ISGW2; -0.00015800 rho0 mu- anti-nu_mu PHOTOS ISGW2; -0.00011900 omega mu- anti-nu_mu PHOTOS ISGW2; -0.000230 eta' mu- anti-nu_mu PHOTOS ISGW2; -0.000000 D(2S)0 mu- anti-nu_mu PHOTOS ISGW2; -0.000000 D*(2S)0 mu- anti-nu_mu PHOTOS ISGW2; -0.001948 Xu0 mu- anti-nu_mu VUB 4.8 1.29 0.22 20 0.30 0.54 1.20 0.95 1.26 0.78 1.34 0.98 1.41 0.91 1.48 1.23 1.55 1.36 1.61 1.39 1.67 1.38 1.73 1.43 1.79 1.41 1.84 1.42 1.90 1.45 1.95 1.40 2.00 1.42 2.50 1.31 3.00 1.36 3.50 1.15 4.00 1.01 4.50 1.51; -# -0.000030 pi0 tau- anti-nu_tau ISGW2; -0.000012 eta tau- anti-nu_tau ISGW2; -0.000042 rho0 tau- anti-nu_tau ISGW2; -0.000042 omega tau- anti-nu_tau ISGW2; -0.000018 eta' tau- anti-nu_tau ISGW2; -0.000046 a_10 tau- anti-nu_tau ISGW2; -0.000027 b_10 tau- anti-nu_tau ISGW2; -0.000004 a_00 tau- anti-nu_tau ISGW2; -0.000002 f_0 tau- anti-nu_tau ISGW2; -0.000002 f'_0 tau- anti-nu_tau ISGW2; -0.000023 f_1 tau- anti-nu_tau ISGW2; -0.000023 f'_1 tau- anti-nu_tau ISGW2; -0.000013 h_1 tau- anti-nu_tau ISGW2; -0.000013 h'_1 tau- anti-nu_tau ISGW2; -0.000020 f_2 tau- anti-nu_tau ISGW2; -0.000020 f'_2 tau- anti-nu_tau ISGW2; -0.000000 D(2S)0 tau- anti-nu_tau ISGW2; -0.000000 D*(2S)0 tau- anti-nu_tau ISGW2; -# -# -# -# b->u hadronic -# Ref. [B1]: -# -0.000016000 D_s- pi0 PHSP; #[Reconstructed PDG2011] -0.000020 D_s*- pi0 SVS; -# -0.000028 rho0 D_s- SVS; -0.000028 D_s*- rho0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; - -# -# b-> s gamma -# -0.000042100 K*- gamma HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -#0.0000135 K_1- gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000065 K'_1- gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000128 K'*- gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000166 K_2*- gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000017 K''*- gamma HELAMP 1.0 0.0 1.0 0.0; -0.0003118 anti-Xsu gamma BTOXSGAMMA 2 ; -# -0.000000550 K- e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.000001550 K*- e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.0000050 anti-Xsu e+ e- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; -0.000000520 K- mu+ mu- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.000001160 K*- mu+ mu- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.0000025 anti-Xsu mu+ mu- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; -0.0000001 K- tau+ tau- PHOTOS BTOSLLBALL; -0.0000002 K*- tau+ tau- PHOTOS BTOSLLBALL; -0.0000002 anti-Xsu tau+ tau- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; -# -# b -> l nu -# -0.000180000 tau- anti-nu_tau SLN; #[Reconstructed PDG2011] -0.000000 mu- anti-nu_mu PHOTOS SLN; -0.000000 e- anti-nu_e PHOTOS SLN; -# -#------------------------------------------------------------------------------ -# 2- and 3-body modes revised Feb.2005 Markus Cristinziani, SLAC -#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv -# -# Exclusive hadronic b->u -# -0.000026 pi- pi0 pi0 CB3PI-P00 alpha; -0.000000 pi- pi- pi+ CB3PI-MPP alpha; -#### -0.000004070 eta pi- PHSP; #[Reconstructed PDG2011] -0.000002330 eta K- PHSP; #[Reconstructed PDG2011] -0.000019300 K*- eta SVS; #[Reconstructed PDG2011] -0.000007000 rho- eta SVS; #[Reconstructed PDG2011] -0.000002700 eta' pi- PHSP; #[Reconstructed PDG2011] -0.000070600 eta' K- PHSP; #[Reconstructed PDG2011] -0.000004900 K*- eta' SVS; #[Reconstructed PDG2011] -0.000008700 rho- eta' SVS; #[Reconstructed PDG2011] -0.000006900 omega pi- SVS; #[Reconstructed PDG2011] -0.000006700 omega K- SVS; #[Reconstructed PDG2011] -0.0000010 omega K*- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000015900 omega rho- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.0000000 phi pi- SVS; -0.000008300 phi K- SVS; #[Reconstructed PDG2011] -#2-body modes from Jim Olsen -# (K_S0 K- and K_L0 K- -> 1x10^-6, Jim Olsen - Mar 27, 2001) -# (pi- pi0 -> 5x10^-6 and K- pi0 -> 11x10^-6, Jim Olsen - Mar 27, 2001) -# PR LHCb 04/08/2004 Split into Ks/KL -0.000000 anti-K0 pi- PHSP; -0.000011550 K_S0 pi- PHSP; #[Reconstructed PDG2011] -0.000011550 K_L0 pi- PHSP; #[Reconstructed PDG2011] -0.000001360 K0 K- PHSP; #[Reconstructed PDG2011] -0.000005700 pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000012900 K- pi0 PHSP; #[Reconstructed PDG2011] -# -# 3-body John Back (jback@slac.stanford.edu) - Oct 15, 2002 -# JGS intersperses modes with pi0->eta,eta' -# B- modes -# -# rho0 3-body modes -0.000008300 rho0 pi- SVS; #[Reconstructed PDG2011] -0.000003700 rho0 K- SVS; #[Reconstructed PDG2011] -# -# rho- 3-body modes -0.000008000 rho- anti-K0 SVS; #[Reconstructed PDG2011] -0.000010900 rho- pi0 SVS; #[Reconstructed PDG2011] -# -# rho(1450) 3-body modes -0.0000022 rho(2S)0 pi- SVS; -0.000001 rho(2S)0 K- SVS; -# -# f0,a0(980) 3-body modes -0.000001 f_0 pi- PHSP; -0.0000092 f_0 K- PHSP; -0.000001 a_0- anti-K0 PHSP; -0.000001 a_00 K- PHSP; -0.000001 a_00 pi- PHSP; -0.000001 a_0- pi0 PHSP; - -0.000001600 f_2 pi- PHSP; #[Reconstructed PDG2011] - -# -# K*(1430) 3-body modes -0.000045000 anti-K_0*0 pi- PHSP; #[Reconstructed PDG2011] -0.000001 K_0*0 K- PHSP; -0.000002 K_0*- pi0 PHSP; -0.000002 K_0*- K0 PHSP; -# -# K*-(892) 3-body modes -0.000006900 K*- pi0 SVS; #[Reconstructed PDG2011] -0.0000030 K*- K0 SVS; -# -# -# -# Non-resonant 3-body left-overs -# Most modes are set at 1e-6 -# -# pi-pi+pi-: high mass + f0(400-1200) = (1+1)e-6 -#0402270.000002 pi- pi+ pi- PHSP; -# -# K- pi+ pi-: high mass + f0(400-1200) = (5+5)e-6 -0.000000000 K- pi+ pi- PHSP; #[Reconstructed PDG2011] -# -# K- K+ pi-: just non-resonant -0.000005000 K- K+ pi- PHSP; #[Reconstructed PDG2011] -# -# K- K+ K-: high mass structure near 1500 + non-res: total - phiK = 30 - 4 -0.000025400 K- K+ K- PHSP; #[Reconstructed PDG2011] -# -# -# K-K-pi+: suppressed mode (1e-7) -0.0000001 K- K- pi+ PHSP; -# K+pi-pi-: suppressed mode (1e-7) -0.0000001 K+ pi- pi- PHSP; -# -# -# K- K0 pi0 -0.000001 K- K0 pi0 PHSP; -0.000001 K- K0 eta PHSP; -0.000001 K- K0 eta' PHSP; -# -# pi- anti-K0 pi0 -0.000001 pi- anti-K0 pi0 PHSP; -0.000001 pi- anti-K0 eta PHSP; -0.000001 pi- anti-K0 eta' PHSP; -# -# pi- pi0 pi0 -#0402270.000001 pi- pi0 pi0 PHSP; -0.000001 pi- pi0 eta PHSP; -0.000001 pi- pi0 eta' PHSP; -0.000001 pi- eta eta PHSP; -0.000001 pi- eta eta' PHSP; -# -# K- pi0 pi0 -0.000001 K- pi0 pi0 PHSP; -0.000001 K- pi0 eta PHSP; -0.000001 K- pi0 eta' PHSP; -0.000001 K- eta eta PHSP; -0.000001 K- eta eta' PHSP; -0.000001 K- eta' eta' PHSP; -# -# K- anti-K0 K0: 4*BF(K+KsKs) (4 is a guess) -0.000046 K- anti-K0 K0 PHSP; -# -# pi- anti-K0 K0 -0.000001 pi- anti-K0 K0 PHSP; -# -#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -# 2- and 3-body modes revised Feb.2005 Markus Cristinziani, SLAC -#--------------------------------------------------------------------------- -# -#4-body modes from Andrei Gritsan -#--- 4-body rho-rho, rho-pi-pi, pi-pi-pi-pi -------------------------- -# PR LHCb 22 Apr 2004 Set long. pol. for rho rho -0.000024000 rho- rho0 SVV_HELAMP 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000010 rho0 pi- pi0 PHSP; -0.000005 rho0 pi- eta PHSP; -0.000002 rho0 pi- eta' PHSP; -0.000010 omega pi- pi0 PHSP; -0.000005 omega pi- eta PHSP; -0.000002 omega pi- eta' PHSP; -0.000010 rho- pi- pi+ PHSP; -# PR LHCb Add rho+ pi- pi- -0.000010 rho+ pi- pi- PHSP; -0.000010 rho- pi0 pi0 PHSP; -0.000005 rho- pi0 eta PHSP; -0.000002 rho- eta eta PHSP; -0.000002 rho- pi0 eta' PHSP; -0.000010 pi+ pi- pi- pi0 PHSP; -0.000005 pi+ pi- pi- eta PHSP; -0.000002 pi+ pi- pi- eta' PHSP; -0.000010 pi- pi0 pi0 pi0 PHSP; -0.000005 pi- eta pi0 pi0 PHSP; -0.000002 pi- eta eta pi0 PHSP; -0.000002 pi- eta' pi0 pi0 PHSP; -0.000001 pi- eta' eta pi0 PHSP; -0.000020000 a_10 pi- SVS; #[Reconstructed PDG2011] -0.000026000 a_1- pi0 SVS; #[Reconstructed PDG2011] -0.0000067 b_10 pi- SVS; -0.000010 b_1- pi0 SVS; -0.000010 rho- f_0 SVS; -0.000010 rho- a_00 SVS; -0.000002 rho0 a_0- SVS; -0.000010 f_0 pi- pi0 PHSP; -0.000001 a_00 pi- pi0 PHSP; -0.000001 a_0- pi0 pi0 PHSP; -0.000001 a_0+ pi- pi- PHSP; -#--- 4-body rho-K*, rho-pi-K, K*-pi-pi, pi-pi-pi-K ------------------- -0.000009200 rho- anti-K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000010 rho0 K*- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000010 pi- pi0 anti-K*0 PHSP; -0.000005 pi- eta anti-K*0 PHSP; -0.000069800 pi+ pi- K*- PHSP; #[Reconstructed PDG2011] -0.000010 pi0 pi0 K*- PHSP; -0.000005 pi0 eta K*- PHSP; -0.000002 eta eta K*- PHSP; -0.000002 pi0 eta' K*- PHSP; -0.000001 eta eta' K*- PHSP; -0.000010 rho- anti-K0 pi0 PHSP; -0.000005 rho- anti-K0 eta PHSP; -0.000002 rho- anti-K0 eta' PHSP; -0.000010 rho- K- pi+ PHSP; -0.000010 rho+ K- pi- PHSP; -0.000005 rho0 anti-K0 pi- PHSP; -0.000005 rho0 K- pi0 PHSP; -0.000002 rho0 K- eta PHSP; -0.000001 rho0 K- eta' PHSP; -0.000005 omega anti-K0 pi- PHSP; -0.000005 omega K- pi0 PHSP; -0.000002 omega K- eta PHSP; -0.000001 omega K- eta' PHSP; -0.000010 pi+ pi- pi- anti-K0 PHSP; -0.000010 pi- pi0 pi0 anti-K0 PHSP; -0.000005 pi- eta pi0 anti-K0 PHSP; -0.000002 pi- eta eta anti-K0 PHSP; -0.000010 pi+ pi- pi0 K- PHSP; -0.000005 pi+ pi- eta K- PHSP; -0.000010 pi0 pi0 pi0 K- PHSP; -0.000005 pi0 pi0 eta K- PHSP; -0.000002 pi0 eta eta K- PHSP; -0.000002 pi0 pi0 eta' K- PHSP; -0.000001 pi0 eta eta' K- PHSP; -0.000010 rho- anti-K_0*0 PHSP; -0.000006 rho0 K_0*- PHSP; -0.000010 pi- pi0 anti-K_0*0 PHSP; -0.000010 pi0 pi0 K_0*- PHSP; -0.000005200 K*- f_0 SVS; #[Reconstructed PDG2011] -0.000010 a_10 K- SVS; -0.000035000 a_1- anti-K0 SVS; #[Reconstructed PDG2011] -0.0000091 b_10 K- SVS; -0.000010 b_1- anti-K0 SVS; -0.000005 K*- a_00 SVS; -0.000005 anti-K*0 a_0- SVS; -#--- 4-body K*-K*, rho-K-K, K*-K-pi, phi-pi-pi, pi-pi-K-K ------------ -0.000001 K*0 K*- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000001 phi rho- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000001 phi pi- pi0 PHSP; -0.0000005 phi pi- eta PHSP; -0.0000002 phi pi- eta' PHSP; -0.000001 K+ K- rho- PHSP; -0.000001 K0 anti-K0 rho- PHSP; -0.000001 K0 K- rho0 PHSP; -0.000001 K0 K- omega PHSP; -0.000001 K+ K- pi- pi0 PHSP; -0.0000005 K+ K- pi- eta PHSP; -0.0000002 K+ K- pi- eta' PHSP; -0.000001 K0 anti-K0 pi- pi0 PHSP; -0.0000005 K0 anti-K0 pi- eta PHSP; -0.0000002 K0 anti-K0 pi- eta' PHSP; -0.000001 K0 K- pi+ pi- PHSP; -0.000001 K0 K- pi0 pi0 PHSP; -0.0000005 K0 K- pi0 eta PHSP; -0.0000002 K0 K- eta eta PHSP; -0.0000002 K0 K- pi0 eta' PHSP; -0.0000001 K0 K- eta eta' PHSP; -0.000001 K*+ K- pi- PHSP; -0.000001 K*- K+ pi- PHSP; -0.000001 K*0 anti-K0 pi- PHSP; -0.000001 K0 anti-K*0 pi- PHSP; -0.000001 K- K*0 pi0 PHSP; -0.0000005 K- K*0 eta PHSP; -0.0000002 K- K*0 eta' PHSP; -0.000001 K*- K0 pi0 PHSP; -0.0000005 K*- K0 eta PHSP; -0.0000002 K*- K0 eta' PHSP; -#--- 4-body phi-K*, phi-K-pi, K-K-K*, pi-K-K-K ----------------------- -0.000010000 phi K*- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000010 phi anti-K0 pi- PHSP; -0.000010 phi K- pi0 PHSP; -0.000005 phi K- eta PHSP; -0.000002 phi K- eta' PHSP; -0.000026000 K- K+ K*- PHSP; #[Reconstructed PDG2011] -0.000010 K- K*+ K- PHSP; -0.000010 K- K*0 anti-K0 PHSP; -0.000010 K- K0 anti-K*0 PHSP; -0.000010 K0 K*- anti-K0 PHSP; -0.000010 K+ K- K- pi0 PHSP; -0.000005 K+ K- K- eta PHSP; -0.000002 K+ K- K- eta' PHSP; -0.000010 K+ K- anti-K0 pi- PHSP; -0.000010 K0 anti-K0 K- pi0 PHSP; -0.000005 K0 anti-K0 K- eta PHSP; -0.000002 K0 anti-K0 K- eta' PHSP; -0.000010 K0 anti-K0 anti-K0 pi- PHSP; -0.000007000 phi K_0*- PHSP; #[Reconstructed PDG2011] -0.000010 K- K+ K_0*- PHSP; -0.000010 K- K- K_0*+ PHSP; -0.000010 K- anti-K_0*0 K0 PHSP; -0.000010 K- K_0*0 anti-K0 PHSP; -0.000002 phi K'_1- PHSP; -0.000002 K- K+ K'_1- PHSP; -#--- 4-body phi-phi, phi-K-K, K-K-K-K -------------------------------- -0.000001 phi K0 K- PHSP; -0.000001 K+ K- K- K0 PHSP; -0.000001 K0 anti-K0 K0 K- PHSP; -# -#5-body modes from Jim Smith - 1/30/05 -#--- 5-body rho-rho-pi, rho-pi-pi-pi, pi-pi-pi-pi-pi ------------------- -0.000010 rho0 rho0 pi- PHSP; -0.000010 rho- rho0 pi0 PHSP; -0.000005 rho- rho0 eta PHSP; -0.000002 rho- rho0 eta' PHSP; -0.000010 rho+ rho- pi- PHSP; -0.000010 omega rho0 pi- PHSP; -0.000010 omega rho- pi0 PHSP; -0.000005 omega rho- eta PHSP; -0.000002 omega rho- eta' PHSP; -0.000002 rho0 pi+ pi- pi- PHSP; -0.000002 rho0 pi- pi0 pi0 PHSP; -0.000001 rho0 pi- eta pi0 PHSP; -0.000001 rho0 pi- eta' pi0 PHSP; -0.000002 omega pi- pi0 pi0 PHSP; -0.000001 omega pi- eta pi0 PHSP; -0.000001 omega pi- eta' pi0 PHSP; -0.000002 rho+ pi- pi- pi0 PHSP; -0.000001 rho+ pi- pi- eta PHSP; -0.000001 rho+ pi- pi- eta' PHSP; -0.000002 rho- pi+ pi- pi0 PHSP; -0.000001 rho- pi+ pi- eta PHSP; -0.000001 rho- pi+ pi- eta' PHSP; -0.000002 rho- pi0 pi0 pi0 PHSP; -0.000001 rho- pi0 eta pi0 PHSP; -0.000001 rho- eta eta pi0 PHSP; -0.000001 rho- pi0 eta' pi0 PHSP; -0.000001 pi+ pi- pi- pi0 pi0 PHSP; -0.000001 pi+ pi- pi- eta pi0 PHSP; -0.000001 pi+ pi- pi- eta' pi0 PHSP; -0.000001 pi- pi0 pi0 pi0 pi0 PHSP; -0.000001 pi- eta pi0 pi0 pi0 PHSP; -0.000001 pi- eta' pi0 pi0 pi0 PHSP; -0.000010 a_1- rho0 PHSP; -0.000010 a_1- omega PHSP; -0.000010 a_1- f_0 PHSP; -0.000010 a_10 pi- pi0 PHSP; -0.000005 a_10 pi- eta PHSP; -0.000002 a_10 pi- eta' PHSP; -0.000010 a_1+ pi- pi- PHSP; -0.000010 a_1- pi+ pi- PHSP; -0.000010 a_1- pi0 pi0 PHSP; -0.000005 a_1- pi0 eta PHSP; -0.000002 a_1- pi0 eta' PHSP; -0.000010 rho- f_0 pi0 PHSP; -0.000005 rho- f_0 eta PHSP; -0.000002 rho- f_0 eta' PHSP; -0.000010 rho0 f_0 pi- PHSP; -0.000010 omega f_0 pi- PHSP; -0.000010 rho- a_00 pi0 PHSP; -0.000005 rho- a_00 eta PHSP; -0.000002 rho- a_00 eta' PHSP; -0.000010 rho+ a_0- pi- PHSP; -0.000010 rho0 a_0- pi0 PHSP; -0.000005 rho0 a_0- eta PHSP; -0.000002 rho0 a_0- eta' PHSP; -0.000002 f_0 pi+ pi- pi- PHSP; -0.000002 f_0 pi- pi0 pi0 PHSP; -0.000001 f_0 pi- pi0 eta PHSP; -0.000001 f_0 pi- pi0 eta' PHSP; -0.000001 a_00 pi- pi0 pi0 PHSP; -0.000001 a_0- pi0 pi0 pi0 PHSP; -0.000001 a_0+ pi- pi- pi0 PHSP; -#--- 5-body rho-K*pi, rho-2pi-K, K*-3pi, 4pi-K ------------------- -0.000010 rho- K*- pi+ PHSP; -0.000010 rho+ K*- pi- PHSP; -0.000010 rho- anti-K*0 pi0 PHSP; -0.000005 rho- anti-K*0 eta PHSP; -0.000002 rho- anti-K*0 eta' PHSP; -0.000010 rho0 anti-K*0 pi- PHSP; -0.000010 rho0 K*- pi0 PHSP; -0.000005 rho0 K*- eta PHSP; -0.000002 rho0 K*- eta' PHSP; -0.000010 omega anti-K*0 pi- PHSP; -0.000010 omega K*- pi0 PHSP; -0.000005 omega K*- eta PHSP; -0.000002 omega K*- eta' PHSP; -0.000010 pi+ pi- anti-K*0 pi- PHSP; -0.000010 pi- pi0 anti-K*0 pi0 PHSP; -0.000005 pi- eta anti-K*0 pi0 PHSP; -0.000002 pi- eta' anti-K*0 pi0 PHSP; -0.000010 pi- pi+ K*- pi0 PHSP; -0.000005 pi- pi+ K*- eta PHSP; -0.000002 pi- pi+ K*- eta' PHSP; -0.000010 pi0 pi0 K*- pi0 PHSP; -0.000005 pi0 eta K*- pi0 PHSP; -0.000002 eta eta K*- pi0 PHSP; -0.000002 pi0 eta' K*- pi0 PHSP; -0.000001 eta eta' K*- pi0 PHSP; -0.000010 rho- anti-K0 pi+ pi- PHSP; -0.000010 rho- anti-K0 pi0 pi0 PHSP; -0.000005 rho- anti-K0 eta pi0 PHSP; -0.000002 rho- anti-K0 eta' pi0 PHSP; -0.000010 rho- K- pi+ pi0 PHSP; -0.000010 rho+ K- pi- pi0 PHSP; -0.000010 rho+ anti-K0 pi- pi- PHSP; -0.000010 rho0 anti-K0 pi- pi0 PHSP; -0.000010 rho0 K- pi0 pi0 PHSP; -0.000005 rho0 K- eta pi0 PHSP; -0.000002 rho0 K- eta' pi0 PHSP; -0.000010 omega anti-K0 pi- pi0 PHSP; -0.000010 omega K- pi0 pi0 PHSP; -0.000005 omega K- eta pi0 PHSP; -0.000002 omega K- eta' pi0 PHSP; -0.000002 pi- pi- pi+ anti-K0 pi0 PHSP; -0.000001 pi- pi- pi+ anti-K0 eta PHSP; -0.000001 pi- pi- pi+ anti-K0 eta' PHSP; -0.000002 pi- pi0 pi0 anti-K0 pi0 PHSP; -0.000001 pi- eta pi0 anti-K0 pi0 PHSP; -0.000001 pi- eta eta anti-K0 pi0 PHSP; -0.000002 pi+ pi- pi+ K- pi- PHSP; -0.000002 pi+ pi- pi0 K- pi0 PHSP; -0.000001 pi+ pi- eta K- pi0 PHSP; -0.000001 pi+ pi- eta' K- pi0 PHSP; -0.000002 pi0 pi0 pi0 K- pi0 PHSP; -0.000001 pi0 pi0 eta K- pi0 PHSP; -0.000001 pi0 eta eta K- pi0 PHSP; -0.000001 pi0 pi0 eta' K- pi0 PHSP; -0.000001 pi0 eta eta' K- pi0 PHSP; -0.000010 rho0 anti-K_0*0 pi- PHSP; -0.000010 rho- anti-K_0*0 pi0 PHSP; -0.000005 rho- anti-K_0*0 eta PHSP; -0.000002 rho- anti-K_0*0 eta' PHSP; -0.000010 rho- K_0*- pi+ PHSP; -0.000010 rho0 K_0*- pi0 PHSP; -0.000005 rho0 K_0*- eta PHSP; -0.000002 rho0 K_0*- eta' PHSP; -0.000010 pi- pi- anti-K_0*0 pi+ PHSP; -0.000010 pi- pi0 anti-K_0*0 pi0 PHSP; -0.000005 pi- pi0 anti-K_0*0 eta PHSP; -0.000002 pi- pi0 anti-K_0*0 eta' PHSP; -0.000010 pi0 pi0 K_0*- pi0 PHSP; -0.000005 pi0 pi0 K_0*- eta PHSP; -0.000002 pi0 pi0 K_0*- eta' PHSP; -0.000010 anti-K*0 f_0 pi- PHSP; -0.000010 K*- f_0 pi0 PHSP; -0.000005 K*- f_0 eta PHSP; -0.000002 K*- f_0 eta' PHSP; -0.000020 a_10 K*- PHSP; -0.000010 a_10 K- pi0 PHSP; -0.000010 a_10 anti-K0 pi- PHSP; -0.000020 a_1- anti-K*0 PHSP; -0.000010 a_1- K- pi+ PHSP; -0.000010 a_1- anti-K0 pi0 PHSP; -0.000005 K*- a_00 pi0 PHSP; -0.000005 anti-K*0 a_0- pi0 PHSP; -#--- 5-body K*-K*pi,rho-K-Kpi, K*-K-2pi, phi-3pi, 3pi-K-K ------------ -0.000001 K*0 anti-K*0 pi- PHSP; -0.000001 K*0 K*- pi0 PHSP; -0.0000005 K*0 K*- eta PHSP; -0.0000002 K*0 K*- eta' PHSP; -0.000001 phi rho0 pi- PHSP; -0.000001 phi omega pi- PHSP; -0.000001 phi f_0 pi- PHSP; -0.000001 phi rho- pi0 PHSP; -0.0000005 phi rho- eta PHSP; -0.0000002 phi rho- eta' PHSP; -0.000001 phi pi+ pi- pi- PHSP; -0.000001 phi pi- pi0 pi0 PHSP; -0.0000005 phi pi- eta pi0 PHSP; -0.0000002 phi pi- eta' pi0 PHSP; -0.000001 K0 K- rho+ pi- PHSP; -0.000001 K0 K- rho- pi+ PHSP; -0.000001 K0 K- rho0 pi0 PHSP; -0.0000005 K0 K- rho0 eta PHSP; -0.0000002 K0 K- rho0 eta' PHSP; -0.000001 K0 K- omega pi0 PHSP; -0.000001 K0 K- f_0 pi0 PHSP; -0.000001 K+ K- rho0 pi- PHSP; -0.000001 K+ K- rho- pi0 PHSP; -0.0000005 K+ K- rho- eta PHSP; -0.0000002 K+ K- rho- eta' PHSP; -0.000001 K+ K- omega pi- PHSP; -0.000001 K0 anti-K0 rho0 pi- PHSP; -0.000001 K0 anti-K0 omega pi- PHSP; -0.000001 K0 anti-K0 f_0 pi- PHSP; -0.000001 K0 anti-K0 rho- pi0 PHSP; -0.0000005 K0 anti-K0 rho- eta PHSP; -0.0000002 K0 anti-K0 rho- eta' PHSP; -0.000001 anti-K0 K+ rho- pi- PHSP; -0.0000002 anti-K0 K+ pi- pi- pi0 PHSP; -0.0000001 anti-K0 K+ pi- pi- eta PHSP; -0.0000001 anti-K0 K+ pi- pi- eta' PHSP; -0.0000002 K+ K- pi+ pi- pi- PHSP; -0.0000002 K+ K- pi- pi0 pi0 PHSP; -0.0000001 K+ K- pi- eta pi0 PHSP; -0.0000001 K+ K- pi- eta' pi0 PHSP; -0.0000002 K0 anti-K0 pi+ pi- pi- PHSP; -0.0000002 K0 anti-K0 pi- pi0 pi0 PHSP; -0.0000001 K0 anti-K0 pi- eta pi0 PHSP; -0.0000001 K0 anti-K0 pi- eta' pi0 PHSP; -0.0000002 K0 K- pi+ pi- pi0 PHSP; -0.0000001 K0 K- pi+ pi- eta PHSP; -0.0000001 K0 K- pi+ pi- eta' PHSP; -0.0000002 K0 K- pi0 pi0 pi0 PHSP; -0.0000001 K0 K- pi0 eta pi0 PHSP; -0.0000001 K0 K- pi0 eta' pi0 PHSP; -0.000001 anti-K*0 K+ pi- pi- PHSP; -0.000001 K*+ anti-K0 pi- pi- PHSP; -0.000001 K*- K+ pi- pi0 PHSP; -0.000001 K*+ K- pi- pi0 PHSP; -0.000001 K*0 anti-K0 pi- pi0 PHSP; -0.000001 K0 anti-K*0 pi- pi0 PHSP; -0.000001 K- K*0 pi0 pi0 PHSP; -0.0000005 K- K*0 eta pi0 PHSP; -0.0000002 K- K*0 eta' pi0 PHSP; -0.000001 K*- K0 pi0 pi0 PHSP; -0.0000005 K*- K0 eta pi0 PHSP; -0.0000002 K*- K0 eta' pi0 PHSP; -#--- 5-body phi-K*-pi, phi-K-2pi, K-K-K*-pi, 2pi-K-K-K -------------------- -0.000010 phi K*- pi0 PHSP; -0.000010 phi K- rho0 PHSP; -0.000010 phi K- omega PHSP; -0.000010 phi K- f_0 PHSP; -0.000010 phi anti-K0 rho- PHSP; -0.000010 phi anti-K0 pi- pi0 PHSP; -0.000010 phi K- pi+ pi- PHSP; -0.000010 phi K- pi0 pi0 PHSP; -0.000005 phi K- eta pi0 PHSP; -0.000002 phi K- eta' pi0 PHSP; -0.000010 K+ K- K*- pi0 PHSP; -0.000010 K- K*+ K- pi0 PHSP; -0.000010 K- K*0 anti-K0 pi0 PHSP; -0.000010 K- K0 anti-K*0 pi0 PHSP; -0.000010 K0 K*- anti-K0 pi0 PHSP; -0.000010 K+ K- K- rho0 PHSP; -0.000010 K+ K- K- omega PHSP; -0.000010 K+ K- K- f_0 PHSP; -0.000010 K- K+ anti-K0 rho- PHSP; -0.000010 K- K- K+ pi0 pi0 PHSP; -0.000005 K- K- K+ eta pi0 PHSP; -0.000002 K- K- K+ eta' pi0 PHSP; -0.000010 K+ K- anti-K0 pi- pi0 PHSP; -0.000010 K0 anti-K0 K- pi0 pi0 PHSP; -0.000005 K0 anti-K0 K- eta pi0 PHSP; -0.000002 K0 anti-K0 K- eta' pi0 PHSP; -0.000010 K0 anti-K0 anti-K0 pi- pi0 PHSP; -0.000010 phi anti-K_0*0 pi- PHSP; -0.000010 phi K_0*- pi0 PHSP; -0.000005 phi K_0*- eta PHSP; -0.000002 phi K_0*- eta' PHSP; -0.000010 K- K+ K_0*- pi0 PHSP; -0.000005 K- K+ K_0*- eta PHSP; -0.000002 K- K+ K_0*- eta' PHSP; -0.000010 K- K- K_0*+ pi0 PHSP; -0.000005 K- K- K_0*+ eta PHSP; -0.000002 K- K- K_0*+ eta' PHSP; -0.000010 K- K+ anti-K_0*0 pi- PHSP; -0.000010 K- K- K_0*0 pi+ PHSP; -0.000010 anti-K0 anti-K0 K_0*0 pi- PHSP; -0.000010 K- anti-K_0*0 K0 pi0 PHSP; -0.000005 K- anti-K_0*0 K0 eta PHSP; -0.000002 K- anti-K_0*0 K0 eta' PHSP; -0.000010 K- K_0*0 anti-K0 pi0 PHSP; -0.000005 K- K_0*0 anti-K0 eta PHSP; -0.000002 K- K_0*0 anti-K0 eta' PHSP; -0.000002 phi anti-K'_10 pi- PHSP; -0.000002 phi K'_1- pi0 PHSP; -0.000001 phi K'_1- eta PHSP; -0.000001 phi K'_1- eta' PHSP; -0.000002 K- K+ anti-K'_10 pi- PHSP; -0.000002 K- K+ K'_1- pi0 PHSP; -0.000001 K- K+ K'_1- eta PHSP; -0.000001 K- K+ K'_1- eta' PHSP; -0.000002 K- K- K'_1+ pi0 PHSP; -0.000002 K- K- anti-K'_10 pi+ PHSP; -0.000002 K0 anti-K0 anti-K'_10 pi- PHSP; -0.000002 K0 anti-K0 K'_1- pi0 PHSP; -0.000001 K0 anti-K0 K'_1- eta PHSP; -0.000001 K0 anti-K0 K'_1- eta' PHSP; -0.000002 anti-K0 anti-K0 K'_10 pi- PHSP; -0.000002 K0 K0 K'_1- pi0 PHSP; -0.000001 K0 K0 K'_1- eta PHSP; -0.000001 K0 K0 K'_1- eta' PHSP; -0.000010 K- K0 anti-K'_10 pi0 PHSP; -0.000005 K- K0 anti-K'_10 eta PHSP; -0.000002 K- K0 anti-K'_10 eta' PHSP; -0.000010 K- K'_10 anti-K0 pi0 PHSP; -0.000005 K- K'_10 anti-K0 eta PHSP; -0.000002 K- K'_10 anti-K0 eta' PHSP; -#--- 5-body phi-phi-K, phi-phi-pi, phi-3K, phi-K-K-pi, 5K, 4K-pi ------------ -0.000004900 phi phi K- PHSP; #[Reconstructed PDG2011] -0.000001 phi phi pi- PHSP; -0.000001 phi K+ K- K- PHSP; -0.000001 phi K0 anti-K0 K- PHSP; -0.000001 phi K0 anti-K0 pi- PHSP; -0.000001 phi K0 K- pi0 PHSP; -0.000001 K+ K- K+ K- pi- PHSP; -0.000001 K+ K- K0 anti-K0 pi- PHSP; -0.000001 K+ K- K- K0 pi0 PHSP; -0.000001 K0 anti-K0 K0 K- pi0 PHSP; -#--- 6-body phi-phi-K*, phi-3Kpi, phi-K-K-2pi ------------ -0.000003 phi phi K*- PHSP; -0.000001 phi K+ K- K*- PHSP; -0.000001 phi K0 anti-K0 K*- PHSP; -0.000001 phi K0 K- K*0 PHSP; -0.000001 phi K+ K- K- pi0 PHSP; -0.000001 phi K+ K- anti-K0 pi- PHSP; -0.000001 phi K0 anti-K0 K- pi0 PHSP; -0.000001 phi K0 anti-K0 anti-K0 pi- PHSP; -0.000001 phi K0 K- K- pi+ PHSP; -#--- 6-body a1a1 ------------ -0.000050 a_1- a_10 PHSP; -# -# B -> cc= s sum = 1.92% -# -0.001014000 J/psi K- SVS; #[Reconstructed PDG2011] -0.001430000 J/psi K*- SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] -0.000049000 J/psi pi- SVS; #[Reconstructed PDG2011] -0.000050000 J/psi rho- SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] -0.0002 J/psi anti-K0 pi- PHSP; -0.0001 J/psi K- pi0 PHSP; -#rl0.0007 J/psi K- pi+ pi- PHSP; -#rl0.00035 J/psi K- pi0 pi0 PHSP; -#rl0.00035 J/psi anti-K0 pi- pi0 PHSP; -0.0001 J/psi K'_1- SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; -0.0005 J/psi K_2*- PHSP; -0.001800000 J/psi K_1- SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; #[Reconstructed PDG2011] -0.000052000 J/psi phi K- PHSP; #[Reconstructed PDG2011] -# -0.000646000 psi(2S) K- SVS; #[Reconstructed PDG2011] -0.000620000 psi(2S) K*- SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] -0.0004 psi(2S) anti-K0 pi- PHSP; -0.0002 psi(2S) K- pi0 PHSP; -0.001900000 psi(2S) K- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.0001 psi(2S) K- pi0 pi0 PHSP; -0.0001 psi(2S) anti-K0 pi- pi0 PHSP; -0.0004 psi(2S) K_1- PHSP; -# -0.000910000 eta_c K- PHSP; #[Reconstructed PDG2011] -0.001200000 K*- eta_c SVS; #[Reconstructed PDG2011] -0.0002 eta_c anti-K0 pi- PHSP; -0.0001 eta_c K- pi0 PHSP; -0.0002 eta_c K- pi+ pi- PHSP; -0.0001 eta_c K- pi0 pi0 PHSP; -0.0001 eta_c anti-K0 pi- pi0 PHSP; -# -0.000340000 eta_c(2S) K- PHSP; #[Reconstructed PDG2011] -0.00048 K*- eta_c(2S) SVS; -0.00008 eta_c(2S) anti-K0 pi- PHSP; -0.00005 eta_c(2S) K- pi0 PHSP; -0.00008 eta_c(2S) K- pi+ pi- PHSP; -0.00005 eta_c(2S) K- pi0 pi0 PHSP; -0.00005 eta_c(2S) anti-K0 pi- pi0 PHSP; -# -0.000133000 chi_c0 K- PHSP; #[Reconstructed PDG2011] -0.0004 K*- chi_c0 SVS; -0.0002 chi_c0 anti-K0 pi- PHSP; -0.0001 chi_c0 K- pi0 PHSP; -0.0002 chi_c0 K- pi+ pi- PHSP; -0.0001 chi_c0 K- pi0 pi0 PHSP; -0.0001 chi_c0 anti-K0 pi- pi0 PHSP; -# -0.000460000 chi_c1 K- SVS; #[Reconstructed PDG2011] -0.000300000 chi_c1 K*- SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; #[Reconstructed PDG2011] -0.0004 chi_c1 anti-K0 pi- PHSP; -0.0002 chi_c1 K- pi0 PHSP; -0.0004 chi_c1 K- pi+ pi- PHSP; -0.0002 chi_c1 K- pi0 pi0 PHSP; -0.0002 chi_c1 anti-K0 pi- pi0 PHSP; -# -0.00002 chi_c2 K- STS; -0.00002 chi_c2 K*- PHSP; -0.0002 chi_c2 anti-K0 pi- PHSP; -0.0001 chi_c2 K- pi0 PHSP; -0.0002 chi_c2 K- pi+ pi- PHSP; -0.0001 chi_c2 K- pi0 pi0 PHSP; -0.0001 chi_c2 anti-K0 pi- pi0 PHSP; -# -0.000490000 psi(3770) K- SVS; #[Reconstructed PDG2011] -0.0005 psi(3770) K*- PHSP; -0.0003 psi(3770) anti-K0 pi- PHSP; -0.0002 psi(3770) K- pi0 PHSP; -0.0002 psi(3770) K- pi+ pi- PHSP; -0.0001 psi(3770) K- pi0 pi0 PHSP; -0.0001 psi(3770) anti-K0 pi- pi0 PHSP; -0.0003 psi(3770) K_1- PHSP; -# -# b -> c (sc=) -> D Ds X Sum = 10% -# -0.010000000 D0 D_s- PHSP; #[Reconstructed PDG2011] -0.008200000 D*0 D_s- SVS; #[Reconstructed PDG2011] -0.007600000 D_s*- D0 SVS; #[Reconstructed PDG2011] -0.017100000 D_s*- D*0 SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; #[Reconstructed PDG2011] -0.0006 D'_10 D_s- SVS; -0.0012 D'_10 D_s*- SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; -0.0012 D_10 D_s- SVS; -0.0024 D_10 D_s*- SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; -0.0042 D_2*0 D_s- STS; -0.0040 D_2*0 D_s*- PHSP; -# -# -# SVV_HELAMP from factorization, recommendation -# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/168.html: -# -0.0036 D_s- D+ pi- PHSP; -0.0018 D_s- D0 pi0 PHSP; -0.0037 D_s*- D+ pi- PHSP; -0.0018 D_s*- D0 pi0 PHSP; -0.0033 D_s- D+ pi- pi0 PHSP; -0.0033 D_s- D0 pi- pi+ PHSP; -0.0008 D_s- D0 pi0 pi0 PHSP; -0.0033 D_s*- D+ pi- pi0 PHSP; -0.0033 D_s*- D0 pi- pi+ PHSP; -0.0008 D_s*- D0 pi0 pi0 PHSP; -# -# -# b -> c (sc=) -> D D= K X Sum = 8% -# update: Ref. [B1]: -# -0.0017 D0 D- anti-K0 PHSP; -0.0052 D0 D*- anti-K0 PHSP; -0.0031 D*0 D- anti-K0 PHSP; -0.007800000 D*0 D*- anti-K0 PHSP; #[Reconstructed PDG2011] -# External+internal W-emission amplitude -0.002100000 D0 anti-D0 K- PHSP; #[Reconstructed PDG2011] -0.0018 D*0 anti-D0 K- PHSP; -0.004700000 D0 anti-D*0 K- PHSP; #[Reconstructed PDG2011] -0.005300000 D*0 anti-D*0 K- PHSP; #[Reconstructed PDG2011] -# Internal W-emission amplitude (color suppressed modes) -0.0005 D- D+ K- PHSP; -0.0005 D*- D+ K- PHSP; -0.001500000 D- D*+ K- PHSP; #[Reconstructed PDG2011] -0.0015 D*- D*+ K- PHSP; -# -0.0025 D0 D- anti-K*0 PHSP; -0.0025 D*0 D- anti-K*0 PHSP; -0.0025 D0 D*- anti-K*0 PHSP; -0.0050 D*0 D*- anti-K*0 PHSP; -# -0.0025 D0 anti-D0 K*- PHSP; -0.0025 D*0 anti-D0 K*- PHSP; -0.0025 D0 anti-D*0 K*- PHSP; -0.0050 D*0 anti-D*0 K*- PHSP; -# -0.0005 D- D+ K*- PHSP; -0.0005 D*- D+ K*- PHSP; -0.0005 D- D*+ K*- PHSP; -0.0010 D*- D*+ K*- PHSP; -# -# B->D(*)D(*). See Ref [B1]: -# -0.000380000 D- D0 PHSP; #[Reconstructed PDG2011] -0.000390000 D*- D0 SVS; #[Reconstructed PDG2011] -0.000630000 D*0 D- SVS; #[Reconstructed PDG2011] -0.000810000 D*0 D*- SVV_HELAMP 0.47 0.0 0.96 0.0 0.56 0.0; #[Reconstructed PDG2011] - -# -# B -> D(*) X Exclusive Modes -# -0.005190000 D*0 pi- SVS; #[Reconstructed PDG2011] -0.004840000 D0 pi- PHSP; #[Reconstructed PDG2011] -0.013400000 rho- D0 SVS; #[Reconstructed PDG2011] -# D* rho HELAMP parameters taken from ICHEP 98-852. -0.009800000 D*0 rho- SVV_HELAMP 0.228 0.95 0.932 0.0 0.283 1.13; #[Reconstructed PDG2011] -# -0.0005 D0 pi0 pi- PHSP; -0.0005 D*0 pi0 pi- PHSP; -0.001070000 D+ pi- pi- PHSP; #[Reconstructed PDG2011] -0.001350000 D*+ pi- pi- PHSP; #[Reconstructed PDG2011] -# -# D a1 updated Ref. [B1]: -0.004000000 a_1- D0 SVS; #[Reconstructed PDG2011] -0.000200000 D0 rho0 pi- PHSP; #[Reconstructed PDG2011] -0.006800000 D0 pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -# -# SVV_HELAMP from factorization, recommendation -# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/168.html: -# updated Ref. [B1]: -# -# -0.019000000 D*0 a_1- SVV_HELAMP 0.200 0.0 0.866 0.0 0.458 0.0; #[Reconstructed PDG2011] -# -0.00150 D*0 rho0 pi- PHSP; -0.000500000 D*0 pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -# -0.0020 D+ rho- pi- PHSP; -0.0020 D+ pi0 pi- pi- PHSP; -0.0020 D*+ rho- pi- PHSP; -0.015000000 D*+ pi0 pi- pi- PHSP; #[Reconstructed PDG2011] -0.0005 D*0 rho- pi0 PHSP; -0.0005 D*0 pi- pi0 pi0 PHSP; -# -# B->D** pi and D** rho, recommendation -# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/151.html -# further update October 26, 2004 Lange -# -0.000876 D_10 pi- SVS; -0.0005 D'_10 pi- SVS; -0.00052 D_2*0 pi- STS; -0.0007 D_10 rho- PHSP; -0.0022 D'_10 rho- PHSP; -0.0038 D_2*0 rho- PHSP; -0.00061 D_0*0 pi- PHSP; -# -# -# B->DK, recommendation -# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/151.html: -# update: Ref [B1]: -# -0.000368000 D0 K- PHSP; #[Reconstructed PDG2011] -0.000421000 D*0 K- SVS; #[Reconstructed PDG2011] -0.000530000 K*- D0 SVS; #[Reconstructed PDG2011] -0.000810000 D*0 K*- SVV_HELAMP 0.228 0.0 0.932 0.0 0.283 0.0; #[Reconstructed PDG2011] -#October 26, 2004 Lange -0.0000005 D- pi0 PHSP; -0.0000005 D*- pi0 SVS; -0.000011 D- anti-K0 PHSP; -0.000006 D*- anti-K0 SVS; -# -#October 26, 2004 - Lange -0.00075 D0 D_s0*- PHSP; -0.0009 D*0 D_s0*- SVS; -0.003100000 D_s1- D0 SVS; #[Reconstructed PDG2011] -0.012000000 D*0 D_s1- SVV_HELAMP 0.4904 0.0 0.7204 0.0 0.4904 0.0; #[Reconstructed PDG2011] -# -# Feb 2009 -# -0.00055 D0 K- anti-K0 PHSP; -0.00075 D0 K- anti-K*0 PHSP; -0.001500000 D*0 K- anti-K*0 PHSP; #[Reconstructed PDG2011] -# -# Feb 2009 -# -0.002750000 D0 omega pi- PHSP; #[Reconstructed PDG2011] -0.004500000 D*0 omega pi- PHSP; #[Reconstructed PDG2011] -# -# Feb 2009 -# -0.00045 D0 D'_s1- PHSP; -0.00094 D*0 D'_s1- PHSP; -# -# Lam_c X / Sigma_c X 4.0 % -# -#0.04000 cd_1 anti-uu_1 PYTHIA 63; -0.032587684 cd_1 anti-uu_1 PYTHIA 63; -# -# Xi_c X 2.5% -# -#0.02400 cs_1 anti-uu_1 PYTHIA 63; -0.008887593 cs_1 anti-uu_1 PYTHIA 63; -# -# -0.214329978 anti-u d c anti-u PYTHIA 23; -0.040912464 anti-u d c anti-u PYTHIA 43; -0.022218888 anti-u s c anti-u PYTHIA 43; -#lange - try to crank up the psi production.... -0.073075460 anti-c s c anti-u PYTHIA 43; -0.003950000 anti-c d c anti-u PYTHIA 43; -0.002962500 anti-u d u anti-u PYTHIA 23; -0.003950000 anti-c s u anti-u PYTHIA 23; -# JGS 11/5/02 This and similar a few lines above have been divided by two -# to solve a double-counting problem for this channel -0.002024389 anti-u u d anti-u PYTHIA 23; -0.000069145 anti-d d d anti-u PYTHIA 23; -0.000088900 anti-s s d anti-u PYTHIA 23; -0.002172556 anti-u u s anti-u PYTHIA 23; -0.001777537 anti-d d s anti-u PYTHIA 23; -0.001481296 anti-s s s anti-u PYTHIA 23; -0.004937500 s anti-u PYTHIA 91; -# -#### -0.000550000 D0 K- K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000750000 D0 K- K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.018000000 D*0 pi+ pi- pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.005700000 D*0 pi- pi- pi- pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.002600000 D*+ pi- pi- pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000180000 D_s+ pi- K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000145000 D_s*+ pi- K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000011000 D_s+ K- K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001070000 J/psi K- pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000108000 J/psi eta K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000350000 J/psi omega K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000011800 J/psi anti-p- Lambda0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000025800 psi(2S) pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000020000 chi_c1 pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000018000 eta K_0*- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000009100 eta K_2*- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000024000 omega K_0*- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000021000 omega K_2*- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000010100 anti-K*0 pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000001070 f_2 K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000005600 anti-K_2*0 pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000001200 K*- anti-K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000006100 phi K_1- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000008400 phi K_2*- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000043000 K_1- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000007900 eta K- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000003500 phi K- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000007600 K- pi+ pi- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000020000 anti-K*0 pi- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000046000 anti-K0 pi- pi0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000014000 K_2*- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000980 rho- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000001620 anti-p- p+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000005900 anti-p- p+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000003600 anti-p- p+ K*- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000002500 anti-p- Lambda0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000003000 anti-p- Lambda0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000000 anti-p- Lambda0 pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000004800 anti-p- Lambda0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000002000 anti-p- Lambda0 f_2 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000003400 anti-Lambda0 Lambda0 K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000002200 anti-Lambda0 Lambda0 K*- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000280000 Lambda_c+ anti-p- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001800000 Lambda_c+ anti-p- pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.002300000 Lambda_c+ anti-p- pi- pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000035000 Sigma_c0 anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000440000 Sigma_c0 anti-p- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000440000 Sigma_c0 anti-p- pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000280000 Sigma_c++ anti-p- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay B+ -# Updated to PDG 2008 -# b -> c semileptonic -# -0.0569 anti-D*0 e+ nu_e PHOTOS HQET2 1.207 0.920 1.406 0.853; # For details see B- decay -0.0227 anti-D0 e+ nu_e PHOTOS HQET2 1.185 1.081; -0.0045 anti-D_10 e+ nu_e PHOTOS ISGW2; -0.0037 anti-D_0*0 e+ nu_e PHOTOS ISGW2; -0.0040 anti-D'_10 e+ nu_e PHOTOS ISGW2; -0.0033 anti-D_2*0 e+ nu_e PHOTOS ISGW2; -0.006100 D*- pi+ e+ nu_e PHOTOS GOITY_ROBERTS; -0.0006 anti-D*0 pi0 e+ nu_e PHOTOS GOITY_ROBERTS; -0.0021 D- pi+ e+ nu_e PHOTOS GOITY_ROBERTS; -0.0020 anti-D0 pi0 e+ nu_e PHOTOS GOITY_ROBERTS; - -# For muonic decays do same as for electrons -0.0569 anti-D*0 mu+ nu_mu PHOTOS HQET2 1.207 0.920 1.406 0.853; -0.0227 anti-D0 mu+ nu_mu PHOTOS HQET2 1.185 1.081; -0.0045 anti-D_10 mu+ nu_mu PHOTOS ISGW2; -0.0037 anti-D_0*0 mu+ nu_mu PHOTOS ISGW2; -0.0040 anti-D'_10 mu+ nu_mu PHOTOS ISGW2; -0.0033 anti-D_2*0 mu+ nu_mu PHOTOS ISGW2; -0.006100 D*- pi+ mu+ nu_mu PHOTOS GOITY_ROBERTS; -0.0006 anti-D*0 pi0 mu+ nu_mu PHOTOS GOITY_ROBERTS; -0.0021 D- pi+ mu+ nu_mu PHOTOS GOITY_ROBERTS; -0.0020 anti-D0 pi0 mu+ nu_mu PHOTOS GOITY_ROBERTS; -# -# b -> c tau nu -# -0.020000000 anti-D*0 tau+ nu_tau ISGW2; #[Reconstructed PDG2011] -0.007000000 anti-D0 tau+ nu_tau ISGW2; #[Reconstructed PDG2011] -0.0013 anti-D_10 tau+ nu_tau ISGW2; -0.0013 anti-D_0*0 tau+ nu_tau ISGW2; -0.0020 anti-D'_10 tau+ nu_tau ISGW2; -0.0020 anti-D_2*0 tau+ nu_tau ISGW2; -# -# b -> u l nu -# -# -# -# This will need check whether we get correct inclusive q2 dependence - -0.00007800 pi0 e+ nu_e PHOTOS ISGW2; # PDG2014 -0.00003800 eta e+ nu_e PHOTOS ISGW2; # PDG2014 -0.00015800 rho0 e+ nu_e PHOTOS ISGW2; # PDG2014 -0.00011900 omega e+ nu_e PHOTOS ISGW2; # PDG2014 -0.000230 eta' e+ nu_e PHOTOS ISGW2; # PDG2014 -0.000000 anti-D(2S)0 e+ nu_e PHOTOS ISGW2; -0.000000 anti-D*(2S)0 e+ nu_e PHOTOS ISGW2; -0.001948 Xu0 e+ nu_e VUB 4.8 1.29 0.22 20 0.30 0.54 1.20 0.95 1.26 0.78 1.34 0.98 1.41 0.91 1.48 1.23 1.55 1.36 1.61 1.39 1.67 1.38 1.73 1.43 1.79 1.41 1.84 1.42 1.90 1.45 1.95 1.40 2.00 1.42 2.50 1.31 3.00 1.36 3.50 1.15 4.00 1.01 4.50 1.51; -# -# For muons do same as for electrons -0.00007800 pi0 mu+ nu_mu PHOTOS ISGW2; -0.00003800 eta mu+ nu_mu PHOTOS ISGW2; -0.00015800 rho0 mu+ nu_mu PHOTOS ISGW2; -0.00011900 omega mu+ nu_mu PHOTOS ISGW2; -0.000230 eta' mu+ nu_mu PHOTOS ISGW2; -0.000000 anti-D(2S)0 mu+ nu_mu PHOTOS ISGW2; -0.000000 anti-D*(2S)0 mu+ nu_mu PHOTOS ISGW2; -0.0020454 Xu0 mu+ nu_mu VUB 4.8 1.29 0.22 20 0.30 0.54 1.20 0.95 1.26 0.78 1.34 0.98 1.41 0.91 1.48 1.23 1.55 1.36 1.61 1.39 1.67 1.38 1.73 1.43 1.79 1.41 1.84 1.42 1.90 1.45 1.95 1.40 2.00 1.42 2.50 1.31 3.00 1.36 3.50 1.15 4.00 1.01 4.50 1.51; -# -0.000030 pi0 tau+ nu_tau ISGW2; -0.000012 eta tau+ nu_tau ISGW2; -0.000042 rho0 tau+ nu_tau ISGW2; -0.000042 omega tau+ nu_tau ISGW2; -0.000018 eta' tau+ nu_tau ISGW2; -0.000046 a_10 tau+ nu_tau ISGW2; -0.000027 b_10 tau+ nu_tau ISGW2; -0.000004 a_00 tau+ nu_tau ISGW2; -0.000002 f_0 tau+ nu_tau ISGW2; -0.000002 f'_0 tau+ nu_tau ISGW2; -0.000023 f_1 tau+ nu_tau ISGW2; -0.000023 f'_1 tau+ nu_tau ISGW2; -0.000013 h_1 tau+ nu_tau ISGW2; -0.000013 h'_1 tau+ nu_tau ISGW2; -0.000020 f_2 tau+ nu_tau ISGW2; -0.000020 f'_2 tau+ nu_tau ISGW2; -0.000000 anti-D(2S)0 tau+ nu_tau ISGW2; -0.000000 anti-D*(2S)0 tau+ nu_tau ISGW2; -# -# -# -# b->u hadronic -# Ref. [B1]: -# -0.000016000 D_s+ pi0 PHSP; #[Reconstructed PDG2011] -0.000020 D_s*+ pi0 SVS; -# -0.000028 rho0 D_s+ SVS; -0.000028 D_s*+ rho0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; - -# -# b-> s gamma -# -0.000042100 K*+ gamma HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -#0.0000135 K_1+ gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000065 K'_1+ gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000128 K'*+ gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000166 K_2*+ gamma HELAMP 1.0 0.0 1.0 0.0; -#0.0000017 K''*+ gamma HELAMP 1.0 0.0 1.0 0.0; -0.0003118 Xsu gamma BTOXSGAMMA 2; -# -0.000000550 K+ e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.000001550 K*+ e+ e- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.0000050 Xsu e+ e- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; -0.000000520 K+ mu+ mu- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.000001160 K*+ mu+ mu- PHOTOS BTOSLLBALL; #[Reconstructed PDG2011] -0.0000025 Xsu mu+ mu- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; -0.0000001 K+ tau+ tau- PHOTOS BTOSLLBALL; -0.0000002 K*+ tau+ tau- PHOTOS BTOSLLBALL; -0.0000002 Xsu tau+ tau- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; -# -# b -> l nu -# -0.000180000 tau+ nu_tau SLN; #[Reconstructed PDG2011] -0.000000 mu+ nu_mu PHOTOS SLN; -0.000000 e+ nu_e PHOTOS SLN; -# -#------------------------------------------------------------------------------ -# 2- and 3-body modes revised Feb.2005 Markus Cristinziani, SLAC -#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv -# -# Exclusive hadronic b->u -# -0.000026 pi+ pi0 pi0 CB3PI-P00 alpha; -0.000000 pi+ pi+ pi- CB3PI-MPP alpha; -#### -0.000004070 eta pi+ PHSP; #[Reconstructed PDG2011] -0.000002330 eta K+ PHSP; #[Reconstructed PDG2011] -0.000019300 K*+ eta SVS; #[Reconstructed PDG2011] -0.000007000 rho+ eta SVS; #[Reconstructed PDG2011] -0.000002700 eta' pi+ PHSP; #[Reconstructed PDG2011] -0.000070600 eta' K+ PHSP; #[Reconstructed PDG2011] -0.000004900 K*+ eta' SVS; #[Reconstructed PDG2011] -0.000008700 rho+ eta' SVS; #[Reconstructed PDG2011] -0.000006900 omega pi+ SVS; #[Reconstructed PDG2011] -0.000006700 omega K+ SVS; #[Reconstructed PDG2011] -0.0000010 omega K*+ SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000015900 omega rho+ SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.0000000 phi pi+ SVS; -0.000008300 phi K+ SVS; #[Reconstructed PDG2011] -#2-body modes from Jim Olsen -# (K_S0 K- and K_L0 K- -> 1x10^-6, Jim Olsen - Mar 27, 2001) -# (pi- pi0 -> 5x10^-6 and K- pi0 -> 11x10^-6, Jim Olsen - Mar 27, 2001) -# PR LHCb 04/08/04 split into KS/KL -0.000000 K0 pi+ PHSP; -0.000011550 K_S0 pi+ PHSP; #[Reconstructed PDG2011] -0.000011550 K_L0 pi+ PHSP; #[Reconstructed PDG2011] -0.000001360 anti-K0 K+ PHSP; #[Reconstructed PDG2011] -0.000005700 pi+ pi0 PHSP; #[Reconstructed PDG2011] -0.000012900 K+ pi0 PHSP; #[Reconstructed PDG2011] -# -# 3-body John Back (jback@slac.stanford.edu) - Oct 15, 2002 -# JGS intersperses modes with pi0->eta,eta' -# B+ modes -# -# rho0 3-body modes -0.000008300 rho0 pi+ SVS; #[Reconstructed PDG2011] -0.000003700 rho0 K+ SVS; #[Reconstructed PDG2011] -# -# rho+ 3-body modes -0.000010900 rho+ pi0 SVS; #[Reconstructed PDG2011] -0.000008000 rho+ K0 SVS; #[Reconstructed PDG2011] -# -# rho(1450) 3-body modes -0.0000022 rho(2S)0 pi+ SVS; -0.000001 rho(2S)0 K+ SVS; -# -# f0(980) 3-body modes -0.000001 f_0 pi+ PHSP; -0.0000092 f_0 K+ PHSP; -0.000001 a_0+ K0 PHSP; -0.000001 a_00 K+ PHSP; -0.000001 a_00 pi+ PHSP; -0.000001 a_0+ pi0 PHSP; - -0.000001600 f_2 pi+ PHSP; #[Reconstructed PDG2011] - -# -# K*0(892) 3-body modes -0.000045000 K_0*0 pi+ PHSP; #[Reconstructed PDG2011] -0.0000010 anti-K_0*0 K+ PHSP; -0.000002 K_0*+ pi0 PHSP; -0.000002 K_0*+ anti-K0 PHSP; -# -# K*+(892) 3-body modes -0.000006900 K*+ pi0 SVS; #[Reconstructed PDG2011] -0.000003 K*+ anti-K0 SVS; -# -# -# Non-resonant 3-body left-overs -# Most modes are set at 1e-6 -# -# pi+pi-pi+: high mass + f0(400-1200) = (1+1)e-6 -#0402270.000002 pi+ pi- pi+ PHSP; -# -# K+ pi- pi+: high mass + f0(400-1200) = (5+5)e-6 -0.000000000 K+ pi- pi+ PHSP; #[Reconstructed PDG2011] -# -# K+ K- pi+: just non-resonant -0.000005000 K+ K- pi+ PHSP; #[Reconstructed PDG2011] -# -# K+K-K+: high mass structure near 1500 + non-res: total - phiK = 30-4 -0.000025400 K+ K- K+ PHSP; #[Reconstructed PDG2011] -# -# -# K+K+pi-: suppressed mode (1e-7) -0.0000001 K+ K+ pi- PHSP; -# K-pi+pi+: suppressed mode (1e-7) -0.0000001 K- pi+ pi+ PHSP; -# -# -# K+ anti-K0 pi0 -0.000001 K+ anti-K0 pi0 PHSP; -0.000001 K+ anti-K0 eta PHSP; -0.000001 K+ anti-K0 eta' PHSP; -# -# pi+ K0 pi0 -0.000001 pi+ K0 pi0 PHSP; -0.000001 pi+ K0 eta PHSP; -0.000001 pi+ K0 eta' PHSP; -# -# pi+ pi0 pi0 -#0402270.000001 pi+ pi0 pi0 PHSP; -0.000001 pi+ pi0 eta PHSP; -0.000001 pi+ pi0 eta' PHSP; -0.000001 pi+ eta eta PHSP; -0.000001 pi+ eta eta' PHSP; -# -# K+ pi0 pi0 -0.000001 K+ pi0 pi0 PHSP; -0.000001 K+ pi0 eta PHSP; -0.000001 K+ pi0 eta' PHSP; -0.000001 K+ eta eta PHSP; -0.000001 K+ eta eta' PHSP; -0.000001 K+ eta' eta' PHSP; -# -# K+ K0 anti-K0: 4*BF(K+KsKs) (4 is a guess) -0.0000460 K+ K0 anti-K0 PHSP; -# -# pi+ K0 anti-K0 -0.000001 pi+ K0 anti-K0 PHSP; -# -#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -# 2- and 3-body modes revised Feb.2005 Markus Cristinziani, SLAC -#--------------------------------------------------------------------------- -# -#4-body modes from Andrei Gritsan -#--- 4-body rho-rho, rho-pi-pi, pi-pi-pi-pi -------------------------- -# PR LHCb 22 Apr 2004 Set long. pol. for rho rho -0.000024000 rho+ rho0 SVV_HELAMP 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000010 rho0 pi+ pi0 PHSP; -0.000005 rho0 pi+ eta PHSP; -0.000002 rho0 pi+ eta' PHSP; -0.000010 omega pi+ pi0 PHSP; -0.000005 omega pi+ eta PHSP; -0.000002 omega pi+ eta' PHSP; -0.000010 rho+ pi+ pi- PHSP; -# PR Add rho- pi+ pi+ -0.000010 rho- pi+ pi+ PHSP; -0.000010 rho+ pi0 pi0 PHSP; -0.000005 rho+ pi0 eta PHSP; -0.000002 rho+ eta eta PHSP; -0.000002 rho+ pi0 eta' PHSP; -0.000010 pi- pi+ pi+ pi0 PHSP; -0.000005 pi- pi+ pi+ eta PHSP; -0.000002 pi- pi+ pi+ eta' PHSP; -0.000010 pi+ pi0 pi0 pi0 PHSP; -0.000005 pi+ eta pi0 pi0 PHSP; -0.000002 pi+ eta eta pi0 PHSP; -0.000002 pi+ eta' pi0 pi0 PHSP; -0.000001 pi+ eta' eta pi0 PHSP; -0.000020000 a_10 pi+ SVS; #[Reconstructed PDG2011] -0.000026000 a_1+ pi0 SVS; #[Reconstructed PDG2011] -0.0000067 b_10 pi+ SVS; -0.000010 b_1+ pi0 SVS; -0.000010 rho+ f_0 SVS; -0.000010 rho+ a_00 SVS; -0.000002 rho0 a_0+ SVS; -0.000010 f_0 pi+ pi0 PHSP; -0.000001 a_00 pi+ pi0 PHSP; -0.000001 a_0+ pi0 pi0 PHSP; -0.000001 a_0- pi+ pi+ PHSP; -#--- 4-body rho-K*, a1-K, rho-pi-K, K*-pi-pi, pi-pi-pi-K ------------------- -0.000009200 rho+ K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000010 rho0 K*+ SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000010 pi+ pi0 K*0 PHSP; -0.000005 pi+ eta K*0 PHSP; -0.000069800 pi- pi+ K*+ PHSP; #[Reconstructed PDG2011] -0.000010 pi0 pi0 K*+ PHSP; -0.000005 pi0 eta K*+ PHSP; -0.000002 eta eta K*+ PHSP; -0.000002 pi0 eta' K*+ PHSP; -0.000001 eta eta' K*+ PHSP; -0.000010 rho+ K0 pi0 PHSP; -0.000005 rho+ K0 eta PHSP; -0.000002 rho+ K0 eta' PHSP; -0.000010 rho+ K+ pi- PHSP; -0.000010 rho- K+ pi+ PHSP; -0.000005 rho0 K0 pi+ PHSP; -0.000005 rho0 K+ pi0 PHSP; -0.000002 rho0 K+ eta PHSP; -0.000001 rho0 K+ eta' PHSP; -0.000005 omega K0 pi+ PHSP; -0.000005 omega K+ pi0 PHSP; -0.000002 omega K+ eta PHSP; -0.000001 omega K+ eta' PHSP; -0.000010 pi+ pi+ pi- K0 PHSP; -0.000010 pi+ pi0 pi0 K0 PHSP; -0.000005 pi+ eta pi0 K0 PHSP; -0.000002 pi+ eta eta K0 PHSP; -0.000010 pi+ pi- pi0 K+ PHSP; -0.000005 pi+ pi- eta K+ PHSP; -0.000010 pi0 pi0 pi0 K+ PHSP; -0.000005 pi0 pi0 eta K+ PHSP; -0.000002 pi0 eta eta K+ PHSP; -0.000002 pi0 pi0 eta' K+ PHSP; -0.000001 pi0 eta eta' K+ PHSP; -0.000010 rho+ K_0*0 PHSP; -0.000006 rho0 K_0*+ PHSP; -0.000010 pi+ pi0 K_0*0 PHSP; -0.000010 pi0 pi0 K_0*+ PHSP; -0.000005200 K*+ f_0 SVS; #[Reconstructed PDG2011] -0.000010 a_10 K+ SVS; -0.000035000 a_1+ K0 SVS; #[Reconstructed PDG2011] -0.0000091 b_10 K+ SVS; -0.000010 b_1+ K0 SVS; -0.000005 K*+ a_00 SVS; -0.000005 K*0 a_0+ SVS; -#--- 4-body K*-K*, rho-K-K, K*-K-pi, phi-pi-pi, pi-pi-K-K ------------ -0.000001 anti-K*0 K*+ SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000001 phi rho+ SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; -0.000001 phi pi+ pi0 PHSP; -0.0000005 phi pi+ eta PHSP; -0.0000002 phi pi+ eta' PHSP; -0.000001 K+ K- rho+ PHSP; -0.000001 K0 anti-K0 rho+ PHSP; -0.000001 anti-K0 K+ rho0 PHSP; -0.000001 anti-K0 K+ omega PHSP; -0.000001 K+ K- pi+ pi0 PHSP; -0.0000005 K+ K- pi+ eta PHSP; -0.0000002 K+ K- pi+ eta' PHSP; -0.000001 K0 anti-K0 pi+ pi0 PHSP; -0.0000005 K0 anti-K0 pi+ eta PHSP; -0.0000002 K0 anti-K0 pi+ eta' PHSP; -0.000001 anti-K0 K+ pi+ pi- PHSP; -0.000001 anti-K0 K+ pi0 pi0 PHSP; -0.0000005 anti-K0 K+ pi0 eta PHSP; -0.0000002 anti-K0 K+ eta eta PHSP; -0.0000002 anti-K0 K+ pi0 eta' PHSP; -0.0000001 anti-K0 K+ eta eta' PHSP; -0.000001 K*+ K- pi+ PHSP; -0.000001 K*- K+ pi+ PHSP; -0.000001 K*0 anti-K0 pi+ PHSP; -0.000001 K0 anti-K*0 pi+ PHSP; -0.000001 K+ anti-K*0 pi0 PHSP; -0.0000005 K+ anti-K*0 eta PHSP; -0.0000002 K+ anti-K*0 eta' PHSP; -0.000001 K*+ anti-K0 pi0 PHSP; -0.0000005 K*+ anti-K0 eta PHSP; -0.0000002 K*+ anti-K0 eta' PHSP; -#--- 4-body phi-K*, phi-K-pi, K-K-K*, pi-K-K-K ----------------------- -0.000010000 phi K*+ SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000010 phi K0 pi+ PHSP; -0.000010 phi K+ pi0 PHSP; -0.000005 phi K+ eta PHSP; -0.000002 phi K+ eta' PHSP; -0.000026000 K- K+ K*+ PHSP; #[Reconstructed PDG2011] -0.000010 K+ K*- K+ PHSP; -0.000010 K+ K*0 anti-K0 PHSP; -0.000010 K+ K0 anti-K*0 PHSP; -0.000010 K0 K*+ anti-K0 PHSP; -0.000010 K+ K- K+ pi0 PHSP; -0.000005 K+ K- K+ eta PHSP; -0.000002 K+ K- K+ eta' PHSP; -0.000010 K+ K- K0 pi+ PHSP; -0.000010 K0 anti-K0 K+ pi0 PHSP; -0.000005 K0 anti-K0 K+ eta PHSP; -0.000002 K0 anti-K0 K+ eta' PHSP; -0.000010 K0 anti-K0 K0 pi+ PHSP; -0.000007000 phi K_0*+ PHSP; #[Reconstructed PDG2011] -0.000010 K- K+ K_0*+ PHSP; -0.000010 K+ K+ K_0*- PHSP; -0.000010 K+ anti-K_0*0 K0 PHSP; -0.000010 K+ K_0*0 anti-K0 PHSP; -0.000002 phi K'_1+ PHSP; -0.000002 K- K+ K'_1+ PHSP; -#--- 4-body phi-phi, phi-K-K, K-K-K-K -------------------------------- -0.000001 phi anti-K0 K+ PHSP; -0.000001 K+ K- K+ anti-K0 PHSP; -0.000001 K0 anti-K0 anti-K0 K+ PHSP; -# -#5-body modes from Jim Smith - 1/30/05 -#--- 5-body rho-rho-pi, rho-pi-pi-pi, pi-pi-pi-pi-pi ------------------- -0.000010 rho0 rho0 pi+ PHSP; -0.000010 rho+ rho0 pi0 PHSP; -0.000005 rho+ rho0 eta PHSP; -0.000002 rho+ rho0 eta' PHSP; -0.000010 rho+ rho- pi+ PHSP; -0.000010 omega rho0 pi+ PHSP; -0.000010 omega rho+ pi0 PHSP; -0.000005 omega rho+ eta PHSP; -0.000002 omega rho+ eta' PHSP; -0.000002 rho0 pi+ pi- pi+ PHSP; -0.000002 rho0 pi+ pi0 pi0 PHSP; -0.000001 rho0 pi+ eta pi0 PHSP; -0.000001 rho0 pi+ eta' pi0 PHSP; -0.000002 omega pi+ pi0 pi0 PHSP; -0.000001 omega pi+ eta pi0 PHSP; -0.000001 omega pi+ eta' pi0 PHSP; -0.000002 rho- pi+ pi+ pi0 PHSP; -0.000001 rho- pi+ pi+ eta PHSP; -0.000001 rho- pi+ pi+ eta' PHSP; -0.000002 rho+ pi+ pi- pi0 PHSP; -0.000001 rho+ pi+ pi- eta PHSP; -0.000001 rho+ pi+ pi- eta' PHSP; -0.000002 rho+ pi0 pi0 pi0 PHSP; -0.000001 rho+ pi0 eta pi0 PHSP; -0.000001 rho+ eta eta pi0 PHSP; -0.000001 rho+ pi0 eta' pi0 PHSP; -0.000001 pi- pi+ pi+ pi0 pi0 PHSP; -0.000001 pi- pi+ pi+ eta pi0 PHSP; -0.000001 pi- pi+ pi+ eta' pi0 PHSP; -0.000001 pi+ pi0 pi0 pi0 pi0 PHSP; -0.000001 pi+ eta pi0 pi0 pi0 PHSP; -0.000001 pi+ eta' pi0 pi0 pi0 PHSP; -0.000010 a_1+ rho0 PHSP; -0.000010 a_1+ omega PHSP; -0.000010 a_1+ f_0 PHSP; -0.000010 a_10 pi+ pi0 PHSP; -0.000005 a_10 pi+ eta PHSP; -0.000002 a_10 pi+ eta' PHSP; -0.000010 a_1- pi+ pi+ PHSP; -0.000010 a_1+ pi+ pi- PHSP; -0.000010 a_1+ pi0 pi0 PHSP; -0.000005 a_1+ pi0 eta PHSP; -0.000002 a_1+ pi0 eta' PHSP; -0.000010 rho+ f_0 pi0 PHSP; -0.000005 rho+ f_0 eta PHSP; -0.000002 rho+ f_0 eta' PHSP; -0.000010 rho0 f_0 pi+ PHSP; -0.000010 omega f_0 pi+ PHSP; -0.000010 rho+ a_00 pi0 PHSP; -0.000005 rho+ a_00 eta PHSP; -0.000002 rho+ a_00 eta' PHSP; -0.000010 rho- a_0+ pi+ PHSP; -0.000010 rho0 a_0+ pi0 PHSP; -0.000005 rho0 a_0+ eta PHSP; -0.000002 rho0 a_0+ eta' PHSP; -0.000002 f_0 pi+ pi- pi+ PHSP; -0.000002 f_0 pi+ pi0 pi0 PHSP; -0.000001 f_0 pi+ pi0 eta PHSP; -0.000001 f_0 pi+ pi0 eta' PHSP; -0.000001 a_00 pi+ pi0 pi0 PHSP; -0.000001 a_0+ pi0 pi0 pi0 PHSP; -0.000001 a_0- pi+ pi+ pi0 PHSP; -#--- 5-body rho-K*pi, rho-2pi-K, K*-3pi, 4pi-K ------------------- -0.000010 rho+ K*+ pi- PHSP; -0.000010 rho- K*+ pi+ PHSP; -0.000010 rho+ K*0 pi0 PHSP; -0.000005 rho+ K*0 eta PHSP; -0.000002 rho+ K*0 eta' PHSP; -0.000010 rho0 K*0 pi+ PHSP; -0.000010 rho0 K*+ pi0 PHSP; -0.000005 rho0 K*+ eta PHSP; -0.000002 rho0 K*+ eta' PHSP; -0.000010 omega K*0 pi+ PHSP; -0.000010 omega K*+ pi0 PHSP; -0.000005 omega K*+ eta PHSP; -0.000002 omega K*+ eta' PHSP; -0.000010 pi+ pi- K*0 pi+ PHSP; -0.000010 pi+ pi0 K*0 pi0 PHSP; -0.000005 pi+ eta K*0 pi0 PHSP; -0.000002 pi+ eta' K*0 pi0 PHSP; -0.000010 pi- pi+ K*+ pi0 PHSP; -0.000005 pi- pi+ K*+ eta PHSP; -0.000002 pi- pi+ K*+ eta' PHSP; -0.000010 pi0 pi0 K*+ pi0 PHSP; -0.000005 pi0 eta K*+ pi0 PHSP; -0.000002 eta eta K*+ pi0 PHSP; -0.000002 pi0 eta' K*+ pi0 PHSP; -0.000001 eta eta' K*+ pi0 PHSP; -0.000010 rho+ K0 pi+ pi- PHSP; -0.000010 rho+ K0 pi0 pi0 PHSP; -0.000005 rho+ K0 eta pi0 PHSP; -0.000002 rho+ K0 eta' pi0 PHSP; -0.000010 rho+ K+ pi- pi0 PHSP; -0.000010 rho- K+ pi+ pi0 PHSP; -0.000010 rho- K0 pi+ pi+ PHSP; -0.000010 rho0 K0 pi+ pi0 PHSP; -0.000010 rho0 K+ pi0 pi0 PHSP; -0.000005 rho0 K+ eta pi0 PHSP; -0.000002 rho0 K+ eta' pi0 PHSP; -0.000010 omega K0 pi+ pi0 PHSP; -0.000010 omega K+ pi0 pi0 PHSP; -0.000005 omega K+ eta pi0 PHSP; -0.000002 omega K+ eta' pi0 PHSP; -0.000002 pi+ pi+ pi- K0 pi0 PHSP; -0.000001 pi+ pi+ pi- K0 eta PHSP; -0.000001 pi+ pi+ pi- K0 eta' PHSP; -0.000002 pi+ pi0 pi0 K0 pi0 PHSP; -0.000001 pi+ eta pi0 K0 pi0 PHSP; -0.000001 pi+ eta eta K0 pi0 PHSP; -0.000002 pi+ pi- pi+ K+ pi- PHSP; -0.000002 pi+ pi- pi0 K+ pi0 PHSP; -0.000001 pi+ pi- eta K+ pi0 PHSP; -0.000001 pi+ pi- eta' K+ pi0 PHSP; -0.000002 pi0 pi0 pi0 K+ pi0 PHSP; -0.000001 pi0 pi0 eta K+ pi0 PHSP; -0.000001 pi0 eta eta K+ pi0 PHSP; -0.000001 pi0 pi0 eta' K+ pi0 PHSP; -0.000001 pi0 eta eta' K+ pi0 PHSP; -0.000010 rho0 K_0*0 pi+ PHSP; -0.000010 rho+ K_0*0 pi0 PHSP; -0.000005 rho+ K_0*0 eta PHSP; -0.000002 rho+ K_0*0 eta' PHSP; -0.000010 rho+ K_0*+ pi- PHSP; -0.000010 rho0 K_0*+ pi0 PHSP; -0.000005 rho0 K_0*+ eta PHSP; -0.000002 rho0 K_0*+ eta' PHSP; -0.000010 pi+ pi+ K_0*0 pi- PHSP; -0.000010 pi+ pi0 K_0*0 pi0 PHSP; -0.000005 pi+ pi0 K_0*0 eta PHSP; -0.000002 pi+ pi0 K_0*0 eta' PHSP; -0.000010 pi0 pi0 K_0*+ pi0 PHSP; -0.000005 pi0 pi0 K_0*+ eta PHSP; -0.000002 pi0 pi0 K_0*+ eta' PHSP; -0.000010 K*0 f_0 pi+ PHSP; -0.000010 K*+ f_0 pi0 PHSP; -0.000005 K*+ f_0 eta PHSP; -0.000002 K*+ f_0 eta' PHSP; -0.000020 a_10 K*+ PHSP; -0.000010 a_10 K+ pi0 PHSP; -0.000010 a_10 K0 pi+ PHSP; -0.000020 a_1+ K*0 PHSP; -0.000010 a_1+ K+ pi- PHSP; -0.000010 a_1+ K0 pi0 PHSP; -0.000005 K*+ a_00 pi0 PHSP; -0.000005 K*0 a_0+ pi0 PHSP; -#--- 5-body K*-K*pi,rho-K-Kpi, K*-K-2pi, phi-3pi, 3pi-K-K ------------ -0.000001 K*0 anti-K*0 pi+ PHSP; -0.000001 anti-K*0 K*+ pi0 PHSP; -0.0000005 anti-K*0 K*+ eta PHSP; -0.0000002 anti-K*0 K*+ eta' PHSP; -0.000001 phi rho0 pi+ PHSP; -0.000001 phi omega pi+ PHSP; -0.000001 phi f_0 pi+ PHSP; -0.000001 phi rho+ pi0 PHSP; -0.0000005 phi rho+ eta PHSP; -0.0000002 phi rho+ eta' PHSP; -0.000001 phi pi+ pi- pi+ PHSP; -0.000001 phi pi+ pi0 pi0 PHSP; -0.0000005 phi pi+ eta pi0 PHSP; -0.0000002 phi pi+ eta' pi0 PHSP; -0.000001 anti-K0 K+ rho+ pi- PHSP; -0.000001 anti-K0 K+ rho- pi+ PHSP; -0.000001 anti-K0 K+ rho0 pi0 PHSP; -0.0000005 anti-K0 K+ rho0 eta PHSP; -0.0000002 anti-K0 K+ rho0 eta' PHSP; -0.000001 anti-K0 K+ omega pi0 PHSP; -0.000001 anti-K0 K+ f_0 pi0 PHSP; -0.000001 K+ K- rho0 pi+ PHSP; -0.000001 K+ K- rho+ pi0 PHSP; -0.0000005 K+ K- rho+ eta PHSP; -0.0000002 K+ K- rho+ eta' PHSP; -0.000001 K+ K- omega pi+ PHSP; -0.000001 K0 anti-K0 rho0 pi+ PHSP; -0.000001 K0 anti-K0 omega pi+ PHSP; -0.000001 K0 anti-K0 f_0 pi+ PHSP; -0.000001 K0 anti-K0 rho+ pi0 PHSP; -0.0000005 K0 anti-K0 rho+ eta PHSP; -0.0000002 K0 anti-K0 rho+ eta' PHSP; -0.000001 K0 K- rho+ pi+ PHSP; -0.0000002 K0 K- pi+ pi+ pi0 PHSP; -0.0000001 K0 K- pi+ pi+ eta PHSP; -0.0000001 K0 K- pi+ pi+ eta' PHSP; -0.0000002 K+ K- pi+ pi- pi+ PHSP; -0.0000002 K+ K- pi+ pi0 pi0 PHSP; -0.0000001 K+ K- pi+ eta pi0 PHSP; -0.0000001 K+ K- pi+ eta' pi0 PHSP; -0.0000002 K0 anti-K0 pi+ pi- pi+ PHSP; -0.0000002 K0 anti-K0 pi+ pi0 pi0 PHSP; -0.0000001 K0 anti-K0 pi+ eta pi0 PHSP; -0.0000001 K0 anti-K0 pi+ eta' pi0 PHSP; -0.0000002 anti-K0 K+ pi+ pi- pi0 PHSP; -0.0000001 anti-K0 K+ pi+ pi- eta PHSP; -0.0000001 anti-K0 K+ pi+ pi- eta' PHSP; -0.0000002 anti-K0 K+ pi0 pi0 pi0 PHSP; -0.0000001 anti-K0 K+ pi0 eta pi0 PHSP; -0.0000001 anti-K0 K+ pi0 eta' pi0 PHSP; -0.000001 K*0 K- pi+ pi+ PHSP; -0.000001 K*- K0 pi+ pi+ PHSP; -0.000001 K*+ K- pi+ pi0 PHSP; -0.000001 K*- K+ pi+ pi0 PHSP; -0.000001 K*0 anti-K0 pi+ pi0 PHSP; -0.000001 K0 anti-K*0 pi+ pi0 PHSP; -0.000001 K+ anti-K*0 pi0 pi0 PHSP; -0.0000005 K+ anti-K*0 eta pi0 PHSP; -0.0000002 K+ anti-K*0 eta' pi0 PHSP; -0.000001 K*+ anti-K0 pi0 pi0 PHSP; -0.0000005 K*+ anti-K0 eta pi0 PHSP; -0.0000002 K*+ anti-K0 eta' pi0 PHSP; -#--- 5-body phi-K*-pi, phi-K-2pi, K-K-K*-pi, 2pi-K-K-K -------------------- -0.000010 phi K*+ pi0 PHSP; -0.000010 phi K+ rho0 PHSP; -0.000010 phi K+ omega PHSP; -0.000010 phi K+ f_0 PHSP; -0.000010 phi K0 rho+ PHSP; -0.000010 phi K0 pi+ pi0 PHSP; -0.000010 phi K+ pi+ pi- PHSP; -0.000010 phi K+ pi0 pi0 PHSP; -0.000005 phi K+ eta pi0 PHSP; -0.000002 phi K+ eta' pi0 PHSP; -0.000010 K- K+ K*+ pi0 PHSP; -0.000010 K+ K*- K+ pi0 PHSP; -0.000010 K+ K*0 anti-K0 pi0 PHSP; -0.000010 K+ K0 anti-K*0 pi0 PHSP; -0.000010 K0 K*+ anti-K0 pi0 PHSP; -0.000010 K- K+ K+ rho0 PHSP; -0.000010 K- K+ K+ omega PHSP; -0.000010 K- K+ K+ f_0 PHSP; -0.000010 K- K+ K0 rho+ PHSP; -0.000010 K+ K- K+ pi0 pi0 PHSP; -0.000005 K+ K- K+ eta pi0 PHSP; -0.000002 K+ K- K+ eta' pi0 PHSP; -0.000010 K+ K- K0 pi+ pi0 PHSP; -0.000010 K0 anti-K0 K+ pi0 pi0 PHSP; -0.000005 K0 anti-K0 K+ eta pi0 PHSP; -0.000002 K0 anti-K0 K+ eta' pi0 PHSP; -0.000010 K0 anti-K0 K0 pi+ pi0 PHSP; -0.000010 phi K_0*0 pi+ PHSP; -0.000010 phi K_0*+ pi0 PHSP; -0.000005 phi K_0*+ eta PHSP; -0.000002 phi K_0*+ eta' PHSP; -0.000010 K- K+ K_0*+ pi0 PHSP; -0.000005 K- K+ K_0*+ eta PHSP; -0.000002 K- K+ K_0*+ eta' PHSP; -0.000010 K+ K+ K_0*- pi0 PHSP; -0.000005 K+ K+ K_0*- eta PHSP; -0.000002 K+ K+ K_0*- eta' PHSP; -0.000010 K- K+ K_0*0 pi+ PHSP; -0.000010 K+ K+ anti-K_0*0 pi- PHSP; -0.000010 K0 K0 anti-K_0*0 pi+ PHSP; -0.000010 K+ anti-K_0*0 K0 pi0 PHSP; -0.000005 K+ anti-K_0*0 K0 eta PHSP; -0.000002 K+ anti-K_0*0 K0 eta' PHSP; -0.000010 K+ K_0*0 anti-K0 pi0 PHSP; -0.000005 K+ K_0*0 anti-K0 eta PHSP; -0.000002 K+ K_0*0 anti-K0 eta' PHSP; -0.000002 phi K'_10 pi+ PHSP; -0.000002 phi K'_1+ pi0 PHSP; -0.000001 phi K'_1+ eta PHSP; -0.000001 phi K'_1+ eta' PHSP; -0.000002 K- K+ K'_10 pi+ PHSP; -0.000002 K- K+ K'_1+ pi0 PHSP; -0.000001 K- K+ K'_1+ eta PHSP; -0.000001 K- K+ K'_1+ eta' PHSP; -0.000002 K+ K+ K'_1- pi0 PHSP; -0.000002 K+ K+ anti-K'_10 pi- PHSP; -0.000002 K0 anti-K0 K'_10 pi+ PHSP; -0.000002 K0 anti-K0 K'_1+ pi0 PHSP; -0.000001 K0 anti-K0 K'_1+ eta PHSP; -0.000001 K0 anti-K0 K'_1+ eta' PHSP; -0.000002 K0 K0 anti-K'_10 pi+ PHSP; -0.000002 anti-K0 anti-K0 K'_1+ pi0 PHSP; -0.000001 anti-K0 anti-K0 K'_1+ eta PHSP; -0.000001 anti-K0 anti-K0 K'_1+ eta' PHSP; -0.000010 K+ K0 anti-K'_10 pi0 PHSP; -0.000005 K+ K0 anti-K'_10 eta PHSP; -0.000002 K+ K0 anti-K'_10 eta' PHSP; -0.000010 K+ K'_10 anti-K0 pi0 PHSP; -0.000005 K+ K'_10 anti-K0 eta PHSP; -0.000002 K+ K'_10 anti-K0 eta' PHSP; -#--- 5-body phi-phi-K, phi-phi-pi, phi-3K, phi-K-K-pi, 5K, 4K-pi ------------ -0.000004900 phi phi K+ PHSP; #[Reconstructed PDG2011] -0.000001 phi phi pi+ PHSP; -0.000001 phi K+ K- K+ PHSP; -0.000001 phi K0 anti-K0 K+ PHSP; -0.000001 phi K0 anti-K0 pi+ PHSP; -0.000001 phi anti-K0 K+ pi0 PHSP; -0.000001 K+ K- K+ K- pi+ PHSP; -0.000001 K+ K- K0 anti-K0 pi+ PHSP; -0.000001 K+ K- K+ anti-K0 pi0 PHSP; -0.000001 K0 anti-K0 anti-K0 K+ pi0 PHSP; -#--- 6-body phi-phi-K*, phi-3Kpi, phi-K-K-2pi ------------ -0.000003 phi phi K*+ PHSP; -0.000001 phi K+ K- K*+ PHSP; -0.000001 phi K0 anti-K0 K*+ PHSP; -0.000001 phi anti-K0 K+ K*0 PHSP; -0.000001 phi K+ K- K+ pi0 PHSP; -0.000001 phi K+ K- K0 pi+ PHSP; -0.000001 phi K0 anti-K0 K+ pi0 PHSP; -0.000001 phi K0 anti-K0 K0 pi+ PHSP; -0.000001 phi anti-K0 K+ K+ pi- PHSP; -#--- 6-body a1a1 ------------ -0.000050 a_1+ a_10 PHSP; -# -# B -> cc= s sum = 1.92% -# -0.001014000 J/psi K+ SVS; #[Reconstructed PDG2011] -0.001430000 J/psi K*+ SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] -0.000049000 J/psi pi+ SVS; #[Reconstructed PDG2011] -0.000050000 J/psi rho+ SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] -0.0002 J/psi K0 pi+ PHSP; -0.0001 J/psi K+ pi0 PHSP; -#rl0.0007 J/psi K+ pi- pi+ PHSP; -#rl0.00035 J/psi K+ pi0 pi0 PHSP; -#rl0.00035 J/psi K0 pi+ pi0 PHSP; -0.0001 J/psi K'_1+ SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; -0.0005 J/psi K_2*+ PHSP; -0.001800000 J/psi K_1+ SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; #[Reconstructed PDG2011] -0.000052000 J/psi phi K+ PHSP; #[Reconstructed PDG2011] -# -0.000646000 psi(2S) K+ SVS; #[Reconstructed PDG2011] -0.000620000 psi(2S) K*+ SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] -0.0004 psi(2S) K0 pi+ PHSP; -0.0002 psi(2S) K+ pi0 PHSP; -0.001900000 psi(2S) K+ pi- pi+ PHSP; #[Reconstructed PDG2011] -0.0001 psi(2S) K+ pi0 pi0 PHSP; -0.0001 psi(2S) K0 pi+ pi0 PHSP; -0.0004 psi(2S) K_1+ PHSP; -# -0.000910000 eta_c K+ PHSP; #[Reconstructed PDG2011] -0.001200000 K*+ eta_c SVS; #[Reconstructed PDG2011] -0.0002 eta_c K0 pi+ PHSP; -0.0001 eta_c K+ pi0 PHSP; -0.0002 eta_c K+ pi- pi+ PHSP; -0.0001 eta_c K+ pi0 pi0 PHSP; -0.0001 eta_c K0 pi+ pi0 PHSP; -# -0.000340000 eta_c(2S) K+ PHSP; #[Reconstructed PDG2011] -0.00048 K*+ eta_c(2S) SVS; -0.00008 eta_c(2S) K0 pi+ PHSP; -0.00005 eta_c(2S) K+ pi0 PHSP; -0.00008 eta_c(2S) K+ pi- pi+ PHSP; -0.00005 eta_c(2S) K+ pi0 pi0 PHSP; -0.00005 eta_c(2S) K0 pi+ pi0 PHSP; -# -0.000133000 chi_c0 K+ PHSP; #[Reconstructed PDG2011] -0.0004 K*+ chi_c0 SVS; -0.0002 chi_c0 K0 pi+ PHSP; -0.0001 chi_c0 K+ pi0 PHSP; -0.0002 chi_c0 K+ pi- pi+ PHSP; -0.0001 chi_c0 K+ pi0 pi0 PHSP; -0.0001 chi_c0 K0 pi+ pi0 PHSP; -# -0.000460000 chi_c1 K+ SVS; #[Reconstructed PDG2011] -0.000300000 chi_c1 K*+ SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; #[Reconstructed PDG2011] -0.0004 chi_c1 K0 pi+ PHSP; -0.0002 chi_c1 K+ pi0 PHSP; -0.0004 chi_c1 K+ pi- pi+ PHSP; -0.0002 chi_c1 K+ pi0 pi0 PHSP; -0.0002 chi_c1 K0 pi+ pi0 PHSP; -# -0.00002 chi_c2 K+ STS; -0.00002 chi_c2 K*+ PHSP; -0.0002 chi_c2 K0 pi+ PHSP; -0.0001 chi_c2 K+ pi0 PHSP; -0.0002 chi_c2 K+ pi- pi+ PHSP; -0.0001 chi_c2 K+ pi0 pi0 PHSP; -0.0001 chi_c2 K0 pi+ pi0 PHSP; -# -0.000490000 psi(3770) K+ SVS; #[Reconstructed PDG2011] -0.0005 psi(3770) K*+ PHSP; -0.0003 psi(3770) K0 pi+ PHSP; -0.0002 psi(3770) K+ pi0 PHSP; -0.0002 psi(3770) K+ pi- pi+ PHSP; -0.0001 psi(3770) K+ pi0 pi0 PHSP; -0.0001 psi(3770) K0 pi+ pi0 PHSP; -0.0003 psi(3770) K_1+ PHSP; -# -# b -> c (sc=) -> D Ds X Sum = 10% -# -0.010000000 anti-D0 D_s+ PHSP; #[Reconstructed PDG2011] -0.008200000 anti-D*0 D_s+ SVS; #[Reconstructed PDG2011] -0.007600000 D_s*+ anti-D0 SVS; #[Reconstructed PDG2011] -0.017100000 D_s*+ anti-D*0 SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; #[Reconstructed PDG2011] -0.0006 anti-D'_10 D_s+ SVS; -0.0012 anti-D'_10 D_s*+ SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; -0.0012 anti-D_10 D_s+ SVS; -0.0024 anti-D_10 D_s*+ SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; -0.0042 anti-D_2*0 D_s+ STS; -0.0040 anti-D_2*0 D_s*+ PHSP; -# -# -# -# -# -0.0036 D_s+ D- pi+ PHSP; -0.0018 D_s+ anti-D0 pi0 PHSP; -0.0037 D_s*+ D- pi+ PHSP; -0.0018 D_s*+ anti-D0 pi0 PHSP; -0.0033 D_s+ D- pi+ pi0 PHSP; -0.0033 D_s+ anti-D0 pi+ pi- PHSP; -0.0008 D_s+ anti-D0 pi0 pi0 PHSP; -0.0033 D_s*+ D- pi+ pi0 PHSP; -0.0033 D_s*+ anti-D0 pi+ pi- PHSP; -0.0008 D_s*+ anti-D0 pi0 pi0 PHSP; -# -# b -> c (sc=) -> D D= K X Sum = 8% -# update: Ref. [B1]: -# update October 26, 2004 -# External W-emission amplitude -0.0017 anti-D0 D+ K0 PHSP; -0.0052 anti-D0 D*+ K0 PHSP; -0.0031 anti-D*0 D+ K0 PHSP; -0.007800000 anti-D*0 D*+ K0 PHSP; #[Reconstructed PDG2011] -# External+internal W-emission amplitude -0.002100000 anti-D0 D0 K+ PHSP; #[Reconstructed PDG2011] -0.0018 anti-D*0 D0 K+ PHSP; -0.004700000 anti-D0 D*0 K+ PHSP; #[Reconstructed PDG2011] -0.005300000 anti-D*0 D*0 K+ PHSP; #[Reconstructed PDG2011] -# Internal W-emission amplitude (color suppressed modes) -0.0005 D+ D- K+ PHSP; -0.0005 D*+ D- K+ PHSP; -0.001500000 D+ D*- K+ PHSP; #[Reconstructed PDG2011] -0.0015 D*+ D*- K+ PHSP; -# -0.0025 anti-D0 D+ K*0 PHSP; -0.0025 anti-D*0 D+ K*0 PHSP; -0.0025 anti-D0 D*+ K*0 PHSP; -0.0050 anti-D*0 D*+ K*0 PHSP; -# -0.0025 anti-D0 D0 K*+ PHSP; -0.0025 anti-D*0 D0 K*+ PHSP; -0.0025 anti-D0 D*0 K*+ PHSP; -0.0050 anti-D*0 D*0 K*+ PHSP; -# -0.0005 D+ D- K*+ PHSP; -0.0005 D*+ D- K*+ PHSP; -0.0005 D+ D*- K*+ PHSP; -0.0010 D*+ D*- K*+ PHSP; -# -# B->D(*)D(*). See Ref [B1]: -# -0.000380000 D+ anti-D0 PHSP; #[Reconstructed PDG2011] -0.000390000 D*+ anti-D0 SVS; #[Reconstructed PDG2011] -0.000630000 anti-D*0 D+ SVS; #[Reconstructed PDG2011] -0.000810000 anti-D*0 D*+ SVV_HELAMP 0.56 0.0 0.96 0.0 0.47 0.0; #[Reconstructed PDG2011] - -# -# B -> D(*) X Exclusive Modes -# October 26, 2004 Lange update -0.005190000 anti-D*0 pi+ SVS; #[Reconstructed PDG2011] -0.004840000 anti-D0 pi+ PHSP; #[Reconstructed PDG2011] -0.013400000 rho+ anti-D0 SVS; #[Reconstructed PDG2011] -# D* rho HELAMP parameters taken from ICHEP 98-852. -0.009800000 anti-D*0 rho+ SVV_HELAMP 0.283 1.13 0.932 0.0 0.228 0.95; #[Reconstructed PDG2011] -# -0.0005 anti-D0 pi0 pi+ PHSP; -0.0005 anti-D*0 pi0 pi+ PHSP; -0.001070000 D- pi+ pi+ PHSP; #[Reconstructed PDG2011] -0.001350000 D*- pi+ pi+ PHSP; #[Reconstructed PDG2011] -# -# D a1 updated Ref. [B1]: -0.004000000 a_1+ anti-D0 SVS; #[Reconstructed PDG2011] -0.000200000 anti-D0 rho0 pi+ PHSP; #[Reconstructed PDG2011] -0.006800000 anti-D0 pi- pi+ pi+ PHSP; #[Reconstructed PDG2011] -# -# SVV_HELAMP from factorization, recommendation -# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/168.html: -# updated Ref. [B1]: -# October 26, 2004 Lange update -# -0.019000000 anti-D*0 a_1+ SVV_HELAMP 0.458 0.0 0.866 0.0 0.200 0.0; #[Reconstructed PDG2011] -# -0.00150 anti-D*0 rho0 pi+ PHSP; -0.000500000 anti-D*0 pi- pi+ pi+ PHSP; #[Reconstructed PDG2011] -# -0.0020 D- rho+ pi+ PHSP; -0.0020 D- pi0 pi+ pi+ PHSP; -0.0020 D*- rho+ pi+ PHSP; -0.015000000 D*- pi0 pi+ pi+ PHSP; #[Reconstructed PDG2011] -0.0005 anti-D*0 rho+ pi0 PHSP; -0.0005 anti-D*0 pi+ pi0 pi0 PHSP; -# -# B->D** pi and D** rho, recommendation -# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/151.html -# -# -0.000876 anti-D_10 pi+ SVS; -0.0005 anti-D'_10 pi+ SVS; -0.00052 anti-D_2*0 pi+ STS; -0.0007 anti-D_10 rho+ PHSP; -0.0022 anti-D'_10 rho+ PHSP; -0.0038 anti-D_2*0 rho+ PHSP; -0.00061 anti-D_0*0 pi+ PHSP; -# -# -# B->DK, recommendation -# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/151.html: -# update: Ref [B1]: -# -0.000368000 anti-D0 K+ PHSP; #[Reconstructed PDG2011] -0.000421000 anti-D*0 K+ SVS; #[Reconstructed PDG2011] -0.000530000 K*+ anti-D0 SVS; #[Reconstructed PDG2011] -0.000810000 anti-D*0 K*+ SVV_HELAMP 0.283 0.0 0.932 0.0 0.228 0.0; #[Reconstructed PDG2011] -#October 26, 2004 Lange -0.0000005 D+ pi0 PHSP; -0.0000005 D*+ pi0 SVS; -0.000011 D+ anti-K0 PHSP; -0.000006 D*+ anti-K0 SVS; -# -#October 26, 2004 - Lange -0.00075 anti-D0 D_s0*+ PHSP; -0.00090 anti-D*0 D_s0*+ SVS; -0.003100000 D_s1+ anti-D0 SVS; #[Reconstructed PDG2011] -0.012000000 anti-D*0 D_s1+ SVV_HELAMP 0.4904 0.0 0.7204 0.0 0.4904 0.0; #[Reconstructed PDG2011] -# -# Feb 2009 -# -0.000550000 anti-D0 K+ anti-K0 PHSP; #[Reconstructed PDG2011] -0.000750000 anti-D0 K+ anti-K*0 PHSP; #[Reconstructed PDG2011] -0.00150 anti-D*0 K+ anti-K*0 PHSP; -# -# Feb 2009 -# -0.002750000 anti-D0 omega pi+ PHSP; #[Reconstructed PDG2011] -0.004500000 anti-D*0 omega pi+ PHSP; #[Reconstructed PDG2011] -# -# Feb 2009 -# -0.00045 anti-D0 D'_s1+ PHSP; -0.00094 anti-D*0 D'_s1+ PHSP; -# -# Lam_c X / Sigma_c X -# -#0.04000 anti-cd_1 uu_1 PYTHIA 63; -0.032572352 anti-cd_1 uu_1 PYTHIA 63; -# -# Xi_c X 2.4% - -#0.02400 anti-cs_1 uu_1 PYTHIA 63; -0.008883411 anti-cs_1 uu_1 PYTHIA 63; -# -# -0.211960282 u anti-d anti-c u PYTHIA 23; -0.040460124 u anti-d anti-c u PYTHIA 43; -0.022208435 u anti-s anti-c u PYTHIA 43; -#lange - try to crank up the psi production.... -0.073041080 c anti-s anti-c u PYTHIA 43; -0.003948141 c anti-d anti-c u PYTHIA 43; -0.002961106 u anti-d anti-u u PYTHIA 23; -0.003948141 c anti-s anti-u u PYTHIA 23; -# JGS 11/5/02 This and similar a few lines above have been divided by two -# to solve a double-counting problem for this channel -0.002023436 u anti-u anti-d u PYTHIA 23; -0.000069112 d anti-d anti-d u PYTHIA 23; -0.000088858 s anti-s anti-d u PYTHIA 23; -0.002171534 u anti-u anti-s u PYTHIA 23; -0.001776701 d anti-d anti-s u PYTHIA 23; -0.001480600 s anti-s anti-s u PYTHIA 23; -0.004935177 anti-s u PYTHIA 91; -#### -0.001500000 anti-D*0 K+ K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.018000000 anti-D*0 pi- pi+ pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.005700000 anti-D*0 pi+ pi+ pi+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.002600000 D*- pi+ pi+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000180000 D_s- pi+ K+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000145000 D_s*- pi+ K+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000011000 D_s- K+ K+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001070000 J/psi K+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000108000 J/psi eta K+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000350000 J/psi omega K+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000011800 J/psi p+ anti-Lambda0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000025800 psi(2S) pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000020000 chi_c1 pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000018000 eta K_0*+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000009100 eta K_2*+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000024000 omega K_0*+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000021000 omega K_2*+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000010100 K*0 pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000001070 f_2 K+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000005600 K_2*0 pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000001200 K*+ K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000006100 phi K_1+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000008400 phi K_2*+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000043000 K_1+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000007900 eta K+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000003500 phi K+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000007600 K+ pi- pi+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000020000 K*0 pi+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000046000 K0 pi+ pi0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000014000 K_2*+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000980 rho+ gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000001620 p+ anti-p- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000005900 p+ anti-p- K+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000003600 p+ anti-p- K*+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000002500 p+ anti-Lambda0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000003000 p+ anti-Lambda0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000000 p+ anti-Lambda0 pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000004800 p+ anti-Lambda0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000002000 p+ anti-Lambda0 f_2 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000003400 Lambda0 anti-Lambda0 K+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000002200 Lambda0 anti-Lambda0 K*+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000280000 anti-Lambda_c- p+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001800000 anti-Lambda_c- p+ pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.002300000 anti-Lambda_c- p+ pi+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000035000 anti-Sigma_c0 p+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000440000 anti-Sigma_c0 p+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000440000 anti-Sigma_c0 p+ pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000280000 anti-Sigma_c-- p+ pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay - -#----------------------------------------------------------------- -# B references: -# -# [B1]: http://www.slac.stanford.edu/BFROOT/www/Physics/Tools/generators/dec-update/2002/Breco-recommendations.html -# -#----------------------------------------------------------------- - - -# -# -# B* mesons -# -Decay B*+ -1.0000 B+ gamma VSP_PWAVE; -Enddecay -Decay B*- -1.0000 B- gamma VSP_PWAVE; -Enddecay -Decay B*0 -1.0000 B0 gamma VSP_PWAVE; -Enddecay -Decay anti-B*0 -1.0000 anti-B0 gamma VSP_PWAVE; -Enddecay -Decay B_s*0 -1.0000 B_s0 gamma VSP_PWAVE; -Enddecay -Decay anti-B_s*0 -1.0000 anti-B_s0 gamma VSP_PWAVE; -Enddecay -# -# B_s decays. -# -# -# To count up the BR for this decay: -# awk ' /^0./{ sum = sum + $1 ;print sum } ' junk.dec -# -# anti-B_s decays. -# ------------------------------------------------------- -# whb&fkw 3/28/01 Taken from fkw's QQ tables. -# most dubious part are the B to baryons. -# fkw 4/28/00 made the Bs parallel to the Bd as best as I could -# ------------------------------------------------------- -# -# Lange - Nov14 - NOT adjusted for D_s->phipi change -# -Decay anti-B_s0 -# b --> c (l nu) -# Sum = 24.5% -0.0210 D_s+ e- anti-nu_e PHOTOS HQET 1.185 1.081; -0.0490 D_s*+ e- anti-nu_e PHOTOS HQET2 1.207 0.920 1.406 0.853; -0.0040 D_s1+ e- anti-nu_e PHOTOS ISGW2; -0.0040 D_s0*+ e- anti-nu_e PHOTOS ISGW2; -0.0070 D'_s1+ e- anti-nu_e PHOTOS ISGW2; -0.0070 D_s2*+ e- anti-nu_e PHOTOS ISGW2; -# -0.0210 D_s+ mu- anti-nu_mu PHOTOS HQET2 1.185 1.081; -0.0490 D_s*+ mu- anti-nu_mu PHOTOS HQET2 1.207 0.920 1.406 0.853; -0.0040 D_s1+ mu- anti-nu_mu PHOTOS ISGW2; -0.0040 D_s0*+ mu- anti-nu_mu PHOTOS ISGW2; -0.0070 D'_s1+ mu- anti-nu_mu PHOTOS ISGW2; -0.0070 D_s2*+ mu- anti-nu_mu PHOTOS ISGW2; -# -#0.0070 D_s+ tau- anti-nu_tau ISGW2; -#0.0150 D_s*+ tau- anti-nu_tau ISGW2; -#0.0013 D_s1+ tau- anti-nu_tau ISGW2; -#0.0013 D_s0*+ tau- anti-nu_tau ISGW2; -#0.0023 D'_s1+ tau- anti-nu_tau ISGW2; -#0.0023 D_s2*+ tau- anti-nu_tau ISGW2; -# fkw 5/04/01 changed the above to account for the non-res part that I -# had to take out. -0.0080 D_s+ tau- anti-nu_tau ISGW2; -0.0160 D_s*+ tau- anti-nu_tau ISGW2; -0.0018 D_s1+ tau- anti-nu_tau ISGW2; -0.0018 D_s0*+ tau- anti-nu_tau ISGW2; -0.0028 D'_s1+ tau- anti-nu_tau ISGW2; -0.0028 D_s2*+ tau- anti-nu_tau ISGW2; -# -# fkw 4/28/00 the next few are decays where a u\bar u or d\bar d is popped -# between the charm quark and the spectator. I can thus not -# just replace a D by a Ds as above when going from Bd to Bs. -# fkw 5/04/01 Had to take these out because they crash EvtGen. -# Will have to fix this eventually !!! -#0.0010 D*0 K+ tau- anti-nu_tau GOITY_ROBERTS; -#0.0010 D*+ K0 tau- anti-nu_tau GOITY_ROBERTS; -#0.0010 D0 K+ tau- anti-nu_tau GOITY_ROBERTS; -#0.0010 D+ K0 tau- anti-nu_tau GOITY_ROBERTS; -# fkw 4/28/00 B0B -> TAU D PI0 = 1/2 of TAU D PI+ because of pi0 wave function -# However, the same factor of 1/2 doesn't apply to BSB !!! -# -# fkw 3/28/01 There seem to be no semi-leptonic B to baryon decays in nature. -# I don't pretend to understand why. PDG 2000 has a limit of -# < 3.2e-3 where one might naively expect -# 10% * BR(B->/\c) = 0.1 * (6.4+-1.1)% -#0.0050 anti-nu_e e- ??? Baryon -#0.0050 anti-nu_mu mu- ??? Baryon -# -# b --> c (s c=) -# Sum = 11.44% -# 2-body = 4.72% -# more-body = 6.72% -0.010400000 D_s- D_s+ PHSP; #[Reconstructed PDG2011] -0.0099 D_s*+ D_s- SVS; -0.0099 D_s*- D_s+ SVS; -0.0197 D_s*- D_s*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -# fkw 4/28/00 more states with popped q\bar q. -# The one's here involve only popped and spectator. -# Popping stuff in the cs from the W comes further below. -# The same isospin comment applies here as above in the -# semi-leptonic decays with tau and popped q\bar q. -0.0096 D_s- D+ K0 PHSP; -0.0096 D_s- anti-D0 K+ PHSP; -0.0096 D_s*- D+ K0 PHSP; -0.0096 D_s*- D0 K+ PHSP; -# -0.0024 D_s- D+ pi0 K0 PHSP; -0.0048 D_s- D0 pi+ K0 PHSP; -0.0048 D_s- D+ pi- K+ PHSP; -0.0024 D_s- D0 pi0 K+ PHSP; -# -0.0024 D_s*- D+ pi0 K0 PHSP; -0.0048 D_s*- D0 pi+ K0 PHSP; -0.0048 D_s*- D+ pi- K+ PHSP; -0.0024 D_s*- D0 pi0 K+ PHSP; -# -# -# b --> (c ) (c ) (s ) -# Sum = 8.0% -# DDK amplitudes R.A.Briere 10/97 -# fkw 4/28/00 these are q\bar q popping that don't involve the spectator -# Bd->Bs just involves switching the c\bar d to c\bar s. -# -0.0150 D_s*+ anti-D*0 K- PHSP; -0.0150 D_s*+ D*- anti-K0 PHSP; -# -0.0050 D_s*+ anti-D0 K- PHSP; -0.0050 D_s*+ D- anti-K0 PHSP; -# -0.0050 D_s+ anti-D*0 K- PHSP; -0.0050 D_s+ D*- anti-K0 PHSP; -# -0.0020 D_s+ anti-D0 K- PHSP; -0.0020 D_s+ D- anti-K0 PHSP; -# -0.0030 D_s*+ anti-D*0 K*- PHSP; -0.0030 D_s*+ D*- anti-K*0 PHSP; -# -0.0050 D_s*+ anti-D0 K*- PHSP; -0.0050 D_s*+ D- anti-K*0 PHSP; -# -0.0025 D_s+ anti-D*0 K*- PHSP; -0.0025 D_s+ D*- anti-K*0 PHSP; -# -0.0025 D_s+ anti-D0 K*- PHSP; -0.0025 D_s+ D- anti-K*0 PHSP; -# -# -# b --> c (d c=) -# Sum = 1.0% -0.0017 D_s- D+ PHSP; -0.0017 D*+ D_s- SVS; -0.0017 D_s*- D+ SVS; -0.0017 D_s*- D*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -# fkw 4/38/00 more popping at the lower vertex -# but with upper vertex cabbibo suppressed. -0.0007 D- D+ K0 PHSP; -0.0007 D- anti-D0 K+ PHSP; -0.0007 D*- D+ K0 PHSP; -0.0007 D*- D0 K+ PHSP; -# -0.0003 D- D+ pi0 K0 PHSP; -0.0007 D- D0 pi+ K0 PHSP; -0.0003 D- D+ pi- K+ PHSP; -0.0007 D- D0 pi0 K+ PHSP; -# -0.0003 D*- D+ pi0 K0 PHSP; -0.0007 D*- D0 pi+ K0 PHSP; -0.0003 D*- D+ pi- K+ PHSP; -0.0007 D*- D0 pi0 K+ PHSP; -# -# b --> c (s u=) -# exclusive -# Sum = 0.09% -0.00015 D_s*+ K- SVS; -0.000150000 D_s+ K- PHSP; #[Reconstructed PDG2011] -0.00030 D_s*+ K*- SVV_HELAMP 0.228 0.0 0.932 0.0 0.0283 0.0; -0.00030 K*- D_s+ SVS; -# -# fkw 4/28/00 Strategy for charmonium modes: -# Take Bd BR's, replace spectator, -# assume etaprime = 2/3 ss -# and eta = 1/3 ss -# -# Note: Just for kicks I gave the c\bar c decays a small piece that is -# self tagging. See if you can find it. This is already in -# the B0 decays in cleo's version of decay.dec . -# -# B --> (c c=) (s s=) -# 2.65% -# should be: psi = 0.80% CLNS 94/1315 but isn't quite right. -0.00064 J/psi eta' SVS; -0.00032 J/psi eta SVS; -0.001300000 J/psi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.00008 J/psi K0 SVS; -0.00070 J/psi K- K+ PHSP; -0.00070 J/psi anti-K0 K0 PHSP; -0.00070 J/psi anti-K0 K+ pi- PHSP; -0.00070 J/psi anti-K0 K0 pi0 PHSP; -0.00070 J/psi K- K+ pi0 PHSP; -# LHCb PR 04/02/04 Add (cc) phi n pi(+/0) -0.00039 J/psi phi pi+ pi- PHSP; -0.00039 J/psi phi pi0 pi0 PHSP; -# LHCb PR add (cc) phi eta(') + npi see CDF QQ -0.0002 J/psi eta pi+ pi- PHSP; -0.0002 J/psi eta pi0 pi0 PHSP; -0.0004 J/psi eta' pi+ pi- PHSP; -0.0004 J/psi eta' pi0 pi0 PHSP; -0.0002 J/psi pi+ pi- PHSP; -0.0002 J/psi pi0 pi0 PHSP; -# psi' = 0.34% CLNS 94/1315 -# -0.000465 psi(2S) eta' SVS; -0.000235 psi(2S) eta SVS; -0.000680000 psi(2S) phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.0003 psi(2S) K- K+ PHSP; -0.0003 psi(2S) anti-K0 K0 PHSP; -0.0003 psi(2S) anti-K0 K+ pi- PHSP; -0.0003 psi(2S) anti-K0 K0 pi0 PHSP; -0.0003 psi(2S) K- K+ pi0 PHSP; -0.00034 psi(2S) phi pi+ pi- PHSP; -0.00034 psi(2S) phi pi0 pi0 PHSP; -0.0002 psi(2S) eta pi+ pi- PHSP; -0.0002 psi(2S) eta pi0 pi0 PHSP; -0.0004 psi(2S) eta' pi+ pi- PHSP; -0.0004 psi(2S) eta' pi0 pi0 PHSP; -0.0002 psi(2S) pi+ pi- PHSP; -0.0002 psi(2S) pi0 pi0 PHSP; -# -# chic0 = 0.05% (20% of chic2) -# Bodwin et.al. Phys Rev D46 1992 -0.00010 chi_c0 eta' PHSP; -0.00005 chi_c0 eta PHSP; -0.00020 phi chi_c0 SVS; -0.00003 chi_c0 K- K+ PHSP; -0.00003 chi_c0 anti-K0 K0 PHSP; -0.00003 chi_c0 anti-K0 K+ pi- PHSP; -0.00003 chi_c0 anti-K0 K0 pi0 PHSP; -0.00003 chi_c0 K- K+ pi0 PHSP; -# -# -# chic1 = 0.37% CLNS 94/1315 -0.0007 chi_c1 eta' SVS; -0.0003 chi_c1 eta SVS; -0.0014 chi_c1 phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00026 chi_c1 K- K+ PHSP; -0.00026 chi_c1 anti-K0 K0 PHSP; -0.00026 chi_c1 anti-K0 K+ pi- PHSP; -0.00026 chi_c1 anti-K0 K0 pi0 PHSP; -0.00026 chi_c1 K- K+ pi0 PHSP; -0.00040 chi_c1 phi pi+ pi- PHSP; -0.00040 chi_c1 phi pi0 pi0 PHSP; -0.0001 chi_c1 eta pi+ pi- PHSP; -0.0001 chi_c1 eta pi0 pi0 PHSP; -0.0002 chi_c1 eta' pi+ pi- PHSP; -0.0002 chi_c1 eta' pi0 pi0 PHSP; -# -# -# chic2 = 0.25% CLNS 94/1315 -0.000465 chi_c2 eta' STS; -0.000235 chi_c2 eta STS; -#0.0010 chi_c2 phi STV; whb: model doesn't exist! -0.00016 chi_c2 K- K+ PHSP; -0.00016 chi_c2 anti-K0 K0 PHSP; -0.00016 chi_c2 anti-K0 K+ pi- PHSP; -0.00016 chi_c2 anti-K0 K0 pi0 PHSP; -0.00016 chi_c2 K- K+ pi0 PHSP; -# -# -# etac(1s) = 0.41% Guess: CBX 97-65 -# -0.0008 eta_c eta' PHSP; -0.0004 eta_c eta PHSP; -0.0015 phi eta_c SVS; -0.00028 eta_c K- K+ PHSP; -0.00028 eta_c anti-K0 K0 PHSP; -0.00028 eta_c anti-K0 K+ pi- PHSP; -0.00028 eta_c anti-K0 K0 pi0 PHSP; -0.00028 eta_c K- K+ pi0 PHSP; -0.00040 eta_c phi pi+ pi- PHSP; -0.00040 eta_c phi pi0 pi0 PHSP; -0.0001 eta_c eta pi+ pi- PHSP; -0.0001 eta_c eta pi0 pi0 PHSP; -0.0002 eta_c eta' pi+ pi- PHSP; -0.0002 eta_c eta' pi0 pi0 PHSP; -# -# -# etac(2s) = 0.18% Guess: CBX 97-65 -0.0004 eta_c(2S) eta' PHSP; -0.0002 eta_c(2S) eta PHSP; -0.0006 phi eta_c(2S) SVS; -0.00012 eta_c(2S) K- K+ PHSP; -0.00012 eta_c(2S) anti-K0 K0 PHSP; -0.00012 eta_c(2S) anti-K0 K+ pi- PHSP; -0.00012 eta_c(2S) anti-K0 K0 pi0 PHSP; -0.00012 eta_c(2S) K- K+ pi0 PHSP; -# -# -# hc = 0.25% (100% of chic2) -# Bodwin et.al. Phys Rev D46 1992 -# -0.000465 h_c eta' SVS; -0.000235 h_c eta SVS; -0.0010 h_c phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00016 h_c K- K+ PHSP; -0.00016 h_c anti-K0 K0 PHSP; -0.00016 h_c anti-K0 K+ pi- PHSP; -0.00016 h_c anti-K0 K0 pi0 PHSP; -0.00016 h_c K- K+ pi0 PHSP; -# -# -# b --> c (d u=) -# Exclusive Channels = 6.33% -# fkw 4/28/00 I rearanged this a bit after copying it from -# B0B decay list. -# -# first come the external W-emission decays: -# -0.0008 D_s1+ pi- SVS; -0.0021 D_s1+ rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.0013 D_s2*+ pi- STS; -#0.0037 D_s2*+ rho- STV; # whb: model doesn't exist -# -0.0027 D_s*+ pi- SVS; -0.003200000 D_s+ pi- PHSP; #[Reconstructed PDG2011] -0.0073 rho- D_s+ SVS; -0.0070 D_s*+ rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -0.0085 a_1- D_s+ SVS; -0.0009 D_s+ rho0 pi- PHSP; -0.0009 D_s+ rho- pi0 PHSP; -0.008400000 D_s+ pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -0.0009 D_s+ pi0 pi- pi0 PHSP; -# -0.0122 D_s*+ a_1- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.0010 D_s*+ rho0 pi- PHSP; -0.0010 D_s*+ rho- pi0 PHSP; -0.0077 D_s*+ pi+ pi- pi- PHSP; -0.0010 D_s*+ pi0 pi- pi0 PHSP; -# -# then the color suppressed decays: -# -# fkw 4/28/00 color suppressed modes bumped up by factor 2 from isospin -# i.e. Bs doesn't have the factor 2 suppression Bd has. -0.0002 D*0 K0 SVS; -0.0002 D0 K0 PHSP; -0.0002 K*0 D0 SVS; -0.0002 D*0 K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -# PR LHCb Add p pbar mode -0.000000001 p+ anti-p- PHSP; -# fkw 4/28/00 ignore the internal W emission decays with additional -# q\bar q popping. -# -# Here come the various types of "inclusive unknown" decays: -# -# Start with B to baryons: -# fkw 3/28/01 I don't know what I'm doing here!!! This needs to be checked!!! -# Mark Whitehead 30/4/2010 Weighted PYHTIA to get total BF = 100% -0.019574780 cs_0 anti-ud_0 PYTHIA 63; -0.039129957 cs_1 anti-ud_1 PYTHIA 63; -# -# Next come external W-emission: -0.301256716 anti-u d c anti-s PYTHIA 23; -0.048443906 anti-u d c anti-s PYTHIA 65; -# Now the internal W-emission: -0.019086636 anti-u c d anti-s PYTHIA 23; -# Then some b->u external W-emission with upper vertex charm -0.003912996 anti-c s u anti-s PYTHIA 23; -# and finally some cabibbo suppressed external and internal W-emission -0.014683536 anti-u s c anti-s PYTHIA 23; -0.002152148 anti-u s c anti-s PYTHIA 65; -0.000880424 anti-u c s anti-s PYTHIA 23; -# and some c cbar d stuff as well as c cbar s -0.005391151 anti-c d c anti-s PYTHIA 43; -0.001468354 anti-c d c anti-s PYTHIA 43; -# and some miscellaneous charmless stuff -0.003521696 anti-u u d anti-s PYTHIA 23; -0.000684774 anti-d d d anti-s PYTHIA 23; -0.000880424 anti-s s d anti-s PYTHIA 23; -0.001956498 anti-u u s anti-s PYTHIA 23; -0.001565198 anti-d d s anti-s PYTHIA 23; -0.001271724 anti-s s s anti-s PYTHIA 23; -0.004891245 s anti-s PYTHIA 91; - -# fkw 5/10/00 the b->ulnu decays are loosely modelled according to B0 in EvtGen -0.000200 K+ e- anti-nu_e PHOTOS ISGW2; -0.000300 K*+ e- anti-nu_e PHOTOS ISGW2; -0.000300 K_1+ e- anti-nu_e PHOTOS ISGW2; -0.000200 K'_1+ e- anti-nu_e PHOTOS ISGW2; -# -# -0.000200 K+ mu- anti-nu_mu PHOTOS ISGW2; -0.000300 K*+ mu- anti-nu_mu PHOTOS ISGW2; -0.000300 K_1+ mu- anti-nu_mu PHOTOS ISGW2; -0.000200 K'_1+ mu- anti-nu_mu PHOTOS ISGW2; -# ------------- -# 2e-3 for charmless semi-leptonic - -#*********************************************************** -# -# fkw 5/10/00 -# -# ideas behind these (largely) made up Br's for charmless -# hadronic B decays: -# (1) any PP and PV modes that are used or calculated -# in globfit code by Hou,Smith,Wuerthwein are taken from -# the latest fit i.e. May2000 -# (2) anything else is from Ali,Kramer,Lue -# -# None of this should be taken too serious! -# -#*********************************************************** -# Mark Whitehead 30/4/2010 Updated K+K- -# PR LHCb 04/07/04 update BR -0.000033000 K- K+ PHSP; #[Reconstructed PDG2011] -# PR LHCb 04/07/04 split into KS/KL -0.0000000 anti-K0 K0 PHSP; -0.0000100 K_S0 K_S0 PHSP; -0.0000100 K_L0 K_L0 PHSP; -# PR LHCb 04/07/04 update BR -0.000004900 pi- K+ PHSP; #[Reconstructed PDG2011] -0.0000002 pi0 K0 PHSP; -# PR LHCb 04/07/04 add Bs->pi+ pi- -0.00000001 pi+ pi- PHSP; -# -0.0000012 omega eta SVS; -0.0000025 omega eta' SVS; -0.0000013 phi eta SVS; -0.0000025 phi eta' SVS; -0.00000008 omega anti-K0 SVS; -0.000000002 phi anti-K0 SVS; -# -#next is just twice PI- RHO0 -0.0000250 K*+ pi- SVS; -0.0000120 rho- K+ SVS; -0.00000002 rho0 K0 SVS; -0.00000002 K*0 pi0 SVS; -# -0.0000046 K*- K+ SVS; -# PR LHCb 04/07/04 Split into KS/KL -0.0000000 anti-K*0 K0 SVS; -0.0000020 anti-K*0 K_S0 SVS; -0.0000020 anti-K*0 K_L0 SVS; -0.0000082 K*+ K- SVS; -# PR LHCb 04/07/04 Split into KS/KL -0.0000000 K*0 anti-K0 SVS; -0.0000020 K*0 K_S0 SVS; -0.0000020 K*0 K_L0 SVS; -# -0.0000580 eta' eta' PHSP; -0.0000250 eta' eta PHSP; -0.0000040 eta eta PHSP; -#### Already included above 0.0000200 phi eta SVS; -#### Already included above 0.0000100 phi eta' SVS; -# -#next comes stuff from Ali,Kramer,Lue PRD58, 094009 FOR NC=3 -0.00000007 K0 eta' PHSP; -0.00000023 K0 eta PHSP; -0.000000021 K*0 eta' SVS; -0.00000007 K*0 eta SVS; -# -#next comes stuff from Ali,Kramer,Lue PRD58, 094009 FOR NC=3 -# for vector-vector final states -0.000020 rho- K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.0000008 rho0 K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.000000005 omega K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -0.000006 K*- K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# PR LHCb 04/07/04 Update BR -0.000004 anti-K*0 K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.000014000 phi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000000004 phi K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -# decays that go via b->d penguins -#### Already included above 0.0000004 phi K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# PR LHCb : add Bs -> mu+ mu- -0.0000000035 mu- mu+ PHSP; -#PR LHCb 04/08/2004 add Bs -> tau+ tau- (BR not to take too seriously) -0.0000000020 tau- tau+ PHSP; -# PR LHCb 04/05/2004 : add Bs -> phi gamma -0.000057000 phi gamma SVP_HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -# PR LHCb 04/08/2004 : add Bs -> phi mu mu, phi e e -0.0000023 phi e- e+ BTOSLLALI; -0.0000023 phi mu- mu+ BTOSLLALI; -# PR LHCb 16 apr 2004 : add Bs -> gamma gamma -0.0000005 gamma gamma PHSP; -#-------------- -# 257.122e-6 for all the charmless hadronic -# -0.000150000 D_s- K+ PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -# B_s decays. -# ------------------------------------------------------- -# whb&fkw 3/28/01 Taken from fkw's QQ tables. -# most dubious part are the B to baryons. -# fkw 4/28/00 made the Bs parallel to the Bd as best as I could -# ------------------------------------------------------- -Decay B_s0 -0.0210 D_s- e+ nu_e PHOTOS HQET2 1.185 1.081; -0.0490 D_s*- e+ nu_e PHOTOS HQET2 1.207 0.920 1.406 0.853; -0.0040 D_s1- e+ nu_e PHOTOS ISGW2; -0.0040 D_s0*- e+ nu_e PHOTOS ISGW2; -0.0070 D'_s1- e+ nu_e PHOTOS ISGW2; -0.0070 D_s2*- e+ nu_e PHOTOS ISGW2; -0.0210 D_s- mu+ nu_mu PHOTOS HQET2 1.185 1.081; -0.0490 D_s*- mu+ nu_mu PHOTOS HQET2 1.207 0.920 1.406 0.853; -0.0040 D_s1- mu+ nu_mu PHOTOS ISGW2; -0.0040 D_s0*- mu+ nu_mu PHOTOS ISGW2; -0.0070 D'_s1- mu+ nu_mu PHOTOS ISGW2; -0.0070 D_s2*- mu+ nu_mu PHOTOS ISGW2; -#fkw 5/04/01 changed these to account for taking out non-res -#0.0070 D_s- tau+ nu_tau ISGW2; -#0.0150 D_s*- tau+ nu_tau ISGW2; -#0.0013 D_s1- tau+ nu_tau ISGW2; -#0.0013 D_s0*- tau+ nu_tau ISGW2; -#0.0023 D'_s1- tau+ nu_tau ISGW2; -#0.0023 D_s2*- tau+ nu_tau ISGW2; -0.0080 D_s- tau+ nu_tau ISGW2; -0.0160 D_s*- tau+ nu_tau ISGW2; -0.0018 D_s1- tau+ nu_tau ISGW2; -0.0018 D_s0*- tau+ nu_tau ISGW2; -0.0028 D'_s1- tau+ nu_tau ISGW2; -0.0028 D_s2*- tau+ nu_tau ISGW2; -# -# fkw 4/28/00 the next few are decays where a u\bar u or d\bar d is popped -# between the charm quark and the spectator. I can thus not -# just replace a D by a Ds as above when going from Bd to Bs. -# -# fkw 5/04/01 Had to take non-res out because it crashed EvtGen. -#0.0010 anti-D*0 K- tau+ nu_tau GOITY_ROBERTS; -#0.0010 D*- anti-K0 tau+ nu_tau GOITY_ROBERTS; -#0.0010 anti-D0 K- tau+ nu_tau GOITY_ROBERTS; -#0.0010 D- anti-K0 tau+ nu_tau GOITY_ROBERTS; -# fkw 4/28/00 B0 -> TAU D PI0 = 1/2 of TAU D PI- because of pi0 wave function -# However, the same factor of 1/2 doesn't apply to BS0 !!! -# fkw 3/28/01 There seem to be no semi-leptonic B to baryon decays in nature. -# I don't pretend to understand why. PDG 2000 has a limit of -# < 3.2e-3 where one might naively expect -# 10% * BR(B->/\c) = 0.1 * (6.4+-1.1)% -#0.0050 nu_e e+ B-Baryon -#0.0050 nu_mu mu+ B-Baryon -# -# b --> c (s c=) -# Sum = 11.44% -# 2-body = 4.72% -# more-body = 6.72% -0.010400000 D_s- D_s+ PHSP; #[Reconstructed PDG2011] -0.0099 D_s*+ D_s- SVS; -0.0099 D_s*- D_s+ SVS; -0.0197 D_s*- D_s*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -# fkw 4/28/00 more states with popped q\bar q. -# The one's here involve only popped and spectator. -# Popping stuff in the cs from the W comes further below. -# The same isospin comment applies here as above in the -# semi-leptonic decays with tau and popped q\bar q. -0.0096 D_s+ D- anti-K0 PHSP; -0.0096 D_s+ D0 K- PHSP; -0.0096 D_s*+ D- anti-K0 PHSP; -0.0096 D_s*+ anti-D0 K- PHSP; -# -0.0024 D_s+ D- pi0 anti-K0 PHSP; -0.0048 D_s+ anti-D0 pi- anti-K0 PHSP; -0.0048 D_s+ D- pi+ K- PHSP; -0.0024 D_s+ anti-D0 pi0 K- PHSP; -# -0.0024 D_s*+ D- pi0 anti-K0 PHSP; -0.0048 D_s*+ anti-D0 pi- anti-K0 PHSP; -0.0048 D_s*+ D- pi+ K- PHSP; -0.0024 D_s*+ anti-D0 pi0 K- PHSP; -# -# -# b --> (c ) (c ) (s ) -# Sum = 8.0% -# DDK amplitudes R.A.Briere 10/97 -# fkw 4/28/00 these are q\bar q popping that don't involve the spectator -# Bd->Bs just involves switching the c\bar d to c\bar s. -# -0.0150 D_s*- D*0 K+ PHSP; -0.0150 D_s*- D*+ K0 PHSP; -0.0050 D_s*- D0 K+ PHSP; -0.0050 D_s*- D+ K0 PHSP; -0.0050 D_s- D*0 K+ PHSP; -0.0050 D_s- D*+ K0 PHSP; -0.0020 D_s- D0 K+ PHSP; -0.0020 D_s- D+ K0 PHSP; -0.0030 D_s*- D*0 K*+ PHSP; -0.0030 D_s*- D*+ K*0 PHSP; -0.0050 D_s*- D0 K*+ PHSP; -0.0050 D_s*- D+ K*0 PHSP; -0.0025 D_s- D*0 K*+ PHSP; -0.0025 D_s- D*+ K*0 PHSP; -0.0025 D_s- D0 K*+ PHSP; -0.0025 D_s- D+ K*0 PHSP; -# -# -# b --> c (d c=) -# Sum = 1.36% -0.0017 D_s+ D- PHSP; -0.0017 D*- D_s+ SVS; -0.0017 D_s*+ D- SVS; -0.0017 D_s*+ D*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -# fkw 4/38/00 more popping at the lower vertex -# but with upper vertex cabbibo suppressed. -0.0007 D+ D- anti-K0 PHSP; -0.0007 D+ D0 K- PHSP; -0.0007 D*+ D- anti-K0 PHSP; -0.0007 D*+ anti-D0 K- PHSP; -# -0.0003 D+ D- pi0 anti-K0 PHSP; -0.0007 D+ anti-D0 pi- anti-K0 PHSP; -0.0003 D+ D- pi+ K- PHSP; -0.0007 D+ anti-D0 pi0 K- PHSP; -# -0.0003 D*+ D- pi0 anti-K0 PHSP; -0.0007 D*+ anti-D0 pi- anti-K0 PHSP; -0.0003 D*+ D- pi+ K- PHSP; -0.0007 D*+ anti-D0 pi0 K- PHSP; -# -# b --> c (u s=) -# exclusive -# Sum = 0.9% -0.00015 D_s*- K+ SVS; -0.000150000 D_s- K+ PHSP; #[Reconstructed PDG2011] -0.00030 D_s*- K*+ SVV_HELAMP 0.0283 0.0 0.932 0.0 0.228 0.0; -0.00030 K*+ D_s- SVS; -# -# fkw 4/28/00 Strategy for charmonium modes: -# Take Bd BR's, replace spectator, -# assume etaprime = 2/3 ss -# and eta = 1/3 ss -# -# Note: Just for kicks I gave the c\bar c decays a small piece that is -# self tagging. See if you can find it. This is already in -# the B0 decays in cleo's version of decay.dec . -# -# B --> (c c=) (s s=) -# 2.65% -# should be: psi = 0.80% CLNS 94/1315 but isn't quite right. -0.00064 J/psi eta' SVS; -0.00032 J/psi eta SVS; -0.001300000 J/psi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.00008 J/psi K0 SVS; -0.00070 J/psi K- K+ PHSP; -0.00070 J/psi anti-K0 K0 PHSP; -0.00070 J/psi K0 K- pi+ PHSP; -0.00070 J/psi anti-K0 K0 pi0 PHSP; -0.00070 J/psi K- K+ pi0 PHSP; -# LHCb PR 04/02/04 Add (cc) phi n pi(+/0) -0.00039 J/psi phi pi+ pi- PHSP; -0.00039 J/psi phi pi0 pi0 PHSP; -# LHCb PR Add (cc) phi eta(') + npi like in CDF QQ -0.0002 J/psi eta pi+ pi- PHSP; -0.0002 J/psi eta pi0 pi0 PHSP; -0.0004 J/psi eta' pi+ pi- PHSP; -0.0004 J/psi eta' pi0 pi0 PHSP; -0.0002 J/psi pi+ pi- PHSP; -0.0002 J/psi pi0 pi0 PHSP; -# psi' = 0.34% CLNS 94/1315 -0.000465 psi(2S) eta' SVS; -0.000235 psi(2S) eta SVS; -0.000680000 psi(2S) phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.0003 psi(2S) K- K+ PHSP; -0.0003 psi(2S) anti-K0 K0 PHSP; -0.0003 psi(2S) K0 K- pi+ PHSP; -0.0003 psi(2S) anti-K0 K0 pi0 PHSP; -0.0003 psi(2S) K- K+ pi0 PHSP; -0.00034 psi(2S) phi pi+ pi- PHSP; -0.00034 psi(2S) phi pi0 pi0 PHSP; -0.0002 psi(2S) eta pi+ pi- PHSP; -0.0002 psi(2S) eta pi0 pi0 PHSP; -0.0004 psi(2S) eta' pi+ pi- PHSP; -0.0004 psi(2S) eta' pi0 pi0 PHSP; -0.0002 psi(2S) pi+ pi- PHSP; -0.0002 psi(2S) pi0 pi0 PHSP; -# -# chic0 = 0.05% (20% of chic2) -# Bodwin et.al. Phys Rev D46 1992 -0.00010 chi_c0 eta' PHSP; -0.00005 chi_c0 eta PHSP; -0.00020 phi chi_c0 SVS; -0.00003 chi_c0 K- K+ PHSP; -0.00003 chi_c0 anti-K0 K0 PHSP; -0.00003 chi_c0 K0 K- pi+ PHSP; -0.00003 chi_c0 anti-K0 K0 pi0 PHSP; -0.00003 chi_c0 K- K+ pi0 PHSP; -# -# -# chic1 = 0.37% CLNS 94/1315 -0.0007 chi_c1 eta' SVS; -0.0003 chi_c1 eta SVS; -0.0014 chi_c1 phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00026 chi_c1 K- K+ PHSP; -0.00026 chi_c1 anti-K0 K0 PHSP; -0.00026 chi_c1 K0 K- pi+ PHSP; -0.00026 chi_c1 anti-K0 K0 pi0 PHSP; -0.00026 chi_c1 K- K+ pi0 PHSP; -0.00040 chi_c1 phi pi+ pi- PHSP; -0.00040 chi_c1 phi pi0 pi0 PHSP; -0.0001 chi_c1 eta pi+ pi- PHSP; -0.0001 chi_c1 eta pi0 pi0 PHSP; -0.0002 chi_c1 eta' pi+ pi- PHSP; -0.0002 chi_c1 eta' pi0 pi0 PHSP; -# -# -# chic2 = 0.25% CLNS 94/1315 -0.000465 chi_c2 eta' STS; -0.000235 chi_c2 eta STS; -#0.0010 chi_c2 phi STV; whb: doesn't exist -0.00016 chi_c2 K- K+ PHSP; -0.00016 chi_c2 anti-K0 K0 PHSP; -0.00016 chi_c2 K0 K- pi+ PHSP; -0.00016 chi_c2 anti-K0 K0 pi0 PHSP; -0.00016 chi_c2 K- K+ pi0 PHSP; -# -# -# etac(1s) = 0.41% Guess: CBX 97-65 -0.0008 eta_c eta' PHSP; -0.0004 eta_c eta PHSP; -0.0015 phi eta_c SVS; -0.00028 eta_c K- K+ PHSP; -0.00028 eta_c K0 anti-K0 PHSP; -0.00028 eta_c K0 K- pi+ PHSP; -0.00028 eta_c K0 anti-K0 pi0 PHSP; -0.00028 eta_c K- K+ pi0 PHSP; -0.00040 eta_c phi pi+ pi- PHSP; -0.00040 eta_c phi pi0 pi0 PHSP; -0.0001 eta_c eta pi+ pi- PHSP; -0.0001 eta_c eta pi0 pi0 PHSP; -0.0002 eta_c eta' pi+ pi- PHSP; -0.0002 eta_c eta' pi0 pi0 PHSP; -# -# -# etac(2s) = 0.18% Guess: CBX 97-65 -0.0004 eta_c(2S) eta' PHSP; -0.0002 eta_c(2S) eta PHSP; -0.0006 phi eta_c(2S) SVS; -0.00012 eta_c(2S) K- K+ PHSP; -0.00012 eta_c(2S) anti-K0 K0 PHSP; -0.00012 eta_c(2S) K0 K- pi+ PHSP; -0.00012 eta_c(2S) anti-K0 K0 pi0 PHSP; -0.00012 eta_c(2S) K- K+ pi0 PHSP; -# -# -# hc = 0.25% (100% of chic2) -# Bodwin et.al. Phys Rev D46 1992 -0.000465 h_c eta' SVS; -0.000235 h_c eta SVS; -0.0010 h_c phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00016 h_c K- K+ PHSP; -0.00016 h_c anti-K0 K0 PHSP; -0.00016 h_c K0 K- pi+ PHSP; -0.00016 h_c anti-K0 K0 pi0 PHSP; -0.00016 h_c K- K+ pi0 PHSP; -# -# -# b --> c (d u=) -# Exclusive Channels = 6.33% -# fkw 4/28/00 I rearanged this a bit after copying it from -# B0B decay list. -# -# first come the external W-emission decays: -# -0.0008 D_s1- pi+ SVS; -0.0021 D_s1- rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.0013 D_s2*- pi+ STS; -#0.0037 D_s2*- rho+ STV; #whb: STV does not exist yet -# -0.0027 D_s*- pi+ SVS; -0.003200000 D_s- pi+ PHSP; #[Reconstructed PDG2011] -0.0073 rho+ D_s- SVS; -0.0070 D_s*- rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -0.0085 a_1+ D_s- SVS; -0.0009 D_s- rho0 pi+ PHSP; -0.0009 D_s- rho+ pi0 PHSP; -0.008400000 D_s- pi- pi+ pi+ PHSP; #[Reconstructed PDG2011] -0.0009 D_s- pi0 pi+ pi0 PHSP; -# -0.0122 D_s*- a_1+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.0010 D_s*- rho0 pi+ PHSP; -0.0010 D_s*- rho+ pi0 PHSP; -0.0077 D_s*- pi- pi+ pi+ PHSP; -0.0010 D_s*- pi0 pi+ pi0 PHSP; -# -# then the color suppressed decays: -# -# fkw 4/28/00 color suppressed modes bumped up by factor 2 from isospin -# i.e. Bs doesn't have the factor 2 suppression Bd has. -0.0002 anti-D*0 anti-K0 SVS; -0.0002 anti-D0 anti-K0 PHSP; -0.0002 anti-K*0 anti-D0 SVS; -0.0002 anti-D*0 anti-K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -# PR LHCb : add p ppbar mode -0.000000001 p+ anti-p- PHSP; -# fkw 4/28/00 ignore the internal W emission decays with additional -# q\bar q popping. -# -# Here come the various types of "inclusive unknown" decays: -# -# Start with B to baryons: -# fkw 3/28/01 I don't know what I'm doing here!!! This needs to be checked!!! -# Mark Whitehead 30/4/2010 Weight PYTHIA to get Total BF=100% -0.019574780 anti-cs_0 ud_0 PYTHIA 63; -0.039129957 anti-cs_1 ud_1 PYTHIA 63; -# -# Next come external W-emission: -0.301256716 u anti-d anti-c s PYTHIA 23; -0.048443906 u anti-d anti-c s PYTHIA 65; -# Now the internal W-emission: -0.019086636 u anti-c anti-d s PYTHIA 23; -# Then some b->u external W-emission with upper vertex charm -0.003912996 c anti-s anti-u s PYTHIA 23; -# and finally some cabibbo suppressed external and internal W-emission -0.014683536 u anti-s anti-c s PYTHIA 23; -0.002152148 u anti-s anti-c s PYTHIA 65; -0.000880424 u anti-c anti-s s PYTHIA 23; -# and some c cbar d stuff as well as c cbar s -0.005391151 c anti-d anti-c s PYTHIA 43; -0.001468354 c anti-d anti-c s PYTHIA 43; -# and some miscellaneous charmless stuff -0.003521696 u anti-u anti-d s PYTHIA 23; -0.000684774 d anti-d anti-d s PYTHIA 23; -0.000880424 s anti-s anti-d s PYTHIA 23; -0.001956498 u anti-u anti-s s PYTHIA 23; -0.001565198 d anti-d anti-s s PYTHIA 23; -0.001271724 s anti-s anti-s s PYTHIA 23; -0.004891245 anti-s s PYTHIA 91; - -# fkw 5/10/00 the b->ulnu decays are loosely modelled according to B0 in EvtGen -0.000200 K- e+ nu_e PHOTOS ISGW2; -0.000300 K*- e+ nu_e PHOTOS ISGW2; -0.000300 K_1- e+ nu_e PHOTOS ISGW2; -0.000200 K'_1- e+ nu_e PHOTOS ISGW2; -# -# -0.000200 K- mu+ nu_mu PHOTOS ISGW2; -0.000300 K*- mu+ nu_mu PHOTOS ISGW2; -0.000300 K_1- mu+ nu_mu PHOTOS ISGW2; -0.000200 K'_1- mu+ nu_mu PHOTOS ISGW2; -# ------------- -# 2e-3 for charmless semi-leptonic - -#*********************************************************** -# -# fkw 5/10/00 -# -# ideas behind these (largely) made up Br's for charmless -# hadronic B decays: -# (1) any PP and PV modes that are used or calculated -# in globfit code by Hou,Smith,Wuerthwein are taken from -# the latest fit i.e. May2000 -# (2) anything else is from Ali,Kramer,Lue -# -# None of this should be taken too serious! -# -#*********************************************************** -# Mark Whitehead 30/4/2010 Update K+K- -# PR LHCb update Br Bs -> K- K+ -0.000033000 K- K+ PHSP; #[Reconstructed PDG2011] -# PR LHCb 4/07/04 Split in KS/KL -0.0000000 anti-K0 K0 PHSP; -0.0000100 K_S0 K_S0 PHSP; -0.0000100 K_L0 K_L0 PHSP; -# -0.000004900 pi+ K- PHSP; #[Reconstructed PDG2011] -0.0000002 pi0 anti-K0 PHSP; -# PR LHCb 4/07/04 add Bs -> pi+ pi- -0.00000001 pi+ pi- PHSP; -# -0.0000012 omega eta SVS; -0.0000025 omega eta' SVS; -0.0000013 phi eta SVS; -0.0000025 phi eta' SVS; -0.00000008 omega K0 SVS; -0.000000002 phi K0 SVS; -# -0.0000250 K*- pi+ SVS; -0.0000120 rho+ K- SVS; -0.00000002 rho0 K0 SVS; -0.00000002 anti-K*0 pi0 SVS; -# -0.0000046 K*+ K- SVS; -# PR LHCb 4/07/04 split in KS/KL -0.0000000 K*0 anti-K0 SVS; -0.0000020 K*0 K_S0 SVS; -0.0000020 K*0 K_L0 SVS; -0.0000082 K*- K+ SVS; -# PR LHCb 4/07/04 split in KS/KL -0.0000000 anti-K*0 K0 SVS; -0.0000020 anti-K*0 K_S0 SVS; -0.0000020 anti-K*0 K_L0 SVS; -# -0.0000580 eta' eta' PHSP; -0.0000250 eta' eta PHSP; -0.0000040 eta eta PHSP; -### Already included above 0.0000200 phi eta SVS; -### Already included above 0.0000100 phi eta' SVS; -# -#next comes stuff from Ali,Kramer,Lue PRD58, 094009 FOR NC=3 -0.00000007 anti-K0 eta' PHSP; -0.00000023 anti-K0 eta PHSP; -0.000000021 anti-K*0 eta' SVS; -0.00000007 anti-K*0 eta SVS; -# -#next comes stuff from Ali,Kramer,Lue PRD58, 094009 FOR NC=3 -# for vector-vector final states -0.000020 rho+ K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.0000008 rho0 anti-K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.000000005 omega anti-K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -0.000006 K*- K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# PR LHCb Update BR -0.000004 anti-K*0 K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.000014000 phi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000000004 phi anti-K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -# decays that go via b->d penguins -#### Already included above 0.0000004 phi anti-K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -#PR LHCb add Bs -> mu+ mu- -0.0000000035 mu+ mu- PHSP; -#PR LHCb 04/08/2004 add Bs -> tau+ tau- (BR not to take too seriously) -0.0000000020 tau+ tau- PHSP; -# PR LHCb 04/05/2004 : add Bs -> phi gamma -0.000057000 phi gamma SVP_HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -# PR LHCb 04/08/2004 : add Bs -> phi mu mu, phi e e -0.0000023 phi e+ e- BTOSLLALI; -0.0000023 phi mu+ mu- BTOSLLALI; -# PR LHCb 16 Apr 2004 : add Bs -> gamma gamma -0.0000005 gamma gamma PHSP; -#-------------- -# 257.122e-6 for all the charmless hadronic -# -0.000150000 D_s+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay - -# whb: QQ B_c included- Near end of File -#Decay B_c- -#CHANNEL 0 0.0700 TAU- NUTB -#CHANNEL 1 0.1100 NUEB E- *CC* -#CHANNEL 1 0.1100 NUMB MU- *CC* -#CHANNEL 1 0.0300 NUTB TAU- *CC* -#CHANNEL 0 0.3400 *DU* *CC* -#CHANNEL 0 0.0700 *SC* *CC* -#CHANNEL 0 0.2700 *SC* -#0.0700 tau- anti-nu_tau PHSP; -#0.1100 anti-nu_e e- *CC* Simpleleptonic; -#0.1100 anti-nu_mu mu- *CC* Simple leptonic; -#0.0300 anti-nu_tau tau- *CC* Simple leptonic; -#0.3400 *DU* *CC* PHSP; -#0.0700 *SC* *CC* PHSP; -#0.2700 *SC* PHSP; -#Enddecay -# -#Decay B_c+ -#CHANNEL 0 0.0700 TAU+ NUT -#CHANNEL 1 0.1100 NUE E+ *CC* -#CHANNEL 1 0.1100 NUM MU+ *CC* -#CHANNEL 1 0.0300 NUT TAU+ *CC* -#CHANNEL 0 0.3400 *UD* *CC* -#CHANNEL 0 0.0700 *CS* *CC* -#CHANNEL 0 0.2700 *CS* -#0.0700 tau+ nu_tau PHSP; -#0.1100 nu_e E+ *CC* Simple leptonic; -#0.1100 nu_mu mu+ *CC* Simple leptonic; -#0.0300 nu_tau tau+ *CC* Simple leptonic; -#0.3400 *UD* *CC* PHSP; -#0.0700 *CS* *CC* PHSP; -#0.2700 *CS* PHSP; -#Enddecay - -# -# Updated to PDG 2008 -# -Decay tau- -0.154002925 e- anti-nu_e nu_tau PHOTOS TAULNUNU; #[Reconstructed PDG2011] -0.170000000 mu- anti-nu_mu nu_tau PHOTOS TAULNUNU; #[Reconstructed PDG2011] -0.109100000 pi- nu_tau TAUSCALARNU; #[Reconstructed PDG2011] -0.006960000 K- nu_tau TAUSCALARNU; #[Reconstructed PDG2011] -0.255100000 pi- pi0 nu_tau TAUHADNU -0.108 0.775 0.149 1.364 0.400; #[Reconstructed PDG2011] -0.001124109 nu_tau gamma pi- pi0 PYTHIA 21; -0.079301562 pi0 pi0 pi- nu_tau TAUHADNU -0.108 0.775 0.149 1.364 0.400 1.23 0.4; #[Reconstructed PDG2011] -0.000385656 nu_tau K- pi0 pi0 PYTHIA 21; -0.008508640 nu_tau pi- pi0 pi0 pi0 PYTHIA 21; -0.000864699 nu_tau pi- pi0 pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -#0.2515 rho- nu_tau TAUVECTORNU; -#0.1790 a_1- nu_tau TAUVECTORNU; -# Modes with K0s -# -0.000319939 nu_tau pi- anti-K0 PYTHIA 21; -0.001590000 nu_tau K- K0 PYTHIA 21; -0.001700000 nu_tau K0 pi- anti-K0 PYTHIA 21; -0.001590000 nu_tau K- pi0 K0 PYTHIA 21; -0.004000000 nu_tau pi- anti-K0 pi0 PYTHIA 21; -# 3 Charged Particles -# -0.093200000 pi- pi- pi+ nu_tau TAUHADNU -0.108 0.775 0.149 1.364 0.400 1.23 0.4; #[Reconstructed PDG2011] -0.046100000 nu_tau pi- pi+ pi- pi0 PYTHIA 21; -0.000501526 nu_tau pi- pi- pi+ pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.000155646 nu_tau pi- pi- pi+ pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.003420000 nu_tau K- pi+ pi- PYTHIA 21; -0.001360000 nu_tau K- pi+ pi- pi0 PYTHIA 21; -0.001400000 nu_tau K- pi- K+ PYTHIA 21; -0.000015800 nu_tau K- K+ K- PYTHIA 21; -# 5 Charged Particles -# -0.000700406 nu_tau pi- pi- pi- pi+ pi+ PHSP; #[Reconstructed PDG2011] -0.000129705 nu_tau pi- pi- pi- pi+ pi+ pi0 PHSP; #[Reconstructed PDG2011] -# Misc other modes -# -0.012000000 K*- nu_tau TAUVECTORNU; #[Reconstructed PDG2011] -0.001390000 nu_tau eta pi- pi0 PYTHIA 21; -0.003199387 nu_tau pi- omega pi0 PYTHIA 21; -0.000410000 nu_tau K- omega PYTHIA 21; -0.002200000 anti-K*0 pi- nu_tau PHSP; #[Reconstructed PDG2011] -0.002100000 K*0 K- nu_tau PHSP; #[Reconstructed PDG2011] -0.000034000 phi pi- nu_tau PHSP; #[Reconstructed PDG2011] -0.000037000 phi K- nu_tau PHSP; #[Reconstructed PDG2011] -0.003600000 mu- anti-nu_mu nu_tau gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.017500000 e- anti-nu_e nu_tau gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.004290000 K- pi0 nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.002200000 anti-K0 rho- nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000260000 pi- anti-K0 pi0 pi0 nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000310000 pi- K0 anti-K0 pi0 nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000061000 K- K+ pi- pi0 nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000028000 e- e- e+ anti-nu_e nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.004700000 K_1- nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001700000 K'_1- nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001500000 K'*- nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000150000 eta pi- pi0 pi0 nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000161000 eta K- nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000138000 eta K*- nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000048000 eta K- pi0 nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000093000 eta anti-K0 pi- nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000360000 f_1 pi- nu_tau PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -CDecay tau+ -# -# Vector Mesons Updated PDG 2008 -# -Decay D*+ -0.6770 D0 pi+ VSS; -0.3070 D+ pi0 VSS; -0.0160 D+ gamma VSP_PWAVE; -Enddecay -Decay D*- -0.6770 anti-D0 pi- VSS; -0.3070 D- pi0 VSS; -0.0160 D- gamma VSP_PWAVE; -Enddecay -Decay D*0 -0.619000000 D0 pi0 VSS; #[Reconstructed PDG2011] -0.381000000 D0 gamma VSP_PWAVE; #[Reconstructed PDG2011] -Enddecay -Decay anti-D*0 -0.6190 anti-D0 pi0 VSS; -0.3810 anti-D0 gamma VSP_PWAVE; -Enddecay -# -Decay D_s*+ -0.942000000 D_s+ gamma VSP_PWAVE; #[Reconstructed PDG2011] -0.058000000 D_s+ pi0 VSS; #[Reconstructed PDG2011] -Enddecay -Decay D_s*- -0.942000000 D_s- gamma VSP_PWAVE; #[Reconstructed PDG2011] -0.058000000 D_s- pi0 VSS; #[Reconstructed PDG2011] -Enddecay -# -# -# D+ Meson -# -Decay D+ -0.055200000 anti-K*0 e+ nu_e PHOTOS ISGW2; # PDG2014 -0.088300000 anti-K0 e+ nu_e PHOTOS ISGW2; # PDG2014 -0.002773020 anti-K_10 e+ nu_e PHOTOS ISGW2; # Keep same as in 2010 version -0.002927076 anti-K_2*0 e+ nu_e PHOTOS ISGW2; # Keep same as in 2010 version -0.004050000 pi0 e+ nu_e PHOTOS ISGW2; # PDG2014 -0.001140000 eta e+ nu_e PHOTOS ISGW2; # PDG2014 -0.000220000 eta' e+ nu_e PHOTOS ISGW2; # PDG2014 -0.002180000 rho0 e+ nu_e PHOTOS ISGW2; # PDG2014 -0.001820000 omega e+ nu_e PHOTOS ISGW2; # PDG2014 -0.003321725 K- pi+ e+ nu_e PHOTOS PHSP; # PDG2014 (subtracted K*)+tiny bit to have sum=1 -0.001200122 anti-K0 pi0 e+ nu_e PHOTOS PHSP; # Keep same as in 2010 version+tiny bit to have sum=1 -# -0.052800000 anti-K*0 mu+ nu_mu PHOTOS ISGW2; # PDG2014 -0.092000000 anti-K0 mu+ nu_mu PHOTOS ISGW2; # PDG2014 -0.002773020 anti-K_10 mu+ nu_mu PHOTOS ISGW2; # Keep same as in 2010 version -0.002927076 anti-K_2*0 mu+ nu_mu PHOTOS ISGW2; # Keep same as in 2010 version -0.004050000 pi0 mu+ nu_mu PHOTOS ISGW2; # Same as electron -0.001140000 eta mu+ nu_mu PHOTOS ISGW2; # Same as electron -0.002200000 eta' mu+ nu_mu PHOTOS ISGW2; # Same as electron -0.002400000 rho0 mu+ nu_mu PHOTOS ISGW2; # PDG2014 -0.001820000 omega mu+ nu_mu PHOTOS ISGW2; # Same as electron -0.002921725 K- pi+ mu+ nu_mu PHOTOS PHSP; # PDG2014 (subtracted K*)+tiny bit to have sum=1 -0.001200122 anti-K0 pi0 mu+ nu_mu PHOTOS PHSP; # Keep same as in 2010 version+tiny bit to have sum=1 -# -# -0.000382000 mu+ nu_mu PHOTOS SLN; #[Reconstructed PDG2011] -0.000770283 tau+ nu_tau SLN; #[Reconstructed PDG2011] -# -0.014900000 K_S0 pi+ PHSP; #[Reconstructed PDG2011] -0.014600000 K_L0 pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 pi+ PHSP; #[Reconstructed PDG2011] -# -0.025950843 a_1+ K_S0 SVS; #[Reconstructed PDG2011] -0.025950843 a_1+ K_L0 SVS; #[Reconstructed PDG2011] -0.000000000 a_1+ anti-K0 SVS; #[Reconstructed PDG2011] -# -0.027090862 anti-K'_10 pi+ SVS; #[Reconstructed PDG2011] -#0.0115 anti-K_0*0N pi+ PHSP; -0.013387523 anti-K*0 rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -# -# the Dalitz mode below includes K*bar(892)0 pi+, -# K*bar(1430)0 pi+, and K*bar(1680)0 pi+ resonances. -0.094000000 K- pi+ pi+ D_DALITZ; #[Reconstructed PDG2011] -# the Dalitz mode below includes K0bar rho+, -# and K*bar(892)0 pi+ resonances -0.069900000 K_S0 pi+ pi0 D_DALITZ; # PDG2014 -0.069900000 K_L0 pi+ pi0 D_DALITZ; # Assume to be same as K_S0 pi+ pi0 -0.000000000 anti-K0 pi+ pi0 D_DALITZ; #[Reconstructed PDG2011] -#0.0100 anti-K0 eta pi+ PHSP; -# -0.001247859 K_S0 rho0 pi+ PHSP; #[Reconstructed PDG2011] -0.001247859 K_L0 rho0 pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 rho0 pi+ PHSP; #[Reconstructed PDG2011] -# -0.003851416 anti-K0 omega pi+ PHSP; #[Reconstructed PDG2011] -0.007032686 K- rho+ pi+ PHSP; #[Reconstructed PDG2011] -0.009274210 K*- pi+ pi+ PHSP; #[Reconstructed PDG2011] -0.047187552 anti-K*0 pi0 pi+ PHSP; #[Reconstructed PDG2011] -#0.0100 anti-K*0 eta pi+ PHSP; -0.001101505 anti-K*0 rho0 pi+ PHSP; #[Reconstructed PDG2011] -0.003851416 anti-K*0 omega pi+ PHSP; #[Reconstructed PDG2011] -#0.0100 K*- rho+ pi+ PHSP; -# -0.008473116 K- pi+ pi+ pi0 PHSP; #[Reconstructed PDG2011] -# -#0.002472609 K_S0 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -#0.002472609 K_L0 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.031200000 K_S0 pi+ pi+ pi- PHSP; # PDG2014 (why it was much smaller?) -0.031200000 K_L0 pi+ pi+ pi- PHSP; # PDG2014 -0.000000000 anti-K0 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -# -#0.0188 anti-K0 pi+ pi0 pi0 PHSP; -0.005700000 K- pi+ pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.003851416 K- pi+ pi+ pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.006701464 anti-K0 pi+ pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.002695991 anti-K0 pi+ pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.004600000 K_S0 K_S0 K+ PHSP; #[Reconstructed PDG2011] -0.003111944 K_L0 K_L0 K+ PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 anti-K0 K+ PHSP; #[Reconstructed PDG2011] -# -0.004660214 phi pi+ SVS; #[Reconstructed PDG2011] -0.023000000 phi pi+ pi0 PHSP; #[Reconstructed PDG2011] -# -0.002860000 K_S0 K+ PHSP; #[Reconstructed PDG2011] -0.002195307 K_L0 K+ PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K+ PHSP; #[Reconstructed PDG2011] -# -0.002179902 anti-K*0 K+ SVS; #[Reconstructed PDG2011] -# -0.016000000 K*+ K_S0 SVS; #[Reconstructed PDG2011] -0.011145999 K*+ K_L0 SVS; #[Reconstructed PDG2011] -0.000000000 K*+ anti-K0 SVS; #[Reconstructed PDG2011] -# -#0.0180 anti-K*0 K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.002826940 K+ K- pi+ PHSP; #[Reconstructed PDG2011] -0.000770283 K+ anti-K0 pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K0 pi+ PHSP; #[Reconstructed PDG2011] -0.000770283 K*+ K- pi+ PHSP; #[Reconstructed PDG2011] -0.000770283 K+ K*- pi+ PHSP; #[Reconstructed PDG2011] -0.000770283 K*+ anti-K0 pi0 PHSP; #[Reconstructed PDG2011] -0.000770283 K+ anti-K*0 pi0 PHSP; #[Reconstructed PDG2011] -0.000770283 anti-K*0 K0 pi+ PHSP; #[Reconstructed PDG2011] -0.000770283 anti-K0 K*0 pi+ PHSP; #[Reconstructed PDG2011] -# -0.001260000 pi0 pi+ PHSP; #[Reconstructed PDG2011] -0.000830000 rho0 pi+ SVS; #[Reconstructed PDG2011] -0.002440000 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.004700000 pi+ pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.011600000 pi+ pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.003851416 pi+ pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.003430000 eta pi+ PHSP; #[Reconstructed PDG2011] -0.004400000 eta' pi+ PHSP; #[Reconstructed PDG2011] -0.001380000 eta pi+ pi0 PHSP; #[Reconstructed PDG2011] -0.002310850 eta pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.001540566 eta pi+ pi0 pi0 PHSP; #[Reconstructed PDG2011] -#lange jul22,2002 -0.001660000 pi+ pi+ pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -# -# March 2009 New Modes -0.009300000 anti-K*0 a_1+ PHSP; #[Reconstructed PDG2011] -0.010545178 K+ K- pi+ pi0 PHSP; #[Reconstructed PDG2011] -# -0.001740000 K+ K_S0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.001270967 K+ K_L0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 K+ anti-K0 pi+ pi- PHSP; #[Reconstructed PDG2011] -# -0.002380000 K_S0 K- pi+ pi+ PHSP; #[Reconstructed PDG2011] -0.001756246 K_L0 K- pi+ pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 K0 K- pi+ pi+ PHSP; #[Reconstructed PDG2011] -# -0.000230000 K+ K- pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -# -0.000240000 K+ K- K_S0 pi+ PHSP; #[Reconstructed PDG2011] -0.000161759 K+ K- K_L0 pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 K+ K- anti-K0 pi+ PHSP; #[Reconstructed PDG2011] -# Doubly Cabibbo suppressed modes -0.000237000 K+ pi0 PHSP; #[Reconstructed PDG2011] -0.000332000 K+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000089000 K+ K+ K- PHSP; #[Reconstructed PDG2011] -0.001720000 K- rho0 pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001600000 eta' pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000210000 K+ rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -# -Decay D- -0.055200000 K*0 e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.088300000 K0 e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.002773020 K_10 e- anti-nu_e PHOTOS ISGW2; # Keep same as in 2010 version -0.002927076 K_2*0 e- anti-nu_e PHOTOS ISGW2; # Keep same as in 2010 version -0.004050000 pi0 e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.001140000 eta e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.000220000 eta' e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.002180000 rho0 e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.001820000 omega e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.003321725 K+ pi- e- anti-nu_e PHOTOS PHSP; # PDG2014 (subtracted K*)+tiny bit to have sum=1 -0.001200122 K0 pi0 e- anti-nu_e PHOTOS PHSP; # Keep same as in 2010 version+tiny bit to have sum=1 -# -0.052800000 K*0 mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.092000000 K0 mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.002773020 K_10 mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.002927076 K_2*0 mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.004050000 pi0 mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.001140000 eta mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.002200000 eta' mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.002400000 rho0 mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.001820000 omega mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.002921725 K+ pi- mu- anti-nu_mu PHOTOS PHSP; #[Reconstructed PDG2011] -0.001200122 K0 pi0 mu- anti-nu_mu PHOTOS PHSP; #[Reconstructed PDG2011] -# -0.000382000 mu- anti-nu_mu PHOTOS SLN; #[Reconstructed PDG2011] -0.000770283 tau- anti-nu_tau SLN; #[Reconstructed PDG2011] -# -0.014900000 K_S0 pi- PHSP; #[Reconstructed PDG2011] -0.014600000 K_L0 pi- PHSP; #[Reconstructed PDG2011] -0.000000000 K0 pi- PHSP; #[Reconstructed PDG2011] -# -0.025950843 a_1- K_S0 SVS; #[Reconstructed PDG2011] -0.025950843 a_1- K_L0 SVS; #[Reconstructed PDG2011] -0.000000000 a_1- K0 SVS; #[Reconstructed PDG2011] -# -0.027090862 K'_10 pi- SVS; #[Reconstructed PDG2011] -#0.0115 K_0*0N pi- PHSP; -0.013387523 K*0 rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -# -# the Dalitz mode below includes K*(892)0 pi-, K*(1430)0 pi-, and K*(1680)0 pi- resonances. -0.094000000 K+ pi- pi- D_DALITZ; #[Reconstructed PDG2011] -# the Dalitz mode below includes K0 rho-, and K*(892)0 pi- resonances. -0.069900000 K_S0 pi- pi0 D_DALITZ; # PDG2014 -0.069900000 K_L0 pi- pi0 D_DALITZ; # Assume to be same as K_S0 pi- pi0 -0.000000000 K0 pi- pi0 D_DALITZ; #[Reconstructed PDG2011] -# -#0.0100 K0 eta pi- PHSP; -0.001247859 K_S0 rho0 pi- PHSP; #[Reconstructed PDG2011] -0.001247859 K_L0 rho0 pi- PHSP; #[Reconstructed PDG2011] -0.000000000 K0 rho0 pi- PHSP; #[Reconstructed PDG2011] -# -0.003851416 K0 omega pi- PHSP; #[Reconstructed PDG2011] -0.007032686 K+ rho- pi- PHSP; #[Reconstructed PDG2011] -0.009274210 K*+ pi- pi- PHSP; #[Reconstructed PDG2011] -0.047187552 K*0 pi0 pi- PHSP; #[Reconstructed PDG2011] -#0.0100 K*0 eta pi- PHSP; -0.001101505 K*0 rho0 pi- PHSP; #[Reconstructed PDG2011] -0.003851416 K*0 omega pi- PHSP; #[Reconstructed PDG2011] -#0.0100 K*+ rho- pi- PHSP; -# -0.008473116 K+ pi- pi- pi0 PHSP; #[Reconstructed PDG2011] -# -0.031200000 K_S0 pi- pi- pi+ PHSP; # PDG2014 (why it was much smaller?) -0.031200000 K_L0 pi- pi- pi+ PHSP; # PDG2014 -0.000000000 K0 pi- pi- pi+ PHSP; #[Reconstructed PDG2011] -# -#0.0188 K0 pi- pi0 pi0 PHSP; -0.005700000 K+ pi- pi- pi- pi+ PHSP; #[Reconstructed PDG2011] -0.003851416 K+ pi- pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.006701464 K0 pi- pi- pi+ pi0 PHSP; #[Reconstructed PDG2011] -0.002695991 K0 pi- pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.004600000 K_S0 K_S0 K- PHSP; #[Reconstructed PDG2011] -0.003111944 K_L0 K_L0 K- PHSP; #[Reconstructed PDG2011] -0.000000000 K0 K0 K- PHSP; #[Reconstructed PDG2011] -# -0.004660214 phi pi- SVS; #[Reconstructed PDG2011] -0.023000000 phi pi- pi0 PHSP; #[Reconstructed PDG2011] -# -0.002860000 K_S0 K- PHSP; #[Reconstructed PDG2011] -0.002195307 K_L0 K- PHSP; #[Reconstructed PDG2011] -0.000000000 K0 K- PHSP; #[Reconstructed PDG2011] -# -0.002179902 K*0 K- SVS; #[Reconstructed PDG2011] -# -0.016000000 K*- K_S0 SVS; #[Reconstructed PDG2011] -0.011145999 K*- K_L0 SVS; #[Reconstructed PDG2011] -0.000000000 K*- K0 SVS; #[Reconstructed PDG2011] -# -#0.0180 K*0 K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.002826940 K- K+ pi- PHSP; #[Reconstructed PDG2011] -0.000770283 K- K0 pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K0 pi- PHSP; #[Reconstructed PDG2011] -0.000770283 K*- K+ pi- PHSP; #[Reconstructed PDG2011] -0.000770283 K- K*+ pi- PHSP; #[Reconstructed PDG2011] -0.000770283 K*- K0 pi0 PHSP; #[Reconstructed PDG2011] -0.000770283 K- K*0 pi0 PHSP; #[Reconstructed PDG2011] -0.000770283 K*0 anti-K0 pi- PHSP; #[Reconstructed PDG2011] -0.000770283 K0 anti-K*0 pi- PHSP; #[Reconstructed PDG2011] -# -0.001260000 pi0 pi- PHSP; #[Reconstructed PDG2011] -0.000830000 rho0 pi- SVS; #[Reconstructed PDG2011] -0.002440000 pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.004700000 pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.011600000 pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.003851416 pi- pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.003430000 eta pi- PHSP; #[Reconstructed PDG2011] -0.004400000 eta' pi- PHSP; #[Reconstructed PDG2011] -0.001380000 eta pi- pi0 PHSP; #[Reconstructed PDG2011] -0.002310850 eta pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.001540566 eta pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] -#lange jul22,2002 -0.001660000 pi+ pi- pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -# -# March 2009 New Modes -0.009300000 K*0 a_1- PHSP; #[Reconstructed PDG2011] -0.010545178 K+ K- pi- pi0 PHSP; #[Reconstructed PDG2011] -# -0.001740000 K- K_S0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.001270967 K- K_L0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 K- K0 pi+ pi- PHSP; #[Reconstructed PDG2011] -# -0.002380000 K_S0 K+ pi- pi- PHSP; #[Reconstructed PDG2011] -0.001756246 K_L0 K+ pi- pi- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K+ pi- pi- PHSP; #[Reconstructed PDG2011] -# -0.000230000 K+ K- pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -# -0.000240000 K+ K- K_S0 pi- PHSP; #[Reconstructed PDG2011] -0.000161759 K+ K- K_L0 pi- PHSP; #[Reconstructed PDG2011] -0.000000000 K+ K- K0 pi- PHSP; #[Reconstructed PDG2011] -# Doubly Cabibbo suppressed modes -0.000237000 K- pi0 PHSP; #[Reconstructed PDG2011] -0.000332000 K- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000089000 K- K+ K- PHSP; #[Reconstructed PDG2011] -0.001720000 K+ rho0 pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001600000 eta' pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000210000 K- rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay K*BR -1.0000 anti-K0 pi0 VSS; -Enddecay -# -# -Decay D0 -# updated according to suggestions by P. Roudeau, -# using PDG2004 measurements and imposing the equality -# of sl partial widths for D+ and D0. -# Include additional decay anti-K0 pi- e+ nu_e , K- pi0 e+ nu_e. -# -0.021600000 K*- e+ nu_e PHOTOS ISGW2; # PDG2014 -0.035500000 K- e+ nu_e PHOTOS ISGW2; # PDG2014 -0.000760000 K_1- e+ nu_e PHOTOS ISGW2; # PDG2014 -0.001100000 K_2*- e+ nu_e PHOTOS ISGW2; # Small decrease as this is unmeasured -0.002890000 pi- e+ nu_e PHOTOS ISGW2; # PDG2014 -0.001770000 rho- e+ nu_e PHOTOS ISGW2; # PDG2014 -0.001080000 anti-K0 pi- e+ nu_e PHOTOS PHSP; # PDG2014 subtracting K* (decreased due large uncertaity ) -0.000400000 K- pi0 e+ nu_e PHOTOS PHSP; # PDG2014 subtracting K* (decreased due large uncertaity ) -# -0.021000000 K*- mu+ nu_mu PHOTOS ISGW2; # 1.1 * PDG2014 -0.034700000 K- mu+ nu_mu PHOTOS ISGW2; # 1.05 * PDG2014 -0.000076000 K_1- mu+ nu_mu PHOTOS ISGW2; # PDG2014 for electron -0.001100000 K_2*- mu+ nu_mu PHOTOS ISGW2; # copy from electron -0.002370000 pi- mu+ nu_mu PHOTOS ISGW2; # PDG2014 -0.002015940 rho- mu+ nu_mu PHOTOS ISGW2; # PDG2014 for electron -0.001080000 anti-K0 pi- mu+ nu_mu PHOTOS PHSP; # copy electron -0.000400000 K- pi0 mu+ nu_mu PHOTOS PHSP; # copy electron -# -0.038900000 K- pi+ PHSP; #[Reconstructed PDG2011] -# -0.012200000 K_S0 pi0 PHSP; #[Reconstructed PDG2011] -0.010000000 K_L0 pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.004290000 K_S0 eta PHSP; #[Reconstructed PDG2011] -0.003802795 K_L0 eta PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 eta PHSP; #[Reconstructed PDG2011] -# -0.009300000 K_S0 eta' PHSP; #[Reconstructed PDG2011] -0.008980094 K_L0 eta' PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 eta' PHSP; #[Reconstructed PDG2011] -# -0.011100000 omega K_S0 SVS; #[Reconstructed PDG2011] -0.010904400 omega K_L0 SVS; #[Reconstructed PDG2011] -0.000000000 omega anti-K0 SVS; #[Reconstructed PDG2011] -# -0.001603588 anti-K*0 eta SVS; #[Reconstructed PDG2011] -0.000916336 anti-K*0 eta' SVS; #[Reconstructed PDG2011] -0.078000000 a_1+ K- SVS; #[Reconstructed PDG2011] -0.067625607 K*- rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.015800000 anti-K*0 rho0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.011000000 anti-K*0 omega SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -# the Dalitz mode below includes K*bar(892)0 pi0, -# K*(892)- pi+, and K- rho(770)+ resonances -0.139000000 K- pi+ pi0 D_DALITZ; #[Reconstructed PDG2011] -0.006634274 K*BR pi0 SVS; #[Reconstructed PDG2011] -0.016000000 K_1- pi+ SVS; #[Reconstructed PDG2011] -0.006505987 anti-K_10 pi0 SVS; #[Reconstructed PDG2011] -# -# the Dalitz mode below includes K*(892)- pi+ and Kbar0 rho(770)0 resonances -# LHCb PR 09 Apr 2004 split into KS/KL -0.029400000 K_S0 pi+ pi- D_DALITZ; #[Reconstructed PDG2011] -0.027856619 K_L0 pi+ pi- D_DALITZ; #[Reconstructed PDG2011] -0.000000000 anti-K0 pi+ pi- D_DALITZ; #[Reconstructed PDG2011] -# -0.008300000 K_S0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.004425904 K_L0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.024000000 anti-K*0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.010629499 anti-K*0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.009163361 K*- pi+ pi0 PHSP; #[Reconstructed PDG2011] -0.006231086 K- rho+ pi0 PHSP; #[Reconstructed PDG2011] -0.005305586 K- pi+ rho0 PHSP; #[Reconstructed PDG2011] -0.019000000 K- pi+ omega PHSP; #[Reconstructed PDG2011] -0.009163361 K- pi+ eta PHSP; #[Reconstructed PDG2011] -0.007500000 K- pi+ eta' PHSP; #[Reconstructed PDG2011] -0.013300000 K- pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -# -0.054000000 K_S0 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.010079698 K_L0 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -# -# K- pi+ pi0 pi0 is (15 +/- 5)% in the PDG, but we decrease it to -# have everything add to 1 and get enough neutral kaons: -#0.02575 K- pi+ pi0 pi0 PHSP; -# -#0.0143 anti-K0 pi0 pi0 pi0 PHSP; -0.040316317 anti-K0 pi0 pi0 pi0 PHSP; # Add in to fill sum to 1. [MK June 2015] -0.000000000 K- pi+ pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.003482077 K- pi+ pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.002800000 K_S0 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.002684865 K_L0 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -# -#0.0638 anti-K0 pi+ pi- pi0 pi0 PHSP; -#0.0192 anti-K0 pi+ pi- pi0 pi0 pi0 PHSP; -# -0.002034266 phi K_S0 SVS; #[Reconstructed PDG2011] -0.002034266 phi K_L0 SVS; #[Reconstructed PDG2011] -0.000000000 phi anti-K0 SVS; #[Reconstructed PDG2011] -# -0.004650000 K_S0 K+ K- PHSP; #[Reconstructed PDG2011] -0.002785662 K_L0 K+ K- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K+ K- PHSP; #[Reconstructed PDG2011] -# -0.000950000 K_S0 K_S0 K_S0 PHSP; #[Reconstructed PDG2011] -0.003940000 K+ K- PHSP; #[Reconstructed PDG2011] -0.000190000 K_S0 K_S0 PHSP; #[Reconstructed PDG2011] -0.000366534 K_L0 K_L0 PHSP; #[Reconstructed PDG2011] -0.000366534 K*0 anti-K0 SVS; #[Reconstructed PDG2011] -# -0.000091634 anti-K*0 K_S0 SVS; #[Reconstructed PDG2011] -0.000091634 anti-K*0 K_L0 SVS; #[Reconstructed PDG2011] -0.000000000 anti-K*0 K0 SVS; #[Reconstructed PDG2011] -# -0.000485658 K*- K+ SVS; #[Reconstructed PDG2011] -0.001365341 K*+ K- SVS; #[Reconstructed PDG2011] -0.001282871 anti-K*0 K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000714742 phi pi0 SVS; #[Reconstructed PDG2011] -0.001007970 phi pi+ pi- PHSP; #[Reconstructed PDG2011] -0.002430000 K+ K- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.002749008 K+ K- pi0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.001280000 K_S0 K_S0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.001255381 K_L0 K_L0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K0 pi+ pi- PHSP; #[Reconstructed PDG2011] -# -0.001374504 anti-K0 K0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.001397000 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000800000 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.000640000 eta pi0 PHSP; #[Reconstructed PDG2011] -0.000810000 eta' pi0 PHSP; #[Reconstructed PDG2011] -0.001670000 eta eta PHSP; #[Reconstructed PDG2011] -0.009800000 rho+ pi- SVS; #[Reconstructed PDG2011] -0.004970000 rho- pi+ SVS; #[Reconstructed PDG2011] -0.003730000 rho0 pi0 SVS; #[Reconstructed PDG2011] -0.001209564 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000091634 pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.005620000 pi+ pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -0.009360000 pi+ pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.001510000 pi+ pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.005498017 pi+ pi- pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.000420000 pi+ pi- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -# -# Doubly Cabibbo suppressed decays: -0.000137450 pi- K+ PHSP; #[Reconstructed PDG2011] -0.000128287 pi- K*+ PHSP; #[Reconstructed PDG2011] -0.000274901 pi- K+ pi0 PHSP; #[Reconstructed PDG2011] -0.000247411 K+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -# PR LHCb - 19 Apr. 2004 Add D0 -> mu+ mu- -0.000000000 mu+ mu- PHSP; #[Reconstructed PDG2011] -# -# March 2009 New Modes -0.000140000 phi eta PHSP; #[Reconstructed PDG2011] -0.019000000 anti-K*0 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000220000 K- pi+ pi- pi+ pi- pi+ PHSP; #[Reconstructed PDG2011] -0.000641435 K+ K- pi0 PHSP; #[Reconstructed PDG2011] -0.003100000 K+ K- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000221000 K+ K- K- pi+ PHSP; #[Reconstructed PDG2011] -# -0.005600000 K_S0 eta pi0 PHSP; #[Reconstructed PDG2011] -0.003665345 K_L0 eta pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 eta pi0 PHSP; #[Reconstructed PDG2011] -# -0.002600000 K_S0 K+ pi- PHSP; #[Reconstructed PDG2011] -0.002382474 K_L0 K+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K+ pi- PHSP; #[Reconstructed PDG2011] -# -0.003500000 K_S0 K- pi+ PHSP; #[Reconstructed PDG2011] -0.003344627 K_L0 K- pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 K0 K- pi+ PHSP; #[Reconstructed PDG2011] -# -0.000310000 K_S0 K_S0 K+ pi- PHSP; #[Reconstructed PDG2011] -0.000293228 K_L0 K_L0 K+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K0 K+ pi- PHSP; #[Reconstructed PDG2011] -# -0.000310000 K_S0 K_S0 K- pi+ PHSP; #[Reconstructed PDG2011] -0.000293228 K_L0 K_L0 K- pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K0 K- pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 K- pi+ pi- e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001820000 rho0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001090000 eta pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001600000 omega pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000450000 eta' pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001260000 eta eta' PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000027000 phi gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000328000 anti-K*0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -# -Decay K*0R -1.0000 K0 pi0 VSS; -Enddecay -# -# -Decay anti-D0 -0.021600000 K*+ e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.035500000 K+ e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.000760000 K_1+ e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.001100000 K_2*+ e- anti-nu_e PHOTOS ISGW2; # Small decrease as this is unmeasured -0.002890000 pi+ e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.001770000 rho+ e- anti-nu_e PHOTOS ISGW2; # PDG2014 -0.001080000 K0 pi+ e- anti-nu_e PHOTOS PHSP; # PDG2014 subtracting K* (decreased due large uncertaity ) -0.000400000 K+ pi0 e- anti-nu_e PHOTOS PHSP; # PDG2014 subtracting K* (decreased due large uncertaity ) -# -0.021000000 K*+ mu- anti-nu_mu PHOTOS ISGW2; # 1.1 * PDG2014 -0.034700000 K+ mu- anti-nu_mu PHOTOS ISGW2; # 1.05 * PDG2014 -0.000076000 K_1+ mu- anti-nu_mu PHOTOS ISGW2; # PDG2014 for electron -0.001100000 K_2*+ mu- anti-nu_mu PHOTOS ISGW2; # copy from electron -0.002370000 pi+ mu- anti-nu_mu PHOTOS ISGW2; # PDG2014 -0.002015940 rho+ mu- anti-nu_mu PHOTOS ISGW2; # PDG2014 for electron -0.001080000 K0 pi+ mu- anti-nu_mu PHOTOS PHSP; # copy electron -0.000400000 K+ pi0 mu- anti-nu_mu PHOTOS PHSP; # copy electron -# -0.038900000 K+ pi- PHSP; #[Reconstructed PDG2011] -# -0.012200000 K_S0 pi0 PHSP; #[Reconstructed PDG2011] -0.010000000 K_L0 pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 K0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.004290000 K_S0 eta PHSP; #[Reconstructed PDG2011] -0.003818748 K_L0 eta PHSP; #[Reconstructed PDG2011] -0.000000000 K0 eta PHSP; #[Reconstructed PDG2011] -# -0.009300000 K_S0 eta' PHSP; #[Reconstructed PDG2011] -0.009017767 K_L0 eta' PHSP; #[Reconstructed PDG2011] -0.000000000 K0 eta' PHSP; #[Reconstructed PDG2011] -# -0.011100000 omega K_S0 SVS; #[Reconstructed PDG2011] -0.010950146 omega K_L0 SVS; #[Reconstructed PDG2011] -0.000000000 omega K0 SVS; #[Reconstructed PDG2011] -# -0.001610316 K*0 eta SVS; #[Reconstructed PDG2011] -0.000920180 K*0 eta' SVS; #[Reconstructed PDG2011] -0.078000000 a_1- K+ SVS; #[Reconstructed PDG2011] -0.067909308 K*+ rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.015800000 K*0 rho0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.011000000 K*0 omega SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -# the Dalitz mode below includes K*(892)0 pi0, K*(892)+ pi-, and K+ rho(770)- resonances -0.139000000 K+ pi- pi0 D_DALITZ; #[Reconstructed PDG2011] -0.006662106 K*0R pi0 SVS; #[Reconstructed PDG2011] -0.016000000 K_1+ pi- SVS; #[Reconstructed PDG2011] -0.006533280 K_10 pi0 SVS; #[Reconstructed PDG2011] -# the Dalitz mode below includes K*(892)+ pi- and K0 rho(770)0 resonances -# LHCb PR 09 Apr 2004, split into KS/KL -0.000000000 K0 pi+ pi- D_DALITZ; #[Reconstructed PDG2011] -0.029400000 K_S0 pi+ pi- D_DALITZ; #[Reconstructed PDG2011] -0.027973482 K_L0 pi+ pi- D_DALITZ; #[Reconstructed PDG2011] -# -0.008300000 K_S0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.004444471 K_L0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 K0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.024000000 K*0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.010674092 K*0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.009201803 K*+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.006257226 K+ rho- pi0 PHSP; #[Reconstructed PDG2011] -0.005327844 K+ pi- rho0 PHSP; #[Reconstructed PDG2011] -0.019000000 K+ pi- omega PHSP; #[Reconstructed PDG2011] -0.009201803 K+ pi- eta PHSP; #[Reconstructed PDG2011] -0.007500000 K+ pi- eta' PHSP; #[Reconstructed PDG2011] -0.013300000 K+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -# -0.054000000 K_S0 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.010121984 K_L0 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 K0 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -# -# K+ pi- pi0 pi0 is (15 +/- 5)% in the PDG, but we decrease it to -# have everything add to 1 and get enough neutral kaons: -#0.02575 K+ pi- pi0 pi0 PHSP; -# -#0.0143 K0 pi0 pi0 pi0 PHSP; -0.040346268 K0 pi0 pi0 pi0 PHSP; -0.000000000 K+ pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.003496685 K+ pi- pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.002800000 K_S0 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.002696128 K_L0 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 K0 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -# -#0.0638 K0 pi- pi+ pi0 pi0 PHSP; -#0.0192 K0 pi- pi+ pi0 pi0 pi0 PHSP; -# -0.002042800 phi K_S0 SVS; #[Reconstructed PDG2011] -0.002042800 phi K_L0 SVS; #[Reconstructed PDG2011] -0.000000000 phi K0 SVS; #[Reconstructed PDG2011] -# -0.004650000 K_S0 K+ K- PHSP; #[Reconstructed PDG2011] -0.002797348 K_L0 K+ K- PHSP; #[Reconstructed PDG2011] -0.000000000 K0 K+ K- PHSP; #[Reconstructed PDG2011] -# -0.000950000 K_S0 K_S0 K_S0 PHSP; #[Reconstructed PDG2011] -0.003940000 K+ K- PHSP; #[Reconstructed PDG2011] -0.000190000 K_S0 K_S0 PHSP; #[Reconstructed PDG2011] -0.000368072 K_L0 K_L0 PHSP; #[Reconstructed PDG2011] -0.000368072 anti-K*0 K0 SVS; #[Reconstructed PDG2011] -# -0.000092018 K*0 K_S0 SVS; #[Reconstructed PDG2011] -0.000092018 K*0 K_L0 SVS; #[Reconstructed PDG2011] -0.000000000 K*0 anti-K0 SVS; #[Reconstructed PDG2011] -# -0.000487696 K*+ K- SVS; #[Reconstructed PDG2011] -0.001371069 K*- K+ SVS; #[Reconstructed PDG2011] -0.001288252 K*0 anti-K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.000717741 phi pi0 SVS; #[Reconstructed PDG2011] -0.001012198 phi pi+ pi- PHSP; #[Reconstructed PDG2011] -0.002430000 K+ K- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.002760541 K+ K- pi0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.001280000 K_S0 K_S0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.001260647 K_L0 K_L0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K0 pi+ pi- PHSP; #[Reconstructed PDG2011] -# -0.001380270 anti-K0 K0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.001397000 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000800000 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.000640000 eta pi0 PHSP; #[Reconstructed PDG2011] -0.000810000 eta' pi0 PHSP; #[Reconstructed PDG2011] -0.001670000 eta eta PHSP; #[Reconstructed PDG2011] -0.009128189 rho+ pi- SVS; #[Reconstructed PDG2011] -0.004637709 rho- pi+ SVS; #[Reconstructed PDG2011] -0.003730000 rho0 pi0 SVS; #[Reconstructed PDG2011] -0.001214638 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000092018 pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.005620000 pi+ pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -0.009360000 pi+ pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.001510000 pi+ pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.005521082 pi+ pi- pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.000420000 pi+ pi- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -# -# Doubly Cabibbo suppressed decays: -0.000138027 pi+ K- PHSP; #[Reconstructed PDG2011] -0.000128825 pi+ K*- PHSP; #[Reconstructed PDG2011] -0.000276054 pi+ K- pi0 PHSP; #[Reconstructed PDG2011] -0.000248449 K- pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -# PR LHCb - 19 Apr. 2004 Add anti-D0 -> mu+ mu- -0.000000000 mu- mu+ PHSP; #[Reconstructed PDG2011] -# -# March 2009 New Modes -0.000140000 phi eta PHSP; #[Reconstructed PDG2011] -0.019000000 K*0 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000220000 K+ pi- pi- pi+ pi- pi+ PHSP; #[Reconstructed PDG2011] -0.000644126 K+ K- pi0 PHSP; #[Reconstructed PDG2011] -0.003100000 K+ K- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000221000 K+ K+ K- pi- PHSP; #[Reconstructed PDG2011] -# -0.005600000 K_S0 eta pi0 PHSP; #[Reconstructed PDG2011] -0.003680721 K_L0 eta pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 K0 eta pi0 PHSP; #[Reconstructed PDG2011] -# -0.002600000 K_S0 K- pi+ PHSP; #[Reconstructed PDG2011] -0.002392469 K_L0 K- pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 K0 K- pi+ PHSP; #[Reconstructed PDG2011] -# -0.003500000 K_S0 K+ pi- PHSP; #[Reconstructed PDG2011] -0.003358658 K_L0 K+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K+ pi- PHSP; #[Reconstructed PDG2011] -# -0.000310000 K_S0 K_S0 K+ pi- PHSP; #[Reconstructed PDG2011] -0.000294458 K_L0 K_L0 K+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K0 K+ pi- PHSP; #[Reconstructed PDG2011] -# -0.000310000 K_S0 K_S0 K- pi+ PHSP; #[Reconstructed PDG2011] -0.000294458 K_L0 K_L0 K- pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K0 K- pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 K+ pi- pi+ e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001820000 rho0 rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001090000 eta pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001600000 omega pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000450000 eta' pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001260000 eta eta' PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000027000 phi gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000328000 K*0 gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -# Updated to PDG 2008 -Decay D_s+ -0.024900000 phi e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] -0.026700000 eta e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] -0.009900000 eta' e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] -0.002058115 anti-K0 e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] -0.000762265 anti-K*0 e+ nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] -0.018309605 phi mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.022845082 eta mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.008186726 eta' mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.002058115 anti-K0 mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.000762265 anti-K*0 mu+ nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.005800000 mu+ nu_mu PHOTOS SLN; #[Reconstructed PDG2011] -0.031100000 tau+ nu_tau SLN; #[Reconstructed PDG2011] -### Lange Nov14, 2004 - average cleo + babar (prelim) using stat error only.. -0.045000000 phi pi+ SVS; #[Reconstructed PDG2011] -0.015600000 eta pi+ PHSP; #[Reconstructed PDG2011] -0.038000000 eta' pi+ PHSP; #[Reconstructed PDG2011] -0.002300000 omega pi+ SVS; #[Reconstructed PDG2011] -0.000304906 rho+ pi0 SVS; #[Reconstructed PDG2011] -0.000076226 pi+ pi0 PHSP; #[Reconstructed PDG2011] -#? -0.000196200 rho0 pi+ SVS; # PDG 2014 -0.007852048 f_0 pi+ PHSP; # PDG 2014 -0.001753646 f_2 pi+ PHSP; # PDG 2014 -0.004754077 f'_0 pi+ PHSP; # PDG 2014 -0.005768112 f_0(1500) pi+ PHSP; # PDG 2014 -#0.000735750 rho(2S)0 pi+ PHSP; # PDG 2014 -0.000000000 pi+ pi- pi+ PHSP; # PDG 2014 (filled by exclusives) -0.084000000 phi rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.089000000 rho+ eta SVS; #[Reconstructed PDG2011] -0.124213286 rho+ eta' SVS; # Decrease compared to PDG 2014 to preserve unitarity after -# # fixing Ds --> 3pi, we also have too much of inclusive eta', -# #so pick this decay -0.006500000 pi+ pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.007622650 phi pi+ pi0 PHSP; #[Reconstructed PDG2011] -0.011433975 eta pi+ pi0 PHSP; #[Reconstructed PDG2011] -0.011433975 eta' pi+ pi0 PHSP; #[Reconstructed PDG2011] -0.012100000 phi pi+ pi- pi+ PHSP; #[Reconstructed PDG2011] -0.003811325 phi pi+ pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.003811325 eta pi+ pi- pi+ PHSP; #[Reconstructed PDG2011] -0.003811325 eta pi+ pi0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.014900000 K_S0 K+ PHSP; #[Reconstructed PDG2011] -0.011472088 K_L0 K+ PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K+ PHSP; #[Reconstructed PDG2011] -# -0.030490600 anti-K*0 K+ SVS; #[Reconstructed PDG2011] -0.054000000 K*+ anti-K0 SVS; #[Reconstructed PDG2011] -0.072000000 anti-K*0 K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.002286795 anti-K0 K+ pi0 PHSP; #[Reconstructed PDG2011] -0.000914718 anti-K*0 K+ pi0 PHSP; #[Reconstructed PDG2011] -0.000914718 K*+ anti-K0 pi0 PHSP; #[Reconstructed PDG2011] -0.003049060 anti-K*0 K*+ pi0 PHSP; #[Reconstructed PDG2011] -0.003811325 K+ K- pi+ PHSP; #[Reconstructed PDG2011] -# -0.009600000 K_S0 K+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.007470197 K_L0 K+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K+ pi+ pi- PHSP; #[Reconstructed PDG2011] -# -0.000762265 anti-K0 K+ pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 K+ K- pi+ pi- pi+ PHSP; #[Reconstructed PDG2011] -0.000152453 phi K+ SVS; #[Reconstructed PDG2011] -0.001390000 eta K+ PHSP; #[Reconstructed PDG2011] -0.001600000 eta' K+ PHSP; #[Reconstructed PDG2011] -0.000152453 eta K+ pi0 PHSP; #[Reconstructed PDG2011] -0.000152453 eta K+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000152453 eta' K+ pi0 PHSP; #[Reconstructed PDG2011] -0.000152453 eta' K+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000490000 K+ K- K+ PHSP; #[Reconstructed PDG2011] -# -0.001200000 K_S0 pi+ PHSP; #[Reconstructed PDG2011] -0.000968077 K_L0 pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 K0 pi+ PHSP; #[Reconstructed PDG2011] -# -0.001143397 rho+ K0 SVS; #[Reconstructed PDG2011] -0.002700000 rho0 K+ SVS; #[Reconstructed PDG2011] -0.010000000 K0 pi+ pi0 PHSP; #[Reconstructed PDG2011] -0.001905662 a_1+ K0 SVS; #[Reconstructed PDG2011] -0.006021893 K*0 pi+ SVS; #[Reconstructed PDG2011] -0.003811325 K*0 rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.003811325 K*0 pi+ pi0 PHSP; #[Reconstructed PDG2011] -# -# March 2009 New Modes -0.000820000 K+ pi0 PHSP; #[Reconstructed PDG2011] -0.004200000 K+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.008000000 pi+ pi+ pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -0.049000000 pi+ pi+ pi+ pi- pi- pi0 PHSP; #[Reconstructed PDG2011] -0.001300000 p+ anti-n0 PHSP; #[Reconstructed PDG2011] -# -0.000840000 K_S0 K_S0 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000686038 K_L0 K_L0 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K0 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -# -0.002900000 K_S0 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.002424003 K_L0 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 pi+ pi+ pi- PHSP; #[Reconstructed PDG2011] -# Doubly Cabibbo suppressed -0.000129000 K+ K+ pi- PHSP; #[Reconstructed PDG2011] -0.003700000 K0 e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001800000 K*0 e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000000 K+ K- pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.028000000 omega pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.016000000 omega pi+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -# Updated to PDG 2008 -Decay D_s- -0.024900000 phi e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] -0.026700000 eta e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] -0.009900000 eta' e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] -0.002058115 K0 e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] -0.000762265 K*0 e- anti-nu_e PHOTOS ISGW2; #[Reconstructed PDG2011] -0.018309605 phi mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.022845082 eta mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.008186726 eta' mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.002058115 K0 mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.000762265 K*0 mu- anti-nu_mu PHOTOS ISGW2; #[Reconstructed PDG2011] -0.005800000 mu- anti-nu_mu PHOTOS SLN; #[Reconstructed PDG2011] -0.031100000 tau- anti-nu_tau SLN; #[Reconstructed PDG2011] -0.045000000 phi pi- SVS; #[Reconstructed PDG2011] -0.015600000 eta pi- PHSP; #[Reconstructed PDG2011] -0.038000000 eta' pi- PHSP; #[Reconstructed PDG2011] -0.002300000 omega pi- SVS; #[Reconstructed PDG2011] -0.000304906 rho- pi0 SVS; #[Reconstructed PDG2011] -0.000076226 pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000196200 rho0 pi- SVS; # PDG 2014 -0.007852048 f_0 pi- PHSP; # PDG 2014 -0.001753646 f_2 pi- PHSP; # PDG 2014 -0.004754077 f'_0 pi- PHSP; # PDG 2014 -0.005768112 f_0(1500) pi- PHSP; # PDG 2014 -#0.000735750 rho(2S)0 pi- PHSP; # PDG 2014 -0.000000000 pi- pi+ pi- PHSP; # PDG 2014 (filled by exclusives) -0.084000000 phi rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.089000000 rho- eta SVS; #[Reconstructed PDG2011] -0.124213286 rho- eta' SVS; # Decrease compared to PDG 2014 to preserve unitarity after -0.006500000 pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.007622650 phi pi- pi0 PHSP; #[Reconstructed PDG2011] -0.011433975 eta pi- pi0 PHSP; #[Reconstructed PDG2011] -0.011433975 eta' pi- pi0 PHSP; #[Reconstructed PDG2011] -0.012100000 phi pi- pi- pi+ PHSP; #[Reconstructed PDG2011] -0.003811325 phi pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.003811325 eta pi- pi- pi+ PHSP; #[Reconstructed PDG2011] -0.003811325 eta pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] -# -0.014900000 K_S0 K- PHSP; #[Reconstructed PDG2011] -0.011472088 K_L0 K- PHSP; #[Reconstructed PDG2011] -0.000000000 K0 K- PHSP; #[Reconstructed PDG2011] -# -0.030490600 K*0 K- SVS; #[Reconstructed PDG2011] -0.054000000 K*- K0 SVS; #[Reconstructed PDG2011] -0.072000000 K*0 K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.002286795 K0 K- pi0 PHSP; #[Reconstructed PDG2011] -0.000914718 K*0 K- pi0 PHSP; #[Reconstructed PDG2011] -0.000914718 K*- K0 pi0 PHSP; #[Reconstructed PDG2011] -0.003049060 K*0 K*- pi0 PHSP; #[Reconstructed PDG2011] -0.003811325 K+ K- pi- PHSP; #[Reconstructed PDG2011] -# -0.009600000 K_S0 K- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.007470197 K_L0 K- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 K0 K- pi+ pi- PHSP; #[Reconstructed PDG2011] -# -0.000762265 K0 K- pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 K- K+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000152453 phi K- SVS; #[Reconstructed PDG2011] -0.001390000 eta K- PHSP; #[Reconstructed PDG2011] -0.001600000 eta' K- PHSP; #[Reconstructed PDG2011] -0.000152453 eta K- pi0 PHSP; #[Reconstructed PDG2011] -0.000152453 eta K- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000152453 eta' K- pi0 PHSP; #[Reconstructed PDG2011] -0.000152453 eta' K- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000490000 K- K- K+ PHSP; #[Reconstructed PDG2011] -# -0.001200000 K_S0 pi- PHSP; #[Reconstructed PDG2011] -0.000968077 K_L0 pi- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 pi- PHSP; #[Reconstructed PDG2011] -# -0.001143397 rho- anti-K0 SVS; #[Reconstructed PDG2011] -0.002700000 rho0 K- SVS; #[Reconstructed PDG2011] -0.010000000 anti-K0 pi- pi0 PHSP; #[Reconstructed PDG2011] -0.001905662 a_1- anti-K0 SVS; #[Reconstructed PDG2011] -0.006021893 anti-K*0 pi- SVS; #[Reconstructed PDG2011] -0.003811325 anti-K*0 rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.003811325 anti-K*0 pi- pi0 PHSP; #[Reconstructed PDG2011] -# -# March 2009 New Modes -0.000820000 K- pi0 PHSP; #[Reconstructed PDG2011] -0.004200000 K- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.008000000 pi+ pi+ pi- pi- pi- PHSP; #[Reconstructed PDG2011] -0.049000000 pi+ pi+ pi- pi- pi- pi0 PHSP; #[Reconstructed PDG2011] -0.001300000 anti-p- n0 PHSP; #[Reconstructed PDG2011] -# -0.000840000 K_S0 K_S0 pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -0.000686038 K_L0 K_L0 pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -0.000000000 anti-K0 K0 pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -# -0.002900000 K_S0 pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -0.002424003 K_L0 pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -0.000000000 K0 pi+ pi- pi- PHSP; #[Reconstructed PDG2011] -# Doubly Cabibbo suppressed -0.000129000 K- K- pi+ PHSP; #[Reconstructed PDG2011] -0.003700000 anti-K0 e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001800000 anti-K*0 e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000000 K- K+ pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.028000000 omega pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.016000000 omega pi- pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -# D** -# -Decay D_0*+ -0.3333 D+ pi0 PHSP; -0.6667 D0 pi+ PHSP; -Enddecay -Decay D_0*- -0.3333 D- pi0 PHSP; -0.6667 anti-D0 pi- PHSP; -Enddecay -Decay D_0*0 -0.3333 D0 pi0 PHSP; -0.6667 D+ pi- PHSP; -Enddecay -Decay anti-D_0*0 -0.3333 anti-D0 pi0 PHSP; -0.6667 D- pi+ PHSP; -Enddecay -# - -SetLineshapePW D_1+ D*+ pi0 2 -SetLineshapePW D_1+ D*0 pi+ 2 -SetLineshapePW D_1- D*- pi0 2 -SetLineshapePW D_1- anti-D*0 pi- 2 -SetLineshapePW D_10 D*0 pi0 2 -SetLineshapePW D_10 D*+ pi- 2 -SetLineshapePW anti-D_10 anti-D*0 pi0 2 -SetLineshapePW anti-D_10 D*- pi+ 2 - -Decay D_1+ -0.3333 D*+ pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -0.6667 D*0 pi+ VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -Enddecay -Decay D_1- -0.3333 D*- pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -0.6667 anti-D*0 pi- VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -Enddecay -Decay D_10 -0.3333 D*0 pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -0.6667 D*+ pi- VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -Enddecay -Decay anti-D_10 -0.3333 anti-D*0 pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -0.6667 D*- pi+ VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -Enddecay -# -Decay D'_1+ -0.3333 D*+ pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.6667 D*0 pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -Decay D'_1- -0.3333 D*- pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.6667 anti-D*0 pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -Decay D'_10 -0.6667 D*+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.3333 D*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -Decay anti-D'_10 -0.3333 anti-D*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.6667 D*- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# - -SetLineshapePW D_2*+ D*+ pi0 2 -SetLineshapePW D_2*+ D*0 pi+ 2 -SetLineshapePW D_2*- D*- pi0 2 -SetLineshapePW D_2*- anti-D*0 pi- 2 -SetLineshapePW D_2*0 D*0 pi0 2 -SetLineshapePW D_2*0 D*+ pi- 2 -SetLineshapePW anti-D_2*0 anti-D*0 pi0 2 -SetLineshapePW anti-D_2*0 D*- pi+ 2 - -Decay D_2*+ -0.1030 D*+ pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.2090 D*0 pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.2290 D+ pi0 TSS; -0.4590 D0 pi+ TSS; -Enddecay -Decay D_2*- -0.1030 D*- pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.2090 anti-D*0 pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.2290 D- pi0 TSS; -0.4590 anti-D0 pi- TSS; -Enddecay -Decay D_2*0 -0.2090 D*+ pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.1030 D*0 pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.2290 D0 pi0 TSS; -0.4590 D+ pi- TSS; -Enddecay -Decay anti-D_2*0 -0.1030 anti-D*0 pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.2090 D*- pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.2290 anti-D0 pi0 TSS; -0.4590 D- pi+ TSS; -Enddecay -# -# D_s ** -# -Decay D_s0*+ -# 0.5000 D+ K0 PHSP; -# 0.5000 D0 K+ PHSP; -1.000 D_s+ pi0 PHSP; -Enddecay -Decay D_s0*- -# 0.5000 D- anti-K0 PHSP; -# 0.5000 anti-D0 K- PHSP; -1.000 D_s- pi0 PHSP; -Enddecay -Decay D'_s1+ -0.5000 D*+ K0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -0.5000 D*0 K+ VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -0.0000 gamma D_s*+ PHSP; -0.0000 gamma D_s+ PHSP; -Enddecay -Decay D'_s1- -0.5000 D*- anti-K0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -0.5000 anti-D*0 K- VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -0.0000 gamma D_s*- PHSP; -0.0000 gamma D_s- PHSP; -Enddecay -Decay D_s1+ -0.80000 D_s*+ pi0 PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.20000 D_s+ gamma VSP_PWAVE; -Enddecay -Decay D_s1- -0.80000 D_s*- pi0 PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.20000 D_s- gamma VSP_PWAVE; -Enddecay -Decay D_s2*+ -0.0500 D*+ K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0500 D*0 K+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.4300 D+ K0 TSS; -0.4700 D0 K+ TSS; -Enddecay -Decay D_s2*- -0.0500 D*- anti-K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0500 anti-D*0 K- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.4300 D- anti-K0 TSS; -0.4700 anti-D0 K- TSS; -Enddecay -# -# -# Charm Mesons: Radially Excited States -# -Decay D(2S)0 -0.6667 D*+ pi- SVS; -0.3333 D*0 pi0 SVS; -Enddecay -Decay anti-D(2S)0 -0.3333 anti-D*0 pi0 SVS; -0.6667 D*- pi+ SVS; -Enddecay -Decay D(2S)+ -0.3333 D*+ pi0 SVS; -0.6667 D*0 pi+ SVS; -Enddecay -Decay D(2S)- -0.3333 D*- pi0 SVS; -0.6667 anti-D*0 pi- SVS; -Enddecay -Decay D*(2S)0 -0.3333 D*+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1667 D*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1667 D0 pi0 VSS; -0.3333 D+ pi- VSS; -Enddecay -Decay anti-D*(2S)0 -0.1667 anti-D*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.3333 D*- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1667 anti-D0 pi0 VSS; -0.3333 D- pi+ VSS; -Enddecay -Decay D*(2S)+ -0.1667 D*+ pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.3333 D*0 pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1667 D+ pi0 VSS; -0.3333 D0 pi+ VSS; -Enddecay -Decay D*(2S)- -0.1667 D*- pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.3333 anti-D*0 pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1667 D- pi0 VSS; -0.3333 anti-D0 pi- VSS; -Enddecay -# -# -# Strange Mesons updated to PDG 2008 -# -# -Decay K_S0 -Enddecay -# -# K_L0 is decayed in GEANT -# -Decay K0 -0.500 K_L0 PHSP; -0.500 K_S0 PHSP; -Enddecay -Decay anti-K0 -0.500 K_L0 PHSP; -0.500 K_S0 PHSP; -Enddecay -# -Decay K*0 -0.6657 K+ pi- VSS; -0.3323 K0 pi0 VSS; -0.0020 K0 gamma VSP_PWAVE; -Enddecay -# -Decay anti-K*0 -0.6657 K- pi+ VSS; -0.3323 anti-K0 pi0 VSS; -0.0020 anti-K0 gamma VSP_PWAVE; -Enddecay -# -Decay K*+ -0.6657 K0 pi+ VSS; -0.3323 K+ pi0 VSS; -0.0020 K+ gamma VSP_PWAVE; -Enddecay -# -Decay K*- -0.6657 anti-K0 pi- VSS; -0.3323 K- pi0 VSS; -0.0020 K- gamma VSP_PWAVE; -Enddecay -# -# The decays below are for particle aliases and used when -# generating CP violating decays that depends on the decay -# of the neutral K* -# -Decay K*L -1.0000 pi0 K_L0 VSS; -Enddecay -Decay K*S -1.0000 pi0 K_S0 VSS; -Enddecay -Decay K*BL -1.0000 pi0 K_L0 VSS; -Enddecay -Decay K*BS -1.0000 pi0 K_S0 VSS; -Enddecay -Decay K*0T -1.0000 pi- K+ VSS; -Enddecay -Decay anti-K*0T -1.0000 pi+ K- VSS; -Enddecay -# -# -Decay K_0*+ -0.6667 K0 pi+ PHSP; -0.3333 K+ pi0 PHSP; -Enddecay -# -Decay K_0*- -0.6667 anti-K0 pi- PHSP; -0.3333 K- pi0 PHSP; -Enddecay -# -Decay K_0*0 -0.6667 K+ pi- PHSP; -0.3333 K0 pi0 PHSP; -Enddecay -# -Decay K_0*0N -1.0000 K0 pi0 PHSP; -Enddecay -# -Decay anti-K_0*0 -0.6667 K- pi+ PHSP; -0.3333 anti-K0 pi0 PHSP; -Enddecay -# -Decay anti-K_0*0N -1.0000 anti-K0 pi0 PHSP; -Enddecay -# -Decay K_10 -0.2800 rho- K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1400 rho0 K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1067 K*+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0533 K*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -#To large masses can cause infinit loops -0.1100 omega K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1444 K0 pi+ pi- PHSP; -0.1244 K+ pi- pi0 PHSP; -0.0412 K0 pi0 pi0 PHSP; -Enddecay -# -Decay anti-K_10 -0.2800 rho+ K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1400 rho0 anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1067 K*- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0533 anti-K*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -#To large masses can cause infinit loops -0.1100 omega anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1444 anti-K0 pi+ pi- PHSP; -0.1244 K- pi+ pi0 PHSP; -0.0412 anti-K0 pi0 pi0 PHSP; -Enddecay -# -Decay K_1+ -0.2800 rho+ K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1400 rho0 K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1067 K*0 pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0533 K*+ pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -#To large masses can cause infinit loops -0.1100 omega K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1444 K+ pi+ pi- PHSP; -0.1244 K0 pi+ pi0 PHSP; -0.0412 K+ pi0 pi0 PHSP; -Enddecay -# -Decay K_1- -0.2800 rho- anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1400 rho0 K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1067 anti-K*0 pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0533 K*- pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -#To large masses can cause infinit loops -0.1100 omega K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1444 K- pi+ pi- PHSP; -0.1244 anti-K0 pi- pi0 PHSP; -0.0412 K- pi0 pi0 PHSP; -Enddecay -# -Decay K'_1+ -0.6300 K*0 pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.3100 K*+ pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0200 rho+ K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0100 rho0 K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0100 omega K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0133 K+ pi+ pi- PHSP; -0.0067 K+ pi0 pi0 PHSP; -Enddecay -# -Decay K'_1- -0.6300 anti-K*0 pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.3100 K*- pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0200 rho- anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0100 rho0 K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0100 omega K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0133 K- pi+ pi- PHSP; -0.0067 K- pi0 pi0 PHSP; -Enddecay -# -Decay K'_10 -0.6300 K*+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.3100 K*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0200 rho- K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0100 rho0 K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0100 omega K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0133 K0 pi+ pi- PHSP; -0.0067 K0 pi0 pi0 PHSP; -Enddecay -# -Decay anti-K'_10 -0.6300 K*- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.3100 anti-K*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0200 rho+ K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0100 rho0 anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0100 omega anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0133 anti-K0 pi+ pi- PHSP; -0.0067 anti-K0 pi0 pi0 PHSP; -Enddecay -# -Decay K_2*+ -0.3340 K0 pi+ TSS; -0.1670 K+ pi0 TSS; -0.1645 K*0 pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0835 K*+ pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0450 K*0 pi+ pi0 PHSP; -0.0450 K*+ pi+ pi- PHSP; -0.0450 K*+ pi0 pi0 PHSP; -0.0580 rho+ K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0290 rho0 K+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0290 omega K+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -Enddecay -# -Decay K_2*- -0.3340 anti-K0 pi- TSS; -0.1670 K- pi0 TSS; -0.1645 anti-K*0 pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0835 K*- pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0450 anti-K*0 pi- pi0 PHSP; -0.0450 K*- pi+ pi- PHSP; -0.0450 K*- pi0 pi0 PHSP; -0.0580 rho- K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0290 rho0 K- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0290 omega K- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -Enddecay -# -Decay K_2*0 -0.3340 K+ pi- TSS; -0.1670 K0 pi0 TSS; -0.1645 K*+ pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0835 K*0 pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0450 K*0 pi+ pi- PHSP; -0.0450 K*0 pi0 pi0 PHSP; -0.0450 K*+ pi- pi0 PHSP; -0.0580 rho- K+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0290 rho0 K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0290 omega K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -Enddecay -# -Decay anti-K_2*0 -0.3340 K- pi+ TSS; -0.1670 anti-K0 pi0 TSS; -0.1645 K*- pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0835 anti-K*0 pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0450 anti-K*0 pi+ pi- PHSP; -0.0450 anti-K*0 pi0 pi0 PHSP; -0.0450 K*- pi+ pi0 PHSP; -0.0580 rho+ K- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0290 rho0 anti-K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0290 omega anti-K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -Enddecay - - - - -# Decay K*(1410) -Decay K'*0 -0.0467 K+ pi- VSS; -0.0233 K0 pi0 VSS; -0.5760 K*+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.2880 K*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0440 rho- K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0220 rho0 K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# -Decay anti-K'*0 -0.0467 K- pi+ VSS; -0.0233 anti-K0 pi0 VSS; -0.5760 K*- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.2880 anti-K*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0440 rho+ K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0220 rho0 anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# -Decay K'*+ -0.0467 K0 pi+ VSS; -0.0233 K+ pi0 VSS; -0.5760 K*0 pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.2880 K*+ pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0440 rho+ K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0220 rho0 K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# -Decay K'*- -0.0467 anti-K0 pi- VSS; -0.0233 K- pi0 VSS; -0.5760 anti-K*0 pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.2880 K*- pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0440 rho- K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0220 rho0 K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# - - -# Decay K*(1680) -Decay K''*0 -0.2580 K+ pi- VSS; -0.1290 K0 pi0 VSS; -0.2093 K*+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1047 K*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1993 rho- K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0997 rho0 K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# -Decay anti-K''*0 -0.2580 K- pi+ VSS; -0.1290 anti-K0 pi0 VSS; -0.2093 K*- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1047 anti-K*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1993 rho+ K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0997 rho0 anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# -Decay K''*+ -0.2580 K0 pi+ VSS; -0.1290 K+ pi0 VSS; -0.2093 K*0 pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1047 K*+ pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1993 rho+ K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0997 rho0 K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# -Decay K''*- -0.2580 anti-K0 pi- VSS; -0.1290 K- pi0 VSS; -0.2093 anti-K*0 pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1047 K*- pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.1993 rho- K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0997 rho0 K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay - -Decay Xsd -1.00000 d anti-s PYTHIA 42; -Enddecay - -Decay anti-Xsd -1.00000 anti-d s PYTHIA 42; -Enddecay - -Decay Xsu -1.00000 u anti-s PYTHIA 42; -Enddecay - -Decay anti-Xsu -1.00000 anti-u s PYTHIA 42; -Enddecay - -# Xss decays can be uncommented when Jst74/lucomp.F recognizes Xss -Decay Xss -1.00000 s anti-s PYTHIA 42; -Enddecay - -Decay anti-Xss -1.00000 anti-s s PYTHIA 42; -Enddecay - -# -# Light Mesons Updated to PDG 2008 -# -Decay pi0 -0.988228297 gamma gamma PHSP; #[Reconstructed PDG2011] -0.011738247 e+ e- gamma PI0_DALITZ; #[Reconstructed PDG2011] -0.000033392 e+ e+ e- e- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000065 e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay eta -0.393100000 gamma gamma PHSP; #[Reconstructed PDG2011] -0.325700000 pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.227400000 pi- pi+ pi0 ETA_DALITZ; #[Reconstructed PDG2011] -0.046000000 gamma pi- pi+ PHSP; #[Reconstructed PDG2011] -0.007000000 gamma e+ e- PHSP; #[Reconstructed PDG2011] -0.000310000 gamma mu+ mu- PHSP; #[Reconstructed PDG2011] -0.000270000 gamma gamma pi0 PHSP; #[Reconstructed PDG2011] -0.000214200 pi+ pi- e+ e- PHSP; #[Reconstructed PDG2011] -0.000005800 mu+ mu- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay rho0 -1.000 pi+ pi- VSS; -Enddecay -Decay rho+ -1.000 pi+ pi0 VSS; -Enddecay -Decay rho- -1.000 pi- pi0 VSS; -Enddecay -# -Decay omega -0.892000000 pi- pi+ pi0 OMEGA_DALITZ; #[Reconstructed PDG2011] -0.082800000 pi0 gamma VSP_PWAVE; #[Reconstructed PDG2011] -0.015300000 pi- pi+ VSS; #[Reconstructed PDG2011] -0.000460000 eta gamma VSP_PWAVE; #[Reconstructed PDG2011] -0.000770000 pi0 e+ e- PHOTOS PHSP; #[Reconstructed PDG2011] -0.000130000 pi0 mu+ mu- PHOTOS PHSP; #[Reconstructed PDG2011] -0.00150 pi+ pi- gamma PHSP; -0.000066000 pi0 pi0 gamma PHSP; #[Reconstructed PDG2011] -0.00050 pi+ pi- pi+ pi- PHSP; -0.000072800 e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000090000 mu+ mu- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay eta' -0.432000000 pi+ pi- eta PHSP; #[Reconstructed PDG2011] -0.217000000 pi0 pi0 eta PHSP; #[Reconstructed PDG2011] -0.293511000 rho0 gamma SVP_HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.027500000 omega gamma SVP_HELAMP 1.0 0.0 1.0 0.0; #[Reconstructed PDG2011] -0.022200000 gamma gamma PHSP; #[Reconstructed PDG2011] -0.001680000 pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.000109000 gamma mu- mu+ PHOTOS PHSP; #[Reconstructed PDG2011] -0.003600000 pi+ pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.002400000 pi+ pi- e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay phi -0.489000000 K+ K- VSS; #[Reconstructed PDG2011] -0.342000000 K_L0 K_S0 VSS; #[Reconstructed PDG2011] -0.0425 rho+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0425 rho0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0425 rho- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0250 pi+ pi- pi0 PHSP; -0.013090000 eta gamma VSP_PWAVE; #[Reconstructed PDG2011] -0.000687600 pi0 gamma VSP_PWAVE; #[Reconstructed PDG2011] -0.000295400 e+ e- PHOTOS VLL; #[Reconstructed PDG2011] -0.000287000 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] -0.000113000 pi0 pi0 gamma PHSP; #[Reconstructed PDG2011] -0.000115000 eta e+ e- PHSP; #[Reconstructed PDG2011] -0.000322000 f_0 gamma PHSP; #[Reconstructed PDG2011] -0.000074000 pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000047000 omega pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000041000 pi+ pi- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000004000 pi+ pi- pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000011200 pi0 e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000072700 pi0 eta gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000062500 eta' gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000014000 mu+ mu- gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay a_1+ -0.4920 rho0 pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.5080 rho+ pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -Decay a_10 -0.5000 rho- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.5000 rho+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -Decay a_1- -0.4920 rho0 pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.5080 rho- pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# -Decay a_2+ -0.3500 rho0 pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.3500 rho+ pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.1430 eta pi+ TSS; -0.1000 omega pi+ pi0 PHSP; -0.0490 anti-K0 K+ TSS; -0.0027 pi+ gamma PHSP; -0.0053 eta' pi+ TSS; -Enddecay -# -Decay a_2- -0.3500 rho0 pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.3500 rho- pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.1430 eta pi- TSS; -0.1000 omega pi- pi0 PHSP; -0.0490 anti-K0 K- TSS; -0.0027 pi- gamma PHSP; -0.0053 eta' pi- TSS; -Enddecay -# -Decay a_20 -0.3500 rho+ pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.3500 rho- pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.1430 eta pi0 TSS; -0.1000 omega pi+ pi- PHSP; -0.0245 K+ K- TSS; -0.01225 K_L0 K_L0 TSS; -0.01225 K_S0 K_S0 TSS; -0.0027 pi0 gamma PHSP; -0.0053 eta' pi0 TSS; -Enddecay -# -Decay b_1+ -0.9984 omega pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0016 pi+ gamma VSP_PWAVE; -Enddecay -Decay b_1- -0.9984 omega pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0016 pi- gamma VSP_PWAVE; -Enddecay -Decay b_10 -0.9984 omega pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.0016 pi0 gamma VSP_PWAVE; -Enddecay -# -Decay a_00 -0.9000 eta pi0 PHSP; -0.0500 K+ K- PHSP; -0.0250 K_S0 K_S0 PHSP; -0.0250 K_L0 K_L0 PHSP; -Enddecay -Decay a_0+ -0.9000 eta pi+ PHSP; -0.1000 anti-K0 K+ PHSP; -Enddecay -Decay a_0- -0.9000 eta pi- PHSP; -0.1000 K0 K- PHSP; -Enddecay -# -Decay f_0 -0.6667 pi+ pi- PHSP; -0.3333 pi0 pi0 PHSP; -#0.1100 K+ K- PHSP; -#0.0550 K_S0 K_S0 PHSP; -#0.0550 K_L0 K_L0 PHSP; -Enddecay -# -# -# MK: Based on PDG 2014 without any attempt to really include everything. One -# thing, which is missing is KK mode, but data are scattered quite lot and -# I would also need to find place where to make space for it. For needs I -# have at this moment, this should be sufficient -#Decay f_0(1370) -#0.17333 pi+ pi- PHSP; -#0.08667 pi0 pi0 PHSP; -#0.26000 pi+ pi+ pi- pi- PHSP; -#0.32000 pi+ pi- pi0 pi0 PHSP; -#0.10667 rho+ rho- PHSP; -#0.05333 rho0 rho0 PHSP; -#Enddecay -Decay f'_0 -0.5200 pi+ pi- PHSP; -0.2600 pi0 pi0 PHSP; -0.0750 pi+ pi+ pi- pi- PHSP; -0.0750 pi+ pi- pi0 pi0 PHSP; -0.0350 K+ K- PHSP; -0.0175 K_S0 K_S0 PHSP; -0.0175 K_L0 K_L0 PHSP; -Enddecay -# -Decay f_1 -0.110000000 rho0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.043364159 rho0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.043442860 rho+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.043442860 rho- pi+ pi0 PHSP; #[Reconstructed PDG2011] -0.094440999 a_00 pi0 VSS; #[Reconstructed PDG2011] -0.094440999 a_0+ pi- VSS; #[Reconstructed PDG2011] -0.094440999 a_0- pi+ VSS; #[Reconstructed PDG2011] -0.086570916 eta pi+ pi- PHSP; #[Reconstructed PDG2011] -0.043285458 eta pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.020226114 K+ K- pi0 PHSP; #[Reconstructed PDG2011] -0.010152407 K0 anti-K0 pi0 PHSP; #[Reconstructed PDG2011] -0.020226114 anti-K0 K+ pi- PHSP; #[Reconstructed PDG2011] -0.020226114 K0 K- pi+ PHSP; #[Reconstructed PDG2011] -0.055000000 gamma rho0 PHSP; #[Reconstructed PDG2011] -0.220000000 pi0 pi0 pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000000 pi+ pi+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000740000 phi gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay f'_1 -0.2500 K+ K- pi0 PHSP; -0.2500 K0 anti-K0 pi0 PHSP; -0.2500 anti-K0 K+ pi- PHSP; -0.2500 K0 K- pi+ PHSP; -Enddecay -# -Decay f_2 -0.5650 pi+ pi- TSS; -0.2820 pi0 pi0 TSS; -0.028000000 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.071000000 pi+ pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.003000000 pi0 pi0 pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.0230 K+ K- TSS; -0.0115 K_S0 K_S0 TSS; -0.0115 K_L0 K_L0 TSS; -0.004000000 eta eta TSS; #[Reconstructed PDG2011] -0.000016400 gamma gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay f_0(1500) -0.019000000 eta eta' PHSP; #[Reconstructed PDG2011] -0.051000000 eta eta PHSP; #[Reconstructed PDG2011] -0.1410 pi0 pi0 pi0 pi0 PHSP; -0.3540 pi+ pi- pi+ pi- PHSP; -0.2330 pi+ pi- PHSP; -0.1160 pi0 pi0 PHSP; -0.0430 K+ K- PHSP; -0.0215 K_S0 K_S0 PHSP; -0.0215 K_L0 K_L0 PHSP; -Enddecay -# -Decay f'_2 -0.443904021 K+ K- TSS; #[Reconstructed PDG2011] -0.221952010 K_S0 K_S0 TSS; #[Reconstructed PDG2011] -0.221952010 K_L0 K_L0 TSS; #[Reconstructed PDG2011] -0.104000000 eta eta TSS; #[Reconstructed PDG2011] -0.005493862 pi+ pi- TSS; #[Reconstructed PDG2011] -0.002696987 pi0 pi0 TSS; #[Reconstructed PDG2011] -0.000001110 gamma gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay h_1 -0.3333 rho+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.3333 rho- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.3334 rho0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# -Decay h'_1 -0.2500 K*+ K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.2500 K*- K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.2500 anti-K*0 K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.2500 K*0 anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# -Decay rho(2S)+ -0.4000 pi+ pi0 PHSP; -0.4000 pi+ pi+ pi- pi0 PHSP; -0.2000 pi+ pi0 pi0 pi0 PHSP; -Enddecay -Decay rho(2S)- -0.4000 pi- pi0 PHSP; -0.4000 pi- pi+ pi- pi0 PHSP; -0.2000 pi- pi0 pi0 pi0 PHSP; -Enddecay -Decay rho(2S)0 -0.4000 pi+ pi- PHSP; -0.3500 pi+ pi- pi+ pi- PHSP; -0.1500 pi+ pi- pi0 pi0 PHSP; -0.1000 pi0 pi0 pi0 pi0 PHSP; -Enddecay -Decay phi(1680) -0.08 pi+ pi- PHSP; -0.05 pi+ pi+ pi- pi- PHSP; -0.10 pi0 pi+ pi- PHSP; -0.10 pi0 pi+ pi+ pi- pi- PHSP; -0.12 pi0 pi0 pi+ pi- PHSP; -0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; -0.05 pi0 pi0 pi0 pi+ pi- PHSP; -0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -0.04 K+ K- pi+ pi- PHSP; -0.02 K0 K- pi+ PHSP; -0.02 anti-K0 K+ pi- PHSP; -0.02 K0 K- pi+ pi+ pi- PHSP; -0.02 anti-K0 K+ pi- pi- pi+ PHSP; -0.02 K0 K- pi0 pi+ PHSP; -0.02 anti-K0 K+ pi0 pi- PHSP; -0.02 eta pi0 pi+ pi- PHSP; -0.01 eta rho- pi0 pi+ PHSP; -0.01 eta rho+ pi0 pi- PHSP; -Enddecay -Decay rho(3S)0 -0.08 pi+ pi- PHSP; -0.05 pi+ pi+ pi- pi- PHSP; -0.10 pi0 pi+ pi- PHSP; -0.10 pi0 pi+ pi+ pi- pi- PHSP; -0.12 pi0 pi0 pi+ pi- PHSP; -0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; -0.05 pi0 pi0 pi0 pi+ pi- PHSP; -0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -0.04 K+ K- pi+ pi- PHSP; -0.02 K0 K- pi+ PHSP; -0.02 anti-K0 K+ pi- PHSP; -0.02 K0 K- pi+ pi+ pi- PHSP; -0.02 anti-K0 K+ pi- pi- pi+ PHSP; -0.02 K0 K- pi0 pi+ PHSP; -0.02 anti-K0 K+ pi0 pi- PHSP; -0.02 eta pi0 pi+ pi- PHSP; -0.01 eta rho- pi0 pi+ PHSP; -0.01 eta rho+ pi0 pi- PHSP; -Enddecay -Decay omega(1650) -0.08 pi+ pi- PHSP; -0.05 pi+ pi+ pi- pi- PHSP; -0.10 pi0 pi+ pi- PHSP; -0.10 pi0 pi+ pi+ pi- pi- PHSP; -0.12 pi0 pi0 pi+ pi- PHSP; -0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; -0.05 pi0 pi0 pi0 pi+ pi- PHSP; -0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -0.04 K+ K- pi+ pi- PHSP; -0.02 K0 K- pi+ PHSP; -0.02 anti-K0 K+ pi- PHSP; -0.02 K0 K- pi+ pi+ pi- PHSP; -0.02 anti-K0 K+ pi- pi- pi+ PHSP; -0.02 K0 K- pi0 pi+ PHSP; -0.02 anti-K0 K+ pi0 pi- PHSP; -0.02 eta pi0 pi+ pi- PHSP; -0.01 eta rho- pi0 pi+ PHSP; -0.01 eta rho+ pi0 pi- PHSP; -Enddecay -#Decay rho(1900) -#0.08 pi+ pi- PHSP; -#0.05 pi+ pi+ pi- pi- PHSP; -#0.10 pi0 pi+ pi- PHSP; -#0.10 pi0 pi+ pi+ pi- pi- PHSP; -#0.12 pi0 pi0 pi+ pi- PHSP; -#0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -#0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; -#0.05 pi0 pi0 pi0 pi+ pi- PHSP; -#0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -#0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -#0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -#0.04 K+ K- pi+ pi- PHSP; -#0.02 K0 K- pi+ PHSP; -#0.02 anti-K0 K+ pi- PHSP; -#0.02 K0 K- pi+ pi+ pi- PHSP; -#0.02 anti-K0 K+ pi- pi- pi+ PHSP; -#0.02 K0 K- pi0 pi+ PHSP; -#0.02 anti-K0 K+ pi0 pi- PHSP; -#0.02 eta pi0 pi+ pi- PHSP; -#0.01 eta rho- pi0 pi+ PHSP; -#0.01 eta rho+ pi0 pi- PHSP; -#Enddecay -Decay omega(2S) -0.08 pi+ pi- PHSP; -0.05 pi+ pi+ pi- pi- PHSP; -0.10 pi0 pi+ pi- PHSP; -0.10 pi0 pi+ pi+ pi- pi- PHSP; -0.12 pi0 pi0 pi+ pi- PHSP; -0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; -0.05 pi0 pi0 pi0 pi+ pi- PHSP; -0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -0.04 K+ K- pi+ pi- PHSP; -0.02 K0 K- pi+ PHSP; -0.02 anti-K0 K+ pi- PHSP; -0.02 K0 K- pi+ pi+ pi- PHSP; -0.02 anti-K0 K+ pi- pi- pi+ PHSP; -0.02 K0 K- pi0 pi+ PHSP; -0.02 anti-K0 K+ pi0 pi- PHSP; -0.02 eta pi0 pi+ pi- PHSP; -0.01 eta rho- pi0 pi+ PHSP; -0.01 eta rho+ pi0 pi- PHSP; -Enddecay -#Decay rho(2150) -#0.08 pi+ pi- PHSP; -#0.05 pi+ pi+ pi- pi- PHSP; -#0.10 pi0 pi+ pi- PHSP; -#0.10 pi0 pi+ pi+ pi- pi- PHSP; -#0.12 pi0 pi0 pi+ pi- PHSP; -#0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -#0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; -#0.05 pi0 pi0 pi0 pi+ pi- PHSP; -#0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -#0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -#0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -#0.04 K+ K- pi+ pi- PHSP; -#0.02 K0 K- pi+ PHSP; -#0.02 anti-K0 K+ pi- PHSP; -#0.02 K0 K- pi+ pi+ pi- PHSP; -#0.02 anti-K0 K+ pi- pi- pi+ PHSP; -#0.02 K0 K- pi0 pi+ PHSP; -#0.02 anti-K0 K+ pi0 pi- PHSP; -#0.02 eta pi0 pi+ pi- PHSP; -#0.01 eta rho- pi0 pi+ PHSP; -#0.01 eta rho+ pi0 pi- PHSP; -#Enddecay -#Decay omega(1960) -#0.08 pi+ pi- PHSP; -#0.05 pi+ pi+ pi- pi- PHSP; -#0.10 pi0 pi+ pi- PHSP; -#0.10 pi0 pi+ pi+ pi- pi- PHSP; -#0.12 pi0 pi0 pi+ pi- PHSP; -#0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -#0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; -#0.05 pi0 pi0 pi0 pi+ pi- PHSP; -#0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -#0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -#0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -#0.04 K+ K- pi+ pi- PHSP; -#0.02 K0 K- pi+ PHSP; -#0.02 anti-K0 K+ pi- PHSP; -#0.02 K0 K- pi+ pi+ pi- PHSP; -#0.02 anti-K0 K+ pi- pi- pi+ PHSP; -#0.02 K0 K- pi0 pi+ PHSP; -#0.02 anti-K0 K+ pi0 pi- PHSP; -#0.02 eta pi0 pi+ pi- PHSP; -#0.01 eta rho- pi0 pi+ PHSP; -#0.01 eta rho+ pi0 pi- PHSP; -#Enddecay -#Decay rho(1965) -#0.08 pi+ pi- PHSP; -#0.05 pi+ pi+ pi- pi- PHSP; -#0.10 pi0 pi+ pi- PHSP; -#0.10 pi0 pi+ pi+ pi- pi- PHSP; -#0.12 pi0 pi0 pi+ pi- PHSP; -#0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -#0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; -#0.05 pi0 pi0 pi0 pi+ pi- PHSP; -#0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -#0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; -#0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; -#0.04 K+ K- pi+ pi- PHSP; -#0.02 K0 K- pi+ PHSP; -#0.02 anti-K0 K+ pi- PHSP; -#0.02 K0 K- pi+ pi+ pi- PHSP; -#0.02 anti-K0 K+ pi- pi- pi+ PHSP; -#0.02 K0 K- pi0 pi+ PHSP; -#0.02 anti-K0 K+ pi0 pi- PHSP; -#0.02 eta pi0 pi+ pi- PHSP; -#0.01 eta rho- pi0 pi+ PHSP; -#0.01 eta rho+ pi0 pi- PHSP; -#Enddecay -# -# -# cc= mesons Updated to PDG 2008 -# -Decay eta_c -0.001300000 p+ anti-p- PHSP; #[Reconstructed PDG2011] -0.002700000 phi phi SVV_HELAMP 1.0 0.0 0.0 0.0 -1.0 0.0; #[Reconstructed PDG2011] -0.002900000 phi K+ K- PHSP; #[Reconstructed PDG2011] -0.0067 rho0 rho0 SVV_HELAMP 1.0 0.0 0.0 0.0 -1.0 0.0; -0.0133 rho+ rho- SVV_HELAMP 1.0 0.0 0.0 0.0 -1.0 0.0; -0.012000000 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.001600000 K+ K- K+ K- PHSP; #[Reconstructed PDG2011] -0.015000000 K+ K- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.0327 eta pi+ pi- PHSP; -0.0163 eta pi0 pi0 PHSP; -0.0273 eta' pi+ pi- PHSP; -0.0137 eta' pi0 pi0 PHSP; -0.0117 pi0 K+ K- PHSP; -0.0233 K+ anti-K0 pi- PHSP; -0.0233 K- K0 pi+ PHSP; -0.0117 K0 anti-K0 pi0 PHSP; -0.0046 K*+ K*- SVV_HELAMP 1.0 0.0 0.0 0.0 -1.0 0.0; -0.0046 K*0 anti-K*0 SVV_HELAMP 1.0 0.0 0.0 0.0 -1.0 0.0 ; -0.01 K*0 K- pi+ PHSP; -0.01 anti-K*0 K+ pi- PHSP; -# -#March 2009 New Modes -0.01500 K*0 anti-K*0 pi+ pi- PHSP; -0.007100000 K+ K- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.015000000 pi+ pi- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.001040000 Lambda0 anti-Lambda0 PHSP; #[Reconstructed PDG2011] -0.007600000 f_2 f_2 PHSP; #[Reconstructed PDG2011] -0.027000000 f_2 f'_2 PHSP; #[Reconstructed PDG2011] -# -0.682497000 rndmflav anti-rndmflav PYTHIA 42; -0.000063000 gamma gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay eta_c(2S) - 0.019 K+ anti-K0 pi- PHSP; - 0.019 K- K0 pi+ PHSP; - 0.0095 pi0 K+ K- PHSP; - 0.0095 K0 anti-K0 pi0 PHSP; -0.943 rndmflav anti-rndmflav PYTHIA 42; -Enddecay -# -Decay J/psi -0.059400000 e+ e- PHOTOS VLL; #[Reconstructed PDG2011] -0.059300000 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] -0.005600000 rho0 pi0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.00563 rho+ pi- PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.00563 rho- pi+ PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.004000000 omega pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.00364 a_20 rho0 PHSP; -0.00363 a_2+ rho- PHSP; -0.00363 a_2- rho+ PHSP; -0.008500000 omega pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.004300000 omega f_2 PHSP; #[Reconstructed PDG2011] -0.004300000 omega pi+ pi- PHSP; #[Reconstructed PDG2011] -0.00300 K*0 anti-K_2*0 PHSP; -0.00300 anti-K*0 K_2*0 PHSP; -0.00305 omega K*0 anti-K0 PHSP; -0.00305 omega anti-K*0 K0 PHSP; -0.00256 K*+ K- PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.00256 K*- K+ PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.002195 K*0 anti-K0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.002195 anti-K*0 K0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.00190 K_1+ K- PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.00190 K_1- K+ PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -0.003400000 omega pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.001500000 b_1+ pi- PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.001500000 b_1- pi+ PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -# -0.001700000 omega pi- K+ K_S0 PHSP; #[Reconstructed PDG2011] -0.0017 omega pi- K+ K_L0 PHSP; -0.001700000 omega pi+ K- K_S0 PHSP; #[Reconstructed PDG2011] -0.0017 omega pi+ K- K_L0 PHSP; -0.0000 omega pi- K+ K0 PHSP; -0.0000 omega pi- K+ anti-K0 PHSP; -0.0000 omega pi+ K- K0 PHSP; -0.0000 omega pi+ K- anti-K0 PHSP; -# -0.002300000 b_10 pi0 PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.002290000 eta pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000545 phi K*0 anti-K0 PHSP; -0.000545 phi anti-K*0 K0 PHSP; -0.000545 phi K*+ K- PHSP; -0.000545 phi K*- K+ PHSP; -0.0008 omega K0 anti-K0 PHSP; -0.0008 omega K+ K- PHSP; -0.001660000 phi pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.001600000 Delta++ anti-p- pi- PHSP; #[Reconstructed PDG2011] -0.0016 anti-Delta-- p+ pi+ PHSP; -0.001740000 omega eta PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000915 phi K0 anti-K0 PHSP; -0.000915 phi K+ K- PHSP; -0.001100000 omega p+ anti-p- PHSP; #[Reconstructed PDG2011] -0.0011 Delta++ anti-Delta-- PHSP; -0.000515 Sigma- anti-Sigma+ PHSP; -0.001500000 Sigma+ anti-Sigma- PHSP; #[Reconstructed PDG2011] -0.000720000 eta pi+ pi- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000147000 pi+ pi- PHSP; #[Reconstructed PDG2011] - -0.017000000 gamma eta_c PHSP; #[Reconstructed PDG2011] -0.008300000 gamma pi+ pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.0061 gamma eta pi+ pi- PHSP; -0.00225 gamma rho+ rho- PHSP; -0.00225 gamma rho0 rho0 PHSP; -0.005280000 gamma eta' PHSP; #[Reconstructed PDG2011] -0.001850000 gamma pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.002100000 gamma K+ K- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.001610000 gamma omega omega PHSP; #[Reconstructed PDG2011] -0.001430000 gamma f_2 PHSP; #[Reconstructed PDG2011] -0.0040 gamma K*0 anti-K*0 PHSP; -# -# March 2009 New Modes -0.001100000 eta pi- K+ K_S0 PHSP; #[Reconstructed PDG2011] -0.0011 eta pi- K+ K_L0 PHSP; -0.001100000 eta pi+ K- K_S0 PHSP; #[Reconstructed PDG2011] -0.0011 eta pi+ K- K_L0 PHSP; -0.0000 eta pi- K+ K0 PHSP; -0.0000 eta pi- K+ anti-K0 PHSP; -0.0000 eta pi+ K- K0 PHSP; -0.0000 eta pi+ K- anti-K0 PHSP; -# -0.055000000 pi+ pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.029000000 pi+ pi- pi+ pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.020700000 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.019400000 pi+ pi- pi0 K+ K- PHSP; #[Reconstructed PDG2011] -0.016100000 pi+ pi- pi+ pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.009000000 pi+ pi- pi+ pi- pi+ pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.006600000 pi+ pi- K+ K- PHSP; #[Reconstructed PDG2011] -0.001840000 pi+ pi- K+ K- eta PHSP; #[Reconstructed PDG2011] -0.002450000 pi0 pi0 K+ K- PHSP; #[Reconstructed PDG2011] -0.005000000 pi+ pi- pi+ pi- K+ K- PHSP; #[Reconstructed PDG2011] -0.00102 K+ K- pi0 PHSP; -0.00102 K0 anti-K0 pi0 PHSP; -0.00203 K+ anti-K0 pi- PHSP; -0.00203 K- K0 pi+ PHSP; -0.003550000 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -#### Already included above 0.00229 pi+ pi- pi+ pi- eta PHSP; -0.004300000 pi+ pi- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.002170000 p+ anti-p- PHSP; #[Reconstructed PDG2011] -0.001190000 p+ anti-p- pi0 PHSP; #[Reconstructed PDG2011] -0.006000000 p+ anti-p- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.002300000 p+ anti-p- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.002000000 p+ anti-p- eta PHSP; #[Reconstructed PDG2011] -0.002200000 n0 anti-n0 PHSP; #[Reconstructed PDG2011] -0.004000000 n0 anti-n0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.001290000 Sigma0 anti-Sigma0 PHSP; #[Reconstructed PDG2011] -0.002120000 p+ anti-n0 pi- PHSP; #[Reconstructed PDG2011] -0.001200000 Xi0 anti-Xi0 PHSP; #[Reconstructed PDG2011] -0.000850000 Xi- anti-Xi+ PHSP; #[Reconstructed PDG2011] -0.001610000 Lambda0 anti-Lambda0 PHSP; #[Reconstructed PDG2011] -# -0.084693481 rndmflav anti-rndmflav PYTHIA 42; -0.365559757 g g g PYTHIA 92; -0.032103862 gamma g g PYTHIA 92; -0.0 K0 anti-K0 PHSP; -0.0 K_S0 K_S0 PHSP; -0.0 K_L0 K_L0 PHSP; -0.000146000 K_S0 K_L0 PHSP; #[Reconstructed PDG2011] -0.001900000 K'_1+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001900000 K'_1- K+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000800000 phi f'_2 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000870000 phi pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000560000 phi pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000680000 omega f'_1 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000750000 phi eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000590000 Xi*- anti-Xi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000450000 omega pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000400000 phi eta' PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000320000 phi f_0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000320000 Xi*0 anti-Xi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000260000 phi f_1 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000400000 eta pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000182000 omega eta' PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000140000 omega f_0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000230000 K*0 anti-K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000720000 phi f_2 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000210000 p+ anti-p- eta' PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000045000 p+ anti-p- phi PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000890000 p+ K- anti-Lambda0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000760000 K+ K- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000290000 p+ K- anti-Sigma0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000237000 K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000260000 Lambda0 anti-Lambda0 eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000012000 gamma gamma gamma PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000950000 gamma f_2 f_2 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001104000 gamma eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000610000 gamma f_1 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000450000 gamma f'_2 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000400000 gamma phi phi PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000380000 gamma p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000034900 gamma pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.008800000 gamma e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay psi(2S) -0.007720000 e+ e- PHOTOS VLL; #[Reconstructed PDG2011] -0.007700000 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] -0.003000000 tau+ tau- PHOTOS VLL; #[Reconstructed PDG2011] -0.336000000 J/psi pi+ pi- VVPIPI; #[Reconstructed PDG2011] -0.177300000 J/psi pi0 pi0 VVPIPI; #[Reconstructed PDG2011] -0.032800000 J/psi eta PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.001300000 J/psi pi0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.096200000 gamma chi_c0 PHSP; #[Reconstructed PDG2011] -0.092000000 gamma chi_c1 PHSP; #[Reconstructed PDG2011] -0.087400000 gamma chi_c2 PHSP; #[Reconstructed PDG2011] -0.003400000 gamma eta_c PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000121000 gamma eta' PHSP; #[Reconstructed PDG2011] -0.000210000 gamma f_2 PHSP; #[Reconstructed PDG2011] -0.003500000 pi+ pi- pi+ pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000350000 pi+ pi- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.002900000 pi+ pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.000200000 b_1+ pi- PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000200000 b_1- pi+ PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000240000 b_10 pi0 PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000168000 pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.0000545 K*0 anti-K0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0000545 anti-K*0 K0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.000022 rho0 eta PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.000021000 omega pi0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000028000 phi eta PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000008 rho+ pi- PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.000008 rho- pi+ PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.000008 rho0 pi0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.000001 phi pi0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.000001 omega eta PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0000085 K*+ K- PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.0000085 K*- K+ PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -0.000185000 omega K+ K- PHSP; #[Reconstructed PDG2011] -0.000340000 K+ K- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000600000 p+ anti-p- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000133000 p+ anti-p- pi0 PHSP; #[Reconstructed PDG2011] -0.000276000 p+ anti-p- PHSP; #[Reconstructed PDG2011] -0.000500000 K_1+ K- PHSP; #[Reconstructed PDG2011] -0.000500000 K_1- K+ PHSP; #[Reconstructed PDG2011] -0.000220000 rho0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000280000 Lambda0 anti-Lambda0 PHSP; #[Reconstructed PDG2011] -0.000128000 Delta++ anti-Delta-- PHSP; #[Reconstructed PDG2011] -0.000220000 Sigma0 anti-Sigma0 PHSP; #[Reconstructed PDG2011] -0.00026 Sigma*+ anti-Sigma*- PHSP; -0.000180000 Xi- anti-Xi+ PHSP; #[Reconstructed PDG2011] -0.000080000 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000063000 K+ K- PHSP; #[Reconstructed PDG2011] -0.000070000 phi K- K+ PHSP; #[Reconstructed PDG2011] -0.000117000 phi pi- pi+ PHSP; #[Reconstructed PDG2011] -0.000170000 pi+ pi- K_S0 K_S0 PHSP; #[Reconstructed PDG2011] -0.0008 h_c pi0 PHSP; -0.0 K0 anti-K0 PHSP; -0.0 K_S0 K_S0 PHSP; -0.0 K_L0 K_L0 PHSP; -0.000054000 K_S0 K_L0 PHSP; #[Reconstructed PDG2011] -# -# March 2009 New Modes -0.004800000 pi+ pi- pi+ pi- pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.001200000 pi+ pi- pi+ pi- eta PHSP; #[Reconstructed PDG2011] -0.001300000 K+ K- pi+ pi- eta PHSP; #[Reconstructed PDG2011] -0.001000000 K+ K- pi+ pi- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -0.001900000 K+ K- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.001260000 K+ K- pi+ pi- pi0 PHSP; #[Reconstructed PDG2011] -# -0.013568632 rndmflav anti-rndmflav PYTHIA 42; -0.103318590 g g g PYTHIA 92; -0.007344778 gamma g g PYTHIA 92; -0.000100000 Lambda0 anti-p- K+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000180000 Lambda0 anti-p- K+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000280000 Lambda0 anti-Lambda0 pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000260000 Sigma+ anti-Sigma- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000280000 Xi0 anti-Xi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000060000 eta p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000069000 omega p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000320000 p+ anti-n0 pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000950000 eta pi+ pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000450000 eta' pi+ pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000000 omega pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000220000 omega f_2 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000220000 rho0 K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000190000 K*0 anti-K_2*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000050000 rho0 p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000020000 pi+ pi- pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000730000 p+ anti-p- pi+ pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000060000 K+ K- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000110000 K+ K- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000031000 phi eta' PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000032000 omega eta' PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000027000 p+ anti-p- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000044000 phi f'_2 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000870000 gamma eta pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000400000 gamma pi+ pi- pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000190000 gamma K+ K- pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000029000 gamma p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000028000 gamma pi+ pi- p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay - -Decay psi(4040) -0.000010700 e+ e- PHOTOS VLL; #[Reconstructed PDG2011] -0.000014000 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] -0.000005000 tau+ tau- VLL; #[Reconstructed PDG2011] -0.002099938 D0 anti-D0 VSS; #[Reconstructed PDG2011] -0.000899973 D+ D- VSS; #[Reconstructed PDG2011] -0.167895013 D*0 anti-D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.167895013 anti-D*0 D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.181494610 D*+ D- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.181494610 D*- D+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.159695257 D*0 anti-D*0 PHSP; #[Reconstructed PDG2011] -0.098197084 D*+ D*- PHSP; #[Reconstructed PDG2011] -0.000000000 D0 anti-D0 pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D+ D- pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D0 D- pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 anti-D0 D+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 D*+ D- pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D*- D+ pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D*+ anti-D0 pi- PHSP; #[Reconstructed PDG2011] -0.000000000 D*- D0 pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 D+ anti-D*0 pi- PHSP; #[Reconstructed PDG2011] -0.000000000 D- D*0 pi+ PHSP; #[Reconstructed PDG2011] -0.040298803 D_s+ D_s- VSS; #[Reconstructed PDG2011] -Enddecay -# -Decay psi(4160) -0.000008100 e+ e- PHOTOS VLL; #[Reconstructed PDG2011] -0.000009999 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] -0.000006000 tau+ tau- VLL; #[Reconstructed PDG2011] -0.039697852 D0 anti-D0 VSS; #[Reconstructed PDG2011] -0.038697906 D+ D- VSS; #[Reconstructed PDG2011] -0.051997187 D*0 anti-D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.051997187 anti-D*0 D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.051497214 D*+ D- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.051497214 D*- D+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.298613845 D*0 anti-D*0 PHSP; #[Reconstructed PDG2011] -0.308183327 D*+ D*- PHSP; #[Reconstructed PDG2011] -0.000000000 D0 anti-D0 pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D+ D- pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D0 D- pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 anti-D0 D+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 D*+ D- pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D*- D+ pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D*+ anti-D0 pi- PHSP; #[Reconstructed PDG2011] -0.000000000 D*- D0 pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 D+ anti-D*0 pi- PHSP; #[Reconstructed PDG2011] -0.000000000 D- D*0 pi+ PHSP; #[Reconstructed PDG2011] -0.009999459 D_s+ D_s- VSS; #[Reconstructed PDG2011] -0.048897355 D_s*+ D_s- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.048897355 D_s*- D_s+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.000000000 D_s+ D_s- pi0 PHSP; #[Reconstructed PDG2011] -Enddecay -# -Decay psi(4415) -0.000009400 e+ e- PHOTOS VLL; #[Reconstructed PDG2011] -0.000011000 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] -0.000007000 tau+ tau- VLL; #[Reconstructed PDG2011] -0.024399331 D0 anti-D0 VSS; #[Reconstructed PDG2011] -0.021899400 D+ D- VSS; #[Reconstructed PDG2011] -0.031999123 D*0 anti-D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.031999123 anti-D*0 D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.034299060 D*+ D- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.034299060 D*- D+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.345090544 D*0 anti-D*0 PHSP; #[Reconstructed PDG2011] -0.353890303 D*+ D*- PHSP; #[Reconstructed PDG2011] -0.000000000 D0 anti-D0 pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D+ D- pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D0 D- pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 anti-D0 D+ pi- PHSP; #[Reconstructed PDG2011] -0.000000000 D*+ D- pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D*- D+ pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D*+ anti-D0 pi- PHSP; #[Reconstructed PDG2011] -0.000000000 D*- D0 pi+ PHSP; #[Reconstructed PDG2011] -0.000000000 D+ anti-D*0 pi- PHSP; #[Reconstructed PDG2011] -0.000000000 D- D*0 pi+ PHSP; #[Reconstructed PDG2011] -0.011799677 D_s+ D_s- VSS; #[Reconstructed PDG2011] -0.041998849 D_s*+ D_s- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.041998849 D_s*- D_s+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.026299279 D_s*+ D_s*- PHSP; #[Reconstructed PDG2011] -0.000000000 D_s+ D_s- pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D_s*+ D_s- pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D_s+ D_s*- pi0 PHSP; #[Reconstructed PDG2011] -0.000000000 D_s+ D- anti-K0 PHSP; #[Reconstructed PDG2011] -0.000000000 D_s- D+ anti-K0 PHSP; #[Reconstructed PDG2011] -0.000000000 D0 D_s- K+ PHSP; #[Reconstructed PDG2011] -0.000000000 anti-D0 D_s+ K- PHSP; #[Reconstructed PDG2011] -Enddecay -# -Decay chi_c0 -0.011600000 gamma J/psi PHSP; #[Reconstructed PDG2011] -0.000228000 p+ anti-p- PHSP; #[Reconstructed PDG2011] -0.000222000 gamma gamma PHSP; #[Reconstructed PDG2011] -0.00243 pi0 pi0 PHSP; -0.00487 pi+ pi- PHSP; -0.013800000 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.002810000 K+ K- K+ K- PHSP; #[Reconstructed PDG2011] -0.012000000 pi+ pi- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.008900000 rho0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.0100 rho+ pi- pi0 PHSP; -0.0100 rho- pi+ pi0 PHSP; -0.00057 K+ K- PHSP; -0.000920000 phi phi PHSP; #[Reconstructed PDG2011] -0.001700000 anti-K*0 K*0 PHSP; #[Reconstructed PDG2011] -0.0036 anti-K*0 K+ pi- PHSP; -0.0036 K*0 K- pi+ PHSP; -0.0043 K*+ anti-K0 pi- PHSP; -0.0043 K*- K0 pi+ PHSP; -0.018000000 pi+ pi- K+ K- PHSP; #[Reconstructed PDG2011] -0.002100000 pi+ pi- p+ anti-p- PHSP; #[Reconstructed PDG2011] -0.002680000 eta eta PHSP; #[Reconstructed PDG2011] -0.000330000 Lambda0 anti-Lambda0 PHSP; #[Reconstructed PDG2011] -0.00086 f_0 f_0 PHSP; -0.0 K0 anti-K0 PHSP; -0.003160000 K_S0 K_S0 PHSP; #[Reconstructed PDG2011] -0.00282 K_L0 K_L0 PHSP; -0.0 K_S0 K_L0 PHSP; -# -# March 2009 New Modes -0.002030000 eta' eta' PHSP; #[Reconstructed PDG2011] -0.002200000 omega omega PHSP; #[Reconstructed PDG2011] -0.00325 K_1+ K- PHSP; -0.00325 K_1- K+ PHSP; -0.000990000 K+ K- phi PHSP; #[Reconstructed PDG2011] -0.001140000 p+ anti-n0 pi- PHSP; #[Reconstructed PDG2011] -0.000525 K+ anti-p- Lambda0 PHSP; -0.000525 K- p+ Lambda0 PHSP; -0.005800000 K_S0 K_S0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.00590 K_L0 K_L0 pi+ pi- PHSP; -0.00000 K0 anti-K0 pi+ pi- PHSP; -0.001400000 K+ K- K_S0 K_S0 PHSP; #[Reconstructed PDG2011] -0.00150 K+ K- K_L0 K_L0 PHSP; -0.00000 K+ K- K0 anti-K0 PHSP; -# -0.799360000 rndmflav anti-rndmflav PYTHIA 42; -0.034000000 pi+ pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.005700000 K+ K- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.003100000 K+ K- eta pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000570000 p+ anti-p- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000370000 p+ anti-p- eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001050000 pi0 pi0 p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000420000 Sigma0 anti-Sigma0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000310000 Sigma+ anti-Sigma- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000320000 Xi0 anti-Xi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000490000 Xi- anti-Xi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay chi_c1 -0.344000000 J/psi gamma VVP 1.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0; #[Reconstructed PDG2011] -0.007600000 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000073000 p+ anti-p- PHSP; #[Reconstructed PDG2011] -0.005800000 pi+ pi- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.004500000 pi+ pi- K+ K- PHSP; #[Reconstructed PDG2011] -0.003900000 rho0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.0020 rho+ pi- pi0 PHSP; -0.0020 rho- pi+ pi0 PHSP; -0.0016 anti-K*0 K+ pi- PHSP; -0.0016 K*0 K- pi+ PHSP; -0.001500000 anti-K*0 K*0 PHSP; #[Reconstructed PDG2011] -0.0009 K*+ anti-K0 pi- PHSP; -0.0009 K*- K0 pi+ PHSP; -0.000500000 pi+ pi- p+ anti-p- PHSP; #[Reconstructed PDG2011] -0.000720000 pi+ pi- K_S0 K_S0 PHSP; #[Reconstructed PDG2011] -0.0003 K+ K- K_S0 K_S0 PHSP; -0.000118000 Lambda0 anti-Lambda0 PHSP; #[Reconstructed PDG2011] -0.00385 K+ anti-K0 pi- PHSP; -0.00385 K- K0 pi+ PHSP; -0.000560000 K+ K- K+ K- PHSP; #[Reconstructed PDG2011] -0.00000 K0 anti-K0 PHSP; -0.00001 K_S0 K_S0 PHSP; -0.00001 K_L0 K_L0 PHSP; -0.00000 K_S0 K_L0 PHSP; -# -# March 2009 New Modes -0.002200000 pi+ pi- eta PHSP; #[Reconstructed PDG2011] -0.002400000 pi+ pi- eta' PHSP; #[Reconstructed PDG2011] -0.001910000 K+ K- pi0 PHSP; #[Reconstructed PDG2011] -# -0.587724 rndmflav anti-rndmflav PYTHIA 42; -0.008700000 pi+ pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001180000 K+ K- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001200000 K+ K- eta pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000330000 K+ K- eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.002800000 f_2 eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000430000 K+ K- phi PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000120000 p+ anti-p- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000320000 K+ anti-p- Lambda0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000084000 Xi- anti-Xi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000229000 gamma rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000078000 gamma omega PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay - - -# -Decay chi_c2 -0.195000000 gamma J/psi PHSP; #[Reconstructed PDG2011] -0.000256000 gamma gamma PHSP; #[Reconstructed PDG2011] -0.000072000 p+ anti-p- PHSP; #[Reconstructed PDG2011] -0.00072 pi0 pi0 TSS; -0.00145 pi+ pi- TSS; -0.011100000 pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.001780000 K+ K- K+ K- PHSP; #[Reconstructed PDG2011] -0.008600000 pi+ pi- pi+ pi- pi+ pi- PHSP; #[Reconstructed PDG2011] -0.009200000 pi+ pi- K+ K- PHSP; #[Reconstructed PDG2011] -0.004000000 rho0 pi+ pi- PHSP; #[Reconstructed PDG2011] -0.0046 rho+ pi- pi0 PHSP; -0.0046 rho- pi+ pi0 PHSP; -0.001090000 K+ K- TSS; #[Reconstructed PDG2011] -0.002400000 pi+ pi- K_S0 K_S0 PHSP; #[Reconstructed PDG2011] -0.0003 K+ K- K_S0 K_S0 PHSP; -0.001480000 phi phi PHSP; #[Reconstructed PDG2011] -0.00115 anti-K*0 K+ pi- PHSP; -0.00115 K*0 K- pi+ PHSP; -0.002500000 anti-K*0 K*0 PHSP; #[Reconstructed PDG2011] -0.0016 K*+ anti-K0 pi- PHSP; -0.0016 K*- K0 pi+ PHSP; -0.001320000 pi+ pi- p+ anti-p- PHSP; #[Reconstructed PDG2011] -0.000186000 Lambda0 anti-Lambda0 PHSP; #[Reconstructed PDG2011] -0.00000 K0 anti-K0 PHSP; -0.000580000 K_S0 K_S0 PHSP; #[Reconstructed PDG2011] -0.00065 K_L0 K_L0 PHSP; -0.00000 K_S0 K_L0 PHSP; -# -# March 2009 New Modes -0.001900000 omega omega PHSP; #[Reconstructed PDG2011] -0.0007 anti-K0 K+ pi- PHSP; -0.0007 K0 K- pi+ PHSP; -0.001550000 K+ K- phi PHSP; #[Reconstructed PDG2011] -0.001100000 p+ anti-n0 pi- PHSP; #[Reconstructed PDG2011] -# -0.709461000 rndmflav anti-rndmflav PYTHIA 42; -0.020000000 pi+ pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.002200000 K+ K- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001400000 K+ K- eta pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000520000 pi+ pi- eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000540000 pi+ pi- eta' PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000540000 eta eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000330000 K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000470000 p+ anti-p- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000200000 p+ anti-p- eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000850000 pi0 pi0 p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000155000 Xi- anti-Xi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay psi(3770) -0.410000000 D+ D- VSS; #[Reconstructed PDG2011] -0.520000000 D0 anti-D0 VSS; #[Reconstructed PDG2011] -0.001930000 J/psi pi+ pi- PHSP; #[Reconstructed PDG2011] -0.000800000 J/psi pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.0073 gamma chi_c0 PHSP; -0.0029 gamma chi_c1 PHSP; -0.055850300 rndmflav anti-rndmflav PYTHIA 42; -0.000900000 J/psi eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000009700 e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000310000 phi eta PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay X_1(3872) -1.000 rndmflav anti-rndmflav PYTHIA 42; -Enddecay -# -# -# bb= Mesons Updated to PDG 2008 -# -Decay eta_b -1.000 rndmflav anti-rndmflav PYTHIA 42; -Enddecay -# -Decay Upsilon -0.024800000 e+ e- PHOTOS VLL; #[Reconstructed PDG2011] -0.024800000 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] -0.026000000 tau+ tau- VLL; #[Reconstructed PDG2011] -0.014959973 d anti-d PYTHIA 91; -0.044879919 u anti-u PYTHIA 91; -0.014959973 s anti-s PYTHIA 91; -0.044879919 c anti-c PYTHIA 91; -0.774328202 g g g PYTHIA 92; -0.028922614 gamma g g PYTHIA 92; -0.000063000 gamma pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000017000 gamma pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000011400 gamma K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000290000 gamma pi+ pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000250000 gamma pi+ pi+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000250000 gamma pi+ pi+ pi+ pi- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000240000 gamma pi+ pi+ pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000150000 gamma pi+ pi- p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000040000 gamma pi+ pi+ pi- pi- p+ anti-p- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000020000 gamma K+ K+ K- K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000037000 gamma f'_2 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000101000 gamma f_2 PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay Upsilon(2S) -0.019100000 e+ e- PHOTOS VLL; #[Reconstructed PDG2011] -0.019300000 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] -0.020000000 tau+ tau- VLL; #[Reconstructed PDG2011] -0.181000000 Upsilon pi+ pi- PHSP; #[Reconstructed PDG2011] -0.086000000 Upsilon pi0 pi0 PHSP; #[Reconstructed PDG2011] -# V-> gamma S Partial wave (L,S)=(0,1) -0.038000000 gamma chi_b0 HELAMP 1. 0. +1. 0.; #[Reconstructed PDG2011] -# V-> gamma V Partial wave (L,S)=(0,1) -0.069000000 gamma chi_b1 HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; #[Reconstructed PDG2011] -# V-> gamma T Partial wave (L,S)=(0,1) -0.071500000 gamma chi_b2 HELAMP 2.4494897 0. 1.7320508 0. 1. 0. 1. 0. 1.7320508 0. 2.4494897 0.; #[Reconstructed PDG2011] -0.00500 d anti-d PYTHIA 91; -0.02000 u anti-u PYTHIA 91; -0.00500 s anti-s PYTHIA 91; -0.02000 c anti-c PYTHIA 91; -0.42160 g g g PYTHIA 92; -0.01600 gamma g g PYTHIA 92; -0.000210000 Upsilon eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000390000 gamma eta_b PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay Upsilon(3S) -0.0181 e+ e- PHOTOS VLL; -0.021800000 mu+ mu- PHOTOS VLL; #[Reconstructed PDG2011] -0.022900000 tau+ tau- VLL; #[Reconstructed PDG2011] -0.044000000 Upsilon pi+ pi- PHSP; #[Reconstructed PDG2011] -0.022000000 Upsilon pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.024500000 Upsilon(2S) pi+ pi- PHSP; #[Reconstructed PDG2011] -0.018500000 Upsilon(2S) pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.050000000 Upsilon(2S) gamma gamma PHSP; #[Reconstructed PDG2011] -# V-> gamma S Partial wave (L,S)=(0,1) -0.059000000 gamma chi_b0(2P) HELAMP 1. 0. 1. 0.; #[Reconstructed PDG2011] -# V-> gamma V Partial wave (L,S)=(0,1) -0.126000000 gamma chi_b1(2P) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; #[Reconstructed PDG2011] -# V-> gamma T Partial wave (L,S)=(0,1) -0.131000000 gamma chi_b2(2P) HELAMP 2.4494897 0. 1.7320508 0. 1. 0. 1. 0. 1.7320508 0. 2.4494897 0.; #[Reconstructed PDG2011] -0.00700 d anti-d PYTHIA 91; -0.02800 u anti-u PYTHIA 91; -0.00700 s anti-s PYTHIA 91; -0.02800 c anti-c PYTHIA 91; -0.37780 g g g PYTHIA 92; -0.01000 gamma g g PYTHIA 92; -0.003000000 gamma chi_b0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000510000 gamma eta_b PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# - -Decay Upsilon(5S) -0.5 B+ B- PHSP; -0.481487200 g g g PYTHIA 92; -0.000002800 e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.005300000 Upsilon pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.007800000 Upsilon(2S) pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.004800000 Upsilon(3S) pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000610000 Upsilon K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay - -Decay chi_b0 -# S-> gamma V Partial wave (L,S)=(0,0) -0.0500 gamma Upsilon HELAMP 1. 0. 1. 0.; -0.949650000 rndmflav anti-rndmflav PYTHIA 42; -0.000110000 pi+ pi+ pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000240000 pi+ pi+ pi+ pi- pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay chi_b1 -# V-> gamma V Partial wave (L,S)=(0,1) -0.350000000 gamma Upsilon HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; #[Reconstructed PDG2011] -0.643080000 g g PYTHIA 91; -0.000200000 pi+ pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000800000 pi+ pi+ pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000150000 pi+ pi+ pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000350000 pi+ pi+ pi- pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000860000 pi+ pi+ pi- pi- K+ K- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000190000 pi+ pi+ pi+ pi- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001700000 pi+ pi+ pi+ pi- pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000260000 pi+ pi+ pi+ pi- pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000750000 pi+ pi+ pi+ pi- pi- pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000260000 pi+ pi+ pi+ pi+ pi- pi- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001400000 pi+ pi+ pi+ pi+ pi- pi- pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay chi_b2 -# T-> gamma V Partial wave (L,S)=(0,2) Use PHSP. -0.220000000 gamma Upsilon PHSP; #[Reconstructed PDG2011] -#0.2200 gamma Upsilon HELAMP 1. 0. 1.7320508 0. 2.4494897 0. -# 2.4494897 0. 1.7320508 0. 1. 0.; -0.775550000 g g PYTHIA 91; -0.000080000 pi+ pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000350000 pi+ pi+ pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000110000 pi+ pi+ pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000210000 pi+ pi+ pi- pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000390000 pi+ pi+ pi- pi- K+ K- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000070000 pi+ pi+ pi+ pi- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001000000 pi+ pi+ pi+ pi- pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000360000 pi+ pi+ pi+ pi- pi- pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000080000 pi+ pi+ pi+ pi+ pi- pi- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001800000 pi+ pi+ pi+ pi+ pi- pi- pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay chi_b0(2P) -# S-> gamma V Partial wave (L,S)=(0,0) -0.009000000 gamma Upsilon HELAMP 1. 0. 1. 0.; #[Reconstructed PDG2011] -0.046000000 gamma Upsilon(2S) HELAMP 1. 0. 1. 0.; #[Reconstructed PDG2011] -# S-> gamma V Partial wave (L,S)=(0,0) -0.00150 gamma Upsilon_1(1D) HELAMP 1. 0. 1. 0.; -0.94350 g g PYTHIA 91; -Enddecay -# -Decay chi_b1(2P) -# V-> gamma V Partial wave (L,S)=(0,1) -0.085000000 gamma Upsilon HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; #[Reconstructed PDG2011] -0.210000000 gamma Upsilon(2S) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; #[Reconstructed PDG2011] -# V-> gamma V Partial wave (L,S)=(0,1) -0.0097 gamma Upsilon_1(1D) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; -# V-> gamma T Partial wave (L,S)=(0,1) -0.0236 gamma Upsilon_2(1D) HELAMP 2.4494897 0. 1.7320508 0. 1. 0. 1. 0. 1.7320508 0. 2.4494897 0.; -0.648650000 g g PYTHIA 91; -0.016300000 omega Upsilon PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000310000 pi+ pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000590000 pi+ pi+ pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000100000 pi+ pi+ pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000550000 pi+ pi+ pi- pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001000000 pi+ pi+ pi- pi- K+ K- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000120000 pi+ pi+ pi+ pi- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001200000 pi+ pi+ pi+ pi- pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000200000 pi+ pi+ pi+ pi- pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000610000 pi+ pi+ pi+ pi- pi- pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000170000 pi+ pi+ pi+ pi+ pi- pi- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001900000 pi+ pi+ pi+ pi+ pi- pi- pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay chi_b2(2P) -# T-> gamma V Partial wave (L,S)=(0,2) Use PHSP. -0.071000000 gamma Upsilon PHSP; #[Reconstructed PDG2011] -#0.0710 gamma Upsilon HELAMP 1. 0. 1.7320508 0. 2.4494897 0. -# 2.4494897 0. 1.7320508 0. 1. 0.; -0.162000000 gamma Upsilon(2S) PHSP; #[Reconstructed PDG2011] -#0.1620 gamma Upsilon(2S) HELAMP 1. 0. 1.7320508 0. 2.4494897 0. -# 2.4494897 0. 1.7320508 0. 1. 0.; -# T-> gamma V Partial wave (L,S)=(0,2) Use PHSP. -0.00023 gamma Upsilon_1(1D) PHSP; -#0.00023 gamma Upsilon_1(1D) HELAMP 1. 0. 1.7320508 0. 2.4494897 0. -# 2.4494897 0. 1.7320508 0. 1. 0.; -# T -> gamma T Partial wave (L,S)=(0,2) -0.00290 gamma Upsilon_2(1D) PHSP; -#0.00290 gamma Upsilon_2(1D) HELAMP -1. 0. -1.2247449 0. -# -1.2247449 0. -1. 0. -# 1. 0. 1.2247449 0. -# 1.2247449 0. 1. 0.; -# spin 3 not yet in HELAMP. -0.01420 gamma Upsilon_3(1D) PYTHIA 0; -# T-> gamma 3 Partial wave (L,S)=(0,2) -#0.01420 gamma Upsilon_3(1D) HELAMP 3.8729833 0. 3.1622777 0. -# 2.4494897 0. 1.7320508. 0. 1. 0. -# 1. 0. 1.7320508 0. 2.4494897 0. -# 3.1622777 0. 3.8729833 0.; -0.734240000 g g PYTHIA 91; -0.011000000 omega Upsilon PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000390000 pi+ pi+ pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000090000 pi+ pi+ pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000240000 pi+ pi+ pi- pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000470000 pi+ pi+ pi- pi- K+ K- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000090000 pi+ pi+ pi+ pi- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001200000 pi+ pi+ pi+ pi- pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000140000 pi+ pi+ pi+ pi- pi- pi- K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000420000 pi+ pi+ pi+ pi- pi- pi- K+ K- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000090000 pi+ pi+ pi+ pi+ pi- pi- pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001300000 pi+ pi+ pi+ pi+ pi- pi- pi- pi- pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay h_b -1.00000 g g PYTHIA 91; -Enddecay - -Decay chi_b0(3P) -#see Kwong and Rosner, PRD 38,279 (1988) -# S-> gamma V Partial wave (L,S)=(0,0) -0.01700 gamma Upsilon(3S) HELAMP 1. 0. 1. 0.; -# S-> gamma V Partial wave (L,S)=(0,0) -0.00400 gamma Upsilon_1(2D) HELAMP 1. 0. 1. 0.; -0.97900 g g PYTHIA 91; -Enddecay - -Decay chi_b1(3P) -#see Kwong and Rosner, PRD 38,279 (1988) -# V-> gamma V Partial wave (L,S)=(0,1) -0.15000 gamma Upsilon(3S) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; -# V-> gamma T Partial wave (L,S)=(0,1) -0.03100 gamma Upsilon_2(2D) HELAMP 2.4494897 0. 1.7320508 0. 1. 0. 1. 0. 1.7320508 0. 2.4494897 0.; -# V-> gamma V Partial wave (L,S)=(0,1) -0.01300 gamma Upsilon_1(2D) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; -0.80600 g g PYTHIA 91; -Enddecay - -Decay chi_b2(3P) -#see Kwong and Rosner, PRD 38,279 (1988) -# T-> gamma V Partial wave (L,S)=(0,2) Use PHSP. -0.08700 gamma Upsilon(3S) PHSP; -0.00000 gamma Upsilon(2S) PHSP; -0.00000 gamma Upsilon PHSP; -#0.08700 gamma Upsilon(3S) HELAMP 1. 0. 1.7320508 0. 2.4494897 0. -# 2.4494897 0. 1.7320508 0. 1. 0.; -#0.00000 gamma Upsilon(2S) HELAMP 1. 0. 1.7320508 0. 2.4494897 0. -# 2.4494897 0. 1.7320508 0. 1. 0.; -#0.00000 gamma Upsilon HELAMP 1. 0. 1.7320508 0. 2.4494897 0. -# 2.4494897 0. 1.7320508 0. 1. 0.; -# spin 3 not yet in HELAMP -0.02200 Upsilon_3(2D) gamma PHSP; -# T -> gamma 3 Partial wave (L,S)=(0,2) -#0.02200 gamma Upsilon_3(2D) HELAMP 3.8729833 0. 3.1622777 0. -# 2.4494897 0. 1.7320508. 0. 1. 0. -# 1. 0. 1.7320508 0. 2.4494897 0. -# 3.1622777 0. 3.8729833 0.; -# T -> gamma T Partial wave (L,S)=(0,2) -0.00400 gamma Upsilon_2(2D) PHSP; -#0.00400 gamma Upsilon_2(2D) HELAMP -1. 0. -1.2247449 0. -# -1.2247449 0. -1. 0. -# 1. 0. 1.2247449 0. -# 1.2247449 0. 1. 0.; -# T-> gamma V Partial wave (L,S)=(0,2) -0.00040 gamma Upsilon_1(2D) PHSP; -#0.00040 gamma Upsilon_1(2D) HELAMP 1. 0. 1.7320508 0. 2.4494897 0. -# 2.4494897 0. 1.7320508 0. 1. 0.; -0.88660 g g PYTHIA 91; -Enddecay - -Decay Upsilon_1(1D) -#see Kwong and Rosner, PRD 38,279 (1988) -0.00140 Upsilon pi+ pi- PHSP; -0.00070 Upsilon pi0 pi0 PHSP; -# V-> gamma S Partial wave (L,S)=(0,1) -0.60200 gamma chi_b0 HELAMP 1. 0. +1. 0.; -# V-> gamma V Partial wave (L,S)=(0,1) -0.31800 gamma chi_b1 HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; -# V-> gamma T Partial wave (L,S)=(0,1) -0.02600 gamma chi_b2 HELAMP 2.4494897 0. 1.7320508 0. 1. 0. 1. 0. 1.7320508 0. 2.4494897 0.; -0.05190 g g g PYTHIA 92; -Enddecay - -Decay Upsilon_2(1D) -#see Kwong and Rosner, PRD 38,279 (1988) -0.00140 Upsilon pi+ pi- PHSP; -0.00070 Upsilon pi0 pi0 PHSP; -# T-> gamma T Partial wave (L,S)=(0,2) -0.20300 gamma chi_b2 PHSP; -#0.20300 gamma chi_b2 HELAMP -1. 0. -1.2247449 0. -# -1.2247449 0. -1. 0. -# 1. 0. 1.2247449 0. -# 1.2247449 0. 1. 0.; -# T-> gamma V Partial wave (L,S)=(0,2) Use PHSP. -0.78500 gamma chi_b1 PHSP; -#0.78500 gamma chi_b1 HELAMP 1. 0. 1.7320508 0. 2.4494897 0. -# 2.4494897 0. 1.7320508 0. 1. 0.; -0.00990 g g g PYTHIA 92; -Enddecay - -Decay Upsilon_3(1D) -#see Kwong and Rosner, PRD 38,279 (1988) -0.00200 Upsilon pi+ pi- PHSP; -0.00100 Upsilon pi0 pi0 PHSP; -0.95400 chi_b2 gamma PHSP; -0.04300 g g g PYTHIA 92; -Enddecay - -Decay Upsilon_1(2D) -#see Kwong and Rosner, PRD 38,279 (1988) -0.00000 Upsilon pi+ pi- PHSP; -0.00000 Upsilon pi0 pi0 PHSP; -0.00000 Upsilon(2S) pi+ pi- PHSP; -0.00000 Upsilon(2S) pi0 pi0 PHSP; -# V-> gamma S Partial wave (L,S)=(0,1) -0.51000 gamma chi_b0(2P) HELAMP 1. 0. +1. 0.; -# V-> gamma V Partial wave (L,S)=(0,1) -0.26000 gamma chi_b1(2P) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; -# V-> gamma T Partial wave (L,S)=(0,1) -0.01400 gamma chi_b2(2P) HELAMP 2.4494897 0. 1.7320508 0. 1. 0. 1. 0. 1.7320508 0. 2.4494897 0.; -0.21600 g g g PYTHIA 92; -Enddecay - -Decay Upsilon_2(2D) -#see Kwong and Rosner, PRD 38,279 (1988) -0.00000 Upsilon pi+ pi- PHSP; -0.00000 Upsilon pi0 pi0 PHSP; -0.00000 Upsilon(2S) pi+ pi- PHSP; -0.00000 Upsilon(2S) pi0 pi0 PHSP; -# T-> gamma T Partial wave (L,S)=(0,2) -0.04000 gamma chi_b2(2P) PHSP; -#0.04000 gamma chi_b2(2P) HELAMP -1. 0. -1.2247449 0. -# -1.2247449 0. -1. 0. -# 1. 0. 1.2247449 0. -# 1.2247449 0. 1. 0.; -# T-> gamma V Partial wave (L,S)=(0,2) Use PHSP. -0.13000 gamma chi_b1(2P) PHSP; -#0.13000 gamma chi_b1(2P) HELAMP 1. 0. 1.7320508 0. 2.4494897 0. -# 2.4494897 0. 1.7320508 0. 1. 0.; -0.83000 g g g PYTHIA 92; -Enddecay - -Decay Upsilon_3(2D) -#see Kwong and Rosner, PRD 38,279 (1988) -0.00000 Upsilon pi+ pi- PHSP; -0.00000 Upsilon pi0 pi0 PHSP; -0.00000 Upsilon(2S) pi+ pi- PHSP; -0.00000 Upsilon(2S) pi0 pi0 PHSP; -0.72000 chi_b2(2P) gamma PHSP; -0.28000 g g g PYTHIA 92; -Enddecay - -Decay h_b(2P) -1.00000 g g PYTHIA 91; -Enddecay -Decay h_b(3P) -1.00000 g g PYTHIA 91; -Enddecay -Decay eta_b2(1D) -1.00000 g g PYTHIA 91; -Enddecay -Decay eta_b2(2D) -1.00000 g g PYTHIA 91; -Enddecay -# -# Charm Baryons -# -Decay Lambda_c+ -0.021000000 e+ nu_e Lambda0 PYTHIA 22; -0.00500 e+ nu_e Sigma0 PYTHIA 22; -0.00500 e+ nu_e Sigma*0 PYTHIA 22; -0.00300 e+ nu_e n0 PYTHIA 22; -0.00200 e+ nu_e Delta0 PYTHIA 22; -0.00600 e+ nu_e p+ pi- PYTHIA 22; -0.00600 e+ nu_e n0 pi0 PYTHIA 22; -0.020000000 mu+ nu_mu Lambda0 PYTHIA 22; -0.00500 mu+ nu_mu Sigma0 PYTHIA 22; -0.00500 mu+ nu_mu Sigma*0 PYTHIA 22; -0.00300 mu+ nu_mu n0 PYTHIA 22; -0.00200 mu+ nu_mu Delta0 PYTHIA 22; -0.00600 mu+ nu_mu p+ pi- PYTHIA 22; -0.00600 mu+ nu_mu n0 pi0 PYTHIA 22; -0.008600000 Delta++ K- PYTHIA 0; -0.02500 Delta++ K*- PYTHIA 0; -0.023000000 p+ anti-K0 PYTHIA 0; -0.016000000 p+ anti-K*0 PYTHIA 0; -0.00500 Delta+ anti-K0 PYTHIA 0; -0.00500 Delta+ anti-K*0 PYTHIA 0; -0.010700000 Lambda0 pi+ PYTHIA 0; -0.00500 Lambda0 rho+ PYTHIA 0; -0.010500000 Sigma0 pi+ PYTHIA 0; -0.00400 Sigma0 rho+ PYTHIA 0; -0.00400 Sigma*0 pi+ PYTHIA 0; -0.00400 Sigma*0 rho+ PYTHIA 0; -0.010000000 Sigma+ pi0 PYTHIA 0; -0.005500000 Sigma+ eta PYTHIA 0; -0.00200 Sigma+ eta' PYTHIA 0; -0.00400 Sigma+ rho0 PYTHIA 0; -0.027000000 Sigma+ omega PYTHIA 0; -0.00300 Sigma*+ pi0 PYTHIA 0; -0.008500000 Sigma*+ eta PYTHIA 0; -0.00300 Sigma*+ rho0 PYTHIA 0; -0.00300 Sigma*+ omega PYTHIA 0; -0.003900000 Xi0 K+ PYTHIA 0; -0.00200 Xi0 K*+ PYTHIA 0; -0.002600000 Xi*0 K+ PYTHIA 0; -0.00100 Delta++ pi- PYTHIA 0; -0.00100 Delta++ rho- PYTHIA 0; -0.00200 p+ pi0 PYTHIA 0; -0.00100 p+ eta PYTHIA 0; -0.00100 p+ eta' PYTHIA 0; -0.00200 p+ rho0 PYTHIA 0; -0.00200 p+ omega PYTHIA 0; -0.000820000 p+ phi PYTHIA 0; -0.002800000 p+ f_0 PYTHIA 0; -0.00100 Delta+ pi0 PYTHIA 0; -0.00100 Delta+ eta PYTHIA 0; -0.00100 Delta+ eta' PYTHIA 0; -0.00100 Delta+ rho0 PYTHIA 0; -0.00100 Delta+ omega PYTHIA 0; -0.00300 n0 pi+ PYTHIA 0; -0.00300 n0 rho+ PYTHIA 0; -0.00300 Delta0 pi+ PYTHIA 0; -0.00300 Delta0 rho+ PYTHIA 0; -0.00500 Lambda0 K+ PYTHIA 0; -0.00500 Lambda0 K*+ PYTHIA 0; -0.00200 Sigma0 K+ PYTHIA 0; -0.00200 Sigma0 K*+ PYTHIA 0; -0.00100 Sigma*0 K+ PYTHIA 0; -0.00100 Sigma*0 K*+ PYTHIA 0; -0.00200 Sigma+ K0 PYTHIA 0; -0.002800000 Sigma+ K*0 PYTHIA 0; -0.00100 Sigma*+ K0 PYTHIA 0; -0.00100 Sigma*+ K*0 PYTHIA 0; -0.064094509 u anti-d d su_0 PYTHIA 43; -0.028102977 u anti-d d su_1 PYTHIA 43; -0.017256214 u anti-s d su_0 PYTHIA 43; -0.017256214 u anti-d d ud_0 PYTHIA 43; -0.046838295 s uu_1 PYTHIA 43; -0.069024855 u su_0 PYTHIA 43; -0.069024855 u su_1 PYTHIA 43; -0.014791040 d uu_1 PYTHIA 43; -0.007395520 u ud_0 PYTHIA 43; -0.007395520 u ud_1 PYTHIA 43; -0.025400000 p+ K- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.033000000 p+ anti-K0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.012000000 p+ anti-K0 eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.026000000 p+ anti-K0 pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.023000000 p+ K- pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.011000000 p+ K*- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001100000 p+ K- pi+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.008000000 p+ K- pi+ pi0 pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000700000 p+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.001800000 p+ pi+ pi+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000000 p+ K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.036000000 Lambda0 pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.015000000 Lambda0 pi+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.011000000 Lambda0 pi+ rho0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000000 Lambda0 pi+ pi+ pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.009500000 Lambda0 pi+ eta PHSP; #[New mode added] #[Reconstructed PDG2011] -0.012000000 Lambda0 pi+ omega PHSP; #[New mode added] #[Reconstructed PDG2011] -0.004700000 Lambda0 K+ anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.036000000 Sigma+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.017000000 Sigma- pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.018000000 Sigma0 pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.008300000 Sigma0 pi+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000000 Sigma+ K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.003100000 Sigma+ phi PHSP; #[New mode added] #[Reconstructed PDG2011] -0.002500000 Xi- K+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.000000000 Sigma+ K+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -CDecay anti-Lambda_c- -# -Decay Xi_c0 -1.000 PYTHIA 42; -Enddecay -Decay anti-Xi_c0 -1.000 PYTHIA 42; -Enddecay -# -Decay c-hadron -0.08000 e+ nu_e s specflav PYTHIA 22; -0.08000 mu+ nu_mu s specflav PYTHIA 22; -0.76000 u anti-d s specflav PYTHIA 42; -0.08000 u anti-s s specflav PYTHIA 42; -Enddecay -CDecay anti-c-hadron -# -Decay Sigma_c0 -1.0000 Lambda_c+ pi- PHSP; -Enddecay -Decay anti-Sigma_c0 -1.0000 anti-Lambda_c- pi+ PHSP; -Enddecay -# -Decay Sigma_c+ -1.0000 Lambda_c+ pi0 PHSP; -Enddecay -Decay anti-Sigma_c- -1.0000 anti-Lambda_c- pi0 PHSP; -Enddecay -# -Decay Xi_c+ -0.079535513 PYTHIA 42; -0.079535513 Sigma*+ anti-K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.025689971 Lambda0 K- pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.010339617 Sigma+ K- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.064423765 Sigma+ anti-K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.023065299 Sigma0 K- pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.043744532 Xi0 pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.079535513 Xi- pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.186113099 Xi0 pi+ pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.138391792 Xi0 pi- pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.182931679 Xi0 e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -0.005567486 Omega- K+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.007158196 p+ K- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.009544262 p+ anti-K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.038177046 Sigma+ pi+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.014316392 Sigma- pi+ pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.011930327 Sigma+ K+ K- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -Decay anti-Xi_c- -0.079535513 PYTHIA 42; -0.079535513 anti-Sigma*- K0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.025689971 anti-Lambda0 K+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.010339617 anti-Sigma- K+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.064423765 anti-Sigma- K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.023065299 anti-Sigma0 K+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.043744532 anti-Xi0 pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.079535513 anti-Xi+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.186113099 anti-Xi0 pi- pi0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.138391792 anti-Xi0 pi+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.182931679 anti-Xi0 e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -0.005567486 anti-Omega+ K- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.007158196 anti-p- K+ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.009544262 anti-p- K*0 PHSP; #[New mode added] #[Reconstructed PDG2011] -0.038177046 anti-Sigma- pi- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.014316392 anti-Sigma+ pi- pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.011930327 anti-Sigma- K- K+ PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay Sigma_c++ -1.0000 Lambda_c+ pi+ PHSP; -Enddecay -Decay anti-Sigma_c-- -1.0000 anti-Lambda_c- pi- PHSP; -Enddecay -# -Decay Xi'_c+ -0.1000 Lambda0 K- pi+ pi+ PHSP; -0.0800 Sigma0 K- pi+ pi+ PHSP; -0.8200 gamma Xi_c+ PHSP; -Enddecay -Decay anti-Xi'_c- -0.1000 anti-Lambda0 K+ pi- pi- PHSP; -0.0800 anti-Sigma0 K+ pi- pi- PHSP; -0.8200 gamma anti-Xi_c- PHSP; -Enddecay -# -Decay Xi'_c0 -1.0000 gamma Xi_c0 PHSP; -Enddecay -Decay anti-Xi'_c0 -1.0000 gamma anti-Xi_c0 PHSP; -Enddecay -# -# Light Baryons -# Lambda0 updated Feb 2009 -Decay Lambda0 -Enddecay -# -Decay anti-Lambda0 -Enddecay -# -Decay Lambda(1405)0 -0.3333 Sigma+ pi- PHSP; -0.3333 Sigma- pi+ PHSP; -0.3333 Sigma0 pi0 PHSP; -Enddecay -# -Decay anti-Lambda(1405)0 -0.3333 anti-Sigma+ pi- PHSP; -0.3333 anti-Sigma- pi+ PHSP; -0.3333 anti-Sigma0 pi0 PHSP; -Enddecay -# -Decay Lambda(1520)0 -0.23 p+ K- PHSP; -0.23 n0 anti-K0 PHSP; -0.14 Sigma+ pi- PHSP; -0.14 Sigma- pi+ PHSP; -0.14 Sigma0 pi0 PHSP; -0.0333 Lambda0 pi0 pi0 PHSP; -0.0667 Lambda0 pi+ pi- PHSP; -0.003 Sigma+ pi- pi0 PHSP; -0.003 Sigma- pi+ pi0 PHSP; -0.001 Sigma0 pi0 pi0 PHSP; -0.002 Sigma0 pi+ pi- PHSP; -0.011 Lambda0 gamma PHSP; -Enddecay -# -Decay anti-Lambda(1520)0 -0.23 anti-p- K+ PHSP; -0.23 anti-n0 K0 PHSP; -0.14 anti-Sigma- pi+ PHSP; -0.14 anti-Sigma+ pi- PHSP; -0.14 anti-Sigma0 pi0 PHSP; -0.0333 anti-Lambda0 pi0 pi0 PHSP; -0.0667 anti-Lambda0 pi+ pi- PHSP; -0.003 anti-Sigma+ pi- pi0 PHSP; -0.003 anti-Sigma- pi+ pi0 PHSP; -0.001 anti-Sigma0 pi0 pi0 PHSP; -0.002 anti-Sigma0 pi+ pi- PHSP; -0.011 anti-Lambda0 gamma PHSP; -Enddecay -# -Decay Lambda(1600)0 -0.176 p+ K- PHSP; -0.176 n0 anti-K0 PHSP; -0.216 Sigma+ pi- PHSP; -0.216 Sigma- pi+ PHSP; -0.216 Sigma0 pi0 PHSP; -Enddecay -# -Decay anti-Lambda(1600)0 -0.176 anti-p- K+ PHSP; -0.176 anti-n0 K0 PHSP; -0.216 anti-Sigma+ pi- PHSP; -0.216 anti-Sigma- pi+ PHSP; -0.216 anti-Sigma0 pi0 PHSP; -Enddecay -# -Decay Lambda(1670)0 -0.10 p+ K- PHSP; -0.10 n0 anti-K0 PHSP; -0.16 Sigma+ pi- PHSP; -0.16 Sigma- pi+ PHSP; -0.16 Sigma0 pi0 PHSP; -0.32 Lambda0 eta PHSP; -Enddecay -# -Decay anti-Lambda(1670)0 -0.10 anti-p- K+ PHSP; -0.10 anti-n0 K0 PHSP; -0.16 anti-Sigma+ pi- PHSP; -0.16 anti-Sigma- pi+ PHSP; -0.16 anti-Sigma0 pi0 PHSP; -0.32 anti-Lambda0 eta PHSP; -Enddecay -# -Decay Lambda(1690)0 -0.125 p+ K- PHSP; -0.125 n0 anti-K0 PHSP; -0.10 Sigma+ pi- PHSP; -0.10 Sigma- pi+ PHSP; -0.10 Sigma0 pi0 PHSP; -0.0833 Lambda0 pi0 pi0 PHSP; -0.1667 Lambda0 pi+ pi- PHSP; -0.067 Sigma+ pi- pi0 PHSP; -0.067 Sigma- pi+ pi0 PHSP; -0.022 Sigma0 pi0 pi0 PHSP; -0.044 Sigma0 pi+ pi- PHSP; -Enddecay -# -Decay anti-Lambda(1690)0 -0.125 anti-p- K+ PHSP; -0.125 anti-n0 K0 PHSP; -0.10 anti-Sigma+ pi- PHSP; -0.10 anti-Sigma- pi+ PHSP; -0.10 anti-Sigma0 pi0 PHSP; -0.0833 anti-Lambda0 pi0 pi0 PHSP; -0.1667 anti-Lambda0 pi+ pi- PHSP; -0.067 anti-Sigma+ pi- pi0 PHSP; -0.067 anti-Sigma- pi+ pi0 PHSP; -0.022 anti-Sigma0 pi0 pi0 PHSP; -0.044 anti-Sigma0 pi+ pi- PHSP; -Enddecay -# -Decay Lambda(1800)0 -0.165 p+ K- PHSP; -0.165 n0 anti-K0 PHSP; -0.08 Sigma+ pi- PHSP; -0.08 Sigma- pi+ PHSP; -0.08 Sigma0 pi0 PHSP; -0.003 Sigma*+ pi- PHSP; -0.003 Sigma*- pi+ PHSP; -0.004 Sigma*0 pi0 PHSP; -0.21 p+ K*- PHSP; -0.21 n0 anti-K*0 PHSP; -Enddecay -# -Decay anti-Lambda(1800)0 -0.165 anti-p- K+ PHSP; -0.165 anti-n0 K0 PHSP; -0.08 anti-Sigma+ pi- PHSP; -0.08 anti-Sigma- pi+ PHSP; -0.08 anti-Sigma0 pi0 PHSP; -0.003 anti-Sigma*+ pi- PHSP; -0.003 anti-Sigma*- pi+ PHSP; -0.004 anti-Sigma*0 pi0 PHSP; -0.21 anti-p- K*+ PHSP; -0.21 anti-n0 K*0 PHSP; -Enddecay -# -Decay Lambda(1810)0 -0.165 p+ K- PHSP; -0.165 n0 anti-K0 PHSP; -0.08 Sigma+ pi- PHSP; -0.08 Sigma- pi+ PHSP; -0.08 Sigma0 pi0 PHSP; -0.003 Sigma*+ pi- PHSP; -0.003 Sigma*- pi+ PHSP; -0.004 Sigma*0 pi0 PHSP; -0.21 p+ K*- PHSP; -0.21 n0 anti-K*0 PHSP; -Enddecay -# -Decay anti-Lambda(1810)0 -0.165 anti-p- K+ PHSP; -0.165 anti-n0 K0 PHSP; -0.08 anti-Sigma+ pi- PHSP; -0.08 anti-Sigma- pi+ PHSP; -0.08 anti-Sigma0 pi0 PHSP; -0.003 anti-Sigma*+ pi- PHSP; -0.003 anti-Sigma*- pi+ PHSP; -0.004 anti-Sigma*0 pi0 PHSP; -0.21 anti-p- K*+ PHSP; -0.21 anti-n0 K*0 PHSP; -Enddecay -# -Decay Lambda(1820)0 -0.34 p+ K- PHSP; -0.34 n0 anti-K0 PHSP; -0.06 Sigma+ pi- PHSP; -0.06 Sigma- pi+ PHSP; -0.06 Sigma0 pi0 PHSP; -0.04 Sigma*+ pi- PHSP; -0.04 Sigma*- pi+ PHSP; -0.04 Sigma*0 pi0 PHSP; -0.01 Lambda0 eta PHSP; -0.003 Sigma+ pi- pi0 PHSP; -0.004 Sigma- pi+ pi0 PHSP; -0.001 Sigma0 pi0 pi0 PHSP; -0.002 Sigma0 pi+ pi- PHSP; -Enddecay -# -Decay anti-Lambda(1820)0 -0.34 anti-p- K+ PHSP; -0.34 anti-n0 K0 PHSP; -0.06 anti-Sigma+ pi- PHSP; -0.06 anti-Sigma- pi+ PHSP; -0.06 anti-Sigma0 pi0 PHSP; -0.04 anti-Sigma*+ pi- PHSP; -0.04 anti-Sigma*- pi+ PHSP; -0.04 anti-Sigma*0 pi0 PHSP; -0.01 anti-Lambda0 eta PHSP; -0.003 anti-Sigma+ pi- pi0 PHSP; -0.004 anti-Sigma- pi+ pi0 PHSP; -0.001 anti-Sigma0 pi0 pi0 PHSP; -0.002 anti-Sigma0 pi+ pi- PHSP; -Enddecay -# -Decay Lambda(1830)0 -0.05 p+ K- PHSP; -0.05 n0 anti-K0 PHSP; -0.24 Sigma+ pi- PHSP; -0.24 Sigma- pi+ PHSP; -0.24 Sigma0 pi0 PHSP; -0.06 Sigma*+ pi- PHSP; -0.06 Sigma*- pi+ PHSP; -0.06 Sigma*0 pi0 PHSP; -Enddecay -# -Decay anti-Lambda(1830)0 -0.05 anti-p- K+ PHSP; -0.05 anti-n0 K0 PHSP; -0.24 anti-Sigma+ pi- PHSP; -0.24 anti-Sigma- pi+ PHSP; -0.24 anti-Sigma0 pi0 PHSP; -0.06 anti-Sigma*+ pi- PHSP; -0.06 anti-Sigma*- pi+ PHSP; -0.06 anti-Sigma*0 pi0 PHSP; -Enddecay -# -# -Decay Sigma(1660)0 -0.07 p+ K- PHSP; -0.07 n0 anti-K0 PHSP; -0.16 Lambda0 pi0 PHSP; -0.35 Sigma+ pi- PHSP; -0.35 Sigma- pi+ PHSP; -Enddecay -# -Decay anti-Sigma(1660)0 -0.07 anti-p- K+ PHSP; -0.07 anti-n0 K0 PHSP; -0.16 anti-Lambda0 pi0 PHSP; -0.35 anti-Sigma+ pi- PHSP; -0.35 anti-Sigma- pi+ PHSP; -Enddecay -# -Decay Sigma(1670)0 -0.07 p+ K- PHSP; -0.07 n0 anti-K0 PHSP; -0.16 Lambda0 pi0 PHSP; -0.35 Sigma+ pi- PHSP; -0.35 Sigma- pi+ PHSP; -Enddecay -# -Decay anti-Sigma(1670)0 -0.07 anti-p- K+ PHSP; -0.07 anti-n0 K0 PHSP; -0.16 anti-Lambda0 pi0 PHSP; -0.35 anti-Sigma+ pi- PHSP; -0.35 anti-Sigma- pi+ PHSP; -Enddecay -# -Decay Sigma(1775)0 -0.215 p+ K- PHSP; -0.215 n0 anti-K0 PHSP; -0.20 Lambda0 pi0 PHSP; -0.02 Sigma+ pi- PHSP; -0.02 Sigma- pi+ PHSP; -0.055 Sigma*+ pi- PHSP; -0.055 Sigma*- pi+ PHSP; -0.22 Lambda(1520)0 pi0 PHSP; -Enddecay -# -Decay anti-Sigma(1775)0 -0.215 anti-p- K+ PHSP; -0.215 anti-n0 K0 PHSP; -0.20 anti-Lambda0 pi0 PHSP; -0.02 anti-Sigma+ pi- PHSP; -0.02 anti-Sigma- pi+ PHSP; -0.055 anti-Sigma*+ pi- PHSP; -0.055 anti-Sigma*- pi+ PHSP; -0.22 anti-Lambda(1520)0 pi0 PHSP; -Enddecay -Decay Sigma+ -Enddecay -Decay anti-Sigma- -Enddecay -# -Decay Delta+ -0.6630 p+ pi0 PHSP; -0.3310 n0 pi+ PHSP; -0.0060 p+ gamma PHSP; -Enddecay -Decay anti-Delta- -0.6630 anti-p- pi0 PHSP; -0.3310 anti-n0 pi- PHSP; -0.0060 anti-p- gamma PHSP; -Enddecay -# -Decay Delta++ -1.0000 p+ pi+ PHSP; -Enddecay -Decay anti-Delta-- -1.0000 anti-p- pi- PHSP; -Enddecay -# -Decay Xi*0 -0.3330 Xi0 pi0 PHSP; -0.6670 Xi- pi+ PHSP; -Enddecay -Decay anti-Xi*0 -0.3330 anti-Xi0 pi0 PHSP; -0.6670 anti-Xi+ pi- PHSP; -Enddecay -# -Decay Delta0 -0.3310 p+ pi- PHSP; -0.6630 n0 pi0 PHSP; -0.0060 n0 gamma PHSP; -Enddecay -Decay anti-Delta0 -0.3310 anti-p- pi+ PHSP; -0.6630 anti-n0 pi0 PHSP; -0.0060 anti-n0 gamma PHSP; -Enddecay -# -Decay Delta- -1.0000 n0 pi- PHSP; -Enddecay -Decay anti-Delta+ -1.0000 anti-n0 pi+ PHSP; -Enddecay -# -Decay Sigma- -Enddecay -Decay anti-Sigma+ -Enddecay -# -Decay Sigma0 -0.995024876 gamma Lambda0 PHSP; #[Reconstructed PDG2011] -0.004975124 Lambda0 e+ e- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -Decay anti-Sigma0 -0.995024876 gamma anti-Lambda0 PHSP; #[Reconstructed PDG2011] -0.004975124 anti-Lambda0 e- e+ PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay Sigma*- -0.8800 Lambda0 pi- PHSP; -0.0600 Sigma0 pi- PHSP; -0.0600 Sigma- pi0 PHSP; -Enddecay -Decay anti-Sigma*+ -0.8800 anti-Lambda0 pi+ PHSP; -0.0600 anti-Sigma0 pi+ PHSP; -0.0600 anti-Sigma+ pi0 PHSP; -Enddecay -# -Decay Sigma*+ -0.8800 Lambda0 pi+ PHSP; -0.0600 Sigma+ pi0 PHSP; -0.0600 Sigma0 pi+ PHSP; -Enddecay -Decay anti-Sigma*- -0.8800 anti-Lambda0 pi- PHSP; -0.0600 anti-Sigma- pi0 PHSP; -0.0600 anti-Sigma0 pi- PHSP; -Enddecay -# -Decay Sigma*0 -0.8800 Lambda0 pi0 PHSP; -0.0600 Sigma+ pi- PHSP; -0.0600 Sigma- pi+ PHSP; -Enddecay -Decay anti-Sigma*0 -0.8800 anti-Lambda0 pi0 PHSP; -0.0600 anti-Sigma- pi+ PHSP; -0.0600 anti-Sigma+ pi- PHSP; -Enddecay -# -Decay Xi0 -Enddecay -Decay anti-Xi0 -Enddecay -# -Decay Xi- -Enddecay -Decay anti-Xi+ -Enddecay -# -Decay Xi*- -0.6670 Xi0 pi- PHSP; -0.3330 Xi- pi0 PHSP; -Enddecay -Decay anti-Xi*+ -0.6670 anti-Xi0 pi+ PHSP; -0.3330 anti-Xi+ pi0 PHSP; -Enddecay -# -Decay Omega- -Enddecay -Decay anti-Omega+ -Enddecay -# -# -Decay Sigma_c*0 -1.0000 Lambda_c+ pi- PHSP; -Enddecay -CDecay anti-Sigma_c*0 -# -Decay Sigma_c*+ -1.0000 Lambda_c+ pi0 PHSP; -Enddecay -CDecay anti-Sigma_c*- -# -Decay Sigma_c*++ -1.0000 Lambda_c+ pi+ PHSP; -Enddecay -CDecay anti-Sigma_c*-- -# -Decay Xi_c*0 -0.5000 Xi_c0 pi0 PHSP; -0.5000 Xi_c0 gamma PHSP; -Enddecay -CDecay anti-Xi_c*0 -# -Decay Xi_c*+ -0.5000 Xi_c+ pi0 PHSP; -0.5000 Xi_c+ gamma PHSP; -Enddecay -CDecay anti-Xi_c*- -# -Decay Omega_c0 -1.00000 PYTHIA 42; -Enddecay -# -CDecay anti-Omega_c0 -# -Decay Omega_c*0 -1.0000 Omega_c0 gamma PHSP; -Enddecay -# -CDecay anti-Omega_c*0 -# -Decay Xu0 -# X_u^0 -> u anti-u -# -1.0 u anti-u PYTHIA 42; -Enddecay -Decay Xu+ -# X_u^+ -> u anti-d -# -1.0 u anti-d PYTHIA 42; -Enddecay -CDecay Xu- - -#lange - PYTHIA is making h_c mesons - better add a decay -# channel for them. -Decay h_c -0.01 J/psi pi0 PHSP; -0.5 eta_c gamma PHSP; -0.49 rndmflav anti-rndmflav PYTHIA 42; -Enddecay - -# 12/08/03 RJT Update b-baryon decays... -Decay Lambda_b0 -# SemiLeptonic Decays (inclusive BR = 7.7 +/- 1.8%) -0.050000000 Lambda_c+ e- anti-nu_e PHSP; #[Reconstructed PDG2011] -0.006300000 Lambda_c(2593)+ e- anti-nu_e PHSP; #[Reconstructed PDG2011] -0.011000000 Lambda_c(2625)+ e- anti-nu_e PHSP; #[Reconstructed PDG2011] - 0.00000 Sigma_c0 pi+ e- anti-nu_e PHSP; - 0.00000 Sigma_c+ pi0 e- anti-nu_e PHSP; - 0.00000 Sigma_c++ pi- e- anti-nu_e PHSP; - 0.00000 Sigma_c*0 pi+ e- anti-nu_e PHSP; - 0.00000 Sigma_c*+ pi0 e- anti-nu_e PHSP; - 0.00000 Sigma_c*++ pi- e- anti-nu_e PHSP; -# -0.050000000 Lambda_c+ mu- anti-nu_mu PHSP; #[Reconstructed PDG2011] -0.006300000 Lambda_c(2593)+ mu- anti-nu_mu PHSP; #[Reconstructed PDG2011] -0.011000000 Lambda_c(2625)+ mu- anti-nu_mu PHSP; #[Reconstructed PDG2011] - 0.00000 Sigma_c0 pi+ mu- anti-nu_mu PHSP; - 0.00000 Sigma_c+ pi0 mu- anti-nu_mu PHSP; - 0.00000 Sigma_c++ pi- mu- anti-nu_mu PHSP; - 0.00000 Sigma_c*0 pi+ mu- anti-nu_mu PHSP; - 0.00000 Sigma_c*+ pi0 mu- anti-nu_mu PHSP; - 0.00000 Sigma_c*++ pi- mu- anti-nu_mu PHSP; -# - 0.01720 Lambda_c+ tau- anti-nu_tau PHSP; - 0.00430 Lambda_c(2593)+ tau- anti-nu_tau PHSP; - 0.00320 Lambda_c(2625)+ tau- anti-nu_tau PHSP; - 0.00000 Sigma_c0 pi+ tau- anti-nu_tau PHSP; - 0.00000 Sigma_c+ pi0 tau- anti-nu_tau PHSP; - 0.00000 Sigma_c++ pi- tau- anti-nu_tau PHSP; - 0.00000 Sigma_c*0 pi+ tau- anti-nu_tau PHSP; - 0.00000 Sigma_c*+ pi0 tau- anti-nu_tau PHSP; - 0.00000 Sigma_c*++ pi- tau- anti-nu_tau PHSP; -# Hadronic Decays with Lambda_c+ -0.008800000 Lambda_c+ pi- PHSP; #[Reconstructed PDG2011] - 0.02200 Lambda_c+ pi- pi+ pi- PHSP; - 0.00055 Lambda_c+ K- PHSP; - 0.02200 Lambda_c+ D_s- PHSP; - 0.04400 Lambda_c+ D_s*- PHSP; - 0.01000 Lambda_c+ rho- PHSP; - 0.02000 Lambda_c+ a_1- PHSP; - 0.02000 Lambda0 K0 pi+ pi+ pi- pi- PHSP; -# Addition PR LHCb 09 Apr 2004, Lambda_b -> Lambda D0b - 0.00080 Lambda0 anti-D0 PHSP; -# Addition PR LHCb 04/07/04 -0.000006000 p+ K- PHSP; #[Reconstructed PDG2011] -0.000003800 p+ pi- PHSP; #[Reconstructed PDG2011] -# Addition PR LHCb 09 Apr 2004, Lambda_b -> Lambda rho0 and -> Lambda phi - 0.0000050 Lambda0 rho0 PHSP; - 0.0000200 Lambda0 phi PHSP; -# - 0.00047 Lambda0 J/psi PHSP; - 0.00038 Lambda0 psi(2S) PHSP; - 0.00100 Lambda0 eta_c PHSP; - 0.00080 n0 D0 PHSP; -# -# Additional decays from hep-ph/9709372 scaled to the Lambda_c0 pi rate - 0.00060 Sigma_c+ pi- PHSP; - 0.00060 Sigma_c0 pi0 PHSP; - 0.00040 Sigma_c0 eta PHSP; - 0.00050 Sigma_c0 eta' PHSP; - 0.00030 Xi_c0 K0 PHSP; - 0.00050 Xi'_c0 K0 PHSP; -# PR LHCb 27 Apr 2004, addition of Pythia decays -0.398544837 anti-u d c ud_0 PYTHIA 23; -0.082218903 anti-u c d ud_0 PYTHIA 43; -0.072280354 anti-c s c ud_0 PYTHIA 43; -0.010842053 anti-u d u ud_0 PYTHIA 22; -0.010842053 anti-c s u ud_0 PYTHIA 22; -# PR LHCb 2 Dec 2004, add Lambda gamma decay mode - 0.000065 Lambda0 gamma HELAMP 1. 0. 0. 0. ; - 0.000059 Lambda(1520)0 gamma PHSP ; - 0.000056 Lambda(1670)0 gamma HELAMP 1. 0. 0. 0. ; - 0.000057 Lambda(1600)0 gamma HELAMP 1. 0. 0. 0. ; -0.056000000 Lambda_c+ pi+ pi- mu- anti-nu_mu PHSP; #[New mode added] #[Reconstructed PDG2011] -0.056000000 Lambda_c+ pi+ pi- e- anti-nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay - -Decay anti-Lambda_b0 -# SemiLeptonic Decays (inclusive BR = 7.7 +/- 1.8%) -0.050000000 anti-Lambda_c- e+ nu_e PHSP; #[Reconstructed PDG2011] -0.006300000 anti-Lambda_c(2593)- e+ nu_e PHSP; #[Reconstructed PDG2011] -0.011000000 anti-Lambda_c(2625)- e+ nu_e PHSP; #[Reconstructed PDG2011] - 0.00000 anti-Sigma_c0 pi- e+ nu_e PHSP; - 0.00000 anti-Sigma_c- pi0 e+ nu_e PHSP; - 0.00000 anti-Sigma_c-- pi+ e+ nu_e PHSP; - 0.00000 anti-Sigma_c*0 pi- e+ nu_e PHSP; - 0.00000 anti-Sigma_c*- pi0 e+ nu_e PHSP; - 0.00000 anti-Sigma_c*-- pi+ e+ nu_e PHSP; -# -0.050000000 anti-Lambda_c- mu+ nu_mu PHSP; #[Reconstructed PDG2011] -0.006300000 anti-Lambda_c(2593)- mu+ nu_mu PHSP; #[Reconstructed PDG2011] -0.011000000 anti-Lambda_c(2625)- mu+ nu_mu PHSP; #[Reconstructed PDG2011] - 0.00000 anti-Sigma_c0 pi- mu+ nu_mu PHSP; - 0.00000 anti-Sigma_c- pi0 mu+ nu_mu PHSP; - 0.00000 anti-Sigma_c-- pi+ mu+ nu_mu PHSP; - 0.00000 anti-Sigma_c*0 pi- mu+ nu_mu PHSP; - 0.00000 anti-Sigma_c*- pi0 mu+ nu_mu PHSP; - 0.00000 anti-Sigma_c*-- pi+ mu+ nu_mu PHSP; -# - 0.01720 anti-Lambda_c- tau+ nu_tau PHSP; - 0.00430 anti-Lambda_c(2593)- tau+ nu_tau PHSP; - 0.00320 anti-Lambda_c(2625)- tau+ nu_tau PHSP; - 0.00000 anti-Sigma_c0 pi- tau+ nu_tau PHSP; - 0.00000 anti-Sigma_c- pi0 tau+ nu_tau PHSP; - 0.00000 anti-Sigma_c-- pi+ tau+ nu_tau PHSP; - 0.00000 anti-Sigma_c*0 pi- tau+ nu_tau PHSP; - 0.00000 anti-Sigma_c*- pi0 tau+ nu_tau PHSP; - 0.00000 anti-Sigma_c*-- pi+ tau+ nu_tau PHSP; -# Hadronic Decays with anti-Lambda_c- -0.008800000 anti-Lambda_c- pi+ PHSP; #[Reconstructed PDG2011] - 0.02200 anti-Lambda_c- pi+ pi+ pi- PHSP; - 0.00055 anti-Lambda_c- K+ PHSP; - 0.02200 anti-Lambda_c- D_s+ PHSP; - 0.04400 anti-Lambda_c- D_s*+ PHSP; - 0.01000 anti-Lambda_c- rho+ PHSP; - 0.02000 anti-Lambda_c- a_1+ PHSP; - 0.02000 Lambda0 anti-K0 pi- pi- pi+ pi+ PHSP; - # Addition LHCb PR 09 Apr 2004 Lambda_b -> Lambda D0b - 0.00080 anti-Lambda0 D0 PHSP; - # PR LHCb 04/07/04 Addition -0.000006000 anti-p- K+ PHSP; #[Reconstructed PDG2011] -0.000003800 anti-p- pi+ PHSP; #[Reconstructed PDG2011] -# Addition PR LHCb 09 Apr 2004, Lambda_b -> Lambda rho0 and -> Lambda phi - 0.0000050 anti-Lambda0 rho0 PHSP; - 0.0000200 anti-Lambda0 phi PHSP; -# - 0.00047 anti-Lambda0 J/psi PHSP; - 0.00038 anti-Lambda0 psi(2S) PHSP; - 0.001000 anti-Lambda0 eta_c PHSP; - 0.00080 anti-n0 anti-D0 PHSP; -# -# Additional decays from hep-ph/9709372 scaled to the Lambda_c0 pi rate - 0.00060 anti-Sigma_c- pi+ PHSP; - 0.00060 anti-Sigma_c0 pi0 PHSP; - 0.00040 anti-Sigma_c0 eta PHSP; - 0.00050 anti-Sigma_c0 eta' PHSP; - 0.00030 anti-Xi_c0 anti-K0 PHSP; - 0.00050 anti-Xi'_c0 anti-K0 PHSP; -# PR LHCb 27 Apr 2004, addition of Pythia decays -0.398544837 u anti-d anti-c anti-ud_0 PYTHIA 23; -0.082218903 u anti-c anti-d anti-ud_0 PYTHIA 43; -0.072280354 c anti-s anti-c anti-ud_0 PYTHIA 43; -0.010842053 u anti-d anti-u anti-ud_0 PYTHIA 22; -0.010842053 c anti-s anti-u anti-ud_0 PYTHIA 22; -# PR LHCb 2 Dec 2004 add Lambda gamma - 0.000065 anti-Lambda0 gamma HELAMP 0. 0. 1. 0. ; - 0.000059 anti-Lambda(1520)0 gamma PHSP ; - 0.000056 anti-Lambda(1670)0 gamma HELAMP 0. 0. 1. 0. ; - 0.000057 anti-Lambda(1600)0 gamma HELAMP 0. 0. 1. 0. ; -0.056000000 anti-Lambda_c- pi- pi+ mu+ nu_mu PHSP; #[New mode added] #[Reconstructed PDG2011] -0.056000000 anti-Lambda_c- pi- pi+ e+ nu_e PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay - -Decay Xi_b- -# SemiLeptonic Decays - 0.05460 Xi_c0 e- anti-nu_e PHSP; - 0.05460 Xi_c0 mu- anti-nu_mu PHSP; - 0.02000 Xi_c0 tau- anti-nu_tau PHSP; -# Hadronic Decays with Xi_c0 - 0.00600 Xi_c0 pi- PHSP; - 0.02200 Xi_c0 pi- pi+ pi- PHSP; - 0.00055 Xi_c0 K- PHSP; - 0.02200 Xi_c0 D_s- PHSP; - 0.00047 Xi- J/psi PHSP; -# added by D.Litvintsev 12/8/03: - 0.00038 Xi- psi(2S) PHSP; - 0.00018 D0 Lambda0 pi- PHSP; - 0.00020 Sigma_c0 K- PHSP; - 0.00020 Omega_c0 K- PHSP; -# -# aaa 10/19/05 Do not if this is correct but filling out with inclusives -0.38757 d anti-u d cs_0 PYTHIA 43; -0.16995 d anti-u d cs_1 PYTHIA 43; -0.06335 s anti-u d cs_0 PYTHIA 43; -0.00568 d anti-u s cs_1 PYTHIA 43; -0.00797 d anti-u s cs_0 PYTHIA 43; -0.06148 s anti-c d cs_0 PYTHIA 43; -0.06918 d anti-u d cd_0 PYTHIA 43; -0.03999 s anti-c d cd_0 PYTHIA 43; -0.00865 d anti-u d su_0 PYTHIA 43; -0.00500 s anti-c d su_0 PYTHIA 43; -Enddecay - -Decay anti-Xi_b+ -# SemiLeptonic Decays - 0.05460 anti-Xi_c0 e+ nu_e PHSP; - 0.05460 anti-Xi_c0 mu+ nu_mu PHSP; - 0.02000 anti-Xi_c0 tau+ nu_tau PHSP; -# Hadronic Decays with anti-Xi_c0 - 0.00600 anti-Xi_c0 pi+ PHSP; - 0.02200 anti-Xi_c0 pi+ pi+ pi- PHSP; - 0.00055 anti-Xi_c0 K+ PHSP; - 0.02200 anti-Xi_c0 D_s+ PHSP; - 0.00047 anti-Xi+ J/psi PHSP; -# added by D.Litvintsev 12/8/03: - 0.00038 anti-Xi+ psi(2S) PHSP; - 0.00018 anti-D0 anti-Lambda0 pi+ PHSP; - 0.00020 anti-Sigma_c0 K+ PHSP; - 0.00020 anti-Omega_c0 K+ PHSP; -# aaa 10/19/05 Do not if this is correct but filling out with inclusives -0.38757 u anti-d anti-d anti-cs_0 PYTHIA 43; -0.16995 u anti-d anti-d anti-cs_1 PYTHIA 43; -0.06335 u anti-s anti-d anti-cs_0 PYTHIA 43; -0.00568 u anti-d anti-s anti-cs_1 PYTHIA 43; -0.00797 u anti-d anti-s anti-cs_0 PYTHIA 43; -0.06148 c anti-s anti-d anti-cs_0 PYTHIA 43; -0.06918 u anti-d anti-d anti-cd_0 PYTHIA 43; -0.03999 c anti-s anti-d anti-cd_0 PYTHIA 43; -0.00865 u anti-d anti-d anti-su_0 PYTHIA 43; -0.00500 c anti-s anti-d anti-su_0 PYTHIA 43; -Enddecay - -Decay Xi_b0 -# SemiLeptonic Decays - 0.05460 Xi_c+ e- anti-nu_e PHSP; - 0.05460 Xi_c+ mu- anti-nu_mu PHSP; - 0.02000 Xi_c+ tau- anti-nu_tau PHSP; -# Hadronic Decays with Xi_c+ - 0.00600 Xi_c+ pi- PHSP; - 0.02200 Xi_c+ pi- pi+ pi- PHSP; - 0.00055 Xi_c+ K- PHSP; - 0.02200 Xi_c+ D_s- PHSP; - 0.00047 Xi0 J/psi PHSP; -# added by D.Litvintsev 12/8/03: - 0.00020 D0 Lambda0 PHSP; - 0.00010 Lambda_c+ K- PHSP; - 0.00020 Sigma_c0 anti-K0 PHSP; - 0.00020 Omega_c0 K0 PHSP; -# -# Additional decays from hep-ph/9709372 scaled to the Lambda_c0 pi rate - 0.00020 Xi'_c+ pi- PHSP; - 0.00003 Xi_c0 pi0 PHSP; - 0.00015 Xi_c0 eta PHSP; - 0.00004 Xi_c0 eta' PHSP; - 0.00020 Xi'_c0 pi0 PHSP; - 0.00020 Xi'_c0 eta PHSP; - 0.00030 Xi'_c0 eta' PHSP; - 0.00040 Sigma_c+ K- PHSP; -# aaa 10/19/05 Do not if this is correct but filling out with inclusives -0.58591 d anti-u s cu_0 PYTHIA 43; -0.01363 s anti-u s cu_1 PYTHIA 43; -0.09539 s anti-u s cc_1 PYTHIA 43; -0.10900 s anti-u d cu_1 PYTHIA 43; -0.01363 d anti-u d uu_1 PYTHIA 43; -Enddecay - -Decay anti-Xi_b0 - 0.05460 anti-Xi_c- e+ nu_e PHSP; - 0.05460 anti-Xi_c- mu+ nu_mu PHSP; - 0.02000 anti-Xi_c- tau+ nu_tau PHSP; -# Hadronic Decays with anti-Xi_c- - 0.00600 anti-Xi_c- pi+ PHSP; - 0.02200 anti-Xi_c- pi+ pi+ pi- PHSP; - 0.00055 anti-Xi_c- K+ PHSP; - 0.02200 anti-Xi_c- D_s+ PHSP; - 0.00047 anti-Xi0 J/psi PHSP; -# added by D.Litvintsev 12/8/03: - 0.00020 anti-D0 anti-Lambda0 PHSP; - 0.00010 anti-Lambda_c- K+ PHSP; - 0.00020 anti-Sigma_c0 K0 PHSP; - 0.00020 anti-Omega_c0 anti-K0 PHSP; -# -# Additional decays from hep-ph/9709372 scaled to the Lambda_c0 pi rate - 0.00020 anti-Xi'_c- pi+ PHSP; - 0.00003 anti-Xi_c0 pi0 PHSP; - 0.00015 anti-Xi_c0 eta PHSP; - 0.00004 anti-Xi_c0 eta' PHSP; - 0.00020 anti-Xi'_c0 pi0 PHSP; - 0.00020 anti-Xi'_c0 eta PHSP; - 0.00030 anti-Xi'_c0 eta' PHSP; - 0.00040 anti-Sigma_c- K+ PHSP; -# aaa 10/19/05 Do not if this is correct but filling out with inclusives -0.58591 u anti-d anti-s anti-cu_0 PYTHIA 43; -0.01363 u anti-s anti-s anti-cu_1 PYTHIA 43; -0.09539 u anti-s anti-s anti-cc_1 PYTHIA 43; -0.10900 u anti-s anti-d anti-cu_1 PYTHIA 43; -0.01363 u anti-d anti-d anti-uu_1 PYTHIA 43; -Enddecay - -# added by D.Litvintsev 12/8/03: -Decay Omega_b- -# SemiLeptonic Decays - 0.05460 Omega_c0 e- anti-nu_e PHSP; - 0.05460 Omega_c0 mu- anti-nu_mu PHSP; - 0.02000 Omega_c0 tau- anti-nu_tau PHSP; -# Hadronic Decays with Xi_c+ - 0.00600 Omega_c0 pi- PHSP; - 0.02200 Omega_c0 pi- pi+ pi- PHSP; - 0.00055 Omega_c0 K- PHSP; - 0.02200 Omega_c0 D_s- PHSP; - 0.0011 D0 Xi- PHSP; -# - 0.00047 Omega- J/psi PHSP; - 0.00038 Omega- psi(2S) PHSP; -# aaa 10/19/05 Do not if this is correct but filling out with inclusives -0.68192 d anti-u s cs_0 PYTHIA 43; -0.10910 d anti-u d cs_0 PYTHIA 43; -0.02728 d anti-u s su_0 PYTHIA 43; -Enddecay - -Decay anti-Omega_b+ -# SemiLeptonic Decays - 0.05460 anti-Omega_c0 e+ nu_e PHSP; - 0.05460 anti-Omega_c0 mu+ nu_mu PHSP; - 0.02000 anti-Omega_c0 tau+ nu_tau PHSP; -# Hadronic Decays with Xi_c+ - 0.00600 anti-Omega_c0 pi+ PHSP; - 0.02200 anti-Omega_c0 pi+ pi+ pi- PHSP; - 0.00055 anti-Omega_c0 K+ PHSP; - 0.02200 anti-Omega_c0 D_s+ PHSP; - 0.0011 anti-D0 anti-Xi+ PHSP; -# - 0.00047 anti-Omega+ J/psi PHSP; - 0.00038 anti-Omega+ psi(2S) PHSP; -# aaa 10/19/05 Do not if this is correct but filling out with inclusives -0.68192 u anti-d anti-s anti-cs_0 PYTHIA 43; -0.10910 u anti-d anti-d anti-cs_0 PYTHIA 43; -0.02728 u anti-d anti-s anti-su_0 PYTHIA 43; -Enddecay - - -Decay Sigma_b+ - 1.00000 Lambda_b0 pi+ PHSP; -Enddecay -Decay anti-Sigma_b- - 1.00000 anti-Lambda_b0 pi- PHSP; -Enddecay - -Decay Sigma_b- - 1.00000 Lambda_b0 pi- PHSP; -Enddecay -Decay anti-Sigma_b+ - 1.00000 anti-Lambda_b0 pi+ PHSP; -Enddecay - -Decay Sigma_b0 - 1.00000 Lambda_b0 gamma PHOTOS PHSP; -Enddecay -Decay anti-Sigma_b0 - 1.00000 anti-Lambda_b0 gamma PHOTOS PHSP; -Enddecay - - -# -# B_c Mesons -# - -Decay B_c- -0.01600 tau- anti-nu_tau SLN; -# -# SemiLeptonic Decays -0.01900 J/psi e- anti-nu_e PHOTOS PHSP; -0.00094 psi(2S) e- anti-nu_e PHOTOS PHSP; -0.00750 eta_c e- anti-nu_e PHOTOS PHSP; -0.00020 eta_c(2S) e- anti-nu_e PHOTOS PHSP; -0.00004 anti-D0 e- anti-nu_e PHOTOS PHSP; -0.00018 anti-D*0 e- anti-nu_e PHOTOS PHSP; -0.04030 anti-B_s0 e- anti-nu_e PHOTOS PHSP; -0.05060 anti-B_s*0 e- anti-nu_e PHOTOS PHSP; -0.00340 anti-B0 e- anti-nu_e PHOTOS PHSP; -0.00580 anti-B*0 e- anti-nu_e PHOTOS PHSP; -# -0.01900 J/psi mu- anti-nu_mu PHOTOS PHSP; -0.00094 psi(2S) mu- anti-nu_mu PHOTOS PHSP; -0.00750 eta_c mu- anti-nu_mu PHOTOS PHSP; -0.00020 eta_c(2S) mu- anti-nu_mu PHOTOS PHSP; -0.00004 anti-D0 mu- anti-nu_mu PHOTOS PHSP; -0.00018 anti-D*0 mu- anti-nu_mu PHOTOS PHSP; -0.04030 anti-B_s0 mu- anti-nu_mu PHOTOS PHSP; -0.05060 anti-B_s*0 mu- anti-nu_mu PHOTOS PHSP; -0.00340 anti-B0 mu- anti-nu_mu PHOTOS PHSP; -0.00580 anti-B*0 mu- anti-nu_mu PHOTOS PHSP; -# -0.00480 J/psi tau- anti-nu_tau PHSP; -0.00008 psi(2S) tau- anti-nu_tau PHSP; -0.00230 eta_c tau- anti-nu_tau PHSP; -0.000016 eta_c(2S) tau- anti-nu_tau PHSP; -0.00002 anti-D0 tau- anti-nu_tau PHSP; -0.00008 anti-D*0 tau- anti-nu_tau PHSP; -# -# -# Hadronic Decays -0.00200 eta_c pi- PHSP; -0.00420 rho- eta_c SVS; -0.00013 eta_c K- PHSP; -0.00020 K*- eta_c SVS; -0.00130 J/psi pi- SVS; -0.00400 J/psi rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00011 J/psi K- SVS; -0.00022 J/psi K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -0.000053 D- D0 PHSP; -0.000075 D*0 D- SVS; -0.000049 D*- D0 SVS; -0.00033 D*- D*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.0000048 D_s- D0 PHSP; -0.0000071 D*0 D_s- SVS; -0.0000045 D_s*- D0 SVS; -0.000026 D_s*- D*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -0.0000003 D- anti-D0 PHSP; -0.0000003 anti-D*0 D- SVS; -0.0000004 D*- anti-D0 SVS; -0.0000016 anti-D*0 D*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.0000066 D_s- anti-D0 PHSP; -0.0000063 anti-D*0 D_s- SVS; -0.0000085 D_s*- anti-D0 SVS; -0.0000404 D_s*- anti-D*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -0.00280 eta_c D_s- PHSP; -0.00270 D_s*- eta_c SVS; -0.00015 eta_c D- PHSP; -0.00010 D*- eta_c SVS; -0.00170 J/psi D_s- SVS; -0.00670 J/psi D_s*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00009 J/psi D- SVS; -0.00028 J/psi D*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -0.16400 anti-B_s0 pi- PHSP; -0.07200 rho- anti-B_s0 SVS; -0.01060 anti-B_s0 K- PHSP; -0.00000 K*- anti-B_s0 SVS; -0.06500 anti-B_s*0 pi- SVS; -0.20200 anti-B_s*0 rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00370 anti-B_s*0 K- SVS; -0.00000 anti-B_s*0 K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.01060 anti-B0 pi- PHSP; -0.00960 rho- anti-B0 SVS; -0.00070 anti-B0 K- PHSP; -0.00015 K*- anti-B0 SVS; -0.00950 anti-B*0 pi- SVS; -0.02570 anti-B*0 rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00055 anti-B*0 K- SVS; -0.00058 anti-B*0 K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00037 B- pi0 PHSP; -0.00034 rho0 B- SVS; -0.01980 B- K0 PHSP; -0.00430 K*0 B- SVS; -0.00033 B*- pi0 SVS; -0.00090 B*- rho0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.01600 B*- K0 SVS; -0.01670 B*- K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# PR LHCb 09 Apr 2004 Add B_c+ -> rho0 pi+ - 0.00002 rho0 pi- SVS; -0.06005 anti-c s PYTHIA 42; -# PR LHCb 27 Apr 2004 Add Pythia Modes -# -# ash 10/27/03 Do not if this is correct but filling out with unknown cs -#0.0200235 cs_0 anti-uu_0 PYTHIA 63; -#0.0400470 cs_1 anti-uu_1 PYTHIA 63; -# -Enddecay - -# 09/15/03 A. Sanchez: Using BR's from hep-ph/0308214 -# -# Total Br = 0.939865 + .06135 cs -Decay B_c+ -0.01600 tau+ nu_tau SLN; -# -# SemiLeptonic Decays -0.01900 J/psi e+ nu_e PHOTOS PHSP; -0.00094 psi(2S) e+ nu_e PHOTOS PHSP; -0.00750 eta_c e+ nu_e PHOTOS PHSP; -0.00020 eta_c(2S) e+ nu_e PHOTOS PHSP; -0.00004 D0 e+ nu_e PHOTOS PHSP; -0.00018 D*0 e+ nu_e PHOTOS PHSP; -0.04030 B_s0 e+ nu_e PHOTOS PHSP; -0.05060 B_s*0 e+ nu_e PHOTOS PHSP; -0.00340 B0 e+ nu_e PHOTOS PHSP; -0.00580 B*0 e+ nu_e PHOTOS PHSP; -# -0.01900 J/psi mu+ nu_mu PHOTOS PHSP; -0.00094 psi(2S) mu+ nu_mu PHOTOS PHSP; -0.00750 eta_c mu+ nu_mu PHOTOS PHSP; -0.00020 eta_c(2S) mu+ nu_mu PHOTOS PHSP; -0.00004 D0 mu+ nu_mu PHOTOS PHSP; -0.00018 D*0 mu+ nu_mu PHOTOS PHSP; -0.04030 B_s0 mu+ nu_mu PHOTOS PHSP; -0.05060 B_s*0 mu+ nu_mu PHOTOS PHSP; -0.00340 B0 mu+ nu_mu PHOTOS PHSP; -0.00580 B*0 mu+ nu_mu PHOTOS PHSP; -# -0.00480 J/psi tau+ nu_tau PHSP; -0.00008 psi(2S) tau+ nu_tau PHSP; -0.00230 eta_c tau+ nu_tau PHSP; -0.000016 eta_c(2S) tau+ nu_tau PHSP; -0.00002 D0 tau+ nu_tau PHSP; -0.00008 D*0 tau+ nu_tau PHSP; -# -# Hadronic Decays -0.00200 eta_c pi+ PHSP; -0.00420 rho+ eta_c SVS; -0.00013 eta_c K+ PHSP; -0.00020 K*+ eta_c SVS; -0.00130 J/psi pi+ SVS; -0.00400 J/psi rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00011 J/psi K+ SVS; -0.00022 J/psi K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -0.000053 D+ anti-D0 PHSP; -0.000075 anti-D*0 D+ SVS; -0.000049 D*+ anti-D0 SVS; -0.00033 D*+ anti-D*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.0000048 D_s+ anti-D0 PHSP; -0.0000071 anti-D*0 D_s+ SVS; -0.0000045 D_s*+ anti-D0 SVS; -0.000026 D_s*+ anti-D*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -0.0000003 D+ D0 PHSP; -0.0000003 D*0 D+ SVS; -0.0000004 D*+ D0 SVS; -0.0000016 D*0 D*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.0000066 D_s+ D0 PHSP; -0.0000063 D*0 D_s+ SVS; -0.0000085 D_s*+ D0 SVS; -0.0000404 D_s*+ D*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -0.00280 eta_c D_s+ PHSP; -0.00270 D_s*+ eta_c SVS; -0.00015 eta_c D+ PHSP; -0.00010 D*+ eta_c SVS; -0.00170 J/psi D_s+ SVS; -0.00670 J/psi D_s*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00009 J/psi D+ SVS; -0.00028 J/psi D*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# -0.16400 B_s0 pi+ PHSP; -0.07200 rho+ B_s0 SVS; -0.01060 B_s0 K+ PHSP; -0.00000 K*+ B_s0 SVS; -0.06500 B_s*0 pi+ SVS; -0.20200 B_s*0 rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00370 B_s*0 K+ SVS; -0.00000 B_s*0 K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.01060 B0 pi+ PHSP; -0.00960 rho+ B0 SVS; -0.00070 B0 K+ PHSP; -0.00015 K*+ B0 SVS; -0.00950 B*0 pi+ SVS; -0.02570 B*0 rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00055 B*0 K+ SVS; -0.00058 B*0 K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.00037 B+ pi0 PHSP; -0.00034 rho0 B+ SVS; -0.01980 B+ anti-K0 PHSP; -0.00430 K*0 B+ SVS; -0.00033 B*+ pi0 SVS; -0.00090 B*+ rho0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -0.01600 B*+ anti-K0 SVS; -0.01670 B*+ K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; -# PR LHCb 09 Apr 2004 Add B_c+ -> rho0 pi+ - 0.00002 rho0 pi+ SVS; -0.06005 c anti-s PYTHIA 42; -# PR LHCb 27 Apr 2004 Add Pythia Modes -# -# ash 10/27/03 Do not if this is correct but filling out with unknown cs -#0.0200235 anti-cs_0 uu_0 PYTHIA 63; -#0.0400470 anti-cs_1 uu_1 PYTHIA 63; -# -Enddecay - - -# Add excited Lambda_c decays (R.J. Tesarek 12/9/03) -# Just a guess for the last two BR [Lambda_c(2593)+]. -Decay Lambda_c(2593)+ -0.096585366 Sigma_c++ pi- PHSP; #[Reconstructed PDG2011] -0.096585366 Sigma_c0 pi+ PHSP; #[Reconstructed PDG2011] -0.190000000 Lambda_c+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.096585366 Sigma_c+ pi0 PHSP; #[Reconstructed PDG2011] -0.036219512 Lambda_c+ pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.004024390 Lambda_c+ gamma PHSP; #[Reconstructed PDG2011] -0.240000000 Sigma_c*++ pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -0.240000000 Sigma_c*0 pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -Decay anti-Lambda_c(2593)- -0.096585366 anti-Sigma_c-- pi+ PHSP; #[Reconstructed PDG2011] -0.096585366 anti-Sigma_c0 pi- PHSP; #[Reconstructed PDG2011] -0.190000000 anti-Lambda_c- pi- pi+ PHSP; #[Reconstructed PDG2011] -0.096585366 anti-Sigma_c- pi0 PHSP; #[Reconstructed PDG2011] -0.036219512 anti-Lambda_c- pi0 pi0 PHSP; #[Reconstructed PDG2011] -0.004024390 anti-Lambda_c- gamma PHSP; #[Reconstructed PDG2011] -0.240000000 anti-Sigma_c*-- pi+ PHSP; #[New mode added] #[Reconstructed PDG2011] -0.240000000 anti-Sigma_c*0 pi- PHSP; #[New mode added] #[Reconstructed PDG2011] -Enddecay -# -Decay Lambda_c(2625)+ -0.670000000 Lambda_c+ pi+ pi- PHSP; #[Reconstructed PDG2011] -0.320294118 Lambda_c+ pi0 PHSP; #[Reconstructed PDG2011] -0.009705882 Lambda_c+ gamma PHSP; #[Reconstructed PDG2011] -Enddecay -Decay anti-Lambda_c(2625)- -0.670000000 anti-Lambda_c- pi- pi+ PHSP; #[Reconstructed PDG2011] -0.320294118 anti-Lambda_c- pi0 PHSP; #[Reconstructed PDG2011] -0.009705882 anti-Lambda_c- gamma PHSP; #[Reconstructed PDG2011] -Enddecay - -# Add excited B hadrons (LHCb PR 10/03/04) -# Reference : Pythia 6.205 decay table -# PDG Id = 5312 -Decay Xi'_b- - 1.0000 Xi_b- gamma PHSP; -Enddecay -Decay anti-Xi'_b+ - 1.0000 anti-Xi_b+ gamma PHSP; -Enddecay -# PDG Id = 5322 -Decay Xi'_b0 - 1.0000 Xi_b0 gamma PHSP; -Enddecay -Decay anti-Xi'_b0 - 1.0000 anti-Xi_b0 gamma PHSP; -Enddecay -# PDG Id = 10521 -Decay B_0*+ - 0.6670 B0 pi+ PHSP; - 0.3330 B+ pi0 PHSP; -Enddecay -Decay B_0*- - 0.6670 anti-B0 pi- PHSP; - 0.3330 B- pi0 PHSP; -Enddecay -# PDG Id = 20523 Broad : S wave -Decay B'_1+ - 0.6670 B*0 pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; - 0.3330 B*+ pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -Decay B'_1- - 0.6670 anti-B*0 pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; - 0.3330 B*- pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# PDG Id = 10523 Narrow : D wave -Decay B_1+ - 0.6670 B*0 pi+ VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; - 0.3330 B*+ pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -Enddecay -Decay B_1- - 0.6670 anti-B*0 pi- VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; - 0.3330 B*- pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -Enddecay -# PDG Id = 525 Narrow : D wave -Decay B_2*+ - 0.3000 B0 pi+ TSS; - 0.1500 B+ pi0 TSS; - 0.1600 B*0 pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; - 0.0800 B*+ pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; - 0.1300 B*0 pi+ pi0 PHSP; - 0.0600 B*+ pi+ pi- PHSP; - 0.0800 B0 pi+ pi0 PHSP; - 0.0400 B+ pi+ pi- PHSP; -Enddecay -Decay B_2*- - 0.3000 anti-B0 pi- TSS; - 0.1500 B- pi0 TSS; - 0.1600 anti-B*0 pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; - 0.0800 B*- pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; - 0.1300 anti-B*0 pi- pi0 PHSP; - 0.0600 B*- pi- pi+ PHSP; - 0.0800 anti-B0 pi- pi0 PHSP; - 0.0400 B- pi- pi+ PHSP; -Enddecay -# PDG Id = 10511 -Decay B_0*0 - 0.6670 B+ pi- PHSP; - 0.3330 B0 pi0 PHSP; -Enddecay -Decay anti-B_0*0 - 0.6670 B- pi+ PHSP; - 0.3330 anti-B0 pi0 PHSP; -Enddecay -# PDG Id = 20513 Broad : S wave -Decay B'_10 - 0.6670 B*+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; - 0.3330 B*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -Decay anti-B'_10 - 0.6670 B*- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; - 0.3330 anti-B*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# PDG Id = 10513 Narrow : D wave -Decay B_10 - 0.6670 B*+ pi- VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; - 0.3330 B*0 pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -Enddecay -Decay anti-B_10 - 0.6670 B*- pi+ VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; - 0.3330 anti-B*0 pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -Enddecay -# PDG Id = 515 -Decay B_2*0 - 0.3000 B+ pi- TSS; - 0.1500 B0 pi0 TSS; - 0.1600 B*+ pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; - 0.0800 B*0 pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; - 0.1300 B*+ pi- pi0 PHSP; - 0.0600 B*0 pi+ pi- PHSP; - 0.0800 B+ pi- pi0 PHSP; - 0.0400 B0 pi+ pi- PHSP; -Enddecay -Decay anti-B_2*0 - 0.3000 B- pi+ TSS; - 0.1500 anti-B0 pi0 TSS; - 0.1600 B*- pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; - 0.0800 anti-B*0 pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; - 0.1300 B*- pi+ pi0 PHSP; - 0.0600 anti-B*0 pi- pi+ PHSP; - 0.0800 B- pi+ pi0 PHSP; - 0.0400 anti-B0 pi- pi+ PHSP; -Enddecay -# PDG Id = 10531 -Decay B_s0*0 - 0.5000 B+ K- PHSP; - 0.5000 B0 anti-K0 PHSP; -Enddecay -Decay anti-B_s0*0 - 0.5000 B- K+ PHSP; - 0.5000 anti-B0 K0 PHSP; -Enddecay -# PDG Id = 20533 Broad : S wave -Decay B'_s10 - 0.5000 B*+ K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; - 0.5000 B*0 anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -Decay anti-B'_s10 - 0.5000 B*- K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; - 0.5000 anti-B*0 K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -# PDG Id = 10533 Narrow : D wave -Decay B_s10 - 0.5000 B*+ K- VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; - 0.5000 B*0 anti-K0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -Enddecay -Decay anti-B_s10 - 0.5000 B*- K+ VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; - 0.5000 anti-B*0 K0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -Enddecay -# PDG Id = 535 Narrow : D wave -Decay B_s2*0 - 0.3000 B+ K- TSS; - 0.3000 B0 anti-K0 TSS; - 0.2000 B*+ K- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; - 0.2000 B*0 anti-K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -Enddecay -Decay anti-B_s2*0 - 0.3000 B- K+ TSS; - 0.3000 anti-B0 K0 TSS; - 0.2000 B*- K+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; - 0.2000 anti-B*0 K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -Enddecay -# PDG Id = 543 -Decay B_c*+ - 1.0000 B_c+ gamma VSP_PWAVE; -Enddecay -Decay B_c*- - 1.0000 B_c- gamma VSP_PWAVE; -Enddecay -# PDG Id = 545 Narrow : D wave -Decay B_c2*+ - 0.3000 B0 D+ TSS; - 0.3000 B+ D0 TSS; - 0.2000 B*0 D+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; - 0.2000 B*+ D0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -Enddecay -Decay B_c2*- - 0.3000 anti-B0 D- TSS; - 0.3000 B- anti-D0 TSS; - 0.2000 anti-B*0 D- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; - 0.2000 B*- anti-D0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; -Enddecay -# PDG Id = 5114 -Decay Sigma_b*- - 1.0000 Lambda_b0 pi- PHSP; -Enddecay -Decay anti-Sigma_b*+ - 1.0000 anti-Lambda_b0 pi+ PHSP; -Enddecay -# PDG Id = 5224 -Decay Sigma_b*+ - 1.0000 Lambda_b0 pi+ PHSP; -Enddecay -Decay anti-Sigma_b*- - 1.0000 anti-Lambda_b0 pi- PHSP; -Enddecay -# PDG Id = 5214 -Decay Sigma_b*0 - 1.0000 Lambda_b0 pi0 PHSP; -Enddecay -Decay anti-Sigma_b*0 - 1.0000 anti-Lambda_b0 pi0 PHSP; -Enddecay -# PDG Id = 5314 -Decay Xi_b*- - 1.0000 Xi_b- gamma PHSP; -Enddecay -Decay anti-Xi_b*+ - 1.0000 anti-Xi_b+ gamma PHSP; -Enddecay -# PDG Id = 5324 -Decay Xi_b*0 - 1.0000 Xi_b0 gamma PHSP; -Enddecay -Decay anti-Xi_b*0 - 1.0000 anti-Xi_b0 gamma PHSP; -Enddecay -# PDG Id = 5334 -Decay Omega_b*- - 1.0000 Omega_b- gamma PHSP; -Enddecay -Decay anti-Omega_b*+ - 1.0000 anti-Omega_b+ gamma PHSP; -Enddecay -# PDG Id = 10541 -Decay B_c0*+ - 0.5000 B0 D+ PHSP; - 0.5000 B+ D0 PHSP; -Enddecay -Decay B_c0*- - 0.5000 anti-B0 D- PHSP; - 0.5000 B- anti-D0 PHSP; -Enddecay -# PDG Id = 10543 Narrow : D wave -Decay B_c1+ - 0.5000 B*0 D+ VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; - 0.5000 B*+ D0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -Enddecay -Decay B_c1- - 0.5000 anti-B*0 D- VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; - 0.5000 B*- anti-D0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; -Enddecay -# PDG Id = 20543 Broad : S wave -Decay B'_c1+ - 0.5000 B*0 D+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; - 0.5000 B*+ D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay -Decay B'_c1- - 0.5000 anti-B*0 D- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; - 0.5000 B*- anti-D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; -Enddecay - -# Excited charmed Baryons LHCb PR 3-05-2006 -Decay Xi_cc*++ - 0.08 e+ nu_e Xi_c+ PHSP ; - 0.08 mu+ nu_mu Xi_c+ PHSP ; -0.51 u anti-d s cu_0 PYTHIA 42; -0.25 u anti-d s cu_1 PYTHIA 42; -0.05 u anti-s s cu_0 PYTHIA 42; -0.03 u anti-s s cu_1 PYTHIA 42; -Enddecay - -Decay anti-Xi_cc*-- - 0.08 e- anti-nu_e anti-Xi_c- PHSP; - 0.08 mu- anti-nu_mu anti-Xi_c- PHSP; -0.51 anti-u d anti-s anti-cu_0 PYTHIA 42; -0.25 anti-u d anti-s anti-cu_0 PYTHIA 42; -0.05 anti-u s anti-s anti-cu_1 PYTHIA 42; -0.03 anti-u s anti-s anti-cu_1 PYTHIA 42; -Enddecay - -Decay Xi_cc++ - 0.08 e+ nu_e Xi_c+ PHSP ; - 0.08 mu+ nu_mu Xi_c+ PHSP ; -0.51 u anti-d s cu_0 PYTHIA 42; -0.25 u anti-d s cu_1 PYTHIA 42; -0.05 u anti-s s cu_0 PYTHIA 42; -0.03 u anti-s s cu_1 PYTHIA 42; -Enddecay - -Decay anti-Xi_cc-- - 0.08 e- anti-nu_e anti-Xi_c- PHSP; - 0.08 mu- anti-nu_mu anti-Xi_c- PHSP; -0.51 anti-u d anti-s anti-cu_0 PYTHIA 42; -0.25 anti-u d anti-s anti-cu_0 PYTHIA 42; -0.05 anti-u s anti-s anti-cu_1 PYTHIA 42; -0.03 anti-u s anti-s anti-cu_1 PYTHIA 42; -Enddecay - -Decay Xi_cc*+ - 0.08 e+ nu_e Xi_c0 PHSP; - 0.08 mu+ nu_mu Xi_c0 PHSP; -0.51 u anti-d s cd_0 PYTHIA 42; -0.25 u anti-d s cd_1 PYTHIA 42; -0.05 u anti-s s cd_0 PYTHIA 42; -0.03 u anti-s s cd_1 PYTHIA 42; -Enddecay - -Decay anti-Xi_cc*- - 0.08 e- anti-nu_e anti-Xi_c0 PHSP; - 0.08 mu- anti-nu_mu anti-Xi_c0 PHSP; -0.51 anti-u d anti-s anti-cd_0 PYTHIA 42; -0.25 anti-u d anti-s anti-cd_1 PYTHIA 42; -0.05 anti-u s anti-s anti-cd_0 PYTHIA 42; -0.03 anti-u s anti-s anti-cd_1 PYTHIA 42; -Enddecay - -Decay Xi_cc+ - 0.08 e+ nu_e Xi_c0 PHSP; - 0.08 mu+ nu_mu Xi_c0 PHSP; -0.51 u anti-d s cd_0 PYTHIA 42; -0.25 u anti-d s cd_1 PYTHIA 42; -0.05 u anti-s s cd_0 PYTHIA 42; -0.03 u anti-s s cd_1 PYTHIA 42; -Enddecay - -Decay anti-Xi_cc- - 0.08 e- anti-nu_e anti-Xi_c0 PHSP; - 0.08 mu- anti-nu_mu anti-Xi_c0 PHSP; -0.51 anti-u d anti-s anti-cd_0 PYTHIA 42; -0.25 anti-u d anti-s anti-cd_1 PYTHIA 42; -0.05 anti-u s anti-s anti-cd_0 PYTHIA 42; -0.03 anti-u s anti-s anti-cd_1 PYTHIA 42; -Enddecay - -Decay Omega_cc+ - 0.08 e+ nu_e Omega_c0 PHSP; - 0.08 mu+ nu_mu Omega_c0 PHSP; -0.51 u anti-d s cs_0 PYTHIA 42; -0.25 u anti-d s cs_1 PYTHIA 42; -0.05 u anti-s s cs_0 PYTHIA 42; -0.03 u anti-s s cs_1 PYTHIA 42; -Enddecay - -Decay anti-Omega_cc- - 0.08 e- anti-nu_e anti-Omega_c0 PHSP; - 0.08 mu- anti-nu_mu anti-Omega_c0 PHSP; -0.51 anti-u d anti-s anti-cs_0 PYTHIA 42; -0.25 anti-u d anti-s anti-cs_1 PYTHIA 42; -0.05 anti-u s anti-s anti-cs_0 PYTHIA 42; -0.03 anti-u s anti-s anti-cs_1 PYTHIA 42; -Enddecay - -Decay Omega_cc*+ - 0.08 e+ nu_e Omega_c0 PHSP; - 0.08 mu+ nu_mu Omega_c0 PHSP; -0.51 u anti-d s cs_0 PYTHIA 42; -0.25 u anti-d s cs_1 PYTHIA 42; -0.05 u anti-s s cs_0 PYTHIA 42; -0.03 u anti-s s cs_1 PYTHIA 42; -Enddecay - -Decay anti-Omega_cc*- - 0.08 e- anti-nu_e anti-Omega_c0 PHSP; - 0.08 mu- anti-nu_mu anti-Omega_c0 PHSP; -0.51 anti-u d anti-s anti-cs_0 PYTHIA 42; -0.25 anti-u d anti-s anti-cs_1 PYTHIA 42; -0.05 anti-u s anti-s anti-cs_0 PYTHIA 42; -0.03 anti-u s anti-s anti-cs_1 PYTHIA 42; -Enddecay - -Decay K_L0 -Enddecay - -End diff --git a/GeneratorInterface/EvtGenInterface/data/LambdaB_pmunu_LCSR.dec b/GeneratorInterface/EvtGenInterface/data/LambdaB_pmunu_LCSR.dec deleted file mode 100644 index 768376ee78361..0000000000000 --- a/GeneratorInterface/EvtGenInterface/data/LambdaB_pmunu_LCSR.dec +++ /dev/null @@ -1,14 +0,0 @@ -# -# This is the decay file for the decay LambdaB -> P+ K- -# -Alias MyLambda_b0 Lambda_b0 -Alias Myanti-Lambda_b0 anti-Lambda_b0 -ChargeConj Myanti-Lambda_b0 MyLambda_b0 -# -Decay MyLambda_b0 -#1.000 p+ mu- anti-nu_mu PHOTOS Lb2plnuLCSR 1 1 1 1; -1.000 p+ mu- anti-nu_mu Lb2plnuLCSR 1 1 1 1; -Enddecay -CDecay Myanti-Lambda_b0 -# -End diff --git a/GeneratorInterface/EvtGenInterface/data/README b/GeneratorInterface/EvtGenInterface/data/README index 0d9b16db90a28..f5fe60d82ba52 100644 --- a/GeneratorInterface/EvtGenInterface/data/README +++ b/GeneratorInterface/EvtGenInterface/data/README @@ -1,6 +1,5 @@ -The Files: -DECAY_2009.DEC -DECAY_2010.DEC +DECAY.DEC +DECAY_NOLONGLIFE.DEC evt.pdl -were added from EvtGen/1.3.0 directory since this code is not ported into a data directory when the code is compiled. Customized files -for EvtGen DEC and pdl flies should go here in future. \ No newline at end of file +LambdaB_pmunu_LCSR.dec +were move to https://github.com/cms-data/GeneratorInterface-EvtGenInterface diff --git a/GeneratorInterface/EvtGenInterface/data/evt.pdl b/GeneratorInterface/EvtGenInterface/data/evt.pdl deleted file mode 100644 index cb904cae74b22..0000000000000 --- a/GeneratorInterface/EvtGenInterface/data/evt.pdl +++ /dev/null @@ -1,567 +0,0 @@ -* Copyright 1998-2020 CERN for the benefit of the EvtGen authors -* -* This file is part of EvtGen. -* -* EvtGen is free software: you can redistribute it and/or modify -* it under the terms of the GNU General Public License as published by -* the Free Software Foundation, either version 3 of the License, or -* (at your option) any later version. -* -* EvtGen is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU General Public License for more details. -* -* You should have received a copy of the GNU General Public License -* along with EvtGen. If not, see . -* -*--------------------------------------------------------------------------------------------------------------------------------------- -* 5/10/2013 Updated by R. Godang. The format and convention are based on the current evt.pdl and PDG 2012 -*--------------------------------------------------------------------------------------------------------------------------------------- -* name id mass/GeV width/GeV max_Dm/GeV 3*charge 2*spin lifetime*c/mm PythiaId -add p Particle K_4*+ 329 2.0450000e+00 1.9800000e-01 2.0000000e-01 3 8 0.0000000e+00 0 -add p Particle h_b(2P) 110553 1.0255000e+01 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 110553 -add p Particle b 5 5.0000000e+00 0.0000000e+00 0.0000000e+00 -1 1 0.0000000e+00 5 -add p Particle anti-nu_e -12 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 1 0.0000000e+00 -12 -add p Particle D_2*0 425 2.4607000e+00 4.7500000e-02 3.0900000e-01 0 4 0.0000000e+00 425 -add p Particle Upsilon 553 9.4603000e+00 5.4020000e-05 5.0000000e-04 0 2 0.0000000e+00 553 -add p Particle anti-B'_10 -20513 5.7570000e+00 2.5027080e-01 2.0000000e-01 0 2 0.0000000e+00 -20513 -add p Particle anti-K0 -311 4.9761100e-01 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 -311 -add p Particle Lambda(1405)0 13122 1.4051000e+00 5.0500000e-02 7.0000000e-02 0 1 0.0000000e+00 0 -add p Particle K*+ 323 8.9166000e-01 5.0300000e-02 2.3000000e-01 3 2 0.0000000e+00 323 -add p Particle e+ -11 5.1099895e-04 0.0000000e+00 0.0000000e+00 3 1 0.0000000e+00 -11 -add p Particle B0H 510 5.2795300e+00 0.0000000e+00 0.0000000e+00 0 0 4.5718350e-01 0 -add p Particle K_2*- -325 1.4256000e+00 9.8500000e-02 7.0000000e-01 -3 4 0.0000000e+00 -325 -add p Particle B'_10 20513 5.7570000e+00 2.5027080e-01 2.0000000e-01 0 2 0.0000000e+00 20513 -add p Particle K- -321 4.9367700e-01 0.0000000e+00 0.0000000e+00 -3 0 3.7114306e+03 -321 -add p Particle eta_b2(2D) 110555 1.0441000e+01 0.0000000e+00 0.0000000e+00 0 4 0.0000000e+00 110555 -add p Particle K'*0 100313 1.4210000e+00 2.3600000e-01 6.0000000e-01 0 2 0.0000000e+00 0 -add p Particle B_s10 10533 5.8287000e+00 5.0000000e-04 1.0000000e-02 0 2 0.0000000e+00 10533 -add p Particle K_S0 310 4.9761100e-01 0.0000000e+00 0.0000000e+00 0 0 2.6840419e+01 310 -add p Particle Upsilon_1(2D) 130553 1.0434900e+01 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 130553 -add p Particle B_0*- -10521 5.7380000e+00 1.4993444e-01 2.0000000e-01 -3 0 0.0000000e+00 -10521 -add p Particle D'_10 20423 2.4450000e+00 2.5027080e-01 3.0000000e-01 0 2 0.0000000e+00 20423 -add p Particle B+ 521 5.2793300e+00 0.0000000e+00 0.0000000e+00 3 0 4.9106005e-01 521 -add p Particle B_0*+ 10521 5.7380000e+00 1.4993444e-01 2.0000000e-01 3 0 0.0000000e+00 10521 -add p Particle Sigma_b*- 5114 5.8347400e+00 1.0400000e-02 0.0000000e+00 -3 3 0.0000000e+00 5114 -add p Particle anti-Lambda(1405)0 -13122 1.4051000e+00 5.0500000e-02 7.0000000e-02 0 1 0.0000000e+00 0 -add p Particle anti-B_s10 -10533 5.8287000e+00 5.0000000e-04 1.0000000e-02 0 2 0.0000000e+00 -10533 -add p Particle B0L 150 5.2795300e+00 0.0000000e+00 0.0000000e+00 0 0 4.5718350e-01 0 -add p Particle anti-B_0*0 -10511 5.7380000e+00 1.4993444e-01 2.0000000e-01 0 0 0.0000000e+00 -10511 -add p Particle anti-Sigma(1660)0 -13212 1.6600000e+00 1.0000000e-01 4.0000000e-01 0 1 0.0000000e+00 0 -add p Particle Xi_b0 5232 5.7919000e+00 0.0000000e+00 0.0000000e+00 0 1 4.2570529e-01 5232 -add p Particle D_2*- -415 2.4654000e+00 4.6700000e-02 3.1200000e-01 -3 4 0.0000000e+00 -415 -add p Particle b_1- -10213 1.2295000e+00 1.4200000e-01 2.5000000e-01 -3 2 0.0000000e+00 -10213 -add p Particle K*0 313 8.9555000e-01 4.7300000e-02 2.3000000e-01 0 2 0.0000000e+00 313 -add p Particle anti-K'*0 -100313 1.4210000e+00 2.3600000e-01 6.0000000e-01 0 2 0.0000000e+00 0 -add p Particle anti-Lambda(1600)0 -23122 1.6000000e+00 1.5000000e-01 2.5000000e-01 0 1 0.0000000e+00 0 -add p Particle B'_1+ 20523 5.7570000e+00 2.5027080e-01 2.0000000e-01 3 2 0.0000000e+00 20523 -add p Particle tau- 15 1.7768600e+00 0.0000000e+00 0.0000000e+00 -3 1 8.7119688e-02 15 -add p Particle f'_1 20333 1.4264000e+00 5.4900000e-02 1.0000000e-01 0 2 0.0000000e+00 20333 -add p Particle D(2S)- -100411 2.5800000e+00 0.0000000e+00 0.0000000e+00 -3 0 0.0000000e+00 0 -add p Particle D_s2*- -435 2.5691000e+00 1.6900000e-02 6.0000000e-02 -3 4 0.0000000e+00 -435 -add p Particle n0 2112 9.3956541e-01 0.0000000e+00 0.0000000e+00 0 1 2.6552618e+14 2112 -add p Particle anti-Xi*+ -3314 1.5350000e+00 9.9000000e-03 5.0000000e-02 3 3 0.0000000e+00 -3314 -add p Particle D*- -413 2.0102600e+00 8.3400000e-05 4.0000000e-04 -3 2 0.0000000e+00 -413 -add p Particle a_1+ 20213 1.2300000e+00 4.2000000e-01 6.0000000e-01 3 2 0.0000000e+00 20213 -add p Particle D*+ 413 2.0102600e+00 8.3400000e-05 4.0000000e-04 3 2 0.0000000e+00 413 -add p Particle rndmflav 82 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 82 -add p Particle anti-uu_1 -2203 0.0000000e+00 0.0000000e+00 0.0000000e+00 -4 2 0.0000000e+00 -2203 -add p Particle anti-c -4 1.3500000e+00 0.0000000e+00 0.0000000e+00 -2 1 0.0000000e+00 -4 -add p Particle Upsilon(5S) 9000553 1.0889900e+01 5.1000000e-02 1.6500000e+00 0 2 0.0000000e+00 0 -add p Particle Xi_cc++ 4422 3.5979800e+00 0.0000000e+00 0.0000000e+00 6 1 1.0000000e-01 4422 -add p Particle B_c- -541 6.2737000e+00 0.0000000e+00 0.0000000e+00 -3 0 1.3490661e-01 -541 -add p Particle anti-Sigma*+ -3114 1.3872000e+00 3.9400000e-02 4.0000000e-02 3 3 0.0000000e+00 -3114 -add p Particle anti-b'-hadron -87 4.0000000e+02 0.0000000e+00 0.0000000e+00 1 0 0.0000000e+00 0 -add p Particle Upsilon_1(1D) 30553 1.0163700e+01 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 30553 -add p Particle eta_c(2S) 100441 3.6375000e+00 1.1300000e-02 2.0000000e-02 0 0 0.0000000e+00 100441 -add p Particle anti-Delta- -2214 1.2320000e+00 1.1700000e-01 1.4000000e-01 -3 3 0.0000000e+00 -2214 -add p Particle anti-D_0*0 -10421 2.3000000e+00 2.7000000e-01 2.9900000e-01 0 0 0.0000000e+00 -10421 -add p Particle anti-nu_L -18 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 1 0.0000000e+00 -18 -add p Particle Lambda(1830)0 13126 1.8300000e+00 9.5000000e-02 4.8000000e-01 0 5 0.0000000e+00 0 -add p Particle Lambda0 3122 1.1156830e+00 0.0000000e+00 0.0000000e+00 0 1 7.8875396e+01 3122 -add p Particle uu_1 2203 0.0000000e+00 0.0000000e+00 0.0000000e+00 4 2 0.0000000e+00 2203 -add p Particle psi(4160) 9010443 4.1910000e+00 7.0000000e-02 1.5000000e-01 0 2 0.0000000e+00 0 -add p Particle Xi'_b0 5322 5.9600000e+00 6.5821220e-06 1.0000000e-04 0 1 0.0000000e+00 5322 -add p Particle b'-hadron 87 4.0000000e+02 0.0000000e+00 0.0000000e+00 -1 0 0.0000000e+00 0 -add p Particle Omega- 3334 1.6724500e+00 0.0000000e+00 0.0000000e+00 -3 3 2.4612961e+01 3334 -add p Particle B_10 10513 5.7261000e+00 2.7500000e-02 2.0000000e-01 0 2 0.0000000e+00 10513 -add p Particle anti-ud_1 -2103 0.0000000e+00 0.0000000e+00 0.0000000e+00 -1 2 0.0000000e+00 -2103 -add p Particle t-hadron 86 1.7500000e+02 0.0000000e+00 0.0000000e+00 2 0 0.0000000e+00 0 -add p Particle anti-t-hadron -86 1.7500000e+02 0.0000000e+00 0.0000000e+00 -2 0 0.0000000e+00 0 -add p Particle anti-Sigma0 -3212 1.1926420e+00 8.9000000e-06 1.3000000e-04 0 1 0.0000000e+00 -3212 -add p Particle B'_1- -20523 5.7570000e+00 2.5027080e-01 2.0000000e-01 -3 2 0.0000000e+00 -20523 -add p Particle Lambda_c(2593)+ 14122 2.5922500e+00 2.6000000e-03 5.4000000e-02 3 1 0.0000000e+00 0 -add p Particle anti-Lambda(1820)0 -3126 1.8200000e+00 8.0000000e-02 4.0000000e-01 0 5 0.0000000e+00 0 -add p Particle Omega_cc+ 4432 3.7866300e+00 0.0000000e+00 0.0000000e+00 3 1 1.0000000e-01 4432 -add p Particle anti-Delta-- -2224 1.2320000e+00 1.1700000e-01 1.4000000e-01 -6 3 0.0000000e+00 -2224 -add p Particle B_2*0 515 5.7395000e+00 2.4200000e-02 2.0000000e-01 0 4 0.0000000e+00 515 -add p Particle K'_10 20313 1.4030000e+00 1.7400000e-01 4.0000000e-01 0 2 0.0000000e+00 20313 -add p Particle sigma_0 9000221 4.7500000e-01 5.5000000e-01 4.7800000e-01 0 0 0.0000000e+00 0 -add p Particle anti-Xi_cc*-- -4424 3.6564800e+00 0.0000000e+00 0.0000000e+00 -6 3 0.0000000e+00 -4424 -add p Particle anti-D_10 -10423 2.4208000e+00 3.1700000e-02 2.7200000e-01 0 2 0.0000000e+00 -10423 -add p Particle anti-Lambda_c(2593)- -14122 2.5922500e+00 2.6000000e-03 5.4000000e-02 -3 1 0.0000000e+00 0 -add p Particle B_1- -10523 5.7259000e+00 3.1000000e-02 2.0000000e-01 -3 2 0.0000000e+00 -10523 -add p Particle anti-Xi_cc- -4412 3.5979800e+00 0.0000000e+00 0.0000000e+00 -3 1 1.0000000e-01 -4412 -add p Particle D_s- -431 1.9683400e+00 0.0000000e+00 0.0000000e+00 -3 0 1.4989623e-01 -431 -add p Particle anti-Lambda_c- -4122 2.2864600e+00 0.0000000e+00 0.0000000e+00 -3 1 5.9958492e-02 -4122 -add p Particle Xi_cc+ 4412 3.5979800e+00 0.0000000e+00 0.0000000e+00 3 1 1.0000000e-01 4412 -add p Particle B_1+ 10523 5.7259000e+00 3.1000000e-02 2.0000000e-01 3 2 0.0000000e+00 10523 -add p Particle D_0*- -10411 2.3000000e+00 2.7000000e-01 3.0300000e-01 -3 0 0.0000000e+00 -10411 -add p Particle anti-Xi_cc-- -4422 3.5979800e+00 0.0000000e+00 0.0000000e+00 -6 1 1.0000000e-01 -4422 -add p Particle anti-Sigma_b*+ -5114 5.8347400e+00 1.0400000e-02 0.0000000e+00 3 3 0.0000000e+00 -5114 -add p Particle chi_b2(3P) 200555 1.0526400e+01 0.0000000e+00 0.0000000e+00 0 4 0.0000000e+00 200555 -add p Particle K''*- -30323 1.7180000e+00 3.2000000e-01 7.0000000e-01 -3 2 0.0000000e+00 0 -add p Particle vpho 10022 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 0 -add p Particle K_4*- -329 2.0450000e+00 1.9800000e-01 2.0000000e-01 -3 8 0.0000000e+00 0 -add p Particle K_L0 130 4.9761100e-01 0.0000000e+00 0.0000000e+00 0 0 1.5337382e+04 130 -add p Particle eta_b(3S) 200551 1.0335000e+01 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 0 -add p Particle K''*+ 30323 1.7180000e+00 3.2000000e-01 7.0000000e-01 3 2 0.0000000e+00 0 -add p Particle Lambda(1800)0 43122 1.8000000e+00 3.0000000e-01 4.5000000e-01 0 1 0.0000000e+00 0 -add p Particle anti-Lambda(1800)0 -43122 1.8000000e+00 3.0000000e-01 4.5000000e-01 0 1 0.0000000e+00 0 -add p Particle K_10 10313 1.2720000e+00 9.0000000e-02 2.0000000e-01 0 2 0.0000000e+00 10313 -add p Particle D*(2S)- -100413 2.6400000e+00 0.0000000e+00 0.0000000e+00 -3 2 0.0000000e+00 0 -add p Particle CELLjet 98 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 98 -add p Particle B_c2*- -545 7.3500000e+00 0.0000000e+00 6.0000000e-02 -3 4 0.0000000e+00 -545 -add p Particle K_0*0 10311 1.4300000e+00 2.7000000e-01 6.0000000e-01 0 0 0.0000000e+00 10311 -add p Particle D_s0*- -10431 2.3178000e+00 1.0000033e-03 1.0000000e-02 -3 0 0.0000000e+00 -10431 -add p Particle h_b(3P) 210553 1.0516000e+01 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 210553 -add p Particle Lambda_c+ 4122 2.2864600e+00 0.0000000e+00 0.0000000e+00 3 1 5.9958492e-02 4122 -add p Particle Xi_c0 4132 2.4709100e+00 0.0000000e+00 0.0000000e+00 0 1 4.5921780e-02 4132 -add p Particle D_s0*+ 10431 2.3178000e+00 1.0000033e-03 1.0000000e-02 3 0 0.0000000e+00 10431 -add p Particle junction 88 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 88 -add p Particle K'_1- -20323 1.4030000e+00 1.7400000e-01 4.0000000e-01 -3 2 0.0000000e+00 -20323 -add p Particle X_2(3872) 9910445 3.8722000e+00 3.1700598e-04 2.9000000e-03 0 4 0.0000000e+00 9910445 -add p Particle K+ 321 4.9367700e-01 0.0000000e+00 0.0000000e+00 3 0 3.7114306e+03 321 -add p Particle anti-Xi_cc*- -4414 3.6564800e+00 0.0000000e+00 0.0000000e+00 -3 3 0.0000000e+00 -4414 -add p Particle s 3 1.9900000e-01 0.0000000e+00 0.0000000e+00 -1 1 0.0000000e+00 3 -add p Particle D*(2S)+ 100413 2.6400000e+00 0.0000000e+00 0.0000000e+00 3 2 0.0000000e+00 0 -add p Particle D_s*+ 433 2.1122000e+00 6.5821023e-06 1.0000000e-04 3 2 0.0000000e+00 433 -add p Particle anti-Omega_c*0 -4334 2.7659000e+00 0.0000000e+00 0.0000000e+00 0 3 0.0000000e+00 -4334 -add p Particle D_0*+ 10411 2.3000000e+00 2.7000000e-01 3.0300000e-01 3 0 0.0000000e+00 10411 -add p Particle anti-p- -2212 9.3827208e-01 0.0000000e+00 0.0000000e+00 -3 1 0.0000000e+00 -2212 -add p Particle anti-bd_1 -5103 0.0000000e+00 0.0000000e+00 0.0000000e+00 2 2 0.0000000e+00 -5103 -add p Particle h_b 10553 9.8993000e+00 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 10553 -add p Particle anti-Lambda(1830)0 -13126 1.8300000e+00 9.5000000e-02 4.8000000e-01 0 5 0.0000000e+00 0 -add p Particle anti-u -2 5.6000000e-03 0.0000000e+00 0.0000000e+00 -2 1 0.0000000e+00 -2 -add p Particle mu+ -13 1.0565837e-01 0.0000000e+00 0.0000000e+00 3 1 6.5864973e+05 -13 -add p Particle bc_0 5401 0.0000000e+00 0.0000000e+00 0.0000000e+00 1 0 0.0000000e+00 5401 -add p Particle alpha 1000020040 3.7274170e+00 0.0000000e+00 0.0000000e+00 6 0 0.0000000e+00 0 -add p Particle Sigma*- 3114 1.3872000e+00 3.9400000e-02 4.0000000e-02 -3 3 0.0000000e+00 3114 -add p Particle K''*0 30313 1.7180000e+00 3.2000000e-01 7.0000000e-01 0 2 0.0000000e+00 0 -add p Particle B*- -523 5.3247000e+00 6.5819970e-06 1.0000000e-04 -3 2 0.0000000e+00 -523 -add p Particle phasespa 83 1.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 83 -add p Particle b_10 10113 1.2295000e+00 1.4200000e-01 2.5000000e-01 0 2 0.0000000e+00 10113 -add p Particle D+ 411 1.8696500e+00 0.0000000e+00 0.0000000e+00 3 0 3.1178416e-01 411 -add p Particle b-hadron 85 5.0000000e+00 0.0000000e+00 0.0000000e+00 -1 0 3.8699999e-01 85 -add p Particle anti-Xi_b*0 -5324 5.9700000e+00 0.0000000e+00 0.0000000e+00 0 3 0.0000000e+00 -5324 -add p Particle chi_b1(3P) 220553 1.0516000e+01 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 220553 -add p Particle D*(2S)0 100423 2.6400000e+00 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 0 -add p Particle anti-D*0 -423 2.0068500e+00 6.5821023e-06 3.0000000e-04 0 2 0.0000000e+00 -423 -add p Particle Lambda(1810)0 53122 1.8100000e+00 1.5000000e-01 4.6000000e-01 0 1 0.0000000e+00 0 -add p Particle rho0 113 7.7526000e-01 1.4910000e-01 4.8000000e-01 0 2 0.0000000e+00 113 -add p Particle anti-B*0 -513 5.3247000e+00 6.5819970e-06 1.0000000e-04 0 2 0.0000000e+00 -513 -add p Particle pi- -211 1.3957061e-01 0.0000000e+00 0.0000000e+00 -3 0 7.8044971e+03 -211 -add p Particle anti-B'_s10 -20533 5.8590000e+00 2.5027080e-01 2.0000000e-02 0 2 0.0000000e+00 -20533 -add p Particle h_1 10223 1.1700000e+00 3.6000000e-01 2.0000000e-01 0 2 0.0000000e+00 10223 -add p Particle geantino 480000000 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 0 -add p Particle indep 93 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 93 -add p Particle Cerenkov 20022 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 0 -add p Particle anti-Sigma*0 -3214 1.3837000e+00 3.6000000e-02 3.5000000e-02 0 3 0.0000000e+00 -3214 -add p Particle a_10 20113 1.2300000e+00 4.2000000e-01 6.0000000e-01 0 2 0.0000000e+00 20113 -add p Particle Higgs+ 37 3.1000000e+02 7.0022575e+00 0.0000000e+00 3 0 0.0000000e+00 37 -add p Particle Sigma*0 3214 1.3837000e+00 3.6000000e-02 3.5000000e-02 0 3 0.0000000e+00 3214 -add p Particle Xi_cc*+ 4414 3.6564800e+00 0.0000000e+00 0.0000000e+00 3 3 0.0000000e+00 4414 -add p Particle f'_2 335 1.5250000e+00 7.3000000e-02 2.0000000e-01 0 4 0.0000000e+00 335 -add p Particle Xi_b- 5132 5.7970000e+00 0.0000000e+00 0.0000000e+00 -3 1 4.2570529e-01 5132 -add p Particle anti-K_4*0 -319 2.0450000e+00 1.9800000e-01 2.0000000e-01 0 8 0.0000000e+00 0 -add p Particle rho(2S)+ 100213 1.4650000e+00 4.0000000e-01 5.0000000e-01 3 2 0.0000000e+00 0 -add p Particle eta_c 441 2.9839000e+00 3.1900000e-02 1.5000000e-01 0 0 0.0000000e+00 441 -add p Particle D_0*0 10421 2.3000000e+00 2.7000000e-01 2.9900000e-01 0 0 0.0000000e+00 10421 -add p Particle bu_1 5203 0.0000000e+00 0.0000000e+00 0.0000000e+00 1 2 0.0000000e+00 5203 -add p Particle anti-su_1 -3203 0.0000000e+00 0.0000000e+00 0.0000000e+00 -1 2 0.0000000e+00 -3203 -add p Particle K_2*0 315 1.4324000e+00 1.0900000e-01 7.0000000e-01 0 4 0.0000000e+00 315 -add p Particle anti-Omega_c0 -4332 2.6952000e+00 0.0000000e+00 0.0000000e+00 0 1 2.0685680e-02 -4332 -add p Particle D_s1- -20433 2.4595000e+00 1.0000033e-03 1.0000000e-02 -3 2 0.0000000e+00 -20433 -add p Particle anti-deuteron -1000010020 1.8756130e+00 0.0000000e+00 0.0000000e+00 -3 0 0.0000000e+00 0 -add p Particle cd_1 4103 0.0000000e+00 0.0000000e+00 0.0000000e+00 1 2 0.0000000e+00 4103 -add p Particle B_c1+ 10543 7.3000000e+00 0.0000000e+00 6.0000000e-02 3 2 0.0000000e+00 10543 -add p Particle D_s2*+ 435 2.5691000e+00 1.6900000e-02 6.0000000e-02 3 4 0.0000000e+00 435 -add p Particle Omega_b- 5332 6.0461000e+00 0.0000000e+00 0.0000000e+00 -3 1 4.9365900e-01 5332 -add p Particle B_c0*- -10541 7.2500000e+00 0.0000000e+00 6.0000000e-02 -3 0 0.0000000e+00 -10541 -add p Particle Upsilon(4S) 300553 1.0579400e+01 2.0500000e-02 3.9000000e-02 0 2 0.0000000e+00 300553 -add p Particle Sigma_b*+ 5224 5.8303200e+00 9.4000000e-03 0.0000000e+00 3 3 0.0000000e+00 5224 -add p Particle anti-Delta0 -2114 1.2320000e+00 1.1700000e-01 1.4000000e-01 0 3 0.0000000e+00 -2114 -add p Particle sd_0 3101 0.0000000e+00 0.0000000e+00 0.0000000e+00 -2 0 0.0000000e+00 3101 -add p Particle anti-sd_0 -3101 0.0000000e+00 0.0000000e+00 0.0000000e+00 2 0 0.0000000e+00 -3101 -add p Particle D_s1+ 20433 2.4595000e+00 1.0000033e-03 1.0000000e-02 3 2 0.0000000e+00 20433 -add p Particle Upsilon(2S) 100553 1.0023260e+01 3.1980000e-05 4.0000000e-04 0 2 0.0000000e+00 100553 -add p Particle eta' 331 9.5778000e-01 1.9600000e-04 2.0000000e-03 0 0 0.0000000e+00 331 -add p Particle anti-Sigma(1775)0 -3216 1.7750000e+00 1.2000000e-01 5.0000000e-01 0 5 0.0000000e+00 0 -add p Particle D_10 10423 2.4208000e+00 3.1700000e-02 2.7200000e-01 0 2 0.0000000e+00 10423 -add p Particle Sigma_b*0 5214 5.8290000e+00 0.0000000e+00 0.0000000e+00 0 3 0.0000000e+00 5214 -add p Particle K*- -323 8.9166000e-01 5.0300000e-02 2.3000000e-01 -3 2 0.0000000e+00 -323 -add p Particle anti-nu_mu -14 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 1 0.0000000e+00 -14 -add p Particle Sigma_b+ 5222 5.8105600e+00 5.0000000e-03 1.0000000e-04 3 1 0.0000000e+00 5222 -add p Particle anti-K_2*0 -315 1.4324000e+00 1.0900000e-01 7.0000000e-01 0 4 0.0000000e+00 -315 -add p Particle chi_c1 20443 3.5106700e+00 8.4000000e-04 1.0000000e-02 0 2 0.0000000e+00 20443 -add p Particle D'_1+ 20413 2.4450000e+00 2.5027080e-01 3.0000000e-01 3 2 0.0000000e+00 20413 -add p Particle anti-Xi_b+ -5132 5.7970000e+00 0.0000000e+00 0.0000000e+00 3 1 4.2570529e-01 -5132 -add p Particle anti-Xss -30363 1.8000000e+00 0.0000000e+00 1.0000000e+00 0 2 0.0000000e+00 -30363 -add p Particle D- -411 1.8696500e+00 0.0000000e+00 0.0000000e+00 -3 0 3.1178416e-01 -411 -add p Particle B*0 513 5.3247000e+00 6.5819970e-06 1.0000000e-04 0 2 0.0000000e+00 513 -add p Particle Xu+ 44 1.0000000e+00 0.0000000e+00 0.0000000e+00 3 0 0.0000000e+00 44 -add p Particle B'_s10 20533 5.8590000e+00 2.5027080e-01 2.0000000e-02 0 2 0.0000000e+00 20533 -add p Particle anti-Xi0 -3322 1.3148600e+00 0.0000000e+00 0.0000000e+00 0 1 8.6939813e+01 -3322 -add p Particle Xi*0 3324 1.5318000e+00 9.1000000e-03 5.0000000e-02 0 3 0.0000000e+00 3324 -add p Particle anti-b-hadron -85 5.0000000e+00 0.0000000e+00 0.0000000e+00 1 0 3.8699999e-01 -85 -add p Particle CLUSjet 97 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 97 -add p Particle d 1 9.9000000e-03 0.0000000e+00 0.0000000e+00 -1 1 0.0000000e+00 1 -add p Particle psi(4415) 9020443 4.4210000e+00 6.2000000e-02 8.0000000e-02 0 2 0.0000000e+00 0 -add p Particle B_0*0 10511 5.7380000e+00 1.4993444e-01 2.0000000e-01 0 0 0.0000000e+00 10511 -add p Particle h'_1 10333 1.4160000e+00 9.0000000e-02 1.0000000e-02 0 2 0.0000000e+00 10333 -add p Particle anti-Xi_c- -4232 2.4679300e+00 0.0000000e+00 0.0000000e+00 -3 1 1.3250827e-01 -4232 -add p Particle anti-b -5 5.0000000e+00 0.0000000e+00 0.0000000e+00 1 1 0.0000000e+00 -5 -add p Particle cu_0 4201 0.0000000e+00 0.0000000e+00 0.0000000e+00 4 0 0.0000000e+00 4201 -add p Particle K_1- -10323 1.2720000e+00 9.0000000e-02 2.0000000e-01 -3 2 0.0000000e+00 -10323 -add p Particle f_1 20223 1.2819000e+00 2.2700000e-02 5.0000000e-02 0 2 0.0000000e+00 20223 -add p Particle omega(2S) 100223 1.4250000e+00 2.1500000e-01 4.0000000e-01 0 2 0.0000000e+00 0 -add p Particle Sigma*+ 3224 1.3828000e+00 3.6000000e-02 3.5000000e-02 3 3 0.0000000e+00 3224 -add p Particle bu_0 5201 0.0000000e+00 0.0000000e+00 0.0000000e+00 1 0 0.0000000e+00 5201 -add p Particle a_1- -20213 1.2300000e+00 4.2000000e-01 6.0000000e-01 -3 2 0.0000000e+00 -20213 -add p Particle f'_0 30221 1.3500000e+00 3.5000000e-01 3.5000000e-01 0 0 0.0000000e+00 10331 -add p Particle anti-K''*0 -30313 1.7180000e+00 3.2000000e-01 7.0000000e-01 0 2 0.0000000e+00 0 -add p Particle rho(3S)- -30213 1.7200000e+00 2.5000000e-01 5.0000000e-01 -3 2 0.0000000e+00 0 -add p Particle K_2*+ 325 1.4256000e+00 9.8500000e-02 7.0000000e-01 3 4 0.0000000e+00 325 -add p Particle D'_s1- -10433 2.5351100e+00 9.2000000e-04 1.0000000e-02 -3 2 0.0000000e+00 -10433 -add p Particle D'_s1+ 10433 2.5351100e+00 9.2000000e-04 1.0000000e-02 3 2 0.0000000e+00 10433 -add p Particle K'_1+ 20323 1.4030000e+00 1.7400000e-01 4.0000000e-01 3 2 0.0000000e+00 20323 -add p Particle anti-Omega_b+ -5332 6.0461000e+00 0.0000000e+00 0.0000000e+00 3 1 4.6467831e-01 -5332 -add p Particle b_1+ 10213 1.2295000e+00 1.4200000e-01 2.5000000e-01 3 2 0.0000000e+00 10213 -add p Particle rho- -213 7.7526000e-01 1.4910000e-01 4.8000000e-01 -3 2 0.0000000e+00 -213 -add p Particle B_c*- -543 6.6020000e+00 0.0000000e+00 0.0000000e+00 -3 2 0.0000000e+00 -543 -add p Particle Upsilon(3S) 200553 1.0355200e+01 2.0320000e-05 2.6000000e-04 0 2 0.0000000e+00 200553 -add p Particle B*+ 523 5.3247000e+00 6.5819970e-06 1.0000000e-04 3 2 0.0000000e+00 523 -add p Particle Sigma(1660)0 13212 1.6600000e+00 1.0000000e-01 4.0000000e-01 0 1 0.0000000e+00 0 -add p Particle anti-cu_0 -4201 0.0000000e+00 0.0000000e+00 0.0000000e+00 -4 0 0.0000000e+00 -4201 -add p Particle su_1 3203 0.0000000e+00 0.0000000e+00 0.0000000e+00 1 2 0.0000000e+00 3203 -add p Particle f_2 225 1.2755000e+00 1.8670000e-01 2.7000000e-01 0 4 0.0000000e+00 225 -add p Particle anti-c-hadron -84 2.0000000e+00 0.0000000e+00 0.0000000e+00 -2 0 1.0000000e-01 -84 -add p Particle a_2- -215 1.3169000e+00 1.0700000e-01 5.0000000e-01 -3 4 0.0000000e+00 -215 -add p Particle c-hadron 84 2.0000000e+00 0.0000000e+00 0.0000000e+00 2 0 1.0000000e-01 84 -add p Particle anti-cd_1 -4103 0.0000000e+00 0.0000000e+00 0.0000000e+00 -1 2 0.0000000e+00 -4103 -add p Particle b' 7 4.0000000e+02 0.0000000e+00 0.0000000e+00 -1 1 0.0000000e+00 7 -add p Particle anti-Sigma_b*- -5224 5.8303200e+00 9.4000000e-03 0.0000000e+00 -3 3 0.0000000e+00 -5224 -add p Particle anti-t -6 1.7500000e+02 1.3981600e+00 1.3981560e+01 -2 1 0.0000000e+00 -6 -add p Particle t 6 1.7500000e+02 1.3981600e+00 1.3981560e+01 2 1 0.0000000e+00 6 -add p Particle pi+ 211 1.3957061e-01 0.0000000e+00 0.0000000e+00 3 0 7.8044971e+03 211 -add p Particle anti-Lambda(1690)0 -13124 1.6900000e+00 6.0000000e-02 3.0000000e-01 0 3 0.0000000e+00 0 -add p Particle Delta0 2114 1.2320000e+00 1.1700000e-01 1.4000000e-01 0 3 0.0000000e+00 2114 -add p Particle B- -521 5.2793300e+00 0.0000000e+00 0.0000000e+00 -3 0 4.9106005e-01 -521 -add p Particle ud_1 2103 0.0000000e+00 0.0000000e+00 0.0000000e+00 1 2 0.0000000e+00 2103 -add p Particle Z''0 33 9.0000000e+02 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 33 -add p Particle anti-ss_1 -3303 0.0000000e+00 0.0000000e+00 0.0000000e+00 2 2 0.0000000e+00 -3303 -add p Particle anti-cd_0 -4101 0.0000000e+00 0.0000000e+00 0.0000000e+00 -1 0 0.0000000e+00 -4101 -add p Particle anti-cs_0 -4301 0.0000000e+00 0.0000000e+00 0.0000000e+00 -1 0 0.0000000e+00 -4301 -add p Particle D_s+ 431 1.9683400e+00 0.0000000e+00 0.0000000e+00 3 0 1.4989623e-01 431 -add p Particle anti-D_2*0 -425 2.4607000e+00 4.7500000e-02 3.0900000e-01 0 4 0.0000000e+00 -425 -add p Particle L- 17 4.0000000e+02 0.0000000e+00 0.0000000e+00 -3 1 0.0000000e+00 17 -add p Particle omega 223 7.8265000e-01 8.4900000e-03 1.8000000e-01 0 2 0.0000000e+00 223 -add p Particle e- 11 5.1099895e-04 0.0000000e+00 0.0000000e+00 -3 1 0.0000000e+00 11 -add p Particle a_20 115 1.3169000e+00 1.0700000e-01 5.0000000e-01 0 4 0.0000000e+00 115 -add p Particle t' 8 5.0000000e+02 0.0000000e+00 0.0000000e+00 2 1 0.0000000e+00 8 -add p Particle cs_0 4301 0.0000000e+00 0.0000000e+00 0.0000000e+00 1 0 0.0000000e+00 4301 -add p Particle pi(2S)+ 100211 1.3000000e+00 4.0000000e-01 5.0000000e-01 3 0 0.0000000e+00 0 -add p Particle cu_1 4203 0.0000000e+00 0.0000000e+00 0.0000000e+00 4 2 0.0000000e+00 4203 -add p Particle Sigma_b0 5212 5.8078000e+00 6.5821220e-06 1.0000000e-04 0 1 0.0000000e+00 5212 -add p Particle anti-su_0 -3201 0.0000000e+00 0.0000000e+00 0.0000000e+00 -1 0 0.0000000e+00 -3201 -add p Particle anti-D'_10 -20423 2.4450000e+00 2.5027080e-01 3.0000000e-01 0 2 0.0000000e+00 -20423 -add p Particle anti-Sigma_c- -4212 2.4529000e+00 1.6455309e-03 2.4680000e-02 -3 1 0.0000000e+00 -4212 -add p Particle chi_b1(2P) 120553 1.0255460e+01 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 120553 -add p Particle bd_0 5101 0.0000000e+00 0.0000000e+00 0.0000000e+00 -2 0 0.0000000e+00 5101 -add p Particle Omega_cc*+ 4434 3.8246600e+00 0.0000000e+00 0.0000000e+00 3 3 0.0000000e+00 4434 -add p Particle anti-Lambda(1670)0 -33122 1.6700000e+00 3.5000000e-02 1.8000000e-01 0 1 0.0000000e+00 0 -add p Particle nu_e 12 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 1 0.0000000e+00 12 -add p Particle CMshower 94 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 94 -add p Particle su_0 3201 0.0000000e+00 0.0000000e+00 0.0000000e+00 1 0 0.0000000e+00 3201 -add p Particle Omega_b*- 5334 6.1300000e+00 0.0000000e+00 0.0000000e+00 -3 3 0.0000000e+00 5334 -add p Particle eta_b(2S) 100551 9.9970000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 0 -add p Particle h_c 10443 3.5253800e+00 7.0000000e-04 2.0000000e-02 0 2 0.0000000e+00 10443 -add p Particle W+ 24 8.0379000e+01 2.0850000e+00 1.0000000e+01 3 2 0.0000000e+00 24 -add p Particle a_2+ 215 1.3169000e+00 1.0700000e-01 5.0000000e-01 3 4 0.0000000e+00 215 -add p Particle K_0*- -10321 1.4300000e+00 2.7000000e-01 6.0000000e-01 -3 0 0.0000000e+00 -10321 -add p Particle Upsilon_3(1D) 557 1.0159900e+01 0.0000000e+00 0.0000000e+00 0 6 0.0000000e+00 557 -add p Particle eta_b2(1D) 10555 1.0157000e+01 0.0000000e+00 0.0000000e+00 0 4 0.0000000e+00 10555 -add p Particle cluster 91 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 91 -add p Particle D*0 423 2.0068500e+00 6.5821023e-06 3.0000000e-04 0 2 0.0000000e+00 423 -add p Particle Sigma_c*0 4114 2.5184800e+00 1.5300000e-02 9.1900000e-02 0 3 0.0000000e+00 4114 -add p Particle K_3*- -327 1.7760000e+00 1.5900000e-01 7.0000000e-01 -3 6 0.0000000e+00 0 -add p Particle anti-rndmflav -82 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 -82 -add p Particle anti-Sigma_c*0 -4114 2.5184800e+00 1.5300000e-02 9.1900000e-02 0 3 0.0000000e+00 -4114 -add p Particle anti-K_10 -10313 1.2720000e+00 9.0000000e-02 2.0000000e-01 0 2 0.0000000e+00 -10313 -add p Particle omega(1650) 30223 1.6700000e+00 3.1500000e-01 0.0000000e+00 0 2 0.0000000e+00 0 -add p Particle anti-t' -8 5.0000000e+02 0.0000000e+00 0.0000000e+00 -2 1 0.0000000e+00 -8 -add p Particle Lambda_b0 5122 5.6196000e+00 0.0000000e+00 0.0000000e+00 0 1 4.1371359e-01 5122 -add p Particle chi_b0(3P) 210551 1.0500700e+01 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 210551 -add p Particle anti-Omega+ -3334 1.6724500e+00 0.0000000e+00 0.0000000e+00 3 3 2.4612961e+01 -3334 -add p Particle bs_1 5303 0.0000000e+00 0.0000000e+00 0.0000000e+00 -2 2 0.0000000e+00 5303 -add p Particle tritium 1000010030 2.8092500e+00 0.0000000e+00 0.0000000e+00 3 0 0.0000000e+00 0 -add p Particle Lambda(1670)0 33122 1.6700000e+00 3.5000000e-02 1.8000000e-01 0 1 0.0000000e+00 0 -add p Particle anti-cc_1 -4403 0.0000000e+00 0.0000000e+00 0.0000000e+00 -4 2 0.0000000e+00 -4403 -add p Particle anti-Sigma(1670)0 -13214 1.6700000e+00 6.0000000e-02 3.0000000e-01 0 3 0.0000000e+00 0 -add p Particle B_s0 531 5.3668800e+00 0.0000000e+00 0.0000000e+00 0 0 4.4129450e-01 531 -add p Particle A0 36 3.1000000e+02 7.0022575e+00 0.0000000e+00 0 0 0.0000000e+00 36 -add p Particle anti-Lambda_c(2625)- -4124 2.6266000e+00 0.0000000e+00 2.8500000e-02 -3 3 0.0000000e+00 0 -add p Particle THRUaxis 96 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 96 -add p Particle chi_b2(2P) 100555 1.0268650e+01 0.0000000e+00 0.0000000e+00 0 4 0.0000000e+00 100555 -add p Particle SPHEaxis 95 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 95 -add p Particle B'_c1- -20543 7.4000000e+00 0.0000000e+00 2.0000000e-01 -3 2 0.0000000e+00 -20543 -add p Particle string 92 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 92 -add p Particle eta(2S) 100221 1.2940000e+00 5.5000000e-02 2.0000000e-01 0 0 0.0000000e+00 0 -add p Particle Xi'_c0 4312 2.5792000e+00 0.0000000e+00 0.0000000e+00 0 1 0.0000000e+00 4312 -add p Particle cc_1 4403 0.0000000e+00 0.0000000e+00 0.0000000e+00 4 2 0.0000000e+00 4403 -add p Particle anti-Xi_c0 -4132 2.4709100e+00 0.0000000e+00 0.0000000e+00 0 1 4.5921780e-02 -4132 -add p Particle anti-D(2S)0 -100421 2.5800000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 0 -add p Particle a_00 9000111 9.8000000e-01 7.5000000e-02 5.0000000e-02 0 0 0.0000000e+00 10111 -add p Particle Delta+ 2214 1.2320000e+00 1.1700000e-01 1.4000000e-01 3 3 0.0000000e+00 2214 -add p Particle sd_1 3103 0.0000000e+00 0.0000000e+00 0.0000000e+00 -2 2 0.0000000e+00 3103 -add p Particle pi(2S)- -100211 1.3000000e+00 4.0000000e-01 5.0000000e-01 -3 0 0.0000000e+00 0 -add p Particle bb_1 5503 0.0000000e+00 0.0000000e+00 0.0000000e+00 -2 2 0.0000000e+00 5503 -add p Particle K_3*+ 327 1.7760000e+00 1.5900000e-01 7.0000000e-01 3 6 0.0000000e+00 0 -add p Particle anti-bs_1 -5303 0.0000000e+00 0.0000000e+00 0.0000000e+00 2 2 0.0000000e+00 -5303 -add p Particle cs_1 4303 0.0000000e+00 0.0000000e+00 0.0000000e+00 1 2 0.0000000e+00 4303 -add p Particle anti-bu_1 -5203 0.0000000e+00 0.0000000e+00 0.0000000e+00 -1 2 0.0000000e+00 -5203 -add p Particle phi(1680) 100333 1.6800000e+00 1.5000000e-01 0.0000000e+00 0 2 0.0000000e+00 0 -add p Particle Sigma_c++ 4222 2.4539700e+00 1.8900000e-03 2.7000000e-02 6 1 0.0000000e+00 4222 -add p Particle Xss 30363 1.8000000e+00 0.0000000e+00 1.0000000e+00 0 2 0.0000000e+00 30363 -add p Particle anti-Omega_cc*- -4434 3.8246600e+00 0.0000000e+00 0.0000000e+00 -3 3 0.0000000e+00 -4434 -add p Particle anti-sd_1 -3103 0.0000000e+00 0.0000000e+00 0.0000000e+00 2 2 0.0000000e+00 -3103 -add p Particle W'+ 34 5.0000000e+02 0.0000000e+00 0.0000000e+00 3 2 0.0000000e+00 34 -add p Particle Sigma(1670)0 13214 1.6700000e+00 6.0000000e-02 3.0000000e-01 0 3 0.0000000e+00 0 -add p Particle bd_1 5103 0.0000000e+00 0.0000000e+00 0.0000000e+00 -2 2 0.0000000e+00 5103 -add p Particle anti-B0 -511 5.2796400e+00 0.0000000e+00 0.0000000e+00 0 0 4.5718350e-01 -511 -add p Particle phi 333 1.0194610e+00 4.2490000e-03 3.2000000e-02 0 2 0.0000000e+00 333 -add p Particle B0 511 5.2796400e+00 0.0000000e+00 0.0000000e+00 0 0 4.5718350e-01 511 -add p Particle system 90 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 90 -add p Particle Xi_c*0 4314 2.6463800e+00 2.3500000e-03 0.0000000e+00 0 3 0.0000000e+00 4314 -add p Particle anti-Xi_c*- -4324 2.6455700e+00 2.1400000e-03 0.0000000e+00 -3 3 0.0000000e+00 -4324 -add p Particle Lambda(1600)0 23122 1.6000000e+00 1.5000000e-01 2.5000000e-01 0 1 0.0000000e+00 0 -add p Particle anti-Lambda(1520)0 -3124 1.5195000e+00 1.5600000e-02 1.8000000e-01 0 3 0.0000000e+00 0 -add p Particle anti-B_s*0 -533 5.4154000e+00 6.5821220e-06 1.0000000e-04 0 2 0.0000000e+00 -533 -add p Particle Higgs0 25 1.2510000e+02 7.0022575e+00 0.0000000e+00 0 0 0.0000000e+00 25 -add p Particle D(2S)0 100421 2.5800000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 0 -add p Particle Xi_cc*++ 4424 3.6564800e+00 0.0000000e+00 0.0000000e+00 6 3 0.0000000e+00 4424 -add p Particle anti-R0 -41 5.0000000e+03 0.0000000e+00 4.1729150e+03 0 2 0.0000000e+00 -41 -add p Particle psi(3770) 30443 3.7731300e+00 2.7200000e-02 3.0000000e-02 0 2 0.0000000e+00 30443 -add p Particle B_2*- -525 5.7372000e+00 2.0000000e-02 2.0000000e-01 -3 4 0.0000000e+00 -525 -add p Particle anti-Xi*0 -3324 1.5318000e+00 9.1000000e-03 5.0000000e-02 0 3 0.0000000e+00 -3324 -add p Particle rho+ 213 7.7526000e-01 1.4910000e-01 4.8000000e-01 3 2 0.0000000e+00 213 -add p Particle K'*+ 100323 1.4210000e+00 2.3600000e-01 6.0000000e-01 3 2 0.0000000e+00 0 -add p Particle R0 41 5.0000000e+03 0.0000000e+00 4.1729150e+03 0 2 0.0000000e+00 41 -add p Particle Xsu 30353 1.6000000e+00 0.0000000e+00 1.0000000e+00 3 2 0.0000000e+00 30353 -add p Particle anti-Xsu -30353 1.6000000e+00 0.0000000e+00 1.0000000e+00 -3 2 0.0000000e+00 -30353 -add p Particle anti-Sigma+ -3112 1.1974490e+00 0.0000000e+00 0.0000000e+00 3 1 4.4339305e+01 -3112 -add p Particle Lambda_c(2625)+ 4124 2.6266000e+00 0.0000000e+00 2.8500000e-02 3 3 0.0000000e+00 0 -add p Particle Xi'_c+ 4322 2.5784000e+00 0.0000000e+00 0.0000000e+00 3 1 0.0000000e+00 4322 -add p Particle anti-K_3*0 -317 1.7760000e+00 1.5900000e-01 7.0000000e-01 0 6 0.0000000e+00 0 -add p Particle Lambda(1520)0 3124 1.5195000e+00 1.5600000e-02 1.8000000e-01 0 3 0.0000000e+00 0 -add p Particle anti-B_s0*0 -10531 5.8410000e+00 1.4993444e-01 6.5000000e-02 0 0 0.0000000e+00 -10531 -add p Particle Sigma(1775)0 3216 1.7750000e+00 1.2000000e-01 5.0000000e-01 0 5 0.0000000e+00 0 -add p Particle tau+ -15 1.7768600e+00 0.0000000e+00 0.0000000e+00 3 1 8.7119688e-02 -15 -add p Particle anti-Sigma- -3222 1.1893700e+00 0.0000000e+00 0.0000000e+00 -3 1 2.4037359e+01 -3222 -add p Particle K_4*0 319 2.0450000e+00 1.9800000e-01 2.0000000e-01 0 8 0.0000000e+00 0 -add p Particle D'_1- -20413 2.4450000e+00 2.5027080e-01 3.0000000e-01 -3 2 0.0000000e+00 -20413 -add p Particle B_2*+ 525 5.7372000e+00 2.0000000e-02 2.0000000e-01 3 4 0.0000000e+00 525 -add p Particle anti-He3 -1000020030 2.8092300e+00 0.0000000e+00 0.0000000e+00 -6 0 0.0000000e+00 0 -add p Particle anti-K'_10 -20313 1.4030000e+00 1.7400000e-01 4.0000000e-01 0 2 0.0000000e+00 -20313 -add p Particle Z(4430)- -9042413 4.4330000e+00 3.1700598e-04 0.0000000e+00 -3 2 0.0000000e+00 -9042413 -add p Particle D_2*+ 415 2.4654000e+00 4.6700000e-02 3.1200000e-01 3 4 0.0000000e+00 415 -add p Particle Z0 23 9.1187600e+01 2.4952000e+00 1.0000000e+01 0 2 0.0000000e+00 23 -add p Particle Xi0 3322 1.3148600e+00 0.0000000e+00 0.0000000e+00 0 1 8.6939813e+01 3322 -add p Particle chi_c2 445 3.5561700e+00 1.9700000e-03 6.0000000e-03 0 4 0.0000000e+00 445 -add p Particle B_s0*0 10531 5.8410000e+00 1.4993444e-01 6.5000000e-02 0 0 0.0000000e+00 10531 -add p Particle anti-Omega_b*+ -5334 6.1300000e+00 0.0000000e+00 0.0000000e+00 3 3 0.0000000e+00 -5334 -add p Particle Xsd 30343 1.6000000e+00 0.0000000e+00 1.0000000e+00 0 2 0.0000000e+00 30343 -add p Particle bc_1 5403 0.0000000e+00 0.0000000e+00 0.0000000e+00 1 2 0.0000000e+00 5403 -add p Particle anti-bc_1 -5403 0.0000000e+00 0.0000000e+00 0.0000000e+00 -1 2 0.0000000e+00 -5403 -add p Particle Xi_c*+ 4324 2.6455700e+00 2.1400000e-03 0.0000000e+00 3 3 0.0000000e+00 4324 -add p Particle anti-Sigma_b- -5222 5.8105600e+00 5.0000000e-03 1.0000000e-04 -3 1 0.0000000e+00 -5222 -add p Particle bs_0 5301 0.0000000e+00 0.0000000e+00 0.0000000e+00 -2 0 0.0000000e+00 5301 -add p Particle chi_b1 20553 9.8928780e+00 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 20553 -add p Particle Omega_c0 4332 2.6952000e+00 0.0000000e+00 0.0000000e+00 0 1 2.0685680e-02 4332 -add p Particle chi_b0(2P) 110551 1.0232500e+01 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 110551 -add p Particle anti-D0 -421 1.8648300e+00 0.0000000e+00 0.0000000e+00 0 0 1.2294489e-01 -421 -add p Particle anti-Xsd -30343 1.6000000e+00 0.0000000e+00 1.0000000e+00 0 2 0.0000000e+00 -30343 -add p Particle anti-cu_1 -4203 0.0000000e+00 0.0000000e+00 0.0000000e+00 -4 2 0.0000000e+00 -4203 -add p Particle K0 311 4.9761100e-01 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 311 -add p Particle psi(2S) 100443 3.6860970e+00 2.9400000e-04 8.0000000e-04 0 2 0.0000000e+00 100443 -add p Particle anti-B_2*0 -515 5.7395000e+00 2.4200000e-02 2.0000000e-01 0 4 0.0000000e+00 -515 -add p Particle mu- 13 1.0565837e-01 0.0000000e+00 0.0000000e+00 -3 1 6.5864973e+05 13 -add p Particle anti-Xi'_b+ -5312 5.9600000e+00 6.5821220e-06 1.0000000e-04 3 1 0.0000000e+00 -5312 -add p Particle anti-tritium -1000010030 2.8092500e+00 0.0000000e+00 0.0000000e+00 -3 0 0.0000000e+00 0 -add p Particle u 2 5.6000000e-03 0.0000000e+00 0.0000000e+00 2 1 0.0000000e+00 2 -add p Particle Xi_b*0 5324 5.9700000e+00 0.0000000e+00 0.0000000e+00 0 3 0.0000000e+00 5324 -add p Particle ud_0 2101 0.0000000e+00 0.0000000e+00 0.0000000e+00 1 0 0.0000000e+00 2101 -add p Particle anti-bc_0 -5401 0.0000000e+00 0.0000000e+00 0.0000000e+00 -1 0 0.0000000e+00 -5401 -add p Particle K_3*0 317 1.7760000e+00 1.5900000e-01 7.0000000e-01 0 6 0.0000000e+00 0 -add p Particle anti-ud_0 -2101 0.0000000e+00 0.0000000e+00 0.0000000e+00 -1 0 0.0000000e+00 -2101 -add p Particle rho(3S)+ 30213 1.7200000e+00 2.5000000e-01 5.0000000e-01 3 2 0.0000000e+00 0 -add p Particle anti-Omega_cc- -4432 3.7866300e+00 0.0000000e+00 0.0000000e+00 -3 1 1.0000000e-01 -4432 -add p Particle Sigma+ 3222 1.1893700e+00 0.0000000e+00 0.0000000e+00 3 1 2.4037359e+01 3222 -add p Particle anti-Sigma_c0 -4112 2.4537500e+00 1.8300000e-03 2.4000000e-02 0 1 0.0000000e+00 -4112 -add p Particle Sigma_c+ 4212 2.4529000e+00 1.6455309e-03 2.4680000e-02 3 1 0.0000000e+00 4212 -add p Particle He3 1000020030 2.8092300e+00 0.0000000e+00 0.0000000e+00 6 0 0.0000000e+00 0 -add p Particle anti-Lambda0 -3122 1.1156830e+00 0.0000000e+00 0.0000000e+00 0 1 7.8875396e+01 -3122 -add p Particle D0 421 1.8648300e+00 0.0000000e+00 0.0000000e+00 0 0 1.2294489e-01 421 -add p Particle Upsilon_2(1D) 20555 1.0156200e+01 0.0000000e+00 0.0000000e+00 0 4 0.0000000e+00 20555 -add p Particle psi(4040) 9000443 4.0390000e+00 8.0000000e-02 1.0000000e-01 0 2 0.0000000e+00 0 -add p Particle B_s0L 350 5.3663000e+00 0.0000000e+00 0.0000000e+00 0 0 4.2184546e-01 0 -add p Particle Xi'_b- 5312 5.9600000e+00 6.5821220e-06 1.0000000e-04 -3 1 0.0000000e+00 5312 -add p Particle anti-Xi'_c- -4322 2.5784000e+00 0.0000000e+00 0.0000000e+00 -3 1 0.0000000e+00 -4322 -add p Particle anti-bu_0 -5201 0.0000000e+00 0.0000000e+00 0.0000000e+00 -1 0 0.0000000e+00 -5201 -add p Particle Xu- -44 1.0000000e+00 0.0000000e+00 0.0000000e+00 -3 0 0.0000000e+00 -44 -add p Particle Sigma_c0 4112 2.4537500e+00 1.8300000e-03 2.4000000e-02 0 1 0.0000000e+00 4112 -add p Particle K'*- -100323 1.4210000e+00 2.3600000e-01 6.0000000e-01 -3 2 0.0000000e+00 0 -add p Particle table 99 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 99 -add p Particle Higgs'0 35 3.1000000e+02 7.0022575e+00 0.0000000e+00 0 0 0.0000000e+00 35 -add p Particle anti-bs_0 -5301 0.0000000e+00 0.0000000e+00 0.0000000e+00 2 0 0.0000000e+00 -5301 -add p Particle Sigma- 3112 1.1974490e+00 0.0000000e+00 0.0000000e+00 -3 1 4.4339305e+01 3112 -add p Particle anti-Sigma_b*0 -5214 5.8290000e+00 0.0000000e+00 0.0000000e+00 0 3 0.0000000e+00 -5214 -add p Particle anti-B_10 -10513 5.7261000e+00 2.7500000e-02 2.0000000e-01 0 2 0.0000000e+00 -10513 -add p Particle anti-s -3 1.9900000e-01 0.0000000e+00 0.0000000e+00 1 1 0.0000000e+00 -3 -add p Particle anti-Xi'_b0 -5322 5.9600000e+00 6.5821220e-06 1.0000000e-04 0 1 0.0000000e+00 -5322 -add p Particle chi_b0 10551 9.8594000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 10551 -add p Particle D_1+ 10413 2.4230000e+00 2.0006450e-02 2.7000000e-01 3 2 0.0000000e+00 10413 -add p Particle J/psi 443 3.0969000e+00 9.2900000e-05 2.0000000e-04 0 2 0.0000000e+00 443 -add p Particle eta 221 5.4786200e-01 1.3100000e-06 0.0000000e+00 0 0 0.0000000e+00 221 -add p Particle specflav 81 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 81 -add p Particle W- -24 8.0379000e+01 2.0850000e+00 1.0000000e+01 -3 2 0.0000000e+00 -24 -add p Particle nu_mu 14 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 1 0.0000000e+00 14 -add p Particle p+ 2212 9.3827208e-01 0.0000000e+00 0.0000000e+00 3 1 0.0000000e+00 2212 -add p Particle anti-Sigma*- -3224 1.3828000e+00 3.6000000e-02 3.5000000e-02 -3 3 0.0000000e+00 -3224 -add p Particle Omega_c*0 4334 2.7659000e+00 0.0000000e+00 0.0000000e+00 0 3 0.0000000e+00 4334 -add p Particle Xi_b*- 5314 5.9700000e+00 0.0000000e+00 0.0000000e+00 -3 3 0.0000000e+00 5314 -add p Particle pi0 111 1.3497700e-01 7.7300000e-09 0.0000000e+00 0 0 0.0000000e+00 111 -add p Particle D_s*- -433 2.1122000e+00 6.5821023e-06 1.0000000e-04 -3 2 0.0000000e+00 -433 -add p Particle a_0+ 9000211 9.8000000e-01 7.5000000e-02 5.0000000e-02 3 0 0.0000000e+00 10211 -add p Particle nu_L 18 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 1 0.0000000e+00 18 -add p Particle Xi_c+ 4232 2.4679300e+00 0.0000000e+00 0.0000000e+00 3 1 1.3250827e-01 4232 -add p Particle K_0*+ 10321 1.4300000e+00 2.7000000e-01 6.0000000e-01 3 0 0.0000000e+00 10321 -add p Particle rho(2S)- -100213 1.4650000e+00 4.0000000e-01 5.0000000e-01 -3 2 0.0000000e+00 0 -add p Particle eta_b 551 9.3987000e+00 1.0000000e-02 0.0000000e+00 0 0 0.0000000e+00 551 -add p Particle ss_1 3303 0.0000000e+00 0.0000000e+00 0.0000000e+00 -2 2 0.0000000e+00 3303 -add p Particle anti-d -1 9.9000000e-03 0.0000000e+00 0.0000000e+00 1 1 0.0000000e+00 -1 -add p Particle anti-Xi_b*+ -5314 5.9700000e+00 0.0000000e+00 0.0000000e+00 3 3 0.0000000e+00 -5314 -add p Particle anti-K*0 -313 8.9555000e-01 4.7300000e-02 2.3000000e-01 0 2 0.0000000e+00 -313 -add p Particle anti-B_s0 -531 5.3668800e+00 0.0000000e+00 0.0000000e+00 0 0 4.4129450e-01 -531 -add p Particle Delta- 1114 1.2320000e+00 1.1700000e-01 1.4000000e-01 -3 3 0.0000000e+00 1114 -add p Particle anti-n0 -2112 9.3956541e-01 0.0000000e+00 0.0000000e+00 0 1 2.6552618e+14 -2112 -add p Particle W'- -34 5.0000000e+02 0.0000000e+00 0.0000000e+00 -3 2 0.0000000e+00 -34 -add p Particle B_c0*+ 10541 7.2500000e+00 0.0000000e+00 6.0000000e-02 3 0 0.0000000e+00 10541 -add p Particle B_s2*0 535 5.8398500e+00 1.4900000e-03 2.9000000e-02 0 4 0.0000000e+00 535 -add p Particle X_1(3872) 9920443 3.8722000e+00 3.1700598e-04 2.9000000e-03 0 2 0.0000000e+00 9920443 -add p Particle anti-Sigma_c-- -4222 2.4539700e+00 1.8900000e-03 2.7000000e-02 -6 1 0.0000000e+00 -4222 -add p Particle anti-B_s2*0 -535 5.8398500e+00 1.4900000e-03 2.9000000e-02 0 4 0.0000000e+00 -535 -add p Particle Delta++ 2224 1.2320000e+00 1.1700000e-01 1.4000000e-01 6 3 0.0000000e+00 2224 -add p Particle Upsilon_2(2D) 120555 1.0440600e+01 0.0000000e+00 0.0000000e+00 0 4 0.0000000e+00 120555 -add p Particle chi_c0 10441 3.4147100e+00 1.0800000e-02 5.0000000e-02 0 0 0.0000000e+00 10441 -add p Particle Xu0 43 1.0000000e+00 0.0000000e+00 0.0000000e+00 0 0 0.0000000e+00 43 -add p Particle anti-Xi'_c0 -4312 2.5792000e+00 0.0000000e+00 0.0000000e+00 0 1 0.0000000e+00 -4312 -add p Particle chi_b2 555 9.9122100e+00 0.0000000e+00 0.0000000e+00 0 4 0.0000000e+00 555 -add p Particle B'_c1+ 20543 7.4000000e+00 0.0000000e+00 2.0000000e-01 3 2 0.0000000e+00 20543 -add p Particle deuteron 1000010020 1.8756130e+00 0.0000000e+00 0.0000000e+00 3 0 0.0000000e+00 0 -add p Particle anti-Lambda(1810)0 -53122 1.8100000e+00 1.5000000e-01 4.6000000e-01 0 1 0.0000000e+00 0 -add p Particle B_c*+ 543 6.6020000e+00 0.0000000e+00 0.0000000e+00 3 2 0.0000000e+00 543 -add p Particle B_c2*+ 545 7.3500000e+00 0.0000000e+00 6.0000000e-02 3 4 0.0000000e+00 545 -add p Particle Xi*- 3314 1.5350000e+00 9.9000000e-03 5.0000000e-02 -3 3 0.0000000e+00 3314 -add p Particle f_0(1500) 9030221 1.5060000e+00 1.1200000e-01 3.0000000e-01 0 0 0.0000000e+00 0 -add p Particle anti-Delta+ -1114 1.2320000e+00 1.1700000e-01 1.4000000e-01 3 3 0.0000000e+00 -1114 -add p Particle Sigma0 3212 1.1926420e+00 8.9000000e-06 1.3000000e-04 0 1 0.0000000e+00 3212 -add p Particle Z(4430)+ 9042413 4.4330000e+00 3.1700598e-04 0.0000000e+00 3 2 0.0000000e+00 9042413 -add p Particle B_c+ 541 6.2737000e+00 0.0000000e+00 0.0000000e+00 3 0 1.3490661e-01 541 -add p Particle B_s*0 533 5.4154000e+00 6.5821220e-06 1.0000000e-04 0 2 0.0000000e+00 533 -add p Particle rho(2S)0 100113 1.4650000e+00 4.0000000e-01 5.0000000e-01 0 2 0.0000000e+00 0 -add p Particle anti-alpha -1000020040 3.7274170e+00 0.0000000e+00 0.0000000e+00 -6 0 0.0000000e+00 0 -add p Particle dd_1 1103 0.0000000e+00 0.0000000e+00 0.0000000e+00 -2 2 0.0000000e+00 1103 -add p Particle Xi- 3312 1.3217100e+00 0.0000000e+00 0.0000000e+00 -3 1 4.9135984e+01 3312 -add p Particle Lambda(1820)0 3126 1.8200000e+00 8.0000000e-02 4.0000000e-01 0 5 0.0000000e+00 0 -add p Particle anti-Sigma_b0 -5212 5.8078000e+00 6.5821220e-06 1.0000000e-04 0 1 0.0000000e+00 -5212 -add p Particle anti-Sigma_b+ -5112 5.8156400e+00 5.3000000e-03 1.0000000e-04 3 1 0.0000000e+00 -5112 -add p Particle cd_0 4101 0.0000000e+00 0.0000000e+00 0.0000000e+00 1 0 0.0000000e+00 4101 -add p Particle anti-cs_1 -4303 0.0000000e+00 0.0000000e+00 0.0000000e+00 -1 2 0.0000000e+00 -4303 -add p Particle K_1+ 10323 1.2720000e+00 9.0000000e-02 2.0000000e-01 3 2 0.0000000e+00 10323 -add p Particle Higgs- -37 3.1000000e+02 7.0022575e+00 0.0000000e+00 -3 0 0.0000000e+00 -37 -add p Particle anti-K_0*0 -10311 1.4300000e+00 2.7000000e-01 6.0000000e-01 0 0 0.0000000e+00 -10311 -add p Particle anti-Xi_c*0 -4314 2.6463800e+00 2.3500000e-03 0.0000000e+00 0 3 0.0000000e+00 -4314 -add p Particle anti-Xi+ -3312 1.3217100e+00 0.0000000e+00 0.0000000e+00 3 1 4.9135984e+01 -3312 -add p Particle anti-D*(2S)0 -100423 2.6400000e+00 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 0 -add p Particle anti-dd_1 -1103 0.0000000e+00 0.0000000e+00 0.0000000e+00 2 2 0.0000000e+00 -1103 -add p Particle anti-b' -7 4.0000000e+02 0.0000000e+00 0.0000000e+00 1 1 0.0000000e+00 -7 -add p Particle a_0- -9000211 9.8000000e-01 7.5000000e-02 5.0000000e-02 -3 0 0.0000000e+00 -10211 -add p Particle anti-nu_tau -16 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 1 0.0000000e+00 -16 -add p Particle Z'0 32 5.0000000e+02 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 32 -add p Particle g 21 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 21 -add p Particle nu_tau 16 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 1 0.0000000e+00 16 -add p Particle c 4 1.3500000e+00 0.0000000e+00 0.0000000e+00 2 1 0.0000000e+00 4 -add p Particle Upsilon_3(2D) 100557 1.0444300e+01 0.0000000e+00 0.0000000e+00 0 6 0.0000000e+00 100557 -add p Particle Lambda(1690)0 13124 1.6900000e+00 6.0000000e-02 3.0000000e-01 0 3 0.0000000e+00 0 -add p Particle f_0 9010221 9.9000000e-01 6.0000000e-02 5.0000000e-03 0 0 0.0000000e+00 10221 -add p Particle pi(2S)0 100111 1.3000000e+00 4.0000000e-01 5.0000000e-01 0 0 0.0000000e+00 0 -add p Particle Sigma_c*+ 4214 2.5175000e+00 2.0000000e-03 3.0000000e-02 3 3 0.0000000e+00 4214 -add p Particle Sigma(1750)0 23212 1.7500000e+00 9.0000000e-02 4.5000000e-01 0 1 0.0000000e+00 0 -add p Particle D_1- -10413 2.4230000e+00 2.0006450e-02 2.7000000e-01 -3 2 0.0000000e+00 -10413 -add p Particle anti-bd_0 -5101 0.0000000e+00 0.0000000e+00 0.0000000e+00 2 0 0.0000000e+00 -5101 -add p Particle B_c1- -10543 7.3000000e+00 0.0000000e+00 6.0000000e-02 -3 2 0.0000000e+00 -10543 -add p Particle D(2S)+ 100411 2.5800000e+00 0.0000000e+00 0.0000000e+00 3 0 0.0000000e+00 0 -add p Particle anti-Sigma_c*- -4214 2.5175000e+00 2.0000000e-03 3.0000000e-02 -3 3 0.0000000e+00 -4214 -add p Particle anti-Lambda_b0 -5122 5.6196000e+00 0.0000000e+00 0.0000000e+00 0 1 4.1371359e-01 -5122 -add p Particle rho(3S)0 30113 1.7200000e+00 2.5000000e-01 5.0000000e-01 0 2 0.0000000e+00 0 -add p Particle anti-bb_1 -5503 0.0000000e+00 0.0000000e+00 0.0000000e+00 2 2 0.0000000e+00 -5503 -add p Particle Sigma_b- 5112 5.8156400e+00 5.3000000e-03 1.0000000e-04 -3 1 0.0000000e+00 5112 -add p Particle anti-Sigma(1750)0 -23212 1.7500000e+00 9.0000000e-02 4.5000000e-01 0 1 0.0000000e+00 0 -add p Particle anti-Sigma_c*-- -4224 2.5184100e+00 1.4780000e-02 9.2000000e-02 -6 3 0.0000000e+00 -4224 -add p Particle Sigma_c*++ 4224 2.5184100e+00 1.4780000e-02 9.2000000e-02 6 3 0.0000000e+00 4224 -add p Particle B_s0H 530 5.3663000e+00 0.0000000e+00 0.0000000e+00 0 0 4.6074353e-01 0 -add p Particle L+ -17 4.0000000e+02 0.0000000e+00 0.0000000e+00 3 1 0.0000000e+00 -17 -add p Particle anti-Xi_b0 -5232 5.7919000e+00 0.0000000e+00 0.0000000e+00 0 1 4.2570529e-01 -5232 -add p Particle gamma 22 0.0000000e+00 0.0000000e+00 0.0000000e+00 0 2 0.0000000e+00 22 -*--------------------------------------------------------------------------------------------------------------------------------------- -* Added by R. Godang 5/10/2013 for Belle II. The parameters are given by Shohei Nishida -*--------------------------------------------------------------------------------------------------------------------------------------- -add p Particle Xdd 30643 1.6000000e+00 5.0000000e-01 9.6700000e-01 0 0 0.0000000e+00 0 -add p Particle anti-Xdd -30643 1.6000000e+00 5.0000000e-01 9.6700000e-01 0 0 0.0000000e+00 0 -add p Particle Xdu+ 30653 1.6000000e+00 5.0000000e-01 9.6700000e-01 3 0 0.0000000e+00 0 -add p Particle anti-Xdu- -30653 1.6000000e+00 5.0000000e-01 9.6700000e-01 -3 0 0.0000000e+00 0 -*--------------------------------------------------------------------------------------------------------------------------------------- -* Added by R. Godang 5/10/2013 for Belle II. The parameters are given by Kiyoshi Hayasaka -*--------------------------------------------------------------------------------------------------------------------------------------- -add p Particle pi(1)(1400)0 9000113 1.3540000e+00 3.3000000e-01 0.0000000e+00 0 4 5.9796000e-13 0 -add p Particle pi(1)(1400)+ 9000213 1.3540000e+00 3.3000000e-01 0.0000000e+00 3 4 5.9796000e-13 0 -add p Particle eta(1405) 9020221 1.4088000e+00 5.1000000e-02 0.0000000e+00 0 0 3.8616000e-12 0 -add p Particle a(0)(1450)0 10111 1.4670000e+00 2.6500000e-01 0.0000000e+00 0 0 7.4463000e-13 0 -add p Particle a(0)(1450)+ 10211 1.4670000e+00 2.6500000e-01 0.0000000e+00 3 0 7.4463000e-13 0 -add p Particle eta(1475) 100331 1.4750000e+00 8.5000000e-02 0.0000000e+00 0 0 2.3215000e-12 0 -add p Particle pi(1)(1600)0 9010113 1.6600000e+00 2.4100000e-01 0.0000000e+00 0 4 8.2220000e-13 0 -add p Particle pi(1)(1600)+ 9010213 1.6600000e+00 2.4100000e-01 0.0000000e+00 3 4 8.2220000e-13 0 -add p Particle eta(2)(1645) 10225 1.6170000e+00 1.8100000e-01 0.0000000e+00 0 8 1.0902000e-12 0 -add p Particle omega(3)(1670) 227 1.6670000e+00 1.6800000e-01 0.0000000e+00 0 12 1.1746000e-12 0 -add p Particle pi(2)(1670)0 10115 1.6706000e+00 2.6000000e-01 0.0000000e+00 0 8 7.5895000e-13 0 -add p Particle pi(2)(1670)+ 10215 1.6706000e+00 2.6000000e-01 0.0000000e+00 3 8 7.5895000e-13 0 -add p Particle rho(3)(1690)0 117 1.6888000e+00 1.6100000e-01 0.0000000e+00 0 12 1.2256000e-12 0 -add p Particle rho(3)(1690)+ 217 1.6888000e+00 1.6100000e-01 0.0000000e+00 3 12 1.2256000e-12 0 -add p Particle f(0)(1710) 10331 1.7040000e+00 1.3500000e-01 0.0000000e+00 0 0 1.4617000e-12 0 -add p Particle pi(1800)0 9010111 1.8100000e+00 2.0800000e-01 0.0000000e+00 0 0 9.4869000e-13 0 -add p Particle pi(1800)+ 9010211 1.8100000e+00 2.0800000e-01 0.0000000e+00 3 0 9.4869000e-13 0 -add p Particle phi(3)(1850) 337 1.8540000e+00 8.7000000e-02 0.0000000e+00 0 12 2.2681000e-12 0 -add p Particle f(2)(1950) 9050225 1.9360000e+00 4.7200000e-01 0.0000000e+00 0 8 4.1807000e-13 0 -add p Particle f(2)(2010) 9060225 2.0100000e+00 2.0200000e-01 0.0000000e+00 0 8 9.8663000e-13 0 -add p Particle a(4)(2040)0 119 1.9670000e+00 2.5500000e-01 0.0000000e+00 0 16 7.7383000e-13 0 -add p Particle a(4)(2040)+ 219 1.9670000e+00 2.5500000e-01 0.0000000e+00 3 16 7.7383000e-13 0 -add p Particle f(4)(2050) 229 2.0180000e+00 2.3700000e-01 0.0000000e+00 0 16 8.3260000e-13 0 -add p Particle f(2)(2300) 9080225 2.2970000e+00 1.4900000e-01 0.0000000e+00 0 8 1.3155000e-12 0 -add p Particle f(2)(2340) 9090225 2.3500000e+00 3.1900000e-01 0.0000000e+00 0 8 6.1665000e-13 0 -add p Particle K(2)(1770)0 10315 1.7730000e+00 1.8600000e-01 0.0000000e+00 0 8 1.0609000e-12 0 -add p Particle K(2)(1770)+ 10325 1.7730000e+00 1.8600000e-01 0.0000000e+00 3 8 1.0609000e-12 0 -add p Particle K(2)(1820)0 20315 1.8190000e+00 2.7600000e-01 0.0000000e+00 0 8 7.1495000e-13 0 -add p Particle K(2)(1820)+ 20325 1.8190000e+00 2.7600000e-01 0.0000000e+00 3 8 7.1495000e-13 0 -end diff --git a/GeneratorInterface/GenFilters/plugins/PythiaFilterMotherSister.cc b/GeneratorInterface/GenFilters/plugins/PythiaFilterMotherSister.cc new file mode 100644 index 0000000000000..9c2606bc30df6 --- /dev/null +++ b/GeneratorInterface/GenFilters/plugins/PythiaFilterMotherSister.cc @@ -0,0 +1,93 @@ + +#include "GeneratorInterface/GenFilters/plugins/PythiaFilterMotherSister.h" +#include "GeneratorInterface/GenFilters/plugins/MCFilterZboostHelper.h" + +#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" +#include + +using namespace edm; +using namespace std; + +PythiaFilterMotherSister::PythiaFilterMotherSister(const edm::ParameterSet& iConfig) + : token_(consumes( + edm::InputTag(iConfig.getUntrackedParameter("moduleLabel", std::string("generator")), "unsmeared"))), + particleID(iConfig.getUntrackedParameter("ParticleID", 0)), + minpcut(iConfig.getUntrackedParameter("MinP", 0.)), + maxpcut(iConfig.getUntrackedParameter("MaxP", 10000.)), + minptcut(iConfig.getUntrackedParameter("MinPt", 0.)), + maxptcut(iConfig.getUntrackedParameter("MaxPt", 10000.)), + minetacut(iConfig.getUntrackedParameter("MinEta", -10.)), + maxetacut(iConfig.getUntrackedParameter("MaxEta", 10.)), + minrapcut(iConfig.getUntrackedParameter("MinRapidity", -20.)), + maxrapcut(iConfig.getUntrackedParameter("MaxRapidity", 20.)), + minphicut(iConfig.getUntrackedParameter("MinPhi", -3.5)), + maxphicut(iConfig.getUntrackedParameter("MaxPhi", 3.5)), + motherIDs(iConfig.getUntrackedParameter("MotherIDs", std::vector{0})), + sisterID(iConfig.getUntrackedParameter("SisterID", 0)), + betaBoost(iConfig.getUntrackedParameter("BetaBoost", 0.)), + maxSisDisplacement(iConfig.getUntrackedParameter("MaxSisterDisplacement", -1.)) { + //now do what ever initialization is needed +} + +PythiaFilterMotherSister::~PythiaFilterMotherSister() { + // do anything here that needs to be done at desctruction time + // (e.g. close files, deallocate resources etc.) +} + +// +// member functions +// + +// ------------ method called to produce the data ------------ +bool PythiaFilterMotherSister::filter(edm::StreamID, edm::Event& iEvent, const edm::EventSetup& iSetup) const { + using namespace edm; + Handle evt; + iEvent.getByToken(token_, evt); + + const HepMC::GenEvent* myGenEvent = evt->GetEvent(); + + for (HepMC::GenEvent::particle_const_iterator p = myGenEvent->particles_begin(); p != myGenEvent->particles_end(); + ++p) { + HepMC::FourVector mom = MCFilterZboostHelper::zboost((*p)->momentum(), betaBoost); + double rapidity = 0.5 * log((mom.e() + mom.pz()) / (mom.e() - mom.pz())); + + if (abs((*p)->pdg_id()) == particleID && mom.rho() > minpcut && mom.rho() < maxpcut && + (*p)->momentum().perp() > minptcut && (*p)->momentum().perp() < maxptcut && mom.eta() > minetacut && + mom.eta() < maxetacut && rapidity > minrapcut && rapidity < maxrapcut && (*p)->momentum().phi() > minphicut && + (*p)->momentum().phi() < maxphicut) { + HepMC::GenParticle* mother = (*((*p)->production_vertex()->particles_in_const_begin())); + + // check various possible mothers + for (auto motherID : motherIDs) { + if (abs(mother->pdg_id()) == abs(motherID)) { + // loop over its daughters + for (HepMC::GenVertex::particle_iterator dau = mother->end_vertex()->particles_begin(HepMC::children); + dau != mother->end_vertex()->particles_end(HepMC::children); + ++dau) { + // find the daugther you're interested in + if (abs((*dau)->pdg_id()) == abs(sisterID)) { + // calculate displacement of the sister particle, from production to decay + HepMC::GenVertex* v1 = (*dau)->production_vertex(); + HepMC::GenVertex* v2 = (*dau)->end_vertex(); + + double lx12 = v1->position().x() - v2->position().x(); + double ly12 = v1->position().y() - v2->position().y(); + double lz12 = v1->position().z() - v2->position().z(); + double lxyz12 = sqrt(lx12 * lx12 + ly12 * ly12 + lz12 * lz12); + + if (maxSisDisplacement != -1) { + if (lxyz12 < maxSisDisplacement) { + return true; + } + } else { + return true; + } + } + } + } + } + } + } + + return false; +} diff --git a/GeneratorInterface/GenFilters/plugins/PythiaFilterMotherSister.h b/GeneratorInterface/GenFilters/plugins/PythiaFilterMotherSister.h new file mode 100644 index 0000000000000..d85ec3aa9c26e --- /dev/null +++ b/GeneratorInterface/GenFilters/plugins/PythiaFilterMotherSister.h @@ -0,0 +1,73 @@ +#ifndef PYTHIAFILTERMOTHERSISTER_h +#define PYTHIAFILTERMOTHERSISTER_h +// -*- C++ -*- +// +// Package: PythiaFilterMotherSister +// Class: PythiaFilterMotherSister +// +/**\class PythiaFilterMotherSister PythiaFilterMotherSister.cc IOMC/PythiaFilterMotherSister/src/PythiaFilterMotherSister.cc + + Description: A filter to identify a particle with given id and kinematic + && given mother id (multiple mothers possible) + && given id and 3d displacement of one among mother's daughters + + Implementation: + Inspired by PythiaFilterMultiMother.cc +*/ +// +// +// +// +// + +// system include files +#include + +// user include files +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/global/EDFilter.h" + +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/MakerMacros.h" + +#include "FWCore/ParameterSet/interface/ParameterSet.h" + +// +// class decleration +// +namespace edm { + class HepMCProduct; +} + +class PythiaFilterMotherSister : public edm::global::EDFilter<> { +public: + explicit PythiaFilterMotherSister(const edm::ParameterSet&); + ~PythiaFilterMotherSister() override; + + bool filter(edm::StreamID, edm::Event&, const edm::EventSetup&) const override; + +private: + // ----------member data --------------------------- + + const edm::EDGetTokenT token_; + const int particleID; + const double minpcut; + const double maxpcut; + const double minptcut; + const double maxptcut; + const double minetacut; + const double maxetacut; + const double minrapcut; + const double maxrapcut; + const double minphicut; + const double maxphicut; + + //const int status; + std::vector motherIDs; + const int sisterID; + //const int processID; + + const double betaBoost; + const double maxSisDisplacement; +}; +#endif diff --git a/GeneratorInterface/GenFilters/plugins/SealModule.cc b/GeneratorInterface/GenFilters/plugins/SealModule.cc index badba27692e35..d32befeb72211 100644 --- a/GeneratorInterface/GenFilters/plugins/SealModule.cc +++ b/GeneratorInterface/GenFilters/plugins/SealModule.cc @@ -10,6 +10,7 @@ #include "GeneratorInterface/GenFilters/plugins/CosmicGenFilterHelix.h" #include "GeneratorInterface/GenFilters/plugins/PythiaFilterIsolatedTrack.h" #include "GeneratorInterface/GenFilters/plugins/PythiaDauVFilterMatchID.h" +#include "GeneratorInterface/GenFilters/plugins/PythiaFilterMotherSister.h" DEFINE_FWK_MODULE(PythiaFilter); DEFINE_FWK_MODULE(PythiaDauFilter); @@ -21,3 +22,4 @@ DEFINE_FWK_MODULE(MCParticlePairFilter); DEFINE_FWK_MODULE(CosmicGenFilterHelix); DEFINE_FWK_MODULE(PythiaFilterIsolatedTrack); DEFINE_FWK_MODULE(PythiaDauVFilterMatchID); +DEFINE_FWK_MODULE(PythiaFilterMotherSister); diff --git a/GeneratorInterface/Herwig7Interface/python/DYToll01234Jets_5f_LO_MLM_Madgraph_Herwig_13TeV_cff.py b/GeneratorInterface/Herwig7Interface/python/DYToll01234Jets_5f_LO_MLM_Madgraph_Herwig_13TeV_cff.py new file mode 100644 index 0000000000000..4e2484ee675ee --- /dev/null +++ b/GeneratorInterface/Herwig7Interface/python/DYToll01234Jets_5f_LO_MLM_Madgraph_Herwig_13TeV_cff.py @@ -0,0 +1,38 @@ +import FWCore.ParameterSet.Config as cms + +from Configuration.Generator.DYToll01234Jets_5f_LO_MLM_Madgraph_LHE_13TeV_cff import externalLHEProducer +from Configuration.Generator.Herwig7Settings.Herwig7CH3TuneSettings_cfi import * +from Configuration.Generator.Herwig7Settings.Herwig7StableParticlesForDetector_cfi import * +from Configuration.Generator.Herwig7Settings.Herwig7MGMergingSettings_cfi import * + + +generator = cms.EDFilter("Herwig7GeneratorFilter", + herwig7CH3SettingsBlock, + herwig7StableParticlesForDetectorBlock, + herwig7MGMergingSettingsBlock, + configFiles = cms.vstring(), + hw_user_settings = cms.vstring( + 'set FxFxHandler:MergeMode TreeMG5', + 'set FxFxHandler:njetsmax 4' + ), + parameterSets = cms.vstring( + 'herwig7CH3PDF', + 'herwig7CH3AlphaS', + 'herwig7CH3MPISettings', + 'herwig7StableParticlesForDetector', + 'hw_mg_merging_settings', + 'hw_user_settings' + ), + crossSection = cms.untracked.double(-1), + dataLocation = cms.string('${HERWIGPATH:-6}'), + eventHandlers = cms.string('/Herwig/EventHandlers'), + filterEfficiency = cms.untracked.double(1.0), + generatorModule = cms.string('/Herwig/Generators/EventGenerator'), + repository = cms.string('${HERWIGPATH}/HerwigDefaults.rpo'), + run = cms.string('InterfaceMatchboxTest'), + runModeList = cms.untracked.string("read,run"), + seed = cms.untracked.int32(12345) +) + + +ProductionFilterSequence = cms.Sequence(generator) diff --git a/GeneratorInterface/Herwig7Interface/python/DYToll012Jets_5f_NLO_FXFX_Madgraph_Herwig_13TeV_cff.py b/GeneratorInterface/Herwig7Interface/python/DYToll012Jets_5f_NLO_FXFX_Madgraph_Herwig_13TeV_cff.py new file mode 100644 index 0000000000000..3b89a0fc18b76 --- /dev/null +++ b/GeneratorInterface/Herwig7Interface/python/DYToll012Jets_5f_NLO_FXFX_Madgraph_Herwig_13TeV_cff.py @@ -0,0 +1,45 @@ +import FWCore.ParameterSet.Config as cms + +from Configuration.Generator.Herwig7Settings.Herwig7CH3TuneSettings_cfi import * +from Configuration.Generator.Herwig7Settings.Herwig7StableParticlesForDetector_cfi import * +from Configuration.Generator.Herwig7Settings.Herwig7MGMergingSettings_cfi import * + + +generator = cms.EDFilter("Herwig7GeneratorFilter", + herwig7CH3SettingsBlock, + herwig7StableParticlesForDetectorBlock, + herwig7MGMergingSettingsBlock, + configFiles = cms.vstring(), + hw_user_settings = cms.vstring( + 'set FxFxHandler:MergeMode FxFx', + 'set FxFxHandler:njetsmax 2' + ), + parameterSets = cms.vstring( + 'herwig7CH3PDF', + 'herwig7CH3AlphaS', + 'herwig7CH3MPISettings', + 'herwig7StableParticlesForDetector', + 'hw_mg_merging_settings', + 'hw_user_settings' + ), + crossSection = cms.untracked.double(-1), + dataLocation = cms.string('${HERWIGPATH:-6}'), + eventHandlers = cms.string('/Herwig/EventHandlers'), + filterEfficiency = cms.untracked.double(1.0), + generatorModule = cms.string('/Herwig/Generators/EventGenerator'), + repository = cms.string('${HERWIGPATH}/HerwigDefaults.rpo'), + run = cms.string('InterfaceMatchboxTest'), + runModeList = cms.untracked.string("read,run"), + seed = cms.untracked.int32(12345) +) + +externalLHEProducer = cms.EDProducer("ExternalLHEProducer", + args = cms.vstring('/cvmfs/cms.cern.ch/phys_generator/gridpacks/2017/13TeV/madgraph/V5_2.6.1/DYellell012j_5f_NLO_FXFX/dyellell012j_5f_NLO_FXFX_slc7_amd64_gcc700_CMSSW_10_6_4_tarball.tar.xz'), + nEvents = cms.untracked.uint32(5000), + numberOfParameters = cms.uint32(1), + outputFile = cms.string('cmsgrid_final.lhe'), + scriptName = cms.FileInPath('GeneratorInterface/LHEInterface/data/run_generic_tarball_cvmfs.sh') +) + + +ProductionFilterSequence = cms.Sequence(generator) diff --git a/GeneratorInterface/LHEInterface/plugins/ExternalLHEProducer.cc b/GeneratorInterface/LHEInterface/plugins/ExternalLHEProducer.cc index bdf8305213b11..e6c8e6511e3e7 100644 --- a/GeneratorInterface/LHEInterface/plugins/ExternalLHEProducer.cc +++ b/GeneratorInterface/LHEInterface/plugins/ExternalLHEProducer.cc @@ -65,7 +65,7 @@ Description: [one line class summary] // class declaration // -class ExternalLHEProducer : public edm::one::EDProducer { +class ExternalLHEProducer : public edm::one::EDProducer { public: explicit ExternalLHEProducer(const edm::ParameterSet& iConfig); @@ -74,7 +74,8 @@ class ExternalLHEProducer : public edm::one::EDProducer makeArgs(uint32_t nEvents, unsigned int nThreads, std::uint32_t seed) const; @@ -82,6 +83,7 @@ class ExternalLHEProducer : public edm::one::EDProducer const& args, int id) const; void nextEvent(); + std::unique_ptr generateRunInfo(std::vector const& files) const; // ----------member data --------------------------- std::string scriptName_; @@ -98,12 +100,12 @@ class ExternalLHEProducer : public edm::one::EDProducer> nPartonMapping_{}; std::unique_ptr reader_; - std::shared_ptr runInfoLast_; - std::shared_ptr runInfo_; std::shared_ptr partonLevel_; - std::deque> runInfoProducts_; - bool wasMerged; + bool wasMerged_; + edm::EDPutTokenT xmlPutToken_; + edm::EDPutTokenT eventPutToken_; + edm::EDPutTokenT beginRunPutToken_; class FileCloseSentry { public: explicit FileCloseSentry(int fd) : fd_(fd){}; @@ -155,11 +157,10 @@ ExternalLHEProducer::ExternalLHEProducer(const edm::ParameterSet& iConfig) } } - produces("LHEScriptOutput"); + xmlPutToken_ = produces("LHEScriptOutput"); - produces(); - produces(); - produces(); + eventPutToken_ = produces(); + beginRunPutToken_ = produces(); } // @@ -223,28 +224,7 @@ void ExternalLHEProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSe partonLevel_->getComments().end(), std::bind(&LHEEventProduct::addComment, product.get(), std::placeholders::_1)); - iEvent.put(std::move(product)); - - if (runInfo_) { - std::unique_ptr product(new LHERunInfoProduct(*runInfo_->getHEPRUP())); - std::for_each(runInfo_->getHeaders().begin(), - runInfo_->getHeaders().end(), - std::bind(&LHERunInfoProduct::addHeader, product.get(), std::placeholders::_1)); - std::for_each(runInfo_->getComments().begin(), - runInfo_->getComments().end(), - std::bind(&LHERunInfoProduct::addComment, product.get(), std::placeholders::_1)); - - if (!runInfoProducts_.empty()) { - runInfoProducts_.front()->mergeProduct(*product); - if (!wasMerged) { - runInfoProducts_.pop_front(); - runInfoProducts_.emplace_front(product.release()); - wasMerged = true; - } - } - - runInfo_.reset(); - } + iEvent.put(eventPutToken_, std::move(product)); partonLevel_.reset(); return; @@ -329,44 +309,25 @@ void ExternalLHEProducer::beginRunProduce(edm::Run& run, edm::EventSetup const& p->fillCompressedContent(instream, 0.25 * insize); instream.close(); } - run.put(std::move(p), "LHEScriptOutput"); + run.put(xmlPutToken_, std::move(p)); + + //Read the beginning of each file to get the run info in order to do the merge + auto runInfo = generateRunInfo(infiles); + if (runInfo) { + run.put(beginRunPutToken_, std::move(runInfo)); + } // LHE C++ classes translation // (read back uncompressed file from disk in streaming mode again to save memory) - unsigned int skip = 0; reader_ = std::make_unique(infiles, skip); nextEvent(); - if (runInfoLast_) { - runInfo_ = runInfoLast_; - - std::unique_ptr product(new LHERunInfoProduct(*runInfo_->getHEPRUP())); - std::for_each(runInfo_->getHeaders().begin(), - runInfo_->getHeaders().end(), - std::bind(&LHERunInfoProduct::addHeader, product.get(), std::placeholders::_1)); - std::for_each(runInfo_->getComments().begin(), - runInfo_->getComments().end(), - std::bind(&LHERunInfoProduct::addComment, product.get(), std::placeholders::_1)); - - // keep a copy around in case of merging - runInfoProducts_.emplace_back(new LHERunInfoProduct(*product)); - wasMerged = false; - - run.put(std::move(product)); - - runInfo_.reset(); - } } +void ExternalLHEProducer::beginRun(edm::Run const& run, edm::EventSetup const& es) {} // ------------ method called when ending the processing of a run ------------ -void ExternalLHEProducer::endRunProduce(edm::Run& run, edm::EventSetup const& es) { - if (!runInfoProducts_.empty()) { - std::unique_ptr product(runInfoProducts_.front().release()); - runInfoProducts_.pop_front(); - run.put(std::move(product)); - } - +void ExternalLHEProducer::endRun(edm::Run const& run, edm::EventSetup const& es) { nextEvent(); if (partonLevel_) { throw edm::Exception(edm::errors::EventGenerationFailure) @@ -574,6 +535,36 @@ void ExternalLHEProducer::fillDescriptions(edm::ConfigurationDescriptions& descr descriptions.addDefault(desc); } +std::unique_ptr ExternalLHEProducer::generateRunInfo(std::vector const& iFiles) const { + std::unique_ptr retValue; + //read each file in turn and only get the header info + for (auto const& file : iFiles) { + unsigned int skip = 0; + std::vector infiles(1, file); + auto reader = std::make_unique(infiles, skip); + auto parton = reader->next(); + if (!parton) { + break; + } + auto runInfo = parton->getRunInfo(); + LHERunInfoProduct product(*runInfo->getHEPRUP()); + + std::for_each(runInfo->getHeaders().begin(), + runInfo->getHeaders().end(), + std::bind(&LHERunInfoProduct::addHeader, product, std::placeholders::_1)); + std::for_each(runInfo->getComments().begin(), + runInfo->getComments().end(), + std::bind(&LHERunInfoProduct::addComment, product, std::placeholders::_1)); + if (not retValue) { + retValue = std::make_unique(std::move(product)); + } else { + retValue->mergeProduct(product); + } + } + + return retValue; +} + void ExternalLHEProducer::nextEvent() { if (partonLevel_) return; @@ -591,14 +582,6 @@ void ExternalLHEProducer::nextEvent() { partonLevel_ = reader_->next(&newFileOpened); } while (newFileOpened && !partonLevel_); } - if (!partonLevel_) - return; - - std::shared_ptr runInfoThis = partonLevel_->getRunInfo(); - if (runInfoThis != runInfoLast_) { - runInfo_ = runInfoThis; - runInfoLast_ = runInfoThis; - } } //define this as a plug-in diff --git a/GeneratorInterface/LHEInterface/plugins/LHESource.cc b/GeneratorInterface/LHEInterface/plugins/LHESource.cc index fa3362b081866..e3601a4012659 100644 --- a/GeneratorInterface/LHEInterface/plugins/LHESource.cc +++ b/GeneratorInterface/LHEInterface/plugins/LHESource.cc @@ -115,7 +115,7 @@ void LHESource::putRunInfoProduct(edm::RunPrincipal& iRunPrincipal) { if (runInfoProductLast_) { auto product = std::make_unique(*runInfoProductLast_); std::unique_ptr rdp(new edm::Wrapper(std::move(product))); - iRunPrincipal.put(lheProvenanceHelper_.runProductBranchDescription_, std::move(rdp)); + iRunPrincipal.putOrMerge(lheProvenanceHelper_.runProductBranchDescription_, std::move(rdp)); } } diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2021.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2021.xml index a3789e119280b..cc2bab4bb54cc 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2021.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2021.xml @@ -25,7 +25,7 @@ - + @@ -212,7 +212,7 @@ - + @@ -313,8 +313,8 @@ - - + + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2021FlatMinus05Percent.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2021FlatMinus05Percent.xml index 27df4d10c9cd2..bb2e45e4b3e34 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2021FlatMinus05Percent.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2021FlatMinus05Percent.xml @@ -212,7 +212,7 @@ - + @@ -313,8 +313,8 @@ - - + + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2021FlatMinus10Percent.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2021FlatMinus10Percent.xml index 14f76d7bc2eea..20496701f30d4 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2021FlatMinus10Percent.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2021FlatMinus10Percent.xml @@ -212,7 +212,7 @@ - + @@ -313,8 +313,8 @@ - - + + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2021FlatPlus05Percent.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2021FlatPlus05Percent.xml index 4fae7d8c6e643..6ae8d93134488 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2021FlatPlus05Percent.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2021FlatPlus05Percent.xml @@ -212,7 +212,7 @@ - + @@ -313,8 +313,8 @@ - - + + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2021FlatPlus10Percent.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2021FlatPlus10Percent.xml index 8c3823c4c9e59..0ca6cfb407a5e 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2021FlatPlus10Percent.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2021FlatPlus10Percent.xml @@ -212,7 +212,7 @@ - + @@ -313,8 +313,8 @@ - - + + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2021ZeroMaterial.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2021ZeroMaterial.xml index 2e9a1fd37418b..3d04e0f92ac0e 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2021ZeroMaterial.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2021ZeroMaterial.xml @@ -212,7 +212,7 @@ - + @@ -313,8 +313,8 @@ - - + + diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D50.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D50.xml deleted file mode 100644 index 2f786745ddd85..0000000000000 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D50.xml +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D51.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D51.xml deleted file mode 100644 index 85ed758383ce3..0000000000000 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D51.xml +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D53.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D53.xml deleted file mode 100644 index ef4f4eba6bd72..0000000000000 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D53.xml +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D54.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D54.xml deleted file mode 100644 index 2bfdb5d25f456..0000000000000 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D54.xml +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D56.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D56.xml deleted file mode 100644 index 02e916faeae81..0000000000000 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D56.xml +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D57.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D57.xml deleted file mode 100644 index 88fffc92489ad..0000000000000 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D57.xml +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D58.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D58.xml deleted file mode 100644 index ade37078c42ee..0000000000000 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D58.xml +++ /dev/null @@ -1,131 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D59.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D59.xml deleted file mode 100644 index 2e348a664a1dc..0000000000000 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D59.xml +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D61.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D61.xml deleted file mode 100644 index ac97ab9de58fd..0000000000000 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D61.xml +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D62.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D62.xml deleted file mode 100644 index d988cd1a2b977..0000000000000 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D62.xml +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D64.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D64.xml deleted file mode 100644 index cca7d324c2638..0000000000000 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D64.xml +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D65.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D65.xml deleted file mode 100644 index 6a925e965d7fa..0000000000000 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D65.xml +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D66.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D66.xml deleted file mode 100644 index 74914117a363e..0000000000000 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D66.xml +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D67.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D67.xml deleted file mode 100644 index 85f415a9e83c3..0000000000000 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D67.xml +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D69.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D69.xml deleted file mode 100644 index 24800fe00879c..0000000000000 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D69.xml +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D71.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D71.xml deleted file mode 100644 index 3970a99df9fcf..0000000000000 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D71.xml +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D72.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D72.xml deleted file mode 100644 index cc1bc3b93df03..0000000000000 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D72.xml +++ /dev/null @@ -1,125 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D75.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D75.xml deleted file mode 100644 index 530bfeeace755..0000000000000 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D75.xml +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D80.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D80.xml index 191e51ba964e0..2ec682be52ca5 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D80.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D80.xml @@ -38,7 +38,6 @@ - diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D81.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D81.xml index 3ba8b48d3dc20..f31ed51b57523 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D81.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D81.xml @@ -38,7 +38,6 @@ - diff --git a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D74.xml b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D82.xml similarity index 89% rename from Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D74.xml rename to Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D82.xml index 823dfff8da26f..a6605b56f6366 100644 --- a/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D74.xml +++ b/Geometry/CMSCommonData/data/dd4hep/cmsExtendedGeometry2026D82.xml @@ -66,6 +66,11 @@ + + + + + @@ -83,7 +88,7 @@ - + @@ -91,19 +96,20 @@ - + - - - + + + - + + @@ -113,14 +119,15 @@ - + + - + diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2021FlatMinus05PercentXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2021FlatMinus05PercentXML_cfi.py index f6f2f6cf06d23..92eb58fd716a2 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2021FlatMinus05PercentXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2021FlatMinus05PercentXML_cfi.py @@ -213,7 +213,7 @@ 'SimTracker/TrackerMaterialAnalysis/data/trackingMaterialGroups_ForPhaseI/v1/trackingMaterialGroups_ForPhaseI.xml', 'Geometry/TrackerSimData/data/PhaseI/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/ebcon.xml', + 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/eecon.xml', 'Geometry/EcalCommonData/data/escon.xml', 'Geometry/EcalCommonData/data/eregalgo/2017/v1/eregalgo.xml', @@ -316,8 +316,8 @@ 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_124.xml', 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_125.xml', 'Geometry/VeryForwardData/data/RP_Device.xml', - 'Geometry/VeryForwardData/data/RP_Vertical_Device.xml', - 'Geometry/VeryForwardData/data/RP_Horizontal_Device.xml', + 'Geometry/VeryForwardData/data/RP_Vertical_Device/2021/v1/RP_Vertical_Device.xml', + 'Geometry/VeryForwardData/data/RP_Horizontal_Device/2021/v1/RP_Horizontal_Device.xml', 'Geometry/VeryForwardData/data/CTPPS_2018/CTPPS_220_Right_Station/v1/CTPPS_220_Right_Station.xml', 'Geometry/VeryForwardData/data/CTPPS_2018/CTPPS_220_Left_Station/v1/CTPPS_220_Left_Station.xml', 'Geometry/VeryForwardData/data/CTPPS_2018/CTPPS_210_Right_Station/v1/CTPPS_210_Right_Station.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2021FlatMinus10PercentXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2021FlatMinus10PercentXML_cfi.py index a41a3051a90a6..58ff186d3fc77 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2021FlatMinus10PercentXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2021FlatMinus10PercentXML_cfi.py @@ -213,7 +213,7 @@ 'SimTracker/TrackerMaterialAnalysis/data/trackingMaterialGroups_ForPhaseI/v1/trackingMaterialGroups_ForPhaseI.xml', 'Geometry/TrackerSimData/data/PhaseI/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/ebcon.xml', + 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/eecon.xml', 'Geometry/EcalCommonData/data/escon.xml', 'Geometry/EcalCommonData/data/eregalgo/2017/v1/eregalgo.xml', @@ -316,8 +316,8 @@ 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_124.xml', 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_125.xml', 'Geometry/VeryForwardData/data/RP_Device.xml', - 'Geometry/VeryForwardData/data/RP_Vertical_Device.xml', - 'Geometry/VeryForwardData/data/RP_Horizontal_Device.xml', + 'Geometry/VeryForwardData/data/RP_Vertical_Device/2021/v1/RP_Vertical_Device.xml', + 'Geometry/VeryForwardData/data/RP_Horizontal_Device/2021/v1/RP_Horizontal_Device.xml', 'Geometry/VeryForwardData/data/CTPPS_2018/CTPPS_220_Right_Station/v1/CTPPS_220_Right_Station.xml', 'Geometry/VeryForwardData/data/CTPPS_2018/CTPPS_220_Left_Station/v1/CTPPS_220_Left_Station.xml', 'Geometry/VeryForwardData/data/CTPPS_2018/CTPPS_210_Right_Station/v1/CTPPS_210_Right_Station.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2021FlatPlus05PercentXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2021FlatPlus05PercentXML_cfi.py index c8f975766fc33..05b78d14a696f 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2021FlatPlus05PercentXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2021FlatPlus05PercentXML_cfi.py @@ -213,7 +213,7 @@ 'SimTracker/TrackerMaterialAnalysis/data/trackingMaterialGroups_ForPhaseI/v1/trackingMaterialGroups_ForPhaseI.xml', 'Geometry/TrackerSimData/data/PhaseI/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/ebcon.xml', + 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/eecon.xml', 'Geometry/EcalCommonData/data/escon.xml', 'Geometry/EcalCommonData/data/eregalgo/2017/v1/eregalgo.xml', @@ -316,8 +316,8 @@ 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_124.xml', 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_125.xml', 'Geometry/VeryForwardData/data/RP_Device.xml', - 'Geometry/VeryForwardData/data/RP_Vertical_Device.xml', - 'Geometry/VeryForwardData/data/RP_Horizontal_Device.xml', + 'Geometry/VeryForwardData/data/RP_Vertical_Device/2021/v1/RP_Vertical_Device.xml', + 'Geometry/VeryForwardData/data/RP_Horizontal_Device/2021/v1/RP_Horizontal_Device.xml', 'Geometry/VeryForwardData/data/CTPPS_2018/CTPPS_220_Right_Station/v1/CTPPS_220_Right_Station.xml', 'Geometry/VeryForwardData/data/CTPPS_2018/CTPPS_220_Left_Station/v1/CTPPS_220_Left_Station.xml', 'Geometry/VeryForwardData/data/CTPPS_2018/CTPPS_210_Right_Station/v1/CTPPS_210_Right_Station.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2021FlatPlus10PercentXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2021FlatPlus10PercentXML_cfi.py index ce736f4b9f258..01dc96413933c 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2021FlatPlus10PercentXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2021FlatPlus10PercentXML_cfi.py @@ -213,7 +213,7 @@ 'SimTracker/TrackerMaterialAnalysis/data/trackingMaterialGroups_ForPhaseI/v1/trackingMaterialGroups_ForPhaseI.xml', 'Geometry/TrackerSimData/data/PhaseI/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/ebcon.xml', + 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/eecon.xml', 'Geometry/EcalCommonData/data/escon.xml', 'Geometry/EcalCommonData/data/eregalgo/2017/v1/eregalgo.xml', @@ -316,8 +316,8 @@ 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_124.xml', 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_125.xml', 'Geometry/VeryForwardData/data/RP_Device.xml', - 'Geometry/VeryForwardData/data/RP_Vertical_Device.xml', - 'Geometry/VeryForwardData/data/RP_Horizontal_Device.xml', + 'Geometry/VeryForwardData/data/RP_Vertical_Device/2021/v1/RP_Vertical_Device.xml', + 'Geometry/VeryForwardData/data/RP_Horizontal_Device/2021/v1/RP_Horizontal_Device.xml', 'Geometry/VeryForwardData/data/CTPPS_2018/CTPPS_220_Right_Station/v1/CTPPS_220_Right_Station.xml', 'Geometry/VeryForwardData/data/CTPPS_2018/CTPPS_220_Left_Station/v1/CTPPS_220_Left_Station.xml', 'Geometry/VeryForwardData/data/CTPPS_2018/CTPPS_210_Right_Station/v1/CTPPS_210_Right_Station.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2021XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2021XML_cfi.py index 5ed098f260ba3..debfe8726e570 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2021XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2021XML_cfi.py @@ -26,7 +26,7 @@ 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', 'Geometry/TrackerCommonData/data/PhaseI/trackerParameters.xml', - 'Geometry/TrackerCommonData/data/pixfwdMaterials/2021/v2/pixfwdMaterials.xml', + 'Geometry/TrackerCommonData/data/pixfwdMaterials/2021/v3/pixfwdMaterials.xml', 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdCylinder.xml', 'Geometry/TrackerCommonData/data/PhaseI/v2/pixfwdDisks.xml', @@ -213,7 +213,7 @@ 'SimTracker/TrackerMaterialAnalysis/data/trackingMaterialGroups_ForPhaseI/v1/trackingMaterialGroups_ForPhaseI.xml', 'Geometry/TrackerSimData/data/PhaseI/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/ebcon.xml', + 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/eecon.xml', 'Geometry/EcalCommonData/data/escon.xml', 'Geometry/EcalCommonData/data/eregalgo/2017/v1/eregalgo.xml', @@ -316,8 +316,8 @@ 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_124.xml', 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_125.xml', 'Geometry/VeryForwardData/data/RP_Device.xml', - 'Geometry/VeryForwardData/data/RP_Vertical_Device.xml', - 'Geometry/VeryForwardData/data/RP_Horizontal_Device.xml', + 'Geometry/VeryForwardData/data/RP_Vertical_Device/2021/v1/RP_Vertical_Device.xml', + 'Geometry/VeryForwardData/data/RP_Horizontal_Device/2021/v1/RP_Horizontal_Device.xml', 'Geometry/VeryForwardData/data/CTPPS_2018/CTPPS_220_Right_Station/v1/CTPPS_220_Right_Station.xml', 'Geometry/VeryForwardData/data/CTPPS_2018/CTPPS_220_Left_Station/v1/CTPPS_220_Left_Station.xml', 'Geometry/VeryForwardData/data/CTPPS_2018/CTPPS_210_Right_Station/v1/CTPPS_210_Right_Station.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2021ZeroMaterialXML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2021ZeroMaterialXML_cfi.py index 11876df440471..9c467908aae19 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2021ZeroMaterialXML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2021ZeroMaterialXML_cfi.py @@ -213,7 +213,7 @@ 'SimTracker/TrackerMaterialAnalysis/data/trackingMaterialGroups_ForPhaseI/v1/trackingMaterialGroups_ForPhaseI.xml', 'Geometry/TrackerSimData/data/PhaseI/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/ebcon.xml', + 'Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml', 'Geometry/EcalCommonData/data/eecon.xml', 'Geometry/EcalCommonData/data/escon.xml', 'Geometry/EcalCommonData/data/eregalgo/2017/v1/eregalgo.xml', @@ -316,8 +316,8 @@ 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_124.xml', 'Geometry/VeryForwardData/data/RP_Detectors_Assembly/RP_Detectors_Assembly_125.xml', 'Geometry/VeryForwardData/data/RP_Device.xml', - 'Geometry/VeryForwardData/data/RP_Vertical_Device.xml', - 'Geometry/VeryForwardData/data/RP_Horizontal_Device.xml', + 'Geometry/VeryForwardData/data/RP_Vertical_Device/2021/v1/RP_Vertical_Device.xml', + 'Geometry/VeryForwardData/data/RP_Horizontal_Device/2021/v1/RP_Horizontal_Device.xml', 'Geometry/VeryForwardData/data/CTPPS_2018/CTPPS_220_Right_Station/v1/CTPPS_220_Right_Station.xml', 'Geometry/VeryForwardData/data/CTPPS_2018/CTPPS_220_Left_Station/v1/CTPPS_220_Left_Station.xml', 'Geometry/VeryForwardData/data/CTPPS_2018/CTPPS_210_Right_Station/v1/CTPPS_210_Right_Station.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D50XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D50XML_cfi.py deleted file mode 100644 index e18bceb5d90f3..0000000000000 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D50XML_cfi.py +++ /dev/null @@ -1,129 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", - geomXMLFiles = cms.vstring( - 'Geometry/CMSCommonData/data/materials.xml', - 'Geometry/CMSCommonData/data/rotations.xml', - 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', - 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v3/cms.xml', - 'Geometry/CMSCommonData/data/cmsMother.xml', - 'Geometry/CMSCommonData/data/eta3/etaMax.xml', - 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v2/caloBase.xml', - 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v3/muonBase.xml', - 'Geometry/CMSCommonData/data/cmsMuon.xml', - 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v1/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', - 'Geometry/CMSCommonData/data/muonMB.xml', - 'Geometry/CMSCommonData/data/muonMagnet.xml', - 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', - 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', - 'Geometry/TrackerCommonData/data/PhaseII/trackerParameters.xml', - 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker613_MB_2019_04/pixfwd.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker613_MB_2019_04/pixbar.xml', - 'Geometry/TrackerCommonData/data/trackermaterial.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/otst.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker613_MB_2019_04/tracker.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker613_MB_2019_04/pixel.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerbar.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerfwd.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerStructureTopology.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker613/pixelStructureTopology.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/trackersens.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/pixelsens.xml', - 'Geometry/TrackerRecoData/data/PhaseII/TiltedTracker613_MB_2019_04/trackerRecoMaterial.xml', - 'SimTracker/TrackerMaterialAnalysis/data/trackingMaterialGroups_ForPhaseII.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/trackerProdCuts.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/pixelProdCuts.xml', - 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v1/ectkcablemat.xml', - 'Geometry/EcalCommonData/data/ebalgo.xml', - 'Geometry/EcalCommonData/data/ebcon.xml', - 'Geometry/EcalCommonData/data/ebrot.xml', - 'Geometry/HcalCommonData/data/hcalrotations.xml', - 'Geometry/HcalCommonData/data/hcal/v2/hcalalgo.xml', - 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', - 'Geometry/HcalCommonData/data/hcalcablealgo/v2/hcalcablealgo.xml', - 'Geometry/HcalCommonData/data/hcalouteralgo.xml', - 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', - 'Geometry/HcalCommonData/data/hcalSimNumbering/NoHE/hcalSimNumbering.xml', - 'Geometry/HcalCommonData/data/hcalRecNumbering/NoHE/hcalRecNumbering.xml', - 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', - 'Geometry/HGCalCommonData/data/hgcalMaterial/v1/hgcalMaterial.xml', - 'Geometry/HGCalCommonData/data/hgcal/v11/hgcal.xml', - 'Geometry/HGCalCommonData/data/hgcalcell/v9/hgcalcell.xml', - 'Geometry/HGCalCommonData/data/hgcalwafer/v9/hgcalwafer.xml', - 'Geometry/HGCalCommonData/data/hgcalEE/v10/hgcalEE.xml', - 'Geometry/HGCalCommonData/data/hgcalHEsil/v11/hgcalHEsil.xml', - 'Geometry/HGCalCommonData/data/hgcalHEmix/v11/hgcalHEmix.xml', - 'Geometry/HGCalCommonData/data/hgcalCons/v11/hgcalCons.xml', - 'Geometry/MuonCommonData/data/mbCommon/2021/v1/mbCommon.xml', - 'Geometry/MuonCommonData/data/mb1/2015/v2/mb1.xml', - 'Geometry/MuonCommonData/data/mb2/2015/v2/mb2.xml', - 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', - 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', - 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2021/v2/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v2/mf.xml', - 'Geometry/MuonCommonData/data/csc/2021/v1/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v2/rpcf.xml', - 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', - 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/TDR_Dev/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v1/mfshield.xml', - 'Geometry/MuonCommonData/data/me0/TDR_Dev/v2/me0.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2017/v1/forwardshield.xml', - 'Geometry/ForwardCommonData/data/brmrotations.xml', - 'Geometry/ForwardCommonData/data/PostLS2/brm.xml', - 'Geometry/ForwardCommonData/data/zdcmaterials.xml', - 'Geometry/ForwardCommonData/data/lumimaterials.xml', - 'Geometry/ForwardCommonData/data/zdcrotations.xml', - 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc.xml', - 'Geometry/ForwardCommonData/data/zdclumi.xml', - 'Geometry/ForwardCommonData/data/cmszdc.xml', - 'Geometry/MTDCommonData/data/mtdMaterial/v1/mtdMaterial.xml', - 'Geometry/MTDCommonData/data/btl/v1/btl.xml', - 'Geometry/MTDCommonData/data/etl/v3/etl.xml', - 'Geometry/MTDCommonData/data/mtdParameters/v1/mtdStructureTopology.xml', - 'Geometry/MTDCommonData/data/mtdParameters/v1/mtdParameters.xml', - )+ - cms.vstring( - 'Geometry/MuonCommonData/data/muonNumbering/TDR_DeV/muonNumbering.xml', - 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml', - 'Geometry/HcalCommonData/data/hcalsens/NoHE/hcalsenspmf.xml', - 'Geometry/HcalSimData/data/hf.xml', - 'Geometry/HcalSimData/data/hfpmt.xml', - 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2/CaloUtil.xml', - 'Geometry/HGCalSimData/data/hgcsensv9.xml', - 'Geometry/MuonSimData/data/PhaseII/ME0EtaPart/muonSens.xml', - 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', - 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', - 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', - 'Geometry/GEMGeometryBuilder/data/v7/GEMSpecsFilter.xml', - 'Geometry/GEMGeometryBuilder/data/v7/GEMSpecs.xml', - 'Geometry/ForwardCommonData/data/brmsens.xml', - 'Geometry/ForwardSimData/data/zdcsens.xml', - 'Geometry/MTDSimData/data/v1/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts.xml', - 'Geometry/EcalSimData/data/EcalProdCuts.xml', - 'Geometry/HGCalSimData/data/hgcProdCutsv9.xml', - 'Geometry/MuonSimData/data/PhaseII/muonProdCuts.xml', - 'Geometry/ForwardSimData/data/zdcProdCuts.xml', - 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', - 'Geometry/MTDSimData/data/v1/mtdProdCuts.xml', - 'Geometry/CMSCommonData/data/FieldParameters.xml', - ), - rootNodeName = cms.string('cms:OCMS') -) diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D64XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D64XML_cfi.py deleted file mode 100644 index 779da28ba5e8f..0000000000000 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D64XML_cfi.py +++ /dev/null @@ -1,129 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", - geomXMLFiles = cms.vstring( - 'Geometry/CMSCommonData/data/materials/2021/v1/materials.xml', - 'Geometry/CMSCommonData/data/rotations.xml', - 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', - 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v4/cms.xml', - 'Geometry/CMSCommonData/data/cmsMother.xml', - 'Geometry/CMSCommonData/data/eta3/etaMax.xml', - 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v3/caloBase.xml', - 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v4/muonBase.xml', - 'Geometry/CMSCommonData/data/cmsMuon.xml', - 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v2/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', - 'Geometry/CMSCommonData/data/muonMB.xml', - 'Geometry/CMSCommonData/data/muonMagnet.xml', - 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', - 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', - 'Geometry/TrackerCommonData/data/PhaseII/trackerParameters.xml', - 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/pixfwd.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/pixbar.xml', - 'Geometry/TrackerCommonData/data/trackermaterial.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker800_2020_07/tracker.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker615/pixel.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerbar.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerfwd.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerStructureTopology.xml', - 'Geometry/TrackerCommonData/data/PhaseII/InnerTracker621_50x50_2020_07/pixelStructureTopology.xml', - 'SimTracker/TrackerMaterialAnalysis/data/trackingMaterialGroups_ForPhaseII.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/trackersens.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/pixelsens.xml', - 'Geometry/TrackerRecoData/data/PhaseII/OuterTracker616_2020_04/trackerRecoMaterial.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/trackerProdCuts.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/pixelProdCuts.xml', - 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v1/ectkcablemat.xml', - 'Geometry/EcalCommonData/data/ebalgo.xml', - 'Geometry/EcalCommonData/data/ebcon.xml', - 'Geometry/EcalCommonData/data/ebrot.xml', - 'Geometry/HcalCommonData/data/hcalrotations.xml', - 'Geometry/HcalCommonData/data/hcal/v2/hcalalgo.xml', - 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', - 'Geometry/HcalCommonData/data/hcalcablealgo/v2/hcalcablealgo.xml', - 'Geometry/HcalCommonData/data/hcalouteralgo.xml', - 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', - 'Geometry/HcalCommonData/data/hcalSimNumbering/NoHE/hcalSimNumbering.xml', - 'Geometry/HcalCommonData/data/hcalRecNumbering/NoHE/hcalRecNumbering.xml', - 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', - 'Geometry/HGCalCommonData/data/hgcalMaterial/v1/hgcalMaterial.xml', - 'Geometry/HGCalCommonData/data/hgcal/v12/hgcal.xml', - 'Geometry/HGCalCommonData/data/hgcalcell/v9/hgcalcell.xml', - 'Geometry/HGCalCommonData/data/hgcalwafer/v9/hgcalwafer.xml', - 'Geometry/HGCalCommonData/data/hgcalEE/v12/hgcalEE.xml', - 'Geometry/HGCalCommonData/data/hgcalHEsil/v12/hgcalHEsil.xml', - 'Geometry/HGCalCommonData/data/hgcalHEmix/v12/hgcalHEmix.xml', - 'Geometry/HGCalCommonData/data/hgcalCons/v12/hgcalCons.xml', - 'Geometry/MuonCommonData/data/mbCommon/2021/v1/mbCommon.xml', - 'Geometry/MuonCommonData/data/mb1/2015/v2/mb1.xml', - 'Geometry/MuonCommonData/data/mb2/2015/v2/mb2.xml', - 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', - 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', - 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2021/v2/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v2/mf.xml', - 'Geometry/MuonCommonData/data/csc/2021/v1/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v2/rpcf.xml', - 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', - 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/TDR_Dev/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v1/mfshield.xml', - 'Geometry/MuonCommonData/data/me0/TDR_Dev/v2/me0.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v2/forwardshield.xml', - 'Geometry/ForwardCommonData/data/brmrotations.xml', - 'Geometry/ForwardCommonData/data/PostLS2/brm.xml', - 'Geometry/ForwardCommonData/data/zdcmaterials.xml', - 'Geometry/ForwardCommonData/data/lumimaterials.xml', - 'Geometry/ForwardCommonData/data/zdcrotations.xml', - 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc.xml', - 'Geometry/ForwardCommonData/data/zdclumi.xml', - 'Geometry/ForwardCommonData/data/cmszdc.xml', - 'Geometry/MTDCommonData/data/mtdMaterial/v1/mtdMaterial.xml', - 'Geometry/MTDCommonData/data/btl/v1/btl.xml', - 'Geometry/MTDCommonData/data/etl/v3/etl.xml', - 'Geometry/MTDCommonData/data/mtdParameters/v1/mtdStructureTopology.xml', - 'Geometry/MTDCommonData/data/mtdParameters/v1/mtdParameters.xml', - )+ - cms.vstring( - 'Geometry/MuonCommonData/data/muonNumbering/TDR_DeV/muonNumbering.xml', - 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml', - 'Geometry/HcalCommonData/data/hcalsens/NoHE/hcalsenspmf.xml', - 'Geometry/HcalSimData/data/hf.xml', - 'Geometry/HcalSimData/data/hfpmt.xml', - 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2/CaloUtil.xml', - 'Geometry/HGCalSimData/data/hgcsensv9.xml', - 'Geometry/MuonSimData/data/PhaseII/ME0EtaPart/muonSens.xml', - 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', - 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', - 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', - 'Geometry/GEMGeometryBuilder/data/v7/GEMSpecsFilter.xml', - 'Geometry/GEMGeometryBuilder/data/v7/GEMSpecs.xml', - 'Geometry/ForwardCommonData/data/brmsens.xml', - 'Geometry/ForwardSimData/data/zdcsens.xml', - 'Geometry/MTDSimData/data/v1/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2021/v1/HcalProdCuts.xml', - 'Geometry/EcalSimData/data/EcalProdCuts.xml', - 'Geometry/HGCalSimData/data/hgcProdCutsv9.xml', - 'Geometry/MuonSimData/data/PhaseII/muonProdCuts.xml', - 'Geometry/ForwardSimData/data/zdcProdCuts.xml', - 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', - 'Geometry/MTDSimData/data/v1/mtdProdCuts.xml', - 'Geometry/CMSCommonData/data/FieldParameters.xml', - ), - rootNodeName = cms.string('cms:OCMS') -) diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D65XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D65XML_cfi.py deleted file mode 100644 index 763def4e2c365..0000000000000 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D65XML_cfi.py +++ /dev/null @@ -1,128 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", - geomXMLFiles = cms.vstring( - 'Geometry/CMSCommonData/data/materials/2021/v1/materials.xml', - 'Geometry/CMSCommonData/data/rotations.xml', - 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', - 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v4/cms.xml', - 'Geometry/CMSCommonData/data/cmsMother.xml', - 'Geometry/CMSCommonData/data/eta3/etaMax.xml', - 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v3/caloBase.xml', - 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v4/muonBase.xml', - 'Geometry/CMSCommonData/data/cmsMuon.xml', - 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v2/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', - 'Geometry/CMSCommonData/data/muonMB.xml', - 'Geometry/CMSCommonData/data/muonMagnet.xml', - 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', - 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', - 'Geometry/TrackerCommonData/data/PhaseII/trackerParameters.xml', - 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/pixfwd.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/pixbar.xml', - 'Geometry/TrackerCommonData/data/trackermaterial.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker800_2020_07/tracker.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker700/pixel.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerbar.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerfwd.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerStructureTopology.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker700/pixelStructureTopology.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/trackersens.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker700/pixelsens.xml', - 'Geometry/TrackerRecoData/data/PhaseII/TiltedTracker700/trackerRecoMaterial.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/trackerProdCuts.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker700/pixelProdCuts.xml', - 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v1/ectkcablemat.xml', - 'Geometry/EcalCommonData/data/ebalgo.xml', - 'Geometry/EcalCommonData/data/ebcon.xml', - 'Geometry/EcalCommonData/data/ebrot.xml', - 'Geometry/HcalCommonData/data/hcalrotations.xml', - 'Geometry/HcalCommonData/data/hcal/v2/hcalalgo.xml', - 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', - 'Geometry/HcalCommonData/data/hcalcablealgo/v2/hcalcablealgo.xml', - 'Geometry/HcalCommonData/data/hcalouteralgo.xml', - 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', - 'Geometry/HcalCommonData/data/hcalSimNumbering/NoHE/hcalSimNumbering.xml', - 'Geometry/HcalCommonData/data/hcalRecNumbering/NoHE/hcalRecNumbering.xml', - 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', - 'Geometry/HGCalCommonData/data/hgcalMaterial/v1/hgcalMaterial.xml', - 'Geometry/HGCalCommonData/data/hgcal/v12/hgcal.xml', - 'Geometry/HGCalCommonData/data/hgcalcell/v9/hgcalcell.xml', - 'Geometry/HGCalCommonData/data/hgcalwafer/v9/hgcalwafer.xml', - 'Geometry/HGCalCommonData/data/hgcalEE/v12/hgcalEE.xml', - 'Geometry/HGCalCommonData/data/hgcalHEsil/v12/hgcalHEsil.xml', - 'Geometry/HGCalCommonData/data/hgcalHEmix/v12/hgcalHEmix.xml', - 'Geometry/HGCalCommonData/data/hgcalCons/v12/hgcalCons.xml', - 'Geometry/MuonCommonData/data/mbCommon/2021/v1/mbCommon.xml', - 'Geometry/MuonCommonData/data/mb1/2015/v2/mb1.xml', - 'Geometry/MuonCommonData/data/mb2/2015/v2/mb2.xml', - 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', - 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', - 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2021/v2/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v2/mf.xml', - 'Geometry/MuonCommonData/data/csc/2021/v1/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v2/rpcf.xml', - 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', - 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/TDR_Dev/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v1/mfshield.xml', - 'Geometry/MuonCommonData/data/me0/TDR_Dev/v2/me0.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v2/forwardshield.xml', - 'Geometry/ForwardCommonData/data/brmrotations.xml', - 'Geometry/ForwardCommonData/data/PostLS2/brm.xml', - 'Geometry/ForwardCommonData/data/zdcmaterials.xml', - 'Geometry/ForwardCommonData/data/lumimaterials.xml', - 'Geometry/ForwardCommonData/data/zdcrotations.xml', - 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc.xml', - 'Geometry/ForwardCommonData/data/zdclumi.xml', - 'Geometry/ForwardCommonData/data/cmszdc.xml', - 'Geometry/MTDCommonData/data/mtdMaterial/v1/mtdMaterial.xml', - 'Geometry/MTDCommonData/data/btl/v1/btl.xml', - 'Geometry/MTDCommonData/data/etl/v3/etl.xml', - 'Geometry/MTDCommonData/data/mtdParameters/v1/mtdStructureTopology.xml', - 'Geometry/MTDCommonData/data/mtdParameters/v1/mtdParameters.xml', - )+ - cms.vstring( - 'Geometry/MuonCommonData/data/muonNumbering/TDR_DeV/muonNumbering.xml', - 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml', - 'Geometry/HcalCommonData/data/hcalsens/NoHE/hcalsenspmf.xml', - 'Geometry/HcalSimData/data/hf.xml', - 'Geometry/HcalSimData/data/hfpmt.xml', - 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2/CaloUtil.xml', - 'Geometry/HGCalSimData/data/hgcsensv9.xml', - 'Geometry/MuonSimData/data/PhaseII/ME0EtaPart/muonSens.xml', - 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', - 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', - 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', - 'Geometry/GEMGeometryBuilder/data/v7/GEMSpecsFilter.xml', - 'Geometry/GEMGeometryBuilder/data/v7/GEMSpecs.xml', - 'Geometry/ForwardCommonData/data/brmsens.xml', - 'Geometry/ForwardSimData/data/zdcsens.xml', - 'Geometry/MTDSimData/data/v1/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2021/v1/HcalProdCuts.xml', - 'Geometry/EcalSimData/data/EcalProdCuts.xml', - 'Geometry/HGCalSimData/data/hgcProdCutsv9.xml', - 'Geometry/MuonSimData/data/PhaseII/muonProdCuts.xml', - 'Geometry/ForwardSimData/data/zdcProdCuts.xml', - 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', - 'Geometry/MTDSimData/data/v1/mtdProdCuts.xml', - 'Geometry/CMSCommonData/data/FieldParameters.xml', - ), - rootNodeName = cms.string('cms:OCMS') -) diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D66XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D66XML_cfi.py deleted file mode 100644 index 0530b9131a5ba..0000000000000 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D66XML_cfi.py +++ /dev/null @@ -1,129 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", - geomXMLFiles = cms.vstring( - 'Geometry/CMSCommonData/data/materials/2021/v1/materials.xml', - 'Geometry/CMSCommonData/data/rotations.xml', - 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', - 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v4/cms.xml', - 'Geometry/CMSCommonData/data/cmsMother.xml', - 'Geometry/CMSCommonData/data/eta3/etaMax.xml', - 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v3/caloBase.xml', - 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v4/muonBase.xml', - 'Geometry/CMSCommonData/data/cmsMuon.xml', - 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v2/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', - 'Geometry/CMSCommonData/data/muonMB.xml', - 'Geometry/CMSCommonData/data/muonMagnet.xml', - 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', - 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', - 'Geometry/TrackerCommonData/data/PhaseII/trackerParameters.xml', - 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/pixfwd.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/pixbar.xml', - 'Geometry/TrackerCommonData/data/trackermaterial.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker800_2020_07/tracker.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker615/pixel.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerbar.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerfwd.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerStructureTopology.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker613/pixelStructureTopology.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/trackersens.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/pixelsens.xml', - 'Geometry/TrackerRecoData/data/PhaseII/OuterTracker616_2020_04/trackerRecoMaterial.xml', - 'SimTracker/TrackerMaterialAnalysis/data/trackingMaterialGroups_ForPhaseII.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/trackerProdCuts.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/pixelProdCuts.xml', - 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v1/ectkcablemat.xml', - 'Geometry/EcalCommonData/data/ebalgo.xml', - 'Geometry/EcalCommonData/data/ebcon.xml', - 'Geometry/EcalCommonData/data/ebrot.xml', - 'Geometry/HcalCommonData/data/hcalrotations.xml', - 'Geometry/HcalCommonData/data/hcal/v2/hcalalgo.xml', - 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', - 'Geometry/HcalCommonData/data/hcalcablealgo/v2/hcalcablealgo.xml', - 'Geometry/HcalCommonData/data/hcalouteralgo.xml', - 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', - 'Geometry/HcalCommonData/data/hcalSimNumbering/NoHE/hcalSimNumbering.xml', - 'Geometry/HcalCommonData/data/hcalRecNumbering/NoHE/hcalRecNumbering.xml', - 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', - 'Geometry/HGCalCommonData/data/hgcalMaterial/v1/hgcalMaterial.xml', - 'Geometry/HGCalCommonData/data/hgcal/v12/hgcal.xml', - 'Geometry/HGCalCommonData/data/hgcalcell/v9/hgcalcell.xml', - 'Geometry/HGCalCommonData/data/hgcalwafer/v9/hgcalwafer.xml', - 'Geometry/HGCalCommonData/data/hgcalEE/v12/hgcalEE.xml', - 'Geometry/HGCalCommonData/data/hgcalHEsil/v12/hgcalHEsil.xml', - 'Geometry/HGCalCommonData/data/hgcalHEmix/v12/hgcalHEmix.xml', - 'Geometry/HGCalCommonData/data/hgcalCons/v12/hgcalCons.xml', - 'Geometry/MuonCommonData/data/mbCommon/2021/v1/mbCommon.xml', - 'Geometry/MuonCommonData/data/mb1/2015/v2/mb1.xml', - 'Geometry/MuonCommonData/data/mb2/2015/v2/mb2.xml', - 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', - 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', - 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v1/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v6/mf.xml', - 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', - 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', - 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v4/mfshield.xml', - 'Geometry/MuonCommonData/data/me0/TDR_Dev/v3/me0.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v2/forwardshield.xml', - 'Geometry/ForwardCommonData/data/brmrotations.xml', - 'Geometry/ForwardCommonData/data/PostLS2/brm.xml', - 'Geometry/ForwardCommonData/data/zdcmaterials.xml', - 'Geometry/ForwardCommonData/data/lumimaterials.xml', - 'Geometry/ForwardCommonData/data/zdcrotations.xml', - 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc.xml', - 'Geometry/ForwardCommonData/data/zdclumi.xml', - 'Geometry/ForwardCommonData/data/cmszdc.xml', - 'Geometry/MTDCommonData/data/mtdMaterial/v1/mtdMaterial.xml', - 'Geometry/MTDCommonData/data/btl/v1/btl.xml', - 'Geometry/MTDCommonData/data/etl/v3/etl.xml', - 'Geometry/MTDCommonData/data/mtdParameters/v1/mtdStructureTopology.xml', - 'Geometry/MTDCommonData/data/mtdParameters/v1/mtdParameters.xml', - )+ - cms.vstring( - 'Geometry/MuonCommonData/data/muonNumbering/TDR_DeV/v1/muonNumbering.xml', - 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml', - 'Geometry/HcalCommonData/data/hcalsens/NoHE/hcalsenspmf.xml', - 'Geometry/HcalSimData/data/hf.xml', - 'Geometry/HcalSimData/data/hfpmt.xml', - 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2/CaloUtil.xml', - 'Geometry/HGCalSimData/data/hgcsensv9.xml', - 'Geometry/MuonSimData/data/PhaseII/ME0EtaPart/muonSens.xml', - 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', - 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', - 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', - 'Geometry/GEMGeometryBuilder/data/v11/GEMSpecsFilter.xml', - 'Geometry/GEMGeometryBuilder/data/v11/GEMSpecs.xml', - 'Geometry/ForwardCommonData/data/brmsens.xml', - 'Geometry/ForwardSimData/data/zdcsens.xml', - 'Geometry/MTDSimData/data/v1/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2021/v1/HcalProdCuts.xml', - 'Geometry/EcalSimData/data/EcalProdCuts.xml', - 'Geometry/HGCalSimData/data/hgcProdCutsv9.xml', - 'Geometry/MuonSimData/data/PhaseII/muonProdCuts.xml', - 'Geometry/ForwardSimData/data/zdcProdCuts.xml', - 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', - 'Geometry/MTDSimData/data/v1/mtdProdCuts.xml', - 'Geometry/CMSCommonData/data/FieldParameters.xml', - ), - rootNodeName = cms.string('cms:OCMS') -) diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D67XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D67XML_cfi.py deleted file mode 100644 index a2bd966647a94..0000000000000 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D67XML_cfi.py +++ /dev/null @@ -1,129 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", - geomXMLFiles = cms.vstring( - 'Geometry/CMSCommonData/data/materials/2021/v1/materials.xml', - 'Geometry/CMSCommonData/data/rotations.xml', - 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', - 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v4/cms.xml', - 'Geometry/CMSCommonData/data/cmsMother.xml', - 'Geometry/CMSCommonData/data/eta3/etaMax.xml', - 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v3/caloBase.xml', - 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v4/muonBase.xml', - 'Geometry/CMSCommonData/data/cmsMuon.xml', - 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v2/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', - 'Geometry/CMSCommonData/data/muonMB.xml', - 'Geometry/CMSCommonData/data/muonMagnet.xml', - 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', - 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', - 'Geometry/TrackerCommonData/data/PhaseII/trackerParameters.xml', - 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/pixfwd.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/pixbar.xml', - 'Geometry/TrackerCommonData/data/trackermaterial.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker800_2020_07/tracker.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker615/pixel.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerbar.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerfwd.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerStructureTopology.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker613/pixelStructureTopology.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/trackersens.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/pixelsens.xml', - 'Geometry/TrackerRecoData/data/PhaseII/OuterTracker616_2020_04/trackerRecoMaterial.xml', - 'SimTracker/TrackerMaterialAnalysis/data/trackingMaterialGroups_ForPhaseII.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/trackerProdCuts.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/pixelProdCuts.xml', - 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v1/ectkcablemat.xml', - 'Geometry/EcalCommonData/data/ebalgo.xml', - 'Geometry/EcalCommonData/data/ebcon.xml', - 'Geometry/EcalCommonData/data/ebrot.xml', - 'Geometry/HcalCommonData/data/hcalrotations.xml', - 'Geometry/HcalCommonData/data/hcal/v2/hcalalgo.xml', - 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', - 'Geometry/HcalCommonData/data/hcalcablealgo/v2/hcalcablealgo.xml', - 'Geometry/HcalCommonData/data/hcalouteralgo.xml', - 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', - 'Geometry/HcalCommonData/data/hcalSimNumbering/NoHE/hcalSimNumbering.xml', - 'Geometry/HcalCommonData/data/hcalRecNumbering/NoHE/hcalRecNumbering.xml', - 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', - 'Geometry/HGCalCommonData/data/hgcalMaterial/v1/hgcalMaterial.xml', - 'Geometry/HGCalCommonData/data/hgcal/v12/hgcal.xml', - 'Geometry/HGCalCommonData/data/hgcalcell/v9/hgcalcell.xml', - 'Geometry/HGCalCommonData/data/hgcalwafer/v9/hgcalwafer.xml', - 'Geometry/HGCalCommonData/data/hgcalEE/v12/hgcalEE.xml', - 'Geometry/HGCalCommonData/data/hgcalHEsil/v12/hgcalHEsil.xml', - 'Geometry/HGCalCommonData/data/hgcalHEmix/v12/hgcalHEmix.xml', - 'Geometry/HGCalCommonData/data/hgcalCons/v12/hgcalCons.xml', - 'Geometry/MuonCommonData/data/mbCommon/2021/v1/mbCommon.xml', - 'Geometry/MuonCommonData/data/mb1/2015/v2/mb1.xml', - 'Geometry/MuonCommonData/data/mb2/2015/v2/mb2.xml', - 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', - 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', - 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v1/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v7/mf.xml', - 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', - 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', - 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/TDR_Eta16/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v5/mfshield.xml', - 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v3/ge0.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v2/forwardshield.xml', - 'Geometry/ForwardCommonData/data/brmrotations.xml', - 'Geometry/ForwardCommonData/data/PostLS2/brm.xml', - 'Geometry/ForwardCommonData/data/zdcmaterials.xml', - 'Geometry/ForwardCommonData/data/lumimaterials.xml', - 'Geometry/ForwardCommonData/data/zdcrotations.xml', - 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc.xml', - 'Geometry/ForwardCommonData/data/zdclumi.xml', - 'Geometry/ForwardCommonData/data/cmszdc.xml', - 'Geometry/MTDCommonData/data/mtdMaterial/v1/mtdMaterial.xml', - 'Geometry/MTDCommonData/data/btl/v1/btl.xml', - 'Geometry/MTDCommonData/data/etl/v3/etl.xml', - 'Geometry/MTDCommonData/data/mtdParameters/v1/mtdStructureTopology.xml', - 'Geometry/MTDCommonData/data/mtdParameters/v1/mtdParameters.xml', - )+ - cms.vstring( - 'Geometry/MuonCommonData/data/muonNumbering/TDR_DeV/v3/muonNumbering.xml', - 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml', - 'Geometry/HcalCommonData/data/hcalsens/NoHE/hcalsenspmf.xml', - 'Geometry/HcalSimData/data/hf.xml', - 'Geometry/HcalSimData/data/hfpmt.xml', - 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2/CaloUtil.xml', - 'Geometry/HGCalSimData/data/hgcsensv9.xml', - 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', - 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', - 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', - 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', - 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecsFilter.xml', - 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', - 'Geometry/ForwardCommonData/data/brmsens.xml', - 'Geometry/ForwardSimData/data/zdcsens.xml', - 'Geometry/MTDSimData/data/v1/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2021/v1/HcalProdCuts.xml', - 'Geometry/EcalSimData/data/EcalProdCuts.xml', - 'Geometry/HGCalSimData/data/hgcProdCutsv9.xml', - 'Geometry/MuonSimData/data/PhaseII/muonProdCuts.xml', - 'Geometry/ForwardSimData/data/zdcProdCuts.xml', - 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', - 'Geometry/MTDSimData/data/v1/mtdProdCuts.xml', - 'Geometry/CMSCommonData/data/FieldParameters.xml', - ), - rootNodeName = cms.string('cms:OCMS') -) diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D69XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D69XML_cfi.py deleted file mode 100644 index 5e22a8890e797..0000000000000 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D69XML_cfi.py +++ /dev/null @@ -1,136 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", - geomXMLFiles = cms.vstring( - 'Geometry/CMSCommonData/data/materials/2021/v1/materials.xml', - 'Geometry/CMSCommonData/data/rotations.xml', - 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', - 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v4/cms.xml', - 'Geometry/CMSCommonData/data/cmsMother.xml', - 'Geometry/CMSCommonData/data/eta3/etaMax.xml', - 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v3/caloBase.xml', - 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v4/muonBase.xml', - 'Geometry/CMSCommonData/data/cmsMuon.xml', - 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v2/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', - 'Geometry/CMSCommonData/data/muonMB.xml', - 'Geometry/CMSCommonData/data/muonMagnet.xml', - 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', - 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', - 'Geometry/TrackerCommonData/data/PhaseII/trackerParameters.xml', - 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/pixfwd.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/pixbar.xml', - 'Geometry/TrackerCommonData/data/trackermaterial.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker800_2020_07/tracker.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker615/pixel.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerbar.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerfwd.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerStructureTopology.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker613/pixelStructureTopology.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/trackersens.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/pixelsens.xml', - 'Geometry/TrackerRecoData/data/PhaseII/OuterTracker616_2020_04/trackerRecoMaterial.xml', - 'SimTracker/TrackerMaterialAnalysis/data/trackingMaterialGroups_ForPhaseII.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/trackerProdCuts.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/pixelProdCuts.xml', - 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v1/ectkcablemat.xml', - 'Geometry/EcalCommonData/data/ebalgo.xml', - 'Geometry/EcalCommonData/data/ebcon.xml', - 'Geometry/EcalCommonData/data/ebrot.xml', - 'Geometry/HcalCommonData/data/hcalrotations.xml', - 'Geometry/HcalCommonData/data/hcal/v2/hcalalgo.xml', - 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', - 'Geometry/HcalCommonData/data/hcalcablealgo/v2/hcalcablealgo.xml', - 'Geometry/HcalCommonData/data/hcalouteralgo.xml', - 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', - 'Geometry/HcalCommonData/data/hcalSimNumbering/NoHE/hcalSimNumbering.xml', - 'Geometry/HcalCommonData/data/hcalRecNumbering/NoHE/hcalRecNumbering.xml', - 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', - 'Geometry/HGCalCommonData/data/hgcalMaterial/v1/hgcalMaterial.xml', - 'Geometry/HGCalCommonData/data/hgcal/v12/hgcal.xml', - 'Geometry/HGCalCommonData/data/hgcalcell/v9/hgcalcell.xml', - 'Geometry/HGCalCommonData/data/hgcalwafer/v9/hgcalwafer.xml', - 'Geometry/HGCalCommonData/data/hgcalEE/v12/hgcalEE.xml', - 'Geometry/HGCalCommonData/data/hgcalHEsil/v12/hgcalHEsil.xml', - 'Geometry/HGCalCommonData/data/hgcalHEmix/v12/hgcalHEmix.xml', - 'Geometry/HGCalCommonData/data/hgcalCons/v12/hgcalCons.xml', - 'Geometry/ForwardCommonData/data/hfnose/v4/hfnose.xml', - 'Geometry/ForwardCommonData/data/hfnoseCell/v1/hfnoseCell.xml', - 'Geometry/ForwardCommonData/data/hfnoseWafer/v1/hfnoseWafer.xml', - 'Geometry/ForwardCommonData/data/hfnoseLayer/v2/hfnoseLayer.xml', - 'Geometry/ForwardCommonData/data/hfnoseCons/v1m/hfnoseCons.xml', - 'Geometry/MuonCommonData/data/mbCommon/2021/v1/mbCommon.xml', - 'Geometry/MuonCommonData/data/mb1/2015/v2/mb1.xml', - 'Geometry/MuonCommonData/data/mb2/2015/v2/mb2.xml', - 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', - 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', - 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v1/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v5/mf.xml', - 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', - 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', - 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/TDR_Dev/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v1/mfshield.xml', - 'Geometry/MuonCommonData/data/me0/TDR_Dev/v3/me0.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v3/forwardshield.xml', - 'Geometry/ForwardCommonData/data/brmrotations.xml', - 'Geometry/ForwardCommonData/data/brm/2026/v2/brm.xml', - 'Geometry/ForwardCommonData/data/zdcmaterials.xml', - 'Geometry/ForwardCommonData/data/lumimaterials.xml', - 'Geometry/ForwardCommonData/data/zdcrotations.xml', - 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc.xml', - 'Geometry/ForwardCommonData/data/zdclumi.xml', - 'Geometry/ForwardCommonData/data/cmszdc.xml', - 'Geometry/MTDCommonData/data/mtdMaterial/v1/mtdMaterial.xml', - 'Geometry/MTDCommonData/data/btl/v1/btl.xml', - 'Geometry/MTDCommonData/data/etl/v3/etl.xml', - 'Geometry/MTDCommonData/data/mtdParameters/v1/mtdStructureTopology.xml', - 'Geometry/MTDCommonData/data/mtdParameters/v1/mtdParameters.xml', - )+ - cms.vstring( - 'Geometry/MuonCommonData/data/muonNumbering/TDR_DeV/v1/muonNumbering.xml', - 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml', - 'Geometry/HcalCommonData/data/hcalsens/NoHE/hcalsenspmf.xml', - 'Geometry/HcalSimData/data/hf.xml', - 'Geometry/HcalSimData/data/hfpmt.xml', - 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v5/CaloUtil.xml', - 'Geometry/HGCalSimData/data/hgcsensv9.xml', - 'Geometry/ForwardSimData/data/hfnosesens.xml', - 'Geometry/MuonSimData/data/PhaseII/ME0EtaPart/muonSens.xml', - 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', - 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', - 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', - 'Geometry/GEMGeometryBuilder/data/v7/GEMSpecsFilter.xml', - 'Geometry/GEMGeometryBuilder/data/v7/GEMSpecs.xml', - 'Geometry/ForwardCommonData/data/brmsens.xml', - 'Geometry/ForwardSimData/data/zdcsens.xml', - 'Geometry/MTDSimData/data/v1/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2021/v1/HcalProdCuts.xml', - 'Geometry/EcalSimData/data/EcalProdCuts.xml', - 'Geometry/HGCalSimData/data/hgcProdCutsv9.xml', - 'Geometry/ForwardSimData/data/hfnoseProdCuts.xml', - 'Geometry/MuonSimData/data/PhaseII/muonProdCuts.xml', - 'Geometry/ForwardSimData/data/zdcProdCuts.xml', - 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', - 'Geometry/MTDSimData/data/v1/mtdProdCuts.xml', - 'Geometry/CMSCommonData/data/FieldParameters.xml', - ), - rootNodeName = cms.string('cms:OCMS') -) diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D71XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D71XML_cfi.py deleted file mode 100644 index 6713131a7846a..0000000000000 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D71XML_cfi.py +++ /dev/null @@ -1,130 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", - geomXMLFiles = cms.vstring( - 'Geometry/CMSCommonData/data/materials/2021/v1/materials.xml', - 'Geometry/CMSCommonData/data/rotations.xml', - 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', - 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', - 'Geometry/CMSCommonData/data/cmsMother.xml', - 'Geometry/CMSCommonData/data/eta3/etaMax.xml', - 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v5/caloBase.xml', - 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', - 'Geometry/CMSCommonData/data/cmsMuon.xml', - 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', - 'Geometry/CMSCommonData/data/muonMB.xml', - 'Geometry/CMSCommonData/data/muonMagnet.xml', - 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', - 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', - 'Geometry/TrackerCommonData/data/PhaseII/trackerParameters.xml', - 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/pixfwd.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/pixbar.xml', - 'Geometry/TrackerCommonData/data/trackermaterial.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker800_2020_07/tracker.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker615/pixel.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerbar.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerfwd.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerStructureTopology.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker613/pixelStructureTopology.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/trackersens.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/pixelsens.xml', - 'Geometry/TrackerRecoData/data/PhaseII/OuterTracker616_2020_04/trackerRecoMaterial.xml', - 'SimTracker/TrackerMaterialAnalysis/data/trackingMaterialGroups_ForPhaseII.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/trackerProdCuts.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/pixelProdCuts.xml', - 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v1/ectkcablemat.xml', - 'Geometry/EcalCommonData/data/ebalgo.xml', - 'Geometry/EcalCommonData/data/ebcon.xml', - 'Geometry/EcalCommonData/data/ebrot.xml', - 'Geometry/HcalCommonData/data/hcalrotations.xml', - 'Geometry/HcalCommonData/data/hcal/v2/hcalalgo.xml', - 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', - 'Geometry/HcalCommonData/data/hcalcablealgo/v2/hcalcablealgo.xml', - 'Geometry/HcalCommonData/data/hcalouteralgo/v1/hcalouteralgo.xml', - 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', - 'Geometry/HcalCommonData/data/hcalSimNumbering/NoHE/hcalSimNumbering.xml', - 'Geometry/HcalCommonData/data/hcalRecNumbering/NoHE/hcalRecNumbering.xml', - 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', - 'Geometry/HGCalCommonData/data/hgcalMaterial/v1/hgcalMaterial.xml', - 'Geometry/HGCalCommonData/data/hgcal/v14/hgcal.xml', - 'Geometry/HGCalCommonData/data/hgcalcell/v9/hgcalcell.xml', - 'Geometry/HGCalCommonData/data/hgcalwafer/v9/hgcalwafer.xml', - 'Geometry/HGCalCommonData/data/hgcalEE/v14/hgcalEE.xml', - 'Geometry/HGCalCommonData/data/hgcalHEsil/v14/hgcalHEsil.xml', - 'Geometry/HGCalCommonData/data/hgcalHEmix/v14/hgcalHEmix.xml', - 'Geometry/HGCalCommonData/data/hgcalCons/v14/hgcalCons.xml', - 'Geometry/HGCalCommonData/data/hgcalConsData/v13/hgcalConsData.xml', - 'Geometry/MuonCommonData/data/mbCommon/2021/v1/mbCommon.xml', - 'Geometry/MuonCommonData/data/mb1/2015/v2/mb1.xml', - 'Geometry/MuonCommonData/data/mb2/2015/v2/mb2.xml', - 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', - 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', - 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v1/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v6/mf.xml', - 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', - 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', - 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/TDR_Dev/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v4/mfshield.xml', - 'Geometry/MuonCommonData/data/me0/TDR_Dev/v3/me0.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', - 'Geometry/ForwardCommonData/data/brmrotations.xml', - 'Geometry/ForwardCommonData/data/brm/2026/v1/brm.xml', - 'Geometry/ForwardCommonData/data/zdcmaterials.xml', - 'Geometry/ForwardCommonData/data/lumimaterials.xml', - 'Geometry/ForwardCommonData/data/zdcrotations.xml', - 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc.xml', - 'Geometry/ForwardCommonData/data/zdclumi.xml', - 'Geometry/ForwardCommonData/data/cmszdc.xml', - 'Geometry/MTDCommonData/data/mtdMaterial/v1/mtdMaterial.xml', - 'Geometry/MTDCommonData/data/btl/v1/btl.xml', - 'Geometry/MTDCommonData/data/etl/v3/etl.xml', - 'Geometry/MTDCommonData/data/mtdParameters/v1/mtdStructureTopology.xml', - 'Geometry/MTDCommonData/data/mtdParameters/v1/mtdParameters.xml', - )+ - cms.vstring( - 'Geometry/MuonCommonData/data/muonNumbering/TDR_DeV/v1/muonNumbering.xml', - 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml', - 'Geometry/HcalCommonData/data/hcalsens/NoHE/hcalsenspmf.xml', - 'Geometry/HcalSimData/data/hf.xml', - 'Geometry/HcalSimData/data/hfpmt.xml', - 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', - 'Geometry/HGCalSimData/data/hgcsensv9.xml', - 'Geometry/MuonSimData/data/PhaseII/ME0EtaPart/muonSens.xml', - 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', - 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', - 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', - 'Geometry/GEMGeometryBuilder/data/v7/GEMSpecsFilter.xml', - 'Geometry/GEMGeometryBuilder/data/v7/GEMSpecs.xml', - 'Geometry/ForwardCommonData/data/brmsens.xml', - 'Geometry/ForwardSimData/data/zdcsens.xml', - 'Geometry/MTDSimData/data/v1/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2021/v1/HcalProdCuts.xml', - 'Geometry/EcalSimData/data/EcalProdCuts.xml', - 'Geometry/HGCalSimData/data/hgcProdCutsv9.xml', - 'Geometry/MuonSimData/data/PhaseII/muonProdCuts.xml', - 'Geometry/ForwardSimData/data/zdcProdCuts.xml', - 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', - 'Geometry/MTDSimData/data/v1/mtdProdCuts.xml', - 'Geometry/CMSCommonData/data/FieldParameters.xml', - ), - rootNodeName = cms.string('cms:OCMS') -) diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D72XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D72XML_cfi.py deleted file mode 100644 index d07d04eb3bc3f..0000000000000 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D72XML_cfi.py +++ /dev/null @@ -1,129 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", - geomXMLFiles = cms.vstring( - 'Geometry/CMSCommonData/data/materials/2021/v1/materials.xml', - 'Geometry/CMSCommonData/data/rotations.xml', - 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', - 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v4/cms.xml', - 'Geometry/CMSCommonData/data/cmsMother.xml', - 'Geometry/CMSCommonData/data/eta3/etaMax.xml', - 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v3/caloBase.xml', - 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v4/muonBase.xml', - 'Geometry/CMSCommonData/data/cmsMuon.xml', - 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v2/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', - 'Geometry/CMSCommonData/data/muonMB.xml', - 'Geometry/CMSCommonData/data/muonMagnet.xml', - 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', - 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', - 'Geometry/TrackerCommonData/data/PhaseII/trackerParameters.xml', - 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/pixfwd.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/pixbar.xml', - 'Geometry/TrackerCommonData/data/trackermaterial.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker800_2020_07/tracker.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker615/pixel.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerbar.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerfwd.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerStructureTopology.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker613/pixelStructureTopology.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/trackersens.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/pixelsens.xml', - 'Geometry/TrackerRecoData/data/PhaseII/OuterTracker616_2020_04/trackerRecoMaterial.xml', - 'SimTracker/TrackerMaterialAnalysis/data/trackingMaterialGroups_ForPhaseII.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/trackerProdCuts.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/pixelProdCuts.xml', - 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v1/ectkcablemat.xml', - 'Geometry/EcalCommonData/data/ebalgo.xml', - 'Geometry/EcalCommonData/data/ebcon.xml', - 'Geometry/EcalCommonData/data/ebrot.xml', - 'Geometry/HcalCommonData/data/hcalrotations.xml', - 'Geometry/HcalCommonData/data/hcal/v2/hcalalgo.xml', - 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', - 'Geometry/HcalCommonData/data/hcalcablealgo/v2/hcalcablealgo.xml', - 'Geometry/HcalCommonData/data/hcalouteralgo.xml', - 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', - 'Geometry/HcalCommonData/data/hcalSimNumbering/NoHE/hcalSimNumbering.xml', - 'Geometry/HcalCommonData/data/hcalRecNumbering/NoHE/hcalRecNumbering.xml', - 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', - 'Geometry/HGCalCommonData/data/hgcalMaterial/v1/hgcalMaterial.xml', - 'Geometry/HGCalCommonData/data/hgcal/v12/hgcal.xml', - 'Geometry/HGCalCommonData/data/hgcalcell/v9/hgcalcell.xml', - 'Geometry/HGCalCommonData/data/hgcalwafer/v9/hgcalwafer.xml', - 'Geometry/HGCalCommonData/data/hgcalEE/v12/hgcalEE.xml', - 'Geometry/HGCalCommonData/data/hgcalHEsil/v12/hgcalHEsil.xml', - 'Geometry/HGCalCommonData/data/hgcalHEmix/v12/hgcalHEmix.xml', - 'Geometry/HGCalCommonData/data/hgcalCons/v12/hgcalCons.xml', - 'Geometry/MuonCommonData/data/mbCommon/2021/v1/mbCommon.xml', - 'Geometry/MuonCommonData/data/mb1/2015/v2/mb1.xml', - 'Geometry/MuonCommonData/data/mb2/2015/v2/mb2.xml', - 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', - 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', - 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v1/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v5/mf.xml', - 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', - 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', - 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/TDR_Dev/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v1/mfshield.xml', - 'Geometry/MuonCommonData/data/me0/TDR_Dev/v3/me0.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v2/forwardshield.xml', - 'Geometry/ForwardCommonData/data/brmrotations.xml', - 'Geometry/ForwardCommonData/data/PostLS2/brm.xml', - 'Geometry/ForwardCommonData/data/zdcmaterials.xml', - 'Geometry/ForwardCommonData/data/lumimaterials.xml', - 'Geometry/ForwardCommonData/data/zdcrotations.xml', - 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc.xml', - 'Geometry/ForwardCommonData/data/zdclumi.xml', - 'Geometry/ForwardCommonData/data/cmszdc.xml', - 'Geometry/MTDCommonData/data/mtdMaterial/v2/mtdMaterial.xml', - 'Geometry/MTDCommonData/data/btl/v1/btl.xml', - 'Geometry/MTDCommonData/data/etl/v4/etl.xml', - 'Geometry/MTDCommonData/data/mtdParameters/v2/mtdStructureTopology.xml', - 'Geometry/MTDCommonData/data/mtdParameters/v2/mtdParameters.xml', - )+ - cms.vstring( - 'Geometry/MuonCommonData/data/muonNumbering/TDR_DeV/v1/muonNumbering.xml', - 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml', - 'Geometry/HcalCommonData/data/hcalsens/NoHE/hcalsenspmf.xml', - 'Geometry/HcalSimData/data/hf.xml', - 'Geometry/HcalSimData/data/hfpmt.xml', - 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2/CaloUtil.xml', - 'Geometry/HGCalSimData/data/hgcsensv9.xml', - 'Geometry/MuonSimData/data/PhaseII/ME0EtaPart/muonSens.xml', - 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', - 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', - 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', - 'Geometry/GEMGeometryBuilder/data/v7/GEMSpecsFilter.xml', - 'Geometry/GEMGeometryBuilder/data/v7/GEMSpecs.xml', - 'Geometry/ForwardCommonData/data/brmsens.xml', - 'Geometry/ForwardSimData/data/zdcsens.xml', - 'Geometry/MTDSimData/data/v2/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2021/v1/HcalProdCuts.xml', - 'Geometry/EcalSimData/data/EcalProdCuts.xml', - 'Geometry/HGCalSimData/data/hgcProdCutsv9.xml', - 'Geometry/MuonSimData/data/PhaseII/muonProdCuts.xml', - 'Geometry/ForwardSimData/data/zdcProdCuts.xml', - 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', - 'Geometry/MTDSimData/data/v2/mtdProdCuts.xml', - 'Geometry/CMSCommonData/data/FieldParameters.xml', - ), - rootNodeName = cms.string('cms:OCMS') -) diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D75XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D75XML_cfi.py deleted file mode 100644 index 1f08ffced3064..0000000000000 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D75XML_cfi.py +++ /dev/null @@ -1,130 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - -XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", - geomXMLFiles = cms.vstring( - 'Geometry/CMSCommonData/data/materials/2021/v1/materials.xml', - 'Geometry/CMSCommonData/data/rotations.xml', - 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', - 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', - 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', - 'Geometry/CMSCommonData/data/cmsMother.xml', - 'Geometry/CMSCommonData/data/eta3/etaMax.xml', - 'Geometry/CMSCommonData/data/cmsTracker.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v5/caloBase.xml', - 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', - 'Geometry/CMSCommonData/data/cmsMuon.xml', - 'Geometry/CMSCommonData/data/mgnt.xml', - 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', - 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', - 'Geometry/CMSCommonData/data/muonMB.xml', - 'Geometry/CMSCommonData/data/muonMagnet.xml', - 'Geometry/CMSCommonData/data/cavern/2021/v1/cavern.xml', - 'Geometry/CMSCommonData/data/cavernFloor/2017/v1/cavernFloor.xml', - 'Geometry/TrackerCommonData/data/PhaseII/trackerParameters.xml', - 'Geometry/TrackerCommonData/data/pixfwdCommon.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/pixfwd.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/pixbar.xml', - 'Geometry/TrackerCommonData/data/trackermaterial.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker616_2020_04/otst.xml', - 'Geometry/TrackerCommonData/data/PhaseII/OuterTracker800_2020_07/tracker.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker615/pixel.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerbar.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerfwd.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker404/trackerStructureTopology.xml', - 'Geometry/TrackerCommonData/data/PhaseII/TiltedTracker613/pixelStructureTopology.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/trackersens.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/pixelsens.xml', - 'Geometry/TrackerRecoData/data/PhaseII/OuterTracker616_2020_04/trackerRecoMaterial.xml', - 'SimTracker/TrackerMaterialAnalysis/data/trackingMaterialGroups_ForPhaseII.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/trackerProdCuts.xml', - 'Geometry/TrackerSimData/data/PhaseII/TiltedTracker404/pixelProdCuts.xml', - 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', - 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', - 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', - 'Geometry/EcalCommonData/data/ectkcablemat/2026/v1/ectkcablemat.xml', - 'Geometry/EcalCommonData/data/ebalgo.xml', - 'Geometry/EcalCommonData/data/ebcon.xml', - 'Geometry/EcalCommonData/data/ebrot.xml', - 'Geometry/HcalCommonData/data/hcalrotations.xml', - 'Geometry/HcalCommonData/data/hcal/v2/hcalalgo.xml', - 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', - 'Geometry/HcalCommonData/data/hcalcablealgo/v2/hcalcablealgo.xml', - 'Geometry/HcalCommonData/data/hcalouteralgo/v1/hcalouteralgo.xml', - 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', - 'Geometry/HcalCommonData/data/hcalSimNumbering/NoHE/hcalSimNumbering.xml', - 'Geometry/HcalCommonData/data/hcalRecNumbering/NoHE/hcalRecNumbering.xml', - 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', - 'Geometry/HGCalCommonData/data/hgcalMaterial/v1/hgcalMaterial.xml', - 'Geometry/HGCalCommonData/data/hgcal/v14/hgcal.xml', - 'Geometry/HGCalCommonData/data/hgcalcell/v9/hgcalcell.xml', - 'Geometry/HGCalCommonData/data/hgcalwafer/v9/hgcalwafer.xml', - 'Geometry/HGCalCommonData/data/hgcalEE/v14/hgcalEE.xml', - 'Geometry/HGCalCommonData/data/hgcalHEsil/v14/hgcalHEsil.xml', - 'Geometry/HGCalCommonData/data/hgcalHEmix/v14/hgcalHEmix.xml', - 'Geometry/HGCalCommonData/data/hgcalCons/v14/hgcalCons.xml', - 'Geometry/HGCalCommonData/data/hgcalConsData/v13/hgcalConsData.xml', - 'Geometry/MuonCommonData/data/mbCommon/2021/v1/mbCommon.xml', - 'Geometry/MuonCommonData/data/mb1/2015/v2/mb1.xml', - 'Geometry/MuonCommonData/data/mb2/2015/v2/mb2.xml', - 'Geometry/MuonCommonData/data/mb3/2015/v2/mb3.xml', - 'Geometry/MuonCommonData/data/mb4/2015/v2/mb4.xml', - 'Geometry/MuonCommonData/data/mb4Shield/2021/v1/mb4Shield.xml', - 'Geometry/MuonCommonData/data/muonYoke/2026/v1/muonYoke.xml', - 'Geometry/MuonCommonData/data/mf/2026/v6/mf.xml', - 'Geometry/MuonCommonData/data/csc/2021/v2/csc.xml', - 'Geometry/MuonCommonData/data/rpcf/2026/v3/rpcf.xml', - 'Geometry/MuonCommonData/data/gemf/TDR_BaseLine/gemf.xml', - 'Geometry/MuonCommonData/data/gem11/TDR_BaseLine/gem11.xml', - 'Geometry/MuonCommonData/data/gem21/TDR_Dev/gem21.xml', - 'Geometry/MuonCommonData/data/mfshield/2026/v4/mfshield.xml', - 'Geometry/MuonCommonData/data/me0/TDR_Dev/v3/me0.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', - 'Geometry/ForwardCommonData/data/brmrotations.xml', - 'Geometry/ForwardCommonData/data/brm/2026/v1/brm.xml', - 'Geometry/ForwardCommonData/data/zdcmaterials.xml', - 'Geometry/ForwardCommonData/data/lumimaterials.xml', - 'Geometry/ForwardCommonData/data/zdcrotations.xml', - 'Geometry/ForwardCommonData/data/lumirotations.xml', - 'Geometry/ForwardCommonData/data/zdc.xml', - 'Geometry/ForwardCommonData/data/zdclumi.xml', - 'Geometry/ForwardCommonData/data/cmszdc.xml', - 'Geometry/MTDCommonData/data/mtdMaterial/v2/mtdMaterial.xml', - 'Geometry/MTDCommonData/data/btl/v1/btl.xml', - 'Geometry/MTDCommonData/data/etl/v5/etl.xml', - 'Geometry/MTDCommonData/data/mtdParameters/v3/mtdStructureTopology.xml', - 'Geometry/MTDCommonData/data/mtdParameters/v2/mtdParameters.xml', - )+ - cms.vstring( - 'Geometry/MuonCommonData/data/muonNumbering/TDR_DeV/v1/muonNumbering.xml', - 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml', - 'Geometry/HcalCommonData/data/hcalsens/NoHE/hcalsenspmf.xml', - 'Geometry/HcalSimData/data/hf.xml', - 'Geometry/HcalSimData/data/hfpmt.xml', - 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', - 'Geometry/HGCalSimData/data/hgcsensv9.xml', - 'Geometry/MuonSimData/data/PhaseII/ME0EtaPart/muonSens.xml', - 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', - 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', - 'Geometry/CSCGeometryBuilder/data/cscSpecs.xml', - 'Geometry/RPCGeometryBuilder/data/2026/v1/RPCSpecs.xml', - 'Geometry/GEMGeometryBuilder/data/v7/GEMSpecsFilter.xml', - 'Geometry/GEMGeometryBuilder/data/v7/GEMSpecs.xml', - 'Geometry/ForwardCommonData/data/brmsens.xml', - 'Geometry/ForwardSimData/data/zdcsens.xml', - 'Geometry/MTDSimData/data/v2/mtdsens.xml', - 'Geometry/HcalSimData/data/HcalProdCuts/2021/v1/HcalProdCuts.xml', - 'Geometry/EcalSimData/data/EcalProdCuts.xml', - 'Geometry/HGCalSimData/data/hgcProdCutsv9.xml', - 'Geometry/MuonSimData/data/PhaseII/muonProdCuts.xml', - 'Geometry/ForwardSimData/data/zdcProdCuts.xml', - 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', - 'Geometry/MTDSimData/data/v2/mtdProdCuts.xml', - 'Geometry/CMSCommonData/data/FieldParameters.xml', - ), - rootNodeName = cms.string('cms:OCMS') -) diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D80XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D80XML_cfi.py index 3c62f3b439999..079537091a988 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D80XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D80XML_cfi.py @@ -39,7 +39,6 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackersens.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/pixelsens.xml', 'Geometry/TrackerRecoData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/trackerRecoMaterial.xml', - 'SimTracker/TrackerMaterialAnalysis/data/trackingMaterialGroups_ForPhaseII/v1/trackingMaterialGroups_ForPhaseII.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D81XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D81XML_cfi.py index e54f9bf2cb626..f9d33dcd1d272 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D81XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D81XML_cfi.py @@ -39,7 +39,6 @@ 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackersens.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/pixelsens.xml', 'Geometry/TrackerRecoData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/trackerRecoMaterial.xml', - 'SimTracker/TrackerMaterialAnalysis/data/trackingMaterialGroups_ForPhaseII/v1/trackingMaterialGroups_ForPhaseII.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_2021_02/trackerProdCuts.xml', 'Geometry/TrackerSimData/data/PhaseII/Tracker_DD4hep_compatible_IT702_2021_03/pixelProdCuts.xml', 'Geometry/TrackerSimData/data/trackerProdCutsBEAM.xml', diff --git a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D74XML_cfi.py b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D82XML_cfi.py similarity index 88% rename from Geometry/CMSCommonData/python/cmsExtendedGeometry2026D74XML_cfi.py rename to Geometry/CMSCommonData/python/cmsExtendedGeometry2026D82XML_cfi.py index c34ab790dbc1d..dae3745000696 100644 --- a/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D74XML_cfi.py +++ b/Geometry/CMSCommonData/python/cmsExtendedGeometry2026D82XML_cfi.py @@ -67,6 +67,11 @@ 'Geometry/HGCalCommonData/data/hgcalHEmix/v14/hgcalHEmix.xml', 'Geometry/HGCalCommonData/data/hgcalCons/v14/hgcalCons.xml', 'Geometry/HGCalCommonData/data/hgcalConsData/v13/hgcalConsData.xml', + 'Geometry/ForwardCommonData/data/hfnose/v4/hfnose.xml', + 'Geometry/ForwardCommonData/data/hfnoseCell/v1/hfnoseCell.xml', + 'Geometry/ForwardCommonData/data/hfnoseWafer/v1/hfnoseWafer.xml', + 'Geometry/ForwardCommonData/data/hfnoseLayer/v2/hfnoseLayer.xml', + 'Geometry/ForwardCommonData/data/hfnoseCons/v1m/hfnoseCons.xml', 'Geometry/MuonCommonData/data/mbCommon/2021/v1/mbCommon.xml', 'Geometry/MuonCommonData/data/mb1/2015/v2/mb1.xml', 'Geometry/MuonCommonData/data/mb2/2015/v2/mb2.xml', @@ -84,7 +89,7 @@ 'Geometry/MuonCommonData/data/ge0/TDR_Dev/v3/ge0.xml', 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/brmrotations.xml', - 'Geometry/ForwardCommonData/data/brm/2026/v1/brm.xml', + 'Geometry/ForwardCommonData/data/brm/2026/v3/brm.xml', 'Geometry/ForwardCommonData/data/zdcmaterials.xml', 'Geometry/ForwardCommonData/data/lumimaterials.xml', 'Geometry/ForwardCommonData/data/zdcrotations.xml', @@ -92,11 +97,11 @@ 'Geometry/ForwardCommonData/data/zdc.xml', 'Geometry/ForwardCommonData/data/zdclumi.xml', 'Geometry/ForwardCommonData/data/cmszdc.xml', - 'Geometry/MTDCommonData/data/mtdMaterial/v1/mtdMaterial.xml', + 'Geometry/MTDCommonData/data/mtdMaterial/v2/mtdMaterial.xml', 'Geometry/MTDCommonData/data/btl/v1/btl.xml', - 'Geometry/MTDCommonData/data/etl/v3/etl.xml', - 'Geometry/MTDCommonData/data/mtdParameters/v1/mtdStructureTopology.xml', - 'Geometry/MTDCommonData/data/mtdParameters/v1/mtdParameters.xml', + 'Geometry/MTDCommonData/data/etl/v5/etl.xml', + 'Geometry/MTDCommonData/data/mtdParameters/v3/mtdStructureTopology.xml', + 'Geometry/MTDCommonData/data/mtdParameters/v2/mtdParameters.xml', )+ cms.vstring( 'Geometry/MuonCommonData/data/muonNumbering/TDR_DeV/v3/muonNumbering.xml', @@ -105,8 +110,9 @@ 'Geometry/HcalSimData/data/hf.xml', 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', - 'Geometry/HcalSimData/data/CaloUtil/2026/v2c/CaloUtil.xml', + 'Geometry/HcalSimData/data/CaloUtil/2026/v5c/CaloUtil.xml', 'Geometry/HGCalSimData/data/hgcsensv9.xml', + 'Geometry/ForwardSimData/data/hfnosesens.xml', 'Geometry/MuonSimData/data/PhaseII/v2/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', @@ -116,14 +122,15 @@ 'Geometry/GEMGeometryBuilder/data/v12/GEMSpecs.xml', 'Geometry/ForwardCommonData/data/brmsens.xml', 'Geometry/ForwardSimData/data/zdcsens.xml', - 'Geometry/MTDSimData/data/v1/mtdsens.xml', + 'Geometry/MTDSimData/data/v2/mtdsens.xml', 'Geometry/HcalSimData/data/HcalProdCuts/2021/v1/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', 'Geometry/HGCalSimData/data/hgcProdCutsv9.xml', + 'Geometry/ForwardSimData/data/hfnoseProdCuts.xml', 'Geometry/MuonSimData/data/PhaseII/muonProdCuts.xml', 'Geometry/ForwardSimData/data/zdcProdCuts.xml', 'Geometry/ForwardSimData/data/ForwardShieldProdCuts.xml', - 'Geometry/MTDSimData/data/v1/mtdProdCuts.xml', + 'Geometry/MTDSimData/data/v2/mtdProdCuts.xml', 'Geometry/CMSCommonData/data/FieldParameters.xml', ), rootNodeName = cms.string('cms:OCMS') diff --git a/Geometry/CaloTopology/interface/HGCalTopology.h b/Geometry/CaloTopology/interface/HGCalTopology.h index 3f5b613609d8f..708c408b9c2be 100644 --- a/Geometry/CaloTopology/interface/HGCalTopology.h +++ b/Geometry/CaloTopology/interface/HGCalTopology.h @@ -122,14 +122,15 @@ class HGCalTopology : public CaloSubdetectorTopology { } bool tileTrapezoid() const { - return ((mode_ == HGCalGeometryMode::Trapezoid) || (mode_ == HGCalGeometryMode::TrapezoidFile)); + return ((mode_ == HGCalGeometryMode::Trapezoid) || (mode_ == HGCalGeometryMode::TrapezoidFile) || + (mode_ == HGCalGeometryMode::TrapezoidModule)); } bool waferHexagon6() const { return ((mode_ == HGCalGeometryMode::Hexagon) || (mode_ == HGCalGeometryMode::HexagonFull)); } bool waferHexagon8() const { return ((mode_ == HGCalGeometryMode::Hexagon8) || (mode_ == HGCalGeometryMode::Hexagon8Full) || - (mode_ == HGCalGeometryMode::Hexagon8File)); + (mode_ == HGCalGeometryMode::Hexagon8File) || (mode_ == HGCalGeometryMode::Hexagon8Module)); } private: diff --git a/Geometry/CaloTopology/src/HcalTopology.cc b/Geometry/CaloTopology/src/HcalTopology.cc index 6fd4317d08524..0f5cc39e845e0 100644 --- a/Geometry/CaloTopology/src/HcalTopology.cc +++ b/Geometry/CaloTopology/src/HcalTopology.cc @@ -245,7 +245,8 @@ bool HcalTopology::validHT(const HcalTrigTowerDetId& id) const { if (id.ietaAbs() > lastHBRing_ && id.ietaAbs() < firstHFRing_) return false; } - if (id.version() == 0) { + // Version 2 TPs should be for HBHE when using 1TS filter scheme + if (id.version() == 0 or id.version() == 2) { if (id.ietaAbs() > 28) { if (triggerMode_ >= HcalTopologyMode::TriggerMode_2017) return false; @@ -265,8 +266,8 @@ bool HcalTopology::validHT(const HcalTrigTowerDetId& id) const { return false; if (id.ietaAbs() > 39 && ((id.iphi() % 4) != 3)) return false; - } else if (id.version() > 1) { - // only versions 0 and 1 are supported + } else if (id.version() > 2) { + // only versions 0, 1, and 2 are supported return false; } diff --git a/Geometry/DTGeometryBuilder/plugins/dd4hep/DTGeometryESProducer.cc b/Geometry/DTGeometryBuilder/plugins/dd4hep/DTGeometryESProducer.cc index d169d80abbb33..33c44b0454bd8 100644 --- a/Geometry/DTGeometryBuilder/plugins/dd4hep/DTGeometryESProducer.cc +++ b/Geometry/DTGeometryBuilder/plugins/dd4hep/DTGeometryESProducer.cc @@ -136,24 +136,18 @@ std::shared_ptr DTGeometryESProducer::produce(const MuonGeometryReco } if (m_applyAlignment) { - edm::ESHandle globalPosition; - record.getRecord().get(m_alignmentsLabel, globalPosition); - edm::ESHandle alignments; - record.getRecord().get(m_alignmentsLabel, alignments); - edm::ESHandle alignmentErrors; - record.getRecord().get(m_alignmentsLabel, alignmentErrors); - - if (alignments->empty() && alignmentErrors->empty() && globalPosition->empty()) { + const auto& globalPosition = record.get(m_globalPositionToken); + const auto& alignments = record.get(m_alignmentsToken); + const auto& alignmentErrors = record.get(m_alignmentErrorsToken); + + if (alignments.empty() && alignmentErrors.empty() && globalPosition.empty()) { edm::LogInfo("Config") << "@SUB=DTGeometryRecord::produce" - << "Alignment(Error)s and global position (label '" << m_alignmentsLabel - << "') empty: Geometry producer (label " - << "'" << m_myLabel << "') assumes fake and does not apply."; + << "Alignment and global position errors"; + } else { GeometryAligner aligner; - aligner.applyAlignments(&(*host), - &(*alignments), - &(*alignmentErrors), - align::DetectorGlobalPosition(*globalPosition, DetId(DetId::Muon))); + aligner.applyAlignments( + &(*host), &alignments, &alignmentErrors, align::DetectorGlobalPosition(globalPosition, DetId(DetId::Muon))); } } diff --git a/Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml b/Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml new file mode 100644 index 0000000000000..11e52a1e1b415 --- /dev/null +++ b/Geometry/EcalCommonData/data/ebcon/2021/v1/ebcon.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/EcalCommonData/src/EcalBarrelNumberingScheme.cc b/Geometry/EcalCommonData/src/EcalBarrelNumberingScheme.cc index 1ad4b4d32e394..19d72569e3d6c 100644 --- a/Geometry/EcalCommonData/src/EcalBarrelNumberingScheme.cc +++ b/Geometry/EcalCommonData/src/EcalBarrelNumberingScheme.cc @@ -4,6 +4,7 @@ /////////////////////////////////////////////////////////////////////////////// #include "Geometry/EcalCommonData/interface/EcalBarrelNumberingScheme.h" #include "DataFormats/EcalDetId/interface/EBDetId.h" +#include //#define EDM_ML_DEBUG @@ -19,9 +20,12 @@ uint32_t EcalBarrelNumberingScheme::getUnitID(const EcalBaseNumber& baseNumber) const uint32_t nLevels(baseNumber.getLevels()); #ifdef EDM_ML_DEBUG - edm::LogVerbatim("EcalGeom") << "ECalBarrelNumberingScheme geometry levels = " << nLevels; + std::ostringstream st1; + for (uint32_t k = 0; k < nLevels; ++k) + st1 << ", " << baseNumber.getLevelName(k) << ":" << baseNumber.getCopyNumber(k); + edm::LogVerbatim("EcalGeom") << "ECalBarrelNumberingScheme geometry levels = " << nLevels << st1.str(); #endif - if (12 > nLevels) { + if (11 > nLevels) { edm::LogWarning("EcalGeom") << "ECalBarrelNumberingScheme::getUnitID(): " << "Not enough levels found in EcalBaseNumber ( " << nLevels << ") Returning 0"; return 0; @@ -31,25 +35,20 @@ uint32_t EcalBarrelNumberingScheme::getUnitID(const EcalBaseNumber& baseNumber) const int cryType(::atoi(cryName.c_str() + 5)); + uint32_t wallCopy(0), hawCopy(0), fawCopy(0), supmCopy(0); const int off(13 < nLevels ? 3 : 0); - const uint32_t wallCopy(baseNumber.getCopyNumber(3 + off)); - const uint32_t hawCopy(baseNumber.getCopyNumber(4 + off)); - const uint32_t fawCopy(baseNumber.getCopyNumber(5 + off)); - const uint32_t supmCopy(baseNumber.getCopyNumber(6 + off)); + if (nLevels != 11) { + wallCopy = baseNumber.getCopyNumber(3 + off); + hawCopy = baseNumber.getCopyNumber(4 + off); + fawCopy = baseNumber.getCopyNumber(5 + off); + supmCopy = baseNumber.getCopyNumber(6 + off); + } else { + wallCopy = baseNumber.getCopyNumber(3); + } #ifdef EDM_ML_DEBUG - edm::LogVerbatim("EcalGeom") << nLevels << ", " << off << ", " << cryType << ", " << baseNumber.getLevelName(0) << ":" - << baseNumber.getCopyNumber(0) << ", " << baseNumber.getLevelName(1) << ":" - << baseNumber.getCopyNumber(1) << ", " << baseNumber.getLevelName(2) << ":" - << baseNumber.getCopyNumber(2) << ", " << baseNumber.getLevelName(3) << ":" - << baseNumber.getCopyNumber(3) << ", " << baseNumber.getLevelName(4) << ":" - << baseNumber.getCopyNumber(4) << ", " << baseNumber.getLevelName(5) << ":" - << baseNumber.getCopyNumber(5) << ", " << baseNumber.getLevelName(6) << ":" - << baseNumber.getCopyNumber(6) << ", " << baseNumber.getLevelName(7) << ":" - << baseNumber.getCopyNumber(7) << ", " << baseNumber.getLevelName(8) << ":" - << baseNumber.getCopyNumber(8) << ", " << baseNumber.getLevelName(9) << ":" - << baseNumber.getCopyNumber(9) << ", " << baseNumber.getLevelName(10) << ":" - << baseNumber.getCopyNumber(10); + edm::LogVerbatim("EcalGeom") << nLevels << " off: " << off << " cryType: " << cryType << " wallCopy: " << wallCopy + << " hawCopy: " << hawCopy << " fawCopy: " << fawCopy << " supmCopy: " << supmCopy; #endif // error checking diff --git a/Geometry/ForwardCommonData/data/brm/2026/v3/brm.xml b/Geometry/ForwardCommonData/data/brm/2026/v3/brm.xml new file mode 100644 index 0000000000000..5128aede4e667 --- /dev/null +++ b/Geometry/ForwardCommonData/data/brm/2026/v3/brm.xml @@ -0,0 +1,303 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/ForwardCommonData/data/hfnose/v0/hfnose.xml b/Geometry/ForwardCommonData/data/hfnose/v0/hfnose.xml index d45d232d1dfc3..0285dd95511c8 100644 --- a/Geometry/ForwardCommonData/data/hfnose/v0/hfnose.xml +++ b/Geometry/ForwardCommonData/data/hfnose/v0/hfnose.xml @@ -111,6 +111,7 @@ 0, 0, 0, 0, 0, 0, 0, 0 + diff --git a/Geometry/ForwardCommonData/data/hfnose/v1/hfnose.xml b/Geometry/ForwardCommonData/data/hfnose/v1/hfnose.xml index 379d44ea0c3e0..869773934d4f2 100644 --- a/Geometry/ForwardCommonData/data/hfnose/v1/hfnose.xml +++ b/Geometry/ForwardCommonData/data/hfnose/v1/hfnose.xml @@ -178,6 +178,7 @@ 0, 0, 0, 0, 0, 0, 0, 0 + diff --git a/Geometry/ForwardCommonData/data/hfnose/v2/hfnose.xml b/Geometry/ForwardCommonData/data/hfnose/v2/hfnose.xml index 83a89494f1782..7811da3033853 100644 --- a/Geometry/ForwardCommonData/data/hfnose/v2/hfnose.xml +++ b/Geometry/ForwardCommonData/data/hfnose/v2/hfnose.xml @@ -178,6 +178,7 @@ 0, 0, 0, 0, 0, 0, 0, 0 + diff --git a/Geometry/ForwardCommonData/python/hfnoseAloneXML_cfi.py b/Geometry/ForwardCommonData/python/hfnoseAloneXML_cfi.py index c14fa6f9a9a83..89a8714e3d9be 100644 --- a/Geometry/ForwardCommonData/python/hfnoseAloneXML_cfi.py +++ b/Geometry/ForwardCommonData/python/hfnoseAloneXML_cfi.py @@ -5,14 +5,16 @@ 'Geometry/CMSCommonData/data/materials.xml', 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', - 'Geometry/CMSCommonData/data/cms/2026/v1/cms.xml', 'Geometry/CMSCommonData/data/cavernData/2017/v1/cavernData.xml', + 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v1/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2026/v5/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/ForwardCommonData/data/hfnose/v0/hfnose.xml', + 'Geometry/HGCalCommonData/data/hgcalMaterial/v1/hgcalMaterial.xml', + 'Geometry/ForwardCommonData/data/hfnose/v4/hfnose.xml', + 'Geometry/ForwardCommonData/data/hfnoseCell/v1/hfnoseCell.xml', 'Geometry/ForwardCommonData/data/hfnoseWafer/v1/hfnoseWafer.xml', - 'Geometry/ForwardCommonData/data/hfnoseCell/v1/hfnoseCell.xml'), + 'Geometry/ForwardCommonData/data/hfnoseLayer/v2/hfnoseLayer.xml'), rootNodeName = cms.string('cms:OCMS') ) diff --git a/Geometry/ForwardCommonData/python/hfnoseParametersInitialization_cfi.py b/Geometry/ForwardCommonData/python/hfnoseParametersInitialization_cfi.py index 40d59a31facf7..c589884e80b74 100644 --- a/Geometry/ForwardCommonData/python/hfnoseParametersInitialization_cfi.py +++ b/Geometry/ForwardCommonData/python/hfnoseParametersInitialization_cfi.py @@ -9,6 +9,7 @@ nameW = cms.string("HFNoseWafer"), nameC = cms.string("HFNoseCell"), nameT = cms.string("HFNose"), + nameX = cms.string("HGCalHFNoseSensitive"), ) from Configuration.ProcessModifiers.dd4hep_cff import dd4hep diff --git a/Geometry/ForwardCommonData/python/hfnoseWaferXML_cfi.py b/Geometry/ForwardCommonData/python/hfnoseWaferXML_cfi.py index 3ad562475e4c3..010b9fe1e15b3 100644 --- a/Geometry/ForwardCommonData/python/hfnoseWaferXML_cfi.py +++ b/Geometry/ForwardCommonData/python/hfnoseWaferXML_cfi.py @@ -5,7 +5,7 @@ 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/HGCalCommonData/test/cms.xml', 'Geometry/ForwardCommonData/data/hfnoseWafer/v1/hfnose.xml', - 'Geometry/ForwardCommonData/data/hfnoseWafer/v1/hfnoseWafer.xml', - 'Geometry/ForwardCommonData/data/hfnoseCell/v1/hfnoseCell.xml'), + 'Geometry/ForwardCommonData/data/hfnoseCell/v1/hfnoseCell.xml', + 'Geometry/ForwardCommonData/data/hfnoseWafer/v1/hfnoseWafer.xml'), rootNodeName = cms.string('cms:OCMS') ) diff --git a/Geometry/ForwardCommonData/python/hfnoseXML_cfi.py b/Geometry/ForwardCommonData/python/hfnoseXML_cfi.py index 2114a5440b5f8..94af688fb8265 100644 --- a/Geometry/ForwardCommonData/python/hfnoseXML_cfi.py +++ b/Geometry/ForwardCommonData/python/hfnoseXML_cfi.py @@ -5,13 +5,14 @@ 'Geometry/CMSCommonData/data/materials.xml', 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', - 'Geometry/CMSCommonData/data/cms/2026/v1/cms.xml', 'Geometry/CMSCommonData/data/cavernData/2017/v1/cavernData.xml', + 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', 'Geometry/CMSCommonData/data/eta3/etaMax.xml', 'Geometry/CMSCommonData/data/cmsMother.xml', - 'Geometry/CMSCommonData/data/caloBase/2026/v1/caloBase.xml', + 'Geometry/CMSCommonData/data/caloBase/2026/v5/caloBase.xml', 'Geometry/CMSCommonData/data/cmsCalo.xml', - 'Geometry/ForwardCommonData/data/forwardshield/2026/v1/forwardshield.xml', + 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/hfnose/v1/hfnose.xml', 'Geometry/ForwardCommonData/data/hfnoseWafer/v1/hfnoseWafer.xml', 'Geometry/ForwardCommonData/data/hfnoseCell/v1/hfnoseCell.xml', diff --git a/Geometry/ForwardCommonData/python/testHFNoseXML_cfi.py b/Geometry/ForwardCommonData/python/testHFNoseXML_cfi.py index e7e044c096c0a..11f6c2589caf0 100644 --- a/Geometry/ForwardCommonData/python/testHFNoseXML_cfi.py +++ b/Geometry/ForwardCommonData/python/testHFNoseXML_cfi.py @@ -1,8 +1,5 @@ import FWCore.ParameterSet.Config as cms -# This config was generated automatically using generate2026Geometry.py -# If you notice a mistake, please update the generating script, not just this config - XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", geomXMLFiles = cms.vstring( 'Geometry/CMSCommonData/data/materials.xml', diff --git a/Geometry/ForwardCommonData/test/dumpHFNoseCell_cfg.py b/Geometry/ForwardCommonData/test/dumpHFNoseCell_cfg.py new file mode 100644 index 0000000000000..a88dd67f457a5 --- /dev/null +++ b/Geometry/ForwardCommonData/test/dumpHFNoseCell_cfg.py @@ -0,0 +1,26 @@ +import FWCore.ParameterSet.Config as cms + +process = cms.Process("DUMP") +process.load("Geometry.ForwardCommonData.hfnoseCellXML_cfi") +process.load('FWCore.MessageService.MessageLogger_cfi') + +if 'MessageLogger' in process.__dict__: + process.MessageLogger.G4cerr=dict() + process.MessageLogger.G4cout=dict() + process.MessageLogger.HGCalGeom=dict() + +process.source = cms.Source("EmptySource") + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(1) +) + +process.add_(cms.ESProducer("TGeoMgrFromDdd", + verbose = cms.untracked.bool(False), + level = cms.untracked.int32(14) +)) + +process.dump = cms.EDAnalyzer("DumpSimGeometry", + outputFileName = cms.untracked.string('hfnoseCell.root')) + +process.p = cms.Path(process.dump) diff --git a/Geometry/ForwardCommonData/test/dumpHFNoseWafer_cfg.py b/Geometry/ForwardCommonData/test/dumpHFNoseWafer_cfg.py new file mode 100644 index 0000000000000..56816b2947c73 --- /dev/null +++ b/Geometry/ForwardCommonData/test/dumpHFNoseWafer_cfg.py @@ -0,0 +1,26 @@ +import FWCore.ParameterSet.Config as cms + +process = cms.Process("DUMP") +process.load("Geometry.ForwardCommonData.hfnoseWaferXML_cfi") +process.load('FWCore.MessageService.MessageLogger_cfi') + +if 'MessageLogger' in process.__dict__: + process.MessageLogger.G4cerr=dict() + process.MessageLogger.G4cout=dict() + process.MessageLogger.HGCalGeom=dict() + +process.source = cms.Source("EmptySource") + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(1) +) + +process.add_(cms.ESProducer("TGeoMgrFromDdd", + verbose = cms.untracked.bool(False), + level = cms.untracked.int32(14) +)) + +process.dump = cms.EDAnalyzer("DumpSimGeometry", + outputFileName = cms.untracked.string('hfnoseWafer.root')) + +process.p = cms.Path(process.dump) diff --git a/Geometry/ForwardCommonData/test/testHFNoseParameters_cfg.py b/Geometry/ForwardCommonData/test/testHFNoseParameters_cfg.py index fa22239cef670..2f688fbdc83fd 100644 --- a/Geometry/ForwardCommonData/test/testHFNoseParameters_cfg.py +++ b/Geometry/ForwardCommonData/test/testHFNoseParameters_cfg.py @@ -34,8 +34,8 @@ ) process.testNose = cms.EDAnalyzer("HGCalParameterTester", - Name = cms.untracked.string("HGCalHFNoseSensitive"), - Mode = cms.untracked.int32(1) + Name = cms.string("HGCalHFNoseSensitive"), + Mode = cms.int32(1) ) process.p1 = cms.Path(process.generator*process.testNose) diff --git a/Geometry/HGCalCommonData/data/dd4hep/cms-test-ddhgcalWafer8-algorithm.xml b/Geometry/HGCalCommonData/data/dd4hep/cms-test-ddhgcalWafer8-algorithm.xml new file mode 100644 index 0000000000000..a2b99a7472e44 --- /dev/null +++ b/Geometry/HGCalCommonData/data/dd4hep/cms-test-ddhgcalWafer8-algorithm.xml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HGCalCommonData/data/dd4hep/testHGCalV15.xml b/Geometry/HGCalCommonData/data/dd4hep/testHGCalV15.xml new file mode 100644 index 0000000000000..c19b4e431a436 --- /dev/null +++ b/Geometry/HGCalCommonData/data/dd4hep/testHGCalV15.xml @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HGCalCommonData/data/hgcal/v11/hgcal.xml b/Geometry/HGCalCommonData/data/hgcal/v11/hgcal.xml index f33d5e6791e17..55ce69779d7ad 100644 --- a/Geometry/HGCalCommonData/data/hgcal/v11/hgcal.xml +++ b/Geometry/HGCalCommonData/data/hgcal/v11/hgcal.xml @@ -1,5 +1,5 @@ - + @@ -171,10 +171,10 @@ - + - + diff --git a/Geometry/HGCalCommonData/data/hgcal/v11m20/hgcal.xml b/Geometry/HGCalCommonData/data/hgcal/v11m20/hgcal.xml index 80acf2b194bd6..a651b2321fa0b 100644 --- a/Geometry/HGCalCommonData/data/hgcal/v11m20/hgcal.xml +++ b/Geometry/HGCalCommonData/data/hgcal/v11m20/hgcal.xml @@ -1,5 +1,5 @@ - + @@ -171,10 +171,10 @@ - + - + diff --git a/Geometry/HGCalCommonData/data/hgcal/v11p20/hgcal.xml b/Geometry/HGCalCommonData/data/hgcal/v11p20/hgcal.xml index 88effe79e4348..0bd42bb8e97f7 100644 --- a/Geometry/HGCalCommonData/data/hgcal/v11p20/hgcal.xml +++ b/Geometry/HGCalCommonData/data/hgcal/v11p20/hgcal.xml @@ -1,5 +1,5 @@ - + @@ -171,10 +171,10 @@ - + - + diff --git a/Geometry/HGCalCommonData/data/hgcal/v12/hgcal.xml b/Geometry/HGCalCommonData/data/hgcal/v12/hgcal.xml index 5836596562be9..d0c99f67fc772 100644 --- a/Geometry/HGCalCommonData/data/hgcal/v12/hgcal.xml +++ b/Geometry/HGCalCommonData/data/hgcal/v12/hgcal.xml @@ -1,5 +1,5 @@ - + @@ -177,10 +177,10 @@ - + - + diff --git a/Geometry/HGCalCommonData/data/hgcal/v13/hgcal.xml b/Geometry/HGCalCommonData/data/hgcal/v13/hgcal.xml index 4fa27227588fd..0ae42dde2a74a 100644 --- a/Geometry/HGCalCommonData/data/hgcal/v13/hgcal.xml +++ b/Geometry/HGCalCommonData/data/hgcal/v13/hgcal.xml @@ -1,5 +1,5 @@ - + @@ -173,10 +173,10 @@ - + - + diff --git a/Geometry/HGCalCommonData/data/hgcal/v14/hgcal.xml b/Geometry/HGCalCommonData/data/hgcal/v14/hgcal.xml index dd4ee83e97d1c..4e5e50302b334 100644 --- a/Geometry/HGCalCommonData/data/hgcal/v14/hgcal.xml +++ b/Geometry/HGCalCommonData/data/hgcal/v14/hgcal.xml @@ -1,5 +1,5 @@ - + @@ -109,7 +109,7 @@ - + diff --git a/Geometry/HGCalCommonData/data/hgcal/v15/hgcal.xml b/Geometry/HGCalCommonData/data/hgcal/v15/hgcal.xml index 7a48a55cbc1bd..7acd3d00380c3 100644 --- a/Geometry/HGCalCommonData/data/hgcal/v15/hgcal.xml +++ b/Geometry/HGCalCommonData/data/hgcal/v15/hgcal.xml @@ -112,7 +112,7 @@ - + diff --git a/Geometry/HGCalCommonData/data/hgcalCons/v15/hgcalCons.xml b/Geometry/HGCalCommonData/data/hgcalCons/v15/hgcalCons.xml new file mode 100644 index 0000000000000..0e56ff2d3a864 --- /dev/null +++ b/Geometry/HGCalCommonData/data/hgcalCons/v15/hgcalCons.xml @@ -0,0 +1,199 @@ + + + + + + + [hgcal:radMixL0], [hgcal:radMixL1], [hgcal:radMixL2], [hgcal:radMixL3], + [hgcal:radMixL4], [hgcal:radMixL5], [hgcal:radMixL6], [hgcal:radMixL7], + [hgcal:radMixL8], [hgcal:radMixL9], [hgcal:radMixL10],[hgcal:radMixL11], + [hgcal:radMixL12],[hgcal:radMixL13] + + + [hgcal:zHGCalEE1], [hgcal:zHGCalHEsil1], [hgcal:zHGCalHEmix1], + [hgcal:zHGCalHEmix6] + + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 2, 1, 2, 1, 2, 1, 2, + 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HGCalCommonData/data/hgcalEE/v15/hgcalEE.xml b/Geometry/HGCalCommonData/data/hgcalEE/v15/hgcalEE.xml index b19aa3ca70748..a3b2263380a36 100644 --- a/Geometry/HGCalCommonData/data/hgcalEE/v15/hgcalEE.xml +++ b/Geometry/HGCalCommonData/data/hgcalEE/v15/hgcalEE.xml @@ -154,7 +154,7 @@ HGCalEEHardPointGap, HGCalEEAbsorberCopper, HGCalEEAbsorberStainlessSteel, HGCalEEAbsorberEpoxy1, HGCalEEAbsorberLead1, HGCalEEAbsorberEpoxy2, HGCalEEAbsorberLead2, HGCalEECoolingPlate, HGCalEECopperCover, - HGCalEEModuleF, HGCalEEModuleB + HGCalEELayerF, HGCalEELayerB 0.1*mm, 0.1*mm, 0.3*mm, 0.075*mm, 4.25*mm, 0.0875*mm, 2.125*mm, 6.1*mm, 1.0*mm, [hgcal:ModuleThicknessEE], [hgcal:ModuleThicknessEE] diff --git a/Geometry/HGCalCommonData/data/hgcalHEmix/v15/hgcalHEmix.xml b/Geometry/HGCalCommonData/data/hgcalHEmix/v15/hgcalHEmix.xml index fba46e1ac708e..7a37296e120da 100644 --- a/Geometry/HGCalCommonData/data/hgcalHEmix/v15/hgcalHEmix.xml +++ b/Geometry/HGCalCommonData/data/hgcalHEmix/v15/hgcalHEmix.xml @@ -104,7 +104,7 @@ materials:Copper, materials:Air, materials:Copper HGCalHEAbsorber1, HGCalHEAbsorber2, HGCalHEAirGap1, HGCalHECopperCover, - HGCalHEMix, HGCalHECoolingPlate + HGCalHESiliconLayer, HGCalHECoolingPlate 35.0*mm, 66.0*mm, 3.7*mm, 1.1*mm, 8.6*mm, 6.1*mm diff --git a/Geometry/HGCalCommonData/data/hgcalHEsil/v15/hgcalHEsil.xml b/Geometry/HGCalCommonData/data/hgcalHEsil/v15/hgcalHEsil.xml index 7719bd48913c8..e6bf2e6322817 100644 --- a/Geometry/HGCalCommonData/data/hgcalHEsil/v15/hgcalHEsil.xml +++ b/Geometry/HGCalCommonData/data/hgcalHEsil/v15/hgcalHEsil.xml @@ -87,7 +87,7 @@ materials:Copper, materials:Copper, materials:Air HGCalHEAbsorber1, HGCalHEAbsorber2, HGCalHEAirGap1, HGCalHECopperCover, - HGCalHECoolingPlate, HGCalHESiliconModule + HGCalHECoolingPlate, HGCalHESiliconLayer 40.0*mm, 35.0*mm, 3.7*mm, 1.1*mm, 6.1*mm, 8.6*mm diff --git a/Geometry/HGCalCommonData/data/hgcalcell/v15/hgcalcell.xml b/Geometry/HGCalCommonData/data/hgcalcell/v15/hgcalcell.xml index 397d2e844cd1d..0a38adcf89a0d 100644 --- a/Geometry/HGCalCommonData/data/hgcalcell/v15/hgcalcell.xml +++ b/Geometry/HGCalCommonData/data/hgcalcell/v15/hgcalcell.xml @@ -207,27 +207,27 @@ - + HGCalHECellTrunc01Fine, HGCalHECellTrunc02Fine, HGCalHECellTrunc03Fine - HGCalHESensitiveTrunc01Fine, HGCalHESensitiveTrunc02Fine, - HGCalHESensitiveTrunc03Fine + HGCalHESiliconSensitiveTrunc01Fine, HGCalHESiliconSensitiveTrunc02Fine, + HGCalHESiliconSensitiveTrunc03Fine HGCalHECellExten01Fine, HGCalHECellExten02Fine, HGCalHECellExten03Fine - HGCalHESensitiveExten01Fine, HGCalHESensitiveExten02Fine, - HGCalHESensitiveExten03Fine + HGCalHESiliconSensitiveExten01Fine, HGCalHESiliconSensitiveExten02Fine, + HGCalHESiliconSensitiveExten03Fine HGCalHECellCorner01Fine, HGCalHECellCorner02Fine, HGCalHECellCorner03Fine, HGCalHECellCorner04Fine, HGCalHECellCorner05Fine, HGCalHECellCorner06Fine - HGCalHESensitiveCorner01Fine, HGCalHESensitiveCorner02Fine, - HGCalHESensitiveCorner03Fine, HGCalHESensitiveCorner04Fine, - HGCalHESensitiveCorner05Fine, HGCalHESensitiveCorner06Fine + HGCalHESiliconSensitiveCorner01Fine, HGCalHESiliconSensitiveCorner02Fine, + HGCalHESiliconSensitiveCorner03Fine, HGCalHESiliconSensitiveCorner04Fine, + HGCalHESiliconSensitiveCorner05Fine, HGCalHESiliconSensitiveCorner06Fine @@ -238,27 +238,27 @@ - + HGCalHECellTrunc01Coarse1, HGCalHECellTrunc02Coarse1, HGCalHECellTrunc03Coarse1 - HGCalHESensitiveTrunc01Coarse1, HGCalHESensitiveTrunc02Coarse1, - HGCalHESensitiveTrunc03Coarse1 + HGCalHESiliconSensitiveTrunc01Coarse1, HGCalHESiliconSensitiveTrunc02Coarse1, + HGCalHESiliconSensitiveTrunc03Coarse1 HGCalHECellExten01Coarse1, HGCalHECellExten02Coarse1, HGCalHECellExten03Coarse1 - HGCalHESensitiveExten01Coarse1, HGCalHESensitiveExten02Coarse1, - HGCalHESensitiveExten03Coarse1 + HGCalHESiliconSensitiveExten01Coarse1, HGCalHESiliconSensitiveExten02Coarse1, + HGCalHESiliconSensitiveExten03Coarse1 HGCalHECellCorner01Coarse1, HGCalHECellCorner02Coarse1, HGCalHECellCorner03Coarse1, HGCalHECellCorner04Coarse1, HGCalHECellCorner05Coarse1, HGCalHECellCorner06Coarse1 - HGCalHESensitiveCorner01Coarse1, HGCalHESensitiveCorner02Coarse1, - HGCalHESensitiveCorner03Coarse1, HGCalHESensitiveCorner04Coarse1, - HGCalHESensitiveCorner05Coarse1, HGCalHESensitiveCorner06Coarse1 + HGCalHESiliconSensitiveCorner01Coarse1, HGCalHESiliconSensitiveCorner02Coarse1, + HGCalHESiliconSensitiveCorner03Coarse1, HGCalHESiliconSensitiveCorner04Coarse1, + HGCalHESiliconSensitiveCorner05Coarse1, HGCalHESiliconSensitiveCorner06Coarse1 @@ -269,27 +269,27 @@ - + HGCalHECellTrunc01Coarse2, HGCalHECellTrunc02Coarse2, HGCalHECellTrunc03Coarse2 - HGCalHESensitiveTrunc01Coarse2, HGCalHESensitiveTrunc02Coarse2, - HGCalHESensitiveTrunc03Coarse2 + HGCalHESiliconSensitiveTrunc01Coarse2, HGCalHESiliconSensitiveTrunc02Coarse2, + HGCalHESiliconSensitiveTrunc03Coarse2 HGCalHECellExten01Coarse2, HGCalHECellExten02Coarse2, HGCalHECellExten03Coarse2 - HGCalHESensitiveExten01Coarse2, HGCalHESensitiveExten02Coarse2, - HGCalHESensitiveExten03Coarse2 + HGCalHESiliconSensitiveExten01Coarse2, HGCalHESiliconSensitiveExten02Coarse2, + HGCalHESiliconSensitiveExten03Coarse2 HGCalHECellCorner01Coarse2, HGCalHECellCorner02Coarse2, HGCalHECellCorner03Coarse2, HGCalHECellCorner04Coarse2, HGCalHECellCorner05Coarse2, HGCalHECellCorner06Coarse2 - HGCalHESensitiveCorner01Coarse2, HGCalHESensitiveCorner02Coarse2, - HGCalHESensitiveCorner03Coarse2, HGCalHESensitiveCorner04Coarse2, - HGCalHESensitiveCorner05Coarse2, HGCalHESensitiveCorner06Coarse2 + HGCalHESiliconSensitiveCorner01Coarse2, HGCalHESiliconSensitiveCorner02Coarse2, + HGCalHESiliconSensitiveCorner03Coarse2, HGCalHESiliconSensitiveCorner04Coarse2, + HGCalHESiliconSensitiveCorner05Coarse2, HGCalHESiliconSensitiveCorner06Coarse2 diff --git a/Geometry/HGCalCommonData/data/hgcalwafer/v15f/hgcalwafer.xml b/Geometry/HGCalCommonData/data/hgcalwafer/v15f/hgcalwafer.xml index 86b232b0694a7..f2c7eb02d6e59 100644 --- a/Geometry/HGCalCommonData/data/hgcalwafer/v15f/hgcalwafer.xml +++ b/Geometry/HGCalCommonData/data/hgcalwafer/v15f/hgcalwafer.xml @@ -212,7 +212,7 @@ HGCalHEMotherBoard0Fine, HGCalHEConnector0Fine, HGCalHEPCB0Fine, - HGCalHEEpoxy0Fine, HGCalHEKapton0Fine, HGCalHESensitive0Fine, + HGCalHEEpoxy0Fine, HGCalHEKapton0Fine, HGCalHESiliconSensitive0Fine, HGCalHEBasePlate0Fine hgcalMaterial:HGC_G10-FR4, materials:Air, hgcalMaterial:HGC_G10-FR4, @@ -244,7 +244,7 @@ HGCalHEMotherBoard0Coarse1, HGCalHEConnector0Coarse1, HGCalHEPCB0Coarse1, - HGCalHEEpoxy0Coarse1, HGCalHEKapton0Coarse1, HGCalHESensitive0Coarse1, + HGCalHEEpoxy0Coarse1, HGCalHEKapton0Coarse1, HGCalHESiliconSensitive0Coarse1, HGCalHEBasePlate0Coarse1 hgcalMaterial:HGC_G10-FR4, materials:Air, hgcalMaterial:HGC_G10-FR4, @@ -276,7 +276,7 @@ HGCalHEMotherBoard0Coarse2, HGCalHEConnector0Coarse2, HGCalHEPCB0Coarse2, - HGCalHEEpoxy0Coarse2, HGCalHEKapton0Coarse2, HGCalHESensitive0Coarse2, + HGCalHEEpoxy0Coarse2, HGCalHEKapton0Coarse2, HGCalHESiliconSensitive0Coarse2, HGCalHEBasePlate0Coarse2 hgcalMaterial:HGC_G10-FR4, materials:Air, hgcalMaterial:HGC_G10-FR4, diff --git a/Geometry/HGCalCommonData/data/hgcalwafer/v15p/hgcalwafer.xml b/Geometry/HGCalCommonData/data/hgcalwafer/v15p/hgcalwafer.xml index 0a8f0f9efde9f..29a967d041e8d 100644 --- a/Geometry/HGCalCommonData/data/hgcalwafer/v15p/hgcalwafer.xml +++ b/Geometry/HGCalCommonData/data/hgcalwafer/v15p/hgcalwafer.xml @@ -247,7 +247,7 @@ 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5 HGCalHEMotherBoard0Fine, HGCalHEConnector0Fine, HGCalHEPCB0Fine, - HGCalHEEpoxy0Fine, HGCalHEKapton0Fine, HGCalHESensitive0Fine, + HGCalHEEpoxy0Fine, HGCalHEKapton0Fine, HGCalHESiliconSensitive0Fine, HGCalHEBasePlate0Fine hgcalMaterial:HGC_G10-FR4, materials:Air, hgcalMaterial:HGC_G10-FR4, @@ -283,7 +283,7 @@ 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5 HGCalHEMotherBoard0Coarse1, HGCalHEConnector0Coarse1, HGCalHEPCB0Coarse1, - HGCalHEEpoxy0Coarse1, HGCalHEKapton0Coarse1, HGCalHESensitive0Coarse1, + HGCalHEEpoxy0Coarse1, HGCalHEKapton0Coarse1, HGCalHESiliconSensitive0Coarse1, HGCalHEBasePlate0Coarse1 hgcalMaterial:HGC_G10-FR4, materials:Air, hgcalMaterial:HGC_G10-FR4, @@ -319,7 +319,7 @@ 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5 HGCalHEMotherBoard0Coarse2, HGCalHEConnector0Coarse2, HGCalHEPCB0Coarse2, - HGCalHEEpoxy0Coarse2, HGCalHEKapton0Coarse2, HGCalHESensitive0Coarse2, + HGCalHEEpoxy0Coarse2, HGCalHEKapton0Coarse2, HGCalHESiliconSensitive0Coarse2, HGCalHEBasePlate0Coarse2 hgcalMaterial:HGC_G10-FR4, materials:Air, hgcalMaterial:HGC_G10-FR4, diff --git a/Geometry/HGCalCommonData/interface/HGCalDDDConstants.h b/Geometry/HGCalCommonData/interface/HGCalDDDConstants.h index 8a2560efe8cb7..a95022998ee0d 100644 --- a/Geometry/HGCalCommonData/interface/HGCalDDDConstants.h +++ b/Geometry/HGCalCommonData/interface/HGCalDDDConstants.h @@ -110,7 +110,8 @@ class HGCalDDDConstants { std::pair simToReco(int cell, int layer, int mod, bool half) const; int tileSiPM(int sipm) const { return ((sipm > 0) ? HGCalTypes::SiPMSmall : HGCalTypes::SiPMLarge); } bool tileTrapezoid() const { - return ((mode_ == HGCalGeometryMode::Trapezoid) || (mode_ == HGCalGeometryMode::TrapezoidFile)); + return ((mode_ == HGCalGeometryMode::Trapezoid) || (mode_ == HGCalGeometryMode::TrapezoidFile) || + (mode_ == HGCalGeometryMode::TrapezoidModule)); } std::pair tileType(int layer, int ring, int phi) const { int indx = HGCalTileIndex::tileIndex(layer, ring, phi); @@ -140,7 +141,7 @@ class HGCalDDDConstants { } bool waferHexagon8() const { return ((mode_ == HGCalGeometryMode::Hexagon8) || (mode_ == HGCalGeometryMode::Hexagon8Full) || - (mode_ == HGCalGeometryMode::Hexagon8File)); + (mode_ == HGCalGeometryMode::Hexagon8File) || (mode_ == HGCalGeometryMode::Hexagon8Module)); } bool waferInLayer(int wafer, int lay, bool reco) const; bool waferFullInLayer(int wafer, int lay, bool reco) const; diff --git a/Geometry/HGCalCommonData/interface/HGCalGeomParameters.h b/Geometry/HGCalCommonData/interface/HGCalGeomParameters.h index 3e9d06f4cf3e2..21c53524d958c 100644 --- a/Geometry/HGCalCommonData/interface/HGCalGeomParameters.h +++ b/Geometry/HGCalCommonData/interface/HGCalGeomParameters.h @@ -49,6 +49,16 @@ class HGCalGeomParameters { HGCalParameters& php, const std::string& sdTag1, int firstLayer); + void loadGeometryHexagonModule(const DDCompactView* cpv, + HGCalParameters& php, + const std::string& sdTag1, + const std::string& sdTag2, + int firstLayer); + void loadGeometryHexagonModule(const cms::DDCompactView* cpv, + HGCalParameters& php, + const std::string& sdTag1, + const std::string& sdTag2, + int firstLayer); void loadSpecParsHexagon(const DDFilteredView& fv, HGCalParameters& php, const DDCompactView* cpv, diff --git a/Geometry/HGCalCommonData/interface/HGCalGeometryMode.h b/Geometry/HGCalCommonData/interface/HGCalGeometryMode.h index edd88dcc029c0..07fae409aa0de 100644 --- a/Geometry/HGCalCommonData/interface/HGCalGeometryMode.h +++ b/Geometry/HGCalCommonData/interface/HGCalGeometryMode.h @@ -30,7 +30,9 @@ namespace HGCalGeometryMode { Hexagon8Full = 4, Trapezoid = 5, Hexagon8File = 6, - TrapezoidFile = 7 + TrapezoidFile = 7, + Hexagon8Module = 8, + TrapezoidModule = 9, }; enum WaferMode { Polyhedra = 0, ExtrudedPolygon = 1 }; } // namespace HGCalGeometryMode diff --git a/Geometry/HGCalCommonData/plugins/DDHGCalCell.cc b/Geometry/HGCalCommonData/plugins/DDHGCalCell.cc index 9a26ae246f654..c0f44143da4a5 100644 --- a/Geometry/HGCalCommonData/plugins/DDHGCalCell.cc +++ b/Geometry/HGCalCommonData/plugins/DDHGCalCell.cc @@ -18,8 +18,7 @@ class DDHGCalCell : public DDAlgorithm { public: // Constructor and Destructor - DDHGCalCell(); - ~DDHGCalCell() override; + DDHGCalCell() {} void initialize(const DDNumericArguments& nArgs, const DDVectorArguments& vArgs, @@ -42,14 +41,6 @@ class DDHGCalCell : public DDAlgorithm { std::string nameSpace_; // Namespace to be used }; -DDHGCalCell::DDHGCalCell() { -#ifdef EDM_ML_DEBUG - edm::LogVerbatim("HGCalGeom") << "DDHGCalCell: Creating an instance"; -#endif -} - -DDHGCalCell::~DDHGCalCell() {} - void DDHGCalCell::initialize(const DDNumericArguments& nArgs, const DDVectorArguments&, const DDMapArguments&, @@ -84,7 +75,7 @@ void DDHGCalCell::initialize(const DDNumericArguments& nArgs, #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalCell: Wafer r " << waferSize_ << " T " << waferT_ << " Cell T " << cellT_ << " Cells/Wafer " << nCells_ << " Material " << material_ << "Sensitive Position " - << posSens_ << " NameSpace " << nameSpace_ << " Full Cell: " << fullCN_ << ":" + << posSens_ << " NameSpace " << nameSpace_ << ": Full Cell: " << fullCN_ << ":" << fullSensN_; for (unsigned int k = 0; k < truncCN_.size(); ++k) edm::LogVerbatim("HGCalGeom") << "DDHGCalCell: Truncated Cell[" << k << "] " << truncCN_[k] << ":" @@ -97,14 +88,10 @@ void DDHGCalCell::initialize(const DDNumericArguments& nArgs, } void DDHGCalCell::execute(DDCompactView& cpv) { -#ifdef EDM_ML_DEBUG - edm::LogVerbatim("HGCalGeom") << "==>> Executing DDHGCalCell..."; -#endif - DDName matName(DDSplit(material_).first, DDSplit(material_).second); DDMaterial matter(matName); #ifdef EDM_ML_DEBUG - edm::LogVerbatim("HGCalGeom") << "DDHGCalCell: " << matName << " initialized at " << &matter; + edm::LogVerbatim("HGCalGeom") << "DDHGCalCell: " << matName << " initialized"; #endif DDLogicalPart glog1, glog2; @@ -153,7 +140,7 @@ void DDHGCalCell::execute(DDCompactView& cpv) { cpv.position(glog2, glog1, 1, tran, rot); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalCell: " << glog2.name() << " number 1 position in " << glog1.name() << " at " - << tran << " with " << rot; + << tran << " with no rotation"; #endif static constexpr int ir0[] = {0, 1, 0}; @@ -178,8 +165,8 @@ void DDHGCalCell::execute(DDCompactView& cpv) { glog2 = DDLogicalPart(solid.ddname(), matter, solid); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalCell: " << solid.name() << " extruded polygon made of " << matName - << " z|x|y|s (0) " << zw[0] << ":" << zx[0] << ":" << zy[0] << ":" << scale[0] - << " z|x|y|s (1) " << zw[1] << ":" << zx[1] << ":" << zy[1] << ":" << scale[1] + << " z|x|y|s (0) " << zc[0] << ":" << zx[0] << ":" << zy[0] << ":" << scale[0] + << " z|x|y|s (1) " << zc[1] << ":" << zx[1] << ":" << zy[1] << ":" << scale[1] << " and " << xw.size() << " edges"; for (unsigned int k = 0; k < xw.size(); ++k) edm::LogVerbatim("HGCalGeom") << "[" << k << "] " << xw[k] << ":" << yw[k]; @@ -187,7 +174,7 @@ void DDHGCalCell::execute(DDCompactView& cpv) { cpv.position(glog2, glog1, 1, tran, rot); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalCell: " << glog2.name() << " number 1 position in " << glog1.name() - << " at " << tran << " with " << rot; + << " at " << tran << " with no rotation"; #endif } @@ -213,8 +200,8 @@ void DDHGCalCell::execute(DDCompactView& cpv) { glog2 = DDLogicalPart(solid.ddname(), matter, solid); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalCell: " << solid.name() << " extruded polygon made of " << matName - << " z|x|y|s (0) " << zw[0] << ":" << zx[0] << ":" << zy[0] << ":" << scale[0] - << " z|x|y|s (1) " << zw[1] << ":" << zx[1] << ":" << zy[1] << ":" << scale[1] + << " z|x|y|s (0) " << zc[0] << ":" << zx[0] << ":" << zy[0] << ":" << scale[0] + << " z|x|y|s (1) " << zc[1] << ":" << zx[1] << ":" << zy[1] << ":" << scale[1] << " and " << xw.size() << " edges"; for (unsigned int k = 0; k < xw.size(); ++k) edm::LogVerbatim("HGCalGeom") << "[" << k << "] " << xw[k] << ":" << yw[k]; @@ -222,7 +209,7 @@ void DDHGCalCell::execute(DDCompactView& cpv) { cpv.position(glog2, glog1, 1, tran, rot); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalCell: " << glog2.name() << " number 1 position in " << glog1.name() - << " at " << tran << " with " << rot; + << " at " << tran << " with no rotation"; #endif } @@ -248,8 +235,8 @@ void DDHGCalCell::execute(DDCompactView& cpv) { glog2 = DDLogicalPart(solid.ddname(), matter, solid); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalCell: " << solid.name() << " extruded polygon made of " << matName - << " z|x|y|s (0) " << zw[0] << ":" << zx[0] << ":" << zy[0] << ":" << scale[0] - << " z|x|y|s (1) " << zw[1] << ":" << zx[1] << ":" << zy[1] << ":" << scale[1] + << " z|x|y|s (0) " << zc[0] << ":" << zx[0] << ":" << zy[0] << ":" << scale[0] + << " z|x|y|s (1) " << zc[1] << ":" << zx[1] << ":" << zy[1] << ":" << scale[1] << " and " << xw.size() << " edges"; for (unsigned int k = 0; k < xw.size(); ++k) edm::LogVerbatim("HGCalGeom") << "[" << k << "] " << xw[k] << ":" << yw[k]; @@ -257,7 +244,7 @@ void DDHGCalCell::execute(DDCompactView& cpv) { cpv.position(glog2, glog1, 1, tran, rot); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalCell: " << glog2.name() << " number 1 position in " << glog1.name() - << " at " << tran << " with " << rot; + << " at " << tran << " with no rotation"; #endif } } diff --git a/Geometry/HGCalCommonData/plugins/DDHGCalEEAlgo.cc b/Geometry/HGCalCommonData/plugins/DDHGCalEEAlgo.cc index d302c0813646b..418b9ba12029b 100644 --- a/Geometry/HGCalCommonData/plugins/DDHGCalEEAlgo.cc +++ b/Geometry/HGCalCommonData/plugins/DDHGCalEEAlgo.cc @@ -325,7 +325,7 @@ void DDHGCalEEAlgo::constructLayers(const DDLogicalPart& module, DDCompactView& ++copyNumber_[ii]; #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalEEAlgo: " << glog.name() << " number " << copy << " positioned in " - << module.name() << " at " << r1 << " with " << rot; + << module.name() << " at " << r1 << " with no rotation"; #endif zz += hthick; } // End of loop over layers in a block @@ -410,7 +410,7 @@ void DDHGCalEEAlgo::positionSensitive(const DDLogicalPart& glog, #ifdef EDM_ML_DEBUG ++ntype[type]; edm::LogVerbatim("HGCalGeom") << " DDHGCalEEAlgo: " << name << " number " << copy << " positioned in " - << glog.ddname() << " at " << tran << " with " << rotation; + << glog.ddname() << " at " << tran << " with no rotation"; #endif } } diff --git a/Geometry/HGCalCommonData/plugins/DDHGCalEEFileAlgo.cc b/Geometry/HGCalCommonData/plugins/DDHGCalEEFileAlgo.cc index 446d9c7d3cc5a..ea365dde75317 100644 --- a/Geometry/HGCalCommonData/plugins/DDHGCalEEFileAlgo.cc +++ b/Geometry/HGCalCommonData/plugins/DDHGCalEEFileAlgo.cc @@ -194,7 +194,7 @@ void DDHGCalEEFileAlgo::initialize(const DDNumericArguments& nArgs, #endif nameSpace_ = DDCurrentNamespace::ns(); #ifdef EDM_ML_DEBUG - edm::LogVerbatim("HGCalGeom") << "DDHGCalEEFileAlgo: NameSpace " << nameSpace_; + edm::LogVerbatim("HGCalGeom") << "DDHGCalEEFileAlgo: NameSpace " << nameSpace_ << ":"; #endif } @@ -220,9 +220,6 @@ void DDHGCalEEFileAlgo::execute(DDCompactView& cpv) { } void DDHGCalEEFileAlgo::constructLayers(const DDLogicalPart& module, DDCompactView& cpv) { -#ifdef EDM_ML_DEBUG - edm::LogVerbatim("HGCalGeom") << "DDHGCalEEFileAlgo: \t\tInside Layers"; -#endif double zi(zMinBlock_); int laymin(0); for (unsigned int i = 0; i < layers_.size(); i++) { @@ -289,10 +286,10 @@ void DDHGCalEEFileAlgo::constructLayers(const DDLogicalPart& module, DDCompactVi DDSolid solid = DDSolidFactory::tubs(DDName(name, nameSpace_), hthick, rins, routs, 0.0, 2._pi); glog = DDLogicalPart(solid.ddname(), matter, solid); #ifdef EDM_ML_DEBUG - edm::LogVerbatim("HGCalGeom") << "DDHGCalEEFileAlgo: " << solid.name() << " Tubs made of " << matName << ":" - << &matter << " of dimensions " << rinB << ":" << rins << ", " << routF << ":" - << routs << ", " << hthick << ", 0.0, 360.0 and position " << glog.name() - << " number " << copy << ":" << layerCenter_[copy - firstLayer_]; + edm::LogVerbatim("HGCalGeom") << "DDHGCalEEFileAlgo: " << solid.name() << " Tubs made of " << matName + << " of dimensions " << rinB << ":" << rins << ", " << routF << ":" << routs + << ", " << hthick << ", 0.0, 360.0 and position " << glog.name() << " number " + << copy << ":" << layerCenter_[copy - firstLayer_]; #endif positionSensitive(glog, rins, routs, zz, layerSense_[ly], (copy - firstLayer_), cpv); } @@ -302,7 +299,7 @@ void DDHGCalEEFileAlgo::constructLayers(const DDLogicalPart& module, DDCompactVi ++copyNumber_[ii]; #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalEEFileAlgo: " << glog.name() << " number " << copy << " positioned in " - << module.name() << " at " << r1 << " with " << rot; + << module.name() << " at " << r1 << " with no rotation"; #endif zz += hthick; } // End of loop over layers in a block @@ -391,7 +388,7 @@ void DDHGCalEEFileAlgo::positionSensitive( ++ntype[type]; edm::LogVerbatim("HGCalGeom") << " DDHGCalEEFileAlgo: " << name << " number " << copy << " type " << layertype << ":" << type << " positioned in " << glog.ddname() << " at " << tran - << " with " << rotation; + << " with no rotation"; #endif } } diff --git a/Geometry/HGCalCommonData/plugins/DDHGCalHEAlgo.cc b/Geometry/HGCalCommonData/plugins/DDHGCalHEAlgo.cc index 2633ff06d4453..5c268d0f39125 100644 --- a/Geometry/HGCalCommonData/plugins/DDHGCalHEAlgo.cc +++ b/Geometry/HGCalCommonData/plugins/DDHGCalHEAlgo.cc @@ -369,7 +369,7 @@ void DDHGCalHEAlgo::constructLayers(const DDLogicalPart& module, DDCompactView& ++copyNumber_[ii]; #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalHEAlgo: " << glog.name() << " number " << copy << " positioned in " - << module.name() << " at " << r1 << " with " << rot; + << module.name() << " at " << r1 << " with no rotation"; #endif zz += hthick; } // End of loop over layers in a block @@ -420,7 +420,7 @@ void DDHGCalHEAlgo::positionMix(const DDLogicalPart& glog, cpv.position(glog1, glog, 1, tran, rot); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalHEAlgo: " << glog1.name() << " number 1 positioned in " << glog.name() - << " at " << tran << " with " << rot; + << " at " << tran << " with no rotation"; #endif double thickTot(0), zpos(-hthick); for (unsigned int ly = 0; ly < layerTypeTop_.size(); ++ly) { @@ -450,7 +450,7 @@ void DDHGCalHEAlgo::positionMix(const DDLogicalPart& glog, cpv.position(glog2, glog1, copy, r1, rot); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalHEAlgo: Position " << glog2.name() << " number " << copy << " in " - << glog1.name() << " at " << r1 << " with " << rot; + << glog1.name() << " at " << r1 << " with no rotation"; #endif ++copyNumberTop_[ii]; zpos += hthickl; @@ -476,7 +476,7 @@ void DDHGCalHEAlgo::positionMix(const DDLogicalPart& glog, cpv.position(glog1, glog, 1, tran, rot); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalHEAlgo: " << glog1.name() << " number 1 positioned in " << glog.name() - << " at " << tran << " with " << rot; + << " at " << tran << " with no rotation"; #endif thickTot = 0; zpos = -hthick; @@ -507,7 +507,7 @@ void DDHGCalHEAlgo::positionMix(const DDLogicalPart& glog, cpv.position(glog2, glog1, copy, r1, rot); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalHEAlgo: Position " << glog2.name() << " number " << copy << " in " - << glog1.name() << " at " << r1 << " with " << rot; + << glog1.name() << " at " << r1 << " with no rotation"; #endif if (layerSenseBot_[ly] != 0) { #ifdef EDM_ML_DEBUG @@ -591,7 +591,7 @@ void DDHGCalHEAlgo::positionSensitive(const DDLogicalPart& glog, #ifdef EDM_ML_DEBUG ++ntype[type]; edm::LogVerbatim("HGCalGeom") << "DDHGCalHEAlgo: " << name << " number " << copy << " positioned in " - << glog.ddname() << " at " << tran << " with " << rotation; + << glog.ddname() << " at " << tran << " with no rotation"; #endif } } diff --git a/Geometry/HGCalCommonData/plugins/DDHGCalHEFileAlgo.cc b/Geometry/HGCalCommonData/plugins/DDHGCalHEFileAlgo.cc index f7b135ec85879..ce58f61ab1a03 100644 --- a/Geometry/HGCalCommonData/plugins/DDHGCalHEFileAlgo.cc +++ b/Geometry/HGCalCommonData/plugins/DDHGCalHEFileAlgo.cc @@ -248,7 +248,7 @@ void DDHGCalHEFileAlgo::initialize(const DDNumericArguments& nArgs, #endif nameSpace_ = DDCurrentNamespace::ns(); #ifdef EDM_ML_DEBUG - edm::LogVerbatim("HGCalGeom") << "DDHGCalHEFileAlgo: NameSpace " << nameSpace_; + edm::LogVerbatim("HGCalGeom") << "DDHGCalHEFileAlgo: NameSpace " << nameSpace_ << ":"; #endif } @@ -274,9 +274,6 @@ void DDHGCalHEFileAlgo::execute(DDCompactView& cpv) { } void DDHGCalHEFileAlgo::constructLayers(const DDLogicalPart& module, DDCompactView& cpv) { -#ifdef EDM_ML_DEBUG - edm::LogVerbatim("HGCalGeom") << "DDHGCalHEFileAlgo: \t\tInside Layers"; -#endif double zi(zMinBlock_); int laymin(0); for (unsigned int i = 0; i < layers_.size(); i++) { @@ -355,7 +352,7 @@ void DDHGCalHEFileAlgo::constructLayers(const DDLogicalPart& module, DDCompactVi ++copyNumber_[ii]; #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalHEFileAlgo: " << glog.name() << " number " << copy << " positioned in " - << module.name() << " at " << r1 << " with " << rot; + << module.name() << " at " << r1 << " with no rotation"; #endif zz += hthick; } // End of loop over layers in a block @@ -407,7 +404,7 @@ void DDHGCalHEFileAlgo::positionMix(const DDLogicalPart& glog, cpv.position(glog1, glog, 1, tran, rot); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalHEFileAlgo: " << glog1.name() << " number 1 positioned in " << glog.name() - << " at " << tran << " with " << rot; + << " at " << tran << " with no rotation"; #endif double thickTot(0), zpos(-hthick); for (unsigned int ly = 0; ly < layerTypeTop_.size(); ++ly) { @@ -437,7 +434,7 @@ void DDHGCalHEFileAlgo::positionMix(const DDLogicalPart& glog, cpv.position(glog2, glog1, copy, r1, rot); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalHEFileAlgo: Position " << glog2.name() << " number " << copy << " in " - << glog1.name() << " at " << r1 << " with " << rot; + << glog1.name() << " at " << r1 << " with no rotation"; #endif ++copyNumberTop_[ii]; zpos += hthickl; @@ -463,7 +460,7 @@ void DDHGCalHEFileAlgo::positionMix(const DDLogicalPart& glog, cpv.position(glog1, glog, 1, tran, rot); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalHEFileAlgo: " << glog1.name() << " number 1 positioned in " << glog.name() - << " at " << tran << " with " << rot; + << " at " << tran << " with no rotation"; #endif thickTot = 0; zpos = -hthick; @@ -494,7 +491,7 @@ void DDHGCalHEFileAlgo::positionMix(const DDLogicalPart& glog, cpv.position(glog2, glog1, copy, r1, rot); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalHEFileAlgo: Position " << glog2.name() << " number " << copy << " in " - << glog1.name() << " at " << r1 << " with " << rot; + << glog1.name() << " at " << r1 << " with no rotation"; #endif if (layerSenseBot_[ly] != 0) { #ifdef EDM_ML_DEBUG @@ -581,7 +578,7 @@ void DDHGCalHEFileAlgo::positionSensitive( ++ntype[type]; edm::LogVerbatim("HGCalGeom") << " DDHGCalHEFileAlgo: " << name << " number " << copy << " type " << layertype << ":" << type << " positioned in " << glog.ddname() << " at " << tran - << " with " << rotation; + << " with no rotation"; #endif } } diff --git a/Geometry/HGCalCommonData/plugins/DDHGCalMixLayer.cc b/Geometry/HGCalCommonData/plugins/DDHGCalMixLayer.cc index fd58410723386..a3cd21f75a1eb 100644 --- a/Geometry/HGCalCommonData/plugins/DDHGCalMixLayer.cc +++ b/Geometry/HGCalCommonData/plugins/DDHGCalMixLayer.cc @@ -492,7 +492,7 @@ void DDHGCalMixLayer::positionMix(const DDLogicalPart& glog, int layercenter = layerCenter_[layer]; int firstWafer = waferLayerStart_[layer]; int lastWafer = ((layer + 1 < static_cast(waferLayerStart_.size())) ? waferLayerStart_[layer + 1] - : static_cast(waferLayerStart_.size())); + : static_cast(waferIndex_.size())); double r = 0.5 * (waferSize_ + waferSepar_); double R = 2.0 * r / sqrt3; double dy = 0.75 * R; diff --git a/Geometry/HGCalCommonData/plugins/DDHGCalSiliconModule.cc b/Geometry/HGCalCommonData/plugins/DDHGCalSiliconModule.cc index b797155dcd5de..04c7f29732614 100644 --- a/Geometry/HGCalCommonData/plugins/DDHGCalSiliconModule.cc +++ b/Geometry/HGCalCommonData/plugins/DDHGCalSiliconModule.cc @@ -361,7 +361,7 @@ void DDHGCalSiliconModule::positionSensitive(const DDLogicalPart& glog, int laye int layercenter = layerCenter_[layer]; int firstWafer = waferLayerStart_[layer]; int lastWafer = ((layer + 1 < static_cast(waferLayerStart_.size())) ? waferLayerStart_[layer + 1] - : static_cast(waferLayerStart_.size())); + : static_cast(waferIndex_.size())); double r = 0.5 * (waferSize_ + waferSepar_); double R = 2.0 * r / sqrt3; double dy = 0.75 * R; diff --git a/Geometry/HGCalCommonData/plugins/DDHGCalWafer8.cc b/Geometry/HGCalCommonData/plugins/DDHGCalWafer8.cc index e2d96bfe987d3..d14168404c213 100644 --- a/Geometry/HGCalCommonData/plugins/DDHGCalWafer8.cc +++ b/Geometry/HGCalCommonData/plugins/DDHGCalWafer8.cc @@ -19,8 +19,7 @@ class DDHGCalWafer8 : public DDAlgorithm { public: // Constructor and Destructor - DDHGCalWafer8(); - ~DDHGCalWafer8() override; + DDHGCalWafer8() {} void initialize(const DDNumericArguments& nArgs, const DDVectorArguments& vArgs, @@ -33,7 +32,6 @@ class DDHGCalWafer8 : public DDAlgorithm { double waferSize_; // Wafer size double waferT_; // Wafer thickness double waferSepar_; // Sensor separation - double mouseBite_; // MouseBite radius int nCells_; // Half number of cells along u-v axis int cellType_; // Cell Type (0,1,2: Fine, Course 2/3) std::string material_; // Material name for module with gap @@ -41,14 +39,6 @@ class DDHGCalWafer8 : public DDAlgorithm { std::string nameSpace_; // Namespace to be used }; -DDHGCalWafer8::DDHGCalWafer8() { -#ifdef EDM_ML_DEBUG - edm::LogVerbatim("HGCalGeom") << "DDHGCalWafer8: Creating an instance"; -#endif -} - -DDHGCalWafer8::~DDHGCalWafer8() {} - void DDHGCalWafer8::initialize(const DDNumericArguments& nArgs, const DDVectorArguments&, const DDMapArguments&, @@ -57,7 +47,6 @@ void DDHGCalWafer8::initialize(const DDNumericArguments& nArgs, waferSize_ = nArgs["WaferSize"]; waferT_ = nArgs["WaferThick"]; waferSepar_ = nArgs["SensorSeparation"]; - mouseBite_ = nArgs["MouseBite"]; nCells_ = (int)(nArgs["NCells"]); cellType_ = (int)(nArgs["CellType"]); material_ = sArgs["Material"]; @@ -65,20 +54,15 @@ void DDHGCalWafer8::initialize(const DDNumericArguments& nArgs, nameSpace_ = DDCurrentNamespace::ns(); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalWafer8: Wafer 2r " << waferSize_ << " T " << waferT_ << " Half Separation " - << waferSepar_ << " Mouse bite radius " << mouseBite_ << " Cells/Wafer " << nCells_ - << " Cell Type " << cellType_ << " Material " << material_ << " Names " - << parent().name() << " NameSpace " << nameSpace_ << " # of cells " - << cellNames_.size(); + << waferSepar_ << " Cells/Wafer " << nCells_ << " Cell Type " << cellType_ + << " Material " << material_ << " Names " << parent().name() << " NameSpace " + << nameSpace_ << ": # of cells " << cellNames_.size(); for (unsigned int k = 0; k < cellNames_.size(); ++k) edm::LogVerbatim("HGCalGeom") << "DDHGCalWafer8: Cell[" << k << "] " << cellNames_[k]; #endif } void DDHGCalWafer8::execute(DDCompactView& cpv) { -#ifdef EDM_ML_DEBUG - edm::LogVerbatim("HGCalGeom") << "==>> Executing DDHGCalWafer8..."; -#endif - static const double sqrt3 = std::sqrt(3.0); double rM = 0.5 * (waferSize_ + waferSepar_); double RM2 = rM / sqrt3; @@ -102,12 +86,16 @@ void DDHGCalWafer8::execute(DDCompactView& cpv) { << " and " << xM.size() << " edges"; for (unsigned int k = 0; k < xM.size(); ++k) edm::LogVerbatim("HGCalGeom") << "[" << k << "] " << xM[k] << ":" << yM[k]; + int counter(0); #endif DDRotation rot; for (int u = 0; u < 2 * nCells_; ++u) { for (int v = 0; v < 2 * nCells_; ++v) { if (((v - u) < nCells_) && (u - v) <= nCells_) { +#ifdef EDM_ML_DEBUG + counter++; +#endif int n2 = nCells_ / 2; double yp = (u - 0.5 * v - n2) * 2 * r; double xp = (1.5 * (v - nCells_) + 1.0) * R; @@ -141,11 +129,14 @@ void DDHGCalWafer8::execute(DDCompactView& cpv) { cpv.position(DDName(cellNames_[cell]), glog, copy, tran, rot); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalWafer8: " << cellNames_[cell] << " number " << copy << " position in " - << glog.name() << " at " << tran << " with " << rot; + << glog.name() << " at " << tran << " with no rotation"; #endif } } } +#ifdef EDM_ML_DEBUG + edm::LogVerbatim("HGCalGeom") << "\nDDHGCalWafer8::Counter : " << counter << "\n===============================\n"; +#endif } DEFINE_EDM_PLUGIN(DDAlgorithmFactory, DDHGCalWafer8, "hgcal:DDHGCalWafer8"); diff --git a/Geometry/HGCalCommonData/plugins/DDHGCalWaferF.cc b/Geometry/HGCalCommonData/plugins/DDHGCalWaferF.cc index 512fff2791492..476781c405725 100644 --- a/Geometry/HGCalCommonData/plugins/DDHGCalWaferF.cc +++ b/Geometry/HGCalCommonData/plugins/DDHGCalWaferF.cc @@ -159,7 +159,7 @@ void DDHGCalWaferF::execute(DDCompactView& cpv) { cpv.position(glogs[i], glogM, copyNumber_[i], tran0, rot); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalWaferF: " << glogs[i].name() << " number " << copyNumber_[i] - << " positioned in " << glogM.name() << " at " << tran0 << " with " << rot; + << " positioned in " << glogM.name() << " at " << tran0 << " with no rotation"; #endif ++copyNumber_[i]; zi += layerThick_[i]; @@ -200,8 +200,9 @@ void DDHGCalWaferF::execute(DDCompactView& cpv) { int copy = HGCalTypes::packCellTypeUV(cellType_, u, v); cpv.position(DDName(cellNames_[cell]), glogs[i], copy, tran, rot); #ifdef EDM_ML_DEBUG - edm::LogVerbatim("HGCalGeom") << "DDHGCalWaferF: " << cellNames_[cell] << " number " << copy - << " positioned in " << glogs[i].name() << " at " << tran << " with " << rot; + edm::LogVerbatim("HGCalGeom") + << "DDHGCalWaferF: " << cellNames_[cell] << " number " << copy << " positioned in " << glogs[i].name() + << " at " << tran << " with no rotation"; #endif } } diff --git a/Geometry/HGCalCommonData/plugins/HGCalParametersESModule.cc b/Geometry/HGCalCommonData/plugins/HGCalParametersESModule.cc index 732056183a4e9..6d05bf9d7aada 100644 --- a/Geometry/HGCalCommonData/plugins/HGCalParametersESModule.cc +++ b/Geometry/HGCalCommonData/plugins/HGCalParametersESModule.cc @@ -24,7 +24,7 @@ class HGCalParametersESModule : public edm::ESProducer { ReturnType produce(const IdealGeometryRecord&); private: - std::string name_, name2_, namew_, namec_, namet_; + std::string name_, name2_, namew_, namec_, namet_, namex_; bool fromDD4Hep_; edm::ESGetToken cpvTokenDDD_; edm::ESGetToken cpvTokenDD4Hep_; @@ -36,12 +36,13 @@ HGCalParametersESModule::HGCalParametersESModule(const edm::ParameterSet& iC) { namew_ = iC.getParameter("nameW"); namec_ = iC.getParameter("nameC"); namet_ = iC.getParameter("nameT"); + namex_ = iC.getParameter("nameX"); fromDD4Hep_ = iC.getParameter("fromDD4Hep"); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "HGCalParametersESModule for " << name_ << ":" << namew_ << ":" << namec_ << ":" << namet_ << " and fromDD4Hep flag " << fromDD4Hep_; #endif - auto cc = setWhatProduced(this, name_); + auto cc = setWhatProduced(this, namex_); cpvTokenDDD_ = cc.consumes(edm::ESInputTag()); cpvTokenDD4Hep_ = cc.consumesFrom(edm::ESInputTag()); } @@ -53,6 +54,7 @@ void HGCalParametersESModule::fillDescriptions(edm::ConfigurationDescriptions& d desc.add("nameW", "HGCalEEWafer"); desc.add("nameC", "HGCalEECell"); desc.add("nameT", "HGCal"); + desc.add("nameX", "HGCalEESensitive"); desc.add("fromDD4Hep", false); descriptions.add("hgcalEEParametersInitialize", desc); } diff --git a/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalCell.cc b/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalCell.cc index 2a94abac48d61..f19512ba1f973 100644 --- a/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalCell.cc +++ b/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalCell.cc @@ -53,19 +53,18 @@ static long algorithm(dd4hep::Detector& /* description */, cms::DDParsingContext edm::LogVerbatim("HGCalGeom") << "DDHGCalCell: Wafer r " << cms::convert2mm(waferSize) << " T " << cms::convert2mm(waferT) << " Cell T " << cms::convert2mm(cellT) << " Cells/Wafer " << nCells << " Material " << material << "Sensitive Position " << posSens - << " Full Cell: " << fullCN << ":" << fullSensN; + << " NameSpace " << ns.name() << " Full Cell: " << fullCN << ":" << fullSensN; for (int k = 0; k < 3; ++k) edm::LogVerbatim("HGCalGeom") << "DDHGCalCell: Truncated Cell[" << k << "] " << truncCN[k] << ":" << truncSensN[k]; for (int k = 0; k < 3; ++k) edm::LogVerbatim("HGCalGeom") << "DDHGCalCell: Extended Cell[" << k << "] " << extenCN[k] << ":" << extenSensN[k]; for (int k = 0; k < 6; ++k) edm::LogVerbatim("HGCalGeom") << "DDHGCalCell: Corner Cell[" << k << "] " << cornrCN[k] << ":" << cornrSensN[k]; - edm::LogVerbatim("HGCalGeom") << "Name space " << ns.name(); #endif dd4hep::Material matter = ns.material(material); #ifdef EDM_ML_DEBUG - edm::LogVerbatim("HGCalGeom") << "DDHGCalCell: " << material << " initialized at " << &matter; + edm::LogVerbatim("HGCalGeom") << "DDHGCalCell: " << material << " initialized"; #endif dd4hep::Volume glog1, glog2; @@ -119,8 +118,7 @@ static long algorithm(dd4hep::Detector& /* description */, cms::DDParsingContext edm::LogVerbatim("HGCalGeom") << "[" << k << "] " << cms::convert2mm(xw[k]) << ":" << cms::convert2mm(yw[k]); #endif - dd4hep::Rotation3D rotation; - glog1.placeVolume(glog2, 1, dd4hep::Transform3D(rotation, tran)); + glog1.placeVolume(glog2, 1, tran); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalCell: " << glog2.name() << " number 1 position in " << glog1.name() << " at (0,0," << cms::convert2mm(zpos) << ") with no rotation"; @@ -155,14 +153,14 @@ static long algorithm(dd4hep::Detector& /* description */, cms::DDParsingContext ns.addVolumeNS(glog2); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalCell: " << solid.name() << " extruded polygon made of " << material - << " z|x|y|s (0) " << cms::convert2mm(zw[0]) << ":" << cms::convert2mm(zx[0]) << ":" + << " z|x|y|s (0) " << cms::convert2mm(zc[0]) << ":" << cms::convert2mm(zx[0]) << ":" << cms::convert2mm(zy[0]) << ":" << scale[0] << " z|x|y|s (1) " - << cms::convert2mm(zw[1]) << ":" << cms::convert2mm(zx[1]) << ":" + << cms::convert2mm(zc[1]) << ":" << cms::convert2mm(zx[1]) << ":" << cms::convert2mm(zy[1]) << ":" << scale[1] << " and " << xw.size() << " edges"; for (unsigned int k = 0; k < xw.size(); ++k) edm::LogVerbatim("HGCalGeom") << "[" << k << "] " << cms::convert2mm(xw[k]) << ":" << cms::convert2mm(yw[k]); #endif - glog1.placeVolume(glog2, 1, dd4hep::Transform3D(rotation, tran)); + glog1.placeVolume(glog2, 1, tran); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalCell: " << glog2.name() << " number 1 position in " << glog1.name() << " at (0,0," << cms::convert2mm(zpos) << ") with no rotation"; @@ -196,17 +194,17 @@ static long algorithm(dd4hep::Detector& /* description */, cms::DDParsingContext ns.addVolumeNS(glog2); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalCell: " << solid.name() << " extruded polygon made of " << material - << " z|x|y|s (0) " << cms::convert2mm(zw[0]) << ":" << cms::convert2mm(zx[0]) << ":" + << " z|x|y|s (0) " << cms::convert2mm(zc[0]) << ":" << cms::convert2mm(zx[0]) << ":" << cms::convert2mm(zy[0]) << ":" << scale[0] << " z|x|y|s (1) " - << cms::convert2mm(zw[1]) << ":" << cms::convert2mm(zx[1]) << ":" + << cms::convert2mm(zc[1]) << ":" << cms::convert2mm(zx[1]) << ":" << cms::convert2mm(zy[1]) << ":" << scale[1] << " and " << xw.size() << " edges"; for (unsigned int k = 0; k < xw.size(); ++k) edm::LogVerbatim("HGCalGeom") << "[" << k << "] " << cms::convert2mm(xw[k]) << ":" << cms::convert2mm(yw[k]); #endif - glog1.placeVolume(glog2, 1, dd4hep::Transform3D(rotation, tran)); + glog1.placeVolume(glog2, 1, tran); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalCell: " << glog2.name() << " number 1 position in " << glog1.name() - << " at (0,0," << cms::convert2mm(zpos) << " with no rotation"; + << " at (0,0," << cms::convert2mm(zpos) << ") with no rotation"; #endif } @@ -237,17 +235,17 @@ static long algorithm(dd4hep::Detector& /* description */, cms::DDParsingContext ns.addVolumeNS(glog2); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalCell: " << solid.name() << " extruded polygon made of " << material - << " z|x|y|s (0) " << cms::convert2mm(zw[0]) << ":" << cms::convert2mm(zx[0]) << ":" + << " z|x|y|s (0) " << cms::convert2mm(zc[0]) << ":" << cms::convert2mm(zx[0]) << ":" << cms::convert2mm(zy[0]) << ":" << scale[0] << " z|x|y|s (1) " - << cms::convert2mm(zw[1]) << ":" << cms::convert2mm(zx[1]) << ":" + << cms::convert2mm(zc[1]) << ":" << cms::convert2mm(zx[1]) << ":" << cms::convert2mm(zy[1]) << ":" << scale[1] << " and " << xw.size() << " edges"; for (unsigned int k = 0; k < xw.size(); ++k) edm::LogVerbatim("HGCalGeom") << "[" << k << "] " << cms::convert2mm(xw[k]) << ":" << cms::convert2mm(yw[k]); #endif - glog1.placeVolume(glog2, 1, dd4hep::Transform3D(rotation, tran)); + glog1.placeVolume(glog2, 1, tran); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "DDHGCalCell: " << glog2.name() << " number 1 position in " << glog1.name() - << " at (0,0," << cms::convert2mm(zpos) << " with no rotation"; + << " at (0,0," << cms::convert2mm(zpos) << ") with no rotation"; #endif } return cms::s_executed; diff --git a/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalHEFileAlgo.cc b/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalHEFileAlgo.cc index 7391cb5c74fbb..52ef2236c155f 100644 --- a/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalHEFileAlgo.cc +++ b/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalHEFileAlgo.cc @@ -483,8 +483,9 @@ struct HGCalHEFileAlgo { #ifdef EDM_ML_DEBUG int ium(0), ivm(0), iumAll(0), ivmAll(0), kount(0), ntot(0), nin(0); std::vector ntype(6, 0); - edm::LogVerbatim("HGCalGeom") << "DDHGCalHEFileAlgo: " << glog.name() << " rout " << cms::convert2mm(rout) << " N " - << N << " for maximum u, v Offset; Shift " << cms::convert2mm(xyoff.first) << ":" + edm::LogVerbatim("HGCalGeom") << "DDHGCalHEFileAlgo: " << glog.name() << " rin:rout " << cms::convert2mm(rin) << ":" + << cms::convert2mm(rout) << " zpos " << cms::convert2mm(zpos) << " N " << N + << " for maximum u, v Offset; Shift " << cms::convert2mm(xyoff.first) << ":" << cms::convert2mm(xyoff.second) << " WaferSize " << cms::convert2mm((waferSize_ + waferSepar_)); #endif @@ -506,6 +507,8 @@ struct HGCalHEFileAlgo { int type = HGCalWaferType::getType(indx, waferIndex_, waferProperty_); if (corner.first > 0 && type >= 0) { int copy = HGCalTypes::packTypeUV(type, u, v); + if (layertype > 1) + type += 3; #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << " DDHGCalHEFileAlgo: " << waferNames_[type] << " number " << copy << " type " << type << " layer:u:v:indx " << (layer + firstLayer_) << ":" << u << ":" << v @@ -526,17 +529,14 @@ struct HGCalHEFileAlgo { ivmAll = iv; ++nin; #endif - dd4hep::Position tran(xpos, ypos, 0.0); - if (layertype > 1) - type += 3; glog.placeVolume(ns.volume(waferNames_[type]), copy, tran); - #ifdef EDM_ML_DEBUG ++ntype[type]; edm::LogVerbatim("HGCalGeom") - << "DDHGCalHEFileAlgo: " << glog.name() << " number " << copy << " positioned in " << glog.name() - << " at (" << cms::convert2mm(xpos) << ", " << cms::convert2mm(ypos) << ", 0) with no rotation"; + << "DDHGCalHEFileAlgo: " << waferNames_[type] << " number " << copy << " type " << layertype << ":" + << type << " positioned in " << glog.name() << " at (" << cms::convert2mm(xpos) << ", " + << cms::convert2mm(ypos) << ", 0) with no rotation"; #endif } } diff --git a/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalMixLayer.cc b/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalMixLayer.cc index d93a6b9dc5b86..d2c8431174eb2 100644 --- a/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalMixLayer.cc +++ b/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalMixLayer.cc @@ -420,9 +420,8 @@ struct HGCalMixLayer { static const double sqrt3 = std::sqrt(3.0); int layercenter = layerCenter_[layer]; int firstWafer = waferLayerStart_[layer]; - int lastWafer = - ((layer + 1 < static_cast(waferLayerStart_.size())) ? waferLayerStart_[layer + 1] - : static_cast(waferLayerStart_.size())); + int lastWafer = ((layer + 1 < static_cast(waferLayerStart_.size())) ? waferLayerStart_[layer + 1] + : static_cast(waferIndex_.size())); double r = 0.5 * (waferSize_ + waferSepar_); double R = 2.0 * r / sqrt3; double dy = 0.75 * R; diff --git a/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalSiliconModule.cc b/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalSiliconModule.cc index 07d0176d63da4..04fad4b9d4c6c 100644 --- a/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalSiliconModule.cc +++ b/Geometry/HGCalCommonData/plugins/dd4hep/DDHGCalSiliconModule.cc @@ -295,9 +295,8 @@ struct HGCalSiliconModule { static const double sqrt3 = std::sqrt(3.0); int layercenter = layerCenter_[layer]; int firstWafer = waferLayerStart_[layer]; - int lastWafer = - ((layer + 1 < static_cast(waferLayerStart_.size())) ? waferLayerStart_[layer + 1] - : static_cast(waferLayerStart_.size())); + int lastWafer = ((layer + 1 < static_cast(waferLayerStart_.size())) ? waferLayerStart_[layer + 1] + : static_cast(waferIndex_.size())); double r = 0.5 * (waferSize_ + waferSepar_); double R = 2.0 * r / sqrt3; double dy = 0.75 * R; diff --git a/Geometry/HGCalCommonData/python/hgcalParametersInitialization_cfi.py b/Geometry/HGCalCommonData/python/hgcalParametersInitialization_cfi.py index 7f9639a4c4398..f3b1524bc3ca1 100644 --- a/Geometry/HGCalCommonData/python/hgcalParametersInitialization_cfi.py +++ b/Geometry/HGCalCommonData/python/hgcalParametersInitialization_cfi.py @@ -12,10 +12,12 @@ name = cms.string("HGCalHESiliconSensitive"), nameW = cms.string("HGCalHEWafer"), nameC = cms.string("HGCalHECell"), + nameX = cms.string("HGCalHESiliconSensitive"), ) hgcalHEScParametersInitialize = hgcalEEParametersInitialize.clone( name = cms.string("HGCalHEScintillatorSensitive"), nameW = cms.string("HGCalWafer"), nameC = cms.string("HGCalCell"), + nameX = cms.string("HGCalHEScintillatorSensitive"), ) diff --git a/Geometry/HGCalCommonData/python/hgcalV15ParametersInitialization_cfi.py b/Geometry/HGCalCommonData/python/hgcalV15ParametersInitialization_cfi.py new file mode 100644 index 0000000000000..a058e0a4a5cc7 --- /dev/null +++ b/Geometry/HGCalCommonData/python/hgcalV15ParametersInitialization_cfi.py @@ -0,0 +1,34 @@ +import FWCore.ParameterSet.Config as cms + +hgcalEEParametersInitialize = cms.ESProducer('HGCalParametersESModule', + name = cms.string('HGCalEELayer'), + name2 = cms.string('HGCalEESensitive'), + nameW = cms.string('HGCalEEWafer'), + nameC = cms.string('HGCalEESensitive'), + nameT = cms.string('HGCal'), + nameX = cms.string('HGCalEESensitive'), + fromDD4Hep = cms.bool(False), + appendToDataLabel = cms.string('') +) + +from Configuration.ProcessModifiers.dd4hep_cff import dd4hep + +dd4hep.toModify(hgcalEEParametersInitialize, + fromDD4Hep = cms.bool(True) +) + +hgcalHESiParametersInitialize = hgcalEEParametersInitialize.clone( + name = cms.string("HGCalHESiliconLayer"), + name2 = cms.string("HGCalHESiliconSensitive"), + nameW = cms.string("HGCalHEWafer"), + nameC = cms.string("HGCalHESiliconSensitive"), + nameX = cms.string("HGCalHESiliconSensitive"), +) + +hgcalHEScParametersInitialize = hgcalEEParametersInitialize.clone( + name = cms.string("HGCalHEScintillatorSensitive"), + name2 = cms.string("HGCalHEScintillatorSensitive"), + nameW = cms.string("HGCalWafer"), + nameC = cms.string("HGCalHEScintillatorSensitive"), + nameX = cms.string("HGCalHEScintillatorSensitive"), +) diff --git a/Geometry/HGCalCommonData/python/hgcalV6ParametersInitialization_cfi.py b/Geometry/HGCalCommonData/python/hgcalV6ParametersInitialization_cfi.py index 826a081d646cb..d8948826904fa 100644 --- a/Geometry/HGCalCommonData/python/hgcalV6ParametersInitialization_cfi.py +++ b/Geometry/HGCalCommonData/python/hgcalV6ParametersInitialization_cfi.py @@ -13,4 +13,5 @@ nameW = cms.string("HGCalHEWafer"), nameC = cms.string("HGCalHECell"), name2 = cms.string("HGCalHEsil"), + nameX = cms.string("HGCalHESiliconSensitive"), ) diff --git a/Geometry/HGCalCommonData/python/testHGCV15XML_cfi.py b/Geometry/HGCalCommonData/python/testHGCV15XML_cfi.py new file mode 100644 index 0000000000000..05c0fcc3aa5ac --- /dev/null +++ b/Geometry/HGCalCommonData/python/testHGCV15XML_cfi.py @@ -0,0 +1,61 @@ +import FWCore.ParameterSet.Config as cms + +XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", + geomXMLFiles = cms.vstring( + 'Geometry/CMSCommonData/data/materials/2021/v1/materials.xml', + 'Geometry/CMSCommonData/data/rotations.xml', + 'Geometry/CMSCommonData/data/extend/v2/cmsextent.xml', + 'Geometry/CMSCommonData/data/cmsMother.xml', + 'Geometry/CMSCommonData/data/eta3/etaMax.xml', + 'Geometry/CMSCommonData/data/cmsCalo.xml', + 'Geometry/CMSCommonData/data/cmsMuon.xml', + 'Geometry/CMSCommonData/data/mgnt.xml', + 'Geometry/CMSCommonData/data/beampipe/2026/v3/beampipe.xml', + 'Geometry/CMSCommonData/data/cmsBeam/2026/v1/cmsBeam.xml', + 'Geometry/CMSCommonData/data/muonMB.xml', + 'Geometry/CMSCommonData/data/muonMagnet.xml', + 'Geometry/CMSCommonData/data/cavernData/2021/v1/cavernData.xml', + 'Geometry/CMSCommonData/data/cms/2026/v5/cms.xml', + 'Geometry/CMSCommonData/data/caloBase/2026/v5/caloBase.xml', + 'Geometry/CMSCommonData/data/muonBase/2026/v5/muonBase.xml', + 'Geometry/EcalCommonData/data/eregalgo/2026/v2/eregalgo.xml', + 'Geometry/EcalCommonData/data/ectkcable/2026/v1/ectkcable.xml', + 'Geometry/EcalCommonData/data/ectkcablemat/2026/v1/ectkcablemat.xml', + 'Geometry/EcalCommonData/data/ebalgo.xml', + 'Geometry/EcalCommonData/data/ebcon.xml', + 'Geometry/EcalCommonData/data/ebrot.xml', + 'Geometry/HcalCommonData/data/hcalrotations.xml', + 'Geometry/HcalCommonData/data/hcal/v2/hcalalgo.xml', + 'Geometry/HcalCommonData/data/hcalbarrelalgo.xml', + 'Geometry/HcalCommonData/data/hcalcablealgo/v2/hcalcablealgo.xml', + 'Geometry/HcalCommonData/data/hcalouteralgo.xml', + 'Geometry/HcalCommonData/data/hcalforwardalgo.xml', + 'Geometry/HcalCommonData/data/hcalSimNumbering/NoHE/hcalSimNumbering.xml', + 'Geometry/HcalCommonData/data/hcalRecNumbering/NoHE/hcalRecNumbering.xml', + 'Geometry/HcalCommonData/data/average/hcalforwardmaterial.xml', + 'Geometry/HGCalCommonData/data/hgcalMaterial/v1/hgcalMaterial.xml', + 'Geometry/HGCalCommonData/data/hgcal/v15/hgcal.xml', + 'Geometry/HGCalCommonData/data/hgcalcell/v15/hgcalcell.xml', + 'Geometry/HGCalCommonData/data/hgcalwafer/v15/hgcalwafer.xml', + 'Geometry/HGCalCommonData/data/hgcalEE/v15/hgcalEE.xml', + 'Geometry/HGCalCommonData/data/hgcalHEsil/v15/hgcalHEsil.xml', + 'Geometry/HGCalCommonData/data/hgcalHEmix/v15/hgcalHEmix.xml', + 'Geometry/HGCalCommonData/data/hgcalCons/v15/hgcalCons.xml', + 'Geometry/HGCalCommonData/data/hgcalConsData/v15/hgcalConsData.xml', + 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', + 'Geometry/ForwardCommonData/data/brmrotations.xml', + 'Geometry/ForwardCommonData/data/brm/2026/v1/brm.xml', + 'Geometry/EcalSimData/data/PhaseII/ecalsens.xml', + 'Geometry/HcalCommonData/data/hcalsens/NoHE/hcalsenspmf.xml', + 'Geometry/HcalSimData/data/hf.xml', + 'Geometry/HcalSimData/data/hfpmt.xml', + 'Geometry/HcalSimData/data/hffibrebundle.xml', + 'Geometry/HcalSimData/data/CaloUtil.xml', + 'Geometry/HGCalSimData/data/hgcsensv15.xml', + 'Geometry/HcalSimData/data/HcalProdCuts.xml', + 'Geometry/EcalSimData/data/EcalProdCuts.xml', + 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', + 'Geometry/CMSCommonData/data/FieldParameters.xml' + ), + rootNodeName = cms.string('cms:OCMS') +) diff --git a/Geometry/HGCalCommonData/python/testHGCalV15XML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalV15XML_cfi.py index 86aef458491ae..6ac5104762b48 100644 --- a/Geometry/HGCalCommonData/python/testHGCalV15XML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCalV15XML_cfi.py @@ -40,7 +40,7 @@ 'Geometry/HGCalCommonData/data/hgcalEE/v15/hgcalEE.xml', 'Geometry/HGCalCommonData/data/hgcalHEsil/v15/hgcalHEsil.xml', 'Geometry/HGCalCommonData/data/hgcalHEmix/v15/hgcalHEmix.xml', - 'Geometry/HGCalCommonData/data/hgcalCons/v14/hgcalCons.xml', + 'Geometry/HGCalCommonData/data/hgcalCons/v15/hgcalCons.xml', 'Geometry/HGCalCommonData/data/hgcalConsData/v15/hgcalConsData.xml', 'Geometry/ForwardCommonData/data/forwardshield/2026/v4/forwardshield.xml', 'Geometry/ForwardCommonData/data/brmrotations.xml', @@ -67,7 +67,7 @@ 'Geometry/HcalSimData/data/hfpmt.xml', 'Geometry/HcalSimData/data/hffibrebundle.xml', 'Geometry/HcalSimData/data/CaloUtil.xml', - 'Geometry/HGCalSimData/data/hgcsensv9.xml', + 'Geometry/HGCalSimData/data/hgcsensv15.xml', 'Geometry/MuonSimData/data/PhaseII/ME0EtaPart/muonSens.xml', 'Geometry/DTGeometryBuilder/data/dtSpecsFilter.xml', 'Geometry/CSCGeometryBuilder/data/cscSpecsFilter.xml', @@ -77,7 +77,7 @@ 'Geometry/GEMGeometryBuilder/data/v7/GEMSpecs.xml', 'Geometry/HcalSimData/data/HcalProdCuts.xml', 'Geometry/EcalSimData/data/EcalProdCuts.xml', - 'Geometry/HGCalSimData/data/hgcProdCutsv9.xml', + 'Geometry/HGCalSimData/data/hgcProdCutsv15.xml', 'Geometry/CMSCommonData/data/FieldParameters.xml', 'Geometry/MuonSimData/data/PhaseII/muonProdCuts.xml', ), diff --git a/Geometry/HGCalCommonData/python/testHGCalWafer8XML_cfi.py b/Geometry/HGCalCommonData/python/testHGCalWafer8XML_cfi.py index fe896fd23877c..f326c1fcec214 100644 --- a/Geometry/HGCalCommonData/python/testHGCalWafer8XML_cfi.py +++ b/Geometry/HGCalCommonData/python/testHGCalWafer8XML_cfi.py @@ -1,14 +1,15 @@ import FWCore.ParameterSet.Config as cms XMLIdealGeometryESSource = cms.ESSource("XMLIdealGeometryESSource", - geomXMLFiles = cms.vstring('Geometry/CMSCommonData/data/materials.xml', + geomXMLFiles = cms.vstring( + 'Geometry/CMSCommonData/data/materials/2021/v1/materials.xml', 'Geometry/CMSCommonData/data/rotations.xml', 'Geometry/HGCalCommonData/test/cms.xml', 'Geometry/HGCalCommonData/data/hgcalwafer/v9/hgcal.xml', - 'Geometry/HGCalCommonData/data/hgcalwafer/v9/hgcalpos.xml', + 'Geometry/HGCalCommonData/data/hgcalcell/v9/hgcalcell.xml', 'Geometry/HGCalCommonData/data/hgcalwafer/v9/hgcalwafer.xml', - 'Geometry/HGCalCommonData/data/hgcalcell/v9/hgcalcell.xml'), - rootNodeName = cms.string('cms:OCMS') + 'Geometry/HGCalCommonData/data/hgcalwafer/v9/hgcalpos.xml'), + rootNodeName = cms.string('cms:OCMS') ) diff --git a/Geometry/HGCalCommonData/src/HGCalDDDConstants.cc b/Geometry/HGCalCommonData/src/HGCalDDDConstants.cc index 383974b25985c..65ff2182351a5 100644 --- a/Geometry/HGCalCommonData/src/HGCalDDDConstants.cc +++ b/Geometry/HGCalCommonData/src/HGCalDDDConstants.cc @@ -25,7 +25,7 @@ using namespace geant_units::operators; HGCalDDDConstants::HGCalDDDConstants(const HGCalParameters* hp, const std::string& name) : hgpar_(hp), sqrt3_(std::sqrt(3.0)) { mode_ = hgpar_->mode_; - fullAndPart_ = (mode_ == HGCalGeometryMode::Hexagon8File); + fullAndPart_ = ((mode_ == HGCalGeometryMode::Hexagon8File) || (mode_ == HGCalGeometryMode::Hexagon8Module)); #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "Mode " << mode_ << " FullAndPart " << fullAndPart_; #endif @@ -615,9 +615,10 @@ std::pair HGCalDDDConstants::locateCell( auto itr = hgpar_->typesInLayers_.find(indx); int type = ((itr == hgpar_->typesInLayers_.end()) ? 2 : hgpar_->waferTypeL_[itr->second]); #ifdef EDM_ML_DEBUG - if (debug) + if (debug) { edm::LogVerbatim("HGCalGeom") << "LocateCell " << lay << ":" << waferU << ":" << waferV << ":" << indx << ":" << (itr == hgpar_->typesInLayers_.end()) << ":" << type; + } #endif int kndx = cellV * 100 + cellU; if (type == 0) { @@ -729,7 +730,7 @@ std::pair HGCalDDDConstants::locateCellTrap(int lay, int irad, int << hgpar_->iradMaxBH_[indx.first] << " Type " << type << " Z " << indx.first << ":" << z << " phi " << phi << " R " << r << ":" << range.first << ":" << range.second; #endif - if (mode_ != HGCalGeometryMode::TrapezoidFile) + if ((mode_ != HGCalGeometryMode::TrapezoidFile) && (mode_ != HGCalGeometryMode::TrapezoidModule)) r = std::max(range.first, std::min(r, range.second)); x = r * std::cos(phi); y = r * std::sin(phi); @@ -1131,7 +1132,7 @@ void HGCalDDDConstants::waferFromPosition(const double x, if ((dy <= 0.5 * hexside_) || (dx * tan30deg_ <= (hexside_ - dy))) { waferU = HGCalWaferIndex::waferU(hgpar_->waferCopy_[k]); waferV = HGCalWaferIndex::waferV(hgpar_->waferCopy_[k]); - if (mode_ == HGCalGeometryMode::Hexagon8File) { + if ((mode_ == HGCalGeometryMode::Hexagon8File) || (mode_ == HGCalGeometryMode::Hexagon8Module)) { int index = HGCalWaferIndex::waferIndex(layer, waferU, waferV); celltype = HGCalWaferType::getType(index, hgpar_->waferInfoMap_); } else { @@ -1590,7 +1591,7 @@ bool HGCalDDDConstants::isValidCell8(int lay, int waferU, int waferV, int cellU, << cellV << " Position " << x << ":" << y << ":" << rr << " Compare Limits " << hgpar_->rMinLayHex_[ll] << ":" << hgpar_->rMaxLayHex_[ll] << " Flag " << result; #endif - if (result && (mode_ == HGCalGeometryMode::Hexagon8File)) { + if (result && ((mode_ == HGCalGeometryMode::Hexagon8File) || (mode_ == HGCalGeometryMode::Hexagon8Module))) { int N = (type == 0) ? hgpar_->nCellsFine_ : hgpar_->nCellsCoarse_; auto partn = waferTypeRotation(lay, waferU, waferV, false, false); result = HGCalWaferMask::goodCell(cellU, cellV, N, partn.first, partn.second); diff --git a/Geometry/HGCalCommonData/src/HGCalGeomParameters.cc b/Geometry/HGCalCommonData/src/HGCalGeomParameters.cc index d59abd7570240..935ad9a04ce10 100644 --- a/Geometry/HGCalCommonData/src/HGCalGeomParameters.cc +++ b/Geometry/HGCalCommonData/src/HGCalGeomParameters.cc @@ -20,6 +20,7 @@ #include "Geometry/HGCalCommonData/interface/HGCalWaferType.h" #include +#include #include //#define EDM_ML_DEBUG @@ -706,17 +707,20 @@ void HGCalGeomParameters::loadGeometryHexagon8(const DDFilteredView& _fv, HGCalP if (lay == 0) { throw cms::Exception("DDException") << "Funny layer # " << lay << " zp " << zside << " in " << nsiz << " components"; - } else { + } else if (sol.shape() == DDSolidShape::ddtubs) { if (std::find(php.layer_.begin(), php.layer_.end(), lay) == php.layer_.end()) php.layer_.emplace_back(lay); + const DDTubs& tube = static_cast(sol); + double rin = HGCalParameters::k_ScaleFromDDD * tube.rIn(); + double rout = HGCalParameters::k_ScaleFromDDD * tube.rOut(); auto itr = layers.find(lay); if (itr == layers.end()) { - const DDTubs& tube = static_cast(sol); - double rin = HGCalParameters::k_ScaleFromDDD * tube.rIn(); - double rout = HGCalParameters::k_ScaleFromDDD * tube.rOut(); double zp = HGCalParameters::k_ScaleFromDDD * fv.translation().Z(); HGCalGeomParameters::layerParameters laypar(rin, rout, zp); layers[lay] = laypar; + } else { + (itr->second).rmin = std::min(rin, (itr->second).rmin); + (itr->second).rmax = std::max(rout, (itr->second).rmax); } if (trforms.find(std::make_pair(lay, zside)) == trforms.end()) { DD3Vector x, y, z; @@ -781,17 +785,20 @@ void HGCalGeomParameters::loadGeometryHexagon8(const cms::DDCompactView* cpv, if (lay == 0) { throw cms::Exception("DDException") << "Funny layer # " << lay << " zp " << zside << " in " << nsiz << " components"; - } else { + } else if (fv.shape() == cms::DDSolidShape::ddtubs) { if (std::find(php.layer_.begin(), php.layer_.end(), lay) == php.layer_.end()) php.layer_.emplace_back(lay); + const std::vector& pars = fv.parameters(); + double rin = HGCalParameters::k_ScaleFromDD4Hep * pars[0]; + double rout = HGCalParameters::k_ScaleFromDD4Hep * pars[1]; auto itr = layers.find(lay); if (itr == layers.end()) { - const std::vector& pars = fv.parameters(); - double rin = HGCalParameters::k_ScaleFromDD4Hep * pars[0]; - double rout = HGCalParameters::k_ScaleFromDD4Hep * pars[1]; double zp = HGCalParameters::k_ScaleFromDD4Hep * fv.translation().Z(); HGCalGeomParameters::layerParameters laypar(rin, rout, zp); layers[lay] = laypar; + } else { + (itr->second).rmin = std::min(rin, (itr->second).rmin); + (itr->second).rmax = std::max(rout, (itr->second).rmax); } if (trforms.find(std::make_pair(lay, zside)) == trforms.end()) { DD3Vector x, y, z; @@ -823,6 +830,271 @@ void HGCalGeomParameters::loadGeometryHexagon8(const cms::DDCompactView* cpv, loadGeometryHexagon8(layers, trforms, firstLayer, php); } +void HGCalGeomParameters::loadGeometryHexagonModule(const DDCompactView* cpv, + HGCalParameters& php, + const std::string& sdTag1, + const std::string& sdTag2, + int firstLayer) { +#ifdef EDM_ML_DEBUG + edm::LogVerbatim("HGCalGeom") << "HGCalGeomParameters (DDD)::loadGeometryHexagonModule called with tags " << sdTag1 + << ":" << sdTag2 << " firstLayer " << firstLayer << ":" << php.firstMixedLayer_; + int ntot1(0), ntot2(0); +#endif + std::map layers; + std::map, double> zvals; + std::map, HGCalParameters::hgtrform> trforms; + int levelTop = php.levelT_[0]; + + std::string attribute = "Volume"; + DDValue val1(attribute, sdTag2, 0.0); + DDSpecificsMatchesValueFilter filter1{val1}; + DDFilteredView fv1(*cpv, filter1); + bool dodet = fv1.firstChild(); + while (dodet) { +#ifdef EDM_ML_DEBUG + ++ntot1; +#endif + std::vector copy = fv1.copyNumbers(); + int nsiz = static_cast(copy.size()); + if (levelTop < nsiz) { + int lay = copy[levelTop]; + int zside = (nsiz > php.levelZSide_) ? copy[php.levelZSide_] : -1; + if (zside != 1) + zside = -1; + if (lay == 0) { + throw cms::Exception("DDException") + << "Funny layer # " << lay << " zp " << zside << " in " << nsiz << " components"; + } else { + if (zvals.find(std::make_pair(lay, zside)) == zvals.end()) { + zvals[std::make_pair(lay, zside)] = HGCalParameters::k_ScaleFromDDD * fv1.translation().Z(); +#ifdef EDM_ML_DEBUG + std::ostringstream st1; + st1 << "Name0 " << fv1.name() << " LTop " << levelTop << ":" << lay << " ZSide " << zside << " # of levels " + << nsiz; + for (const auto& c : copy) + st1 << ":" << c; + st1 << " Z " << zvals[std::make_pair(lay, zside)]; + edm::LogVerbatim("HGCalGeom") << st1.str(); +#endif + } + } + } + dodet = fv1.next(); + } + + DDValue val2(attribute, sdTag1, 0.0); + DDSpecificsMatchesValueFilter filter2{val2}; + DDFilteredView fv2(*cpv, filter2); + dodet = fv2.firstChild(); + while (dodet) { +#ifdef EDM_ML_DEBUG + ++ntot2; +#endif + std::vector copy = fv2.copyNumbers(); + int nsiz = static_cast(copy.size()); + if (levelTop < nsiz) { + int lay = copy[levelTop]; + int zside = (nsiz > php.levelZSide_) ? copy[php.levelZSide_] : -1; + if (zside != 1) + zside = -1; + const DDSolid& sol = fv2.logicalPart().solid(); +#ifdef EDM_ML_DEBUG + std::ostringstream st2; + st2 << "Name1 " << sol.name() << " shape " << sol.shape() << " LTop " << levelTop << ":" << lay << " ZSide " + << zside << ":" << php.levelZSide_ << " # of levels " << nsiz; + for (const auto& c : copy) + st2 << ":" << c; + edm::LogVerbatim("HGCalGeom") << st2.str(); +#endif + if (lay == 0) { + throw cms::Exception("DDException") + << "Funny layer # " << lay << " zp " << zside << " in " << nsiz << " components"; + } else if (sol.shape() == DDSolidShape::ddtubs) { + if (zvals.find(std::make_pair(lay, zside)) != zvals.end()) { + if (std::find(php.layer_.begin(), php.layer_.end(), lay) == php.layer_.end()) + php.layer_.emplace_back(lay); + auto itr = layers.find(lay); + if (itr == layers.end()) { + const DDTubs& tube = static_cast(sol); + double rin = HGCalParameters::k_ScaleFromDDD * tube.rIn(); + double rout = (php.firstMixedLayer_ > 0 && lay >= php.firstMixedLayer_) + ? php.radiusMixBoundary_[lay - php.firstMixedLayer_] + : HGCalParameters::k_ScaleFromDDD * tube.rOut(); + double zp = zvals[std::make_pair(lay, 1)]; + HGCalGeomParameters::layerParameters laypar(rin, rout, zp); + layers[lay] = laypar; +#ifdef EDM_ML_DEBUG + std::ostringstream st3; + st3 << "Name1 " << fv2.name() << " LTop " << levelTop << ":" << lay << " ZSide " << zside << " # of levels " + << nsiz; + for (const auto& c : copy) + st3 << ":" << c; + st3 << " R " << rin << ":" << rout; + edm::LogVerbatim("HGCalGeom") << st3.str(); +#endif + } + + if (trforms.find(std::make_pair(lay, zside)) == trforms.end()) { + DD3Vector x, y, z; + fv2.rotation().GetComponents(x, y, z); + const CLHEP::HepRep3x3 rotation(x.X(), y.X(), z.X(), x.Y(), y.Y(), z.Y(), x.Z(), y.Z(), z.Z()); + const CLHEP::HepRotation hr(rotation); + double xx = ((std::abs(fv2.translation().X()) < tolerance) + ? 0 + : HGCalParameters::k_ScaleFromDDD * fv2.translation().X()); + double yy = ((std::abs(fv2.translation().Y()) < tolerance) + ? 0 + : HGCalParameters::k_ScaleFromDDD * fv2.translation().Y()); + const CLHEP::Hep3Vector h3v(xx, yy, zvals[std::make_pair(lay, zside)]); + HGCalParameters::hgtrform mytrf; + mytrf.zp = zside; + mytrf.lay = lay; + mytrf.sec = 0; + mytrf.subsec = 0; + mytrf.h3v = h3v; + mytrf.hr = hr; + trforms[std::make_pair(lay, zside)] = mytrf; + } + } + } + } + dodet = fv2.next(); + } +#ifdef EDM_ML_DEBUG + edm::LogVerbatim("HGCalGeom") << "Total # of views " << ntot1 << ":" << ntot2; +#endif + loadGeometryHexagon8(layers, trforms, firstLayer, php); +} + +void HGCalGeomParameters::loadGeometryHexagonModule(const cms::DDCompactView* cpv, + HGCalParameters& php, + const std::string& sdTag1, + const std::string& sdTag2, + int firstLayer) { +#ifdef EDM_ML_DEBUG + edm::LogVerbatim("HGCalGeom") << "HGCalGeomParameters (DD4Hep)::loadGeometryHexagonModule called with tags " << sdTag1 + << ":" << sdTag2 << " firstLayer " << firstLayer; + int ntot1(0), ntot2(0); +#endif + std::map layers; + std::map, HGCalParameters::hgtrform> trforms; + std::map, double> zvals; + int levelTop = php.levelT_[0]; + + const cms::DDFilter filter1("Volume", sdTag2); + cms::DDFilteredView fv1((*cpv), filter1); + while (fv1.firstChild()) { +#ifdef EDM_ML_DEBUG + ++ntot1; +#endif + int nsiz = static_cast(fv1.level()); + if (nsiz > levelTop) { + std::vector copy = fv1.copyNos(); + int lay = copy[nsiz - levelTop - 1]; + int zside = (nsiz > php.levelZSide_) ? copy[nsiz - php.levelZSide_ - 1] : -1; + if (zside != 1) + zside = -1; + if (lay == 0) { + throw cms::Exception("DDException") + << "Funny layer # " << lay << " zp " << zside << " in " << nsiz << " components"; + } else { + if (zvals.find(std::make_pair(lay, zside)) == zvals.end()) { + zvals[std::make_pair(lay, zside)] = HGCalParameters::k_ScaleFromDD4Hep * fv1.translation().Z(); +#ifdef EDM_ML_DEBUG + std::ostringstream st1; + st1 << "Name0 " << fv1.name() << " LTop " << levelTop << ":" << lay << " ZSide " << zside << " # of levels " + << nsiz; + for (const auto& c : copy) + st1 << ":" << c; + st1 << " Z " << zvals[std::make_pair(lay, zside)]; + edm::LogVerbatim("HGCalGeom") << st1.str(); +#endif + } + } + } + } + + const cms::DDFilter filter2("Volume", sdTag1); + cms::DDFilteredView fv2((*cpv), filter2); + while (fv2.firstChild()) { + // Layers first + int nsiz = static_cast(fv2.level()); +#ifdef EDM_ML_DEBUG + ++ntot2; +#endif + if (nsiz > levelTop) { + std::vector copy = fv2.copyNos(); + int lay = copy[nsiz - levelTop - 1]; + int zside = (nsiz > php.levelZSide_) ? copy[nsiz - php.levelZSide_ - 1] : -1; + if (zside != 1) + zside = -1; +#ifdef EDM_ML_DEBUG + std::ostringstream st2; + st2 << "Name1 " << fv2.name() << "Shape " << cms::dd::name(cms::DDSolidShapeMap, fv2.shape()) << " LTop " + << levelTop << ":" << lay << " ZSide " << zside << ":" << php.levelZSide_ << " # of levels " << nsiz; + for (const auto& c : copy) + st2 << ":" << c; + edm::LogVerbatim("HGCalGeom") << st2.str(); +#endif + if (lay == 0) { + throw cms::Exception("DDException") + << "Funny layer # " << lay << " zp " << zside << " in " << nsiz << " components"; + } else { + if (zvals.find(std::make_pair(lay, zside)) != zvals.end()) { + if (std::find(php.layer_.begin(), php.layer_.end(), lay) == php.layer_.end()) + php.layer_.emplace_back(lay); + auto itr = layers.find(lay); + if (itr == layers.end()) { + const std::vector& pars = fv2.parameters(); + double rin = HGCalParameters::k_ScaleFromDD4Hep * pars[0]; + double rout = (php.firstMixedLayer_ > 0 && lay >= php.firstMixedLayer_) + ? php.radiusMixBoundary_[lay - php.firstMixedLayer_] + : HGCalParameters::k_ScaleFromDD4Hep * pars[1]; + double zp = zvals[std::make_pair(lay, 1)]; + HGCalGeomParameters::layerParameters laypar(rin, rout, zp); + layers[lay] = laypar; +#ifdef EDM_ML_DEBUG + std::ostringstream st3; + st3 << "Name2 " << fv2.name() << " LTop " << levelTop << ":" << lay << " ZSide " << zside << " # of levels " + << nsiz; + for (const auto& c : copy) + st3 << ":" << c; + st3 << " R " << rin << ":" << rout; + edm::LogVerbatim("HGCalGeom") << st3.str(); +#endif + } + + if (trforms.find(std::make_pair(lay, zside)) == trforms.end()) { + DD3Vector x, y, z; + fv2.rotation().GetComponents(x, y, z); + const CLHEP::HepRep3x3 rotation(x.X(), y.X(), z.X(), x.Y(), y.Y(), z.Y(), x.Z(), y.Z(), z.Z()); + const CLHEP::HepRotation hr(rotation); + double xx = ((std::abs(fv2.translation().X()) < tolerance) + ? 0 + : HGCalParameters::k_ScaleFromDD4Hep * fv2.translation().X()); + double yy = ((std::abs(fv2.translation().Y()) < tolerance) + ? 0 + : HGCalParameters::k_ScaleFromDD4Hep * fv2.translation().Y()); + const CLHEP::Hep3Vector h3v(xx, yy, zvals[std::make_pair(lay, zside)]); + HGCalParameters::hgtrform mytrf; + mytrf.zp = zside; + mytrf.lay = lay; + mytrf.sec = 0; + mytrf.subsec = 0; + mytrf.h3v = h3v; + mytrf.hr = hr; + trforms[std::make_pair(lay, zside)] = mytrf; + } + } + } + } + } +#ifdef EDM_ML_DEBUG + edm::LogVerbatim("HGCalGeom") << "Total # of views " << ntot1 << ":" << ntot2; +#endif + loadGeometryHexagon8(layers, trforms, firstLayer, php); +} + void HGCalGeomParameters::loadGeometryHexagon8(const std::map& layers, std::map, HGCalParameters::hgtrform>& trforms, const int& firstLayer, @@ -1570,7 +1842,7 @@ void HGCalGeomParameters::loadWaferHexagon8(HGCalParameters& php) { double zpos = php.zLayerHex_[i]; int kndx = HGCalWaferIndex::waferIndex(lay, u, v); int type(-1); - if (php.mode_ == HGCalGeometryMode::Hexagon8File) + if ((php.mode_ == HGCalGeometryMode::Hexagon8File) || (php.mode_ == HGCalGeometryMode::Hexagon8Module)) type = wType->getType(kndx, php.waferInfoMap_); if (type < 0) type = wType->getType(HGCalParameters::k_ScaleToDDD * xpos0, @@ -1602,7 +1874,7 @@ void HGCalGeomParameters::loadWaferHexagon8(HGCalParameters& php) { if (php.waferMaskMode_ > 0) { std::pair corner0 = HGCalWaferMask::getTypeMode( xpos0, ypos0, r1, R1, php.rMinLayHex_[i], php.rMaxLayHex_[i], type, php.waferMaskMode_); - if (php.mode_ == HGCalGeometryMode::Hexagon8File) { + if ((php.mode_ == HGCalGeometryMode::Hexagon8File) || (php.mode_ == HGCalGeometryMode::Hexagon8Module)) { auto itr = php.waferInfoMap_.find(wl); if (itr != php.waferInfoMap_.end()) { int part = (itr->second).part; @@ -1758,7 +2030,7 @@ void HGCalGeomParameters::loadCellTrapezoid(HGCalParameters& php) { #endif // Find the radius of each eta-partitions - if (php.mode_ == HGCalGeometryMode::TrapezoidFile) { + if ((php.mode_ == HGCalGeometryMode::TrapezoidFile) || (php.mode_ == HGCalGeometryMode::TrapezoidModule)) { //Ring radii for each partition for (unsigned int k = 0; k < 2; ++k) { for (unsigned int kk = 0; kk < php.tileRingR_.size(); ++kk) { diff --git a/Geometry/HGCalCommonData/src/HGCalGeomRotation.cc b/Geometry/HGCalCommonData/src/HGCalGeomRotation.cc index c6d10e52f8f3f..49ae8e3c1a6ec 100644 --- a/Geometry/HGCalCommonData/src/HGCalGeomRotation.cc +++ b/Geometry/HGCalCommonData/src/HGCalGeomRotation.cc @@ -36,8 +36,7 @@ void HGCalGeomRotation::uvMappingFrom60DegreeSector0(WaferCentring waferCentring if (waferCentring != WaferCentring::WaferCentred) { edm::LogError("HGCalGeomRotation") << "HGCalGeomRotation: 60 degree sector defintion selected, but not WaferCentred centring. This is " - "incompatible, switching to WaferCentred centring"; - waferCentring = WaferCentring::WaferCentred; + "incompatible, assuming WaferCentred centring"; } if (sector > 5) { @@ -125,8 +124,7 @@ unsigned HGCalGeomRotation::uvMappingTo60DegreeSector0(WaferCentring waferCentri if (waferCentring != WaferCentring::WaferCentred) { edm::LogError("HGCalGeomRotation") << "HGCalGeomRotation: 60 degree sector defintion selected, but not WaferCentred centring. This is " - "incompatible, switching to WaferCentred centring"; - waferCentring = WaferCentring::WaferCentred; + "incompatible, assuming WaferCentred centring"; } if (moduleU > 0 && moduleV >= 0) { @@ -135,8 +133,7 @@ unsigned HGCalGeomRotation::uvMappingTo60DegreeSector0(WaferCentring waferCentri } else { sector = 1; } - } - if (moduleU >= moduleV && moduleV < 0) { + } else if (moduleU >= moduleV && moduleV < 0) { if (moduleU >= 0) { sector = 5; } else { diff --git a/Geometry/HGCalCommonData/src/HGCalGeomTools.cc b/Geometry/HGCalCommonData/src/HGCalGeomTools.cc index 3695559df5394..6b9a600edd98f 100644 --- a/Geometry/HGCalCommonData/src/HGCalGeomTools.cc +++ b/Geometry/HGCalCommonData/src/HGCalGeomTools.cc @@ -37,7 +37,8 @@ void HGCalGeomTools::radius(double zf, if ((zb1 != zFront1.begin()) && (std::abs(*zb1 - zb) < tol_)) { --zb1; dz2 = -2 * tol_; - } else if (std::abs(*(zb1 + 1) - zb) < tol_) { + } + if (((zb1 + 1) != zFront1.end()) && (std::abs(*(zb1 + 1) - zb) < tol_)) { dz2 = -2 * tol_; } auto zb2 = std::lower_bound(zFront2.begin(), zFront2.end(), zb); diff --git a/Geometry/HGCalCommonData/src/HGCalGeometryMode.cc b/Geometry/HGCalCommonData/src/HGCalGeometryMode.cc index f3288922929de..84af1dce96222 100644 --- a/Geometry/HGCalCommonData/src/HGCalGeometryMode.cc +++ b/Geometry/HGCalCommonData/src/HGCalGeometryMode.cc @@ -10,6 +10,8 @@ HGCalStringToEnumParser::HGCalStringToEnumParse enumMap["HGCalGeometryMode::Trapezoid"] = HGCalGeometryMode::Trapezoid; enumMap["HGCalGeometryMode::Hexagon8File"] = HGCalGeometryMode::Hexagon8File; enumMap["HGCalGeometryMode::TrapezoidFile"] = HGCalGeometryMode::TrapezoidFile; + enumMap["HGCalGeometryMode::Hexagon8Module"] = HGCalGeometryMode::Hexagon8Module; + enumMap["HGCalGeometryMode::TrapezoidModule"] = HGCalGeometryMode::TrapezoidModule; } template <> diff --git a/Geometry/HGCalCommonData/src/HGCalParametersFromDD.cc b/Geometry/HGCalCommonData/src/HGCalParametersFromDD.cc index 4c80478bf5cb4..6fcd0bad59173 100644 --- a/Geometry/HGCalCommonData/src/HGCalParametersFromDD.cc +++ b/Geometry/HGCalCommonData/src/HGCalParametersFromDD.cc @@ -78,10 +78,12 @@ bool HGCalParametersFromDD::build(const DDCompactView* cpv, DDsvalues_type sv(fv.mergedSpecifics()); php.mode_ = getGeometryMode("GeometryMode", sv); #ifdef EDM_ML_DEBUG - edm::LogVerbatim("HGCalGeom") << "GeometryMode " << php.mode_ << ":" << HGCalGeometryMode::Hexagon << ":" - << HGCalGeometryMode::HexagonFull << ":" << HGCalGeometryMode::Hexagon8 << ":" - << HGCalGeometryMode::Hexagon8Full << ":" << HGCalGeometryMode::Hexagon8File << ":" - << HGCalGeometryMode::Trapezoid << ":" << HGCalGeometryMode::TrapezoidFile; + edm::LogVerbatim("HGCalGeom") << "Volume " << name << " GeometryMode " << php.mode_ << ":" + << HGCalGeometryMode::Hexagon << ":" << HGCalGeometryMode::HexagonFull << ":" + << HGCalGeometryMode::Hexagon8 << ":" << HGCalGeometryMode::Hexagon8Full << ":" + << HGCalGeometryMode::Hexagon8File << ":" << HGCalGeometryMode::Hexagon8Module << ":" + << HGCalGeometryMode::Trapezoid << ":" << HGCalGeometryMode::TrapezoidFile << ":" + << HGCalGeometryMode::TrapezoidModule; #endif php.levelZSide_ = 3; // Default level for ZSide php.detectorType_ = 0; // These two parameters are @@ -107,7 +109,7 @@ bool HGCalParametersFromDD::build(const DDCompactView* cpv, php.waferZSide_ = 0; } if ((php.mode_ == HGCalGeometryMode::Hexagon8) || (php.mode_ == HGCalGeometryMode::Hexagon8Full) || - (php.mode_ == HGCalGeometryMode::Hexagon8File)) { + (php.mode_ == HGCalGeometryMode::Hexagon8File) || (php.mode_ == HGCalGeometryMode::Hexagon8Module)) { php.levelT_ = dbl_to_int(getDDDArray("LevelTop", sv)); php.levelZSide_ = static_cast(getDDDValue("LevelZSide", sv)); php.nCellsFine_ = php.nCellsCoarse_ = 0; @@ -193,7 +195,17 @@ bool HGCalParametersFromDD::build(const DDCompactView* cpv, php.defineFull_ = true; // Load wafer positions geom->loadWaferHexagon8(php); - } else if ((php.mode_ == HGCalGeometryMode::Trapezoid) || (php.mode_ == HGCalGeometryMode::TrapezoidFile)) { + } else if (php.mode_ == HGCalGeometryMode::Hexagon8Module) { + // Load the SpecPars + geom->loadSpecParsHexagon8(fv, php); + // Load Geometry parameters + geom->loadGeometryHexagonModule(cpv, php, name, namec, 1); + // Set complete fill mode + php.defineFull_ = true; + // Load wafer positions + geom->loadWaferHexagon8(php); + } else if ((php.mode_ == HGCalGeometryMode::Trapezoid) || (php.mode_ == HGCalGeometryMode::TrapezoidFile) || + (php.mode_ == HGCalGeometryMode::TrapezoidModule)) { // Load maximum eta & top level php.levelT_ = dbl_to_int(getDDDArray("LevelTop", sv)); php.firstLayer_ = (int)(getDDDValue("FirstLayer", sv)); @@ -243,7 +255,7 @@ bool HGCalParametersFromDD::build(const cms::DDCompactView* cpv, const std::string& name2) { #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCalGeom") << "HGCalParametersFromDD (DD4Hep)::build called with " - << "names " << name << ":" << namew << ":" << namec << ":" << namet; + << "names " << name << ":" << namew << ":" << namec << ":" << namet << ":" << name2; #endif cms::DDVectorsMap vmap = cpv->detector()->vectors(); const cms::DDFilter filter("Volume", name); @@ -252,18 +264,21 @@ bool HGCalParametersFromDD::build(const cms::DDCompactView* cpv, std::vector tempD; bool ok = fv.firstChild(); tempS = fv.get >(name2, "GeometryMode"); - if (tempS.empty()) + if (tempS.empty()) { tempS = fv.get >(name, "GeometryMode"); + } std::string sv = (!tempS.empty()) ? tempS[0] : "HGCalGeometryMode::Hexagon8Full"; HGCalGeometryMode::WaferMode mode(HGCalGeometryMode::Polyhedra); if (ok) { php.mode_ = getGeometryMode(sv); #ifdef EDM_ML_DEBUG - edm::LogVerbatim("HGCalGeom") << "GeometryMode " << php.mode_ << ":" << HGCalGeometryMode::Hexagon << ":" - << HGCalGeometryMode::HexagonFull << ":" << HGCalGeometryMode::Hexagon8 << ":" - << HGCalGeometryMode::Hexagon8Full << ":" << HGCalGeometryMode::Hexagon8File << ":" - << HGCalGeometryMode::Trapezoid << ":" << HGCalGeometryMode::TrapezoidFile; + edm::LogVerbatim("HGCalGeom") << "Volume " << name << " GeometryMode " << php.mode_ << ":" + << HGCalGeometryMode::Hexagon << ":" << HGCalGeometryMode::HexagonFull << ":" + << HGCalGeometryMode::Hexagon8 << ":" << HGCalGeometryMode::Hexagon8Full << ":" + << HGCalGeometryMode::Hexagon8File << ":" << HGCalGeometryMode::Hexagon8Module << ":" + << HGCalGeometryMode::Trapezoid << ":" << HGCalGeometryMode::TrapezoidFile << ":" + << HGCalGeometryMode::TrapezoidModule; #endif php.levelZSide_ = 3; // Default level for ZSide php.detectorType_ = 0; // These two parameters are @@ -282,7 +297,7 @@ bool HGCalParametersFromDD::build(const cms::DDCompactView* cpv, php.waferZSide_ = 0; } if ((php.mode_ == HGCalGeometryMode::Hexagon8) || (php.mode_ == HGCalGeometryMode::Hexagon8Full) || - (php.mode_ == HGCalGeometryMode::Hexagon8File)) { + (php.mode_ == HGCalGeometryMode::Hexagon8File) || (php.mode_ == HGCalGeometryMode::Hexagon8Module)) { php.levelT_ = dbl_to_int(fv.get >(name, "LevelTop")); tempD = fv.get >(name, "LevelZSide"); php.levelZSide_ = static_cast(tempD[0]); @@ -373,7 +388,17 @@ bool HGCalParametersFromDD::build(const cms::DDCompactView* cpv, php.defineFull_ = true; // Load wafer positions geom->loadWaferHexagon8(php); - } else if ((php.mode_ == HGCalGeometryMode::Trapezoid) || (php.mode_ == HGCalGeometryMode::TrapezoidFile)) { + } else if (php.mode_ == HGCalGeometryMode::Hexagon8Module) { + // Load the SpecPars + geom->loadSpecParsHexagon8(fv, vmap, php, name); + // Load Geometry parameters + geom->loadGeometryHexagonModule(cpv, php, name, namec, 1); + // Set complete fill mode + php.defineFull_ = true; + // Load wafer positions + geom->loadWaferHexagon8(php); + } else if ((php.mode_ == HGCalGeometryMode::Trapezoid) || (php.mode_ == HGCalGeometryMode::TrapezoidFile) || + (php.mode_ == HGCalGeometryMode::TrapezoidModule)) { // Load maximum eta & top level php.levelT_ = dbl_to_int(fv.get >(name, "LevelTop")); tempD = fv.get >(name, "LevelZSide"); diff --git a/Geometry/HGCalCommonData/test/HGCGeometryTester.cc b/Geometry/HGCalCommonData/test/HGCGeometryTester.cc index f80ad0317058c..70e846d63c3ee 100644 --- a/Geometry/HGCalCommonData/test/HGCGeometryTester.cc +++ b/Geometry/HGCalCommonData/test/HGCGeometryTester.cc @@ -35,12 +35,14 @@ #include "DetectorDescription/Core/interface/DDSolid.h" #include "DetectorDescription/Core/interface/DDSpecifics.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "Geometry/Records/interface/IdealGeometryRecord.h" class HGCGeometryTester : public edm::one::EDAnalyzer<> { public: explicit HGCGeometryTester(const edm::ParameterSet&); ~HGCGeometryTester() override; + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); void beginJob() override {} void analyze(edm::Event const& iEvent, edm::EventSetup const&) override; @@ -53,11 +55,17 @@ class HGCGeometryTester : public edm::one::EDAnalyzer<> { HGCGeometryTester::HGCGeometryTester(const edm::ParameterSet& iC) : ddToken_{esConsumes(edm::ESInputTag{})} { - square = iC.getUntrackedParameter("SquareType", true); + square = iC.getUntrackedParameter("SquareType", false); } HGCGeometryTester::~HGCGeometryTester() {} +void HGCGeometryTester::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.addUntracked("SquareType", false); + descriptions.add("hgcGeometryTester", desc); +} + // ------------ method called to produce the data ------------ void HGCGeometryTester::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { const auto& pDD = iSetup.getData(ddToken_); diff --git a/Geometry/HGCalCommonData/test/HGCalNumberingTester.cc b/Geometry/HGCalCommonData/test/HGCalNumberingTester.cc index 2b9f212933d1a..908af8acbe140 100644 --- a/Geometry/HGCalCommonData/test/HGCalNumberingTester.cc +++ b/Geometry/HGCalCommonData/test/HGCalNumberingTester.cc @@ -36,12 +36,14 @@ #include "DetectorDescription/Core/interface/DDExpandedView.h" #include "DetectorDescription/Core/interface/DDSpecifics.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "Geometry/HGCalCommonData/interface/HGCalDDDConstants.h" #include "Geometry/Records/interface/IdealGeometryRecord.h" class HGCalNumberingTester : public edm::one::EDAnalyzer<> { public: explicit HGCalNumberingTester(const edm::ParameterSet&); + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); void beginJob() override {} void analyze(edm::Event const& iEvent, edm::EventSetup const&) override; @@ -88,6 +90,19 @@ HGCalNumberingTester::HGCalNumberingTester(const edm::ParameterSet& iC) { << std::endl; } +void HGCalNumberingTester::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + std::vector vecxy; + edm::ParameterSetDescription desc; + desc.add("NameSense", "HGCalEESensitive"); + desc.add("NameDevice", "HGCal EE"); + desc.add >("LocalPositionX", vecxy); + desc.add >("LocalPositionY", vecxy); + desc.add("Increment", 19); + desc.add("DetType", 2); + desc.add("Reco", false); + descriptions.add("hgcalNumberingTesterEE", desc); +} + // ------------ method called to produce the data ------------ void HGCalNumberingTester::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { const HGCalDDDConstants& hgdc = iSetup.getData(dddToken_); diff --git a/Geometry/HGCalCommonData/test/HGCalParameterTester.cc b/Geometry/HGCalCommonData/test/HGCalParameterTester.cc index bf8233963577d..86b3756288bb2 100644 --- a/Geometry/HGCalCommonData/test/HGCalParameterTester.cc +++ b/Geometry/HGCalCommonData/test/HGCalParameterTester.cc @@ -5,6 +5,8 @@ #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/MakerMacros.h" #include "FWCore/Framework/interface/one/EDAnalyzer.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "Geometry/HGCalCommonData/interface/HGCalParameters.h" #include "Geometry/HGCalCommonData/interface/HGCalTileIndex.h" @@ -15,6 +17,7 @@ class HGCalParameterTester : public edm::one::EDAnalyzer<> { public: explicit HGCalParameterTester(const edm::ParameterSet&); ~HGCalParameterTester() override {} + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); void beginJob() override {} void analyze(edm::Event const& iEvent, edm::EventSetup const&) override; @@ -36,9 +39,16 @@ class HGCalParameterTester : public edm::one::EDAnalyzer<> { }; HGCalParameterTester::HGCalParameterTester(const edm::ParameterSet& ic) - : name_(ic.getUntrackedParameter("Name")), + : name_(ic.getParameter("Name")), token_(esConsumes(edm::ESInputTag{"", name_})), - mode_(ic.getUntrackedParameter("Mode")) {} + mode_(ic.getParameter("Mode")) {} + +void HGCalParameterTester::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.add("Name", "HGCalEESensitive"); + desc.add("Mode", 1); + descriptions.add("hgcParameterTesterEE", desc); +} void HGCalParameterTester::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { edm::LogVerbatim("HGCalGeomr") << "HGCalParameter::Here I am"; diff --git a/Geometry/HGCalCommonData/test/HGCalValidHexTester.cc b/Geometry/HGCalCommonData/test/HGCalValidHexTester.cc index 1e9b7f7bdcaeb..e04a31c129d57 100644 --- a/Geometry/HGCalCommonData/test/HGCalValidHexTester.cc +++ b/Geometry/HGCalCommonData/test/HGCalValidHexTester.cc @@ -28,7 +28,9 @@ #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "DataFormats/DetId/interface/DetId.h" #include "DataFormats/ForwardDetId/interface/HGCSiliconDetId.h" @@ -38,43 +40,56 @@ class HGCalValidHexTester : public edm::one::EDAnalyzer<> { public: explicit HGCalValidHexTester(const edm::ParameterSet&); - ~HGCalValidHexTester() override; + ~HGCalValidHexTester() override {} + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); void beginJob() override {} void analyze(edm::Event const& iEvent, edm::EventSetup const&) override; void endJob() override {} private: + const std::string nameDetector_, nameSense_; + const std::vector layers_, moduleU_, moduleV_, types_; edm::ESGetToken dddToken_; - std::string nameDetector_, nameSense_; - std::vector layers_, moduleU_, moduleV_, types_; }; -HGCalValidHexTester::HGCalValidHexTester(const edm::ParameterSet& iC) { - nameDetector_ = iC.getParameter("NameDevice"); - nameSense_ = iC.getParameter("NameSense"); - layers_ = iC.getParameter >("Layers"); - moduleU_ = iC.getParameter >("ModuleU"); - moduleV_ = iC.getParameter >("ModuleV"); - types_ = iC.getParameter >("Types"); - +HGCalValidHexTester::HGCalValidHexTester(const edm::ParameterSet& iC) + : nameDetector_(iC.getParameter("NameDevice")), + nameSense_(iC.getParameter("NameSense")), + layers_(iC.getParameter >("Layers")), + moduleU_(iC.getParameter >("ModuleU")), + moduleV_(iC.getParameter >("ModuleV")), + types_(iC.getParameter >("Types")) { dddToken_ = esConsumes(edm::ESInputTag{"", nameSense_}); - std::cout << "Test valid cells for " << nameDetector_ << " using constants of " << nameSense_ << " for " - << layers_.size() << " modules" << std::endl; + edm::LogVerbatim("HGCalGeom") << "Test valid cells for " << nameDetector_ << " using constants of " << nameSense_ + << " for " << layers_.size() << " modules"; for (unsigned int k = 0; k < layers_.size(); ++k) - std::cout << "Wafer[" << k << "] Layer " << layers_[k] << " Type " << types_[k] << " U:V " << moduleU_[k] << ":" - << moduleV_[k] << std::endl; + edm::LogVerbatim("HGCalGeom") << "Wafer[" << k << "] Layer " << layers_[k] << " Type " << types_[k] << " U:V " + << moduleU_[k] << ":" << moduleV_[k]; } -HGCalValidHexTester::~HGCalValidHexTester() {} +void HGCalValidHexTester::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + std::vector layers = {21, 21, 22, 22}; + std::vector modU = {3, -3, 3, -3}; + std::vector modV = {6, -6, 6, -6}; + std::vector types = {2, 2, 2, 2}; + edm::ParameterSetDescription desc; + desc.add("NameDevice", "HGCal HE Silicon"); + desc.add("NameSense", "HGCalHESiliconSensitive"); + desc.add >("Layers", layers); + desc.add >("ModuleU", modU); + desc.add >("ModuleV", modV); + desc.add >("Types", types); + descriptions.add("hgcalValidHexTesterHEF", desc); +} // ------------ method called to produce the data ------------ void HGCalValidHexTester::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { const DetId::Detector det = (nameSense_ == "HGCalEESensitive") ? DetId::HGCalEE : DetId::HGCalHSi; const HGCalDDDConstants& hgdc = iSetup.getData(dddToken_); - std::cout << nameDetector_ << " Layers = " << hgdc.layers(true) << " Sectors = " << hgdc.sectors() << std::endl - << std::endl; + edm::LogVerbatim("HGCalGeom") << nameDetector_ << " Layers = " << hgdc.layers(true) << " Sectors = " << hgdc.sectors() + << "\n"; for (unsigned int k = 0; k < layers_.size(); ++k) { int nCells = (types_[k] == 0) ? HGCSiliconDetId::HGCalFineN : HGCSiliconDetId::HGCalCoarseN; int ncell(0); @@ -82,9 +97,10 @@ void HGCalValidHexTester::analyze(const edm::Event& iEvent, const edm::EventSetu for (int v = 0; v < 2 * nCells; ++v) { if (((v - u) < nCells) && (u - v) <= nCells) { std::string state = hgdc.isValidHex8(layers_[k], moduleU_[k], moduleV_[k], u, v) ? "within" : "outside of"; - std::cout << "Cell[" << k << "," << ncell << "] " - << HGCSiliconDetId(det, 1, types_[k], layers_[k], moduleU_[k], moduleV_[k], u, v) << " is " << state - << " fiducial volume" << std::endl; + edm::LogVerbatim("HGCalGeom") << "Cell[" << k << "," << ncell << "] " + << HGCSiliconDetId( + det, 1, types_[k], layers_[k], moduleU_[k], moduleV_[k], u, v) + << " is " << state << " fiducial volume"; ++ncell; } } diff --git a/Geometry/HGCalCommonData/test/HGCalWaferTester.cc b/Geometry/HGCalCommonData/test/HGCalWaferTester.cc index 93dc32bca30cd..397cea0118ba6 100644 --- a/Geometry/HGCalCommonData/test/HGCalWaferTester.cc +++ b/Geometry/HGCalCommonData/test/HGCalWaferTester.cc @@ -32,53 +32,64 @@ #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "Geometry/HGCalCommonData/interface/HGCalDDDConstants.h" #include "Geometry/Records/interface/IdealGeometryRecord.h" class HGCalWaferTester : public edm::one::EDAnalyzer<> { public: explicit HGCalWaferTester(const edm::ParameterSet&); - ~HGCalWaferTester() override; + ~HGCalWaferTester() override {} + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); void beginJob() override {} void analyze(edm::Event const& iEvent, edm::EventSetup const&) override; void endJob() override {} private: + const std::string nameSense_, nameDetector_; + const bool reco_; edm::ESGetToken dddToken_; - std::string nameSense_, nameDetector_; - bool reco_; }; -HGCalWaferTester::HGCalWaferTester(const edm::ParameterSet& iC) { - nameSense_ = iC.getParameter("NameSense"); - nameDetector_ = iC.getParameter("NameDevice"); - reco_ = iC.getParameter("Reco"); - +HGCalWaferTester::HGCalWaferTester(const edm::ParameterSet& iC) + : nameSense_(iC.getParameter("NameSense")), + nameDetector_(iC.getParameter("NameDevice")), + reco_(iC.getParameter("Reco")) { dddToken_ = esConsumes(edm::ESInputTag{"", nameSense_}); - std::cout << "Test numbering for " << nameDetector_ << " using constants of " << nameSense_ << " for RecoFlag " - << reco_ << std::endl; + edm::LogVerbatim("HGCalGeom") << "Test numbering for " << nameDetector_ << " using constants of " << nameSense_ + << " for RecoFlag " << reco_; } -HGCalWaferTester::~HGCalWaferTester() {} +void HGCalWaferTester::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.add("NameSense", "HGCalEESensitive"); + desc.add("NameDevice", "HGCal EE"); + desc.add("Reco", false); + descriptions.add("hgcalWaferTesterEE", desc); +} // ------------ method called to produce the data ------------ void HGCalWaferTester::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { const HGCalDDDConstants& hgdc = iSetup.getData(dddToken_); - std::cout << nameDetector_ << " Layers = " << hgdc.layers(reco_) << " Sectors = " << hgdc.sectors() << std::endl; + edm::LogVerbatim("HGCalGeom") << nameDetector_ << " Layers = " << hgdc.layers(reco_) + << " Sectors = " << hgdc.sectors() << std::endl; if (hgdc.waferHexagon8()) { int layer = hgdc.firstLayer(); for (int u = -12; u <= 12; ++u) { std::pair xy = hgdc.waferPosition(layer, u, 0, reco_); - std::cout << " iz = +, u = " << u << ", v = 0: x = " << xy.first << " y = " << xy.second << "\n" - << " iz = -, u = " << u << ", v = 0: x = " << -xy.first << " y = " << xy.second << "\n"; + edm::LogVerbatim("HGCalGeom") << " iz = +, u = " << u << ", v = 0: x = " << xy.first << " y = " << xy.second + << "\n" + << " iz = -, u = " << u << ", v = 0: x = " << -xy.first << " y = " << xy.second; } for (int v = -12; v <= 12; ++v) { std::pair xy = hgdc.waferPosition(layer, 0, v, reco_); - std::cout << " iz = +, u = 0, v = " << v << ": x = " << xy.first << " y = " << xy.second << "\n" - << " iz = -, u = 0, v = " << v << ": x = " << -xy.first << " y = " << xy.second << "\n"; + edm::LogVerbatim("HGCalGeom") << " iz = +, u = 0, v = " << v << ": x = " << xy.first << " y = " << xy.second + << "\n" + << " iz = -, u = 0, v = " << v << ": x = " << -xy.first << " y = " << xy.second; } } } diff --git a/Geometry/HGCalCommonData/test/cms.xml b/Geometry/HGCalCommonData/test/cms.xml index b42537f44de7a..16cc2d0cd146a 100644 --- a/Geometry/HGCalCommonData/test/cms.xml +++ b/Geometry/HGCalCommonData/test/cms.xml @@ -15,6 +15,10 @@ + + + + diff --git a/Geometry/HGCalCommonData/test/python/runHGCalD76DD4Hep_cfg.py b/Geometry/HGCalCommonData/test/python/runHGCalD76DD4Hep_cfg.py new file mode 100644 index 0000000000000..9123193fd2a26 --- /dev/null +++ b/Geometry/HGCalCommonData/test/python/runHGCalD76DD4Hep_cfg.py @@ -0,0 +1,151 @@ +import FWCore.ParameterSet.Config as cms + +from Configuration.Eras.Era_Phase2C11I13M9_cff import Phase2C11I13M9 +from Configuration.ProcessModifiers.dd4hep_cff import dd4hep + +process = cms.Process('SIM',Phase2C11I13M9,dd4hep) + +# import of standard configurations +process.load('Configuration.StandardSequences.Services_cff') +process.load('SimGeneral.HepPDTESSource.pythiapdt_cfi') +process.load('FWCore.MessageService.MessageLogger_cfi') +process.load('Configuration.EventContent.EventContent_cff') +process.load('SimGeneral.MixingModule.mixNoPU_cfi') +process.load('Configuration.Geometry.GeometryDD4hepExtended2026D76Reco_cff') +process.load('Configuration.StandardSequences.MagneticField_cff') +process.load('Configuration.StandardSequences.Generator_cff') +process.load('IOMC.EventVertexGenerators.VtxSmearedHLLHC14TeV_cfi') +process.load('GeneratorInterface.Core.genFilterSummary_cff') +process.load('Configuration.StandardSequences.SimIdeal_cff') +process.load('Configuration.StandardSequences.EndOfProcess_cff') +process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(10), + output = cms.optional.untracked.allowed(cms.int32,cms.PSet) +) + +# Input source +process.source = cms.Source("EmptySource") + +process.options = cms.untracked.PSet( + FailPath = cms.untracked.vstring(), + IgnoreCompletely = cms.untracked.vstring(), + Rethrow = cms.untracked.vstring(), + SkipEvent = cms.untracked.vstring(), + allowUnscheduled = cms.obsolete.untracked.bool, + canDeleteEarly = cms.untracked.vstring(), + deleteNonConsumedUnscheduledModules = cms.untracked.bool(True), + emptyRunLumiMode = cms.obsolete.untracked.string, + eventSetup = cms.untracked.PSet( + forceNumberOfConcurrentIOVs = cms.untracked.PSet( + allowAnyLabel_=cms.required.untracked.uint32 + ), + numberOfConcurrentIOVs = cms.untracked.uint32(1) + ), + fileMode = cms.untracked.string('FULLMERGE'), + forceEventSetupCacheClearOnNewRun = cms.untracked.bool(False), + makeTriggerResults = cms.obsolete.untracked.bool, + numberOfConcurrentLuminosityBlocks = cms.untracked.uint32(1), + numberOfConcurrentRuns = cms.untracked.uint32(1), + numberOfStreams = cms.untracked.uint32(0), + numberOfThreads = cms.untracked.uint32(1), + printDependencies = cms.untracked.bool(False), + sizeOfStackForThreadsInKB = cms.optional.untracked.uint32, + throwIfIllegalParameter = cms.untracked.bool(True), + wantSummary = cms.untracked.bool(False) +) + +# Production Info +process.configurationMetadata = cms.untracked.PSet( + annotation = cms.untracked.string('TTbar_14TeV_TuneCP5_cfi nevts:10'), + name = cms.untracked.string('Applications'), + version = cms.untracked.string('$Revision: 1.19 $') +) + + +# Additional output definition + +# Other statements +process.genstepfilter.triggerConditions=cms.vstring("generation_step") +from Configuration.AlCa.GlobalTag import GlobalTag +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase2_realistic_T21', '') + +process.generator = cms.EDFilter("Pythia8GeneratorFilter", + PythiaParameters = cms.PSet( + parameterSets = cms.vstring( + 'pythia8CommonSettings', + 'pythia8CP5Settings', + 'processParameters' + ), + processParameters = cms.vstring( + 'Top:gg2ttbar = on ', + 'Top:qqbar2ttbar = on ', + '6:m0 = 175 ' + ), + pythia8CP5Settings = cms.vstring( + 'Tune:pp 14', + 'Tune:ee 7', + 'MultipartonInteractions:ecmPow=0.03344', + 'MultipartonInteractions:bProfile=2', + 'MultipartonInteractions:pT0Ref=1.41', + 'MultipartonInteractions:coreRadius=0.7634', + 'MultipartonInteractions:coreFraction=0.63', + 'ColourReconnection:range=5.176', + 'SigmaTotal:zeroAXB=off', + 'SpaceShower:alphaSorder=2', + 'SpaceShower:alphaSvalue=0.118', + 'SigmaProcess:alphaSvalue=0.118', + 'SigmaProcess:alphaSorder=2', + 'MultipartonInteractions:alphaSvalue=0.118', + 'MultipartonInteractions:alphaSorder=2', + 'TimeShower:alphaSorder=2', + 'TimeShower:alphaSvalue=0.118', + 'SigmaTotal:mode = 0', + 'SigmaTotal:sigmaEl = 21.89', + 'SigmaTotal:sigmaTot = 100.309', + 'PDF:pSet=LHAPDF6:NNPDF31_nnlo_as_0118' + ), + pythia8CommonSettings = cms.vstring( + 'Tune:preferLHAPDF = 2', + 'Main:timesAllowErrors = 10000', + 'Check:epTolErr = 0.01', + 'Beams:setProductionScalesFromLHEF = off', + 'SLHA:minMassSM = 1000.', + 'ParticleDecays:limitTau0 = on', + 'ParticleDecays:tau0Max = 10', + 'ParticleDecays:allowPhotonRadiation = on' + ) + ), + comEnergy = cms.double(14000.0), + filterEfficiency = cms.untracked.double(1.0), + maxEventsToPrint = cms.untracked.int32(0), + pythiaHepMCVerbosity = cms.untracked.bool(False), + pythiaPylistVerbosity = cms.untracked.int32(0) +) + + +process.ProductionFilterSequence = cms.Sequence(process.generator) + +# Path and EndPath definitions +process.generation_step = cms.Path(process.pgen) +process.simulation_step = cms.Path(process.psim) +process.genfiltersummary_step = cms.EndPath(process.genFilterSummary) +process.endjob_step = cms.EndPath(process.endOfProcess) + +# Schedule definition +process.schedule = cms.Schedule(process.generation_step,process.genfiltersummary_step,process.simulation_step,process.endjob_step) +from PhysicsTools.PatAlgos.tools.helpers import associatePatAlgosToolsTask +associatePatAlgosToolsTask(process) +# filter all path with the production filter sequence +for path in process.paths: + getattr(process,path).insert(0, process.ProductionFilterSequence) + + + +# Customisation from command line + +# Add early deletion of temporary data products to reduce peak memory need +from Configuration.StandardSequences.earlyDeleteSettings_cff import customiseEarlyDelete +process = customiseEarlyDelete(process) +# End adding early deletion diff --git a/Geometry/HGCalCommonData/test/python/runHGCalD76DDD_cfg.py b/Geometry/HGCalCommonData/test/python/runHGCalD76DDD_cfg.py new file mode 100644 index 0000000000000..99280b4d6debd --- /dev/null +++ b/Geometry/HGCalCommonData/test/python/runHGCalD76DDD_cfg.py @@ -0,0 +1,150 @@ +import FWCore.ParameterSet.Config as cms + +from Configuration.Eras.Era_Phase2C11I13M9_cff import Phase2C11I13M9 + +process = cms.Process('SIM',Phase2C11I13M9) + +# import of standard configurations +process.load('Configuration.StandardSequences.Services_cff') +process.load('SimGeneral.HepPDTESSource.pythiapdt_cfi') +process.load('FWCore.MessageService.MessageLogger_cfi') +process.load('Configuration.EventContent.EventContent_cff') +process.load('SimGeneral.MixingModule.mixNoPU_cfi') +process.load('Configuration.Geometry.GeometryExtended2026D76Reco_cff') +process.load('Configuration.StandardSequences.MagneticField_cff') +process.load('Configuration.StandardSequences.Generator_cff') +process.load('IOMC.EventVertexGenerators.VtxSmearedHLLHC14TeV_cfi') +process.load('GeneratorInterface.Core.genFilterSummary_cff') +process.load('Configuration.StandardSequences.SimIdeal_cff') +process.load('Configuration.StandardSequences.EndOfProcess_cff') +process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(10), + output = cms.optional.untracked.allowed(cms.int32,cms.PSet) +) + +# Input source +process.source = cms.Source("EmptySource") + +process.options = cms.untracked.PSet( + FailPath = cms.untracked.vstring(), + IgnoreCompletely = cms.untracked.vstring(), + Rethrow = cms.untracked.vstring(), + SkipEvent = cms.untracked.vstring(), + allowUnscheduled = cms.obsolete.untracked.bool, + canDeleteEarly = cms.untracked.vstring(), + deleteNonConsumedUnscheduledModules = cms.untracked.bool(True), + emptyRunLumiMode = cms.obsolete.untracked.string, + eventSetup = cms.untracked.PSet( + forceNumberOfConcurrentIOVs = cms.untracked.PSet( + allowAnyLabel_=cms.required.untracked.uint32 + ), + numberOfConcurrentIOVs = cms.untracked.uint32(1) + ), + fileMode = cms.untracked.string('FULLMERGE'), + forceEventSetupCacheClearOnNewRun = cms.untracked.bool(False), + makeTriggerResults = cms.obsolete.untracked.bool, + numberOfConcurrentLuminosityBlocks = cms.untracked.uint32(1), + numberOfConcurrentRuns = cms.untracked.uint32(1), + numberOfStreams = cms.untracked.uint32(0), + numberOfThreads = cms.untracked.uint32(1), + printDependencies = cms.untracked.bool(False), + sizeOfStackForThreadsInKB = cms.optional.untracked.uint32, + throwIfIllegalParameter = cms.untracked.bool(True), + wantSummary = cms.untracked.bool(False) +) + +# Production Info +process.configurationMetadata = cms.untracked.PSet( + annotation = cms.untracked.string('TTbar_14TeV_TuneCP5_cfi nevts:10'), + name = cms.untracked.string('Applications'), + version = cms.untracked.string('$Revision: 1.19 $') +) + + +# Additional output definition + +# Other statements +process.genstepfilter.triggerConditions=cms.vstring("generation_step") +from Configuration.AlCa.GlobalTag import GlobalTag +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase2_realistic_T21', '') + +process.generator = cms.EDFilter("Pythia8GeneratorFilter", + PythiaParameters = cms.PSet( + parameterSets = cms.vstring( + 'pythia8CommonSettings', + 'pythia8CP5Settings', + 'processParameters' + ), + processParameters = cms.vstring( + 'Top:gg2ttbar = on ', + 'Top:qqbar2ttbar = on ', + '6:m0 = 175 ' + ), + pythia8CP5Settings = cms.vstring( + 'Tune:pp 14', + 'Tune:ee 7', + 'MultipartonInteractions:ecmPow=0.03344', + 'MultipartonInteractions:bProfile=2', + 'MultipartonInteractions:pT0Ref=1.41', + 'MultipartonInteractions:coreRadius=0.7634', + 'MultipartonInteractions:coreFraction=0.63', + 'ColourReconnection:range=5.176', + 'SigmaTotal:zeroAXB=off', + 'SpaceShower:alphaSorder=2', + 'SpaceShower:alphaSvalue=0.118', + 'SigmaProcess:alphaSvalue=0.118', + 'SigmaProcess:alphaSorder=2', + 'MultipartonInteractions:alphaSvalue=0.118', + 'MultipartonInteractions:alphaSorder=2', + 'TimeShower:alphaSorder=2', + 'TimeShower:alphaSvalue=0.118', + 'SigmaTotal:mode = 0', + 'SigmaTotal:sigmaEl = 21.89', + 'SigmaTotal:sigmaTot = 100.309', + 'PDF:pSet=LHAPDF6:NNPDF31_nnlo_as_0118' + ), + pythia8CommonSettings = cms.vstring( + 'Tune:preferLHAPDF = 2', + 'Main:timesAllowErrors = 10000', + 'Check:epTolErr = 0.01', + 'Beams:setProductionScalesFromLHEF = off', + 'SLHA:minMassSM = 1000.', + 'ParticleDecays:limitTau0 = on', + 'ParticleDecays:tau0Max = 10', + 'ParticleDecays:allowPhotonRadiation = on' + ) + ), + comEnergy = cms.double(14000.0), + filterEfficiency = cms.untracked.double(1.0), + maxEventsToPrint = cms.untracked.int32(0), + pythiaHepMCVerbosity = cms.untracked.bool(False), + pythiaPylistVerbosity = cms.untracked.int32(0) +) + + +process.ProductionFilterSequence = cms.Sequence(process.generator) + +# Path and EndPath definitions +process.generation_step = cms.Path(process.pgen) +process.simulation_step = cms.Path(process.psim) +process.genfiltersummary_step = cms.EndPath(process.genFilterSummary) +process.endjob_step = cms.EndPath(process.endOfProcess) + +# Schedule definition +process.schedule = cms.Schedule(process.generation_step,process.genfiltersummary_step,process.simulation_step,process.endjob_step) +from PhysicsTools.PatAlgos.tools.helpers import associatePatAlgosToolsTask +associatePatAlgosToolsTask(process) +# filter all path with the production filter sequence +for path in process.paths: + getattr(process,path).insert(0, process.ProductionFilterSequence) + + + +# Customisation from command line + +# Add early deletion of temporary data products to reduce peak memory need +from Configuration.StandardSequences.earlyDeleteSettings_cff import customiseEarlyDelete +process = customiseEarlyDelete(process) +# End adding early deletion diff --git a/Geometry/HGCalCommonData/test/python/runHGCalWafer8DD4Hep_cfg.py b/Geometry/HGCalCommonData/test/python/runHGCalWafer8DD4Hep_cfg.py new file mode 100644 index 0000000000000..686bf572ba4b7 --- /dev/null +++ b/Geometry/HGCalCommonData/test/python/runHGCalWafer8DD4Hep_cfg.py @@ -0,0 +1,133 @@ +import FWCore.ParameterSet.Config as cms + +from Configuration.Eras.Era_Phase2C11_dd4hep_cff import Phase2C11_dd4hep + +process = cms.Process('SIM',Phase2C11_dd4hep) + +# import of standard configurations +process.load('Configuration.StandardSequences.Services_cff') +process.load('SimGeneral.HepPDTESSource.pythiapdt_cfi') +process.load('FWCore.MessageService.MessageLogger_cfi') +process.load('Configuration.EventContent.EventContent_cff') +process.load('SimGeneral.MixingModule.mixNoPU_cfi') +process.load('Configuration.StandardSequences.MagneticField_cff') +process.load('Configuration.StandardSequences.Generator_cff') +process.load('IOMC.EventVertexGenerators.VtxSmearedHLLHC14TeV_cfi') +process.load('GeneratorInterface.Core.genFilterSummary_cff') +process.load('Configuration.StandardSequences.SimIdeal_cff') +process.load('Configuration.StandardSequences.EndOfProcess_cff') +process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') + +process.DDDetectorESProducer = cms.ESSource("DDDetectorESProducer", + confGeomXMLFiles = cms.FileInPath('Geometry/HGCalCommonData/data/dd4hep/cms-test-ddhgcalwafer8-algorithm.xml'), + appendToDataLabel = cms.string('') + ) + +process.DDSpecParRegistryESProducer = cms.ESProducer("DDSpecParRegistryESProducer", + appendToDataLabel = cms.string('') +) + +process.DDVectorRegistryESProducer = cms.ESProducer("DDVectorRegistryESProducer", + appendToDataLabel = cms.string('')) + +process.DDCompactViewESProducer = cms.ESProducer("DDCompactViewESProducer", + appendToDataLabel = cms.string('') +) + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(2), + output = cms.optional.untracked.allowed(cms.int32,cms.PSet) +) + +if hasattr(process,'MessageLogger'): + process.MessageLogger.HGCalGeom=dict() + process.MessageLogger.G4cout=dict() + process.MessageLogger.G4cerr=dict() + +# Input source +process.source = cms.Source("EmptySource") + +process.options = cms.untracked.PSet( + FailPath = cms.untracked.vstring(), + IgnoreCompletely = cms.untracked.vstring(), + Rethrow = cms.untracked.vstring(), + SkipEvent = cms.untracked.vstring(), + allowUnscheduled = cms.obsolete.untracked.bool, + canDeleteEarly = cms.untracked.vstring(), + deleteNonConsumedUnscheduledModules = cms.untracked.bool(True), + emptyRunLumiMode = cms.obsolete.untracked.string, + eventSetup = cms.untracked.PSet( + forceNumberOfConcurrentIOVs = cms.untracked.PSet( + allowAnyLabel_=cms.required.untracked.uint32 + ), + numberOfConcurrentIOVs = cms.untracked.uint32(1) + ), + fileMode = cms.untracked.string('FULLMERGE'), + forceEventSetupCacheClearOnNewRun = cms.untracked.bool(False), + makeTriggerResults = cms.obsolete.untracked.bool, + numberOfConcurrentLuminosityBlocks = cms.untracked.uint32(1), + numberOfConcurrentRuns = cms.untracked.uint32(1), + numberOfStreams = cms.untracked.uint32(0), + numberOfThreads = cms.untracked.uint32(1), + printDependencies = cms.untracked.bool(False), + sizeOfStackForThreadsInKB = cms.optional.untracked.uint32, + throwIfIllegalParameter = cms.untracked.bool(True), + wantSummary = cms.untracked.bool(False) +) + +# Production Info +process.configurationMetadata = cms.untracked.PSet( + annotation = cms.untracked.string('single pi E 1000'), + name = cms.untracked.string('Applications'), + version = cms.untracked.string('$Revision: 1.19 $') +) + +# Output definition + +# Additional output definition + +# Other statements +process.genstepfilter.triggerConditions=cms.vstring("generation_step") +from Configuration.AlCa.GlobalTag import GlobalTag +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase2_realistic_T21', '') + +process.generator = cms.EDProducer("FlatRandomEGunProducer", + PGunParameters = cms.PSet( + PartID = cms.vint32(211), + MinEta = cms.double(1.48), + MaxEta = cms.double(3.01), + MinPhi = cms.double(-3.14159265359), + MaxPhi = cms.double(3.14159265359), + MinE = cms.double(999.99), + MaxE = cms.double(1000.01) + ), + Verbosity = cms.untracked.int32(0), ## set to 1 (or greater) for printouts + psethack = cms.string('single pi E 1000'), + AddAntiParticle = cms.bool(True), + firstRun = cms.untracked.uint32(1) +) + +process.ProductionFilterSequence = cms.Sequence(process.generator) + +# Path and EndPath definitions +process.generation_step = cms.Path(process.pgen) +process.simulation_step = cms.Path(process.psim) +process.genfiltersummary_step = cms.EndPath(process.genFilterSummary) +process.endjob_step = cms.EndPath(process.endOfProcess) + +# Schedule definition +process.schedule = cms.Schedule(process.generation_step,process.genfiltersummary_step,process.simulation_step,process.endjob_step) +from PhysicsTools.PatAlgos.tools.helpers import associatePatAlgosToolsTask +associatePatAlgosToolsTask(process) +# filter all path with the production filter sequence +for path in process.paths: + getattr(process,path).insert(0, process.ProductionFilterSequence) + + + +# Customisation from command line + +# Add early deletion of temporary data products to reduce peak memory need +from Configuration.StandardSequences.earlyDeleteSettings_cff import customiseEarlyDelete +process = customiseEarlyDelete(process) +# End adding early deletion diff --git a/Geometry/HGCalCommonData/test/python/runHGCalWafer8DDD_cfg.py b/Geometry/HGCalCommonData/test/python/runHGCalWafer8DDD_cfg.py new file mode 100644 index 0000000000000..95d92c52d6026 --- /dev/null +++ b/Geometry/HGCalCommonData/test/python/runHGCalWafer8DDD_cfg.py @@ -0,0 +1,118 @@ +import FWCore.ParameterSet.Config as cms + +from Configuration.Eras.Era_Phase2C11M9_cff import Phase2C11M9 + +process = cms.Process('SIM',Phase2C11M9) + +# import of standard configurations +process.load('Configuration.StandardSequences.Services_cff') +process.load('SimGeneral.HepPDTESSource.pythiapdt_cfi') +process.load('FWCore.MessageService.MessageLogger_cfi') +process.load('Configuration.EventContent.EventContent_cff') +process.load('SimGeneral.MixingModule.mixNoPU_cfi') +process.load('Geometry.HGCalCommonData.testHGCalWafer8XML_cfi') +process.load('Configuration.StandardSequences.MagneticField_cff') +process.load('Configuration.StandardSequences.Generator_cff') +process.load('IOMC.EventVertexGenerators.VtxSmearedHLLHC14TeV_cfi') +process.load('GeneratorInterface.Core.genFilterSummary_cff') +process.load('Configuration.StandardSequences.SimIdeal_cff') +process.load('Configuration.StandardSequences.EndOfProcess_cff') +process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(2), + output = cms.optional.untracked.allowed(cms.int32,cms.PSet) +) + +if hasattr(process,'MessageLogger'): + process.MessageLogger.HGCalGeom=dict() + process.MessageLogger.G4cout=dict() + process.MessageLogger.G4cerr=dict() + +# Input source +process.source = cms.Source("EmptySource") + +process.options = cms.untracked.PSet( + FailPath = cms.untracked.vstring(), + IgnoreCompletely = cms.untracked.vstring(), + Rethrow = cms.untracked.vstring(), + SkipEvent = cms.untracked.vstring(), + allowUnscheduled = cms.obsolete.untracked.bool, + canDeleteEarly = cms.untracked.vstring(), + deleteNonConsumedUnscheduledModules = cms.untracked.bool(True), + emptyRunLumiMode = cms.obsolete.untracked.string, + eventSetup = cms.untracked.PSet( + forceNumberOfConcurrentIOVs = cms.untracked.PSet( + allowAnyLabel_=cms.required.untracked.uint32 + ), + numberOfConcurrentIOVs = cms.untracked.uint32(1) + ), + fileMode = cms.untracked.string('FULLMERGE'), + forceEventSetupCacheClearOnNewRun = cms.untracked.bool(False), + makeTriggerResults = cms.obsolete.untracked.bool, + numberOfConcurrentLuminosityBlocks = cms.untracked.uint32(1), + numberOfConcurrentRuns = cms.untracked.uint32(1), + numberOfStreams = cms.untracked.uint32(0), + numberOfThreads = cms.untracked.uint32(1), + printDependencies = cms.untracked.bool(False), + sizeOfStackForThreadsInKB = cms.optional.untracked.uint32, + throwIfIllegalParameter = cms.untracked.bool(True), + wantSummary = cms.untracked.bool(False) +) + +# Production Info +process.configurationMetadata = cms.untracked.PSet( + annotation = cms.untracked.string('single pi E 1000'), + name = cms.untracked.string('Applications'), + version = cms.untracked.string('$Revision: 1.19 $') +) + +# Output definition + +# Additional output definition + +# Other statements +process.genstepfilter.triggerConditions=cms.vstring("generation_step") +from Configuration.AlCa.GlobalTag import GlobalTag +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase2_realistic_T21', '') + +process.generator = cms.EDProducer("FlatRandomEGunProducer", + PGunParameters = cms.PSet( + PartID = cms.vint32(211), + MinEta = cms.double(1.48), + MaxEta = cms.double(3.01), + MinPhi = cms.double(-3.14159265359), + MaxPhi = cms.double(3.14159265359), + MinE = cms.double(999.99), + MaxE = cms.double(1000.01) + ), + Verbosity = cms.untracked.int32(0), ## set to 1 (or greater) for printouts + psethack = cms.string('single pi E 1000'), + AddAntiParticle = cms.bool(True), + firstRun = cms.untracked.uint32(1) +) + +process.ProductionFilterSequence = cms.Sequence(process.generator) + +# Path and EndPath definitions +process.generation_step = cms.Path(process.pgen) +process.simulation_step = cms.Path(process.psim) +process.genfiltersummary_step = cms.EndPath(process.genFilterSummary) +process.endjob_step = cms.EndPath(process.endOfProcess) + +# Schedule definition +process.schedule = cms.Schedule(process.generation_step,process.genfiltersummary_step,process.simulation_step,process.endjob_step) +from PhysicsTools.PatAlgos.tools.helpers import associatePatAlgosToolsTask +associatePatAlgosToolsTask(process) +# filter all path with the production filter sequence +for path in process.paths: + getattr(process,path).insert(0, process.ProductionFilterSequence) + + + +# Customisation from command line + +# Add early deletion of temporary data products to reduce peak memory need +from Configuration.StandardSequences.earlyDeleteSettings_cff import customiseEarlyDelete +process = customiseEarlyDelete(process) +# End adding early deletion diff --git a/Geometry/HGCalCommonData/test/python/testHGCGeometry_cfg.py b/Geometry/HGCalCommonData/test/python/testHGCGeometry_cfg.py index 7da8e302d764c..37562db8f3c1c 100644 --- a/Geometry/HGCalCommonData/test/python/testHGCGeometry_cfg.py +++ b/Geometry/HGCalCommonData/test/python/testHGCGeometry_cfg.py @@ -15,6 +15,7 @@ process.load("Geometry.HGCalCommonData.hgcalParametersInitialization_cfi") process.load("Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi") process.load('FWCore.MessageService.MessageLogger_cfi') +process.load("Geometry.HGCalCommonData.hgcGeometryTester_cfi") if hasattr(process,'MessageLogger'): process.MessageLogger.HGCalGeom=dict() @@ -43,8 +44,4 @@ input = cms.untracked.int32(1) ) -process.prod = cms.EDAnalyzer("HGCGeometryTester", - SquareType = cms.untracked.bool(False), -) - -process.p1 = cms.Path(process.generator*process.prod) +process.p1 = cms.Path(process.generator*process.hgcGeometryTester) diff --git a/Geometry/HGCalCommonData/test/python/testHGCalNumberingV15_cfg.py b/Geometry/HGCalCommonData/test/python/testHGCalNumberingV15_cfg.py new file mode 100644 index 0000000000000..a6493d85aa33a --- /dev/null +++ b/Geometry/HGCalCommonData/test/python/testHGCalNumberingV15_cfg.py @@ -0,0 +1,60 @@ +import FWCore.ParameterSet.Config as cms +from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 + +process = cms.Process("PROD",Phase2C11) + +process.load("SimGeneral.HepPDTESSource.pdt_cfi") +process.load("Geometry.HGCalCommonData.testHGCalV15XML_cfi") +process.load("Geometry.HGCalCommonData.hgcalV15ParametersInitialization_cfi") +process.load("Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi") +process.load("Geometry.EcalCommonData.ecalSimulationParameters_cff") +process.load("Geometry.HcalCommonData.hcalDDDSimConstants_cff") +process.load('FWCore.MessageService.MessageLogger_cfi') + +if hasattr(process,'MessageLogger'): + process.MessageLogger.HGCalGeom=dict() + +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 + +process.source = cms.Source("EmptySource") + +process.generator = cms.EDProducer("FlatRandomEGunProducer", + PGunParameters = cms.PSet( + PartID = cms.vint32(14), + MinEta = cms.double(-3.5), + MaxEta = cms.double(3.5), + MinPhi = cms.double(-3.14159265359), + MaxPhi = cms.double(3.14159265359), + MinE = cms.double(9.99), + MaxE = cms.double(10.01) + ), + AddAntiParticle = cms.bool(False), + Verbosity = cms.untracked.int32(0), + firstRun = cms.untracked.uint32(1) + ) + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(1) +) + +process.load("Geometry.HGCalCommonData.hgcalNumberingTesterEE_cfi") +process.hgcalNumberingTesterEE.LocalPositionX= [500.0,350.0,800.0,1400.0] +process.hgcalNumberingTesterEE.LocalPositionY= [500.0,0.0,0.0,0.0] + +process.hgcalNumberingTesterHEF = process.hgcalNumberingTesterEE.clone( + NameSense = "HGCalHESiliconSensitive", + NameDevice = "HGCal HE Front", + Increment = 9 +) + +process.hgcalNumberingTesterHEB = process.hgcalNumberingTesterEE.clone( + NameSense = "HGCalHEScintillatorSensitive", + NameDevice = "HGCal HE Back", + Increment = 9, + LocalPositionX= [1100.0,1400.0,1500.0,1600.0], + LocalPositionY= [1100.0,1000.0,500.0,0.0], + DetType = 0 +) + +process.p1 = cms.Path(process.generator*process.hgcalNumberingTesterEE*process.hgcalNumberingTesterHEF*process.hgcalNumberingTesterHEB) diff --git a/Geometry/HGCalCommonData/test/python/testHGCalNumbering_cfg.py b/Geometry/HGCalCommonData/test/python/testHGCalNumbering_cfg.py index 36c25ccb73c1b..ad8b2b841efcb 100644 --- a/Geometry/HGCalCommonData/test/python/testHGCalNumbering_cfg.py +++ b/Geometry/HGCalCommonData/test/python/testHGCalNumbering_cfg.py @@ -1,6 +1,8 @@ import FWCore.ParameterSet.Config as cms +from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 + +process = cms.Process("PROD",Phase2C11) -process = cms.Process("PROD") process.load("SimGeneral.HepPDTESSource.pdt_cfi") #process.load("Geometry.CMSCommonData.cmsExtendedGeometry2026D49XML_cfi") #process.load("Geometry.CMSCommonData.cmsExtendedGeometry2026D68XML_cfi") @@ -39,24 +41,18 @@ input = cms.untracked.int32(1) ) -process.prodEE = cms.EDAnalyzer("HGCalNumberingTester", - NameSense = cms.string("HGCalEESensitive"), - NameDevice = cms.string("HGCal EE"), - LocalPositionX= cms.vdouble(500.0,350.0,800.0,1400.0), - LocalPositionY= cms.vdouble(500.0,0.0,0.0,0.0), - Increment = cms.int32(19), -# DetType = cms.int32(1), - DetType = cms.int32(2), - Reco = cms.bool(False) -) +process.load("Geometry.HGCalCommonData.hgcalNumberingTesterEE_cfi") +process.hgcalNumberingTesterEE.LocalPositionX= [500.0,350.0,800.0,1400.0] +process.hgcalNumberingTesterEE.LocalPositionY= [500.0,0.0,0.0,0.0] +#process.hgcalNumberingTesterEE.DetType = 1 -process.prodHEF = process.prodEE.clone( +process.hgcalNumberingTesterHEF = process.hgcalNumberingTesterEE.clone( NameSense = "HGCalHESiliconSensitive", NameDevice = "HGCal HE Front", Increment = 9 ) -process.prodHEB = process.prodEE.clone( +process.hgcalNumberingTesterHEB = process.hgcalNumberingTesterEE.clone( NameSense = "HGCalHEScintillatorSensitive", NameDevice = "HGCal HE Back", Increment = 9, @@ -65,5 +61,5 @@ DetType = 0 ) -#process.p1 = cms.Path(process.generator*process.prodEE*process.prodHEF) -process.p1 = cms.Path(process.generator*process.prodEE*process.prodHEF*process.prodHEB) +#process.p1 = cms.Path(process.generator*process.hgcalNumberingTesterEE*process.hgcalNumberingTesterHEF) +process.p1 = cms.Path(process.generator*process.hgcalNumberingTesterEE*process.hgcalNumberingTesterHEF*process.hgcalNumberingTesterHEB) diff --git a/Geometry/HGCalCommonData/test/python/testHGCalParametersDD4Hep_cfg.py b/Geometry/HGCalCommonData/test/python/testHGCalParametersDD4Hep_cfg.py index 026529d225852..74b6f9b60f7e2 100644 --- a/Geometry/HGCalCommonData/test/python/testHGCalParametersDD4Hep_cfg.py +++ b/Geometry/HGCalCommonData/test/python/testHGCalParametersDD4Hep_cfg.py @@ -1,6 +1,7 @@ import FWCore.ParameterSet.Config as cms +from Configuration.Eras.Era_Phase2C11_dd4hep_cff import Phase2C11_dd4hep -process = cms.Process("HGCalParametersTest") +process = cms.Process("HGCalParametersTest",Phase2C11_dd4hep) process.load("SimGeneral.HepPDTESSource.pdt_cfi") process.load("Geometry.HGCalCommonData.hgcalParametersInitialization_cfi") process.load('FWCore.MessageService.MessageLogger_cfi') @@ -41,24 +42,17 @@ firstRun = cms.untracked.uint32(1) ) -process.hgcalEEParametersInitialize.fromDD4Hep = cms.bool(True) -process.hgcalHESiParametersInitialize.fromDD4Hep = cms.bool(True) -process.hgcalHEScParametersInitialize.fromDD4Hep = cms.bool(True) +process.load("Geometry.HGCalCommonData.hgcParameterTesterEE_cfi") +#process.hgcParameterTesterEE.Mode = 0 -process.testEE = cms.EDAnalyzer("HGCalParameterTester", - Name = cms.untracked.string("HGCalEESensitive"), - Mode = cms.untracked.int32(1) -# Mode = cms.untracked.int32(0) +process.hgcParameterTesterHESil = process.hgcParameterTesterEE.clone( + Name = cms.string("HGCalHESiliconSensitive") ) -process.testHESil = process.testEE.clone( - Name = cms.untracked.string("HGCalHESiliconSensitive") -) - -process.testHESci = process.testEE.clone( - Name = cms.untracked.string("HGCalHEScintillatorSensitive"), - Mode = cms.untracked.int32(2) +process.hgcParameterTesterHESci = process.hgcParameterTesterEE.clone( + Name = cms.string("HGCalHEScintillatorSensitive"), + Mode = cms.int32(2) ) -process.p1 = cms.Path(process.generator*process.testEE*process.testHESil*process.testHESci) -#process.p1 = cms.Path(process.generator*process.testEE*process.testHESil) +process.p1 = cms.Path(process.generator*process.hgcParameterTesterEE*process.hgcParameterTesterHESil*process.hgcParameterTesterHESci) +#process.p1 = cms.Path(process.generator*process.hgcParameterTesterEE*process.hgcParameterTesterHESil) diff --git a/Geometry/HGCalCommonData/test/python/testHGCalParametersDDD_cfg.py b/Geometry/HGCalCommonData/test/python/testHGCalParametersDDD_cfg.py index baaeab78dfa00..ba07766de5e4b 100644 --- a/Geometry/HGCalCommonData/test/python/testHGCalParametersDDD_cfg.py +++ b/Geometry/HGCalCommonData/test/python/testHGCalParametersDDD_cfg.py @@ -1,6 +1,7 @@ import FWCore.ParameterSet.Config as cms +from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 -process = cms.Process("HGCalParametersTest") +process = cms.Process("HGCalParametersTest",Phase2C11) process.load("SimGeneral.HepPDTESSource.pdt_cfi") #process.load("Geometry.CMSCommonData.cmsExtendedGeometry2026D71XML_cfi") process.load("Geometry.HGCalCommonData.testHGCalV14XML_cfi") @@ -35,20 +36,17 @@ firstRun = cms.untracked.uint32(1) ) -process.testEE = cms.EDAnalyzer("HGCalParameterTester", - Name = cms.untracked.string("HGCalEESensitive"), - Mode = cms.untracked.int32(1) -# Mode = cms.untracked.int32(0) -) +process.load("Geometry.HGCalCommonData.hgcParameterTesterEE_cfi") +#process.hgcParameterTesterEE.Mode = 0 -process.testHESil = process.testEE.clone( - Name = cms.untracked.string("HGCalHESiliconSensitive") +process.hgcParameterTesterHESil = process.hgcParameterTesterEE.clone( + Name = cms.string("HGCalHESiliconSensitive") ) -process.testHESci = process.testEE.clone( - Name = cms.untracked.string("HGCalHEScintillatorSensitive"), - Mode = cms.untracked.int32(2) +process.hgcParameterTesterHESci = process.hgcParameterTesterEE.clone( + Name = cms.string("HGCalHEScintillatorSensitive"), + Mode = cms.int32(2) ) - -process.p1 = cms.Path(process.generator*process.testEE*process.testHESil*process.testHESci) -#process.p1 = cms.Path(process.generator*process.testEE*process.testHESil) + +process.p1 = cms.Path(process.generator*process.hgcParameterTesterEE*process.hgcParameterTesterHESil*process.hgcParameterTesterHESci) +#process.p1 = cms.Path(process.generator*process.hgcParameterTesterEE*process.hgcParameterTesterHESil) diff --git a/Geometry/HGCalCommonData/test/python/testHGCalParametersV15DD4Hep_cfg.py b/Geometry/HGCalCommonData/test/python/testHGCalParametersV15DD4Hep_cfg.py new file mode 100644 index 0000000000000..c1cbda68b9e47 --- /dev/null +++ b/Geometry/HGCalCommonData/test/python/testHGCalParametersV15DD4Hep_cfg.py @@ -0,0 +1,60 @@ +import FWCore.ParameterSet.Config as cms +from Configuration.Eras.Era_Phase2C11_dd4hep_cff import Phase2C11_dd4hep + +process = cms.Process("HGCalParametersTest",Phase2C11_dd4hep) +process.load("SimGeneral.HepPDTESSource.pdt_cfi") +process.load("Geometry.HGCalCommonData.hgcalV15ParametersInitialization_cfi") +process.load('FWCore.MessageService.MessageLogger_cfi') + +if hasattr(process,'MessageLogger'): + process.MessageLogger.HGCalGeom=dict() + +process.DDDetectorESProducer = cms.ESSource("DDDetectorESProducer", + confGeomXMLFiles = cms.FileInPath('Geometry/HGCalCommonData/data/dd4hep/testHGCalV15.xml'), + appendToDataLabel = cms.string('') + ) + +process.DDCompactViewESProducer = cms.ESProducer("DDCompactViewESProducer", + appendToDataLabel = cms.string('') +) + +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 + +process.source = cms.Source("EmptySource") + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(1) +) + +process.generator = cms.EDProducer("FlatRandomEGunProducer", + PGunParameters = cms.PSet( + PartID = cms.vint32(14), + MinEta = cms.double(-3.5), + MaxEta = cms.double(3.5), + MinPhi = cms.double(-3.14159265359), + MaxPhi = cms.double(3.14159265359), + MinE = cms.double(9.99), + MaxE = cms.double(10.01) + ), + AddAntiParticle = cms.bool(False), + Verbosity = cms.untracked.int32(0), + firstRun = cms.untracked.uint32(1) +) + +process.hgcalEEParametersInitialize.fromDD4Hep = cms.bool(True) +process.hgcalHESiParametersInitialize.fromDD4Hep = cms.bool(True) +process.hgcalHEScParametersInitialize.fromDD4Hep = cms.bool(True) + +process.load("Geometry.HGCalCommonData.hgcParameterTesterEE_cfi") + +process.hgcParameterTesterHESil = process.hgcParameterTesterEE.clone( + Name = cms.string("HGCalHESiliconSensitive") +) + +process.hgcParameterTesterHESci = process.hgcParameterTesterEE.clone( + Name = cms.string("HGCalHEScintillatorSensitive"), + Mode = cms.int32(2) +) + +process.p1 = cms.Path(process.generator*process.hgcParameterTesterEE*process.hgcParameterTesterHESil*process.hgcParameterTesterHESci) diff --git a/Geometry/HGCalCommonData/test/python/testHGCalParametersDDDV15_cfg.py b/Geometry/HGCalCommonData/test/python/testHGCalParametersV15DDD_cfg.py similarity index 54% rename from Geometry/HGCalCommonData/test/python/testHGCalParametersDDDV15_cfg.py rename to Geometry/HGCalCommonData/test/python/testHGCalParametersV15DDD_cfg.py index 2ed20eca1991a..13890db7f6649 100644 --- a/Geometry/HGCalCommonData/test/python/testHGCalParametersDDDV15_cfg.py +++ b/Geometry/HGCalCommonData/test/python/testHGCalParametersV15DDD_cfg.py @@ -1,10 +1,10 @@ import FWCore.ParameterSet.Config as cms +from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 -process = cms.Process("HGCalParametersTest") +process = cms.Process("HGCalParametersTest",Phase2C11) process.load("SimGeneral.HepPDTESSource.pdt_cfi") -#process.load("Geometry.CMSCommonData.cmsExtendedGeometry2026D71XML_cfi") process.load("Geometry.HGCalCommonData.testHGCalV15XML_cfi") -process.load("Geometry.HGCalCommonData.hgcalParametersInitialization_cfi") +process.load("Geometry.HGCalCommonData.hgcalV15ParametersInitialization_cfi") process.load('FWCore.MessageService.MessageLogger_cfi') if hasattr(process,'MessageLogger'): @@ -34,20 +34,15 @@ firstRun = cms.untracked.uint32(1) ) -process.testEE = cms.EDAnalyzer("HGCalParameterTester", - Name = cms.untracked.string("HGCalEESensitive"), - Mode = cms.untracked.int32(1) -# Mode = cms.untracked.int32(0) -) +process.load("Geometry.HGCalCommonData.hgcParameterTesterEE_cfi") -process.testHESil = process.testEE.clone( - Name = cms.untracked.string("HGCalHESiliconSensitive") +process.hgcParameterTesterHESil = process.hgcParameterTesterEE.clone( + Name = cms.string("HGCalHESiliconSensitive") ) -process.testHESci = process.testEE.clone( - Name = cms.untracked.string("HGCalHEScintillatorSensitive"), - Mode = cms.untracked.int32(2) +process.hgcParameterTesterHESci = process.hgcParameterTesterEE.clone( + Name = cms.string("HGCalHEScintillatorSensitive"), + Mode = cms.int32(2) ) -process.p1 = cms.Path(process.generator*process.testEE*process.testHESil*process.testHESci) -#process.p1 = cms.Path(process.generator*process.testEE*process.testHESil) +process.p1 = cms.Path(process.generator*process.hgcParameterTesterEE*process.hgcParameterTesterHESil*process.hgcParameterTesterHESci) diff --git a/Geometry/HGCalCommonData/test/python/testHGCalTBParametersDD4Hep_cfg.py b/Geometry/HGCalCommonData/test/python/testHGCalTBParametersDD4Hep_cfg.py index 3cf9c4006f0a3..c8ac6d6ad5d48 100644 --- a/Geometry/HGCalCommonData/test/python/testHGCalTBParametersDD4Hep_cfg.py +++ b/Geometry/HGCalCommonData/test/python/testHGCalTBParametersDD4Hep_cfg.py @@ -45,10 +45,7 @@ process.hgcalHESiParametersInitialize.fromDD4Hep = cms.bool(True) process.hgcalHEScParametersInitialize.fromDD4Hep = cms.bool(True) -process.testEE = cms.EDAnalyzer("HGCalParameterTester", - Name = cms.untracked.string("HGCalEESensitive"), - Mode = cms.untracked.int32(0) -) - +process.load("Geometry.HGCalCommonData.hgcParameterTesterEE_cfi") +process.hgcParameterTesterEE.Mode = 0 -process.p1 = cms.Path(process.generator*process.testEE) +process.p1 = cms.Path(process.generator*process.hgcParameterTesterEE) diff --git a/Geometry/HGCalCommonData/test/python/testHGCalTBParametersDDD_cfg.py b/Geometry/HGCalCommonData/test/python/testHGCalTBParametersDDD_cfg.py index c5f702f21a7a3..7046d9b303766 100644 --- a/Geometry/HGCalCommonData/test/python/testHGCalTBParametersDDD_cfg.py +++ b/Geometry/HGCalCommonData/test/python/testHGCalTBParametersDDD_cfg.py @@ -33,9 +33,7 @@ firstRun = cms.untracked.uint32(1) ) -process.testEE = cms.EDAnalyzer("HGCalParameterTester", - Name = cms.untracked.string("HGCalEESensitive"), - Mode = cms.untracked.int32(0) -) +process.load("Geometry.HGCalCommonData.hgcParameterTesterEE_cfi") +process.hgcParameterTesterEE.Mode = 0 -process.p1 = cms.Path(process.generator*process.testEE) +process.p1 = cms.Path(process.generator*process.hgcParameterTesterEE) diff --git a/Geometry/HGCalCommonData/test/python/testHGCalValidHex_cfg.py b/Geometry/HGCalCommonData/test/python/testHGCalValidHex_cfg.py index 36eb3b57a3111..89b4ce9b90232 100644 --- a/Geometry/HGCalCommonData/test/python/testHGCalValidHex_cfg.py +++ b/Geometry/HGCalCommonData/test/python/testHGCalValidHex_cfg.py @@ -39,13 +39,6 @@ input = cms.untracked.int32(1) ) -process.prodHEF = cms.EDAnalyzer("HGCalValidHexTester", - NameSense = cms.string("HGCalHESiliconSensitive"), - NameDevice = cms.string("HGCal HE Silicon"), - Layers = cms.vint32(21,21,22,22), - Types = cms.vint32(2,2,2,2), - ModuleU = cms.vint32(3,-3,3,-3), - ModuleV = cms.vint32(6,-6,6,-6) -) +process.load("Geometry.HGCalCommonData.hgcalValidHexTesterHEF_cfi") -process.p1 = cms.Path(process.generator*process.prodHEF) +process.p1 = cms.Path(process.generator*process.hgcalValidHexTesterHEF) diff --git a/Geometry/HGCalCommonData/test/python/testHGCalWafer_cfg.py b/Geometry/HGCalCommonData/test/python/testHGCalWafer_cfg.py index 6796bc41ae1cc..73913c3710375 100644 --- a/Geometry/HGCalCommonData/test/python/testHGCalWafer_cfg.py +++ b/Geometry/HGCalCommonData/test/python/testHGCalWafer_cfg.py @@ -39,16 +39,12 @@ input = cms.untracked.int32(1) ) -process.prodEE = cms.EDAnalyzer("HGCalWaferTester", - NameSense = cms.string("HGCalEESensitive"), - NameDevice = cms.string("HGCal EE"), - Reco = cms.bool(False) -) +process.load("Geometry.HGCalCommonData.hgcalWaferTesterEE_cfi") -process.prodHEF = process.prodEE.clone( +process.hgcalWaferTesterHEF = process.hgcalWaferTesterEE.clone( NameSense = "HGCalHESiliconSensitive", NameDevice = "HGCal HE Front", ) -process.p1 = cms.Path(process.generator*process.prodEE*process.prodHEF) +process.p1 = cms.Path(process.generator*process.hgcalWaferTesterEE*process.hgcalWaferTesterHEF) diff --git a/Geometry/HGCalGeometry/test/HGCalGeometryTester.cc b/Geometry/HGCalGeometry/test/HGCalGeometryTester.cc index a1ce012b1cb07..13d5e9a89ab61 100644 --- a/Geometry/HGCalGeometry/test/HGCalGeometryTester.cc +++ b/Geometry/HGCalGeometry/test/HGCalGeometryTester.cc @@ -90,7 +90,7 @@ void HGCalGeometryTester::doTest(const HGCalGeometry* geom, ForwardSubdetector s for (int layer : layers) { for (int cell : cells) { DetId id1; - id1 = (DetId)(HGCalDetId(subdet, zside, layer, type, sector, cell)); + id1 = static_cast(HGCalDetId(subdet, zside, layer, type, sector, cell)); if (geom->topology().valid(id1)) { auto icell1 = geom->getGeometry(id1); GlobalPoint global1 = geom->getPosition(id1); @@ -135,7 +135,7 @@ void HGCalGeometryTester::doTestWafer(const HGCalGeometry* geom, DetId::Detector for (int cellU : cells) { for (int cellV : cells) { std::cout << "det " << det << " cell " << cellU << ":" << cellV << std::endl; - DetId id1 = (DetId)(HGCSiliconDetId(det, zside, type, layer, waferU, waferV, cellU, cellV)); + DetId id1 = static_cast(HGCSiliconDetId(det, zside, type, layer, waferU, waferV, cellU, cellV)); std::cout << HGCSiliconDetId(id1) << std::endl; if (geom->topology().valid(id1)) { auto icell1 = geom->getGeometry(id1); @@ -177,8 +177,14 @@ void HGCalGeometryTester::doTestScint(const HGCalGeometry* geom, DetId::Detector for (int layer : layers) { int type = geom->topology().dddConstants().getTypeTrap(layer); for (int ieta : ietas) { + std::pair typm = geom->topology().dddConstants().tileType(layer, ieta, 0); for (int iphi : iphis) { - DetId id1 = (DetId)(HGCScintillatorDetId(type, layer, zside * ieta, iphi)); + HGCScintillatorDetId detId(type, layer, zside * ieta, iphi); + if (typm.first >= 0) { + detId.setType(typm.first); + detId.setSiPM(typm.second); + } + DetId id1 = static_cast(detId); if (geom->topology().valid(id1)) { auto icell1 = geom->getGeometry(id1); GlobalPoint global1 = geom->getPosition(id1); diff --git a/Geometry/HGCalGeometry/test/python/testHGCalCellDumpDD4Hep_cfg.py b/Geometry/HGCalGeometry/test/python/testHGCalCellDumpDD4Hep_cfg.py index d479b20de3706..2e1745362aabc 100644 --- a/Geometry/HGCalGeometry/test/python/testHGCalCellDumpDD4Hep_cfg.py +++ b/Geometry/HGCalGeometry/test/python/testHGCalCellDumpDD4Hep_cfg.py @@ -1,6 +1,7 @@ import FWCore.ParameterSet.Config as cms +from Configuration.Eras.Era_Phase2C11_dd4hep_cff import Phase2C11_dd4hep -process = cms.Process("HcalGeometryTest") +process = cms.Process("HcalGeometryTest",Phase2C11_dd4hep) process.load("Geometry.EcalCommonData.ecalSimulationParameters_cff") process.load("Geometry.HcalCommonData.hcalDDDSimConstants_cff") @@ -32,8 +33,4 @@ ) process.Timing = cms.Service("Timing") -process.hgcalEEParametersInitialize.fromDD4Hep = True -process.hgcalHESiParametersInitialize.fromDD4Hep = True -process.hgcalHEScParametersInitialize.fromDD4Hep = True - process.p1 = cms.Path(process.hgcalGeometryDump) diff --git a/Geometry/HGCalGeometry/test/python/testHGCalCellDumpDDD_cfg.py b/Geometry/HGCalGeometry/test/python/testHGCalCellDumpDDD_cfg.py index 75f5e8038fa67..d4dfb42a17272 100644 --- a/Geometry/HGCalGeometry/test/python/testHGCalCellDumpDDD_cfg.py +++ b/Geometry/HGCalGeometry/test/python/testHGCalCellDumpDDD_cfg.py @@ -1,6 +1,7 @@ import FWCore.ParameterSet.Config as cms +from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 -process = cms.Process("HcalGeometryTest") +process = cms.Process("HcalGeometryTest",Phase2C11) process.load("Geometry.CMSCommonData.cmsExtendedGeometry2026D71XML_cfi") process.load("Geometry.EcalCommonData.ecalSimulationParameters_cff") diff --git a/Geometry/HGCalGeometry/test/python/testHGCalGeometryCheckV15_cfg.py b/Geometry/HGCalGeometry/test/python/testHGCalGeometryCheckV15_cfg.py new file mode 100644 index 0000000000000..26c0e501fe10c --- /dev/null +++ b/Geometry/HGCalGeometry/test/python/testHGCalGeometryCheckV15_cfg.py @@ -0,0 +1,49 @@ +import FWCore.ParameterSet.Config as cms + +from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 +process = cms.Process('PROD',Phase2C11) + +process.load("SimGeneral.HepPDTESSource.pdt_cfi") +process.load("Geometry.HGCalCommonData.testHGCalV15XML_cfi") +process.load("Geometry.HGCalCommonData.hgcalV15ParametersInitialization_cfi") +process.load("Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi") +process.load("Geometry.CaloEventSetup.HGCalV9Topology_cfi") +process.load("Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi") +process.load('Geometry.HGCalGeometry.hgcalGeometryCheck_cfi') +process.load('FWCore.MessageService.MessageLogger_cfi') + +if hasattr(process,'MessageLogger'): + process.MessageLogger.HGCalGeom=dict() + +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 + +process.source = cms.Source("EmptySource") + +process.generator = cms.EDProducer("FlatRandomEGunProducer", + PGunParameters = cms.PSet( + PartID = cms.vint32(14), + MinEta = cms.double(-3.5), + MaxEta = cms.double(3.5), + MinPhi = cms.double(-3.14159265359), + MaxPhi = cms.double(3.14159265359), + MinE = cms.double(9.99), + MaxE = cms.double(10.01) + ), + AddAntiParticle = cms.bool(False), + Verbosity = cms.untracked.int32(0), + firstRun = cms.untracked.uint32(1) +) + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(1) +) + +process.TFileService = cms.Service("TFileService", + fileName = cms.string('hgcGeomStudyV15.root'), + closeFileFast = cms.untracked.bool(True) + ) + +#process.hgcalGeometryCheck.verbosity = True + +process.p1 = cms.Path(process.generator*process.hgcalGeometryCheck) diff --git a/Geometry/HGCalGeometry/test/python/testHGCalGeometryCheck_cfg.py b/Geometry/HGCalGeometry/test/python/testHGCalGeometryCheck_cfg.py index 9adb13e4fa097..c026155e0e8be 100644 --- a/Geometry/HGCalGeometry/test/python/testHGCalGeometryCheck_cfg.py +++ b/Geometry/HGCalGeometry/test/python/testHGCalGeometryCheck_cfg.py @@ -7,8 +7,8 @@ from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 process = cms.Process('PROD',Phase2C11) -process.load('Configuration.Geometry.GeometryExtended2026D71_cff') -process.load('Configuration.Geometry.GeometryExtended2026D71Reco_cff') +process.load('Configuration.Geometry.GeometryExtended2026D76_cff') +process.load('Configuration.Geometry.GeometryExtended2026D76Reco_cff') process.load("SimGeneral.HepPDTESSource.pdt_cfi") process.load('Geometry.HGCalGeometry.hgcalGeometryCheck_cfi') @@ -42,7 +42,7 @@ ) process.TFileService = cms.Service("TFileService", - fileName = cms.string('hgcGeomStudy.root'), + fileName = cms.string('hgcGeomStudyV14.root'), closeFileFast = cms.untracked.bool(True) ) diff --git a/Geometry/HGCalGeometry/test/python/testHGCalGeometryV15_cfg.py b/Geometry/HGCalGeometry/test/python/testHGCalGeometryV15_cfg.py new file mode 100644 index 0000000000000..8763fb4064494 --- /dev/null +++ b/Geometry/HGCalGeometry/test/python/testHGCalGeometryV15_cfg.py @@ -0,0 +1,53 @@ +import FWCore.ParameterSet.Config as cms + +from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 +process = cms.Process("PROD",Phase2C11) + +process.load("SimGeneral.HepPDTESSource.pdt_cfi") +process.load("Geometry.HGCalCommonData.testHGCalV15XML_cfi") +process.load("Geometry.HGCalCommonData.hgcalV15ParametersInitialization_cfi") +process.load("Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi") +process.load("Geometry.CaloEventSetup.HGCalV9Topology_cfi") +process.load("Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi") +process.load('FWCore.MessageService.MessageLogger_cfi') + +if hasattr(process,'MessageLogger'): + process.MessageLogger.HGCalGeom=dict() + +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 + +process.source = cms.Source("EmptySource") + +process.generator = cms.EDProducer("FlatRandomEGunProducer", + PGunParameters = cms.PSet( + PartID = cms.vint32(14), + MinEta = cms.double(-3.5), + MaxEta = cms.double(3.5), + MinPhi = cms.double(-3.14159265359), + MaxPhi = cms.double(3.14159265359), + MinE = cms.double(9.99), + MaxE = cms.double(10.01) + ), + AddAntiParticle = cms.bool(False), + Verbosity = cms.untracked.int32(0), + firstRun = cms.untracked.uint32(1) +) + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(1) +) + +process.prodEE = cms.EDAnalyzer("HGCalGeometryTester", + Detector = cms.string("HGCalEESensitive"), + ) + +process.prodHEF = process.prodEE.clone( + Detector = "HGCalHESiliconSensitive", +) + +process.prodHEB = process.prodEE.clone( + Detector = "HGCalHEScintillatorSensitive", +) + +process.p1 = cms.Path(process.generator*process.prodEE*process.prodHEF*process.prodHEB) diff --git a/Geometry/HGCalGeometry/test/python/testHGCalGeometry_cfg.py b/Geometry/HGCalGeometry/test/python/testHGCalGeometry_cfg.py index 48915bf522071..0cf9c9acacdc9 100644 --- a/Geometry/HGCalGeometry/test/python/testHGCalGeometry_cfg.py +++ b/Geometry/HGCalGeometry/test/python/testHGCalGeometry_cfg.py @@ -1,14 +1,10 @@ import FWCore.ParameterSet.Config as cms -process = cms.Process("PROD") -process.load("SimGeneral.HepPDTESSource.pdt_cfi") +from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 +process = cms.Process('PROD',Phase2C11) -process.load("Configuration.Geometry.GeometryExtended2026D71Reco_cff") -#process.load("Geometry.HGCalCommonData.testHGCalV14XML_cfi") -#process.load("Geometry.HGCalCommonData.hgcalParametersInitialization_cfi") -#process.load("Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi") -#process.load("Geometry.CaloEventSetup.HGCalV9Topology_cfi") -#process.load("Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi") +process.load("SimGeneral.HepPDTESSource.pdt_cfi") +process.load("Configuration.Geometry.GeometryExtended2026D76Reco_cff") process.load('FWCore.MessageService.MessageLogger_cfi') if hasattr(process,'MessageLogger'): diff --git a/Geometry/HGCalGeometry/test/python/testHGCalWaferInFileCheck_cfg.py b/Geometry/HGCalGeometry/test/python/testHGCalWaferInFileCheck_cfg.py index 6f104252ba15a..bac9bf4576522 100644 --- a/Geometry/HGCalGeometry/test/python/testHGCalWaferInFileCheck_cfg.py +++ b/Geometry/HGCalGeometry/test/python/testHGCalWaferInFileCheck_cfg.py @@ -1,6 +1,7 @@ import FWCore.ParameterSet.Config as cms +from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 -process = cms.Process("PROD") +process = cms.Process("PROD",Phase2C11) process.load("SimGeneral.HepPDTESSource.pdt_cfi") process.load("Geometry.HGCalCommonData.testHGCalV14XML_cfi") process.load("Geometry.HGCalCommonData.hgcalParametersInitialization_cfi") diff --git a/Geometry/HGCalGeometry/test/python/testHGCalWaferInFileTestV15_cfg.py b/Geometry/HGCalGeometry/test/python/testHGCalWaferInFileTestV15_cfg.py new file mode 100644 index 0000000000000..6ad6349dcca56 --- /dev/null +++ b/Geometry/HGCalGeometry/test/python/testHGCalWaferInFileTestV15_cfg.py @@ -0,0 +1,48 @@ +import FWCore.ParameterSet.Config as cms +from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 + +process = cms.Process("PROD",Phase2C11) +process.load("SimGeneral.HepPDTESSource.pdt_cfi") +process.load("Geometry.HGCalCommonData.testHGCalV15XML_cfi") +process.load("Geometry.HGCalCommonData.hgcalV15ParametersInitialization_cfi") +process.load("Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi") +process.load("Geometry.CaloEventSetup.HGCalV9Topology_cfi") +process.load("Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi") +process.load("Geometry.HGCalGeometry.hgcalEEWaferInFileTest_cfi") + +process.load('FWCore.MessageService.MessageLogger_cfi') +if hasattr(process,'MessageLogger'): + process.MessageLogger.HGCalGeom=dict() + +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 + +process.source = cms.Source("EmptySource") + +process.generator = cms.EDProducer("FlatRandomEGunProducer", + PGunParameters = cms.PSet( + PartID = cms.vint32(14), + MinEta = cms.double(-3.5), + MaxEta = cms.double(3.5), + MinPhi = cms.double(-3.14159265359), + MaxPhi = cms.double(3.14159265359), + MinE = cms.double(9.99), + MaxE = cms.double(10.01) + ), + AddAntiParticle = cms.bool(False), + Verbosity = cms.untracked.int32(0), + firstRun = cms.untracked.uint32(1) + ) + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(1) +) + +#process.hgcalEEWaferInFileTest.Verbosity = 1 + +process.hgcalHEWaferInFileTest = process.hgcalEEWaferInFileTest.clone( + NameSense = "HGCalHESiliconSensitive", + NameDevice = "HGCal HE Silicon", +) + +process.p1 = cms.Path(process.generator*process.hgcalEEWaferInFileTest*process.hgcalHEWaferInFileTest) diff --git a/Geometry/HGCalGeometry/test/python/testHGCalWaferInFileTest_cfg.py b/Geometry/HGCalGeometry/test/python/testHGCalWaferInFileTest_cfg.py index 8c5b473877500..cecc3abd12c96 100644 --- a/Geometry/HGCalGeometry/test/python/testHGCalWaferInFileTest_cfg.py +++ b/Geometry/HGCalGeometry/test/python/testHGCalWaferInFileTest_cfg.py @@ -1,6 +1,7 @@ import FWCore.ParameterSet.Config as cms +from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 -process = cms.Process("PROD") +process = cms.Process("PROD",Phase2C11) process.load("SimGeneral.HepPDTESSource.pdt_cfi") process.load("Geometry.HGCalCommonData.testHGCalV14XML_cfi") process.load("Geometry.HGCalCommonData.hgcalParametersInitialization_cfi") diff --git a/Geometry/HGCalSimData/data/hgcProdCutsv15.xml b/Geometry/HGCalSimData/data/hgcProdCutsv15.xml new file mode 100644 index 0000000000000..0b1832a3524b3 --- /dev/null +++ b/Geometry/HGCalSimData/data/hgcProdCutsv15.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HGCalSimData/data/hgcsensv15.xml b/Geometry/HGCalSimData/data/hgcsensv15.xml new file mode 100644 index 0000000000000..d6d11ff3f11c1 --- /dev/null +++ b/Geometry/HGCalSimData/data/hgcsensv15.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/HcalSimData/python/HFParameters_cff.py b/Geometry/HcalSimData/python/HFParameters_cff.py new file mode 100644 index 0000000000000..e79157a943118 --- /dev/null +++ b/Geometry/HcalSimData/python/HFParameters_cff.py @@ -0,0 +1,28 @@ +import FWCore.ParameterSet.Config as cms + +# Several parameters needed for HF simulation + +HFLibraryFileBlock = cms.PSet( + FileName = cms.FileInPath('SimG4CMS/Calo/data/HFShowerLibrary_oldpmt_noatt_eta4_16en_v3.root'), + BackProbability = cms.double(0.2), + TreeEMID = cms.string('emParticles'), + TreeHadID = cms.string('hadParticles'), + ApplyFiducialCut= cms.bool(True), + Verbosity = cms.untracked.bool(False), + BranchPost = cms.untracked.string(''), + BranchEvt = cms.untracked.string(''), + BranchPre = cms.untracked.string('') +) + +HFShowerBlock = cms.PSet( + ProbMax = cms.double(1.0), + CFibre = cms.double(0.5), + OnlyLong = cms.bool(True) +) + +## +## Change the HFShowerLibrary file from Run 2 +## +from Configuration.Eras.Modifier_run2_common_cff import run2_common +run2_common.toModify( HFLibraryFileBlock, FileName = 'SimG4CMS/Calo/data/HFShowerLibrary_npmt_noatt_eta4_16en_v4.root' ) +run2_common.toModify( HFShowerBlock, ProbMax = 0.5) diff --git a/Geometry/HcalTowerAlgo/interface/HcalTrigTowerGeometry.h b/Geometry/HcalTowerAlgo/interface/HcalTrigTowerGeometry.h index f9c7e7cd2fd93..b8b4039e6f1e5 100644 --- a/Geometry/HcalTowerAlgo/interface/HcalTrigTowerGeometry.h +++ b/Geometry/HcalTowerAlgo/interface/HcalTrigTowerGeometry.h @@ -15,13 +15,13 @@ class HcalTrigTowerGeometry { std::vector towerIds(const HcalDetId& cellId) const; std::vector detIds(const HcalTrigTowerDetId&) const; - int firstHFTower(int version) const { return (version == 0) ? (29) : (30); } + int firstHFTower(int version) const { return (version == 1) ? (30) : (29); } /// where this tower begins and ends in eta void towerEtaBounds(int ieta, int version, double& eta1, double& eta2) const; /// number of towers (version dependent) - int nTowers(int version) const { return (version == 0) ? (32) : (41); } + int nTowers(int version) const { return (version == 1) ? (41) : (32); } // get the topology pointer const HcalTopology& topology() const { return *theTopology; } diff --git a/Geometry/MTDCommonData/data/mtdParameters/v2/mtdParameters.xml b/Geometry/MTDCommonData/data/mtdParameters/v2/mtdParameters.xml index 0a2b4fc3a560a..11a3101f66de7 100644 --- a/Geometry/MTDCommonData/data/mtdParameters/v2/mtdParameters.xml +++ b/Geometry/MTDCommonData/data/mtdParameters/v2/mtdParameters.xml @@ -6,10 +6,10 @@ 4, 4, 4, 24 - 22, 24, 16, 10, 0x1, 0x3, 0x3F, 0x3F, 1, 16, 3, 1 + 0, 0, 0, 0, 0, 0, 0, 0, 1, 16, 3, 1 - 22, 24, 16, 7, 0x1, 0x3, 0x3F, 0xFF, 16, 16, 1, 2 + 50, 50, 50, 50, 0, 0, 0, 0, 16, 16, 2, 1 diff --git a/Geometry/MTDCommonData/test/DD4hep_TestMTDIdealGeometry.cc b/Geometry/MTDCommonData/test/DD4hep_TestMTDIdealGeometry.cc index 277a1ebd3aff2..52686842c01e6 100644 --- a/Geometry/MTDCommonData/test/DD4hep_TestMTDIdealGeometry.cc +++ b/Geometry/MTDCommonData/test/DD4hep_TestMTDIdealGeometry.cc @@ -40,7 +40,7 @@ using namespace cms; class DD4hep_TestMTDIdealGeometry : public edm::one::EDAnalyzer<> { public: explicit DD4hep_TestMTDIdealGeometry(const edm::ParameterSet&); - ~DD4hep_TestMTDIdealGeometry() = default; + ~DD4hep_TestMTDIdealGeometry() override = default; void beginJob() override {} void analyze(edm::Event const&, edm::EventSetup const&) override; diff --git a/Geometry/MTDCommonData/test/TestMTDIdealGeometry.cc b/Geometry/MTDCommonData/test/TestMTDIdealGeometry.cc index 49602b4492cf8..624bd560984b4 100644 --- a/Geometry/MTDCommonData/test/TestMTDIdealGeometry.cc +++ b/Geometry/MTDCommonData/test/TestMTDIdealGeometry.cc @@ -43,7 +43,6 @@ class TestMTDIdealGeometry : public edm::one::EDAnalyzer<> { void theBaseNumber(const DDGeoHistory& gh); private: - std::string label_; int nNodes_; std::string ddTopNodeName_; uint32_t theLayout_; @@ -51,15 +50,18 @@ class TestMTDIdealGeometry : public edm::one::EDAnalyzer<> { MTDBaseNumber thisN_; BTLNumberingScheme btlNS_; ETLNumberingScheme etlNS_; + + edm::ESGetToken cpvToken_; }; TestMTDIdealGeometry::TestMTDIdealGeometry(const edm::ParameterSet& iConfig) - : label_(iConfig.getUntrackedParameter("label", "")), - ddTopNodeName_(iConfig.getUntrackedParameter("ddTopNodeName", "BarrelTimingLayer")), + : ddTopNodeName_(iConfig.getUntrackedParameter("ddTopNodeName", "BarrelTimingLayer")), theLayout_(iConfig.getUntrackedParameter("theLayout", 1)), thisN_(), btlNS_(), - etlNS_() {} + etlNS_() { + cpvToken_ = esConsumes(); +} TestMTDIdealGeometry::~TestMTDIdealGeometry() {} @@ -74,8 +76,7 @@ void TestMTDIdealGeometry::analyze(const edm::Event& iEvent, const edm::EventSet return; } - edm::ESTransientHandle pDD; - iSetup.get().get(label_, pDD); + auto pDD = iSetup.getTransientHandle(cpvToken_); if (!pDD.isValid()) { edm::LogError("TestMTDIdealGeometry") << "ESTransientHandle pDD is not valid!"; @@ -145,9 +146,9 @@ void TestMTDIdealGeometry::analyze(const edm::Event& iEvent, const edm::EventSet bool isSens = false; - if (fv.geoHistory()[num - 1].logicalPart().specifics().size() > 0) { + if (!fv.geoHistory()[num - 1].logicalPart().specifics().empty()) { for (auto vec : fv.geoHistory()[num - 1].logicalPart().specifics()) { - for (auto elem : *vec) { + for (const auto& elem : *vec) { if (elem.second.name() == "SensitiveDetector") { isSens = true; break; diff --git a/Geometry/MTDCommonData/test/testMTDinDDD.py b/Geometry/MTDCommonData/test/testMTDinDDD.py index 5b1441cec285a..ba1b9147ce895 100644 --- a/Geometry/MTDCommonData/test/testMTDinDDD.py +++ b/Geometry/MTDCommonData/test/testMTDinDDD.py @@ -64,13 +64,11 @@ process.load('Configuration.Geometry.GeometryExtended2026D76_cff') process.testBTL = cms.EDAnalyzer("TestMTDIdealGeometry", - label = cms.untracked.string(''), ddTopNodeName = cms.untracked.string('BarrelTimingLayer'), theLayout = cms.untracked.uint32(4) ) process.testETL = cms.EDAnalyzer("TestMTDIdealGeometry", - label = cms.untracked.string(''), ddTopNodeName = cms.untracked.string('EndcapTimingLayer'), theLayout = cms.untracked.uint32(4) ) diff --git a/Geometry/MTDGeometryBuilder/interface/MTDTopologyBuilder.h b/Geometry/MTDGeometryBuilder/interface/MTDTopologyBuilder.h index e9ee6eb061122..e8959c23ea644 100644 --- a/Geometry/MTDGeometryBuilder/interface/MTDTopologyBuilder.h +++ b/Geometry/MTDGeometryBuilder/interface/MTDTopologyBuilder.h @@ -14,13 +14,14 @@ class MTDTopologyBuilder { MTDTopologyBuilder(); PixelTopology* build(const Bounds* bounds, - bool upgradeGeometry, - int ROWS_PER_ROC, // Num of Rows per ROC - int COLS_PER_ROC, // Num of Cols per ROC - int BIG_PIX_PER_ROC_X, // in x direction, rows. BIG_PIX_PER_ROC_X = 0 for SLHC - int BIG_PIX_PER_ROC_Y, // in y direction, cols. BIG_PIX_PER_ROC_Y = 0 for SLHC + int ROWS_PER_ROC, // Num of Rows per ROC + int COLS_PER_ROC, // Num of Cols per ROC int ROCS_X, - int ROCS_Y); + int ROCS_Y, + int GAPxInterpad, //This value is given in microns + int GAPxBorder, //This value is given in microns + int GAPyInterpad, //This value is given in microns + int GAPyBorder); //This value is given in microns }; #endif diff --git a/Geometry/MTDGeometryBuilder/interface/RectangularMTDTopology.h b/Geometry/MTDGeometryBuilder/interface/RectangularMTDTopology.h index 58b8cf7d32c94..2474d3e2c4846 100644 --- a/Geometry/MTDGeometryBuilder/interface/RectangularMTDTopology.h +++ b/Geometry/MTDGeometryBuilder/interface/RectangularMTDTopology.h @@ -43,13 +43,14 @@ class RectangularMTDTopology final : public PixelTopology { int ncols, float pitchx, float pitchy, - bool upgradeGeometry, - int ROWS_PER_ROC, // Num of Rows per ROC - int COLS_PER_ROC, // Num of Cols per ROC - int BIG_PIX_PER_ROC_X, // in x direction, rows. BIG_PIX_PER_ROC_X = 0 for SLHC - int BIG_PIX_PER_ROC_Y, // in y direction, cols. BIG_PIX_PER_ROC_Y = 0 for SLHC + int ROWS_PER_ROC, // Num of Rows per ROC + int COLS_PER_ROC, // Num of Cols per ROC int ROCS_X, - int ROCS_Y) + int ROCS_Y, + float GAPxInterpad, // Value given in cm + float GAPxBorder, // Value given in cm + float GAPyInterpad, // Value given in cm + float GAPyBorder) // Value given in cm : m_pitchx(pitchx), m_pitchy(pitchy), m_nrows(nrows), @@ -58,16 +59,18 @@ class RectangularMTDTopology final : public PixelTopology { m_COLS_PER_ROC(COLS_PER_ROC), // Num of Cols per ROC m_ROCS_X(ROCS_X), // 2 for SLHC m_ROCS_Y(ROCS_Y), // 8 for SLHC - m_upgradeGeometry(upgradeGeometry) { - setOffset(BIG_PIX_PER_ROC_X, BIG_PIX_PER_ROC_Y, ROWS_PER_ROC, COLS_PER_ROC); + m_GAPxInterpad(GAPxInterpad), + m_GAPxBorder(GAPxBorder), + m_GAPyInterpad(GAPyInterpad), + m_GAPyBorder(GAPyBorder) { + m_xoffset = -(m_nrows / 2.) * m_pitchx; + m_yoffset = -(m_ncols / 2.) * m_pitchy; + m_GAPxInterpadFrac = m_GAPxInterpad / m_pitchx; + m_GAPxBorderFrac = m_GAPxBorder / m_pitchx; + m_GAPyInterpadFrac = m_GAPyInterpad / m_pitchy; + m_GAPyBorderFrac = m_GAPyBorder / m_pitchy; } - // Edge of the active sensor with respect to the center - void setOffset(const int& BIG_PIX_PER_ROC_X, - const int& BIG_PIX_PER_ROC_Y, - const int& ROWS_PER_ROC, - const int& COLS_PER_ROC); - // Topology interface, go from Masurement to Local module corrdinates // pixel coordinates (mp) -> cm (LocalPoint) LocalPoint localPosition(const MeasurementPoint& mp) const override; @@ -79,7 +82,6 @@ class RectangularMTDTopology final : public PixelTopology { } // PixelTopology interface. - // Transform LocalPoint in cm to measurement in pitch units. std::pair pixel(const LocalPoint& p) const override; // Errors @@ -90,7 +92,6 @@ class RectangularMTDTopology final : public PixelTopology { //------------------------------------------------------------- // Transform LocalPoint to channel. Call pixel() - // int channel(const LocalPoint& lp) const override { std::pair p = pixel(lp); return MTDChannelIdentifier::pixelToChannel(int(p.first), int(p.second)); @@ -114,50 +115,33 @@ class RectangularMTDTopology final : public PixelTopology { return pixelToModuleLocalPoint(plp, p.first, p.second); } - //------------------------------------------------------------- - // Transform measurement to local coordinates individually in each dimension - // - float localX(const float mpX) const override; - float localY(const float mpY) const override; - //------------------------------------------------------------- // Return the BIG pixel information for a given pixel - // - bool isItBigPixelInX(const int ixbin) const override { - return ((m_upgradeGeometry) ? (false) : ((ixbin == 79) | (ixbin == 80))); - } + bool isItBigPixelInX(const int ixbin) const override { return false; } - bool isItBigPixelInY(const int iybin) const override { - if - UNLIKELY(m_upgradeGeometry) return false; - else { - int iybin0 = iybin % 52; - return ((iybin0 == 0) | (iybin0 == 51)); - // constexpr int bigYIndeces[]{0,51,52,103,104,155,156,207,208,259,260,311,312,363,364,415,416,511}; - // return *std::lower_bound(std::begin(bigYIndeces),std::end(bigYIndeces),iybin) == iybin; - } - } + bool isItBigPixelInY(const int iybin) const override { return false; } //------------------------------------------------------------- // Return BIG pixel flag in a given pixel range - // - bool containsBigPixelInX(int ixmin, int ixmax) const override { - return m_upgradeGeometry ? false : ((ixmin <= 80) & (ixmax >= 79)); - } - bool containsBigPixelInY(int iymin, int iymax) const override { - return m_upgradeGeometry ? false - : (isItBigPixelInY(iymin) || isItBigPixelInY(iymax) || (iymin / 52) != (iymax / 52)); - } + bool containsBigPixelInX(int ixmin, int ixmax) const override { return false; } + + bool containsBigPixelInY(int iymin, int iymax) const override { return false; } - //------------------------------------------------------------- // Check whether the pixel is at the edge of the module - // bool isItEdgePixelInX(int ixbin) const override { return ((ixbin == 0) | (ixbin == (m_nrows - 1))); } + bool isItEdgePixelInY(int iybin) const override { return ((iybin == 0) | (iybin == (m_ncols - 1))); } + bool isItEdgePixel(int ixbin, int iybin) const override { return (isItEdgePixelInX(ixbin) | isItEdgePixelInY(iybin)); } + //------------------------------------------------------------- + // Transform measurement to local coordinates individually in each dimension + // + float localX(const float mpX) const override; + float localY(const float mpY) const override; + //------------------------------------------------------------------ // Return pitch std::pair pitch() const override { return std::pair(float(m_pitchx), float(m_pitchy)); } @@ -175,6 +159,14 @@ class RectangularMTDTopology final : public PixelTopology { int colsperroc() const override { return m_COLS_PER_ROC; } float xoffset() const { return m_xoffset; } float yoffset() const { return m_yoffset; } + float gapxInterpad() const { return m_GAPxInterpad; } // Value returned in cm + float gapyInterpad() const { return m_GAPyInterpad; } // Value returned in cm + float gapxBorder() const { return m_GAPxBorder; } // Value returned in cm + float gapyBorder() const { return m_GAPyBorder; } // Value returned in cm + float gapxInterpadFrac() const { return m_GAPxInterpadFrac; } + float gapyInterpadFrac() const { return m_GAPyInterpadFrac; } + float gapxBorderFrac() const { return m_GAPxBorderFrac; } + float gapyBorderFrac() const { return m_GAPyBorderFrac; } private: float m_pitchx; @@ -187,7 +179,14 @@ class RectangularMTDTopology final : public PixelTopology { int m_COLS_PER_ROC; int m_ROCS_X; int m_ROCS_Y; - bool m_upgradeGeometry; + float m_GAPxInterpad; + float m_GAPxBorder; + float m_GAPyInterpad; + float m_GAPyBorder; + float m_GAPxInterpadFrac; + float m_GAPxBorderFrac; + float m_GAPyInterpadFrac; + float m_GAPyBorderFrac; }; #endif diff --git a/Geometry/MTDGeometryBuilder/src/MTDGeomBuilderFromGeometricTimingDet.cc b/Geometry/MTDGeometryBuilder/src/MTDGeomBuilderFromGeometricTimingDet.cc index 73d9096394857..72fbbf82f6d1f 100644 --- a/Geometry/MTDGeometryBuilder/src/MTDGeomBuilderFromGeometricTimingDet.cc +++ b/Geometry/MTDGeometryBuilder/src/MTDGeomBuilderFromGeometricTimingDet.cc @@ -103,14 +103,23 @@ void MTDGeomBuilderFromGeometricTimingDet::buildPixel( // this is a hack while we put things into the DDD int ROCrows(0), ROCcols(0), ROCSx(0), ROCSy(0); + int GAPxInterpad(0), GAPxBorder(0), GAPyInterpad(0), GAPyBorder(0); switch (det) { case GeomDetType::SubDetector::TimingBarrel: + GAPxInterpad = ptp.vitems_[0].vpars_[0]; // Value given in microns + GAPxBorder = ptp.vitems_[0].vpars_[1]; // Value given in microns + GAPyInterpad = ptp.vitems_[0].vpars_[2]; // Value given in microns + GAPyBorder = ptp.vitems_[0].vpars_[3]; // Value given in microns ROCrows = ptp.vitems_[0].vpars_[8]; ROCcols = ptp.vitems_[0].vpars_[9]; ROCSx = ptp.vitems_[0].vpars_[10]; ROCSy = ptp.vitems_[0].vpars_[11]; break; case GeomDetType::SubDetector::TimingEndcap: + GAPxInterpad = ptp.vitems_[1].vpars_[0]; + GAPxBorder = ptp.vitems_[1].vpars_[1]; + GAPyInterpad = ptp.vitems_[1].vpars_[2]; + GAPyBorder = ptp.vitems_[1].vpars_[3]; ROCrows = ptp.vitems_[1].vpars_[8]; ROCcols = ptp.vitems_[1].vpars_[9]; ROCSx = ptp.vitems_[1].vpars_[10]; @@ -137,14 +146,8 @@ void MTDGeomBuilderFromGeometricTimingDet::buildPixel( if (theMTDDetTypeMap.find(detName) == theMTDDetTypeMap.end()) { std::unique_ptr bounds(i->bounds()); - PixelTopology* t = MTDTopologyBuilder().build(&*bounds, - true, - ROCrows, - ROCcols, - 0, - 0, // these are BIG_PIX_XXXXX - ROCSx, - ROCSy); + PixelTopology* t = MTDTopologyBuilder().build( + &*bounds, ROCrows, ROCcols, ROCSx, ROCSy, GAPxInterpad, GAPxBorder, GAPyInterpad, GAPyBorder); theMTDDetTypeMap[detName] = new MTDGeomDetType(t, detName, det); tracker->addType(theMTDDetTypeMap[detName]); diff --git a/Geometry/MTDGeometryBuilder/src/MTDTopologyBuilder.cc b/Geometry/MTDGeometryBuilder/src/MTDTopologyBuilder.cc index ee0206551dcdb..045803798e9ee 100644 --- a/Geometry/MTDGeometryBuilder/src/MTDTopologyBuilder.cc +++ b/Geometry/MTDGeometryBuilder/src/MTDTopologyBuilder.cc @@ -10,13 +10,14 @@ MTDTopologyBuilder::MTDTopologyBuilder(void) {} PixelTopology* MTDTopologyBuilder::build(const Bounds* bs, - bool upgradeGeometry, - int pixelROCRows, // Num of Rows per ROC - int pixelROCCols, // Num of Cols per ROC - int BIG_PIX_PER_ROC_X, // in x direction, rows. BIG_PIX_PER_ROC_X = 0 for SLHC - int BIG_PIX_PER_ROC_Y, // in y direction, cols. BIG_PIX_PER_ROC_Y = 0 for SLHC + int pixelROCRows, // Num of Rows per ROC + int pixelROCCols, // Num of Cols per ROC int pixelROCsInX, - int pixelROCsInY) { + int pixelROCsInY, + int GAPxInterpad, + int GAPxBorder, + int GAPyInterpad, + int GAPyBorder) { float width = bs->width(); // module width = Xsize float length = bs->length(); // module length = Ysize @@ -24,11 +25,14 @@ PixelTopology* MTDTopologyBuilder::build(const Bounds* bs, int nrows = pixelROCRows * pixelROCsInX; int ncols = pixelROCCols * pixelROCsInY; - // Take into account the large edge pixles - // 1 big pixel per ROC - float pitchX = width / (nrows + pixelROCsInX * BIG_PIX_PER_ROC_X); - // 2 big pixels per ROC - float pitchY = length / (ncols + pixelROCsInY * BIG_PIX_PER_ROC_Y); + float pitchX = width / nrows; + float pitchY = length / ncols; + + float micronsTocm = 1e-4; + float gapxinterpad = float(GAPxInterpad) * micronsTocm; //Convert to cm + float gapyinterpad = float(GAPyInterpad) * micronsTocm; //Convert to cm + float gapxborder = float(GAPxBorder) * micronsTocm; //Convert to cm + float gapyborder = float(GAPyBorder) * micronsTocm; //Convert to cm #ifdef EDM_ML_DEBUG edm::LogInfo("MTDTopologyBuilder") << std::fixed << "Building topology for module of width(X) = " << std::setw(10) @@ -40,18 +44,23 @@ PixelTopology* MTDTopologyBuilder::build(const Bounds* bs, << "\n # pixel rows X = " << std::setw(10) << nrows << " # pixel cols Y = " << std::setw(10) << ncols << "\n pitch in X = " << std::setw(10) << pitchX - << " # pitch in Y = " << std::setw(10) << pitchY; + << " # pitch in Y = " << std::setw(10) << pitchY + << "\n Interpad gap in X = " << std::setw(10) << gapxinterpad + << " # Interpad gap in Y = " << std::setw(10) << gapyinterpad + << "\n Border gap in X = " << std::setw(10) << gapxborder + << " # Border gap in Y = " << std::setw(10) << gapyborder; #endif return (new RectangularMTDTopology(nrows, ncols, pitchX, pitchY, - upgradeGeometry, pixelROCRows, // (int)rocRow pixelROCCols, // (int)rocCol - BIG_PIX_PER_ROC_X, - BIG_PIX_PER_ROC_Y, pixelROCsInX, - pixelROCsInY)); // (int)rocInX, (int)rocInY + pixelROCsInY, + gapxinterpad, + gapxborder, + gapyinterpad, + gapyborder)); } diff --git a/Geometry/MTDGeometryBuilder/src/RectangularMTDTopology.cc b/Geometry/MTDGeometryBuilder/src/RectangularMTDTopology.cc index b062af276b8bd..931d71e080143 100644 --- a/Geometry/MTDGeometryBuilder/src/RectangularMTDTopology.cc +++ b/Geometry/MTDGeometryBuilder/src/RectangularMTDTopology.cc @@ -1,32 +1,5 @@ #include "Geometry/MTDGeometryBuilder/interface/RectangularMTDTopology.h" -/** - * Topology for rectangular pixel detector with BIG pixels. - */ -// Modified for the large pixles. -// Danek Kotlinski & Michele Pioppi, 3/06. -// See documentation in the include file. - -//-------------------------------------------------------------------- -// Calculate the edge of the active sensor with respect to the center, -// that is simply the half-size. -// Take into account large pixels -void RectangularMTDTopology::setOffset(const int& BIG_PIX_PER_ROC_X, - const int& BIG_PIX_PER_ROC_Y, - const int& ROWS_PER_ROC, - const int& COLS_PER_ROC) { - m_xoffset = -(m_nrows + BIG_PIX_PER_ROC_X * m_nrows / ROWS_PER_ROC) / 2. * m_pitchx; - m_yoffset = -(m_ncols + BIG_PIX_PER_ROC_Y * m_ncols / COLS_PER_ROC) / 2. * m_pitchy; - - LogDebug("RectangularMTDTopology") << "nrows " << m_nrows << ", ncols " << m_ncols << ", pitchx " << m_pitchx - << ", pitchy " << m_pitchy << ", xoffset " << m_xoffset << ", yoffset " - << m_yoffset << ", BIG_PIX_PER_ROC_X " << BIG_PIX_PER_ROC_X - << ", BIG_PIX_PER_ROC_Y " << BIG_PIX_PER_ROC_Y << ", ROWS_PER_ROC " << ROWS_PER_ROC - << ", COLS_PER_ROC " << COLS_PER_ROC << ", ROCS_X " << m_ROCS_X << ", ROCS_Y " - << m_ROCS_Y << "\nNROWS " << m_ROWS_PER_ROC * m_ROCS_X << ", NCOL " - << m_COLS_PER_ROC * m_ROCS_Y; -} - //-------------------------------------------------------------------- // PixelTopology interface. // Transform LocalPoint in cm to measurement in pitch units. @@ -35,135 +8,12 @@ std::pair RectangularMTDTopology::pixel(const LocalPoint& p) const float py = p.y(); float px = p.x(); - LogDebug("RectangularMTDTopology").log([&](auto& debugstr) { -#define EPSCM 0 -#define EPS 0 - // This will catch points which are outside the active sensor area. - // In the digitizer during the early induce_signal phase non valid - // location are passed here. They are cleaned later. - debugstr << "py = " << py << ", m_yoffset = " << m_yoffset << "px = " << px << ", m_xoffset = " << m_xoffset - << "\n"; - - if (py < m_yoffset) // m_yoffset is negative - { - debugstr << " wrong lp y " << py << " " << m_yoffset << "\n"; - py = m_yoffset + EPSCM; // make sure it is in, add an EPS in cm - } - if (py > -m_yoffset) { - debugstr << " wrong lp y " << py << " " << -m_yoffset << "\n"; - py = -m_yoffset - EPSCM; - } - if (px < m_xoffset) // m_xoffset is negative - { - debugstr << " wrong lp x " << px << " " << m_xoffset << "\n"; - px = m_xoffset + EPSCM; - } - if (px > -m_xoffset) { - debugstr << " wrong lp x " << px << " " << -m_xoffset << "\n"; - px = -m_xoffset - EPSCM; - } - }); - + // In Y float newybin = (py - m_yoffset) / m_pitchy; - int iybin = int(newybin); - float fractionY = newybin - iybin; - - // Normalize it all to 1 ROC - int iybin0 = 0; - int numROC = 0; - float mpY = 0.; - - if (m_upgradeGeometry) { - iybin0 = (iybin % m_COLS_PER_ROC); // 0-51 - numROC = iybin / m_COLS_PER_ROC; // 0-7 - mpY = float(numROC * m_COLS_PER_ROC + iybin0) + fractionY; - -#ifdef EDM_ML_DEBUG - - if (iybin0 > m_COLS_PER_ROC) { - LogDebug("RectangularMTDTopology") << " very bad, newbiny " << iybin0 << "\n" - << py << " " << m_yoffset << " " << m_pitchy << " " << newybin << " " << iybin - << " " << fractionY << " " << iybin0 << " " << numROC; - } -#endif // EDM_ML_DEBUG - - } else { - iybin0 = (iybin % 54); // 0-53 - numROC = iybin / 54; // 0-7 - - if (iybin0 == 53) { // inside big pixel - iybin0 = 51; - fractionY = (fractionY + 1.) / 2.; - } else if (iybin0 == 52) { // inside big pixel - iybin0 = 51; - fractionY = fractionY / 2.; - } else if (iybin0 > 1) { // inside normal pixel - iybin0 = iybin0 - 1; - } else if (iybin0 == 1) { // inside big pixel - iybin0 = 0; - fractionY = (fractionY + 1.) / 2.; - } else if (iybin0 == 0) { // inside big pixel - iybin0 = 0; - fractionY = fractionY / 2.; - } - - mpY = float(numROC * 52. + iybin0) + fractionY; - } - -#ifdef EDM_ML_DEBUG - - if (mpY < 0. || mpY >= 416.) { - LogDebug("RectangularMTDTopology") << " bad pix y " << mpY << "\n" - << py << " " << m_yoffset << " " << m_pitchy << " " << newybin << " " << iybin - << " " << fractionY << " " << iybin0 << " " << numROC; - } -#endif // EDM_ML_DEBUG - // In X float newxbin = (px - m_xoffset) / m_pitchx; - int ixbin = int(newxbin); - float fractionX = newxbin - ixbin; - -#ifdef EDM_ML_DEBUG - - if (ixbin > 161 || ixbin < 0) // ixbin < 0 outside range - { - LogDebug("RectangularMTDTopology") << " very bad, newbinx " << ixbin << "\n" - << px << " " << m_xoffset << " " << m_pitchx << " " << newxbin << " " << ixbin - << " " << fractionX; - } -#endif // EDM_ML_DEBUG - - if (!m_upgradeGeometry) { - if (ixbin > 82) { // inside normal pixel, ROC 1 - ixbin = ixbin - 2; - } else if (ixbin == 82) { // inside bin pixel - ixbin = 80; - fractionX = (fractionX + 1.) / 2.; - } else if (ixbin == 81) { // inside big pixel - ixbin = 80; - fractionX = fractionX / 2.; - } else if (ixbin == 80) { // inside bin pixel, ROC 0 - ixbin = 79; - fractionX = (fractionX + 1.) / 2.; - } else if (ixbin == 79) { // inside big pixel - ixbin = 79; - fractionX = fractionX / 2.; - } - } - float mpX = float(ixbin) + fractionX; - -#ifdef EDM_ML_DEBUG - - if (mpX < 0. || mpX >= 160.) { - LogDebug("RectangularMTDTopology") << " bad pix x " << mpX << "\n" - << px << " " << m_xoffset << " " << m_pitchx << " " << newxbin << " " << ixbin - << " " << fractionX; - } -#endif // EDM_ML_DEBUG - - return std::pair(mpX, mpY); + return std::pair(newxbin, newybin); } //---------------------------------------------------------------------- @@ -173,31 +23,6 @@ LocalPoint RectangularMTDTopology::localPosition(const MeasurementPoint& mp) con float mpy = mp.y(); // measurements float mpx = mp.x(); -#ifdef EDM_ML_DEBUG -#define EPS 0 - // check limits - std::ostringstream debugstr; - - if (mpy < 0.) { - debugstr << " wrong mp y, fix " << mpy << " " << 0 << "\n"; - mpy = 0.; - } - if (mpy >= m_ncols) { - debugstr << " wrong mp y, fix " << mpy << " " << m_ncols << "\n"; - mpy = float(m_ncols) - EPS; // EPS is a small number - } - if (mpx < 0.) { - debugstr << " wrong mp x, fix " << mpx << " " << 0 << "\n"; - mpx = 0.; - } - if (mpx >= m_nrows) { - debugstr << " wrong mp x, fix " << mpx << " " << m_nrows << "\n"; - mpx = float(m_nrows) - EPS; // EPS is a small number - } - if (!debugstr.str().empty()) - LogDebug("RectangularMTDTopology") << debugstr.str(); -#endif // EDM_ML_DEBUG - float lpY = localY(mpy); float lpX = localX(mpx); @@ -208,97 +33,16 @@ LocalPoint RectangularMTDTopology::localPosition(const MeasurementPoint& mp) con //-------------------------------------------------------------------- // // measuremet to local transformation for X coordinate -// X coordinate is in the ROC row number direction float RectangularMTDTopology::localX(const float mpx) const { - int binoffx = int(mpx); // truncate to int - float fractionX = mpx - float(binoffx); // find the fraction - float local_pitchx = m_pitchx; // defaultpitch - - if - UNLIKELY(m_upgradeGeometry) { -#ifdef EDM_ML_DEBUG - if (binoffx > m_ROWS_PER_ROC * m_ROCS_X) // too large - { - LogDebug("RectangularMTDTopology") - << " very bad, binx " << binoffx << "\n" - << mpx << " " << binoffx << " " << fractionX << " " << local_pitchx << " " << m_xoffset << "\n"; - } -#endif - } - else { - if (binoffx > 80) { // ROC 1 - handles x on edge cluster - binoffx = binoffx + 2; - } else if (binoffx == 80) { // ROC 1 - binoffx = binoffx + 1; - local_pitchx *= 2; - } else if (binoffx == 79) { // ROC 0 - binoffx = binoffx + 0; - local_pitchx *= 2; - } - // else if (binoffx>=0) { // ROC 0 - // binoffx=binoffx+0; - // } - -#ifdef EDM_ML_DEBUG - if (binoffx < 0) // too small - LogDebug("RectangularMTDTopology") << " very bad, binx " << binoffx << "\n" - << mpx << " " << binoffx << " " << fractionX << " " << local_pitchx << " " - << m_xoffset; -#endif - } - // The final position in local coordinates - float lpX = float(binoffx * m_pitchx) + fractionX * local_pitchx + m_xoffset; - -#ifdef EDM_ML_DEBUG - - if (lpX < m_xoffset || lpX > (-m_xoffset)) { - LogDebug("RectangularMTDTopology") << " bad lp x " << lpX << "\n" - << mpx << " " << binoffx << " " << fractionX << " " << local_pitchx << " " - << m_xoffset; - } -#endif // EDM_ML_DEBUG + float lpX = mpx * m_pitchx + m_xoffset; return lpX; } -// measuremet to local transformation for Y coordinate -// Y is in the ROC column number direction float RectangularMTDTopology::localY(const float mpy) const { - int binoffy = int(mpy); // truncate to int - float fractionY = mpy - float(binoffy); // find the fraction - float local_pitchy = m_pitchy; // defaultpitch - - if - UNLIKELY(m_upgradeGeometry) { -#ifdef EDM_ML_DEBUG - if (binoffy > m_ROCS_Y * m_COLS_PER_ROC) // too large - { - LogDebug("RectangularMTDTopology") - << " very bad, biny " << binoffy << "\n" - << mpy << " " << binoffy << " " << fractionY << " " << local_pitchy << " " << m_yoffset; - } -#endif - } - else { // 415 is last big pixel, 416 and above do not exists! - constexpr int bigYIndeces[]{0, 51, 52, 103, 104, 155, 156, 207, 208, 259, 260, 311, 312, 363, 364, 415, 416, 511}; - auto const j = std::lower_bound(std::begin(bigYIndeces), std::end(bigYIndeces), binoffy); - if (*j == binoffy) - local_pitchy *= 2; - binoffy += (j - bigYIndeces); - } - // The final position in local coordinates - float lpY = float(binoffy * m_pitchy) + fractionY * local_pitchy + m_yoffset; - -#ifdef EDM_ML_DEBUG - - if (lpY < m_yoffset || lpY > (-m_yoffset)) { - LogDebug("RectangularMTDTopology") << " bad lp y " << lpY << "\n" - << mpy << " " << binoffy << " " << fractionY << " " << local_pitchy << " " - << m_yoffset; - } -#endif // EDM_ML_DEBUG + float lpY = mpy * m_pitchy + m_yoffset; return lpY; } @@ -306,38 +50,11 @@ float RectangularMTDTopology::localY(const float mpy) const { /////////////////////////////////////////////////////////////////// // Get hit errors in LocalPoint coordinates (cm) LocalError RectangularMTDTopology::localError(const MeasurementPoint& mp, const MeasurementError& me) const { - float pitchy = m_pitchy; - int binoffy = int(mp.y()); - if (isItBigPixelInY(binoffy)) - pitchy = 2. * m_pitchy; - - float pitchx = m_pitchx; - int binoffx = int(mp.x()); - if (isItBigPixelInX(binoffx)) - pitchx = 2. * m_pitchx; - - return LocalError(me.uu() * float(pitchx * pitchx), 0, me.vv() * float(pitchy * pitchy)); + return LocalError(me.uu() * float(m_pitchx * m_pitchx), 0, me.vv() * float(m_pitchy * m_pitchy)); } ///////////////////////////////////////////////////////////////////// // Get errors in pixel pitch units. MeasurementError RectangularMTDTopology::measurementError(const LocalPoint& lp, const LocalError& le) const { - float pitchy = m_pitchy; - float pitchx = m_pitchx; - - if - LIKELY(!m_upgradeGeometry) { - int iybin = int((lp.y() - m_yoffset) / m_pitchy); //get bin for equal picth - int iybin0 = iybin % 54; //This is just to avoid many ifs by using the periodicy - //quasi bins 0,1,52,53 fall into larger pixels - if ((iybin0 <= 1) | (iybin0 >= 52)) - pitchy = 2.f * m_pitchy; - - int ixbin = int((lp.x() - m_xoffset) / m_pitchx); //get bin for equal pitch - //quasi bins 79,80,81,82 fall into the 2 larger pixels - if ((ixbin >= 79) & (ixbin <= 82)) - pitchx = 2.f * m_pitchx; - } - - return MeasurementError(le.xx() / float(pitchx * pitchx), 0, le.yy() / float(pitchy * pitchy)); + return MeasurementError(le.xx() / float(m_pitchx * m_pitchx), 0, le.yy() / float(m_pitchy * m_pitchy)); } diff --git a/Geometry/MTDGeometryBuilder/test/BuildFile.xml b/Geometry/MTDGeometryBuilder/test/BuildFile.xml index 42d9a76d32f1a..a4e689eabb3c7 100644 --- a/Geometry/MTDGeometryBuilder/test/BuildFile.xml +++ b/Geometry/MTDGeometryBuilder/test/BuildFile.xml @@ -5,11 +5,28 @@ - + + + + + + + + + + + + + + + + + + diff --git a/Geometry/MTDGeometryBuilder/test/DD4hep_TestBTLPixelTopology.cc b/Geometry/MTDGeometryBuilder/test/DD4hep_TestBTLPixelTopology.cc new file mode 100644 index 0000000000000..d5385bdc76767 --- /dev/null +++ b/Geometry/MTDGeometryBuilder/test/DD4hep_TestBTLPixelTopology.cc @@ -0,0 +1,331 @@ +//#define EDM_ML_DEBUG + +#include +#include +#include +#include +#include +#include + +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/ESTransientHandle.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Utilities/interface/Exception.h" + +#include "Geometry/Records/interface/IdealGeometryRecord.h" +#include "Geometry/Records/interface/DDSpecParRegistryRcd.h" + +#include "DetectorDescription/DDCMS/interface/DDDetector.h" +#include "DetectorDescription/DDCMS/interface/DDSolidShapes.h" +#include "DetectorDescription/DDCMS/interface/DDFilteredView.h" +#include "DetectorDescription/DDCMS/interface/DDSpecParRegistry.h" + +#include "Geometry/MTDCommonData/interface/MTDTopologyMode.h" +#include "Geometry/MTDCommonData/interface/MTDBaseNumber.h" +#include "Geometry/MTDCommonData/interface/BTLNumberingScheme.h" +#include "Geometry/MTDCommonData/interface/ETLNumberingScheme.h" + +#include "DataFormats/ForwardDetId/interface/BTLDetId.h" +#include "DataFormats/ForwardDetId/interface/ETLDetId.h" + +#include "Geometry/Records/interface/MTDTopologyRcd.h" +#include "Geometry/MTDNumberingBuilder/interface/MTDTopology.h" +#include "Geometry/MTDGeometryBuilder/interface/MTDGeometry.h" +#include "Geometry/Records/interface/MTDDigiGeometryRecord.h" +#include "Geometry/MTDGeometryBuilder/interface/ProxyMTDTopology.h" +#include "Geometry/MTDGeometryBuilder/interface/RectangularMTDTopology.h" + +#include "DataFormats/Math/interface/GeantUnits.h" +#include "DataFormats/Math/interface/Rounding.h" +#include + +using namespace cms; +using namespace geant_units::operators; + +class DD4hep_TestBTLPixelTopology : public edm::one::EDAnalyzer<> { +public: + explicit DD4hep_TestBTLPixelTopology(const edm::ParameterSet&); + ~DD4hep_TestBTLPixelTopology() = default; + + void beginJob() override {} + void analyze(edm::Event const&, edm::EventSetup const&) override; + void endJob() override {} + + void theBaseNumber(cms::DDFilteredView& fv); + +private: + const edm::ESInputTag tag_; + + MTDBaseNumber thisN_; + BTLNumberingScheme btlNS_; + + edm::ESGetToken dddetToken_; + edm::ESGetToken dspecToken_; + edm::ESGetToken mtdtopoToken_; + edm::ESGetToken mtdgeoToken_; + + std::stringstream sunitt; + constexpr static double tolerance{0.5e-3_mm}; +}; + +using DD3Vector = ROOT::Math::DisplacementVector3D>; +using cms_rounding::roundIfNear0; + +DD4hep_TestBTLPixelTopology::DD4hep_TestBTLPixelTopology(const edm::ParameterSet& iConfig) + : tag_(iConfig.getParameter("DDDetector")), thisN_(), btlNS_() { + dddetToken_ = esConsumes(tag_); + dspecToken_ = esConsumes(tag_); + mtdtopoToken_ = esConsumes(tag_); + mtdgeoToken_ = esConsumes(tag_); +} + +void DD4hep_TestBTLPixelTopology::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { + auto pDD = iSetup.getTransientHandle(dddetToken_); + + auto pSP = iSetup.getTransientHandle(dspecToken_); + + if (!pDD.isValid()) { + edm::LogError("DD4hep_TestBTLPixelTopology") << "ESTransientHandle pDD is not valid!"; + return; + } + if (pDD.description()) { + edm::LogInfo("DD4hep_TestBTLPixelTopology") << pDD.description()->type_ << " label: " << pDD.description()->label_; + } else { + edm::LogWarning("DD4hep_TestBTLPixelTopology") << "NO label found pDD.description() returned false."; + } + + if (!pSP.isValid()) { + edm::LogError("DD4hep_TestBTLPixelTopology") << "ESTransientHandle pSP is not valid!"; + return; + } + + auto pTP = iSetup.getTransientHandle(mtdtopoToken_); + if (!pTP.isValid()) { + edm::LogError("DD4hep_TestBTLPixelTopology") << "ESTransientHandle pTP is not valid!"; + return; + } else { + edm::LogInfo("DD4hep_TestBTLPixelTopology") + << "MTD topology mode = " << pTP.product()->getMTDTopologyMode() << " BTLDetId:CrysLayout = " + << static_cast(MTDTopologyMode::crysLayoutFromTopoMode(pTP.product()->getMTDTopologyMode())); + } + + auto pDG = iSetup.getTransientHandle(mtdgeoToken_); + if (!pDG.isValid()) { + edm::LogError("DD4hep_TestBTLPixelTopology") << "ESTransientHandle pDG is not valid!"; + return; + } else { + edm::LogInfo("DD4hep_TestBTLPixelTopology") + << "Geometry node for MTDGeom is " << &(*pDG) << "\n" + << " # detectors = " << pDG.product()->detUnits().size() << "\n" + << " # types = " << pDG.product()->detTypes().size() << "\n" + << " # BTL dets = " << pDG.product()->detsBTL().size() << "\n" + << " # ETL dets = " << pDG.product()->detsETL().size() << "\n" + << " # layers " << pDG.product()->geomDetSubDetector(1) << " = " << pDG.product()->numberOfLayers(1) << "\n" + << " # layers " << pDG.product()->geomDetSubDetector(2) << " = " << pDG.product()->numberOfLayers(2) << "\n"; + } + + DDFilteredView fv(pDD.product(), pDD.product()->description()->worldVolume()); + fv.next(0); + + DDSpecParRefs specs; + std::string attribute("ReadOutName"), name("FastTimerHitsBarrel"); + pSP.product()->filter(specs, attribute, name); + + edm::LogVerbatim("DD4hep_TestBTLPixelTopology").log([&specs](auto& log) { + log << "Filtered DD SpecPar Registry size: " << specs.size() << "\n"; + for (const auto& t : specs) { + log << "\nSpecPar " << t.first << ":\nRegExps { "; + for (const auto& ki : t.second->paths) + log << ki << " "; + log << "};\n "; + for (const auto& kl : t.second->spars) { + log << kl.first << " = "; + for (const auto& kil : kl.second) { + log << kil << " "; + } + log << "\n "; + } + } + }); + + bool isBarrel = true; + bool exitLoop = false; + uint32_t level(0); + + do { + if (dd4hep::dd::noNamespace(fv.name()) == "BarrelTimingLayer") { + isBarrel = true; + edm::LogInfo("DD4hep_TestBTLPixelTopology") << "isBarrel = " << isBarrel; + } else if (dd4hep::dd::noNamespace(fv.name()) == "EndcapTimingLayer") { + isBarrel = false; + edm::LogInfo("DD4hep_TestBTLPixelTopology") << "isBarrel = " << isBarrel; + } + + theBaseNumber(fv); + + auto print_path = [&]() { + std::stringstream ss; + ss << " - OCMS[0]/"; + for (int ii = thisN_.getLevels() - 1; ii-- > 0;) { + ss << thisN_.getLevelName(ii); + ss << "["; + ss << thisN_.getCopyNumber(ii); + ss << "]/"; + } + return ss.str(); + }; + + if (level > 0 && fv.navPos().size() < level) { + level = 0; + exitLoop = true; + } + if (dd4hep::dd::noNamespace(fv.name()) == "BarrelTimingLayer") { + level = fv.navPos().size(); + } + + // Test only the desired subdetector + + if (exitLoop && isBarrel) { + break; + } + + // Actions for MTD volumes: search for sensitive detectors + + bool isSens = false; + + for (auto const& t : specs) { + for (auto const& it : t.second->paths) { + if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(fv.name()), dd4hep::dd::realTopName(it))) { + isSens = true; + break; + } + } + } + + if (isSens && isBarrel) { + std::stringstream spix; + spix << print_path() << "\n\n"; + + BTLDetId theId(btlNS_.getUnitID(thisN_)); + + DetId geoId = theId.geographicalId(MTDTopologyMode::crysLayoutFromTopoMode(pTP.product()->getMTDTopologyMode())); + const MTDGeomDet* thedet = pDG.product()->idToDet(geoId); + + if (thedet == nullptr) { + throw cms::Exception("BTLDeviceSim") << "GeographicalID: " << std::hex << geoId.rawId() << " (" << theId.rawId() + << ") is invalid!" << std::dec << std::endl; + } + const ProxyMTDTopology& topoproxy = static_cast(thedet->topology()); + const RectangularMTDTopology& topo = static_cast(topoproxy.specificTopology()); + + int origRow = theId.row(topo.nrows()); + int origCol = theId.column(topo.nrows()); + spix << "rawId= " << theId.rawId() << " side/rod= " << theId.mtdSide() << " / " << theId.mtdRR() + << " module/geomodule= " << theId.module() << " / " << static_cast(geoId).module() + << " crys/type= " << theId.crystal() << " / " << theId.modType() << " BTLDetId row/col= " << origRow << " / " + << origCol; + spix << "\n"; + + // + // Test of positions for sensitive detectors + // + + auto fround = [&](double in) { + std::stringstream ss; + ss << std::fixed << std::setw(14) << roundIfNear0(in); + return ss.str(); + }; + + if (!dd4hep::isA(fv.solid())) { + throw cms::Exception("DD4hep_TestBTLPixelTopology") << "MTD sensitive element not a DDBox"; + break; + } + dd4hep::Box mySens(fv.solid()); + + DD3Vector zeroLocal(0., 0., 0.); + DD3Vector cn1Local(mySens.x(), mySens.y(), mySens.z()); + DD3Vector cn2Local(-mySens.x(), -mySens.y(), -mySens.z()); + DD3Vector zeroGlobal = (fv.rotation())(zeroLocal) + fv.translation(); + DD3Vector cn1Global = (fv.rotation())(cn1Local) + fv.translation(); + DD3Vector cn2Global = (fv.rotation())(cn2Local) + fv.translation(); + + const size_t nTest(3); + std::array refLocalPoints{{Local3DPoint(zeroLocal.x(), zeroLocal.y(), zeroLocal.z()), + Local3DPoint(cn1Local.x(), cn1Local.y(), cn1Local.z()), + Local3DPoint(cn2Local.x(), cn2Local.y(), cn2Local.z())}}; + std::array refGlobalPoints{{zeroGlobal, cn1Global, cn2Global}}; + + for (size_t iloop = 0; iloop < nTest; iloop++) { + // translate from crystal-local coordinates to module-local coordinates to get the row and column + + Local3DPoint cmRefLocal(convertMmToCm(refLocalPoints[iloop].x() / dd4hep::mm), + convertMmToCm(refLocalPoints[iloop].y() / dd4hep::mm), + convertMmToCm(refLocalPoints[iloop].z() / dd4hep::mm)); + Local3DPoint modLocal = topo.pixelToModuleLocalPoint(cmRefLocal, origRow, origCol); + const auto& thepixel = topo.pixel(modLocal); + uint8_t recoRow(thepixel.first), recoCol(thepixel.second); + + if (origRow != recoRow || origCol != recoCol) { + std::stringstream warnmsg; + warnmsg << "DIFFERENCE row/col, orig= " << origRow << " " << origCol + << " reco= " << static_cast(recoRow) << " " << static_cast(recoCol) << "\n"; + spix << warnmsg.str(); + sunitt << warnmsg.str(); + recoRow = origRow; + recoCol = origCol; + } + + // reconstructed global position from reco geometry and rectangluar MTD topology + + const auto& modGlobal = thedet->toGlobal(modLocal); + + const double deltax = convertCmToMm(modGlobal.x()) - (refGlobalPoints[iloop].x() / dd4hep::mm); + const double deltay = convertCmToMm(modGlobal.y()) - (refGlobalPoints[iloop].y() / dd4hep::mm); + const double deltaz = convertCmToMm(modGlobal.z()) - (refGlobalPoints[iloop].z() / dd4hep::mm); + + spix << "Ref#" << iloop << " local= " << fround(refLocalPoints[iloop].x() / dd4hep::mm) + << fround(refLocalPoints[iloop].y() / dd4hep::mm) << fround(refLocalPoints[iloop].z() / dd4hep::mm) + << " Orig global= " << fround(refGlobalPoints[iloop].x() / dd4hep::mm) + << fround(refGlobalPoints[iloop].y() / dd4hep::mm) << fround(refGlobalPoints[iloop].z() / dd4hep::mm) + << " Reco global= " << fround(convertCmToMm(modGlobal.x())) << fround(convertCmToMm(modGlobal.y())) + << fround(convertCmToMm(modGlobal.z())) << " Delta= " << fround(deltax) << fround(deltay) << fround(deltaz) + << "\n"; + if (std::abs(deltax) > tolerance || std::abs(deltay) > tolerance || std::abs(deltaz) > tolerance) { + std::stringstream warnmsg; + warnmsg << "DIFFERENCE detId/ref# " << theId.rawId() << " " << iloop << " dx/dy/dz= " << fround(deltax) + << fround(deltay) << fround(deltaz) << "\n"; + spix << warnmsg.str(); + sunitt << warnmsg.str(); + } + } + + spix << "\n"; + edm::LogVerbatim("DD4hep_TestBTLPixelTopology") << spix.str(); + } + } while (fv.next(0)); + + if (!sunitt.str().empty()) { + edm::LogVerbatim("MTDUnitTest") << sunitt.str(); + } +} + +void DD4hep_TestBTLPixelTopology::theBaseNumber(cms::DDFilteredView& fv) { + thisN_.reset(); + thisN_.setSize(fv.navPos().size()); + + for (uint ii = 0; ii < fv.navPos().size(); ii++) { + std::string name((fv.geoHistory()[ii])->GetName()); + name.assign(name.erase(name.rfind('_'))); + int copyN(fv.copyNos()[ii]); + thisN_.addLevel(name, copyN); +#ifdef EDM_ML_DEBUG + edm::LogVerbatim("DD4hep_TestBTLPixelTopology") << name << " " << copyN; +#endif + } +} + +DEFINE_FWK_MODULE(DD4hep_TestBTLPixelTopology); diff --git a/Geometry/MTDGeometryBuilder/test/MTDDigiGeometryAnalyzer.cc b/Geometry/MTDGeometryBuilder/test/MTDDigiGeometryAnalyzer.cc index 37323aed2a876..c4a3cdcd8337e 100644 --- a/Geometry/MTDGeometryBuilder/test/MTDDigiGeometryAnalyzer.cc +++ b/Geometry/MTDGeometryBuilder/test/MTDDigiGeometryAnalyzer.cc @@ -30,7 +30,7 @@ class MTDDigiGeometryAnalyzer : public edm::one::EDAnalyzer<> { public: - explicit MTDDigiGeometryAnalyzer(const edm::ParameterSet&) {} + explicit MTDDigiGeometryAnalyzer(const edm::ParameterSet&); ~MTDDigiGeometryAnalyzer() override = default; void beginJob() override {} @@ -40,19 +40,25 @@ class MTDDigiGeometryAnalyzer : public edm::one::EDAnalyzer<> { private: void analyseRectangle(const GeomDetUnit& det); void checkRotation(const GeomDetUnit& det); + void checkRectangularMTDTopology(const RectangularMTDTopology&); std::stringstream sunitt; + + edm::ESGetToken mtdgeoToken_; }; using cms_rounding::roundIfNear0, cms_rounding::roundVecIfNear0; +MTDDigiGeometryAnalyzer::MTDDigiGeometryAnalyzer(const edm::ParameterSet& iConfig) { + mtdgeoToken_ = esConsumes(); +} + // ------------ method called to produce the data ------------ void MTDDigiGeometryAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { // // get the MTDGeometry // - edm::ESHandle pDD; - iSetup.get().get(pDD); + auto pDD = iSetup.getTransientHandle(mtdgeoToken_); edm::LogInfo("MTDDigiGeometryAnalyzer") << "Geometry node for MTDGeom is " << &(*pDD) << "\n" << " # detectors = " << pDD->detUnits().size() << "\n" @@ -91,13 +97,21 @@ void MTDDigiGeometryAnalyzer::analyze(const edm::Event& iEvent, const edm::Event if (dynamic_cast((it)) != nullptr) { const PixelTopology& p = (dynamic_cast((it)))->specificTopology(); const RectangularMTDTopology& topo = static_cast(p); + auto pitchval = topo.pitch(); edm::LogVerbatim("MTDDigiGeometryAnalyzer") << "\n Subdetector " << it->subDetector() << " MTD Det " << it->name() << "\n" << " Rows " << topo.nrows() << " Columns " << topo.ncolumns() << " ROCS X " << topo.rocsX() - << " ROCS Y " << topo.rocsY() << " Rows/ROC " << topo.rowsperroc() << " Cols/ROC " << topo.colsperroc(); + << " ROCS Y " << topo.rocsY() << " Rows/ROC " << topo.rowsperroc() << " Cols/ROC " << topo.colsperroc() + << " Pitch X " << pitchval.first << " Pitch Y " << pitchval.second << " Sensor Interpad X " + << topo.gapxInterpad() << " Sensor Interpad Y " << topo.gapyInterpad() << " Sensor Border X " + << topo.gapxBorder() << " Sensor Border Y " << topo.gapyBorder(); sunitt << std::fixed << std::setw(7) << it->subDetector() << std::setw(4) << topo.nrows() << std::setw(4) << topo.ncolumns() << std::setw(4) << std::setw(4) << topo.rocsX() << std::setw(4) << topo.rocsY() - << std::setw(4) << topo.rowsperroc() << std::setw(4) << topo.colsperroc() << "\n"; + << std::setw(4) << topo.rowsperroc() << std::setw(4) << topo.colsperroc() << std::setw(10) + << pitchval.first << std::setw(10) << pitchval.second << std::setw(10) << topo.gapxInterpad() + << std::setw(10) << topo.gapyInterpad() << std::setw(10) << topo.gapxBorder() << std::setw(10) + << topo.gapyBorder() << "\n"; + checkRectangularMTDTopology(topo); } } @@ -112,6 +126,19 @@ void MTDDigiGeometryAnalyzer::analyze(const edm::Event& iEvent, const edm::Event edm::LogVerbatim("MTDUnitTest") << sunitt.str(); } +void MTDDigiGeometryAnalyzer::checkRectangularMTDTopology(const RectangularMTDTopology& topo) { + std::stringstream pixelinfo; + pixelinfo << "Pixel center location:\n"; + LocalPoint center(0, 0, 0); + for (int r = 0; r < topo.nrows(); r++) { + for (int c = 0; c < topo.ncolumns(); c++) { + sunitt << r << " " << c << " " << topo.pixelToModuleLocalPoint(center, r, c) << "\n"; + pixelinfo << r << " " << c << " " << topo.pixelToModuleLocalPoint(center, r, c) << "\n"; + } + } + edm::LogVerbatim("MTDDigiGeometryAnalyzer") << pixelinfo.str(); +} + void MTDDigiGeometryAnalyzer::analyseRectangle(const GeomDetUnit& det) { const double safety = 0.9999; diff --git a/Geometry/MTDGeometryBuilder/test/dd4hep_mtd_cfg.py b/Geometry/MTDGeometryBuilder/test/dd4hep_mtd_cfg.py index 3c421e639d1dc..abc28919dc8ed 100644 --- a/Geometry/MTDGeometryBuilder/test/dd4hep_mtd_cfg.py +++ b/Geometry/MTDGeometryBuilder/test/dd4hep_mtd_cfg.py @@ -28,6 +28,9 @@ MTDDigiGeometryAnalyzer = cms.untracked.PSet( limit = cms.untracked.int32(-1) ), + DD4hep_TestBTLPixelTopology = cms.untracked.PSet( + limit = cms.untracked.int32(-1) + ), enable = cms.untracked.bool(True), enableStatistics = cms.untracked.bool(True), noLineBreaks = cms.untracked.bool(True), @@ -83,5 +86,8 @@ process.Timing = cms.Service("Timing") process.prod = cms.EDAnalyzer("MTDDigiGeometryAnalyzer") +process.prod1 = cms.EDAnalyzer("DD4hep_TestBTLPixelTopology", + DDDetector = cms.ESInputTag('',''), +) -process.p1 = cms.Path(process.prod) +process.p1 = cms.Path(process.prod+process.prod1) diff --git a/Geometry/MTDNumberingBuilder/interface/MTDTopology.h b/Geometry/MTDNumberingBuilder/interface/MTDTopology.h index 450d75ec27041..363230df0ba37 100644 --- a/Geometry/MTDNumberingBuilder/interface/MTDTopology.h +++ b/Geometry/MTDNumberingBuilder/interface/MTDTopology.h @@ -8,163 +8,14 @@ #include #include -//knower of all things tracker geometry -//flexible replacement for PXBDetId and friends -//to implement -// endcap pixel - class MTDTopology { public: - struct BTLValues { - unsigned int sideStartBit_; - unsigned int layerStartBit_; - unsigned int trayStartBit_; - unsigned int moduleStartBit_; - unsigned int sideMask_; - unsigned int layerMask_; - unsigned int trayMask_; - unsigned int moduleMask_; - }; - - struct ETLValues { - unsigned int sideStartBit_; - unsigned int layerStartBit_; - unsigned int ringStartBit_; - unsigned int moduleStartBit_; - unsigned int sideMask_; - unsigned int layerMask_; - unsigned int ringMask_; - unsigned int moduleMask_; - }; - - enum DetIdFields { - BTLModule, - BTLTray, - BTLLayer, - BTLSide, - ETLModule, - ETLRing, - ETLLayer, - ETLSide, - /* TODO: this can be extended for all subdetectors */ - DETID_FIELDS_MAX - }; - - class SameLayerComparator { - public: - explicit SameLayerComparator(const MTDTopology *topo) : topo_(topo) {} - - bool operator()(DetId i1, DetId i2) const { - if (i1.det() == i2.det() && i1.subdetId() == i2.subdetId() && topo_->side(i1) == topo_->side(i2) && - topo_->layer(i1) == topo_->layer(i2)) { - return false; - } - return i1 < i2; - } - - bool operator()(uint32_t i1, uint32_t i2) const { return operator()(DetId(i1), DetId(i2)); } - - private: - const MTDTopology *topo_; - }; - - MTDTopology(const int &topologyMode, const BTLValues &btl, const ETLValues &etl); + MTDTopology(const int &topologyMode); int getMTDTopologyMode() const { return mtdTopologyMode_; } - unsigned int side(const DetId &id) const; - unsigned int layer(const DetId &id) const; - unsigned int module(const DetId &id) const; - unsigned int tray(const DetId &id) const; - unsigned int ring(const DetId &id) const; - - //module - unsigned int btlModule(const DetId &id) const { - return ((id.rawId() >> btlVals_.moduleStartBit_) & btlVals_.moduleMask_); - } - unsigned int etlModule(const DetId &id) const { - return int((id.rawId() >> btlVals_.moduleStartBit_) & btlVals_.moduleMask_); - } - - //tray - unsigned int btlTray(const DetId &id) const { return ((id.rawId() >> btlVals_.trayStartBit_) & btlVals_.trayMask_); } - - // ring id - unsigned int etlRing(const DetId &id) const { return ((id.rawId() >> etlVals_.ringStartBit_) & etlVals_.ringMask_); } - - // layer numbers - unsigned int btlLayer(const DetId &id) const { - return int((id.rawId() >> btlVals_.layerStartBit_) & btlVals_.layerMask_); - } - unsigned int etlLayer(const DetId &id) const { - return int((id.rawId() >> etlVals_.layerStartBit_) & etlVals_.layerMask_); - } - - //side - unsigned int btlSide(const DetId &id) const { return ((id.rawId() >> btlVals_.sideStartBit_) & btlVals_.sideMask_); } - - unsigned int etlSide(const DetId &id) const { return ((id.rawId() >> etlVals_.sideStartBit_) & etlVals_.sideMask_); } - - // which disc is this ring on the forward or backward one? - unsigned int etlDisc(const DetId &id) const { - return int((id.rawId() >> etlVals_.ringStartBit_) & etlVals_.ringMask_) % 2; - } - - //old constructors, now return DetId - DetId btlDetId(uint32_t side, uint32_t layer, uint32_t tray, uint32_t module) const { - //uply - DetId id(DetId::Forward, ForwardSubdetector::FastTime); - uint32_t rawid = id.rawId(); - rawid |= MTDDetId::BTL << MTDDetId::kMTDsubdOffset | (side & btlVals_.sideMask_) << btlVals_.sideStartBit_ | - (layer & btlVals_.layerMask_) << btlVals_.layerStartBit_ | - (tray & btlVals_.trayMask_) << btlVals_.trayStartBit_ | - (module & btlVals_.moduleMask_) << btlVals_.moduleStartBit_; - return DetId(rawid); - } - - DetId etlDetId(uint32_t side, uint32_t layer, uint32_t ring, uint32_t module) const { - DetId id(DetId::Forward, ForwardSubdetector::FastTime); - uint32_t rawid = id.rawId(); - rawid |= MTDDetId::ETL << MTDDetId::kMTDsubdOffset | (side & etlVals_.sideMask_) << etlVals_.sideStartBit_ | - (layer & etlVals_.layerMask_) << etlVals_.layerStartBit_ | - (ring & etlVals_.ringMask_) << etlVals_.ringStartBit_ | - (module & etlVals_.moduleMask_) << etlVals_.moduleStartBit_; - return DetId(rawid); - } - - std::pair btlDetIdLayerComparator(uint32_t side, uint32_t layer) const { - return std::make_pair(btlDetId(side, layer, 1, 1), SameLayerComparator(this)); - } - - std::pair etlDetIdDiskComparator(uint32_t side, uint32_t layer) const { - return std::make_pair(etlDetId(side, layer, 1, 1), SameLayerComparator(this)); - } - - std::string print(DetId detid) const; - - int getMTDLayerNumber(const DetId &id) const; - - // Extract the raw bit value for a given field type. - // E.g. getField(id, PBLadder) == pxbLadder(id) - unsigned int getField(const DetId &id, DetIdFields idx) const { - return ((id.rawId() >> bits_per_field[idx].startBit) & bits_per_field[idx].mask); - } - // checks whether a given field can be extracted from a given DetId. - // This boils down to checking whether it is the correct subdetector. - bool hasField(const DetId &id, DetIdFields idx) const { return id.subdetId() == bits_per_field[idx].subdet; } - private: const int mtdTopologyMode_; - - const BTLValues btlVals_; - const ETLValues etlVals_; - - struct BitmaskAndSubdet { - unsigned int startBit; - unsigned int mask; - int subdet; - }; - const BitmaskAndSubdet bits_per_field[DETID_FIELDS_MAX]; }; #endif diff --git a/Geometry/MTDNumberingBuilder/plugins/MTDTopologyEP.cc b/Geometry/MTDNumberingBuilder/plugins/MTDTopologyEP.cc index 10e48cdf244e2..977b21b15c006 100644 --- a/Geometry/MTDNumberingBuilder/plugins/MTDTopologyEP.cc +++ b/Geometry/MTDNumberingBuilder/plugins/MTDTopologyEP.cc @@ -1,4 +1,3 @@ -#include "FWCore/Utilities/interface/Exception.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" @@ -24,7 +23,7 @@ class MTDTopologyEP : public edm::ESProducer { ReturnType produce(const MTDTopologyRcd&); private: - void fillParameters(const PMTDParameters&, int&, MTDTopology::BTLValues&, MTDTopology::ETLValues&); + void fillParameters(const PMTDParameters&, int& mtdTopologyMode); const edm::ESGetToken token_; }; @@ -39,49 +38,18 @@ void MTDTopologyEP::fillDescriptions(edm::ConfigurationDescriptions& description MTDTopologyEP::ReturnType MTDTopologyEP::produce(const MTDTopologyRcd& iRecord) { int mtdTopologyMode; - MTDTopology::BTLValues btlVals; - MTDTopology::ETLValues etlVals; - fillParameters(iRecord.get(token_), mtdTopologyMode, btlVals, etlVals); + fillParameters(iRecord.get(token_), mtdTopologyMode); - return std::make_unique(mtdTopologyMode, btlVals, etlVals); + return std::make_unique(mtdTopologyMode); } -void MTDTopologyEP::fillParameters(const PMTDParameters& ptp, - int& mtdTopologyMode, - MTDTopology::BTLValues& btlVals, - MTDTopology::ETLValues& etlVals) { +void MTDTopologyEP::fillParameters(const PMTDParameters& ptp, int& mtdTopologyMode) { mtdTopologyMode = ptp.topologyMode_; - btlVals.sideStartBit_ = ptp.vitems_[0].vpars_[0]; // 16 - btlVals.layerStartBit_ = ptp.vitems_[0].vpars_[1]; // 16 - btlVals.trayStartBit_ = ptp.vitems_[0].vpars_[2]; // 8 - btlVals.moduleStartBit_ = ptp.vitems_[0].vpars_[3]; // 2 - btlVals.sideMask_ = ptp.vitems_[0].vpars_[4]; // 0xF - btlVals.layerMask_ = ptp.vitems_[0].vpars_[5]; // 0xF - btlVals.trayMask_ = ptp.vitems_[0].vpars_[6]; // 0xFF - btlVals.moduleMask_ = ptp.vitems_[0].vpars_[7]; // 0x3F - - etlVals.sideStartBit_ = ptp.vitems_[1].vpars_[0]; - etlVals.layerStartBit_ = ptp.vitems_[1].vpars_[1]; - etlVals.ringStartBit_ = ptp.vitems_[1].vpars_[2]; - etlVals.moduleStartBit_ = ptp.vitems_[1].vpars_[3]; - etlVals.sideMask_ = ptp.vitems_[1].vpars_[4]; - etlVals.layerMask_ = ptp.vitems_[1].vpars_[5]; - etlVals.ringMask_ = ptp.vitems_[1].vpars_[6]; - etlVals.moduleMask_ = ptp.vitems_[1].vpars_[7]; - #ifdef EDM_ML_DEBUG - edm::LogInfo("MTDTopologyEP") << "Topology mode = " << mtdTopologyMode << "\n" - << "BTL values = " << btlVals.sideStartBit_ << " " << btlVals.layerStartBit_ << " " - << btlVals.trayStartBit_ << " " << btlVals.moduleStartBit_ << " " << std::hex - << btlVals.sideMask_ << " " << std::hex << btlVals.layerMask_ << " " << std::hex - << btlVals.trayMask_ << " " << std::hex << btlVals.moduleMask_ << "\n" - << "ETL values = " << etlVals.sideStartBit_ << " " << etlVals.layerStartBit_ << " " - << etlVals.ringStartBit_ << " " << etlVals.moduleStartBit_ << " " << std::hex - << etlVals.sideMask_ << " " << std::hex << etlVals.layerMask_ << " " << std::hex - << etlVals.ringMask_ << " " << std::hex << etlVals.moduleMask_ << " "; + edm::LogInfo("MTDTopologyEP") << "Topology mode = " << mtdTopologyMode; #endif } diff --git a/Geometry/MTDNumberingBuilder/src/CmsMTDStringToEnum.cc b/Geometry/MTDNumberingBuilder/src/CmsMTDStringToEnum.cc index 95d56f831cefa..ea723f87cd821 100644 --- a/Geometry/MTDNumberingBuilder/src/CmsMTDStringToEnum.cc +++ b/Geometry/MTDNumberingBuilder/src/CmsMTDStringToEnum.cc @@ -18,7 +18,7 @@ CmsMTDStringToEnum::Impl::Impl() { GeometricTimingDet::GeometricTimingEnumType CmsMTDStringToEnum::type(std::string const& s) const { // remove namespace if present std::string_view v = s; - auto first = v.find_first_of(":"); + auto first = v.find_first_of(':'); v.remove_prefix(std::min(first + 1, v.size())); MapEnumType::const_iterator p = map().find({v.data(), v.size()}); if (p != map().end()) diff --git a/Geometry/MTDNumberingBuilder/src/MTDTopology.cc b/Geometry/MTDNumberingBuilder/src/MTDTopology.cc index 9b5b2eabda8fd..29cbf811a3412 100644 --- a/Geometry/MTDNumberingBuilder/src/MTDTopology.cc +++ b/Geometry/MTDNumberingBuilder/src/MTDTopology.cc @@ -1,136 +1,3 @@ #include "Geometry/MTDNumberingBuilder/interface/MTDTopology.h" -#include "FWCore/Utilities/interface/Exception.h" -#include "DataFormats/ForwardDetId/interface/BTLDetId.h" -#include "DataFormats/ForwardDetId/interface/ETLDetId.h" -#include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h" -#include "DataFormats/SiStripDetId/interface/StripSubdetector.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include -#include -MTDTopology::MTDTopology(const int &topologyMode, const BTLValues &btl, const ETLValues &etl) - : mtdTopologyMode_(topologyMode), - btlVals_(btl), - etlVals_(etl), - bits_per_field{[BTLModule] = {btlVals_.moduleStartBit_, btlVals_.moduleMask_, MTDDetId::BTL}, - [BTLTray] = {btlVals_.trayStartBit_, btlVals_.trayMask_, MTDDetId::BTL}, - [BTLLayer] = {btlVals_.layerStartBit_, btlVals_.layerMask_, MTDDetId::BTL}, - [BTLSide] = {btlVals_.sideStartBit_, btlVals_.sideMask_, MTDDetId::BTL}, - [ETLModule] = {etlVals_.moduleStartBit_, etlVals_.moduleMask_, MTDDetId::ETL}, - [ETLRing] = {etlVals_.ringStartBit_, etlVals_.ringMask_, MTDDetId::ETL}, - [ETLLayer] = {etlVals_.layerStartBit_, etlVals_.layerMask_, MTDDetId::ETL}, - [ETLSide] = {etlVals_.sideStartBit_, etlVals_.sideMask_, MTDDetId::ETL}} {} - -unsigned int MTDTopology::side(const DetId &id) const { - uint32_t subdet = MTDDetId(id).mtdSubDetector(); - switch (subdet) { - case MTDDetId::BTL: - return btlSide(id); - case MTDDetId::ETL: - return etlSide(id); - default: - throw cms::Exception("Invalid DetId") << "Unsupported DetId in MTDTopology::side"; - } - return std::numeric_limits::max(); -} - -unsigned int MTDTopology::layer(const DetId &id) const { - uint32_t subdet = MTDDetId(id).mtdSubDetector(); - switch (subdet) { - case MTDDetId::BTL: - return btlLayer(id); - case MTDDetId::ETL: - return etlLayer(id); - default: - throw cms::Exception("Invalid DetId") << "Unsupported DetId in MTDTopology::layer"; - } - return std::numeric_limits::max(); -} - -unsigned int MTDTopology::module(const DetId &id) const { - uint32_t subdet = MTDDetId(id).mtdSubDetector(); - switch (subdet) { - case MTDDetId::BTL: - return btlModule(id); - case MTDDetId::ETL: - return etlModule(id); - default: - throw cms::Exception("Invalid DetId") << "Unsupported DetId in MTDTopology::module"; - } - return std::numeric_limits::max(); -} - -unsigned int MTDTopology::tray(const DetId &id) const { - uint32_t subdet = MTDDetId(id).mtdSubDetector(); - switch (subdet) { - case MTDDetId::BTL: - return btlTray(id); - case MTDDetId::ETL: - return std::numeric_limits::max(); - default: - throw cms::Exception("Invalid DetId") << "Unsupported DetId in MTDTopology::tray"; - } - return std::numeric_limits::max(); -} - -unsigned int MTDTopology::ring(const DetId &id) const { - uint32_t subdet = MTDDetId(id).mtdSubDetector(); - switch (subdet) { - case MTDDetId::BTL: - return std::numeric_limits::max(); - case MTDDetId::ETL: - return etlModule(id); - default: - throw cms::Exception("Invalid DetId") << "Unsupported DetId in MTDTopology::ring"; - } - return std::numeric_limits::max(); -} - -std::string MTDTopology::print(DetId id) const { - uint32_t subdet = MTDDetId(id).mtdSubDetector(); - std::stringstream strstr; - - if (subdet == MTDDetId::BTL) { - unsigned int theSide = btlSide(id); - unsigned int theLayer = btlLayer(id); - unsigned int theTray = btlTray(id); - unsigned int theModule = btlModule(id); - std::string side = (btlSide(id) == 1) ? "-" : "+"; - strstr << "BTL" - << " Side " << theSide << side << " Layer " << theLayer << " Tray " << theTray << " Module " - << theModule; - strstr << " (" << id.rawId() << ")"; - return strstr.str(); - } - - if (subdet == MTDDetId::ETL) { - unsigned int theSide = etlSide(id); - unsigned int theLayer = etlLayer(id); - unsigned int theRing = etlRing(id); - unsigned int theModule = etlModule(id); - std::string side = (etlSide(id) == 1) ? "-" : "+"; - strstr << "ETL" - << " Side " << theSide << side << " Layer " << theLayer << " Ring " << theRing << " Module " - << theModule; - strstr << " (" << id.rawId() << ")"; - return strstr.str(); - } - throw cms::Exception("Invalid DetId") << "Unsupported DetId in MTDTopology::print"; - return strstr.str(); -} - -int MTDTopology::getMTDLayerNumber(const DetId &id) const { - int layer = -1; - uint32_t subdet = MTDDetId(id).mtdSubDetector(); - - if (id.det() == DetId::Forward) { - if (subdet == MTDDetId::BTL) { - layer = btlLayer(id); - } else if (id.subdetId() == MTDDetId::ETL) { - layer = etlLayer(id); - } else { - edm::LogInfo("MTDTopology") << ">>> Invalid subdetId() "; - } - } - return layer; -} +MTDTopology::MTDTopology(const int &topologyMode) : mtdTopologyMode_(topologyMode) {} diff --git a/Geometry/MTDNumberingBuilder/test/BuildFile.xml b/Geometry/MTDNumberingBuilder/test/BuildFile.xml index df9ab7855dc78..daa0757440b7e 100644 --- a/Geometry/MTDNumberingBuilder/test/BuildFile.xml +++ b/Geometry/MTDNumberingBuilder/test/BuildFile.xml @@ -8,31 +8,4 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Geometry/MTDNumberingBuilder/test/DD4hep_MTDTopologyAnalyzer.cc b/Geometry/MTDNumberingBuilder/test/DD4hep_MTDTopologyAnalyzer.cc deleted file mode 100644 index 83e2ef94d716e..0000000000000 --- a/Geometry/MTDNumberingBuilder/test/DD4hep_MTDTopologyAnalyzer.cc +++ /dev/null @@ -1,225 +0,0 @@ -#include -#include -#include -#include -#include -#include - -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/one/EDAnalyzer.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/ESTransientHandle.h" -#include "FWCore/Framework/interface/MakerMacros.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Utilities/interface/Exception.h" - -#include "Geometry/Records/interface/IdealGeometryRecord.h" -#include "Geometry/Records/interface/DDSpecParRegistryRcd.h" -#include "Geometry/Records/interface/MTDTopologyRcd.h" -#include "Geometry/MTDNumberingBuilder/interface/MTDTopology.h" - -#include "DetectorDescription/DDCMS/interface/DDDetector.h" -#include "DetectorDescription/DDCMS/interface/DDFilteredView.h" -#include "DetectorDescription/DDCMS/interface/DDSpecParRegistry.h" - -#include "Geometry/MTDCommonData/interface/MTDBaseNumber.h" -#include "Geometry/MTDCommonData/interface/BTLNumberingScheme.h" -#include "Geometry/MTDCommonData/interface/ETLNumberingScheme.h" - -#include "DataFormats/ForwardDetId/interface/BTLDetId.h" -#include "DataFormats/ForwardDetId/interface/ETLDetId.h" - -#include "DataFormats/Math/interface/GeantUnits.h" - -//#define EDM_ML_DEBUG - -using namespace cms; - -class DD4hep_MTDTopologyAnalyzer : public edm::one::EDAnalyzer<> { -public: - explicit DD4hep_MTDTopologyAnalyzer(const edm::ParameterSet&); - ~DD4hep_MTDTopologyAnalyzer() = default; - - void beginJob() override {} - void analyze(edm::Event const&, edm::EventSetup const&) override; - void endJob() override {} - - void theBaseNumber(cms::DDFilteredView& fv); - -private: - const edm::ESInputTag tag_; - - MTDBaseNumber thisN_; - BTLNumberingScheme btlNS_; - ETLNumberingScheme etlNS_; - - edm::ESGetToken dddetToken_; - edm::ESGetToken dspecToken_; - edm::ESGetToken mtdtopoToken_; -}; - -DD4hep_MTDTopologyAnalyzer::DD4hep_MTDTopologyAnalyzer(const edm::ParameterSet& iConfig) - : tag_(iConfig.getParameter("DDDetector")), thisN_(), btlNS_(), etlNS_() { - dddetToken_ = esConsumes(tag_); - dspecToken_ = esConsumes(tag_); - mtdtopoToken_ = esConsumes(tag_); -} - -void DD4hep_MTDTopologyAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { - auto pDD = iSetup.getTransientHandle(dddetToken_); - - auto pSP = iSetup.getTransientHandle(dspecToken_); - - if (!pDD.isValid()) { - edm::LogError("MTDTopologyAnalyzer") << "ESTransientHandle pDD is not valid!"; - return; - } - if (pDD.description()) { - edm::LogInfo("MTDTopologyAnalyzer") << pDD.description()->type_ << " label: " << pDD.description()->label_; - } else { - edm::LogWarning("MTDTopologyAnalyzer") << "NO label found pDD.description() returned false."; - } - - if (!pSP.isValid()) { - edm::LogError("MTDTopologyAnalyzer") << "ESTransientHandle pSP is not valid!"; - return; - } - - auto pTP = iSetup.getTransientHandle(mtdtopoToken_); - if (!pTP.isValid()) { - edm::LogError("MTDTopologyAnalyzer") << "ESTransientHandle pTP is not valid!"; - return; - } else { - edm::LogInfo("MTDTopologyAnalyzer") << "MTD topology mode = " << pTP->getMTDTopologyMode(); - } - - DDFilteredView fv(pDD.product(), pDD.product()->worldVolume()); - fv.next(0); - edm::LogInfo("MTDTopologyAnalyzer") << fv.name(); - - DDSpecParRefs specs; - std::string attribute("ReadOutName"), name; - // - // Select both BTL and ETL sensitive volumes - // - name = "FastTimerHitsBarrel"; - pSP.product()->filter(specs, attribute, name); - name = "FastTimerHitsEndcap"; - pSP.product()->filter(specs, attribute, name); - - edm::LogVerbatim("Geometry").log([&specs](auto& log) { - log << "Filtered DD SpecPar Registry size: " << specs.size() << "\n"; - for (const auto& t : specs) { - log << "\nRegExps { "; - for (const auto& ki : t.second->paths) - log << ki << " "; - log << "};\n "; - for (const auto& kl : t.second->spars) { - log << kl.first << " = "; - for (const auto& kil : kl.second) { - log << kil << " "; - } - log << "\n "; - } - } - }); - - bool isBarrel = true; - std::string ddtop(""); - uint32_t level(0); - - do { - if (fv.name() == "BarrelTimingLayer") { - isBarrel = true; - ddtop = "BarrelTimingLayer"; - edm::LogInfo("MTDTopologyAnalyzer") << "isBarrel = " << isBarrel; - } else if (fv.name() == "EndcapTimingLayer") { - isBarrel = false; - ddtop = "EndcapTimingLayer"; - edm::LogInfo("MTDTopologyAnalyzer") << "isBarrel = " << isBarrel; - } - -#ifdef EDM_ML_DEBUG - edm::LogVerbatim("MTDTopologyAnalyzer") << "Top level volume: " << ddtop; -#endif - - std::stringstream ss; - - theBaseNumber(fv); - - auto print_path = [&]() { - ss << " - OCMS[0]/"; - for (int ii = thisN_.getLevels() - 1; ii-- > 0;) { - ss << thisN_.getLevelName(ii); - ss << "["; - ss << thisN_.getCopyNumber(ii); - ss << "]/"; - } - }; - - if (level > 0 && fv.copyNos().size() < level) { - level = 0; - ddtop.clear(); - } - if (fv.name() == "BarrelTimingLayer" || fv.name() == "EndcapTimingLayer") { - level = fv.copyNos().size(); - } - - if (!ddtop.empty()) { - // Actions for MTD topology test: searchg for sensitive detectors - - print_path(); - -#ifdef EDM_ML_DEBUG - edm::LogInfo("MTDTopologyAnalyzer") << "Top level volume: " << ddtop << " at history " << ss.str(); -#endif - - bool isSens = false; - - for (auto const& t : specs) { - for (auto const& it : t.second->paths) { - if (dd4hep::dd::compareEqual(fv.name(), dd4hep::dd::realTopName(it))) { - isSens = true; - break; - } - } - } - - if (isSens) { - // - // Test of numbering scheme for sensitive detectors - // - - edm::LogVerbatim("MTDTopologyanalyzer") << ss.str(); - - if (isBarrel) { - BTLDetId theId(btlNS_.getUnitID(thisN_)); - DetId localId(theId.rawId()); - edm::LogVerbatim("MTDTopologAnalyzer") << pTP->print(localId) << "\n" << theId; - } else { - ETLDetId theId(etlNS_.getUnitID(thisN_)); - DetId localId(theId.rawId()); - edm::LogVerbatim("MTDTopologAnalyzer") << pTP->print(localId) << "\n" << theId; - } - } - } - } while (fv.next(0)); -} - -void DD4hep_MTDTopologyAnalyzer::theBaseNumber(cms::DDFilteredView& fv) { - thisN_.reset(); - thisN_.setSize(fv.copyNos().size()); - - for (uint ii = 0; ii < fv.copyNos().size(); ii++) { - std::string name(dd4hep::dd::noNamespace((fv.geoHistory()[ii])->GetName())); - name.assign(name.erase(name.rfind('_'))); - int copyN(fv.copyNos()[ii]); - thisN_.addLevel(name, copyN); -#ifdef EDM_ML_DEBUG - edm::LogVerbatim("MTDTopologyAnalyzer") << name << " " << copyN; -#endif - } -} - -DEFINE_FWK_MODULE(DD4hep_MTDTopologyAnalyzer); diff --git a/Geometry/MTDNumberingBuilder/test/GeometricTimingDetAnalyzer.cc b/Geometry/MTDNumberingBuilder/test/GeometricTimingDetAnalyzer.cc index 894939f23f7d2..029e5af079fc7 100644 --- a/Geometry/MTDNumberingBuilder/test/GeometricTimingDetAnalyzer.cc +++ b/Geometry/MTDNumberingBuilder/test/GeometricTimingDetAnalyzer.cc @@ -57,6 +57,9 @@ class GeometricTimingDetAnalyzer : public edm::one::EDAnalyzer<> { void analyze(edm::Event const& iEvent, edm::EventSetup const&) override; void endJob() override {} void dumpGeometricTimingDet(const GeometricTimingDet* det); + +private: + edm::ESGetToken gtdToken_; }; // @@ -71,7 +74,7 @@ class GeometricTimingDetAnalyzer : public edm::one::EDAnalyzer<> { // constructors and destructor // GeometricTimingDetAnalyzer::GeometricTimingDetAnalyzer(const edm::ParameterSet& iConfig) { - //now do what ever initialization is needed + gtdToken_ = esConsumes(); } GeometricTimingDetAnalyzer::~GeometricTimingDetAnalyzer() { @@ -93,11 +96,10 @@ void GeometricTimingDetAnalyzer::analyze(const edm::Event& iEvent, const edm::Ev // // get the GeometricTimingDet // - edm::ESHandle rDD; - iSetup.get().get(rDD); + auto rDD = iSetup.getTransientHandle(gtdToken_); if (!rDD.isValid()) { - edm::LogError("DD4hep_MTDTopologyAnalyzer") << "ESTransientHandle rDD is not valid!"; + edm::LogError("GeometricTimingDetAnalyzer") << "ESTransientHandle rDD is not valid!"; return; } diff --git a/Geometry/MTDNumberingBuilder/test/MTDTopologyAnalyzer.cc b/Geometry/MTDNumberingBuilder/test/MTDTopologyAnalyzer.cc deleted file mode 100644 index d2e5a46474568..0000000000000 --- a/Geometry/MTDNumberingBuilder/test/MTDTopologyAnalyzer.cc +++ /dev/null @@ -1,190 +0,0 @@ - -// system include files -#include - -// user include files -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/one/EDAnalyzer.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/Framework/interface/ESTransientHandle.h" -#include "FWCore/Framework/interface/MakerMacros.h" - -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "Geometry/Records/interface/MTDTopologyRcd.h" -#include "Geometry/MTDNumberingBuilder/interface/MTDTopology.h" - -#include "DetectorDescription/Core/interface/DDFilteredView.h" - -#include "Geometry/MTDCommonData/interface/MTDBaseNumber.h" -#include "Geometry/MTDCommonData/interface/BTLNumberingScheme.h" -#include "Geometry/MTDCommonData/interface/ETLNumberingScheme.h" - -#include "DataFormats/ForwardDetId/interface/BTLDetId.h" -#include "DataFormats/ForwardDetId/interface/ETLDetId.h" - -#include "FWCore/MessageLogger/interface/MessageLogger.h" - -//#define EDM_ML_DEBUG - -// -// class declaration -// - -class MTDTopologyAnalyzer : public edm::one::EDAnalyzer<> { -public: - explicit MTDTopologyAnalyzer(const edm::ParameterSet&); - ~MTDTopologyAnalyzer() override = default; - - void analyze(edm::Event const& iEvent, edm::EventSetup const&) override; - - void theBaseNumber(const DDGeoHistory& gh); - - std::string noNSgeoHistory(const DDGeoHistory& gh); - - MTDBaseNumber thisN_; - BTLNumberingScheme btlNS_; - ETLNumberingScheme etlNS_; -}; - -MTDTopologyAnalyzer::MTDTopologyAnalyzer(const edm::ParameterSet& iConfig) : thisN_(), btlNS_(), etlNS_() {} - -// ------------ method called to produce the data ------------ -void MTDTopologyAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { - edm::ESHandle mtdTopo; - iSetup.get().get(mtdTopo); - edm::LogInfo("MTDTopologyAnalyzer") << "MTD topology mode = " << mtdTopo->getMTDTopologyMode(); - - // Build DetIds based on DD description, then extract information from topology and compare - - std::string label; - - edm::ESTransientHandle pDD; - iSetup.get().get(label, pDD); - if (pDD.description()) { - edm::LogInfo("MTDTopologyAnalyzer") << pDD.description()->type_ << " label: " << pDD.description()->label_; - } else { - edm::LogWarning("MTDTopologyAnalyzer") << "NO label found pDD.description() returned false."; - } - if (!pDD.isValid()) { - edm::LogError("MTDTopologyAnalyzer") << "ESTransientHandle pDD is not valid!"; - } - - DDPassAllFilter filter; - DDFilteredView fv(*pDD, filter); - - edm::LogInfo("MTDTopologyAnalyzer") << "Top Most LogicalPart = " << fv.logicalPart(); - - using nav_type = DDFilteredView::nav_type; - using id_type = std::map; - id_type idMap; - int id = 0; - std::string ddtop(""); - size_t limit = 0; - - bool isBarrel = false; - - do { - nav_type pos = fv.navPos(); - idMap[pos] = id; - - size_t num = fv.geoHistory().size(); - - if (fv.geoHistory()[num - 1].logicalPart().name().name() == "BarrelTimingLayer") { - isBarrel = true; - limit = num; - ddtop = "BarrelTimingLayer"; - } else if (fv.geoHistory()[num - 1].logicalPart().name().name() == "EndcapTimingLayer") { - isBarrel = false; - limit = num; - ddtop = "EndcapTimingLayer"; - } - -#ifdef EDM_ML_DEBUG - edm::LogVerbatim("MTDTopologyAnalyzer") << "Top level volume: " << ddtop; -#endif - - if (num <= limit && fv.geoHistory()[num - 1].logicalPart().name().name() != ddtop) { - ddtop.clear(); - } - -#ifdef EDM_ML_DEBUG - edm::LogVerbatim("MTDTopologyAnalyzer") - << "Top level volume: " << ddtop << " at history " << fv.geoHistory()[num - 1].logicalPart().name().name(); -#endif - - if (!ddtop.empty()) { - // Actions for MTD volumes: searchg for sensitive detectors - - bool isSens = false; - - if (fv.geoHistory()[num - 1].logicalPart().specifics().size() > 0) { - for (auto vec : fv.geoHistory()[num - 1].logicalPart().specifics()) { - for (auto elem : *vec) { - if (elem.second.name() == "SensitiveDetector") { - isSens = true; - break; - } - } - } - } - - // Check of numbering scheme for sensitive detectors - - if (isSens) { - theBaseNumber(fv.geoHistory()); - - edm::LogVerbatim("MTDTopologyAnalyzer") << noNSgeoHistory(fv.geoHistory()); - - if (isBarrel) { - BTLDetId theId(btlNS_.getUnitID(thisN_)); - DetId localId(theId.rawId()); - edm::LogVerbatim("MTDTopologAnalyzer") << mtdTopo->print(localId) << "\n" << theId; - ; - } else { - ETLDetId theId(etlNS_.getUnitID(thisN_)); - DetId localId(theId.rawId()); - edm::LogVerbatim("MTDTopologAnalyzer") << mtdTopo->print(localId) << "\n" << theId; - ; - } - } - } - - ++id; - } while (fv.next()); -} - -void MTDTopologyAnalyzer::theBaseNumber(const DDGeoHistory& gh) { - thisN_.reset(); - thisN_.setSize(gh.size()); - - for (uint i = gh.size(); i-- > 0;) { - std::string name(gh[i].logicalPart().name().name()); - int copyN(gh[i].copyno()); - thisN_.addLevel(name, copyN); -#ifdef EDM_ML_DEBUG - edm::LogInfo("MTDTopologyAnalyzer") << name << " " << copyN; -#endif - } -} - -std::string MTDTopologyAnalyzer::noNSgeoHistory(const DDGeoHistory& gh) { - std::string output(" - "); - for (uint i = 0; i < gh.size(); i++) { - output += gh[i].logicalPart().name().name(); - output += "["; - output += std::to_string(gh[i].copyno()); - output += "]/"; - } - -#ifdef EDM_ML_DEBUG - edm::LogInfo("MTDTopologyAnalyzer") << output; -#endif - - return output; -} - -//define this as a plug-in -DEFINE_FWK_MODULE(MTDTopologyAnalyzer); diff --git a/Geometry/MTDNumberingBuilder/test/dd4hep_mtd_cfg.py b/Geometry/MTDNumberingBuilder/test/dd4hep_mtd_cfg.py index b518eab748b7a..0c584413b0025 100644 --- a/Geometry/MTDNumberingBuilder/test/dd4hep_mtd_cfg.py +++ b/Geometry/MTDNumberingBuilder/test/dd4hep_mtd_cfg.py @@ -25,9 +25,6 @@ INFO = cms.untracked.PSet( limit = cms.untracked.int32(-1) ), - MTDTopologyAnalyzer = cms.untracked.PSet( - limit = cms.untracked.int32(-1) - ), enable = cms.untracked.bool(True), enableStatistics = cms.untracked.bool(True), noLineBreaks = cms.untracked.bool(True), @@ -79,10 +76,6 @@ process.prod = cms.EDAnalyzer("GeometricTimingDetAnalyzer") -process.prod1 = cms.EDAnalyzer("DD4hep_MTDTopologyAnalyzer", - DDDetector = cms.ESInputTag('',''), -) - process.Timing = cms.Service("Timing") -process.p1 = cms.Path(process.prod+process.prod1) +process.p1 = cms.Path(process.prod) diff --git a/Geometry/MTDNumberingBuilder/test/mtd_cfg.py b/Geometry/MTDNumberingBuilder/test/mtd_cfg.py index 822dbb2de30dd..86a0aa63c58fc 100644 --- a/Geometry/MTDNumberingBuilder/test/mtd_cfg.py +++ b/Geometry/MTDNumberingBuilder/test/mtd_cfg.py @@ -27,9 +27,6 @@ INFO = cms.untracked.PSet( limit = cms.untracked.int32(-1) ), - MTDTopologyAnalyzer = cms.untracked.PSet( - limit = cms.untracked.int32(-1) - ), enable = cms.untracked.bool(True), enableStatistics = cms.untracked.bool(True), noLineBreaks = cms.untracked.bool(True), @@ -72,7 +69,5 @@ process.prod = cms.EDAnalyzer("GeometricTimingDetAnalyzer") -process.prod1 = cms.EDAnalyzer("MTDTopologyAnalyzer") - -process.p1 = cms.Path(process.prod+process.prod1) +process.p1 = cms.Path(process.prod) diff --git a/Geometry/TrackerCommonData/data/pixfwdMaterials/2021/v3/pixfwdMaterials.xml b/Geometry/TrackerCommonData/data/pixfwdMaterials/2021/v3/pixfwdMaterials.xml new file mode 100644 index 0000000000000..48dd67ba8ddf3 --- /dev/null +++ b/Geometry/TrackerCommonData/data/pixfwdMaterials/2021/v3/pixfwdMaterials.xml @@ -0,0 +1,698 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/TrackerGeometryBuilder/interface/PixelTopologyMap.h b/Geometry/TrackerGeometryBuilder/interface/PixelTopologyMap.h new file mode 100644 index 0000000000000..c3b55ed40a345 --- /dev/null +++ b/Geometry/TrackerGeometryBuilder/interface/PixelTopologyMap.h @@ -0,0 +1,57 @@ +#ifndef Geometry_TrackerGeometryBuilder_PixelTopologyMap_H +#define Geometry_TrackerGeometryBuilder_PixelTopologyMap_H + +// system include files +#include +#include +#include +#include // std::setw + +// user include files +#include "Geometry/CommonDetUnit/interface/PixelGeomDetUnit.h" +#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" +#include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h" +#include "TrackerGeometry.h" + +/** + * A specific Pixel Tracker class to determine the number of ladders / modules in PXB + and number of blades/modules in PXF + */ +class PixelTopologyMap { +public: + PixelTopologyMap(const TrackerGeometry* geom, const TrackerTopology* topo) + : m_trackerTopo{topo}, m_trackerGeom{geom} { + // build the maps + buildTopologyMaps(); + } + + ~PixelTopologyMap() = default; + + // getter methods + + inline const unsigned getPXBLadders(unsigned int lay) const { return m_pxbMap.at(lay).first; } + inline const unsigned getPXBModules(unsigned int lay) const { return m_pxbMap.at(lay).second; } + inline const unsigned getPXFBlades(int disk) const { return m_pxfMap.at(std::abs(disk)).first; } + inline const unsigned getPXFModules(int disk) const { return m_pxfMap.at(std::abs(disk)).second; } + + // printout + void printAll(std::ostream& os) const; + +private: + void buildTopologyMaps(); + + const TrackerTopology* m_trackerTopo; + const TrackerGeometry* m_trackerGeom; + + std::map> m_pxbMap; + std::map> m_pxfMap; +}; + +inline std::ostream& operator<<(std::ostream& os, PixelTopologyMap map) { + std::stringstream ss; + map.printAll(ss); + os << ss.str(); + return os; +} + +#endif diff --git a/Geometry/TrackerGeometryBuilder/src/PixelTopologyMap.cc b/Geometry/TrackerGeometryBuilder/src/PixelTopologyMap.cc new file mode 100644 index 0000000000000..1325579ce9a0e --- /dev/null +++ b/Geometry/TrackerGeometryBuilder/src/PixelTopologyMap.cc @@ -0,0 +1,75 @@ +#include "Geometry/TrackerGeometryBuilder/interface/PixelTopologyMap.h" + +void PixelTopologyMap::printAll(std::ostream& os) const { + for (unsigned int i = 1; i <= m_pxbMap.size(); i++) { + os << "PXB layer " << std::setw(2) << i << " has: " << std::setw(2) << getPXBLadders(i) << " ladders and " + << std::setw(2) << getPXBModules(i) << " modules" << std::endl; + } + + for (unsigned int j = 1; j <= m_pxfMap.size(); j++) { + os << "PXF disk " << std::setw(2) << j << " has: " << std::setw(2) << getPXFBlades(j) << " blades and " + << std::setw(2) << getPXFModules(j) << " modules" << std::endl; + } +} + +void PixelTopologyMap::buildTopologyMaps() { + // build barrel + const auto& nlay = m_trackerGeom->numberOfLayers(PixelSubdetector::PixelBarrel); + std::vector maxLadder, maxModule; + maxLadder.resize(nlay); + maxModule.resize(nlay); + for (unsigned int i = 1; i <= nlay; i++) { + maxLadder.push_back(0); + maxModule.push_back(0); + } + + for (auto det : m_trackerGeom->detsPXB()) { + const PixelGeomDetUnit* pixelDet = dynamic_cast(det); + + const auto& layer = m_trackerTopo->pxbLayer(pixelDet->geographicalId()); + const auto& ladder = m_trackerTopo->pxbLadder(pixelDet->geographicalId()); + const auto& module = m_trackerTopo->pxbModule(pixelDet->geographicalId()); + + if (ladder > maxLadder[layer]) { + maxLadder[layer] = ladder; + } + + if (module > maxModule[layer]) { + maxModule[layer] = module; + } + } + + for (unsigned int i = 1; i <= nlay; i++) { + m_pxbMap[i] = std::make_pair(maxLadder[i], maxModule[i]); + } + + // build endcaps + const auto& ndisk = m_trackerGeom->numberOfLayers(PixelSubdetector::PixelEndcap); + std::vector maxBlade, maxPXFModule; + maxBlade.resize(ndisk); + maxPXFModule.resize(ndisk); + for (unsigned int i = 1; i <= ndisk; i++) { + maxBlade.push_back(0); + maxPXFModule.push_back(0); + } + + for (auto det : m_trackerGeom->detsPXF()) { + const PixelGeomDetUnit* pixelDet = dynamic_cast(det); + + const auto& disk = m_trackerTopo->pxfDisk(pixelDet->geographicalId()); + const auto& blade = m_trackerTopo->pxfBlade(pixelDet->geographicalId()); + const auto& pxf_module = m_trackerTopo->pxfModule(pixelDet->geographicalId()); + + if (blade > maxBlade[disk]) { + maxBlade[disk] = blade; + } + + if (pxf_module > maxPXFModule[disk]) { + maxPXFModule[disk] = pxf_module; + } + } + + for (unsigned int i = 1; i <= ndisk; i++) { + m_pxfMap[i] = std::make_pair(maxBlade[i], maxPXFModule[i]); + } +} diff --git a/Geometry/TrackerGeometryBuilder/test/BuildFile.xml b/Geometry/TrackerGeometryBuilder/test/BuildFile.xml index 38d09dae1b230..d9efc604f4627 100644 --- a/Geometry/TrackerGeometryBuilder/test/BuildFile.xml +++ b/Geometry/TrackerGeometryBuilder/test/BuildFile.xml @@ -34,6 +34,12 @@ + + + + + + diff --git a/Geometry/TrackerGeometryBuilder/test/PixelTopologyMapTest.cc b/Geometry/TrackerGeometryBuilder/test/PixelTopologyMapTest.cc new file mode 100644 index 0000000000000..d9ac8fe19e3f0 --- /dev/null +++ b/Geometry/TrackerGeometryBuilder/test/PixelTopologyMapTest.cc @@ -0,0 +1,95 @@ +// -*- C++ -*- +// +// Package: Geometry/TrackerGeometryBuilder +// Class: PixelTopologyMapTest +// +/**\class PixelTopologyMapTest PixelTopologyMapTest.cc Geometry/TrackerGeometryBuilder/test/PixelTopologyMapTest.cc + + Description: [one line class summary] + + Implementation: + [Notes on implementation] +*/ +// +// Original Author: Marco Musich +// Created: Wed, 31 Mar 2021 11:01:16 GMT +// +// + +// system include files +#include + +// user include files +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/global/EDAnalyzer.h" + +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/MakerMacros.h" + +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Utilities/interface/InputTag.h" + +#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" +#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" +#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" +#include "Geometry/Records/interface/TrackerTopologyRcd.h" +#include "Geometry/CommonDetUnit/interface/PixelGeomDetUnit.h" +#include "Geometry/TrackerGeometryBuilder/interface/PixelTopologyMap.h" + +// +// class declaration +// + +class PixelTopologyMapTest : public edm::global::EDAnalyzer<> { +public: + explicit PixelTopologyMapTest(const edm::ParameterSet&); + ~PixelTopologyMapTest() override = default; + + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + +private: + void analyze(edm::StreamID, edm::Event const& iEvent, edm::EventSetup const& iSetup) const override; + + // ----------member data --------------------------- + const edm::ESGetToken geomEsToken_; + const edm::ESGetToken topoToken_; +}; + +// +// constructors and destructor +// +PixelTopologyMapTest::PixelTopologyMapTest(const edm::ParameterSet& iConfig) + : geomEsToken_(esConsumes()), topoToken_(esConsumes()) {} + +// +// member functions +// + +// ------------ method called for each event ------------ +void PixelTopologyMapTest::analyze(edm::StreamID, edm::Event const& iEvent, edm::EventSetup const& iSetup) const { + using namespace edm; + + // get the Tracker geometry from event setup + const TrackerGeometry* pDD = &iSetup.getData(geomEsToken_); + const TrackerTopology* tTopo = &iSetup.getData(topoToken_); + + if ((pDD->isThere(GeomDetEnumerators::P2PXB)) || (pDD->isThere(GeomDetEnumerators::P2PXEC))) { + edm::LogPrint("PixelTopologyMapTest") << "===== Testing Phase-2 Pixel Tracker geometry =====" << std::endl; + } else if ((pDD->isThere(GeomDetEnumerators::P1PXB)) || (pDD->isThere(GeomDetEnumerators::P1PXEC))) { + edm::LogPrint("PixelTopologyMapTest") << "===== Testing Phase-1 Pixel Tracker geometry =====" << std::endl; + } else { + edm::LogPrint("PixelTopologyMapTest") << "===== Testing Phase-0 Pixel Tracker geometry =====" << std::endl; + } + + PixelTopologyMap PTMap = PixelTopologyMap(pDD, tTopo); + edm::LogPrint("PixelTopologyMapTest") << PTMap << std::endl; +} + +// ------------ method fills 'descriptions' with the allowed parameters for the module ------------ +void PixelTopologyMapTest::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + descriptions.addDefault(desc); +} + +//define this as a plug-in +DEFINE_FWK_MODULE(PixelTopologyMapTest); diff --git a/Geometry/TrackerGeometryBuilder/test/phase1PixelTopology_t.cpp b/Geometry/TrackerGeometryBuilder/test/phase1PixelTopology_t.cpp index 8dfae57b685b4..2dda8ed41500b 100644 --- a/Geometry/TrackerGeometryBuilder/test/phase1PixelTopology_t.cpp +++ b/Geometry/TrackerGeometryBuilder/test/phase1PixelTopology_t.cpp @@ -149,9 +149,9 @@ int main() { } for (auto i = 0U; i < phase1PixelTopology::numberOfModules; ++i) { - int layer = phase1PixelTopology::layer[i / phase1PixelTopology::maxModuleStride]; + auto layer = static_cast(phase1PixelTopology::layer[i / phase1PixelTopology::maxModuleStride]); //std::cout << "module " << i << ": " << "layer " << layer << ", \"" << phase1PixelTopology::layerName[layer] << "\", [" << phase1PixelTopology::layerStart[layer] << ", " << phase1PixelTopology::layerStart[layer+1] << ")" << std::endl; - assert(layer < 10); + assert(layer < phase1PixelTopology::numberOfLayers); assert(i >= phase1PixelTopology::layerStart[layer]); assert(i < phase1PixelTopology::layerStart[layer + 1]); } diff --git a/Geometry/TrackerGeometryBuilder/test/python/testPixelTopologyMapTest_cfg.py b/Geometry/TrackerGeometryBuilder/test/python/testPixelTopologyMapTest_cfg.py new file mode 100644 index 0000000000000..22b429ebd350c --- /dev/null +++ b/Geometry/TrackerGeometryBuilder/test/python/testPixelTopologyMapTest_cfg.py @@ -0,0 +1,66 @@ +import FWCore.ParameterSet.Config as cms +import FWCore.ParameterSet.VarParsing as VarParsing + +process = cms.Process("TopologyAnalysis") +options = VarParsing.VarParsing("analysis") + +options.register ('globalTag', + "auto:run2_data", + VarParsing.VarParsing.multiplicity.singleton, # singleton or list + VarParsing.VarParsing.varType.string, # string, int, or float + "GlobalTag") + +options.register ('runNumber', + 1, + VarParsing.VarParsing.multiplicity.singleton, # singleton or list + VarParsing.VarParsing.varType.int, # string, int, or float + "run number") + +options.parseArguments() + +################################################################### +# Message logger service +################################################################### +process.load("FWCore.MessageService.MessageLogger_cfi") +process.MessageLogger.cerr.FwkReport.reportEvery = 1 + +################################################################### +# Geometry producer and standard includes +################################################################### +process.load("Configuration.StandardSequences.Services_cff") + +if 'phase2' in options.globalTag: + process.load("Configuration.Geometry.GeometryExtended2026D49_cff") + process.load("Configuration.Geometry.GeometryExtended2026D49Reco_cff") +else: + process.load("Configuration.StandardSequences.GeometryRecoDB_cff") + +#################################################################### +# Get the GlogalTag +#################################################################### +process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") +from Configuration.AlCa.GlobalTag import GlobalTag +process.GlobalTag = GlobalTag(process.GlobalTag, options.globalTag, '') + +################################################################### +# Empty Source +################################################################### +process.source = cms.Source("EmptySource", + firstRun = cms.untracked.uint32(options.runNumber), + numberEventsInRun = cms.untracked.uint32(1), + ) + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(1) +) + +################################################################### +# The analysis module +################################################################### +process.myanalysis = cms.EDAnalyzer("PixelTopologyMapTest") + +################################################################### +# Path +################################################################### +process.p1 = cms.Path(process.myanalysis) + diff --git a/Geometry/TrackerGeometryBuilder/test/runTest.sh b/Geometry/TrackerGeometryBuilder/test/runTest.sh index 2ed04f7fcaae1..28786aef5b388 100755 --- a/Geometry/TrackerGeometryBuilder/test/runTest.sh +++ b/Geometry/TrackerGeometryBuilder/test/runTest.sh @@ -19,6 +19,9 @@ do (cmsRun $entry) || die "Failure using cmsRun $entry" $? done +cmsRun ${LOCAL_TEST_DIR}/python/testPixelTopologyMapTest_cfg.py runNumber=300000 || die "Failure using cmsRun testPixelTopologyMapTest_cfg.py runNumber=300000" $? +cmsRun ${LOCAL_TEST_DIR}/python/testPixelTopologyMapTest_cfg.py globalTag=auto:phase2_realistic_T15 || die "Failure using cmsRun testPixelTopologyMapTest_cfg.py globalTag=auto:phase2_realistic_T15" $? + FILE1=trackerParametersDD4hep.log FILE2=trackerParametersDDD.log FILE3=diff.log diff --git a/Geometry/VeryForwardData/data/RP_Horizontal_Device/2021/v1/RP_Horizontal_Device.xml b/Geometry/VeryForwardData/data/RP_Horizontal_Device/2021/v1/RP_Horizontal_Device.xml new file mode 100644 index 0000000000000..d1da16e919ea8 --- /dev/null +++ b/Geometry/VeryForwardData/data/RP_Horizontal_Device/2021/v1/RP_Horizontal_Device.xml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Geometry/VeryForwardData/data/RP_Vertical_Device/2021/v1/RP_Vertical_Device.xml b/Geometry/VeryForwardData/data/RP_Vertical_Device/2021/v1/RP_Vertical_Device.xml new file mode 100644 index 0000000000000..913f906d4504d --- /dev/null +++ b/Geometry/VeryForwardData/data/RP_Vertical_Device/2021/v1/RP_Vertical_Device.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/HLTrigger/Configuration/python/CustomConfigs.py b/HLTrigger/Configuration/python/CustomConfigs.py index dc6aee187b6d2..c2168dbb28f87 100644 --- a/HLTrigger/Configuration/python/CustomConfigs.py +++ b/HLTrigger/Configuration/python/CustomConfigs.py @@ -200,3 +200,8 @@ def L1XML(process,xmlFile=None): process.ESPreferL1TXML = cms.ESPrefer("L1TUtmTriggerMenuESProducer","L1TriggerMenu") return process + +def CTPPSRun2Geometry(process): + if hasattr(process,'ctppsGeometryESModule'): + process.ctppsGeometryESModule.isRun2 = True + return(process) diff --git a/HLTrigger/Configuration/python/HLT_FULL_cff.py b/HLTrigger/Configuration/python/HLT_FULL_cff.py index c3d01d39f37cc..6578d3c322fde 100644 --- a/HLTrigger/Configuration/python/HLT_FULL_cff.py +++ b/HLTrigger/Configuration/python/HLT_FULL_cff.py @@ -1,13 +1,13 @@ # hltGetConfiguration --cff --data /dev/CMSSW_11_3_0/HLT --type FULL -# /dev/CMSSW_11_3_0/HLT/V17 (CMSSW_11_3_0_pre4) +# /dev/CMSSW_11_3_0/HLT/V19 (CMSSW_11_3_0_pre5) import FWCore.ParameterSet.Config as cms fragment = cms.ProcessFragment( "HLT" ) fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_11_3_0/HLT/V17') + tableName = cms.string('/dev/CMSSW_11_3_0/HLT/V19') ) fragment.transferSystem = cms.PSet( @@ -34842,8 +34842,7 @@ coolingFactor = cms.double( 0.6 ), Tpurge = cms.double( 2.0 ), Tmin = cms.double( 2.4 ), - uniquetrkweight = cms.double( 0.9 ), - use_vdt = cms.untracked.bool( True ) + uniquetrkweight = cms.double( 0.9 ) ), algorithm = cms.string( "DA_vect" ) ) @@ -51896,8 +51895,7 @@ coolingFactor = cms.double( 0.6 ), Tpurge = cms.double( 2.0 ), Tmin = cms.double( 2.4 ), - uniquetrkweight = cms.double( 0.9 ), - use_vdt = cms.untracked.bool( True ) + uniquetrkweight = cms.double( 0.9 ) ), algorithm = cms.string( "DA_vect" ) ) @@ -88899,8 +88897,7 @@ coolingFactor = cms.double( 0.6 ), Tpurge = cms.double( 2.0 ), Tmin = cms.double( 2.4 ), - uniquetrkweight = cms.double( 0.9 ), - use_vdt = cms.untracked.bool( True ) + uniquetrkweight = cms.double( 0.9 ) ), algorithm = cms.string( "DA_vect" ) ) @@ -106147,8 +106144,7 @@ coolingFactor = cms.double( 0.6 ), Tpurge = cms.double( 2.0 ), Tmin = cms.double( 2.4 ), - uniquetrkweight = cms.double( 0.9 ), - use_vdt = cms.untracked.bool( True ) + uniquetrkweight = cms.double( 0.9 ) ), algorithm = cms.string( "DA_vect" ) ) diff --git a/HLTrigger/Configuration/python/HLT_Fake1_cff.py b/HLTrigger/Configuration/python/HLT_Fake1_cff.py index ed7a57e8c005a..649cb8b36a99c 100644 --- a/HLTrigger/Configuration/python/HLT_Fake1_cff.py +++ b/HLTrigger/Configuration/python/HLT_Fake1_cff.py @@ -1,13 +1,13 @@ # hltGetConfiguration --cff --data /dev/CMSSW_11_3_0/Fake1 --type Fake1 -# /dev/CMSSW_11_3_0/Fake1/V7 (CMSSW_11_3_0_pre4) +# /dev/CMSSW_11_3_0/Fake1/V8 (CMSSW_11_3_0_pre5) import FWCore.ParameterSet.Config as cms fragment = cms.ProcessFragment( "HLT" ) fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_11_3_0/Fake1/V7') + tableName = cms.string('/dev/CMSSW_11_3_0/Fake1/V8') ) fragment.streams = cms.PSet( A = cms.vstring( 'InitialPD' ) ) diff --git a/HLTrigger/Configuration/python/HLT_Fake2_cff.py b/HLTrigger/Configuration/python/HLT_Fake2_cff.py index 5c745d9949eb3..f8c70b854983e 100644 --- a/HLTrigger/Configuration/python/HLT_Fake2_cff.py +++ b/HLTrigger/Configuration/python/HLT_Fake2_cff.py @@ -1,13 +1,13 @@ # hltGetConfiguration --cff --data /dev/CMSSW_11_3_0/Fake2 --type Fake2 -# /dev/CMSSW_11_3_0/Fake2/V7 (CMSSW_11_3_0_pre4) +# /dev/CMSSW_11_3_0/Fake2/V8 (CMSSW_11_3_0_pre5) import FWCore.ParameterSet.Config as cms fragment = cms.ProcessFragment( "HLT" ) fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_11_3_0/Fake2/V7') + tableName = cms.string('/dev/CMSSW_11_3_0/Fake2/V8') ) fragment.streams = cms.PSet( A = cms.vstring( 'InitialPD' ) ) diff --git a/HLTrigger/Configuration/python/HLT_Fake_cff.py b/HLTrigger/Configuration/python/HLT_Fake_cff.py index ba60888e8d69e..7ccdf436d9ace 100644 --- a/HLTrigger/Configuration/python/HLT_Fake_cff.py +++ b/HLTrigger/Configuration/python/HLT_Fake_cff.py @@ -1,13 +1,13 @@ # hltGetConfiguration --cff --data /dev/CMSSW_11_3_0/Fake --type Fake -# /dev/CMSSW_11_3_0/Fake/V7 (CMSSW_11_3_0_pre4) +# /dev/CMSSW_11_3_0/Fake/V8 (CMSSW_11_3_0_pre5) import FWCore.ParameterSet.Config as cms fragment = cms.ProcessFragment( "HLT" ) fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_11_3_0/Fake/V7') + tableName = cms.string('/dev/CMSSW_11_3_0/Fake/V8') ) fragment.streams = cms.PSet( A = cms.vstring( 'InitialPD' ) ) diff --git a/HLTrigger/Configuration/python/HLT_GRun_cff.py b/HLTrigger/Configuration/python/HLT_GRun_cff.py index 5ac11390a35ea..05eafb977746b 100644 --- a/HLTrigger/Configuration/python/HLT_GRun_cff.py +++ b/HLTrigger/Configuration/python/HLT_GRun_cff.py @@ -1,13 +1,13 @@ # hltGetConfiguration --cff --data /dev/CMSSW_11_3_0/GRun --type GRun -# /dev/CMSSW_11_3_0/GRun/V12 (CMSSW_11_3_0_pre4) +# /dev/CMSSW_11_3_0/GRun/V13 (CMSSW_11_3_0_pre5) import FWCore.ParameterSet.Config as cms fragment = cms.ProcessFragment( "HLT" ) fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_11_3_0/GRun/V12') + tableName = cms.string('/dev/CMSSW_11_3_0/GRun/V13') ) fragment.transferSystem = cms.PSet( @@ -33434,8 +33434,7 @@ coolingFactor = cms.double( 0.6 ), Tpurge = cms.double( 2.0 ), Tmin = cms.double( 2.4 ), - uniquetrkweight = cms.double( 0.9 ), - use_vdt = cms.untracked.bool( True ) + uniquetrkweight = cms.double( 0.9 ) ), algorithm = cms.string( "DA_vect" ) ) @@ -50080,8 +50079,7 @@ coolingFactor = cms.double( 0.6 ), Tpurge = cms.double( 2.0 ), Tmin = cms.double( 2.4 ), - uniquetrkweight = cms.double( 0.9 ), - use_vdt = cms.untracked.bool( True ) + uniquetrkweight = cms.double( 0.9 ) ), algorithm = cms.string( "DA_vect" ) ) diff --git a/HLTrigger/Configuration/python/HLT_HIon_cff.py b/HLTrigger/Configuration/python/HLT_HIon_cff.py index d2cfe6c3ec86a..074e2b36491d1 100644 --- a/HLTrigger/Configuration/python/HLT_HIon_cff.py +++ b/HLTrigger/Configuration/python/HLT_HIon_cff.py @@ -1,13 +1,13 @@ # hltGetConfiguration --cff --data /dev/CMSSW_11_3_0/HIon --type HIon -# /dev/CMSSW_11_3_0/HIon/V12 (CMSSW_11_3_0_pre4) +# /dev/CMSSW_11_3_0/HIon/V13 (CMSSW_11_3_0_pre5) import FWCore.ParameterSet.Config as cms fragment = cms.ProcessFragment( "HLT" ) fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_11_3_0/HIon/V12') + tableName = cms.string('/dev/CMSSW_11_3_0/HIon/V13') ) fragment.transferSystem = cms.PSet( @@ -12636,8 +12636,7 @@ coolingFactor = cms.double( 0.6 ), Tpurge = cms.double( 2.0 ), Tmin = cms.double( 2.4 ), - uniquetrkweight = cms.double( 0.9 ), - use_vdt = cms.untracked.bool( True ) + uniquetrkweight = cms.double( 0.9 ) ), algorithm = cms.string( "DA_vect" ) ) diff --git a/HLTrigger/Configuration/python/HLT_PIon_cff.py b/HLTrigger/Configuration/python/HLT_PIon_cff.py index b6d1159e5084b..78b861ecc1f7c 100644 --- a/HLTrigger/Configuration/python/HLT_PIon_cff.py +++ b/HLTrigger/Configuration/python/HLT_PIon_cff.py @@ -1,13 +1,13 @@ # hltGetConfiguration --cff --data /dev/CMSSW_11_3_0/PIon --type PIon -# /dev/CMSSW_11_3_0/PIon/V12 (CMSSW_11_3_0_pre4) +# /dev/CMSSW_11_3_0/PIon/V13 (CMSSW_11_3_0_pre5) import FWCore.ParameterSet.Config as cms fragment = cms.ProcessFragment( "HLT" ) fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_11_3_0/PIon/V12') + tableName = cms.string('/dev/CMSSW_11_3_0/PIon/V13') ) fragment.transferSystem = cms.PSet( diff --git a/HLTrigger/Configuration/python/HLT_PRef_cff.py b/HLTrigger/Configuration/python/HLT_PRef_cff.py index a6febfeed96e1..f01b067180428 100644 --- a/HLTrigger/Configuration/python/HLT_PRef_cff.py +++ b/HLTrigger/Configuration/python/HLT_PRef_cff.py @@ -1,13 +1,13 @@ # hltGetConfiguration --cff --data /dev/CMSSW_11_3_0/PRef --type PRef -# /dev/CMSSW_11_3_0/PRef/V12 (CMSSW_11_3_0_pre4) +# /dev/CMSSW_11_3_0/PRef/V13 (CMSSW_11_3_0_pre5) import FWCore.ParameterSet.Config as cms fragment = cms.ProcessFragment( "HLT" ) fragment.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_11_3_0/PRef/V12') + tableName = cms.string('/dev/CMSSW_11_3_0/PRef/V13') ) fragment.transferSystem = cms.PSet( @@ -9963,8 +9963,7 @@ coolingFactor = cms.double( 0.6 ), Tpurge = cms.double( 2.0 ), Tmin = cms.double( 2.4 ), - uniquetrkweight = cms.double( 0.9 ), - use_vdt = cms.untracked.bool( True ) + uniquetrkweight = cms.double( 0.9 ) ), algorithm = cms.string( "DA_vect" ) ) diff --git a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py index d98499e338af7..d2ae065a20beb 100644 --- a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py +++ b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py @@ -129,16 +129,6 @@ def customiseFor2018Input(process): return process -def customiseFor33104(process): - """Customise the HLT menu to remove the unused use_vdt parameters""" - for producer in producers_by_type(process, "PrimaryVertexProducer"): - if hasattr(producer, "TkClusParameters"): - pset = getattr(producer, "TkClusParameters") - if hasattr(pset, "TkDAClusParameters"): - if hasattr(getattr(pset, "TkDAClusParameters"),"use_vdt"): - del producer.TkClusParameters.TkDAClusParameters.use_vdt - - return process # CMSSW version specific customizations def customizeHLTforCMSSW(process, menuType="GRun"): @@ -146,6 +136,4 @@ def customizeHLTforCMSSW(process, menuType="GRun"): # add call to action function in proper order: newest last! # process = customiseFor12718(process) - process = customiseFor33104(process) - return process diff --git a/HLTrigger/Configuration/test/OnLine_HLT_FULL.py b/HLTrigger/Configuration/test/OnLine_HLT_FULL.py index 0f4955e907421..7662d05eb98ad 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_FULL.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_FULL.py @@ -1,13 +1,13 @@ # hltGetConfiguration --full --data /dev/CMSSW_11_3_0/HLT --type FULL --unprescale --process HLTFULL --globaltag auto:run3_hlt_FULL --input file:RelVal_Raw_FULL_DATA.root -# /dev/CMSSW_11_3_0/HLT/V17 (CMSSW_11_3_0_pre4) +# /dev/CMSSW_11_3_0/HLT/V19 (CMSSW_11_3_0_pre5) import FWCore.ParameterSet.Config as cms process = cms.Process( "HLTFULL" ) process.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_11_3_0/HLT/V17') + tableName = cms.string('/dev/CMSSW_11_3_0/HLT/V19') ) process.transferSystem = cms.PSet( @@ -35096,8 +35096,7 @@ coolingFactor = cms.double( 0.6 ), Tpurge = cms.double( 2.0 ), Tmin = cms.double( 2.4 ), - uniquetrkweight = cms.double( 0.9 ), - use_vdt = cms.untracked.bool( True ) + uniquetrkweight = cms.double( 0.9 ) ), algorithm = cms.string( "DA_vect" ) ) @@ -52150,8 +52149,7 @@ coolingFactor = cms.double( 0.6 ), Tpurge = cms.double( 2.0 ), Tmin = cms.double( 2.4 ), - uniquetrkweight = cms.double( 0.9 ), - use_vdt = cms.untracked.bool( True ) + uniquetrkweight = cms.double( 0.9 ) ), algorithm = cms.string( "DA_vect" ) ) @@ -89153,8 +89151,7 @@ coolingFactor = cms.double( 0.6 ), Tpurge = cms.double( 2.0 ), Tmin = cms.double( 2.4 ), - uniquetrkweight = cms.double( 0.9 ), - use_vdt = cms.untracked.bool( True ) + uniquetrkweight = cms.double( 0.9 ) ), algorithm = cms.string( "DA_vect" ) ) @@ -106401,8 +106398,7 @@ coolingFactor = cms.double( 0.6 ), Tpurge = cms.double( 2.0 ), Tmin = cms.double( 2.4 ), - uniquetrkweight = cms.double( 0.9 ), - use_vdt = cms.untracked.bool( True ) + uniquetrkweight = cms.double( 0.9 ) ), algorithm = cms.string( "DA_vect" ) ) diff --git a/HLTrigger/Configuration/test/OnLine_HLT_Fake.py b/HLTrigger/Configuration/test/OnLine_HLT_Fake.py index d8d9c3bfc2bc2..0f3b446df9665 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_Fake.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_Fake.py @@ -1,13 +1,13 @@ # hltGetConfiguration --full --data /dev/CMSSW_11_3_0/Fake --type Fake --unprescale --process HLTFake --globaltag auto:run1_hlt_Fake --input file:RelVal_Raw_Fake_DATA.root -# /dev/CMSSW_11_3_0/Fake/V7 (CMSSW_11_3_0_pre4) +# /dev/CMSSW_11_3_0/Fake/V8 (CMSSW_11_3_0_pre5) import FWCore.ParameterSet.Config as cms process = cms.Process( "HLTFake" ) process.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_11_3_0/Fake/V7') + tableName = cms.string('/dev/CMSSW_11_3_0/Fake/V8') ) process.streams = cms.PSet( A = cms.vstring( 'InitialPD' ) ) diff --git a/HLTrigger/Configuration/test/OnLine_HLT_Fake1.py b/HLTrigger/Configuration/test/OnLine_HLT_Fake1.py index fbd3600df3c04..5ca28322afc46 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_Fake1.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_Fake1.py @@ -1,13 +1,13 @@ # hltGetConfiguration --full --data /dev/CMSSW_11_3_0/Fake1 --type Fake1 --unprescale --process HLTFake1 --globaltag auto:run2_hlt_Fake1 --input file:RelVal_Raw_Fake1_DATA.root -# /dev/CMSSW_11_3_0/Fake1/V7 (CMSSW_11_3_0_pre4) +# /dev/CMSSW_11_3_0/Fake1/V8 (CMSSW_11_3_0_pre5) import FWCore.ParameterSet.Config as cms process = cms.Process( "HLTFake1" ) process.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_11_3_0/Fake1/V7') + tableName = cms.string('/dev/CMSSW_11_3_0/Fake1/V8') ) process.streams = cms.PSet( A = cms.vstring( 'InitialPD' ) ) diff --git a/HLTrigger/Configuration/test/OnLine_HLT_Fake2.py b/HLTrigger/Configuration/test/OnLine_HLT_Fake2.py index fa78fd865453f..53bc127f15baa 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_Fake2.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_Fake2.py @@ -1,13 +1,13 @@ # hltGetConfiguration --full --data /dev/CMSSW_11_3_0/Fake2 --type Fake2 --unprescale --process HLTFake2 --globaltag auto:run2_hlt_Fake2 --input file:RelVal_Raw_Fake2_DATA.root -# /dev/CMSSW_11_3_0/Fake2/V7 (CMSSW_11_3_0_pre4) +# /dev/CMSSW_11_3_0/Fake2/V8 (CMSSW_11_3_0_pre5) import FWCore.ParameterSet.Config as cms process = cms.Process( "HLTFake2" ) process.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_11_3_0/Fake2/V7') + tableName = cms.string('/dev/CMSSW_11_3_0/Fake2/V8') ) process.streams = cms.PSet( A = cms.vstring( 'InitialPD' ) ) diff --git a/HLTrigger/Configuration/test/OnLine_HLT_GRun.py b/HLTrigger/Configuration/test/OnLine_HLT_GRun.py index 2f7f156b371f4..e6e1efaac0562 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_GRun.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_GRun.py @@ -1,13 +1,13 @@ # hltGetConfiguration --full --data /dev/CMSSW_11_3_0/GRun --type GRun --unprescale --process HLTGRun --globaltag auto:run3_hlt_GRun --input file:RelVal_Raw_GRun_DATA.root -# /dev/CMSSW_11_3_0/GRun/V12 (CMSSW_11_3_0_pre4) +# /dev/CMSSW_11_3_0/GRun/V13 (CMSSW_11_3_0_pre5) import FWCore.ParameterSet.Config as cms process = cms.Process( "HLTGRun" ) process.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_11_3_0/GRun/V12') + tableName = cms.string('/dev/CMSSW_11_3_0/GRun/V13') ) process.transferSystem = cms.PSet( @@ -33688,8 +33688,7 @@ coolingFactor = cms.double( 0.6 ), Tpurge = cms.double( 2.0 ), Tmin = cms.double( 2.4 ), - uniquetrkweight = cms.double( 0.9 ), - use_vdt = cms.untracked.bool( True ) + uniquetrkweight = cms.double( 0.9 ) ), algorithm = cms.string( "DA_vect" ) ) @@ -50334,8 +50333,7 @@ coolingFactor = cms.double( 0.6 ), Tpurge = cms.double( 2.0 ), Tmin = cms.double( 2.4 ), - uniquetrkweight = cms.double( 0.9 ), - use_vdt = cms.untracked.bool( True ) + uniquetrkweight = cms.double( 0.9 ) ), algorithm = cms.string( "DA_vect" ) ) diff --git a/HLTrigger/Configuration/test/OnLine_HLT_HIon.py b/HLTrigger/Configuration/test/OnLine_HLT_HIon.py index fdd8e634edd89..eb6bee4de36f9 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_HIon.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_HIon.py @@ -1,13 +1,13 @@ # hltGetConfiguration --full --data /dev/CMSSW_11_3_0/HIon --type HIon --unprescale --process HLTHIon --globaltag auto:run3_hlt_HIon --input file:RelVal_Raw_HIon_DATA.root -# /dev/CMSSW_11_3_0/HIon/V12 (CMSSW_11_3_0_pre4) +# /dev/CMSSW_11_3_0/HIon/V13 (CMSSW_11_3_0_pre5) import FWCore.ParameterSet.Config as cms process = cms.Process( "HLTHIon" ) process.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_11_3_0/HIon/V12') + tableName = cms.string('/dev/CMSSW_11_3_0/HIon/V13') ) process.transferSystem = cms.PSet( @@ -12890,8 +12890,7 @@ coolingFactor = cms.double( 0.6 ), Tpurge = cms.double( 2.0 ), Tmin = cms.double( 2.4 ), - uniquetrkweight = cms.double( 0.9 ), - use_vdt = cms.untracked.bool( True ) + uniquetrkweight = cms.double( 0.9 ) ), algorithm = cms.string( "DA_vect" ) ) diff --git a/HLTrigger/Configuration/test/OnLine_HLT_PIon.py b/HLTrigger/Configuration/test/OnLine_HLT_PIon.py index 2aa4f8b3ab739..b79b955142ba0 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_PIon.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_PIon.py @@ -1,13 +1,13 @@ # hltGetConfiguration --full --data /dev/CMSSW_11_3_0/PIon --type PIon --unprescale --process HLTPIon --globaltag auto:run3_hlt_PIon --input file:RelVal_Raw_PIon_DATA.root -# /dev/CMSSW_11_3_0/PIon/V12 (CMSSW_11_3_0_pre4) +# /dev/CMSSW_11_3_0/PIon/V13 (CMSSW_11_3_0_pre5) import FWCore.ParameterSet.Config as cms process = cms.Process( "HLTPIon" ) process.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_11_3_0/PIon/V12') + tableName = cms.string('/dev/CMSSW_11_3_0/PIon/V13') ) process.transferSystem = cms.PSet( diff --git a/HLTrigger/Configuration/test/OnLine_HLT_PRef.py b/HLTrigger/Configuration/test/OnLine_HLT_PRef.py index 2c29103a38636..303d60afdbb9f 100644 --- a/HLTrigger/Configuration/test/OnLine_HLT_PRef.py +++ b/HLTrigger/Configuration/test/OnLine_HLT_PRef.py @@ -1,13 +1,13 @@ # hltGetConfiguration --full --data /dev/CMSSW_11_3_0/PRef --type PRef --unprescale --process HLTPRef --globaltag auto:run3_hlt_PRef --input file:RelVal_Raw_PRef_DATA.root -# /dev/CMSSW_11_3_0/PRef/V12 (CMSSW_11_3_0_pre4) +# /dev/CMSSW_11_3_0/PRef/V13 (CMSSW_11_3_0_pre5) import FWCore.ParameterSet.Config as cms process = cms.Process( "HLTPRef" ) process.HLTConfigVersion = cms.PSet( - tableName = cms.string('/dev/CMSSW_11_3_0/PRef/V12') + tableName = cms.string('/dev/CMSSW_11_3_0/PRef/V13') ) process.transferSystem = cms.PSet( @@ -10217,8 +10217,7 @@ coolingFactor = cms.double( 0.6 ), Tpurge = cms.double( 2.0 ), Tmin = cms.double( 2.4 ), - uniquetrkweight = cms.double( 0.9 ), - use_vdt = cms.untracked.bool( True ) + uniquetrkweight = cms.double( 0.9 ) ), algorithm = cms.string( "DA_vect" ) ) diff --git a/HLTrigger/Configuration/test/cmsDriver.csh b/HLTrigger/Configuration/test/cmsDriver.csh index 73cccd0166628..333f240b76858 100755 --- a/HLTrigger/Configuration/test/cmsDriver.csh +++ b/HLTrigger/Configuration/test/cmsDriver.csh @@ -253,6 +253,10 @@ foreach gtag ( MC DATA ) continue endif + ## Force CTPPSRun2Geometry if running on Run-2 data using Run3 modifier + if ( $gtag == DATA && ( $Era == $EraRun3HI || $Era == $EraRun3pp) ) then + set Custom = "HLTrigger/Configuration/CustomConfigs.CTPPSRun2Geometry" + endif if ( $gtag == DATA ) then @@ -320,9 +324,11 @@ EOF else set STEPS = "RAW2DIGI,L1Reco,RECO,EI,PAT,DQM" endif + set CustomCommand = "--customise_commands=process.valCscStage2Digis.GEMPadDigiClusterProducer='';process.valCscStage2Digis.commonParam=dict(runME11ILT=False)" + echo echo "Creating RECO+EI+PAT+DQM $name" - cmsDriver.py RelVal --step=$STEPS --conditions=$RTAG --filein=file:RelVal_HLT_$name.root --custom_conditions=$XL1T --fileout=RelVal_RECO_$name.root --number=$NN $DATAMC --no_exec --datatier 'RECO,MINIAOD,DQMIO' --eventcontent=RECO,MINIAOD,DQM --customise=HLTrigger/Configuration/CustomConfigs.Base $Era --customise=$Custom --scenario=$SCEN --python_filename=RelVal_RECO_$name.py --processName=$RNAME + cmsDriver.py RelVal --step=$STEPS --conditions=$RTAG --filein=file:RelVal_HLT_$name.root --custom_conditions=$XL1T --fileout=RelVal_RECO_$name.root --number=$NN $DATAMC --no_exec --datatier 'RECO,MINIAOD,DQMIO' --eventcontent=RECO,MINIAOD,DQM --customise=HLTrigger/Configuration/CustomConfigs.Base $Era --customise=$Custom --scenario=$SCEN --python_filename=RelVal_RECO_$name.py --processName=$RNAME $CustomCommand else diff --git a/HLTrigger/Egamma/plugins/BuildFile.xml b/HLTrigger/Egamma/plugins/BuildFile.xml index 88bc8eca9e05e..dd7398eaed809 100644 --- a/HLTrigger/Egamma/plugins/BuildFile.xml +++ b/HLTrigger/Egamma/plugins/BuildFile.xml @@ -1,5 +1,3 @@ - - diff --git a/HLTrigger/Egamma/plugins/HLTEgammaL1MatchFilterPairs.cc b/HLTrigger/Egamma/plugins/HLTEgammaL1MatchFilterPairs.cc index f0f3d0d0cdada..cb0f04e04e031 100644 --- a/HLTrigger/Egamma/plugins/HLTEgammaL1MatchFilterPairs.cc +++ b/HLTrigger/Egamma/plugins/HLTEgammaL1MatchFilterPairs.cc @@ -4,23 +4,12 @@ * \author Monica Vazquez Acosta (CERN) * */ - #include "HLTEgammaL1MatchFilterPairs.h" - -//#include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetupFwd.h" - #include "DataFormats/Common/interface/Handle.h" - #include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" - #include "FWCore/MessageLogger/interface/MessageLogger.h" - -#include "CondFormats/L1TObjects/interface/L1CaloGeometry.h" -#include "CondFormats/DataRecord/interface/L1CaloGeometryRecord.h" - #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/Framework/interface/EventSetup.h" #include @@ -143,10 +132,6 @@ bool HLTEgammaL1MatchFilterPairs::hltFilter(edm::Event& iEvent, } } - // Get the CaloGeometry - edm::ESHandle l1CaloGeom; - iSetup.get().get(l1CaloGeom); - // look at all candidates, check cuts and add to filter object int n(0); diff --git a/HLTrigger/Egamma/plugins/HLTEgammaL1MatchFilterRegional.cc b/HLTrigger/Egamma/plugins/HLTEgammaL1MatchFilterRegional.cc index b15c7c2a7916e..3a347f8db595b 100644 --- a/HLTrigger/Egamma/plugins/HLTEgammaL1MatchFilterRegional.cc +++ b/HLTrigger/Egamma/plugins/HLTEgammaL1MatchFilterRegional.cc @@ -4,26 +4,14 @@ * \author Monica Vazquez Acosta (CERN) * */ - #include "HLTEgammaL1MatchFilterRegional.h" - -//#include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetupFwd.h" - #include "DataFormats/Common/interface/Handle.h" - #include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" - #include "DataFormats/L1Trigger/interface/L1JetParticle.h" #include "DataFormats/L1Trigger/interface/L1JetParticleFwd.h" - #include "FWCore/MessageLogger/interface/MessageLogger.h" - -#include "CondFormats/L1TObjects/interface/L1CaloGeometry.h" -#include "CondFormats/DataRecord/interface/L1CaloGeometryRecord.h" - #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/Framework/interface/EventSetup.h" #define TWOPI 6.283185308 @@ -92,10 +80,6 @@ bool HLTEgammaL1MatchFilterRegional::hltFilter(edm::Event& iEvent, edm::Ref ref; - // Get the CaloGeometry - edm::ESHandle l1CaloGeom; - iSetup.get().get(l1CaloGeom); - // look at all candidates, check cuts and add to filter object int n(0); diff --git a/HLTrigger/Egamma/plugins/HLTEgammaL1TMatchFilterRegional.cc b/HLTrigger/Egamma/plugins/HLTEgammaL1TMatchFilterRegional.cc index f6873b1eb509e..a32787e5f2fe1 100644 --- a/HLTrigger/Egamma/plugins/HLTEgammaL1TMatchFilterRegional.cc +++ b/HLTrigger/Egamma/plugins/HLTEgammaL1TMatchFilterRegional.cc @@ -4,27 +4,13 @@ * \author Monica Vazquez Acosta (CERN) * */ - #include "HLTEgammaL1TMatchFilterRegional.h" - -//#include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetupFwd.h" - #include "DataFormats/Common/interface/Handle.h" - #include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" - -//#include "DataFormats/L1Trigger/interface/L1JetParticle.h" -//#include "DataFormats/L1Trigger/interface/L1JetParticleFwd.h" #include "DataFormats/L1Trigger/interface/Jet.h" - #include "FWCore/MessageLogger/interface/MessageLogger.h" - -#include "CondFormats/L1TObjects/interface/L1CaloGeometry.h" -#include "CondFormats/DataRecord/interface/L1CaloGeometryRecord.h" - #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/Framework/interface/EventSetup.h" #define TWOPI 6.283185308 @@ -103,10 +89,6 @@ bool HLTEgammaL1TMatchFilterRegional::hltFilter(edm::Event& iEvent, edm::Ref ref; - // Get the CaloGeometry - edm::ESHandle l1CaloGeom; - iSetup.get().get(l1CaloGeom); - // look at all candidates, check cuts and add to filter object int n(0); diff --git a/HLTrigger/Egamma/plugins/HLTPMMassFilter.cc b/HLTrigger/Egamma/plugins/HLTPMMassFilter.cc index 37c8ad7634e8e..3e6a0fc37e507 100644 --- a/HLTrigger/Egamma/plugins/HLTPMMassFilter.cc +++ b/HLTrigger/Egamma/plugins/HLTPMMassFilter.cc @@ -5,15 +5,12 @@ * Contact: Jeremy.Werner@cern.ch * Date: February 21, 2007 */ - -#include "FWCore/Framework/interface/ESHandle.h" - #include "HLTPMMassFilter.h" // // constructors and destructor // -HLTPMMassFilter::HLTPMMassFilter(const edm::ParameterSet& iConfig) : HLTFilter(iConfig) { +HLTPMMassFilter::HLTPMMassFilter(const edm::ParameterSet& iConfig) : HLTFilter(iConfig), magFieldToken_(esConsumes()) { candTag_ = iConfig.getParameter("candTag"); beamSpot_ = iConfig.getParameter("beamSpot"); l1EGTag_ = iConfig.getParameter("l1EGCand"); @@ -60,8 +57,7 @@ bool HLTPMMassFilter::hltFilter(edm::Event& iEvent, filterproduct.addCollectionTag(l1EGTag_); } - edm::ESHandle theMagField; - iSetup.get().get(theMagField); + auto const& theMagField = iSetup.getData(magFieldToken_); edm::Handle PrevFilterOutput; iEvent.getByToken(candToken_, PrevFilterOutput); @@ -133,10 +129,10 @@ bool HLTPMMassFilter::hltFilter(edm::Event& iEvent, for (auto& i : scs) { refsc = i; const reco::SuperClusterRef sc = refsc->superCluster(); - TLorentzVector pscPos = approxMomAtVtx(theMagField.product(), vertexPos, sc, 1); + TLorentzVector pscPos = approxMomAtVtx(theMagField, vertexPos, sc, 1); pEleCh1.push_back(pscPos); - TLorentzVector pscEle = approxMomAtVtx(theMagField.product(), vertexPos, sc, -1); + TLorentzVector pscEle = approxMomAtVtx(theMagField, vertexPos, sc, -1); pEleCh2.push_back(pscEle); etaOrig.push_back(sc->eta()); } @@ -170,13 +166,13 @@ bool HLTPMMassFilter::hltFilter(edm::Event& iEvent, return accept; } -TLorentzVector HLTPMMassFilter::approxMomAtVtx(const MagneticField* magField, +TLorentzVector HLTPMMassFilter::approxMomAtVtx(const MagneticField& magField, const GlobalPoint& xvert, const reco::SuperClusterRef sc, int charge) const { GlobalPoint xsc(sc->position().x(), sc->position().y(), sc->position().z()); float energy = sc->energy(); - auto theFTS = trackingTools::ftsFromVertexToPoint(*magField, xsc, xvert, energy, charge); + auto theFTS = trackingTools::ftsFromVertexToPoint(magField, xsc, xvert, energy, charge); float theApproxMomMod = theFTS.momentum().x() * theFTS.momentum().x() + theFTS.momentum().y() * theFTS.momentum().y() + theFTS.momentum().z() * theFTS.momentum().z(); TLorentzVector theApproxMom( diff --git a/HLTrigger/Egamma/plugins/HLTPMMassFilter.h b/HLTrigger/Egamma/plugins/HLTPMMassFilter.h index 5980e5d73a353..87e26ce9e7bac 100644 --- a/HLTrigger/Egamma/plugins/HLTPMMassFilter.h +++ b/HLTrigger/Egamma/plugins/HLTPMMassFilter.h @@ -9,48 +9,25 @@ * Date: February 21, 2007 */ -#include "HLTrigger/HLTcore/interface/HLTFilter.h" - -#include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" -#include "TrackingTools/TrajectoryState/interface/ftsFromVertexToPoint.h" #include "DataFormats/BeamSpot/interface/BeamSpot.h" -#include "DataFormats/Math/interface/Point3D.h" - -#include "FWCore/Framework/interface/EventSetup.h" - -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" -#include "MagneticField/Engine/interface/MagneticField.h" - -#include "DataFormats/Common/interface/Handle.h" - -#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" -#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" - -#include "FWCore/MessageLogger/interface/MessageLogger.h" - +#include "DataFormats/EgammaCandidates/interface/Electron.h" +#include "DataFormats/EgammaCandidates/interface/ElectronFwd.h" #include "DataFormats/EgammaReco/interface/SuperCluster.h" #include "DataFormats/EgammaReco/interface/SuperClusterFwd.h" - +#include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" +#include "DataFormats/Math/interface/Point3D.h" #include "DataFormats/RecoCandidate/interface/RecoEcalCandidate.h" #include "DataFormats/RecoCandidate/interface/RecoEcalCandidateFwd.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "HLTrigger/HLTcore/interface/HLTFilter.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" +#include "MagneticField/Engine/interface/MagneticField.h" +#include "TrackingTools/TrajectoryState/interface/ftsFromVertexToPoint.h" -#include "DataFormats/EgammaCandidates/interface/Electron.h" -#include "DataFormats/EgammaCandidates/interface/ElectronFwd.h" - -// TEST -#include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" - -#include "TFile.h" -#include "TDirectory.h" -#include "TH1F.h" -#include "TH2F.h" #include "TLorentzVector.h" -#include "TVector3.h" - -// -// class declaration -// class HLTPMMassFilter : public HLTFilter { public: @@ -62,7 +39,7 @@ class HLTPMMassFilter : public HLTFilter { static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); private: - TLorentzVector approxMomAtVtx(const MagneticField* magField, + TLorentzVector approxMomAtVtx(const MagneticField& magField, const GlobalPoint& xvert, const reco::SuperClusterRef sc, int charge) const; @@ -79,6 +56,8 @@ class HLTPMMassFilter : public HLTFilter { bool isElectron1_; bool isElectron2_; edm::InputTag l1EGTag_; + + edm::ESGetToken const magFieldToken_; }; #endif //HLTPMMassFilter_h diff --git a/HLTrigger/HLTanalyzers/plugins/HLTBitAnalyzer.h b/HLTrigger/HLTanalyzers/plugins/HLTBitAnalyzer.h index 7f65296fab83d..d6132f4db1212 100644 --- a/HLTrigger/HLTanalyzers/plugins/HLTBitAnalyzer.h +++ b/HLTrigger/HLTanalyzers/plugins/HLTBitAnalyzer.h @@ -7,7 +7,6 @@ #include "DataFormats/L1TGlobal/interface/GlobalAlgBlk.h" #include "DataFormats/L1TGlobal/interface/GlobalExtBlk.h" #include "FWCore/Framework/interface/EDAnalyzer.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/Frameworkfwd.h" diff --git a/HLTrigger/HLTanalyzers/plugins/HLTGetDigi.cc b/HLTrigger/HLTanalyzers/plugins/HLTGetDigi.cc index ec1c30caf659e..a49e9acf1dbaf 100644 --- a/HLTrigger/HLTanalyzers/plugins/HLTGetDigi.cc +++ b/HLTrigger/HLTanalyzers/plugins/HLTGetDigi.cc @@ -13,7 +13,6 @@ #include #include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/Utilities/interface/InputTag.h" @@ -26,7 +25,7 @@ using namespace std; // // constructors and destructor // -HLTGetDigi::HLTGetDigi(const edm::ParameterSet& ps) { +HLTGetDigi::HLTGetDigi(const edm::ParameterSet& ps) : l1GtParamsToken_(esConsumes()) { EBdigiCollection_ = ps.getParameter("EBdigiCollection"); EEdigiCollection_ = ps.getParameter("EEdigiCollection"); ESdigiCollection_ = ps.getParameter("ESdigiCollection"); @@ -295,9 +294,8 @@ void HLTGetDigi::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup edm::Handle gtMap; edm::Handle gtRR; - edm::ESHandle l1GtPar; - iSetup.get().get(l1GtPar); - int nBx = l1GtPar->gtTotalBxInEvent(); + auto const& l1GtParamsHandle = iSetup.getHandle(l1GtParamsToken_); + auto const nBx = l1GtParamsHandle->gtTotalBxInEvent(); std::unique_ptr newGtEvm(new L1GlobalTriggerEvmReadoutRecord(nBx)); std::unique_ptr newGtMap(new L1GlobalTriggerObjectMapRecord()); diff --git a/HLTrigger/HLTanalyzers/plugins/HLTGetDigi.h b/HLTrigger/HLTanalyzers/plugins/HLTGetDigi.h index 34303d22f6caf..a38adf59ef49c 100644 --- a/HLTrigger/HLTanalyzers/plugins/HLTGetDigi.h +++ b/HLTrigger/HLTanalyzers/plugins/HLTGetDigi.h @@ -67,6 +67,8 @@ class HLTGetDigi : public edm::EDAnalyzer { static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); private: + edm::ESGetToken const l1GtParamsToken_; + edm::InputTag EBdigiCollection_; edm::EDGetTokenT EBdigiToken_; edm::InputTag EEdigiCollection_; diff --git a/HLTrigger/HLTanalyzers/plugins/HLTInfo.cc b/HLTrigger/HLTanalyzers/plugins/HLTInfo.cc index e13aa64d66cac..487d0f46f5066 100644 --- a/HLTrigger/HLTanalyzers/plugins/HLTInfo.cc +++ b/HLTrigger/HLTanalyzers/plugins/HLTInfo.cc @@ -169,8 +169,8 @@ void HLTInfo::analyze(const edm::Handle& hltresults, if (id != cache_id_) { cache_id_ = id; */ - edm::ESHandle menu; - eventSetup.get().get(menu); + auto const& menu = eventSetup.getHandle(l1tUtmTriggerMenuToken_); + //std::map const & algorithmMap_ = &(menu->getAlgorithmMap()); /* // get the bit/name association diff --git a/HLTrigger/HLTanalyzers/plugins/HLTInfo.h b/HLTrigger/HLTanalyzers/plugins/HLTInfo.h index 27a7c850c5d94..7868a0fb05307 100644 --- a/HLTrigger/HLTanalyzers/plugins/HLTInfo.h +++ b/HLTrigger/HLTanalyzers/plugins/HLTInfo.h @@ -1,6 +1,7 @@ #ifndef HLTINFO_H #define HLTINFO_H +#include #include #include @@ -26,7 +27,6 @@ #include "DataFormats/L1TGlobal/interface/GlobalExtBlk.h" #include "DataFormats/METReco/interface/CaloMETCollection.h" #include "FWCore/Common/interface/Provenance.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/Framework/interface/EventPrincipal.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "HLTrigger/HLTcore/interface/HLTPrescaleProvider.h" @@ -41,13 +41,14 @@ namespace edm { typedef std::vector MyStrings; /** \class HLTInfo - * + * * $Date: November 2006 - * $Revision: + * $Revision: * \author P. Bargassa - Rice U. - * $Date: April 2016 - * $Revision: - * \author G. Karapostoli - ULB + + * $Date: April 2016 + * $Revision: + * \author G. Karapostoli - ULB */ class HLTInfo { public: @@ -72,6 +73,8 @@ class HLTInfo { private: HLTInfo(); + edm::ESGetToken l1tUtmTriggerMenuToken_; + // Tree variables float *hltppt, *hltpeta; int L1EvtCnt, HltEvtCnt, nhltpart; @@ -109,7 +112,8 @@ HLTInfo::HLTInfo(edm::ParameterSet const& pset, edm::ConsumesCollector&& iC, T& template HLTInfo::HLTInfo(edm::ParameterSet const& pset, edm::ConsumesCollector& iC, T& module) : HLTInfo() { - hltPrescaleProvider_.reset(new HLTPrescaleProvider(pset, iC, module)); + l1tUtmTriggerMenuToken_ = iC.esConsumes(); + hltPrescaleProvider_ = std::make_unique(pset, iC, module); } #endif diff --git a/HLTrigger/HLTcore/BuildFile.xml b/HLTrigger/HLTcore/BuildFile.xml index afb830d3506bc..5acb169764e24 100644 --- a/HLTrigger/HLTcore/BuildFile.xml +++ b/HLTrigger/HLTcore/BuildFile.xml @@ -3,6 +3,7 @@ + diff --git a/HLTrigger/HLTcore/interface/HLTPrescaleRecorder.h b/HLTrigger/HLTcore/interface/HLTPrescaleRecorder.h index 078a1a9996796..eb17eefd5c432 100644 --- a/HLTrigger/HLTcore/interface/HLTPrescaleRecorder.h +++ b/HLTrigger/HLTcore/interface/HLTPrescaleRecorder.h @@ -27,6 +27,7 @@ #include "DataFormats/HLTReco/interface/HLTPrescaleTable.h" #include "CondFormats/HLTObjects/interface/HLTPrescaleTableCond.h" +#include "CondFormats/DataRecord/interface/HLTPrescaleTableRcd.h" #include #include @@ -76,6 +77,7 @@ class HLTPrescaleRecorder : public edm::one::EDProducer hltInputToken_; /// Tag of DB entry (HLT Key Name) (src=4) std::string hltDBTag_; + edm::ESGetToken const hltPrescaleTableCondToken_; /// Prescale service edm::service::PrescaleService* ps_; @@ -84,7 +86,6 @@ class HLTPrescaleRecorder : public edm::one::EDProducer hltHandle_; - edm::ESHandle hltESHandle_; /// payload HLT object trigger::HLTPrescaleTable hlt_; diff --git a/HLTrigger/HLTcore/interface/TriggerExpressionData.h b/HLTrigger/HLTcore/interface/TriggerExpressionData.h index 1d23f3a8f9180..f45158cdb670a 100644 --- a/HLTrigger/HLTcore/interface/TriggerExpressionData.h +++ b/HLTrigger/HLTcore/interface/TriggerExpressionData.h @@ -4,6 +4,8 @@ #include "FWCore/Framework/interface/ConsumesCollector.h" #include "FWCore/Utilities/interface/InputTag.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "CondFormats/DataRecord/interface/L1TUtmTriggerMenuRcd.h" +#include "CondFormats/L1TObjects/interface/L1TUtmTriggerMenu.h" #include "DataFormats/Provenance/interface/ParameterSetID.h" #include "DataFormats/Provenance/interface/EventID.h" #include "DataFormats/Common/interface/TriggerResults.h" @@ -15,8 +17,6 @@ namespace edm { class TriggerNames; } // namespace edm -class L1TUtmTriggerMenu; - namespace triggerExpression { class Data { @@ -28,6 +28,7 @@ namespace triggerExpression { m_hltResultsToken(), m_l1tResultsTag(""), m_l1tResultsToken(), + m_l1tUtmTriggerMenuToken(), m_l1tIgnoreMaskAndPrescale(false), m_throw(true), // l1 values and status @@ -50,6 +51,7 @@ namespace triggerExpression { m_hltResultsToken(), m_l1tResultsTag(config.getParameter("l1tResults")), m_l1tResultsToken(), + m_l1tUtmTriggerMenuToken(iC.esConsumes()), m_l1tIgnoreMaskAndPrescale(config.getParameter("l1tIgnoreMaskAndPrescale")), m_throw(config.getParameter("throw")), // l1 values and status @@ -81,6 +83,7 @@ namespace triggerExpression { m_hltResultsToken(), m_l1tResultsTag(l1tResultsTag), m_l1tResultsToken(), + m_l1tUtmTriggerMenuToken(iC.esConsumes()), m_l1tIgnoreMaskAndPrescale(l1tIgnoreMaskAndPrescale), m_throw(doThrow), // l1 values and status @@ -147,6 +150,7 @@ namespace triggerExpression { edm::EDGetTokenT m_hltResultsToken; edm::InputTag m_l1tResultsTag; edm::EDGetTokenT m_l1tResultsToken; + edm::ESGetToken const m_l1tUtmTriggerMenuToken; bool m_l1tIgnoreMaskAndPrescale; bool m_throw; diff --git a/HLTrigger/HLTcore/plugins/BuildFile.xml b/HLTrigger/HLTcore/plugins/BuildFile.xml index 8f28151bbabfd..5b524a1fc1a9b 100644 --- a/HLTrigger/HLTcore/plugins/BuildFile.xml +++ b/HLTrigger/HLTcore/plugins/BuildFile.xml @@ -10,7 +10,6 @@ - diff --git a/HLTrigger/HLTcore/plugins/HLTPrescaleRecorder.cc b/HLTrigger/HLTcore/plugins/HLTPrescaleRecorder.cc index 97d93ff78bc05..2a4b51dde3282 100644 --- a/HLTrigger/HLTcore/plugins/HLTPrescaleRecorder.cc +++ b/HLTrigger/HLTcore/plugins/HLTPrescaleRecorder.cc @@ -8,19 +8,10 @@ */ #include "HLTrigger/HLTcore/interface/HLTPrescaleRecorder.h" - -#include "CondFormats/HLTObjects/interface/HLTPrescaleTableCond.h" -#include "CondFormats/DataRecord/interface/HLTPrescaleTableRcd.h" - #include "DataFormats/Provenance/interface/ProcessHistory.h" - +#include "DataFormats/Provenance/interface/Timestamp.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" - #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/PrescaleService/interface/PrescaleService.h" - -#include "DataFormats/Provenance/interface/Timestamp.h" #include #include @@ -43,10 +34,10 @@ HLTPrescaleRecorder::HLTPrescaleRecorder(const edm::ParameterSet& ps) hltInputTag_(ps.getParameter("hltInputTag")), hltInputToken_(), hltDBTag_(ps.getParameter("hltDBTag")), + hltPrescaleTableCondToken_(esConsumes(edm::ESInputTag("", hltDBTag_))), ps_(nullptr), db_(nullptr), hltHandle_(), - hltESHandle_(), hlt_() { if (src_ == 1) { // Run @@ -155,9 +146,8 @@ void HLTPrescaleRecorder::beginRun(edm::Run const& iRun, const edm::EventSetup& } } else if (src_ == 4) { /// From CondDB (needs ESProducer module as well) - const HLTPrescaleTableRcd& hltRecord(iSetup.get()); - hltRecord.get(hltDBTag_, hltESHandle_); - hlt_ = hltESHandle_->hltPrescaleTable(); + auto const& hltPrescaleTableCond = iSetup.getData(hltPrescaleTableCondToken_); + hlt_ = hltPrescaleTableCond.hltPrescaleTable(); } return; diff --git a/HLTrigger/HLTcore/src/TriggerExpressionData.cc b/HLTrigger/HLTcore/src/TriggerExpressionData.cc index 51e0dec58ff97..5d7c949b22393 100644 --- a/HLTrigger/HLTcore/src/TriggerExpressionData.cc +++ b/HLTrigger/HLTcore/src/TriggerExpressionData.cc @@ -1,5 +1,3 @@ - - #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/ESHandle.h" @@ -9,8 +7,6 @@ #include "DataFormats/Common/interface/Handle.h" #include "DataFormats/Common/interface/TriggerResults.h" #include "DataFormats/L1TGlobal/interface/GlobalAlgBlk.h" -#include "CondFormats/DataRecord/interface/L1TUtmTriggerMenuRcd.h" -#include "CondFormats/L1TObjects/interface/L1TUtmTriggerMenu.h" #include "HLTrigger/HLTcore/interface/TriggerExpressionData.h" namespace triggerExpression { @@ -37,7 +33,7 @@ namespace triggerExpression { if (m_l1tCacheID == l1tCacheID) { m_l1tUpdated = false; } else { - m_l1tMenu = &edm::get(setup); + m_l1tMenu = &setup.getData(m_l1tUtmTriggerMenuToken); m_l1tCacheID = l1tCacheID; m_l1tUpdated = true; } diff --git a/HLTrigger/HLTfilters/plugins/HLTLevel1GTSeed.cc b/HLTrigger/HLTfilters/plugins/HLTLevel1GTSeed.cc index ad6da68ce339f..54c0ac6ca21c4 100644 --- a/HLTrigger/HLTfilters/plugins/HLTLevel1GTSeed.cc +++ b/HLTrigger/HLTfilters/plugins/HLTLevel1GTSeed.cc @@ -52,13 +52,6 @@ #include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" -#include "CondFormats/L1TObjects/interface/L1GtTriggerMenu.h" -#include "CondFormats/DataRecord/interface/L1GtTriggerMenuRcd.h" - -#include "CondFormats/L1TObjects/interface/L1GtTriggerMask.h" -#include "CondFormats/DataRecord/interface/L1GtTriggerMaskAlgoTrigRcd.h" -#include "CondFormats/DataRecord/interface/L1GtTriggerMaskTechTrigRcd.h" - #include "CondFormats/L1TObjects/interface/L1GtCondition.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" @@ -70,7 +63,6 @@ #include "FWCore/Utilities/interface/Exception.h" #include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/ESHandle.h" // constructors HLTLevel1GTSeed::HLTLevel1GTSeed(const edm::ParameterSet& parSet) @@ -79,6 +71,11 @@ HLTLevel1GTSeed::HLTLevel1GTSeed(const edm::ParameterSet& parSet) m_l1GtMenu(nullptr), m_l1GtMenuCacheID(0ULL), + // trigger records + m_l1GtTriggerMenuToken(esConsumes()), + m_l1GtTriggerMaskAlgoTrigRcdToken(esConsumes()), + m_l1GtTriggerMaskTechTrigRcdToken(esConsumes()), + // seeding done via L1 trigger object maps, with objects that fired m_l1UseL1TriggerObjectMaps(parSet.getParameter("L1UseL1TriggerObjectMaps")), @@ -256,8 +253,7 @@ bool HLTLevel1GTSeed::hltFilter(edm::Event& iEvent, } // get the trigger mask from the EventSetup - edm::ESHandle l1GtTmAlgo; - evSetup.get().get(l1GtTmAlgo); + auto const& l1GtTmAlgo = evSetup.getHandle(m_l1GtTriggerMaskAlgoTrigRcdToken); // get L1GlobalTriggerReadoutRecord and GT decision edm::Handle gtReadoutRecord; @@ -291,8 +287,7 @@ bool HLTLevel1GTSeed::hltFilter(edm::Event& iEvent, // seeding done via technical trigger bits if (m_l1TechTriggerSeeding) { // get the technical trigger mask from the EventSetup - edm::ESHandle l1GtTmTech; - evSetup.get().get(l1GtTmTech); + auto const& l1GtTmTech = evSetup.getHandle(m_l1GtTriggerMaskTechTrigRcdToken); // get Global Trigger technical trigger word, update the tokenResult members // from m_l1AlgoLogicParser and get the result for the logical expression @@ -317,8 +312,7 @@ bool HLTLevel1GTSeed::hltFilter(edm::Event& iEvent, unsigned long long l1GtMenuCacheID = evSetup.get().cacheIdentifier(); if (m_l1GtMenuCacheID != l1GtMenuCacheID) { - edm::ESHandle l1GtMenu; - evSetup.get().get(l1GtMenu); + auto const& l1GtMenu = evSetup.getHandle(m_l1GtTriggerMenuToken); m_l1GtMenu = l1GtMenu.product(); m_l1GtMenuCacheID = l1GtMenuCacheID; diff --git a/HLTrigger/HLTfilters/plugins/HLTLevel1GTSeed.h b/HLTrigger/HLTfilters/plugins/HLTLevel1GTSeed.h index cb4700f8647d8..4acee0b4121e5 100644 --- a/HLTrigger/HLTfilters/plugins/HLTLevel1GTSeed.h +++ b/HLTrigger/HLTfilters/plugins/HLTLevel1GTSeed.h @@ -22,21 +22,19 @@ #include // user include files - -// base class -#include "HLTrigger/HLTcore/interface/HLTStreamFilter.h" - +#include "FWCore/Utilities/interface/InputTag.h" +#include "CondFormats/DataRecord/interface/L1GtTriggerMenuRcd.h" +#include "CondFormats/DataRecord/interface/L1GtTriggerMaskAlgoTrigRcd.h" +#include "CondFormats/DataRecord/interface/L1GtTriggerMaskTechTrigRcd.h" +#include "CondFormats/L1TObjects/interface/L1GtTriggerMenu.h" +#include "CondFormats/L1TObjects/interface/L1GtTriggerMenuFwd.h" +#include "CondFormats/L1TObjects/interface/L1GtTriggerMask.h" #include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" - #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetupFwd.h" -#include "CondFormats/L1TObjects/interface/L1GtTriggerMenuFwd.h" #include "DataFormats/L1GlobalTrigger/interface/L1GtLogicParser.h" - -#include "FWCore/Utilities/interface/InputTag.h" +#include "HLTrigger/HLTcore/interface/HLTStreamFilter.h" // forward declarations -class L1GtTriggerMenu; -class L1GtTriggerMask; class L1GlobalTriggerReadoutRecord; class L1GlobalTriggerObjectMapRecord; namespace edm { @@ -109,6 +107,11 @@ class HLTLevel1GTSeed : public HLTStreamFilter { const L1GtTriggerMenu *m_l1GtMenu; unsigned long long m_l1GtMenuCacheID; + // trigger records + edm::ESGetToken const m_l1GtTriggerMenuToken; + edm::ESGetToken const m_l1GtTriggerMaskAlgoTrigRcdToken; + edm::ESGetToken const m_l1GtTriggerMaskTechTrigRcdToken; + /// logic parser for m_l1SeedsLogicalExpression L1GtLogicParser m_l1AlgoLogicParser; diff --git a/HLTrigger/HLTfilters/plugins/HLTLevel1Pattern.cc b/HLTrigger/HLTfilters/plugins/HLTLevel1Pattern.cc index 8dc181f706c14..694a6a08ccb93 100644 --- a/HLTrigger/HLTfilters/plugins/HLTLevel1Pattern.cc +++ b/HLTrigger/HLTfilters/plugins/HLTLevel1Pattern.cc @@ -24,6 +24,9 @@ #include "CondFormats/DataRecord/interface/L1GtTriggerMenuRcd.h" #include "CondFormats/DataRecord/interface/L1GtTriggerMaskTechTrigRcd.h" #include "CondFormats/DataRecord/interface/L1GtTriggerMaskAlgoTrigRcd.h" +#include "CondFormats/L1TObjects/interface/L1GtTriggerMenu.h" +#include "CondFormats/L1TObjects/interface/L1GtTriggerMenuFwd.h" +#include "CondFormats/L1TObjects/interface/L1GtTriggerMask.h" #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutRecord.h" // @@ -51,13 +54,16 @@ class HLTLevel1Pattern : public edm::EDFilter { bool m_invert; bool m_throw; + edm::ESGetToken const m_l1GtTriggerMenuToken; + edm::ESGetToken const m_l1GtTriggerMaskAlgoTrigRcdToken; + edm::ESGetToken const m_l1GtTriggerMaskTechTrigRcdToken; + edm::ESWatcher m_watchL1Menu; edm::ESWatcher m_watchPhysicsMask; edm::ESWatcher m_watchTechnicalMask; }; #include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "CondFormats/L1TObjects/interface/L1GtTriggerMenu.h" #include "CondFormats/L1TObjects/interface/L1GtTriggerMask.h" @@ -76,7 +82,10 @@ HLTLevel1Pattern::HLTLevel1Pattern(const edm::ParameterSet& config) m_triggerMasked(false), m_ignoreL1Mask(config.getParameter("ignoreL1Mask")), m_invert(config.getParameter("invert")), - m_throw(config.getParameter("throw")) { + m_throw(config.getParameter("throw")), + m_l1GtTriggerMenuToken(esConsumes()), + m_l1GtTriggerMaskAlgoTrigRcdToken(esConsumes()), + m_l1GtTriggerMaskTechTrigRcdToken(esConsumes()) { m_gtReadoutRecordToken = consumes(m_gtReadoutRecord); std::vector pattern(config.getParameter >("triggerPattern")); if (pattern.size() != m_bunchCrossings.size()) @@ -127,9 +136,7 @@ void HLTLevel1Pattern::fillDescriptions(edm::ConfigurationDescriptions& descript bool HLTLevel1Pattern::filter(edm::Event& event, const edm::EventSetup& setup) { // determine the L1 algo or tech bit to use if (m_watchL1Menu.check(setup)) { - edm::ESHandle h_menu; - setup.get().get(h_menu); - + auto const& h_menu = setup.getHandle(m_l1GtTriggerMenuToken); // look for an Algo L1 bit const AlgorithmMap& algoMap = h_menu->gtAlgorithmAliasMap(); const AlgorithmMap& techMap = h_menu->gtTechnicalTriggerMap(); @@ -156,8 +163,7 @@ bool HLTLevel1Pattern::filter(edm::Event& event, const edm::EventSetup& setup) { // - mask & partition == 0x00 --> fully unmasked // - mask & partition != part. --> unmasked in some partitions, consider as unmasked if (m_watchPhysicsMask.check(setup)) { - edm::ESHandle h_mask; - setup.get().get(h_mask); + auto const& h_mask = setup.getHandle(m_l1GtTriggerMaskAlgoTrigRcdToken); m_triggerMasked = ((h_mask->gtTriggerMask()[m_triggerNumber] & m_daqPartitions) == m_daqPartitions); } } else { @@ -166,8 +172,7 @@ bool HLTLevel1Pattern::filter(edm::Event& event, const edm::EventSetup& setup) { // - mask & partition == 0x00 --> fully unmasked // - mask & partition != part. --> unmasked in some partitions, consider as unmasked if (m_watchTechnicalMask.check(setup)) { - edm::ESHandle h_mask; - setup.get().get(h_mask); + auto const& h_mask = setup.getHandle(m_l1GtTriggerMaskTechTrigRcdToken); m_triggerMasked = ((h_mask->gtTriggerMask()[m_triggerNumber] & m_daqPartitions) == m_daqPartitions); } } diff --git a/HLTrigger/HLTfilters/plugins/TriggerResultsFilterFromDB.cc b/HLTrigger/HLTfilters/plugins/TriggerResultsFilterFromDB.cc index 40aa1f2527191..fd6471a614f12 100644 --- a/HLTrigger/HLTfilters/plugins/TriggerResultsFilterFromDB.cc +++ b/HLTrigger/HLTfilters/plugins/TriggerResultsFilterFromDB.cc @@ -32,6 +32,7 @@ TriggerResultsFilterFromDB::TriggerResultsFilterFromDB(const edm::ParameterSet& config) : m_eventSetupPathsKey(config.getParameter("eventSetupPathsKey")), m_eventSetupWatcher(), + m_alcaRecoTriggerBitsRcdToken(esConsumes()), m_expression(nullptr), m_eventCache(config, consumesCollector()) {} @@ -87,8 +88,8 @@ void TriggerResultsFilterFromDB::parse(const std::string& expression) { // read the triggerConditions from the database void TriggerResultsFilterFromDB::pathsFromSetup(const edm::Event& event, const edm::EventSetup& setup) { // Get map of strings to concatenated list of names of HLT paths from EventSetup: - edm::ESHandle triggerBits; - setup.get().get(triggerBits); + auto const& triggerBits = setup.getHandle(m_alcaRecoTriggerBitsRcdToken); + typedef std::map TriggerMap; const TriggerMap& triggerMap = triggerBits->m_alcarecoToTrig; diff --git a/HLTrigger/HLTfilters/plugins/TriggerResultsFilterFromDB.h b/HLTrigger/HLTfilters/plugins/TriggerResultsFilterFromDB.h index de02d451b782e..3ee1439bdd85c 100644 --- a/HLTrigger/HLTfilters/plugins/TriggerResultsFilterFromDB.h +++ b/HLTrigger/HLTfilters/plugins/TriggerResultsFilterFromDB.h @@ -53,6 +53,7 @@ class TriggerResultsFilterFromDB : public edm::stream::EDFilter<> { /// read the triggerConditions from the database std::string m_eventSetupPathsKey; edm::ESWatcher m_eventSetupWatcher; + edm::ESGetToken const m_alcaRecoTriggerBitsRcdToken; /// evaluator for the trigger condition triggerExpression::Evaluator *m_expression; diff --git a/HLTrigger/JSONMonitoring/plugins/L1TriggerJSONMonitoring.cc b/HLTrigger/JSONMonitoring/plugins/L1TriggerJSONMonitoring.cc index be9f44ab32263..a52f6286e0177 100644 --- a/HLTrigger/JSONMonitoring/plugins/L1TriggerJSONMonitoring.cc +++ b/HLTrigger/JSONMonitoring/plugins/L1TriggerJSONMonitoring.cc @@ -20,7 +20,6 @@ #include "EventFilter/Utilities/interface/FastMonitoringService.h" #include "EventFilter/Utilities/interface/JSONSerializer.h" #include "EventFilter/Utilities/interface/JsonMonitorable.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/LuminosityBlock.h" @@ -150,8 +149,9 @@ class L1TriggerJSONMonitoring : public edm::global::EDAnalyzer< static void writeIniFile(L1TriggerJSONMonitoringData::run const&, unsigned int, std::vector const&); // configuration - const edm::InputTag level1Results_; // InputTag for L1 trigge results - const edm::EDGetTokenT level1ResultsToken_; // Token for L1 trigge results + const edm::InputTag level1Results_; // InputTag for L1 trigger results + const edm::EDGetTokenT level1ResultsToken_; // Token for L1 trigger results + const edm::ESGetToken l1tUtmTriggerMenuRcdToken_; }; // instantiate static data members @@ -160,7 +160,8 @@ constexpr const std::array L1TriggerJSONMonitoring::tcdsTrigger // constructor L1TriggerJSONMonitoring::L1TriggerJSONMonitoring(edm::ParameterSet const& config) : level1Results_(config.getParameter("L1Results")), - level1ResultsToken_(consumes(level1Results_)) {} + level1ResultsToken_(consumes(level1Results_)), + l1tUtmTriggerMenuRcdToken_(esConsumes()) {} // validate the configuration and optionally fill the default values void L1TriggerJSONMonitoring::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { @@ -193,8 +194,7 @@ std::shared_ptr L1TriggerJSONMonitoring::globa // read the L1 trigger names from the EventSetup std::vector triggerNames(GlobalAlgBlk::maxPhysicsTriggers, ""s); - edm::ESHandle menuHandle; - setup.get().get(menuHandle); + auto const& menuHandle = setup.getHandle(l1tUtmTriggerMenuRcdToken_); if (menuHandle.isValid()) { for (auto const& algo : menuHandle->getAlgorithmMap()) triggerNames[algo.second.getIndex()] = algo.first; diff --git a/HLTrigger/JetMET/interface/HLTHcalTowerNoiseCleaner.h b/HLTrigger/JetMET/interface/HLTHcalTowerNoiseCleaner.h index 18ab6d4a6eb44..279e213d92781 100644 --- a/HLTrigger/JetMET/interface/HLTHcalTowerNoiseCleaner.h +++ b/HLTrigger/JetMET/interface/HLTHcalTowerNoiseCleaner.h @@ -10,11 +10,12 @@ #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" -#include "RecoMET/METAlgorithms/interface/HcalNoiseAlgo.h" - #include "DataFormats/CaloTowers/interface/CaloTower.h" #include "DataFormats/CaloTowers/interface/CaloTowerCollection.h" #include "DataFormats/METReco/interface/HcalNoiseRBX.h" +#include "Geometry/CaloTopology/interface/CaloTowerTopology.h" +#include "Geometry/Records/interface/HcalRecNumberingRecord.h" +#include "RecoMET/METAlgorithms/interface/HcalNoiseAlgo.h" namespace edm { class ConfigurationDescriptions; @@ -28,6 +29,7 @@ class HLTHcalTowerNoiseCleaner : public edm::stream::EDProducer<> { void produce(edm::Event&, const edm::EventSetup&) override; private: + edm::ESGetToken const hcalRecNumberingRecordToken_; edm::EDGetTokenT m_theHcalNoiseToken; edm::EDGetTokenT m_theCaloTowerCollectionToken; // parameters diff --git a/HLTrigger/JetMET/interface/HLTHcalTowerNoiseCleanerWithrechit.h b/HLTrigger/JetMET/interface/HLTHcalTowerNoiseCleanerWithrechit.h index a270f47653b88..5d8e5e388b9b1 100644 --- a/HLTrigger/JetMET/interface/HLTHcalTowerNoiseCleanerWithrechit.h +++ b/HLTrigger/JetMET/interface/HLTHcalTowerNoiseCleanerWithrechit.h @@ -10,11 +10,12 @@ #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" -#include "RecoMET/METAlgorithms/interface/HcalNoiseAlgo.h" - #include "DataFormats/CaloTowers/interface/CaloTower.h" #include "DataFormats/CaloTowers/interface/CaloTowerCollection.h" #include "DataFormats/METReco/interface/HcalNoiseRBX.h" +#include "Geometry/CaloTopology/interface/CaloTowerTopology.h" +#include "Geometry/Records/interface/HcalRecNumberingRecord.h" +#include "RecoMET/METAlgorithms/interface/HcalNoiseAlgo.h" namespace edm { class ConfigurationDescriptions; @@ -28,6 +29,7 @@ class HLTHcalTowerNoiseCleanerWithrechit : public edm::stream::EDProducer<> { void produce(edm::Event&, const edm::EventSetup&) override; private: + edm::ESGetToken const hcalRecNumberingRecordToken_; edm::EDGetTokenT m_theHcalNoiseToken; edm::EDGetTokenT m_theCaloTowerCollectionToken; // parameters diff --git a/HLTrigger/JetMET/plugins/PixelJetPuId.cc b/HLTrigger/JetMET/plugins/PixelJetPuId.cc index b3509570d70f4..252213bde5bae 100644 --- a/HLTrigger/JetMET/plugins/PixelJetPuId.cc +++ b/HLTrigger/JetMET/plugins/PixelJetPuId.cc @@ -63,6 +63,8 @@ class PixelJetPuId : public edm::global::EDProducer<> { void produce(edm::StreamID sid, edm::Event&, const edm::EventSetup&) const override; // ----------member data --------------------------- + edm::ESGetToken const transientTrackRecordToken_; + edm::InputTag m_primaryVertex; edm::InputTag m_tracks; edm::InputTag m_jets; @@ -86,7 +88,8 @@ class PixelJetPuId : public edm::global::EDProducer<> { // // constructors and destructor // -PixelJetPuId::PixelJetPuId(const edm::ParameterSet& iConfig) { +PixelJetPuId::PixelJetPuId(const edm::ParameterSet& iConfig) + : transientTrackRecordToken_(esConsumes(edm::ESInputTag("", "TransientTrackBuilder"))) { //InputTag m_tracks = iConfig.getParameter("tracks"); tracksToken = consumes >(m_tracks); @@ -167,8 +170,7 @@ void PixelJetPuId::produce(edm::StreamID sid, edm::Event& iEvent, const edm::Eve iEvent.getByToken(primaryVertexToken, primaryVertex); //get Transient Track Builder - edm::ESHandle builder; - iSetup.get().get("TransientTrackBuilder", builder); + auto const& builder = iSetup.getHandle(transientTrackRecordToken_); //init JetTagCollection if (!generaljets.product()->empty()) { diff --git a/HLTrigger/JetMET/src/HLTHcalTowerNoiseCleaner.cc b/HLTrigger/JetMET/src/HLTHcalTowerNoiseCleaner.cc index f2a3f5fd1c7df..cc5b3188984cb 100644 --- a/HLTrigger/JetMET/src/HLTHcalTowerNoiseCleaner.cc +++ b/HLTrigger/JetMET/src/HLTHcalTowerNoiseCleaner.cc @@ -15,42 +15,26 @@ // // // +#include -#include "DataFormats/Common/interface/Handle.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" - #include "FWCore/ParameterSet/interface/ParameterSet.h" - +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/Utilities/interface/InputTag.h" +#include "DataFormats/Common/interface/Handle.h" #include "DataFormats/Candidate/interface/Candidate.h" #include "DataFormats/JetReco/interface/Jet.h" #include "DataFormats/JetReco/interface/CaloJet.h" #include "DataFormats/CaloTowers/interface/CaloTowerDetId.h" #include "DataFormats/CaloTowers/interface/CaloTowerCollection.h" -#include "Geometry/CaloTopology/interface/CaloTowerTopology.h" -#include "Geometry/Records/interface/HcalRecNumberingRecord.h" -#include "DataFormats/Math/interface/LorentzVector.h" -#include "DataFormats/Math/interface/Point3D.h" - -#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" -#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" -#include "FWCore/Utilities/interface/InputTag.h" - -#include -#include -#include -#include -#include -#include - #include "HLTrigger/JetMET/interface/HLTHcalTowerNoiseCleaner.h" -//#include - HLTHcalTowerNoiseCleaner::HLTHcalTowerNoiseCleaner(const edm::ParameterSet& iConfig) - : HcalNoiseRBXCollectionTag_(iConfig.getParameter("HcalNoiseRBXCollection")), + : hcalRecNumberingRecordToken_(esConsumes()), + HcalNoiseRBXCollectionTag_(iConfig.getParameter("HcalNoiseRBXCollection")), TowerCollectionTag_(iConfig.getParameter("CaloTowerCollection")), severity_(iConfig.getParameter("severity")), maxNumRBXs_(iConfig.getParameter("maxNumRBXs")), @@ -155,8 +139,7 @@ void HLTHcalTowerNoiseCleaner::produce(edm::Event& iEvent, const edm::EventSetup } //get the calotower topology - edm::ESHandle caloTowerTopology; - iSetup.get().get(caloTowerTopology); + auto const& caloTowerTopology = iSetup.getHandle(hcalRecNumberingRecordToken_); // get the RBXs produced by RecoMET/METProducers/HcalNoiseInfoProducer edm::Handle rbxs_h; diff --git a/HLTrigger/JetMET/src/HLTHcalTowerNoiseCleanerWithrechit.cc b/HLTrigger/JetMET/src/HLTHcalTowerNoiseCleanerWithrechit.cc index b994f12aed157..e2b9a347b94fd 100644 --- a/HLTrigger/JetMET/src/HLTHcalTowerNoiseCleanerWithrechit.cc +++ b/HLTrigger/JetMET/src/HLTHcalTowerNoiseCleanerWithrechit.cc @@ -15,42 +15,27 @@ // // // +#include -#include "DataFormats/Common/interface/Handle.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" - #include "FWCore/ParameterSet/interface/ParameterSet.h" - +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/Utilities/interface/InputTag.h" +#include "DataFormats/Common/interface/Handle.h" #include "DataFormats/Candidate/interface/Candidate.h" #include "DataFormats/JetReco/interface/Jet.h" #include "DataFormats/JetReco/interface/CaloJet.h" #include "DataFormats/CaloTowers/interface/CaloTowerDetId.h" #include "DataFormats/CaloTowers/interface/CaloTowerCollection.h" -#include "Geometry/CaloTopology/interface/CaloTowerTopology.h" -#include "Geometry/Records/interface/HcalRecNumberingRecord.h" -#include "DataFormats/Math/interface/LorentzVector.h" -#include "DataFormats/Math/interface/Point3D.h" - -#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" -#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" -#include "FWCore/Utilities/interface/InputTag.h" - -#include -#include -#include -#include -#include -#include - #include "HLTrigger/JetMET/interface/HLTHcalTowerNoiseCleanerWithrechit.h" -//#include - HLTHcalTowerNoiseCleanerWithrechit::HLTHcalTowerNoiseCleanerWithrechit(const edm::ParameterSet& iConfig) - : HcalNoiseRBXCollectionTag_(iConfig.getParameter("HcalNoiseRBXCollection")), + : hcalRecNumberingRecordToken_(esConsumes()), + HcalNoiseRBXCollectionTag_(iConfig.getParameter("HcalNoiseRBXCollection")), TowerCollectionTag_(iConfig.getParameter("CaloTowerCollection")), severity_(iConfig.getParameter("severity")), maxNumRBXs_(iConfig.getParameter("maxNumRBXs")), @@ -147,8 +132,7 @@ void HLTHcalTowerNoiseCleanerWithrechit::fillDescriptions(edm::ConfigurationDesc void HLTHcalTowerNoiseCleanerWithrechit::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { using namespace reco; - edm::ESHandle caloTowerTopology; - iSetup.get().get(caloTowerTopology); + auto const& caloTowerTopology = iSetup.getHandle(hcalRecNumberingRecordToken_); //get the calo MET / MHT edm::Handle tower_h; diff --git a/HLTrigger/Muon/plugins/HLTDiMuonGlbTrkFilter.cc b/HLTrigger/Muon/plugins/HLTDiMuonGlbTrkFilter.cc index f70eb359c5c5e..49db0a676ecfc 100644 --- a/HLTrigger/Muon/plugins/HLTDiMuonGlbTrkFilter.cc +++ b/HLTrigger/Muon/plugins/HLTDiMuonGlbTrkFilter.cc @@ -1,31 +1,26 @@ +#include "HLTDiMuonGlbTrkFilter.h" #include "DataFormats/Common/interface/Handle.h" - #include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" #include "DataFormats/HLTReco/interface/TriggerRefsCollections.h" - -#include "FWCore/MessageLogger/interface/MessageLogger.h" - #include "DataFormats/TrackReco/interface/Track.h" #include "DataFormats/RecoCandidate/interface/RecoChargedCandidate.h" #include "DataFormats/RecoCandidate/interface/RecoChargedCandidateFwd.h" #include "DataFormats/MuonReco/interface/MuonFwd.h" -#include "HLTDiMuonGlbTrkFilter.h" #include "DataFormats/BeamSpot/interface/BeamSpot.h" #include "DataFormats/MuonSeed/interface/L3MuonTrajectorySeed.h" #include "DataFormats/MuonSeed/interface/L3MuonTrajectorySeedCollection.h" - +#include "DataFormats/Math/interface/deltaR.h" #include "TrackingTools/PatternTools/interface/ClosestApproachInRPhi.h" #include "TrackingTools/TransientTrack/interface/TransientTrack.h" -#include "MagneticField/Engine/interface/MagneticField.h" -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "FWCore/Utilities/interface/InputTag.h" #include "FWCore/Utilities/interface/EDMException.h" +#include "FWCore/Framework/interface/ESHandle.h" -#include "DataFormats/Math/interface/deltaR.h" - -HLTDiMuonGlbTrkFilter::HLTDiMuonGlbTrkFilter(const edm::ParameterSet& iConfig) : HLTFilter(iConfig) { +HLTDiMuonGlbTrkFilter::HLTDiMuonGlbTrkFilter(const edm::ParameterSet& iConfig) + : HLTFilter(iConfig), idealMagneticFieldRecordToken_(esConsumes()) { m_muonsTag = iConfig.getParameter("inputMuonCollection"); m_muonsToken = consumes(m_muonsTag); m_candsTag = iConfig.getParameter("inputCandCollection"); @@ -116,7 +111,7 @@ bool HLTDiMuonGlbTrkFilter::hltFilter(edm::Event& iEvent, // Needed for DCA calculation edm::ESHandle bFieldHandle; if (m_maxDCAMuMu < 100.) - iSetup.get().get(bFieldHandle); + bFieldHandle = iSetup.getHandle(idealMagneticFieldRecordToken_); for (unsigned int i = 0; i < filteredMuons.size() - 1; ++i) for (unsigned int j = i + 1; j < filteredMuons.size(); ++j) { const reco::Muon& mu1(muons->at(filteredMuons.at(i))); diff --git a/HLTrigger/Muon/plugins/HLTDiMuonGlbTrkFilter.h b/HLTrigger/Muon/plugins/HLTDiMuonGlbTrkFilter.h index 6c2e8cda30dee..f68b58f3aee95 100644 --- a/HLTrigger/Muon/plugins/HLTDiMuonGlbTrkFilter.h +++ b/HLTrigger/Muon/plugins/HLTDiMuonGlbTrkFilter.h @@ -5,6 +5,8 @@ #include "DataFormats/RecoCandidate/interface/RecoChargedCandidateFwd.h" #include "DataFormats/MuonReco/interface/MuonFwd.h" #include "DataFormats/MuonReco/interface/MuonSelectors.h" +#include "MagneticField/Engine/interface/MagneticField.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" namespace edm { class ConfigurationDescriptions; @@ -20,6 +22,7 @@ class HLTDiMuonGlbTrkFilter : public HLTFilter { trigger::TriggerFilterObjectWithRefs& filterproduct) const override; private: + edm::ESGetToken const idealMagneticFieldRecordToken_; // WARNING: two input collection represent should be aligned and represent // the same list of muons, just stored in different containers edm::InputTag m_muonsTag; // input collection of muons diff --git a/HLTrigger/Muon/plugins/HLTMuonDimuonL3Filter.cc b/HLTrigger/Muon/plugins/HLTMuonDimuonL3Filter.cc index ffa94e5b78826..589cc8716d105 100644 --- a/HLTrigger/Muon/plugins/HLTMuonDimuonL3Filter.cc +++ b/HLTrigger/Muon/plugins/HLTMuonDimuonL3Filter.cc @@ -19,7 +19,6 @@ #include "TrackingTools/TransientTrack/interface/TransientTrack.h" #include "FWCore/Utilities/interface/InputTag.h" #include "DataFormats/Math/interface/deltaR.h" -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" using namespace edm; using namespace std; @@ -50,6 +49,7 @@ namespace { HLTMuonDimuonL3Filter::HLTMuonDimuonL3Filter(const edm::ParameterSet& iConfig) : HLTFilter(iConfig), + idealMagneticFieldRecordToken_(esConsumes()), beamspotTag_(iConfig.getParameter("BeamSpotTag")), beamspotToken_(consumes(beamspotTag_)), candTag_(iConfig.getParameter("CandTag")), @@ -290,8 +290,7 @@ bool HLTMuonDimuonL3Filter::hltFilter(edm::Event& iEvent, } //end of using normal TrajectorySeeds // Needed for DCA calculation - ESHandle bFieldHandle; - iSetup.get().get(bFieldHandle); + auto const& bFieldHandle = iSetup.getHandle(idealMagneticFieldRecordToken_); // look at all mucands, check cuts and add to filter object int n = 0; diff --git a/HLTrigger/Muon/plugins/HLTMuonDimuonL3Filter.h b/HLTrigger/Muon/plugins/HLTMuonDimuonL3Filter.h index 073d1c3f0003e..a84b54119c1b8 100644 --- a/HLTrigger/Muon/plugins/HLTMuonDimuonL3Filter.h +++ b/HLTrigger/Muon/plugins/HLTMuonDimuonL3Filter.h @@ -21,8 +21,9 @@ #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "DataFormats/Common/interface/Handle.h" -#include "MagneticField/Engine/interface/MagneticField.h" #include "FWCore/Framework/interface/ESHandle.h" +#include "MagneticField/Engine/interface/MagneticField.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" namespace edm { class ConfigurationDescriptions; @@ -44,6 +45,7 @@ class HLTMuonDimuonL3Filter : public HLTFilter { const reco::RecoChargedCandidateRef&, const reco::BeamSpot&, const edm::ESHandle&) const; + const edm::ESGetToken idealMagneticFieldRecordToken_; const edm::InputTag beamspotTag_; const edm::EDGetTokenT beamspotToken_; const edm::InputTag candTag_; // input tag identifying product contains muons diff --git a/HLTrigger/Muon/plugins/HLTMuonL1Filter.cc b/HLTrigger/Muon/plugins/HLTMuonL1Filter.cc index 517079ae68c12..cd7f7be092001 100644 --- a/HLTrigger/Muon/plugins/HLTMuonL1Filter.cc +++ b/HLTrigger/Muon/plugins/HLTMuonL1Filter.cc @@ -17,7 +17,6 @@ #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTCand.h" #include "FWCore/Utilities/interface/EDMException.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "TMath.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" @@ -31,6 +30,7 @@ // HLTMuonL1Filter::HLTMuonL1Filter(const edm::ParameterSet& iConfig) : HLTFilter(iConfig), + l1MuTriggerScalesRcdToken_(esConsumes()), candTag_(iConfig.getParameter("CandTag")), candToken_(consumes(candTag_)), previousCandTag_(iConfig.getParameter("PreviousCandTag")), @@ -130,9 +130,7 @@ bool HLTMuonL1Filter::hltFilter(edm::Event& iEvent, csctfTracks = csctfTracksHandle.product(); // read scales for every event (fast, no need to cache this) - ESHandle scales; - iSetup.get().get(scales); - l1MuTriggerScales = scales.product(); + l1MuTriggerScales = &iSetup.getData(l1MuTriggerScalesRcdToken_); } // get hold of muons that fired the previous level diff --git a/HLTrigger/Muon/plugins/HLTMuonL1Filter.h b/HLTrigger/Muon/plugins/HLTMuonL1Filter.h index 53eb2498d688b..4e279f6c9e153 100644 --- a/HLTrigger/Muon/plugins/HLTMuonL1Filter.h +++ b/HLTrigger/Muon/plugins/HLTMuonL1Filter.h @@ -36,6 +36,8 @@ class HLTMuonL1Filter : public HLTFilter { trigger::TriggerFilterObjectWithRefs& filterproduct) const override; private: + edm::ESGetToken const l1MuTriggerScalesRcdToken_; + /// input tag identifying the product containing muons edm::InputTag candTag_; edm::EDGetTokenT candToken_; diff --git a/HLTrigger/Muon/plugins/HLTMuonL1TFilter.cc b/HLTrigger/Muon/plugins/HLTMuonL1TFilter.cc index b7813b87bb648..7f1ae1066c5d1 100644 --- a/HLTrigger/Muon/plugins/HLTMuonL1TFilter.cc +++ b/HLTrigger/Muon/plugins/HLTMuonL1TFilter.cc @@ -7,21 +7,15 @@ */ #include "HLTMuonL1TFilter.h" - #include "DataFormats/Common/interface/Handle.h" #include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" #include "DataFormats/HLTReco/interface/TriggerRefsCollections.h" - #include "FWCore/MessageLogger/interface/MessageLogger.h" - #include "FWCore/Utilities/interface/EDMException.h" - -#include "FWCore/Framework/interface/ESHandle.h" -#include "TMath.h" - #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "FWCore/Utilities/interface/InputTag.h" +#include "TMath.h" #include diff --git a/HLTrigger/Muon/plugins/HLTMuonTrackMassFilter.cc b/HLTrigger/Muon/plugins/HLTMuonTrackMassFilter.cc index 6dc6f0f533fee..13d2ae1349294 100644 --- a/HLTrigger/Muon/plugins/HLTMuonTrackMassFilter.cc +++ b/HLTrigger/Muon/plugins/HLTMuonTrackMassFilter.cc @@ -23,8 +23,6 @@ #include "TrackingTools/PatternTools/interface/ClosestApproachInRPhi.h" #include "TrackingTools/TransientTrack/interface/TransientTrack.h" -#include "MagneticField/Engine/interface/MagneticField.h" -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" @@ -32,11 +30,11 @@ #include #include -#include #include HLTMuonTrackMassFilter::HLTMuonTrackMassFilter(const edm::ParameterSet& iConfig) : HLTFilter(iConfig), + idealMagneticFieldRecordToken_(esConsumes()), beamspotTag_(iConfig.getParameter("BeamSpotTag")), beamspotToken_(consumes(beamspotTag_)), muonTag_(iConfig.getParameter("CandTag")), @@ -147,8 +145,7 @@ bool HLTMuonTrackMassFilter::hltFilter(edm::Event& iEvent, iEvent.getByToken(beamspotToken_, beamspotHandle); reco::BeamSpot::Point beamspot(beamspotHandle->position()); // Needed for DCA calculation - edm::ESHandle bFieldHandle; - iSetup.get().get(bFieldHandle); + auto const& bFieldHandle = iSetup.getHandle(idealMagneticFieldRecordToken_); // // Muons // diff --git a/HLTrigger/Muon/plugins/HLTMuonTrackMassFilter.h b/HLTrigger/Muon/plugins/HLTMuonTrackMassFilter.h index 6c05e26364638..40830df327523 100644 --- a/HLTrigger/Muon/plugins/HLTMuonTrackMassFilter.h +++ b/HLTrigger/Muon/plugins/HLTMuonTrackMassFilter.h @@ -7,6 +7,8 @@ #include "HLTrigger/HLTcore/interface/HLTFilter.h" #include "DataFormats/RecoCandidate/interface/RecoChargedCandidateFwd.h" #include "DataFormats/BeamSpot/interface/BeamSpot.h" +#include "MagneticField/Engine/interface/MagneticField.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" #include @@ -30,6 +32,7 @@ class HLTMuonTrackMassFilter : public HLTFilter { const reco::RecoChargedCandidateRef& trackRef) const; private: + edm::ESGetToken const idealMagneticFieldRecordToken_; edm::InputTag beamspotTag_; ///< beamspot used for quality cuts edm::EDGetTokenT beamspotToken_; ///< beamspot used for quality cuts edm::InputTag muonTag_; ///< RecoChargedCandidateCollection (muons) diff --git a/HLTrigger/Muon/plugins/HLTMuonTrimuonL3Filter.cc b/HLTrigger/Muon/plugins/HLTMuonTrimuonL3Filter.cc index 94d71421773ea..508e1c41bc9eb 100644 --- a/HLTrigger/Muon/plugins/HLTMuonTrimuonL3Filter.cc +++ b/HLTrigger/Muon/plugins/HLTMuonTrimuonL3Filter.cc @@ -25,8 +25,6 @@ #include "TrackingTools/PatternTools/interface/ClosestApproachInRPhi.h" #include "TrackingTools/TransientTrack/interface/TransientTrack.h" -#include "MagneticField/Engine/interface/MagneticField.h" -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "FWCore/Utilities/interface/InputTag.h" @@ -43,6 +41,7 @@ using namespace trigger; // HLTMuonTrimuonL3Filter::HLTMuonTrimuonL3Filter(const edm::ParameterSet& iConfig) : HLTFilter(iConfig), + idealMagneticFieldRecordToken_(esConsumes()), beamspotTag_(iConfig.getParameter("BeamSpotTag")), beamspotToken_(consumes(beamspotTag_)), candTag_(iConfig.getParameter("CandTag")), @@ -186,8 +185,7 @@ bool HLTMuonTrimuonL3Filter::hltFilter(edm::Event& iEvent, beamSpot = *recoBeamSpotHandle; // Needed for DCA calculation - ESHandle bFieldHandle; - iSetup.get().get(bFieldHandle); + auto const& bFieldHandle = iSetup.getHandle(idealMagneticFieldRecordToken_); // needed to compare to L2 vector vl2cands; @@ -283,8 +281,8 @@ bool HLTMuonTrimuonL3Filter::hltFilter(edm::Event& iEvent, // Pt threshold cut double pt2 = cand2->pt(); - // double err2 = tk2->error(0); - // double abspar2 = fabs(tk2->parameter(0)); + // double err2 = tk2->error(0); + // double abspar2 = fabs(tk2->parameter(0)); double ptLx2 = pt2; // Don't convert to 90% efficiency threshold LogDebug("HLTMuonTrimuonL3Filter") << " ... 2nd muon in loop, pt2= " << pt2 << ", ptLx2= " << ptLx2; diff --git a/HLTrigger/Muon/plugins/HLTMuonTrimuonL3Filter.h b/HLTrigger/Muon/plugins/HLTMuonTrimuonL3Filter.h index 225bb24def6e0..3e6e082beead6 100644 --- a/HLTrigger/Muon/plugins/HLTMuonTrimuonL3Filter.h +++ b/HLTrigger/Muon/plugins/HLTMuonTrimuonL3Filter.h @@ -17,6 +17,8 @@ #include "DataFormats/BeamSpot/interface/BeamSpot.h" #include "DataFormats/MuonReco/interface/MuonTrackLinks.h" #include "DataFormats/MuonReco/interface/MuonFwd.h" +#include "MagneticField/Engine/interface/MagneticField.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" namespace edm { class ConfigurationDescriptions; @@ -34,6 +36,7 @@ class HLTMuonTrimuonL3Filter : public HLTFilter { private: static bool triggeredByLevel2(const reco::TrackRef& track, std::vector& vcands); + edm::ESGetToken const idealMagneticFieldRecordToken_; edm::InputTag beamspotTag_; edm::EDGetTokenT beamspotToken_; edm::InputTag candTag_; // input tag identifying product contains muons diff --git a/HLTrigger/Muon/test/HLTMuonRateAnalyzer.cc b/HLTrigger/Muon/test/HLTMuonRateAnalyzer.cc index 3ec4e5a5d9d20..514a55e17b9c9 100644 --- a/HLTrigger/Muon/test/HLTMuonRateAnalyzer.cc +++ b/HLTrigger/Muon/test/HLTMuonRateAnalyzer.cc @@ -11,7 +11,6 @@ #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "DataFormats/Common/interface/Handle.h" #include "DataFormats/TrackReco/interface/Track.h" diff --git a/HLTrigger/Muon/test/HLTMuonRateAnalyzerWithWeight.cc b/HLTrigger/Muon/test/HLTMuonRateAnalyzerWithWeight.cc index 1cea8f16049ad..f3bdd2a5064ab 100644 --- a/HLTrigger/Muon/test/HLTMuonRateAnalyzerWithWeight.cc +++ b/HLTrigger/Muon/test/HLTMuonRateAnalyzerWithWeight.cc @@ -11,7 +11,6 @@ #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "DataFormats/Common/interface/Handle.h" #include "DataFormats/L1Trigger/interface/L1MuonParticle.h" #include "DataFormats/L1Trigger/interface/L1MuonParticleFwd.h" diff --git a/HLTrigger/Muon/test/HLTMuonTurnOnAnalyzer.cc b/HLTrigger/Muon/test/HLTMuonTurnOnAnalyzer.cc index 055cbcb6ab31c..67c9d9d82399a 100644 --- a/HLTrigger/Muon/test/HLTMuonTurnOnAnalyzer.cc +++ b/HLTrigger/Muon/test/HLTMuonTurnOnAnalyzer.cc @@ -11,7 +11,6 @@ #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "DataFormats/Common/interface/Handle.h" #include "DataFormats/L1Trigger/interface/L1MuonParticle.h" diff --git a/HLTrigger/Timer/plugins/FastTimerService.cc b/HLTrigger/Timer/plugins/FastTimerService.cc index 62abb7a78f1fe..223b90c8e2763 100644 --- a/HLTrigger/Timer/plugins/FastTimerService.cc +++ b/HLTrigger/Timer/plugins/FastTimerService.cc @@ -34,6 +34,7 @@ using json = nlohmann::json; #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/Utilities/interface/Exception.h" #include "FWCore/Utilities/interface/StreamID.h" #include "HLTrigger/Timer/interface/memory_usage.h" #include "HLTrigger/Timer/interface/processor_model.h" @@ -766,7 +767,8 @@ void FastTimerService::PlotsPerJob::fill_lumi(AtomicResources const& data, unsig /////////////////////////////////////////////////////////////////////////////// FastTimerService::FastTimerService(const edm::ParameterSet& config, edm::ActivityRegistry& registry) - : // configuration + : tbb::task_scheduler_observer(true), + // configuration callgraph_(), // job configuration concurrent_lumis_(0), @@ -1099,6 +1101,9 @@ void FastTimerService::postSourceLumi(edm::LuminosityBlockIndex index) { } void FastTimerService::postEndJob() { + // stop observing to avoid potential race conditions at exit + tbb::task_scheduler_observer::observe(false); + guard_.finalize(); if (print_job_summary_) { edm::LogVerbatim out("FastReport"); printSummary(out, job_summary_, "Job"); @@ -1662,17 +1667,68 @@ void FastTimerService::postModuleStreamEndLumi(edm::StreamContext const& sc, edm thread().measure_and_accumulate(lumi_transition_[index]); } -void FastTimerService::on_scheduler_entry(bool worker) { - // initialise the measurement point for a thread that has newly joining the TBB pool - thread().measure(); +FastTimerService::ThreadGuard::ThreadGuard() { + auto err = ::pthread_key_create(&key_, retire_thread); + if (err) { + throw cms::Exception("FastTimerService") << "ThreadGuard key creation failed: " << ::strerror(err); + } } -void FastTimerService::on_scheduler_exit(bool worker) { - // account any resources used or freed by the thread before leaving the TBB pool - thread().measure_and_accumulate(overhead_); +// If this is a new thread, register it and return true +bool FastTimerService::ThreadGuard::register_thread(FastTimerService::AtomicResources& r) { + auto ptr = ::pthread_getspecific(key_); + + if (not ptr) { + auto p = thread_resources_.emplace_back(std::make_shared(r)); + auto pp = new std::shared_ptr(*p); + auto err = ::pthread_setspecific(key_, pp); + if (err) { + throw cms::Exception("FastTimerService") << "ThreadGuard pthread_setspecific failed: " << ::strerror(err); + } + return true; + } + return false; +} + +std::shared_ptr* FastTimerService::ThreadGuard::ptr(void* p) { + return static_cast*>(p); +} + +// called when a thread exits +void FastTimerService::ThreadGuard::retire_thread(void* p) { + auto ps = ptr(p); + auto expected = true; + if ((*ps)->live_.compare_exchange_strong(expected, false)) { + // account any resources used or freed by the thread before leaving the TBB pool + (*ps)->measurement_.measure_and_accumulate((*ps)->resource_); + } + delete ps; } -FastTimerService::Measurement& FastTimerService::thread() { return threads_.local(); } +// finalize all threads that have not retired +void FastTimerService::ThreadGuard::finalize() { + for (auto& p : thread_resources_) { + auto expected = true; + if (p->live_.compare_exchange_strong(expected, false)) { + p->measurement_.measure_and_accumulate(p->resource_); + } + } +} + +FastTimerService::Measurement& FastTimerService::ThreadGuard::thread() { + return (*ptr(::pthread_getspecific(key_)))->measurement_; +} + +void FastTimerService::on_scheduler_entry(bool worker) { + if (guard_.register_thread(overhead_)) { + // initialise the measurement point for a thread that has newly joined the TBB pool + thread().measure(); + } +} + +void FastTimerService::on_scheduler_exit(bool worker) {} + +FastTimerService::Measurement& FastTimerService::thread() { return guard_.thread(); } // describe the module's configuration void FastTimerService::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { diff --git a/HLTrigger/Timer/plugins/FastTimerService.h b/HLTrigger/Timer/plugins/FastTimerService.h index ac8dc872ec89b..f7616173e5ebd 100644 --- a/HLTrigger/Timer/plugins/FastTimerService.h +++ b/HLTrigger/Timer/plugins/FastTimerService.h @@ -3,6 +3,7 @@ // system headers #include +#include // C++ headers #include @@ -455,9 +456,33 @@ class FastTimerService : public tbb::task_scheduler_observer { std::vector run_summary_; // whole event time accounting per-run std::mutex summary_mutex_; // synchronise access to the summary objects across different threads - // per-thread quantities, lazily allocated - tbb::enumerable_thread_specific, tbb::ets_key_per_instance> - threads_; + // + struct ThreadGuard { + struct specific_t { + specific_t(AtomicResources& r) : resource_(r), live_(true) {} + ~specific_t() = default; + + Measurement measurement_; + AtomicResources& resource_; + std::atomic live_; + }; + + ThreadGuard(); + ~ThreadGuard() = default; + + static void retire_thread(void* t); + static std::shared_ptr* ptr(void* p); + + bool register_thread(FastTimerService::AtomicResources& r); + Measurement& thread(); + void finalize(); + + tbb::concurrent_vector> thread_resources_; + pthread_key_t key_; + }; + + // + ThreadGuard guard_; // atomic variables to keep track of the completion of each step, process by process std::unique_ptr[]> subprocess_event_check_; diff --git a/HLTrigger/btau/plugins/HLTDisplacedmumuVtxProducer.cc b/HLTrigger/btau/plugins/HLTDisplacedmumuVtxProducer.cc index 0530724aaeab6..0569a594034e3 100644 --- a/HLTrigger/btau/plugins/HLTDisplacedmumuVtxProducer.cc +++ b/HLTrigger/btau/plugins/HLTDisplacedmumuVtxProducer.cc @@ -3,7 +3,6 @@ #include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" - #include "DataFormats/Candidate/interface/CandidateFwd.h" #include "DataFormats/RecoCandidate/interface/RecoCandidate.h" #include "DataFormats/RecoCandidate/interface/RecoChargedCandidate.h" @@ -11,18 +10,13 @@ #include "DataFormats/Candidate/interface/Candidate.h" #include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" #include "DataFormats/HLTReco/interface/TriggerRefsCollections.h" - #include "DataFormats/TrackReco/interface/TrackFwd.h" #include "DataFormats/TrackReco/interface/Track.h" -#include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" -#include "TrackingTools/Records/interface/TransientTrackRecord.h" - -#include "RecoVertex/KalmanVertexFit/interface/KalmanVertexFitter.h" -#include "RecoVertex/VertexPrimitives/interface/TransientVertex.h" #include "DataFormats/VertexReco/interface/Vertex.h" #include "DataFormats/VertexReco/interface/VertexFwd.h" #include "DataFormats/Common/interface/RefToBase.h" - +#include "RecoVertex/KalmanVertexFit/interface/KalmanVertexFitter.h" +#include "RecoVertex/VertexPrimitives/interface/TransientVertex.h" #include "HLTDisplacedmumuVtxProducer.h" using namespace edm; @@ -33,7 +27,8 @@ using namespace trigger; // constructors and destructor // HLTDisplacedmumuVtxProducer::HLTDisplacedmumuVtxProducer(const edm::ParameterSet& iConfig) - : srcTag_(iConfig.getParameter("Src")), + : transientTrackRecordToken_(esConsumes(edm::ESInputTag("", "TransientTrackBuilder"))), + srcTag_(iConfig.getParameter("Src")), srcToken_(consumes(srcTag_)), previousCandTag_(iConfig.getParameter("PreviousCandTag")), previousCandToken_(consumes(previousCandTag_)), @@ -72,9 +67,8 @@ void HLTDisplacedmumuVtxProducer::produce(edm::StreamID, edm::Event& iEvent, con Handle mucands; iEvent.getByToken(srcToken_, mucands); - //get the transient track builder: - edm::ESHandle theB; - iSetup.get().get("TransientTrackBuilder", theB); + // get the transient track builder + auto const& theB = iSetup.getHandle(transientTrackRecordToken_); std::unique_ptr vertexCollection(new VertexCollection()); diff --git a/HLTrigger/btau/plugins/HLTDisplacedmumuVtxProducer.h b/HLTrigger/btau/plugins/HLTDisplacedmumuVtxProducer.h index 6ff338cd99df6..403f828a20cb9 100644 --- a/HLTrigger/btau/plugins/HLTDisplacedmumuVtxProducer.h +++ b/HLTrigger/btau/plugins/HLTDisplacedmumuVtxProducer.h @@ -21,6 +21,9 @@ #include "DataFormats/TrackReco/interface/TrackFwd.h" #include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" #include "DataFormats/HLTReco/interface/TriggerRefsCollections.h" +#include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" +#include "TrackingTools/Records/interface/TransientTrackRecord.h" + #include namespace edm { @@ -37,6 +40,7 @@ class HLTDisplacedmumuVtxProducer : public edm::global::EDProducer<> { private: bool checkPreviousCand(const reco::TrackRef& trackref, const std::vector& ref2) const; + const edm::ESGetToken transientTrackRecordToken_; const edm::InputTag srcTag_; const edm::EDGetTokenT srcToken_; const edm::InputTag previousCandTag_; diff --git a/HLTrigger/btau/plugins/HLTDisplacedmumumuVtxProducer.cc b/HLTrigger/btau/plugins/HLTDisplacedmumumuVtxProducer.cc index 931c0ba45e8b8..b56605d3c7992 100644 --- a/HLTrigger/btau/plugins/HLTDisplacedmumumuVtxProducer.cc +++ b/HLTrigger/btau/plugins/HLTDisplacedmumumuVtxProducer.cc @@ -1,9 +1,7 @@ #include -#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" - #include "DataFormats/Candidate/interface/CandidateFwd.h" #include "DataFormats/RecoCandidate/interface/RecoCandidate.h" #include "DataFormats/RecoCandidate/interface/RecoChargedCandidate.h" @@ -11,18 +9,13 @@ #include "DataFormats/Candidate/interface/Candidate.h" #include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" #include "DataFormats/HLTReco/interface/TriggerRefsCollections.h" - #include "DataFormats/TrackReco/interface/TrackFwd.h" #include "DataFormats/TrackReco/interface/Track.h" -#include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" -#include "TrackingTools/Records/interface/TransientTrackRecord.h" - -#include "RecoVertex/KalmanVertexFit/interface/KalmanVertexFitter.h" -#include "RecoVertex/VertexPrimitives/interface/TransientVertex.h" #include "DataFormats/VertexReco/interface/Vertex.h" #include "DataFormats/VertexReco/interface/VertexFwd.h" #include "DataFormats/Common/interface/RefToBase.h" - +#include "RecoVertex/KalmanVertexFit/interface/KalmanVertexFitter.h" +#include "RecoVertex/VertexPrimitives/interface/TransientVertex.h" #include "HLTDisplacedmumumuVtxProducer.h" using namespace edm; @@ -33,7 +26,8 @@ using namespace trigger; // constructors and destructor // HLTDisplacedmumumuVtxProducer::HLTDisplacedmumumuVtxProducer(const edm::ParameterSet& iConfig) - : srcTag_(iConfig.getParameter("Src")), + : transientTrackRecordToken_(esConsumes(edm::ESInputTag("", "TransientTrackBuilder"))), + srcTag_(iConfig.getParameter("Src")), srcToken_(consumes(srcTag_)), previousCandTag_(iConfig.getParameter("PreviousCandTag")), previousCandToken_(consumes(previousCandTag_)), @@ -70,9 +64,8 @@ void HLTDisplacedmumumuVtxProducer::produce(edm::StreamID, edm::Event& iEvent, c Handle mucands; iEvent.getByToken(srcToken_, mucands); - //get the transient track builder: - edm::ESHandle theB; - iSetup.get().get("TransientTrackBuilder", theB); + // get the transient track builder + auto const& theB = iSetup.getHandle(transientTrackRecordToken_); std::unique_ptr vertexCollection(new VertexCollection()); diff --git a/HLTrigger/btau/plugins/HLTDisplacedmumumuVtxProducer.h b/HLTrigger/btau/plugins/HLTDisplacedmumumuVtxProducer.h index cc0fab1a9fd12..ca954b62f318d 100644 --- a/HLTrigger/btau/plugins/HLTDisplacedmumumuVtxProducer.h +++ b/HLTrigger/btau/plugins/HLTDisplacedmumumuVtxProducer.h @@ -21,6 +21,8 @@ #include "DataFormats/TrackReco/interface/TrackFwd.h" #include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" #include "DataFormats/HLTReco/interface/TriggerRefsCollections.h" +#include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" +#include "TrackingTools/Records/interface/TransientTrackRecord.h" #include namespace edm { @@ -37,6 +39,7 @@ class HLTDisplacedmumumuVtxProducer : public edm::global::EDProducer<> { private: bool checkPreviousCand(const reco::TrackRef& trackref, const std::vector& ref2) const; + const edm::ESGetToken transientTrackRecordToken_; const edm::InputTag srcTag_; const edm::EDGetTokenT srcToken_; const edm::InputTag previousCandTag_; diff --git a/HLTrigger/btau/plugins/HLTDisplacedtktkVtxProducer.cc b/HLTrigger/btau/plugins/HLTDisplacedtktkVtxProducer.cc index 858acbb80bc1b..b2a4b13cb72f7 100644 --- a/HLTrigger/btau/plugins/HLTDisplacedtktkVtxProducer.cc +++ b/HLTrigger/btau/plugins/HLTDisplacedtktkVtxProducer.cc @@ -1,9 +1,7 @@ #include -#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" - #include "DataFormats/Candidate/interface/CandidateFwd.h" #include "DataFormats/RecoCandidate/interface/RecoCandidate.h" #include "DataFormats/RecoCandidate/interface/RecoChargedCandidate.h" @@ -11,18 +9,13 @@ #include "DataFormats/Candidate/interface/Candidate.h" #include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" #include "DataFormats/HLTReco/interface/TriggerRefsCollections.h" - #include "DataFormats/TrackReco/interface/TrackFwd.h" #include "DataFormats/TrackReco/interface/Track.h" -#include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" -#include "TrackingTools/Records/interface/TransientTrackRecord.h" - -#include "RecoVertex/KalmanVertexFit/interface/KalmanVertexFitter.h" -#include "RecoVertex/VertexPrimitives/interface/TransientVertex.h" #include "DataFormats/VertexReco/interface/Vertex.h" #include "DataFormats/VertexReco/interface/VertexFwd.h" #include "DataFormats/Common/interface/RefToBase.h" - +#include "RecoVertex/KalmanVertexFit/interface/KalmanVertexFitter.h" +#include "RecoVertex/VertexPrimitives/interface/TransientVertex.h" #include "HLTDisplacedtktkVtxProducer.h" using namespace edm; @@ -33,7 +26,8 @@ using namespace trigger; // constructors and destructor // HLTDisplacedtktkVtxProducer::HLTDisplacedtktkVtxProducer(const edm::ParameterSet& iConfig) - : srcTag_(iConfig.getParameter("Src")), + : transientTrackRecordToken_(esConsumes(edm::ESInputTag("", "TransientTrackBuilder"))), + srcTag_(iConfig.getParameter("Src")), srcToken_(consumes(srcTag_)), previousCandTag_(iConfig.getParameter("PreviousCandTag")), previousCandToken_(consumes(previousCandTag_)), @@ -45,9 +39,7 @@ HLTDisplacedtktkVtxProducer::HLTDisplacedtktkVtxProducer(const edm::ParameterSet massParticle1_(iConfig.getParameter("massParticle1")), massParticle2_(iConfig.getParameter("massParticle2")), chargeOpt_(iConfig.getParameter("ChargeOpt")), - triggerTypeDaughters_(iConfig.getParameter("triggerTypeDaughters")) - -{ + triggerTypeDaughters_(iConfig.getParameter("triggerTypeDaughters")) { produces(); } @@ -81,9 +73,8 @@ void HLTDisplacedtktkVtxProducer::produce(edm::Event& iEvent, const edm::EventSe Handle trackcands; iEvent.getByToken(srcToken_, trackcands); - //get the transient track builder: - edm::ESHandle theB; - iSetup.get().get("TransientTrackBuilder", theB); + // get the transient track builder + auto const& theB = iSetup.getHandle(transientTrackRecordToken_); std::unique_ptr vertexCollection(new VertexCollection()); diff --git a/HLTrigger/btau/plugins/HLTDisplacedtktkVtxProducer.h b/HLTrigger/btau/plugins/HLTDisplacedtktkVtxProducer.h index ede224a3e548b..949c209d7c012 100644 --- a/HLTrigger/btau/plugins/HLTDisplacedtktkVtxProducer.h +++ b/HLTrigger/btau/plugins/HLTDisplacedtktkVtxProducer.h @@ -24,6 +24,8 @@ #include "DataFormats/TrackReco/interface/TrackFwd.h" #include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" #include "DataFormats/HLTReco/interface/TriggerRefsCollections.h" +#include "TrackingTools/Records/interface/TransientTrackRecord.h" +#include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" #include namespace edm { @@ -40,6 +42,7 @@ class HLTDisplacedtktkVtxProducer : public edm::stream::EDProducer<> { private: bool checkPreviousCand(const reco::TrackRef& trackref, const std::vector& ref2) const; + const edm::ESGetToken transientTrackRecordToken_; const edm::InputTag srcTag_; const edm::EDGetTokenT srcToken_; const edm::InputTag previousCandTag_; diff --git a/HLTrigger/btau/plugins/HLTDisplacedtktktkVtxProducer.cc b/HLTrigger/btau/plugins/HLTDisplacedtktktkVtxProducer.cc index 50eb2ecd073f6..f5a54a6a986c6 100644 --- a/HLTrigger/btau/plugins/HLTDisplacedtktktkVtxProducer.cc +++ b/HLTrigger/btau/plugins/HLTDisplacedtktktkVtxProducer.cc @@ -3,7 +3,6 @@ #include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" - #include "DataFormats/Candidate/interface/CandidateFwd.h" #include "DataFormats/RecoCandidate/interface/RecoCandidate.h" #include "DataFormats/RecoCandidate/interface/RecoChargedCandidate.h" @@ -11,18 +10,13 @@ #include "DataFormats/Candidate/interface/Candidate.h" #include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" #include "DataFormats/HLTReco/interface/TriggerRefsCollections.h" - #include "DataFormats/TrackReco/interface/TrackFwd.h" #include "DataFormats/TrackReco/interface/Track.h" -#include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" -#include "TrackingTools/Records/interface/TransientTrackRecord.h" - -#include "RecoVertex/KalmanVertexFit/interface/KalmanVertexFitter.h" -#include "RecoVertex/VertexPrimitives/interface/TransientVertex.h" #include "DataFormats/VertexReco/interface/Vertex.h" #include "DataFormats/VertexReco/interface/VertexFwd.h" #include "DataFormats/Common/interface/RefToBase.h" - +#include "RecoVertex/KalmanVertexFit/interface/KalmanVertexFitter.h" +#include "RecoVertex/VertexPrimitives/interface/TransientVertex.h" #include "HLTDisplacedtktktkVtxProducer.h" using namespace edm; @@ -33,7 +27,8 @@ using namespace trigger; // constructors and destructor // HLTDisplacedtktktkVtxProducer::HLTDisplacedtktktkVtxProducer(const edm::ParameterSet& iConfig) - : srcTag_(iConfig.getParameter("Src")), + : transientTrackRecordToken_(esConsumes(edm::ESInputTag("", "TransientTrackBuilder"))), + srcTag_(iConfig.getParameter("Src")), srcToken_(consumes(srcTag_)), previousCandTag_(iConfig.getParameter("PreviousCandTag")), previousCandToken_(consumes(previousCandTag_)), @@ -52,9 +47,7 @@ HLTDisplacedtktktkVtxProducer::HLTDisplacedtktktkVtxProducer(const edm::Paramete massParticle3_(iConfig.getParameter("massParticle3")), chargeOpt_(iConfig.getParameter("ChargeOpt")), resOpt_(iConfig.getParameter("ResOpt")), - triggerTypeDaughters_(iConfig.getParameter("triggerTypeDaughters")) - -{ + triggerTypeDaughters_(iConfig.getParameter("triggerTypeDaughters")) { produces(); firstTrackMass = massParticle1_; @@ -112,9 +105,8 @@ void HLTDisplacedtktktkVtxProducer::produce(edm::Event& iEvent, const edm::Event if (trackcands->size() < 3) return; - //get the transient track builder: - edm::ESHandle theB; - iSetup.get().get("TransientTrackBuilder", theB); + // get the transient track builder + auto const& theB = iSetup.getHandle(transientTrackRecordToken_); std::unique_ptr vertexCollection(new VertexCollection()); diff --git a/HLTrigger/btau/plugins/HLTDisplacedtktktkVtxProducer.h b/HLTrigger/btau/plugins/HLTDisplacedtktktkVtxProducer.h index 877405a1bdbbe..f3138ca5d3e2e 100644 --- a/HLTrigger/btau/plugins/HLTDisplacedtktktkVtxProducer.h +++ b/HLTrigger/btau/plugins/HLTDisplacedtktktkVtxProducer.h @@ -24,6 +24,8 @@ #include "DataFormats/TrackReco/interface/TrackFwd.h" #include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" #include "DataFormats/HLTReco/interface/TriggerRefsCollections.h" +#include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" +#include "TrackingTools/Records/interface/TransientTrackRecord.h" #include namespace edm { @@ -40,6 +42,7 @@ class HLTDisplacedtktktkVtxProducer : public edm::stream::EDProducer<> { private: bool checkPreviousCand(const reco::TrackRef& trackref, const std::vector& ref2) const; + const edm::ESGetToken transientTrackRecordToken_; const edm::InputTag srcTag_; const edm::EDGetTokenT srcToken_; const edm::InputTag previousCandTag_; diff --git a/HLTrigger/btau/plugins/HLTmmkFilter.cc b/HLTrigger/btau/plugins/HLTmmkFilter.cc index a920c18840478..8c970e872917e 100644 --- a/HLTrigger/btau/plugins/HLTmmkFilter.cc +++ b/HLTrigger/btau/plugins/HLTmmkFilter.cc @@ -35,6 +35,8 @@ using namespace trigger; // ---------------------------------------------------------------------- HLTmmkFilter::HLTmmkFilter(const edm::ParameterSet& iConfig) : HLTFilter(iConfig), + transientTrackRecordToken_(esConsumes(edm::ESInputTag("", "TransientTrackBuilder"))), + idealMagneticFieldRecordToken_(esConsumes()), muCandTag_(iConfig.getParameter("MuCand")), muCandToken_(consumes(muCandTag_)), trkCandTag_(iConfig.getParameter("TrackCand")), @@ -95,18 +97,15 @@ bool HLTmmkFilter::hltFilter(edm::Event& iEvent, unique_ptr output(new CandidateCollection()); unique_ptr vertexCollection(new VertexCollection()); - //get the transient track builder: - edm::ESHandle theB; - iSetup.get().get("TransientTrackBuilder", theB); + // get the transient track builder + auto const& theB = iSetup.getHandle(transientTrackRecordToken_); - //get the beamspot position + // get the beamspot position edm::Handle recoBeamSpotHandle; iEvent.getByToken(beamSpotToken_, recoBeamSpotHandle); const reco::BeamSpot& vertexBeamSpot = *recoBeamSpotHandle; - ESHandle bFieldHandle; - iSetup.get().get(bFieldHandle); - + auto const& bFieldHandle = iSetup.getHandle(idealMagneticFieldRecordToken_); const MagneticField* magField = bFieldHandle.product(); TSCBLBuilderNoMaterial blsBuilder; diff --git a/HLTrigger/btau/plugins/HLTmmkFilter.h b/HLTrigger/btau/plugins/HLTmmkFilter.h index 9d7127a21b2a3..8ee7444e67f2b 100644 --- a/HLTrigger/btau/plugins/HLTmmkFilter.h +++ b/HLTrigger/btau/plugins/HLTmmkFilter.h @@ -18,16 +18,19 @@ // Last Modification: 13.02.2007 // -// system include files #include #include "HLTrigger/HLTcore/interface/HLTFilter.h" +#include "DataFormats/RecoCandidate/interface/RecoChargedCandidateFwd.h" +#include "DataFormats/BeamSpot/interface/BeamSpot.h" +#include "TrackingTools/Records/interface/TransientTrackRecord.h" +#include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" +#include "MagneticField/Engine/interface/MagneticField.h" + namespace edm { class ConfigurationDescriptions; } -#include "DataFormats/RecoCandidate/interface/RecoChargedCandidateFwd.h" -#include "DataFormats/BeamSpot/interface/BeamSpot.h" -// ---------------------------------------------------------------------- namespace reco { class Candidate; @@ -53,6 +56,9 @@ class HLTmmkFilter : public HLTFilter { static int overlap(const reco::Candidate&, const reco::Candidate&); static FreeTrajectoryState initialFreeState(const reco::Track&, const MagneticField*); + const edm::ESGetToken transientTrackRecordToken_; + const edm::ESGetToken idealMagneticFieldRecordToken_; + edm::InputTag muCandTag_; edm::EDGetTokenT muCandToken_; edm::InputTag trkCandTag_; diff --git a/HLTrigger/btau/plugins/HLTmmkkFilter.cc b/HLTrigger/btau/plugins/HLTmmkkFilter.cc index fabbb20d964bf..17fb2922c5854 100644 --- a/HLTrigger/btau/plugins/HLTmmkkFilter.cc +++ b/HLTrigger/btau/plugins/HLTmmkkFilter.cc @@ -2,29 +2,20 @@ #include #include -#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" - +#include "DataFormats/BeamSpot/interface/BeamSpot.h" +#include "DataFormats/Math/interface/deltaPhi.h" #include "DataFormats/RecoCandidate/interface/RecoCandidate.h" #include "DataFormats/RecoCandidate/interface/RecoChargedCandidate.h" - -#include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" -#include "TrackingTools/Records/interface/TransientTrackRecord.h" - -#include "RecoVertex/KalmanVertexFit/interface/KalmanVertexFitter.h" -#include "RecoVertex/VertexPrimitives/interface/TransientVertex.h" #include "DataFormats/VertexReco/interface/Vertex.h" #include "DataFormats/VertexReco/interface/VertexFwd.h" #include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" #include "TrackingTools/PatternTools/interface/TSCBLBuilderNoMaterial.h" #include "TrackingTools/TrajectoryState/interface/FreeTrajectoryState.h" #include "TrackingTools/TrajectoryParametrization/interface/GlobalTrajectoryParameters.h" - -#include "DataFormats/BeamSpot/interface/BeamSpot.h" - -#include "DataFormats/Math/interface/deltaPhi.h" - +#include "RecoVertex/KalmanVertexFit/interface/KalmanVertexFitter.h" +#include "RecoVertex/VertexPrimitives/interface/TransientVertex.h" #include "HLTmmkkFilter.h" using namespace edm; @@ -35,6 +26,8 @@ using namespace trigger; // ---------------------------------------------------------------------- HLTmmkkFilter::HLTmmkkFilter(const edm::ParameterSet& iConfig) : HLTFilter(iConfig), + transientTrackRecordToken_(esConsumes(edm::ESInputTag("", "TransientTrackBuilder"))), + idealMagneticFieldRecordToken_(esConsumes()), muCandTag_(iConfig.getParameter("MuCand")), muCandToken_(consumes(muCandTag_)), trkCandTag_(iConfig.getParameter("TrackCand")), @@ -98,18 +91,15 @@ bool HLTmmkkFilter::hltFilter(edm::Event& iEvent, unique_ptr output(new CandidateCollection()); unique_ptr vertexCollection(new VertexCollection()); - //get the transient track builder: - edm::ESHandle theB; - iSetup.get().get("TransientTrackBuilder", theB); + // get the transient track builder + auto const& theB = iSetup.getHandle(transientTrackRecordToken_); - //get the beamspot position + // get the beamspot position edm::Handle recoBeamSpotHandle; iEvent.getByToken(beamSpotToken_, recoBeamSpotHandle); const reco::BeamSpot& vertexBeamSpot = *recoBeamSpotHandle; - ESHandle bFieldHandle; - iSetup.get().get(bFieldHandle); - + auto const& bFieldHandle = iSetup.getHandle(idealMagneticFieldRecordToken_); const MagneticField* magField = bFieldHandle.product(); TSCBLBuilderNoMaterial blsBuilder; diff --git a/HLTrigger/btau/plugins/HLTmmkkFilter.h b/HLTrigger/btau/plugins/HLTmmkkFilter.h index 708250d4e1bf2..c7d3be929c249 100644 --- a/HLTrigger/btau/plugins/HLTmmkkFilter.h +++ b/HLTrigger/btau/plugins/HLTmmkkFilter.h @@ -18,16 +18,19 @@ // Last Modification: 13.02.2007 // -// system include files #include #include "HLTrigger/HLTcore/interface/HLTFilter.h" +#include "DataFormats/BeamSpot/interface/BeamSpot.h" +#include "DataFormats/RecoCandidate/interface/RecoChargedCandidateFwd.h" +#include "TrackingTools/Records/interface/TransientTrackRecord.h" +#include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" +#include "MagneticField/Engine/interface/MagneticField.h" + namespace edm { class ConfigurationDescriptions; } -#include "DataFormats/RecoCandidate/interface/RecoChargedCandidateFwd.h" -#include "DataFormats/BeamSpot/interface/BeamSpot.h" -// ---------------------------------------------------------------------- namespace reco { class Candidate; @@ -53,6 +56,9 @@ class HLTmmkkFilter : public HLTFilter { static int overlap(const reco::Candidate &, const reco::Candidate &); static FreeTrajectoryState initialFreeState(const reco::Track &, const MagneticField *); + const edm::ESGetToken transientTrackRecordToken_; + const edm::ESGetToken idealMagneticFieldRecordToken_; + edm::InputTag muCandTag_; edm::EDGetTokenT muCandToken_; edm::InputTag trkCandTag_; diff --git a/HLTrigger/btau/plugins/HLTmumutkVtxProducer.cc b/HLTrigger/btau/plugins/HLTmumutkVtxProducer.cc index 8727c463bff60..ed46fdb03ab6f 100644 --- a/HLTrigger/btau/plugins/HLTmumutkVtxProducer.cc +++ b/HLTrigger/btau/plugins/HLTmumutkVtxProducer.cc @@ -2,25 +2,20 @@ #include #include -#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" - #include "DataFormats/BeamSpot/interface/BeamSpot.h" +#include "DataFormats/Math/interface/deltaR.h" #include "DataFormats/RecoCandidate/interface/RecoCandidate.h" #include "DataFormats/RecoCandidate/interface/RecoChargedCandidate.h" #include "DataFormats/VertexReco/interface/Vertex.h" #include "DataFormats/VertexReco/interface/VertexFwd.h" #include "TrackingTools/PatternTools/interface/TSCBLBuilderNoMaterial.h" -#include "TrackingTools/Records/interface/TransientTrackRecord.h" #include "TrackingTools/TrajectoryParametrization/interface/GlobalTrajectoryParameters.h" #include "TrackingTools/TrajectoryState/interface/FreeTrajectoryState.h" -#include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" #include "RecoVertex/KalmanVertexFit/interface/KalmanVertexFitter.h" #include "RecoVertex/VertexPrimitives/interface/TransientVertex.h" - #include "HLTmumutkVtxProducer.h" -#include using namespace edm; using namespace reco; @@ -29,13 +24,15 @@ using namespace trigger; // ---------------------------------------------------------------------- HLTmumutkVtxProducer::HLTmumutkVtxProducer(const edm::ParameterSet& iConfig) - : muCandTag_(iConfig.getParameter("MuCand")), + : transientTrackRecordToken_(esConsumes(edm::ESInputTag("", "TransientTrackBuilder"))), + muCandTag_(iConfig.getParameter("MuCand")), muCandToken_(consumes(muCandTag_)), trkCandTag_(iConfig.getParameter("TrackCand")), trkCandToken_(consumes(trkCandTag_)), previousCandTag_(iConfig.getParameter("PreviousCandTag")), previousCandToken_(consumes(previousCandTag_)), mfName_(iConfig.getParameter("SimpleMagneticField")), + idealMagneticFieldRecordToken_(esConsumes(edm::ESInputTag("", mfName_))), thirdTrackMass_(iConfig.getParameter("ThirdTrackMass")), maxEta_(iConfig.getParameter("MaxEta")), minPt_(iConfig.getParameter("MinPt")), @@ -78,17 +75,15 @@ void HLTmumutkVtxProducer::produce(edm::Event& iEvent, const edm::EventSetup& iS Handle mucands; iEvent.getByToken(muCandToken_, mucands); - //get the transient track builder: - edm::ESHandle theB; - iSetup.get().get("TransientTrackBuilder", theB); + // get the transient track builder + auto const& theB = iSetup.getHandle(transientTrackRecordToken_); //get the beamspot position edm::Handle recoBeamSpotHandle; iEvent.getByToken(beamSpotToken_, recoBeamSpotHandle); //get the b field - ESHandle bFieldHandle; - iSetup.get().get(mfName_, bFieldHandle); + auto const& bFieldHandle = iSetup.getHandle(idealMagneticFieldRecordToken_); const MagneticField* magField = bFieldHandle.product(); TSCBLBuilderNoMaterial blsBuilder; diff --git a/HLTrigger/btau/plugins/HLTmumutkVtxProducer.h b/HLTrigger/btau/plugins/HLTmumutkVtxProducer.h index b178c11b71b6c..84a8890e4035a 100644 --- a/HLTrigger/btau/plugins/HLTmumutkVtxProducer.h +++ b/HLTrigger/btau/plugins/HLTmumutkVtxProducer.h @@ -24,6 +24,10 @@ #include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" #include "DataFormats/HLTReco/interface/TriggerRefsCollections.h" #include "DataFormats/BeamSpot/interface/BeamSpot.h" +#include "TrackingTools/Records/interface/TransientTrackRecord.h" +#include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" +#include "MagneticField/Engine/interface/MagneticField.h" #include namespace edm { @@ -52,6 +56,8 @@ class HLTmumutkVtxProducer : public edm::stream::EDProducer<> { static FreeTrajectoryState initialFreeState(const reco::Track&, const MagneticField*); bool checkPreviousCand(const reco::TrackRef& trackref, const std::vector& ref2) const; + const edm::ESGetToken transientTrackRecordToken_; + const edm::InputTag muCandTag_; const edm::EDGetTokenT muCandToken_; const edm::InputTag trkCandTag_; @@ -60,6 +66,7 @@ class HLTmumutkVtxProducer : public edm::stream::EDProducer<> { const edm::EDGetTokenT previousCandToken_; const std::string mfName_; + const edm::ESGetToken idealMagneticFieldRecordToken_; const double thirdTrackMass_; const double maxEta_; diff --git a/HLTrigger/btau/plugins/HLTmumutktkVtxProducer.cc b/HLTrigger/btau/plugins/HLTmumutktkVtxProducer.cc index 4a69670edefce..0caf95649a1f9 100644 --- a/HLTrigger/btau/plugins/HLTmumutktkVtxProducer.cc +++ b/HLTrigger/btau/plugins/HLTmumutktkVtxProducer.cc @@ -5,23 +5,18 @@ #include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" - #include "DataFormats/BeamSpot/interface/BeamSpot.h" +#include "DataFormats/Math/interface/deltaR.h" #include "DataFormats/RecoCandidate/interface/RecoCandidate.h" #include "DataFormats/RecoCandidate/interface/RecoChargedCandidate.h" #include "DataFormats/VertexReco/interface/Vertex.h" #include "DataFormats/VertexReco/interface/VertexFwd.h" #include "TrackingTools/PatternTools/interface/TSCBLBuilderNoMaterial.h" -#include "TrackingTools/Records/interface/TransientTrackRecord.h" #include "TrackingTools/TrajectoryParametrization/interface/GlobalTrajectoryParameters.h" #include "TrackingTools/TrajectoryState/interface/FreeTrajectoryState.h" -#include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" #include "RecoVertex/KalmanVertexFit/interface/KalmanVertexFitter.h" #include "RecoVertex/VertexPrimitives/interface/TransientVertex.h" - #include "HLTmumutktkVtxProducer.h" -#include -#include "TMath.h" using namespace edm; using namespace reco; @@ -30,13 +25,15 @@ using namespace trigger; // ---------------------------------------------------------------------- HLTmumutktkVtxProducer::HLTmumutktkVtxProducer(const edm::ParameterSet& iConfig) - : muCandTag_(iConfig.getParameter("MuCand")), + : transientTrackRecordToken_(esConsumes(edm::ESInputTag("", "TransientTrackBuilder"))), + muCandTag_(iConfig.getParameter("MuCand")), muCandToken_(consumes(muCandTag_)), trkCandTag_(iConfig.getParameter("TrackCand")), trkCandToken_(consumes(trkCandTag_)), previousCandTag_(iConfig.getParameter("PreviousCandTag")), previousCandToken_(consumes(previousCandTag_)), mfName_(iConfig.getParameter("SimpleMagneticField")), + idealMagneticFieldRecordToken_(esConsumes(edm::ESInputTag("", mfName_))), thirdTrackMass_(iConfig.getParameter("ThirdTrackMass")), fourthTrackMass_(iConfig.getParameter("FourthTrackMass")), maxEta_(iConfig.getParameter("MaxEta")), @@ -88,17 +85,15 @@ void HLTmumutktkVtxProducer::produce(edm::Event& iEvent, const edm::EventSetup& Handle mucands; iEvent.getByToken(muCandToken_, mucands); - //get the transient track builder: - edm::ESHandle theB; - iSetup.get().get("TransientTrackBuilder", theB); + // get the transient track builder + auto const& theB = iSetup.getHandle(transientTrackRecordToken_); - //get the beamspot position + // get the beamspot position edm::Handle recoBeamSpotHandle; iEvent.getByToken(beamSpotToken_, recoBeamSpotHandle); - //get the b field - ESHandle bFieldHandle; - iSetup.get().get(mfName_, bFieldHandle); + // get the b field + auto const& bFieldHandle = iSetup.getHandle(idealMagneticFieldRecordToken_); const MagneticField* magField = bFieldHandle.product(); TSCBLBuilderNoMaterial blsBuilder; diff --git a/HLTrigger/btau/plugins/HLTmumutktkVtxProducer.h b/HLTrigger/btau/plugins/HLTmumutktkVtxProducer.h index 930f5d1968cb5..f0fe3a1dee872 100644 --- a/HLTrigger/btau/plugins/HLTmumutktkVtxProducer.h +++ b/HLTrigger/btau/plugins/HLTmumutktkVtxProducer.h @@ -7,9 +7,6 @@ /**\class HLTmumutktkVtxProducer */ -// system include files -#include - #include "FWCore/Framework/interface/stream/EDProducer.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/Framework/interface/Event.h" @@ -20,7 +17,12 @@ #include "DataFormats/HLTReco/interface/TriggerRefsCollections.h" #include "DataFormats/VertexReco/interface/VertexFwd.h" #include "DataFormats/BeamSpot/interface/BeamSpot.h" +#include "TrackingTools/Records/interface/TransientTrackRecord.h" +#include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" +#include "MagneticField/Engine/interface/MagneticField.h" #include +#include namespace edm { class ConfigurationDescriptions; @@ -48,6 +50,8 @@ class HLTmumutktkVtxProducer : public edm::stream::EDProducer<> { static FreeTrajectoryState initialFreeState(const reco::Track&, const MagneticField*); bool checkPreviousCand(const reco::TrackRef& trackref, const std::vector& ref2) const; + const edm::ESGetToken transientTrackRecordToken_; + const edm::InputTag muCandTag_; const edm::EDGetTokenT muCandToken_; const edm::InputTag trkCandTag_; @@ -56,6 +60,8 @@ class HLTmumutktkVtxProducer : public edm::stream::EDProducer<> { const edm::EDGetTokenT previousCandToken_; const std::string mfName_; + const edm::ESGetToken idealMagneticFieldRecordToken_; + const double thirdTrackMass_; const double fourthTrackMass_; const double maxEta_; diff --git a/HLTrigger/special/plugins/EcalMIPRecHitFilter.cc b/HLTrigger/special/plugins/EcalMIPRecHitFilter.cc index 3e2966bade2d3..87d37ed90b151 100644 --- a/HLTrigger/special/plugins/EcalMIPRecHitFilter.cc +++ b/HLTrigger/special/plugins/EcalMIPRecHitFilter.cc @@ -63,6 +63,11 @@ class EcalMIPRecHitFilter : public edm::EDFilter { bool filter(edm::Event&, edm::EventSetup const&) override; // ----------member data --------------------------- + const edm::ESGetToken caloTopologyRecordToken_; + const edm::ESGetToken ecalIntercalibConstantsRcdToken_; + const edm::ESGetToken ecalLaserDbRecordToken_; + const edm::ESGetToken ecalADCToGeVConstantRcdToken_; + const edm::EDGetTokenT EcalRecHitToken_; const double minAmp1_; const double minAmp2_; @@ -75,7 +80,11 @@ class EcalMIPRecHitFilter : public edm::EDFilter { // constructors and destructor // EcalMIPRecHitFilter::EcalMIPRecHitFilter(const edm::ParameterSet& iConfig) - : EcalRecHitToken_(consumes(iConfig.getParameter("EcalRecHitCollection"))), + : caloTopologyRecordToken_(esConsumes()), + ecalIntercalibConstantsRcdToken_(esConsumes()), + ecalLaserDbRecordToken_(esConsumes()), + ecalADCToGeVConstantRcdToken_(esConsumes()), + EcalRecHitToken_(consumes(iConfig.getParameter("EcalRecHitCollection"))), minAmp1_(iConfig.getUntrackedParameter("AmpMinSeed", 0.063)), minAmp2_(iConfig.getUntrackedParameter("AmpMin2", 0.045)), minSingleAmp_(iConfig.getUntrackedParameter("SingleAmpMin", 0.108)), @@ -109,23 +118,17 @@ bool EcalMIPRecHitFilter::filter(edm::Event& iEvent, edm::EventSetup const& iSet return false; } - edm::ESHandle caloTopo; - iSetup.get().get(caloTopo); + auto const& caloTopo = iSetup.getHandle(caloTopologyRecordToken_); // Intercalib constants - edm::ESHandle pIcal; - iSetup.get().get(pIcal); - const EcalIntercalibConstants* ical = pIcal.product(); - const EcalIntercalibConstantMap& icalMap = ical->getMap(); - - edm::ESHandle pLaser; - iSetup.get().get(pLaser); - - edm::ESHandle pAgc; - iSetup.get().get(pAgc); - const EcalADCToGeVConstant* agc = pAgc.product(); - //std::cout << "Global EB ADC->GeV scale: " << agc->getEBValue() << " GeV/ADC count" ; - float adcconst = agc->getEBValue(); + auto const& ical = iSetup.getData(ecalIntercalibConstantsRcdToken_); + const EcalIntercalibConstantMap& icalMap = ical.getMap(); + + auto const& pLaser = iSetup.getHandle(ecalLaserDbRecordToken_); + + auto const& agc = iSetup.getData(ecalADCToGeVConstantRcdToken_); + //std::cout << "Global EB ADC->GeV scale: " << agc.getEBValue() << " GeV/ADC count" ; + float adcconst = agc.getEBValue(); bool thereIsSignal = false; // loop on rechits diff --git a/HLTrigger/special/plugins/HLTCSCOverlapFilter.cc b/HLTrigger/special/plugins/HLTCSCOverlapFilter.cc index 5c8637cd9f935..bec19a6a5fb01 100644 --- a/HLTrigger/special/plugins/HLTCSCOverlapFilter.cc +++ b/HLTrigger/special/plugins/HLTCSCOverlapFilter.cc @@ -1,20 +1,19 @@ #include "HLTCSCOverlapFilter.h" -#include "DataFormats/Common/interface/Handle.h" #include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" - -#include "DataFormats/MuonDetId/interface/CSCDetId.h" -#include "Geometry/CSCGeometry/interface/CSCGeometry.h" -#include "Geometry/Records/interface/MuonGeometryRecord.h" #include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" - #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "CommonTools/UtilAlgos/interface/TFileService.h" +#include "DataFormats/Common/interface/Handle.h" +#include "DataFormats/MuonDetId/interface/CSCDetId.h" +#include "Geometry/CSCGeometry/interface/CSCGeometry.h" +#include "Geometry/Records/interface/MuonGeometryRecord.h" HLTCSCOverlapFilter::HLTCSCOverlapFilter(const edm::ParameterSet& iConfig) : HLTFilter(iConfig), + muonGeometryRecordToken_(esConsumes()), m_input(iConfig.getParameter("input")), m_minHits(iConfig.getParameter("minHits")), m_xWindow(iConfig.getParameter("xWindow")), @@ -101,7 +100,7 @@ bool HLTCSCOverlapFilter::hltFilter(edm::Event& iEvent, std::map >::const_iterator chamber_next = chamber_tohit.find(next_id); if (chamber_next != chamber_tohit.end() && chamber_next->second.size() >= m_minHits) { if (!got_cscGeometry) { - iSetup.get().get(cscGeometry); + cscGeometry = iSetup.getHandle(muonGeometryRecordToken_); got_cscGeometry = true; } diff --git a/HLTrigger/special/plugins/HLTCSCOverlapFilter.h b/HLTrigger/special/plugins/HLTCSCOverlapFilter.h index 05e4778f3bc0c..ddd46227c3bce 100644 --- a/HLTrigger/special/plugins/HLTCSCOverlapFilter.h +++ b/HLTrigger/special/plugins/HLTCSCOverlapFilter.h @@ -7,6 +7,9 @@ #include "HLTrigger/HLTcore/interface/HLTFilter.h" #include "FWCore/Utilities/interface/InputTag.h" #include "DataFormats/CSCRecHit/interface/CSCRecHit2DCollection.h" +#include "Geometry/CSCGeometry/interface/CSCGeometry.h" +#include "Geometry/Records/interface/MuonGeometryRecord.h" + #include "TH1F.h" namespace edm { @@ -23,6 +26,7 @@ class HLTCSCOverlapFilter : public HLTFilter { static void fillDescriptions(edm::ConfigurationDescriptions &descriptions); private: + edm::ESGetToken const muonGeometryRecordToken_; edm::InputTag m_input; edm::EDGetTokenT cscrechitsToken; unsigned int m_minHits; diff --git a/HLTrigger/special/plugins/HLTCSCRing2or3Filter.cc b/HLTrigger/special/plugins/HLTCSCRing2or3Filter.cc index 537a83662d54c..d594d8a0cbbc2 100644 --- a/HLTrigger/special/plugins/HLTCSCRing2or3Filter.cc +++ b/HLTrigger/special/plugins/HLTCSCRing2or3Filter.cc @@ -3,18 +3,14 @@ #include "DataFormats/Common/interface/Handle.h" #include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" - -#include "DataFormats/MuonDetId/interface/CSCDetId.h" -#include "Geometry/CSCGeometry/interface/CSCGeometry.h" -#include "Geometry/Records/interface/MuonGeometryRecord.h" #include "FWCore/ServiceRegistry/interface/Service.h" -#include "CommonTools/UtilAlgos/interface/TFileService.h" - #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "DataFormats/MuonDetId/interface/CSCDetId.h" HLTCSCRing2or3Filter::HLTCSCRing2or3Filter(const edm::ParameterSet& iConfig) : HLTFilter(iConfig), + muonGeometryRecordToken_(esConsumes()), m_input(iConfig.getParameter("input")), m_minHits(iConfig.getParameter("minHits")), m_xWindow(iConfig.getParameter("xWindow")), @@ -65,7 +61,7 @@ bool HLTCSCRing2or3Filter::hltFilter(edm::Event& iEvent, ++chamber_iter) { if (chamber_iter->second.size() >= m_minHits) { if (!got_cscGeometry) { - iSetup.get().get(cscGeometry); + cscGeometry = iSetup.getHandle(muonGeometryRecordToken_); got_cscGeometry = true; } diff --git a/HLTrigger/special/plugins/HLTCSCRing2or3Filter.h b/HLTrigger/special/plugins/HLTCSCRing2or3Filter.h index bfc7fefb3562f..9e091c36a480b 100644 --- a/HLTrigger/special/plugins/HLTCSCRing2or3Filter.h +++ b/HLTrigger/special/plugins/HLTCSCRing2or3Filter.h @@ -5,9 +5,10 @@ #include #include "HLTrigger/HLTcore/interface/HLTFilter.h" -#include "DataFormats/CSCRecHit/interface/CSCRecHit2DCollection.h" #include "FWCore/Utilities/interface/InputTag.h" -#include "TH1F.h" +#include "DataFormats/CSCRecHit/interface/CSCRecHit2DCollection.h" +#include "Geometry/CSCGeometry/interface/CSCGeometry.h" +#include "Geometry/Records/interface/MuonGeometryRecord.h" namespace edm { class ConfigurationDescriptions; @@ -23,6 +24,7 @@ class HLTCSCRing2or3Filter : public HLTFilter { static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); private: + edm::ESGetToken const muonGeometryRecordToken_; edm::EDGetTokenT cscrechitsToken; edm::InputTag m_input; unsigned int m_minHits; diff --git a/HLTrigger/special/plugins/HLTDTActivityFilter.cc b/HLTrigger/special/plugins/HLTDTActivityFilter.cc index 6c11559aa4c9b..66a0d279ee936 100644 --- a/HLTrigger/special/plugins/HLTDTActivityFilter.cc +++ b/HLTrigger/special/plugins/HLTDTActivityFilter.cc @@ -28,10 +28,7 @@ Description: Filter to select events with activity in the muon barrel system // Fwk header files #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" - #include "DataFormats/GeometryVector/interface/GlobalPoint.h" -#include "Geometry/Records/interface/MuonGeometryRecord.h" -#include "Geometry/DTGeometry/interface/DTGeometry.h" #include "DataFormats/GeometryVector/interface/Pi.h" // Typedefs @@ -40,7 +37,8 @@ typedef std::map > activityMap; // bitset map accordin // // constructors and destructor // -HLTDTActivityFilter::HLTDTActivityFilter(const edm::ParameterSet& iConfig) : HLTFilter(iConfig) { +HLTDTActivityFilter::HLTDTActivityFilter(const edm::ParameterSet& iConfig) + : HLTFilter(iConfig), muonGeometryRecordToken_(esConsumes()) { using namespace std; inputTag_[DCC] = iConfig.getParameter("inputDCC"); @@ -206,8 +204,7 @@ bool HLTDTActivityFilter::hltFilter(edm::Event& iEvent, } if (process_[RPC]) { - edm::ESHandle dtGeom; - iSetup.get().get(dtGeom); + auto const& dtGeom = iSetup.getHandle(muonGeometryRecordToken_); edm::Handle gmtrc; iEvent.getByToken(inputRPCToken_, gmtrc); diff --git a/HLTrigger/special/plugins/HLTDTActivityFilter.h b/HLTrigger/special/plugins/HLTDTActivityFilter.h index 2b9576a8afd98..cf68a0d669563 100644 --- a/HLTrigger/special/plugins/HLTDTActivityFilter.h +++ b/HLTrigger/special/plugins/HLTDTActivityFilter.h @@ -22,15 +22,15 @@ Description: Filter to select events with activity in the muon barrel system #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "HLTrigger/HLTcore/interface/HLTFilter.h" - #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTReadoutCollection.h" #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuRegionalCand.h" #include "DataFormats/L1DTTrackFinder/interface/L1MuDTChambPhContainer.h" #include "DataFormats/L1DTTrackFinder/interface/L1MuDTChambThContainer.h" #include "DataFormats/DTDigi/interface/DTLocalTriggerCollection.h" #include "DataFormats/DTDigi/interface/DTDigiCollection.h" +#include "Geometry/Records/interface/MuonGeometryRecord.h" +#include "Geometry/DTGeometry/interface/DTGeometry.h" // c++ header files #include @@ -65,6 +65,8 @@ class HLTDTActivityFilter : public HLTFilter { // ----------member data --------------------------- + edm::ESGetToken const muonGeometryRecordToken_; + edm::InputTag inputTag_[4]; bool process_[4]; std::bitset<15> activeSecs_; diff --git a/HLTrigger/special/plugins/HLTEcalPhiSymFilter.cc b/HLTrigger/special/plugins/HLTEcalPhiSymFilter.cc index 727f5424ce988..638533524c238 100644 --- a/HLTrigger/special/plugins/HLTEcalPhiSymFilter.cc +++ b/HLTrigger/special/plugins/HLTEcalPhiSymFilter.cc @@ -1,19 +1,17 @@ #include "HLTEcalPhiSymFilter.h" -#include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "CondFormats/EcalObjects/interface/EcalChannelStatus.h" -#include "CondFormats/DataRecord/interface/EcalChannelStatusRcd.h" #include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" #include "Calibration/Tools/interface/EcalRingCalibrationTools.h" +#include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h" -#include "Geometry/CaloGeometry/interface/CaloGeometry.h" -#include "Geometry/Records/interface/CaloGeometryRecord.h" HLTEcalPhiSymFilter::HLTEcalPhiSymFilter(const edm::ParameterSet& config) - : barrelDigisToken_(consumes(config.getParameter("barrelDigiCollection"))), + : ecalChannelStatusRcdToken_(esConsumes()), + caloGeometryRecordToken_(esConsumes()), + barrelDigisToken_(consumes(config.getParameter("barrelDigiCollection"))), endcapDigisToken_(consumes(config.getParameter("endcapDigiCollection"))), barrelUncalibHitsToken_( consumes(config.getParameter("barrelUncalibHitCollection"))), @@ -72,15 +70,14 @@ bool HLTEcalPhiSymFilter::filter(edm::StreamID, edm::Event& event, const edm::Ev using namespace edm; using namespace std; - //Get ChannelStatus from DB + // Get ChannelStatus from DB edm::ESHandle csHandle; if (!useRecoFlag_) - setup.get().get(csHandle); + csHandle = setup.getHandle(ecalChannelStatusRcdToken_); const EcalChannelStatus& channelStatus = *csHandle; - //Get iRing-geometry - edm::ESHandle geoHandle; - setup.get().get(geoHandle); + // Get iRing-geometry + auto const& geoHandle = setup.getHandle(caloGeometryRecordToken_); EcalRingCalibrationTools::setCaloGeometry(geoHandle.product()); EcalRingCalibrationTools CalibRing; diff --git a/HLTrigger/special/plugins/HLTEcalPhiSymFilter.h b/HLTrigger/special/plugins/HLTEcalPhiSymFilter.h index 5f53c0c305200..1afdefb1813f9 100644 --- a/HLTrigger/special/plugins/HLTEcalPhiSymFilter.h +++ b/HLTrigger/special/plugins/HLTEcalPhiSymFilter.h @@ -34,11 +34,14 @@ #include "FWCore/Framework/interface/global/EDFilter.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/Utilities/interface/InputTag.h" - +#include "CondFormats/EcalObjects/interface/EcalChannelStatus.h" +#include "CondFormats/DataRecord/interface/EcalChannelStatusRcd.h" #include "DataFormats/EcalDetId/interface/EBDetId.h" #include "DataFormats/EcalDetId/interface/EEDetId.h" #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h" #include "DataFormats/EcalDigi/interface/EcalDigiCollections.h" +#include "Geometry/CaloGeometry/interface/CaloGeometry.h" +#include "Geometry/Records/interface/CaloGeometryRecord.h" namespace edm { class ConfigurationDescriptions; @@ -57,6 +60,9 @@ class HLTEcalPhiSymFilter : public edm::global::EDFilter<> { static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); private: + edm::ESGetToken const ecalChannelStatusRcdToken_; + edm::ESGetToken const caloGeometryRecordToken_; + const edm::EDGetTokenT barrelDigisToken_; const edm::EDGetTokenT endcapDigisToken_; const edm::EDGetTokenT barrelUncalibHitsToken_; diff --git a/HLTrigger/special/plugins/HLTEcalResonanceFilter.cc b/HLTrigger/special/plugins/HLTEcalResonanceFilter.cc index ac99b2250517a..9f25b7a627de1 100644 --- a/HLTrigger/special/plugins/HLTEcalResonanceFilter.cc +++ b/HLTrigger/special/plugins/HLTEcalResonanceFilter.cc @@ -1,11 +1,15 @@ #include "HLTEcalResonanceFilter.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "TLorentzVector.h" using namespace std; using namespace edm; -HLTEcalResonanceFilter::HLTEcalResonanceFilter(const edm::ParameterSet &iConfig) { +HLTEcalResonanceFilter::HLTEcalResonanceFilter(const edm::ParameterSet &iConfig) + : caloTopologyRecordToken_(esConsumes()), + ecalChannelStatusRcdToken_(esConsumes()), + caloGeometryRecordToken_(esConsumes()) { barrelHits_ = iConfig.getParameter("barrelHits"); barrelClusters_ = iConfig.getParameter("barrelClusters"); barrelHitsToken_ = consumes(barrelHits_); @@ -202,13 +206,11 @@ bool HLTEcalResonanceFilter::filter(edm::Event &iEvent, const edm::EventSetup &i vector selectedEBDetIds; vector selectedEEDetIds; - edm::ESHandle pTopology; - iSetup.get().get(pTopology); + auto const &pTopology = iSetup.getHandle(caloTopologyRecordToken_); const CaloSubdetectorTopology *topology_eb = pTopology->getSubdetectorTopology(DetId::Ecal, EcalBarrel); const CaloSubdetectorTopology *topology_ee = pTopology->getSubdetectorTopology(DetId::Ecal, EcalEndcap); - edm::ESHandle geoHandle; - iSetup.get().get(geoHandle); + auto const &geoHandle = iSetup.getHandle(caloGeometryRecordToken_); const CaloSubdetectorGeometry *geometry_es = geoHandle->getSubdetectorGeometry(DetId::Ecal, EcalPreshower); std::unique_ptr topology_es; if (geometry_es) { @@ -220,7 +222,7 @@ bool HLTEcalResonanceFilter::filter(edm::Event &iEvent, const edm::EventSetup &i ///get status from DB edm::ESHandle csHandle; if (useDBStatus_) - iSetup.get().get(csHandle); + csHandle = iSetup.getHandle(ecalChannelStatusRcdToken_); const EcalChannelStatus &channelStatus = *csHandle; ///==============Start to process barrel part==================/// diff --git a/HLTrigger/special/plugins/HLTEcalResonanceFilter.h b/HLTrigger/special/plugins/HLTEcalResonanceFilter.h index f770021317a06..c200ba4bea755 100644 --- a/HLTrigger/special/plugins/HLTEcalResonanceFilter.h +++ b/HLTrigger/special/plugins/HLTEcalResonanceFilter.h @@ -11,6 +11,9 @@ Description: Producer for EcalRecHits to be used for pi0/eta ECAL calibration. // system include files #include +#include +#include +#include // user include files #include "FWCore/Framework/interface/Frameworkfwd.h" @@ -53,19 +56,10 @@ Description: Producer for EcalRecHits to be used for pi0/eta ECAL calibration. #include "Geometry/CaloTopology/interface/EcalPreshowerTopology.h" #include "DataFormats/EgammaReco/interface/PreshowerClusterFwd.h" -// -//Ecal status +// Ecal status #include "CondFormats/DataRecord/interface/EcalChannelStatusRcd.h" #include "CondFormats/EcalObjects/interface/EcalChannelStatus.h" -// class declaration -// -#include -#include - -#include "TLorentzVector.h" -#include - namespace edm { class ConfigurationDescriptions; } @@ -118,6 +112,10 @@ class HLTEcalResonanceFilter : public edm::EDFilter { static float DeltaPhi(float phi1, float phi2); static float GetDeltaR(float eta1, float eta2, float phi1, float phi2); + edm::ESGetToken const caloTopologyRecordToken_; + edm::ESGetToken const ecalChannelStatusRcdToken_; + edm::ESGetToken const caloGeometryRecordToken_; + // Input hits & clusters edm::InputTag barrelHits_; edm::InputTag endcapHits_; diff --git a/HLTrigger/special/plugins/HLTPPSJetComparisonFilter.cc b/HLTrigger/special/plugins/HLTPPSJetComparisonFilter.cc index 6d6a4bb9fce28..4d56ee86ab30d 100644 --- a/HLTrigger/special/plugins/HLTPPSJetComparisonFilter.cc +++ b/HLTrigger/special/plugins/HLTPPSJetComparisonFilter.cc @@ -37,6 +37,8 @@ class HLTPPSJetComparisonFilter : public edm::global::EDFilter<> { private: // ----------member data --------------------------- + edm::ESGetToken const lhcInfoRcdToken_; + edm::ParameterSet param_; edm::InputTag jetInputTag_; // Input tag identifying the jet track @@ -90,7 +92,8 @@ void HLTPPSJetComparisonFilter::fillDescriptions(edm::ConfigurationDescriptions HLTPPSJetComparisonFilter::~HLTPPSJetComparisonFilter() = default; HLTPPSJetComparisonFilter::HLTPPSJetComparisonFilter(const edm::ParameterSet &iConfig) - : jetInputTag_(iConfig.getParameter("jetInputTag")), + : lhcInfoRcdToken_(esConsumes()), + jetInputTag_(iConfig.getParameter("jetInputTag")), jet_token_(consumes(jetInputTag_)), forwardProtonInputTag_(iConfig.getParameter("forwardProtonInputTag")), @@ -110,8 +113,7 @@ HLTPPSJetComparisonFilter::HLTPPSJetComparisonFilter(const edm::ParameterSet &iC // member functions // bool HLTPPSJetComparisonFilter::filter(edm::StreamID, edm::Event &iEvent, const edm::EventSetup &iSetup) const { - edm::ESHandle hLHCInfo; - iSetup.get().get(lhcInfoLabel_, hLHCInfo); + auto const &hLHCInfo = iSetup.getHandle(lhcInfoRcdToken_); float sqs = 2. * hLHCInfo->energy(); // get sqrt(s) edm::Handle jets; diff --git a/HLTrigger/special/plugins/HLTPixelActivityFilter.cc b/HLTrigger/special/plugins/HLTPixelActivityFilter.cc index d43c20ff684f7..bfd7185a0b0e0 100644 --- a/HLTrigger/special/plugins/HLTPixelActivityFilter.cc +++ b/HLTrigger/special/plugins/HLTPixelActivityFilter.cc @@ -1,9 +1,14 @@ #include "HLTrigger/HLTcore/interface/HLTFilter.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" - +#include "DataFormats/Common/interface/Handle.h" +#include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" +#include "DataFormats/HLTReco/interface/TriggerTypeDefs.h" #include "DataFormats/SiPixelCluster/interface/SiPixelCluster.h" #include "DataFormats/TrackerCommon/interface/TrackerTopology.h" #include "Geometry/Records/interface/TrackerTopologyRcd.h" @@ -23,7 +28,7 @@ class HLTPixelActivityFilter : public HLTFilter { const edm::EventSetup&, trigger::TriggerFilterObjectWithRefs& filterproduct) const override; // int countLayersWithClusters(edm::Handle > & clusterCol,const TrackerTopology& tTopo); - + edm::ESGetToken const trackerTopologyRcdToken_; edm::InputTag inputTag_; // input tag identifying product containing pixel clusters unsigned int min_clusters_; // minimum number of clusters unsigned int max_clusters_; // maximum number of clusters @@ -38,18 +43,13 @@ class HLTPixelActivityFilter : public HLTFilter { edm::EDGetTokenT > inputToken_; }; -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" -#include "DataFormats/HLTReco/interface/TriggerTypeDefs.h" // // constructors and destructor // HLTPixelActivityFilter::HLTPixelActivityFilter(const edm::ParameterSet& config) : HLTFilter(config), + trackerTopologyRcdToken_(esConsumes()), inputTag_(config.getParameter("inputTag")), min_clusters_(config.getParameter("minClusters")), max_clusters_(config.getParameter("maxClusters")), @@ -121,8 +121,8 @@ bool HLTPixelActivityFilter::hltFilter(edm::Event& event, accept &= (clusterSize <= max_clusters_); if (min_layersBPix_ > 0 || max_layersBPix_ > 0 || min_layersFPix_ > 0 || max_layersFPix_ > 0 || min_clustersBPix_ > 0 || max_clustersBPix_ > 0 || min_clustersFPix_ > 0 || max_clustersFPix_ > 0) { - edm::ESHandle tTopoHandle; - iSetup.get().get(tTopoHandle); + auto const& tTopoHandle = iSetup.getHandle(trackerTopologyRcdToken_); + const TrackerTopology& tTopo = *tTopoHandle; unsigned int layerCountBPix = 0; unsigned int layerCountFPix = 0; diff --git a/HLTrigger/special/plugins/HLTPixelClusterShapeFilter.cc b/HLTrigger/special/plugins/HLTPixelClusterShapeFilter.cc index 64275d8953319..7e8c62506319f 100644 --- a/HLTrigger/special/plugins/HLTPixelClusterShapeFilter.cc +++ b/HLTrigger/special/plugins/HLTPixelClusterShapeFilter.cc @@ -1,10 +1,22 @@ #include "HLTrigger/HLTcore/interface/HLTFilter.h" - #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" - +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "DataFormats/Common/interface/Handle.h" +#include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" +#include "DataFormats/HLTReco/interface/TriggerTypeDefs.h" +#include "DataFormats/GeometryVector/interface/LocalPoint.h" +#include "DataFormats/GeometryVector/interface/GlobalPoint.h" +#include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h" #include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHitCollection.h" +#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" +#include "Geometry/CommonDetUnit/interface/PixelGeomDetUnit.h" +#include "Geometry/CommonTopologies/interface/PixelTopology.h" +#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" +#include "Geometry/CommonDetUnit/interface/GeomDet.h" // // class declaration @@ -17,6 +29,7 @@ class HLTPixelClusterShapeFilter : public HLTFilter { static void fillDescriptions(edm::ConfigurationDescriptions &descriptions); private: + edm::ESGetToken const trackerDigiGeometryRecordToken_; edm::EDGetTokenT inputToken_; edm::InputTag inputTag_; // input tag identifying product containing pixel clusters double minZ_; // beginning z-vertex position @@ -39,29 +52,13 @@ class HLTPixelClusterShapeFilter : public HLTFilter { int getContainedHits(const std::vector &hits, double z0, double &chi) const; }; -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "DataFormats/Common/interface/Handle.h" -#include "DataFormats/HLTReco/interface/TriggerFilterObjectWithRefs.h" -#include "DataFormats/HLTReco/interface/TriggerTypeDefs.h" - -#include "FWCore/Framework/interface/ESHandle.h" -#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" -#include "Geometry/CommonDetUnit/interface/PixelGeomDetUnit.h" -#include "Geometry/CommonTopologies/interface/PixelTopology.h" -#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" -#include "Geometry/CommonDetUnit/interface/GeomDet.h" -#include "DataFormats/GeometryVector/interface/LocalPoint.h" -#include "DataFormats/GeometryVector/interface/GlobalPoint.h" -#include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h" - // // constructors and destructor // HLTPixelClusterShapeFilter::HLTPixelClusterShapeFilter(const edm::ParameterSet &config) : HLTFilter(config), + trackerDigiGeometryRecordToken_(esConsumes()), inputTag_(config.getParameter("inputTag")), minZ_(config.getParameter("minZ")), maxZ_(config.getParameter("maxZ")), @@ -114,8 +111,8 @@ bool HLTPixelClusterShapeFilter::hltFilter(edm::Event &event, // get tracker geometry if (hRecHits.isValid()) { - edm::ESHandle trackerHandle; - iSetup.get().get(trackerHandle); + auto const &trackerHandle = iSetup.getHandle(trackerDigiGeometryRecordToken_); + const TrackerGeometry *tgeo = trackerHandle.product(); const SiPixelRecHitCollection *hits = hRecHits.product(); diff --git a/HLTrigger/special/plugins/HLTRPCTrigNoSyncFilter.cc b/HLTrigger/special/plugins/HLTRPCTrigNoSyncFilter.cc index 4d35fea98930f..6c02cc0d6557d 100644 --- a/HLTrigger/special/plugins/HLTRPCTrigNoSyncFilter.cc +++ b/HLTrigger/special/plugins/HLTRPCTrigNoSyncFilter.cc @@ -45,7 +45,8 @@ bool bigmag(const RPC4DHit& Point1, const RPC4DHit& Point2) { return false; } -HLTRPCTrigNoSyncFilter::HLTRPCTrigNoSyncFilter(const edm::ParameterSet& iConfig) : HLTFilter(iConfig) { +HLTRPCTrigNoSyncFilter::HLTRPCTrigNoSyncFilter(const edm::ParameterSet& iConfig) + : HLTFilter(iConfig), muonGeometryRecordToken_(esConsumes()) { //now do what ever initialization is needed m_GMTInputTag = iConfig.getParameter("GMTInputTag"); rpcRecHitsLabel = iConfig.getParameter("rpcRecHits"); @@ -96,8 +97,7 @@ bool HLTRPCTrigNoSyncFilter::hltFilter(edm::Event& iEvent, RPCRecHitCollection::const_iterator recHit; - edm::ESHandle rpcGeo; - iSetup.get().get(rpcGeo); + auto const& rpcGeo = iSetup.getHandle(muonGeometryRecordToken_); int k = 0; diff --git a/HLTrigger/special/plugins/HLTRPCTrigNoSyncFilter.h b/HLTrigger/special/plugins/HLTRPCTrigNoSyncFilter.h index 5d897ab6ef282..2288ccb33626d 100644 --- a/HLTrigger/special/plugins/HLTRPCTrigNoSyncFilter.h +++ b/HLTrigger/special/plugins/HLTRPCTrigNoSyncFilter.h @@ -1,49 +1,35 @@ - #ifndef HLTRPCTrigNoSyncFilter_h #define HLTRPCTrigNoSyncFilter_h -// user include files - #include "HLTrigger/HLTcore/interface/HLTFilter.h" #include "FWCore/Utilities/interface/InputTag.h" - #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/MakerMacros.h" - #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" - #include "DataFormats/RPCRecHit/interface/RPCRecHitCollection.h" #include "DataFormats/MuonDetId/interface/RPCDetId.h" - #include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/ESHandle.h" - -#include "Geometry/RPCGeometry/interface/RPCGeometry.h" -#include -#include -#include -#include -#include "RecoMuon/TransientTrackingRecHit/interface/MuonTransientTrackingRecHit.h" - +#include "DataFormats/TrackingRecHit/interface/TrackingRecHit.h" #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTCand.h" #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTExtendedCand.h" - #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTReadoutCollection.h" - #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTCand.h" - #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetupFwd.h" #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetup.h" #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutRecord.h" #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerObjectMapRecord.h" #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerObjectMap.h" - #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTReadoutCollection.h" #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTCand.h" #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuGMTExtendedCand.h" #include "DataFormats/L1GlobalMuonTrigger/interface/L1MuRegionalCand.h" +#include "Geometry/RPCGeometry/interface/RPCGeometry.h" +#include "Geometry/RPCGeometry/interface/RPCRoll.h" +#include "Geometry/Records/interface/MuonGeometryRecord.h" +#include "Geometry/CommonDetUnit/interface/GeomDet.h" +#include "RecoMuon/TransientTrackingRecHit/interface/MuonTransientTrackingRecHit.h" // // class declaration @@ -61,6 +47,7 @@ class HLTRPCTrigNoSyncFilter : public HLTFilter { const edm::EventSetup&, trigger::TriggerFilterObjectWithRefs& filterproduct) const override; void endJob() override; + edm::ESGetToken const muonGeometryRecordToken_; edm::InputTag m_GMTInputTag; edm::InputTag rpcRecHitsLabel; edm::EDGetTokenT m_GMTInputToken; diff --git a/HLTrigger/special/plugins/HLTRechitsToDigis.cc b/HLTrigger/special/plugins/HLTRechitsToDigis.cc index e2c221fe75487..69673dd6ef082 100644 --- a/HLTrigger/special/plugins/HLTRechitsToDigis.cc +++ b/HLTrigger/special/plugins/HLTRechitsToDigis.cc @@ -63,6 +63,8 @@ class HLTRechitsToDigis : public edm::stream::EDProducer<> { edm::EDGetTokenT srFlagsEBInToken_; edm::EDGetTokenT srFlagsEEInToken_; + EcalReadoutTools::ESGetTokens const ecalReadoutToolsESGetTokens_; + // input tags edm::InputTag digisIn_; edm::InputTag recHits_; @@ -80,7 +82,8 @@ class HLTRechitsToDigis : public edm::stream::EDProducer<> { // // constructors and destructor // -HLTRechitsToDigis::HLTRechitsToDigis(const edm::ParameterSet& iConfig) { +HLTRechitsToDigis::HLTRechitsToDigis(const edm::ParameterSet& iConfig) + : ecalReadoutToolsESGetTokens_{iConfig, consumesCollector()} { //region to do rechit digi matching region_ = stringToRegion(iConfig.getParameter("region")); @@ -157,7 +160,7 @@ void HLTRechitsToDigis::produce(edm::Event& iEvent, edm::EventSetup const& setup // output collections std::unique_ptr outputEBSrFlagCollection(new EBSrFlagCollection); std::unique_ptr outputEESrFlagCollection(new EESrFlagCollection); - EcalReadoutTools ecalReadOutTool(iEvent, setup); + EcalReadoutTools ecalReadOutTool(iEvent, setup, ecalReadoutToolsESGetTokens_); // calibrated rechits Handle recHitsHandle; diff --git a/HLTrigger/special/plugins/HLTRegionalEcalResonanceFilter.cc b/HLTrigger/special/plugins/HLTRegionalEcalResonanceFilter.cc index 0c13cf4b1a393..72dc5b0e82eba 100644 --- a/HLTrigger/special/plugins/HLTRegionalEcalResonanceFilter.cc +++ b/HLTrigger/special/plugins/HLTRegionalEcalResonanceFilter.cc @@ -8,7 +8,10 @@ using namespace std; using namespace edm; -HLTRegionalEcalResonanceFilter::HLTRegionalEcalResonanceFilter(const edm::ParameterSet &iConfig) { +HLTRegionalEcalResonanceFilter::HLTRegionalEcalResonanceFilter(const edm::ParameterSet &iConfig) + : caloTopologyRecordToken_(esConsumes()), + ecalChannelStatusRcdToken_(esConsumes()), + caloGeometryRecordToken_(esConsumes()) { barrelHits_ = iConfig.getParameter("barrelHits"); barrelClusters_ = iConfig.getParameter("barrelClusters"); barrelHitsToken_ = consumes(barrelHits_); @@ -298,14 +301,13 @@ bool HLTRegionalEcalResonanceFilter::filter(edm::Event &iEvent, const edm::Event vector selectedEBDetIds; vector selectedEEDetIds; - edm::ESHandle pTopology; - iSetup.get().get(pTopology); + auto const &pTopology = iSetup.getHandle(caloTopologyRecordToken_); const CaloSubdetectorTopology *topology_eb = pTopology->getSubdetectorTopology(DetId::Ecal, EcalBarrel); const CaloSubdetectorTopology *topology_ee = pTopology->getSubdetectorTopology(DetId::Ecal, EcalEndcap); - edm::ESHandle geoHandle; - iSetup.get().get(geoHandle); + auto const &geoHandle = iSetup.getHandle(caloGeometryRecordToken_); const CaloSubdetectorGeometry *geometry_es = geoHandle->getSubdetectorGeometry(DetId::Ecal, EcalPreshower); + std::unique_ptr topology_es; if (geometry_es) { topology_es = std::make_unique(); @@ -316,7 +318,7 @@ bool HLTRegionalEcalResonanceFilter::filter(edm::Event &iEvent, const edm::Event ///get status from DB edm::ESHandle csHandle; if (useDBStatus_) - iSetup.get().get(csHandle); + csHandle = iSetup.getHandle(ecalChannelStatusRcdToken_); const EcalChannelStatus &channelStatus = *csHandle; ///==============Start to process barrel part==================/// diff --git a/HLTrigger/special/plugins/HLTRegionalEcalResonanceFilter.h b/HLTrigger/special/plugins/HLTRegionalEcalResonanceFilter.h index 16413212a407f..9491f6e462720 100644 --- a/HLTrigger/special/plugins/HLTRegionalEcalResonanceFilter.h +++ b/HLTrigger/special/plugins/HLTRegionalEcalResonanceFilter.h @@ -54,17 +54,12 @@ Description: Producer for EcalRecHits to be used for pi0/eta ECAL calibration. #include "Geometry/CaloTopology/interface/EcalPreshowerTopology.h" #include "DataFormats/EgammaReco/interface/PreshowerClusterFwd.h" -// -//Ecal status +// Ecal status #include "CondFormats/DataRecord/interface/EcalChannelStatusRcd.h" #include "CondFormats/EcalObjects/interface/EcalChannelStatus.h" -// class declaration -// #include #include - -#include "TLorentzVector.h" #include namespace edm { @@ -116,6 +111,10 @@ class HLTRegionalEcalResonanceFilter : public edm::stream::EDFilter<> { int diff_neta_s(int, int); int diff_nphi_s(int, int); + edm::ESGetToken const caloTopologyRecordToken_; + edm::ESGetToken const ecalChannelStatusRcdToken_; + edm::ESGetToken const caloGeometryRecordToken_; + // Input hits & clusters edm::InputTag barrelHits_; edm::InputTag endcapHits_; diff --git a/HLTriggerOffline/Btag/interface/HLTBTagPerformanceAnalyzer.h b/HLTriggerOffline/Btag/interface/HLTBTagPerformanceAnalyzer.h index c9847a31e1bb1..866ddf2d55c58 100644 --- a/HLTriggerOffline/Btag/interface/HLTBTagPerformanceAnalyzer.h +++ b/HLTriggerOffline/Btag/interface/HLTBTagPerformanceAnalyzer.h @@ -27,7 +27,7 @@ #include // for gen matching -#include "SimDataFormats/JetMatching/interface/JetFlavourMatching.h" +#include "DataFormats/JetMatching/interface/JetFlavourMatching.h" #include #include "FWCore/Utilities/interface/transform.h" diff --git a/HLTriggerOffline/Exotica/python/analyses/hltExoticaCaloHT_cff.py b/HLTriggerOffline/Exotica/python/analyses/hltExoticaCaloHT_cff.py index 5e5b236e48641..261e52a6f2f69 100644 --- a/HLTriggerOffline/Exotica/python/analyses/hltExoticaCaloHT_cff.py +++ b/HLTriggerOffline/Exotica/python/analyses/hltExoticaCaloHT_cff.py @@ -2,17 +2,17 @@ CaloHTPSet = cms.PSet( hltPathsToCheck = cms.vstring( - "HLT_HT900_v", # Run2 - "HLT_HT300_v", # Run2 +# "HLT_HT900_v", # Run2 +# "HLT_HT300_v", # Run2 "HLT_ECALHT800_v", # Run2 7e33 - "HLT_Photon90_CaloIdL_PFHT600_v" # 50ns backup menu - "HLT_HT650_v", - "HLT_HT410to430_v", # 2016 menu - "HLT_HT430to450_v", # 2016 menu - "HLT_HT450to470_v", # HT Parking - "HLT_HT470to500_v", # HT Parking - "HLT_HT500to550_v", # HT Parking - "HLT_HT550to650_v", # HT Parking +# "HLT_Photon90_CaloIdL_PFHT600_v" # 50ns backup menu +# "HLT_HT650_v", +# "HLT_HT410to430_v", # 2016 menu +# "HLT_HT430to450_v", # 2016 menu +# "HLT_HT450to470_v", # HT Parking +# "HLT_HT470to500_v", # HT Parking +# "HLT_HT500to550_v", # HT Parking +# "HLT_HT550to650_v", # HT Parking #"DST_HT250_CaloScouting_v", # scouting # moved to DSTJets category #"DST_CaloJet40_CaloScouting_v", # moved to DSTJets category #"DST_L1HTT125ORHTT150ORHTT175_CaloScouting_v" # moved to DSTJets category diff --git a/HLTriggerOffline/Exotica/python/analyses/hltExoticaDSTJets_cff.py b/HLTriggerOffline/Exotica/python/analyses/hltExoticaDSTJets_cff.py index 97c8af51b59a3..5972046c669d3 100644 --- a/HLTriggerOffline/Exotica/python/analyses/hltExoticaDSTJets_cff.py +++ b/HLTriggerOffline/Exotica/python/analyses/hltExoticaDSTJets_cff.py @@ -2,26 +2,26 @@ DSTJetsPSet = cms.PSet( hltPathsToCheck = cms.vstring( - "DST_CaloJet40_CaloScouting_PFScouting_v", - "DST_CaloJet40_BTagScouting_v", - "DST_L1HTT_CaloScouting_PFScouting_v", - "DST_L1HTT_BTagScouting_v", - "DST_HT250_CaloScouting_v", - "DST_HT410_PFScouting_v", - "DST_HT410_BTagScouting_v", - "DST_HT450_PFScouting_v", - "DST_HT450_BTagScouting_v", +# "DST_CaloJet40_CaloScouting_PFScouting_v", +# "DST_CaloJet40_BTagScouting_v", +# "DST_L1HTT_CaloScouting_PFScouting_v", +# "DST_L1HTT_BTagScouting_v", +# "DST_HT250_CaloScouting_v", +# "DST_HT410_PFScouting_v", +# "DST_HT410_BTagScouting_v", +# "DST_HT450_PFScouting_v", +# "DST_HT450_BTagScouting_v", # 2016 menu - "DST_HT250_CaloBTagScouting_v", - "DST_L1HTT_CaloBTagScouting_v", - "DST_CaloJet40_CaloBTagScouting_v", +# "DST_HT250_CaloBTagScouting_v", +# "DST_L1HTT_CaloBTagScouting_v", +# "DST_CaloJet40_CaloBTagScouting_v", # For backward compatibility "DST_HT250_CaloScouting_v", - "DST_CaloJet40_CaloScouting_v", - "DST_L1HTT125ORHTT150ORHTT175_CaloScouting_v", - "DST_HT450_PFReco_PFBTagCSVReco_PFScouting_v", - "DST_L1HTT125ORHTT150ORHTT175_PFReco_PFBTagCSVReco_PFScouting_v", - "DST_CaloJet40_PFReco_PFBTagCSVReco_PFScouting_v" +# "DST_CaloJet40_CaloScouting_v", +# "DST_L1HTT125ORHTT150ORHTT175_CaloScouting_v", +# "DST_HT450_PFReco_PFBTagCSVReco_PFScouting_v", +# "DST_L1HTT125ORHTT150ORHTT175_PFReco_PFBTagCSVReco_PFScouting_v", +# "DST_CaloJet40_PFReco_PFBTagCSVReco_PFScouting_v" ), recPFMHTLabel = cms.InputTag("recoExoticaValidationHT"), recPFJetLabel = cms.InputTag("ak4PFJets"), diff --git a/HLTriggerOffline/Exotica/python/analyses/hltExoticaDSTMuons_cff.py b/HLTriggerOffline/Exotica/python/analyses/hltExoticaDSTMuons_cff.py index ab603c8a6d083..f7e5742864c07 100644 --- a/HLTriggerOffline/Exotica/python/analyses/hltExoticaDSTMuons_cff.py +++ b/HLTriggerOffline/Exotica/python/analyses/hltExoticaDSTMuons_cff.py @@ -2,14 +2,14 @@ DSTMuonsPSet = cms.PSet( hltPathsToCheck = cms.vstring( - "DST_ZeroBias_CaloScouting_PFScouting_v", - "DST_ZeroBias_BTagScouting_v", - "DST_L1DoubleMu_CaloScouting_PFScouting_v", - "DST_L1DoubleMu_BTagScouting_v", - "DST_DoubleMu3_Mass10_CaloScouting_PFScouting_v", - "DST_DoubleMu3_Mass10_BTagScouting_v", - "HLT_DoubleMu3_Mass10_v", - "DST_DoubleMu3_noVtx_CaloScouting_v" +# "DST_ZeroBias_CaloScouting_PFScouting_v", +# "DST_ZeroBias_BTagScouting_v", +# "DST_L1DoubleMu_CaloScouting_PFScouting_v", +# "DST_L1DoubleMu_BTagScouting_v", +# "DST_DoubleMu3_Mass10_CaloScouting_PFScouting_v", +# "DST_DoubleMu3_Mass10_BTagScouting_v", +# "HLT_DoubleMu3_Mass10_v", +# "DST_DoubleMu3_noVtx_CaloScouting_v" ), recMuonLabel = cms.InputTag("muons"), # -- Analysis specific cuts diff --git a/HLTriggerOffline/Exotica/python/analyses/hltExoticaDiPhoton_cff.py b/HLTriggerOffline/Exotica/python/analyses/hltExoticaDiPhoton_cff.py index e747a78944140..d79aa0f04f4bb 100644 --- a/HLTriggerOffline/Exotica/python/analyses/hltExoticaDiPhoton_cff.py +++ b/HLTriggerOffline/Exotica/python/analyses/hltExoticaDiPhoton_cff.py @@ -3,12 +3,12 @@ DiPhotonPSet = cms.PSet( hltPathsToCheck = cms.vstring( "HLT_DoublePhoton85_v", # Run2 proposal - "HLT_Photon36_R9Id85_OR_CaloId24b40e_Iso50T80L_Photon22_AND_HE10_R9Id65_Eta2_Mass15_v", - "HLT_Photon26_R9Id85_OR_CaloId24b40e_Iso50T80L_Photon16_AND_HE10_R9Id65_Eta2_Mass60_v", - "HLT_Photon42_R9Id85_OR_CaloId24b40e_Iso50T80L_Photon25_AND_HE10_R9Id65_Eta2_Mass15_v", #50ns backup menu - "HLT_DoublePhoton60_v", - "HLT_DoublePhoton40_v", # 0T - "HLT_DoublePhoton50_v", # 0T +# "HLT_Photon36_R9Id85_OR_CaloId24b40e_Iso50T80L_Photon22_AND_HE10_R9Id65_Eta2_Mass15_v", +# "HLT_Photon26_R9Id85_OR_CaloId24b40e_Iso50T80L_Photon16_AND_HE10_R9Id65_Eta2_Mass60_v", +# "HLT_Photon42_R9Id85_OR_CaloId24b40e_Iso50T80L_Photon25_AND_HE10_R9Id65_Eta2_Mass15_v", #50ns backup menu +# "HLT_DoublePhoton60_v", +# "HLT_DoublePhoton40_v", # 0T +# "HLT_DoublePhoton50_v", # 0T "HLT_DoublePhoton70_v", "HLT_DoublePhoton33_CaloIdL" ), diff --git a/HLTriggerOffline/Exotica/python/analyses/hltExoticaEleMu_cff.py b/HLTriggerOffline/Exotica/python/analyses/hltExoticaEleMu_cff.py index cecb46221b53d..8d9a6ed3678d8 100644 --- a/HLTriggerOffline/Exotica/python/analyses/hltExoticaEleMu_cff.py +++ b/HLTriggerOffline/Exotica/python/analyses/hltExoticaEleMu_cff.py @@ -2,7 +2,7 @@ EleMuPSet = cms.PSet( hltPathsToCheck = cms.vstring( - "HLT_Mu30_Ele30_CaloIdL_GsfTrkIdVL_v" +# "HLT_Mu30_Ele30_CaloIdL_GsfTrkIdVL_v" ), recElecLabel = cms.InputTag("gedGsfElectrons"), recMuonLabel = cms.InputTag("muons"), diff --git a/HLTriggerOffline/Exotica/python/analyses/hltExoticaHTDisplacedJets_cff.py b/HLTriggerOffline/Exotica/python/analyses/hltExoticaHTDisplacedJets_cff.py index e718fc5148d33..8f9597b6ee6c3 100644 --- a/HLTriggerOffline/Exotica/python/analyses/hltExoticaHTDisplacedJets_cff.py +++ b/HLTriggerOffline/Exotica/python/analyses/hltExoticaHTDisplacedJets_cff.py @@ -2,43 +2,43 @@ HTDisplacedJetsPSet = cms.PSet( hltPathsToCheck = cms.vstring( - "HLT_HT200_v", - "HLT_HT275_v", - "HLT_HT325_v", +# "HLT_HT200_v", +# "HLT_HT275_v", +# "HLT_HT325_v", "HLT_HT425_v", - "HLT_HT575_v", +# "HLT_HT575_v", - "HLT_HT650_DisplacedDijet80_Inclusive_v", - "HLT_HT750_DisplacedDijet80_Inclusive_v", - "HLT_HT350_DisplacedDijet80_DisplacedTrack_v", - "HLT_HT350_DisplacedDijet80_Tight_DisplacedTrack_v", +# "HLT_HT650_DisplacedDijet80_Inclusive_v", +# "HLT_HT750_DisplacedDijet80_Inclusive_v", +# "HLT_HT350_DisplacedDijet80_DisplacedTrack_v", +# "HLT_HT350_DisplacedDijet80_Tight_DisplacedTrack_v", # 2016 menu - "HLT_HT550_DisplacedDijet80_Inclusive_v", - "HLT_HT350_DisplacedDijet40_Inclusive_v", - "HLT_HT200_DisplacedDijet40_DisplacedTrack_v", +# "HLT_HT550_DisplacedDijet80_Inclusive_v", +# "HLT_HT350_DisplacedDijet40_Inclusive_v", +# "HLT_HT200_DisplacedDijet40_DisplacedTrack_v", # 5e33, 7e33 menus - "HLT_HT500_DisplacedDijet40_Inclusive_v", - "HLT_HT550_DisplacedDijet40_Inclusive_v", - "HLT_HT350_DisplacedDijet40_DisplacedTrack_v", +# "HLT_HT500_DisplacedDijet40_Inclusive_v", +# "HLT_HT550_DisplacedDijet40_Inclusive_v", +# "HLT_HT350_DisplacedDijet40_DisplacedTrack_v", #"HLT_HT350_DisplacedDijet80_DisplacedTrack_v", - "HLT_VBF_DisplacedJet40_DisplacedTrack_v", - "HLT_VBF_DisplacedJet40_Hadronic_v", - "HLT_VBF_DisplacedJet40_TightID_DisplacedTrack_v", - "HLT_VBF_DisplacedJet40_TightID_Hadronic_v", +# "HLT_VBF_DisplacedJet40_DisplacedTrack_v", +# "HLT_VBF_DisplacedJet40_Hadronic_v", +# "HLT_VBF_DisplacedJet40_TightID_DisplacedTrack_v", +# "HLT_VBF_DisplacedJet40_TightID_Hadronic_v", # 1.4e34 menus - "HLT_VBF_DisplacedJet40_VTightID_Hadronic_v", - "HLT_VBF_DisplacedJet40_VVTightID_DisplacedTrack_v", - "HLT_VBF_DisplacedJet40_VVTightID_Hadronic_v", - "HLT_VBF_DisplacedJet40_VTightID_DisplacedTrack_v", +# "HLT_VBF_DisplacedJet40_VTightID_Hadronic_v", +# "HLT_VBF_DisplacedJet40_VVTightID_DisplacedTrack_v", +# "HLT_VBF_DisplacedJet40_VVTightID_Hadronic_v", +# "HLT_VBF_DisplacedJet40_VTightID_DisplacedTrack_v", # Loose Threshold paths. - "HLT_VBF_DisplacedJet40_DisplacedTrack_2TrackIP2DSig5_v", - "HLT_HT400_DisplacedDijet40_Inclusive_v", - "HLT_HT250_DisplacedDijet40_DisplacedTrack_v", - "HLT_VBF_DisplacedJet40_Hadronic_2PromptTrack_v", +# "HLT_VBF_DisplacedJet40_DisplacedTrack_2TrackIP2DSig5_v", +# "HLT_HT400_DisplacedDijet40_Inclusive_v", +# "HLT_HT250_DisplacedDijet40_DisplacedTrack_v", +# "HLT_VBF_DisplacedJet40_Hadronic_2PromptTrack_v", #2017 "HLT_HT430_DisplacedDijet40_DisplacedTrack_v", "HLT_HT430_DisplacedDijet60_DisplacedTrack_v", - "HLT_HT430_DisplacedDijet80_DisplacedTrack_v", +# "HLT_HT430_DisplacedDijet80_DisplacedTrack_v", "HLT_HT650_DisplacedDijet60_Inclusive_v" ), recPFMHTLabel = cms.InputTag("recoExoticaValidationHT"), diff --git a/HLTriggerOffline/Exotica/python/analyses/hltExoticaHighPtDielectron_cff.py b/HLTriggerOffline/Exotica/python/analyses/hltExoticaHighPtDielectron_cff.py index e4484a3e48ad5..df66f8613e8b2 100644 --- a/HLTriggerOffline/Exotica/python/analyses/hltExoticaHighPtDielectron_cff.py +++ b/HLTriggerOffline/Exotica/python/analyses/hltExoticaHighPtDielectron_cff.py @@ -2,11 +2,11 @@ HighPtDielectronPSet = cms.PSet( hltPathsToCheck = cms.vstring( - "HLT_DoubleEle25_CaloIdL_GsfTrkIdVL_v", # 0T only - "HLT_DoubleEle33_CaloIdL_GsfTrkIdVL_MW_v", # Run2 - "HLT_DoubleEle33_CaloIdL_GsfTrkIdVL_v", # Run1 & Run2 +# "HLT_DoubleEle25_CaloIdL_GsfTrkIdVL_v", # 0T only +# "HLT_DoubleEle33_CaloIdL_GsfTrkIdVL_MW_v", # Run2 +# "HLT_DoubleEle33_CaloIdL_GsfTrkIdVL_v", # Run1 & Run2 "HLT_DoubleEle33_CaloIdL_MW_v", # 2016 menu - "HLT_DoubleEle33_CaloIdL_v" # 2016 menu +# "HLT_DoubleEle33_CaloIdL_v" # 2016 menu ), recElecLabel = cms.InputTag("gedGsfElectrons"), # -- Analysis specific cuts diff --git a/HLTriggerOffline/Exotica/python/analyses/hltExoticaHighPtDimuon_cff.py b/HLTriggerOffline/Exotica/python/analyses/hltExoticaHighPtDimuon_cff.py index 5bcd49f66d458..7c9171b54d812 100644 --- a/HLTriggerOffline/Exotica/python/analyses/hltExoticaHighPtDimuon_cff.py +++ b/HLTriggerOffline/Exotica/python/analyses/hltExoticaHighPtDimuon_cff.py @@ -2,10 +2,10 @@ HighPtDimuonPSet = cms.PSet( hltPathsToCheck = cms.vstring( - "HLT_Mu30_TkMu11_v", # Run2 - "HLT_Mu40_TkMu11_v", # Run2, backup - "HLT_Mu27_TkMu8_v", # Run2, control - "HLT_Mu17_Mu8_v" # Run2 & Run1 +# "HLT_Mu30_TkMu11_v", # Run2 +# "HLT_Mu40_TkMu11_v", # Run2, backup +# "HLT_Mu27_TkMu8_v", # Run2, control +# "HLT_Mu17_Mu8_v" # Run2 & Run1 #"HLT_Mu17_TkMu8_v", # Run1 #"HLT_Mu22_TkMu8_v" # Run1 ), diff --git a/HLTriggerOffline/Exotica/python/analyses/hltExoticaHighPtElectron_cff.py b/HLTriggerOffline/Exotica/python/analyses/hltExoticaHighPtElectron_cff.py index 0e003e63482e7..9ee5ceeafdfad 100644 --- a/HLTriggerOffline/Exotica/python/analyses/hltExoticaHighPtElectron_cff.py +++ b/HLTriggerOffline/Exotica/python/analyses/hltExoticaHighPtElectron_cff.py @@ -4,7 +4,7 @@ hltPathsToCheck = cms.vstring( "HLT_Ele145_CaloIdVT_GsfTrkIdT_v", "HLT_Ele200_CaloIdVT_GsfTrkIdT_v", - "HLT_Ele105_CaloIdVT_GsfTrkIdT_v", # Run2 proposal +# "HLT_Ele105_CaloIdVT_GsfTrkIdT_v", # Run2 proposal "HLT_Ele115_CaloIdVT_GsfTrkIdT_v" # 50ns backup menu ), recElecLabel = cms.InputTag("gedGsfElectrons"), diff --git a/HLTriggerOffline/Exotica/python/analyses/hltExoticaHighPtPhoton_cff.py b/HLTriggerOffline/Exotica/python/analyses/hltExoticaHighPtPhoton_cff.py index 796602fce4ec2..1aa3693ccc58a 100644 --- a/HLTriggerOffline/Exotica/python/analyses/hltExoticaHighPtPhoton_cff.py +++ b/HLTriggerOffline/Exotica/python/analyses/hltExoticaHighPtPhoton_cff.py @@ -3,10 +3,10 @@ HighPtPhotonPSet = cms.PSet( hltPathsToCheck = cms.vstring( "HLT_Photon175_v", # Run2 proposal - "HLT_Photon165_HE10_v", # Run2 proposal - "HLT_Photon36_R9Id85_OR_CaloId24b40e_Iso50T80L_Photon31_AND_HE10_R9Id65_Mass10_v", # Run2 proposal - "HLT_Photon26_R9Id85_OR_CaloId24b40e_Iso50T80L_Photon16_AND_HE10_R9Id65_Mass60_v", # Run2 proposal - "HLT_Photon90_CaloIdL_PFHT500_v", #50ns backup menu +# "HLT_Photon165_HE10_v", # Run2 proposal +# "HLT_Photon36_R9Id85_OR_CaloId24b40e_Iso50T80L_Photon31_AND_HE10_R9Id65_Mass10_v", # Run2 proposal +# "HLT_Photon26_R9Id85_OR_CaloId24b40e_Iso50T80L_Photon16_AND_HE10_R9Id65_Mass60_v", # Run2 proposal +# "HLT_Photon90_CaloIdL_PFHT500_v", #50ns backup menu "HLT_Photon150_v", # 0T #"HLT_Photon135_v" # Run1 (frozenHLT) "HLT_Photon60_R9Id90_CaloIdL_IsoL_DisplacedIdL_PFHT350MinPFJet15_v", # 2017 diff --git a/HLTriggerOffline/Exotica/python/analyses/hltExoticaLowPtDielectron_cff.py b/HLTriggerOffline/Exotica/python/analyses/hltExoticaLowPtDielectron_cff.py index 6a65020be8c98..111965f533229 100644 --- a/HLTriggerOffline/Exotica/python/analyses/hltExoticaLowPtDielectron_cff.py +++ b/HLTriggerOffline/Exotica/python/analyses/hltExoticaLowPtDielectron_cff.py @@ -2,10 +2,10 @@ LowPtDielectronPSet = cms.PSet( hltPathsToCheck = cms.vstring( - "HLT_DoubleEle33_CaloIdL_GsfTrkIdVL_MW_v", # Run2 - "HLT_DoubleEle33_CaloIdL_GsfTrkIdVL_v", # Run1 & Run2 +# "HLT_DoubleEle33_CaloIdL_GsfTrkIdVL_MW_v", # Run2 +# "HLT_DoubleEle33_CaloIdL_GsfTrkIdVL_v", # Run1 & Run2 "HLT_DoubleEle33_CaloIdL_MW_v", # 2016 menu - "HLT_DoubleEle33_CaloIdL_v" # 2016 menu +# "HLT_DoubleEle33_CaloIdL_v" # 2016 menu ), recElecLabel = cms.InputTag("gedGsfElectrons"), # -- Analysis specific cuts diff --git a/HLTriggerOffline/Exotica/python/analyses/hltExoticaLowPtDimuon_cff.py b/HLTriggerOffline/Exotica/python/analyses/hltExoticaLowPtDimuon_cff.py index f3a686c1f57cc..c3296ab86fa88 100644 --- a/HLTriggerOffline/Exotica/python/analyses/hltExoticaLowPtDimuon_cff.py +++ b/HLTriggerOffline/Exotica/python/analyses/hltExoticaLowPtDimuon_cff.py @@ -2,9 +2,9 @@ LowPtDimuonPSet = cms.PSet( hltPathsToCheck = cms.vstring( - "HLT_Mu30_TkMu11_v", # Run2 - "HLT_Mu17_TkMu8_DZ_v",# Run2 - "HLT_Mu17_Mu8_DZ_v" # Run2 +# "HLT_Mu30_TkMu11_v", # Run2 +# "HLT_Mu17_TkMu8_DZ_v",# Run2 +# "HLT_Mu17_Mu8_DZ_v" # Run2 #"HLT_Mu17_Mu8_v", # Run1 #"HLT_Mu17_TkMu8_v", # Run1 #"HLT_Mu22_TkMu8_v" # Run1 diff --git a/HLTriggerOffline/Exotica/python/analyses/hltExoticaLowPtElectron_cff.py b/HLTriggerOffline/Exotica/python/analyses/hltExoticaLowPtElectron_cff.py index cd7a1382a7f51..cf0bfc420ad1c 100644 --- a/HLTriggerOffline/Exotica/python/analyses/hltExoticaLowPtElectron_cff.py +++ b/HLTriggerOffline/Exotica/python/analyses/hltExoticaLowPtElectron_cff.py @@ -2,7 +2,7 @@ LowPtElectronPSet = cms.PSet( hltPathsToCheck = cms.vstring( - "HLT_Ele27_WP85_Gsf_v" # Run2 proposal +# "HLT_Ele27_WP85_Gsf_v" # Run2 proposal #"HLT_Ele27_WP80_v" # Run1 ), recElecLabel = cms.InputTag("gedGsfElectrons"), diff --git a/HLTriggerOffline/Exotica/python/analyses/hltExoticaLowPtTrimuon_cff.py b/HLTriggerOffline/Exotica/python/analyses/hltExoticaLowPtTrimuon_cff.py index 3c697d7ee2950..c68e3c921a41f 100644 --- a/HLTriggerOffline/Exotica/python/analyses/hltExoticaLowPtTrimuon_cff.py +++ b/HLTriggerOffline/Exotica/python/analyses/hltExoticaLowPtTrimuon_cff.py @@ -2,12 +2,12 @@ LowPtTrimuonPSet = cms.PSet( hltPathsToCheck = cms.vstring( - "HLT_TrkMu15_DoubleTrkMu5NoFiltersNoVtx_v", #signal +# "HLT_TrkMu15_DoubleTrkMu5NoFiltersNoVtx_v", #signal "HLT_TrkMu16_DoubleTrkMu6NoFiltersNoVtx_v", "HLT_TrkMu17_DoubleTrkMu8NoFiltersNoVtx_v", #signal - "HLT_Dimuon0_Jpsi_Muon_v", # control - "HLT_Mu17_TkMu8_DZ", # backup - "HLT_Mu17_Mu8_DZ" # backup +# "HLT_Dimuon0_Jpsi_Muon_v", # control +# "HLT_Mu17_TkMu8_DZ", # backup +# "HLT_Mu17_Mu8_DZ" # backup ), recMuonLabel = cms.InputTag("muons"), # -- Analysis specific cuts diff --git a/HLTriggerOffline/Exotica/python/analyses/hltExoticaMonojet_cff.py b/HLTriggerOffline/Exotica/python/analyses/hltExoticaMonojet_cff.py index 7e4066725e81c..454804b12e29c 100644 --- a/HLTriggerOffline/Exotica/python/analyses/hltExoticaMonojet_cff.py +++ b/HLTriggerOffline/Exotica/python/analyses/hltExoticaMonojet_cff.py @@ -2,15 +2,15 @@ MonojetPSet = cms.PSet( hltPathsToCheck = cms.vstring( - "HLT_PFMETNoMu90_PFMHTNoMu90_IDTight_v", +# "HLT_PFMETNoMu90_PFMHTNoMu90_IDTight_v", "HLT_PFMETNoMu120_PFMHTNoMu120_IDTight_v", - "HLT_MET200_v", +# "HLT_MET200_v", "HLT_MonoCentralPFJet80_PFMETNoMu120_PFMHTNoMu120_IDTight_v", - "HLT_MonoCentralPFJet80_PFMETNoMu90_PFMHTNoMu90_IDTight_v", +# "HLT_MonoCentralPFJet80_PFMETNoMu90_PFMHTNoMu90_IDTight_v", #2016 menu - "HLT_PFMETNoMu100_PFMHTNoMu100_IDTight_v", +# "HLT_PFMETNoMu100_PFMHTNoMu100_IDTight_v", "HLT_PFMETNoMu110_PFMHTNoMu110_IDTight_v", - "HLT_MonoCentralPFJet80_PFMETNoMu100_PFMHTNoMu100_IDTight_v", +# "HLT_MonoCentralPFJet80_PFMETNoMu100_PFMHTNoMu100_IDTight_v", "HLT_MonoCentralPFJet80_PFMETNoMu110_PFMHTNoMu110_IDTight_v", #2017 menu "HLT_PFMET110_PFMHT110_IDTight_v", @@ -32,11 +32,11 @@ "HLT_PFHT800_PFMET75_PFMHT75_IDTight_v", "HLT_PFHT800_PFMET85_PFMHT85_IDTight_v", # For backward compatibility - "HLT_PFMETNoMu90_JetIdCleaned_PFMHTNoMu90_IDTight_v", - "HLT_PFMETNoMu120_JetIdCleaned_PFMHTNoMu120_IDTight_v", - "HLT_MET200_JetIdCleaned_v", - "HLT_MonoCentralPFJet80_PFMETNoMu120_JetIdCleaned_PFMHTNoMu120_IDTight_v", - "HLT_MonoCentralPFJet80_PFMETNoMu90_JetIdCleaned_PFMHTNoMu90_IDTight_v" +# "HLT_PFMETNoMu90_JetIdCleaned_PFMHTNoMu90_IDTight_v", +# "HLT_PFMETNoMu120_JetIdCleaned_PFMHTNoMu120_IDTight_v", +# "HLT_MET200_JetIdCleaned_v", +# "HLT_MonoCentralPFJet80_PFMETNoMu120_JetIdCleaned_PFMHTNoMu120_IDTight_v", +# "HLT_MonoCentralPFJet80_PFMETNoMu90_JetIdCleaned_PFMHTNoMu90_IDTight_v" ), recCaloJetLabel = cms.InputTag("ak4CaloJets"), diff --git a/HLTriggerOffline/Exotica/python/analyses/hltExoticaPFHT_cff.py b/HLTriggerOffline/Exotica/python/analyses/hltExoticaPFHT_cff.py index 35a241b82a3a3..b88b284ade012 100644 --- a/HLTriggerOffline/Exotica/python/analyses/hltExoticaPFHT_cff.py +++ b/HLTriggerOffline/Exotica/python/analyses/hltExoticaPFHT_cff.py @@ -2,20 +2,20 @@ PFHTPSet = cms.PSet( hltPathsToCheck = cms.vstring( - "HLT_PFHT650_WideJetMJJ900DEtaJJ1p5_v", - "HLT_PFHT650_WideJetMJJ950DEtaJJ1p5_v", - "HLT_PFHT750_4Jet_v", - "HLT_PFHT550_4JetPt50_v", - "HLT_PFHT650_4JetPt50_v", - "HLT_PFHT750_4JetPt50_v", - "HLT_PFHT650_4Jet_v", # Run2 - "HLT_PFHT550_4Jet_v", # Run2 - "HLT_PFHT800_v", - "HLT_PFHT650_v", - "HLT_PFHT800_4JetPt50_v", - "HLT_PFHT750_4JetPt70_v", - "HLT_PFHT850_4JetPt50_v", - "HLT_PFHT750_4JetPt80_v", +# "HLT_PFHT650_WideJetMJJ900DEtaJJ1p5_v", +# "HLT_PFHT650_WideJetMJJ950DEtaJJ1p5_v", +# "HLT_PFHT750_4Jet_v", +# "HLT_PFHT550_4JetPt50_v", +# "HLT_PFHT650_4JetPt50_v", +# "HLT_PFHT750_4JetPt50_v", +# "HLT_PFHT650_4Jet_v", # Run2 +# "HLT_PFHT550_4Jet_v", # Run2 +# "HLT_PFHT800_v", +# "HLT_PFHT650_v", +# "HLT_PFHT800_4JetPt50_v", +# "HLT_PFHT750_4JetPt70_v", +# "HLT_PFHT850_4JetPt50_v", +# "HLT_PFHT750_4JetPt80_v", #"DST_HT450_PFReco_PFBTagCSVReco_PFScouting_v", # Moved to DSTJets category #"DST_L1HTT125ORHTT150ORHTT175_PFReco_PFBTagCSVReco_PFScouting_v", # Moved to DSTJets category #"DST_CaloJet40_PFReco_PFBTagCSVReco_PFScouting_v" # Moved to DSTJets category diff --git a/HLTriggerOffline/Exotica/python/analyses/hltExoticaPhotonMET_cff.py b/HLTriggerOffline/Exotica/python/analyses/hltExoticaPhotonMET_cff.py index 92f9e3948dbe7..962db33d0bb94 100644 --- a/HLTriggerOffline/Exotica/python/analyses/hltExoticaPhotonMET_cff.py +++ b/HLTriggerOffline/Exotica/python/analyses/hltExoticaPhotonMET_cff.py @@ -2,9 +2,9 @@ PhotonMETPSet = cms.PSet( hltPathsToCheck = cms.vstring( - "HLT_Photon135_PFMET100_v", - "HLT_Photon135_PFMET100_JetIdCleaned_v", # For backward compatibility - "HLT_Photon125_v" # 0T +# "HLT_Photon135_PFMET100_v", +# "HLT_Photon135_PFMET100_JetIdCleaned_v", # For backward compatibility +# "HLT_Photon125_v" # 0T ), recPFMETLabel = cms.InputTag("pfMet"), recPhotonLabel = cms.InputTag("gedPhotons"), diff --git a/HLTriggerOffline/Exotica/python/analyses/hltExoticaPureMET_cff.py b/HLTriggerOffline/Exotica/python/analyses/hltExoticaPureMET_cff.py index 457db03dce9a7..b8f1ebf1ec6be 100644 --- a/HLTriggerOffline/Exotica/python/analyses/hltExoticaPureMET_cff.py +++ b/HLTriggerOffline/Exotica/python/analyses/hltExoticaPureMET_cff.py @@ -2,20 +2,19 @@ PureMETPSet = cms.PSet( hltPathsToCheck = cms.vstring( - "HLT_PFMET170_NotCleaned_v", - "HLT_PFMET170_v", - "HLT_PFMET170_HBHECleaned_v", - "HLT_PFMET170_v", - "HLT_PFMET170_NoiseCleaned_v", # Run2 - "HLT_MET200_v", - "HLT_MET100_v", # 0T - "HLT_MET150_v", # 0T +# "HLT_PFMET170_NotCleaned_v", +# "HLT_PFMET170_v", +# "HLT_PFMET170_HBHECleaned_v", +# "HLT_PFMET170_NoiseCleaned_v", # Run2 +# "HLT_MET200_v", +# "HLT_MET100_v", # 0T +# "HLT_MET150_v", # 0T # For backward compatibility - "HLT_PFMET170_JetIdCleaned_v", - "HLT_MET200_JetIdCleaned_v", - "HLT_MET100_JetIdCleaned_v", # 0T - "HLT_MET150_JetIdCleaned_v" # 0T +# "HLT_PFMET170_JetIdCleaned_v", +# "HLT_MET200_JetIdCleaned_v", +# "HLT_MET100_JetIdCleaned_v", # 0T +# "HLT_MET150_JetIdCleaned_v" # 0T ), recPFMETLabel = cms.InputTag("pfMet"), recCaloMETLabel = cms.InputTag("caloMet"), diff --git a/HLTriggerOffline/Exotica/python/analyses/hltExoticaSingleMuon_cff.py b/HLTriggerOffline/Exotica/python/analyses/hltExoticaSingleMuon_cff.py index fa837371cabcf..7288f43b2d50a 100644 --- a/HLTriggerOffline/Exotica/python/analyses/hltExoticaSingleMuon_cff.py +++ b/HLTriggerOffline/Exotica/python/analyses/hltExoticaSingleMuon_cff.py @@ -2,12 +2,12 @@ SingleMuonPSet = cms.PSet( hltPathsToCheck = cms.vstring( - "HLT_Mu45_eta2p1_v", # Run 2 +# "HLT_Mu45_eta2p1_v", # Run 2 "HLT_Mu50_v", # Run 2 - "HLT_TkMu50_v", # 2016 menu +# "HLT_TkMu50_v", # 2016 menu #50ns backup menu "HLT_Mu55_v", - "HLT_Mu50_eta2p1_v" +# "HLT_Mu50_eta2p1_v" ), recMuonLabel = cms.InputTag("muons"), # -- Analysis specific cuts diff --git a/HLTriggerOffline/Exotica/python/analyses/hltExoticaTracklessJets_cff.py b/HLTriggerOffline/Exotica/python/analyses/hltExoticaTracklessJets_cff.py index e06289b16b47c..396c168b4e6ca 100644 --- a/HLTriggerOffline/Exotica/python/analyses/hltExoticaTracklessJets_cff.py +++ b/HLTriggerOffline/Exotica/python/analyses/hltExoticaTracklessJets_cff.py @@ -2,12 +2,12 @@ TracklessJetsPSet = cms.PSet( hltPathsToCheck = cms.vstring( - "HLT_SingleCentralPFJet170_CFMax0p1_v", - "HLT_DiCentralPFJet170_CFMax0p1_v", - "HLT_DiCentralPFJet220_CFMax0p3_v", - "HLT_DiCentralPFJet330_CFMax0p5_v", - "HLT_DiCentralPFJet170_v", - "HLT_DiCentralPFJet430_v" +# "HLT_SingleCentralPFJet170_CFMax0p1_v", +# "HLT_DiCentralPFJet170_CFMax0p1_v", +# "HLT_DiCentralPFJet220_CFMax0p3_v", +# "HLT_DiCentralPFJet330_CFMax0p5_v", +# "HLT_DiCentralPFJet170_v", +# "HLT_DiCentralPFJet430_v" ), recPFJetLabel = cms.InputTag("ak4PFJets"), recCaloJetLabel = cms.InputTag("ak4CaloJets"), diff --git a/HLTriggerOffline/Exotica/python/hltExoticaPostProcessors_cff.py b/HLTriggerOffline/Exotica/python/hltExoticaPostProcessors_cff.py index 8882e48097254..9eb48dc7d03ab 100644 --- a/HLTriggerOffline/Exotica/python/hltExoticaPostProcessors_cff.py +++ b/HLTriggerOffline/Exotica/python/hltExoticaPostProcessors_cff.py @@ -141,6 +141,7 @@ def make_exo_postprocessor(analysis_name, plot_types=["TurnOn1", "TurnOn2", "Tur hltExoticaPostMonojetBackup + hltExoticaPostPureMET + hltExoticaPostMETplusTrack + + hltExoticaPostSingleMuon + hltExoticaEleMu + hltExoticaPhotonMET + hltExoticaHTDisplacedJets + diff --git a/HeterogeneousCore/CUDAUtilities/interface/FlexiStorage.h b/HeterogeneousCore/CUDAUtilities/interface/FlexiStorage.h new file mode 100644 index 0000000000000..f794fb53afe4d --- /dev/null +++ b/HeterogeneousCore/CUDAUtilities/interface/FlexiStorage.h @@ -0,0 +1,49 @@ +#ifndef HeterogeneousCore_CUDAUtilities_interface_FlexiStorage_h +#define HeterogeneousCore_CUDAUtilities_interface_FlexiStorage_h + +#include + +namespace cms { + namespace cuda { + + template + class FlexiStorage { + public: + constexpr int capacity() const { return S; } + + constexpr I& operator[](int i) { return m_v[i]; } + constexpr const I& operator[](int i) const { return m_v[i]; } + + constexpr I* data() { return m_v; } + constexpr I const* data() const { return m_v; } + + private: + I m_v[S]; + }; + + template + class FlexiStorage { + public: + constexpr void init(I* v, int s) { + m_v = v; + m_capacity = s; + } + + constexpr int capacity() const { return m_capacity; } + + constexpr I& operator[](int i) { return m_v[i]; } + constexpr const I& operator[](int i) const { return m_v[i]; } + + constexpr I* data() { return m_v; } + constexpr I const* data() const { return m_v; } + + private: + I* m_v; + int m_capacity; + }; + + } // namespace cuda + +} // namespace cms + +#endif diff --git a/HeterogeneousCore/CUDAUtilities/interface/HistoContainer.h b/HeterogeneousCore/CUDAUtilities/interface/HistoContainer.h index bd80281f75333..7bf5db603bccd 100644 --- a/HeterogeneousCore/CUDAUtilities/interface/HistoContainer.h +++ b/HeterogeneousCore/CUDAUtilities/interface/HistoContainer.h @@ -1,19 +1,7 @@ #ifndef HeterogeneousCore_CUDAUtilities_interface_HistoContainer_h #define HeterogeneousCore_CUDAUtilities_interface_HistoContainer_h -#include -#ifndef __CUDA_ARCH__ -#include -#endif // __CUDA_ARCH__ -#include -#include -#include - -#include "HeterogeneousCore/CUDAUtilities/interface/AtomicPairCounter.h" -#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" -#include "HeterogeneousCore/CUDAUtilities/interface/cuda_assert.h" -#include "HeterogeneousCore/CUDAUtilities/interface/cudastdAlgorithm.h" -#include "HeterogeneousCore/CUDAUtilities/interface/prefixScan.h" +#include "HeterogeneousCore/CUDAUtilities/interface/OneToManyAssoc.h" namespace cms { namespace cuda { @@ -50,61 +38,27 @@ namespace cms { } } - template - inline __attribute__((always_inline)) void launchZero(Histo *__restrict__ h, - cudaStream_t stream -#ifndef __CUDACC__ - = cudaStreamDefault -#endif - ) { - uint32_t *poff = (uint32_t *)((char *)(h) + offsetof(Histo, off)); - int32_t size = offsetof(Histo, bins) - offsetof(Histo, off); - assert(size >= int(sizeof(uint32_t) * Histo::totbins())); -#ifdef __CUDACC__ - cudaCheck(cudaMemsetAsync(poff, 0, size, stream)); -#else - ::memset(poff, 0, size); -#endif - } - - template - inline __attribute__((always_inline)) void launchFinalize(Histo *__restrict__ h, - cudaStream_t stream -#ifndef __CUDACC__ - = cudaStreamDefault -#endif - ) { -#ifdef __CUDACC__ - uint32_t *poff = (uint32_t *)((char *)(h) + offsetof(Histo, off)); - int32_t *ppsws = (int32_t *)((char *)(h) + offsetof(Histo, psws)); - auto nthreads = 1024; - auto nblocks = (Histo::totbins() + nthreads - 1) / nthreads; - multiBlockPrefixScan<<>>( - poff, poff, Histo::totbins(), ppsws); - cudaCheck(cudaGetLastError()); -#else - h->finalize(); -#endif - } - template inline __attribute__((always_inline)) void fillManyFromVector(Histo *__restrict__ h, uint32_t nh, T const *__restrict__ v, uint32_t const *__restrict__ offsets, - uint32_t totSize, + int32_t totSize, int nthreads, + typename Histo::index_type *mem, cudaStream_t stream #ifndef __CUDACC__ = cudaStreamDefault #endif ) { - launchZero(h, stream); + typename Histo::View view = {h, nullptr, mem, -1, totSize}; + launchZero(view, stream); #ifdef __CUDACC__ auto nblocks = (totSize + nthreads - 1) / nthreads; + assert(nblocks > 0); countFromVector<<>>(h, nh, v, offsets); cudaCheck(cudaGetLastError()); - launchFinalize(h, stream); + launchFinalize(view, stream); fillFromVector<<>>(h, nh, v, offsets); cudaCheck(cudaGetLastError()); #else @@ -114,11 +68,6 @@ namespace cms { #endif } - template - __global__ void finalizeBulk(AtomicPairCounter const *apc, Assoc *__restrict__ assoc) { - assoc->bulkFinalizeFill(*apc); - } - // iteratate over N bins left and right of the one containing "v" template __host__ __device__ __forceinline__ void forEachInBins(Hist const &hist, V value, int n, Func func) { @@ -142,20 +91,19 @@ namespace cms { } } - template - class HistoContainer { + class HistoContainer : public OneToManyAssoc { public: - using Counter = uint32_t; - - using CountersOnly = HistoContainer; - - using index_type = I; + using Base = OneToManyAssoc; + using View = typename Base::View; + using Counter = typename Base::Counter; + using index_type = typename Base::index_type; using UT = typename std::make_unsigned::type; static constexpr uint32_t ilog2(uint32_t v) { @@ -176,7 +124,8 @@ namespace cms { static constexpr uint32_t nhists() { return NHISTS; } static constexpr uint32_t totbins() { return NHISTS * NBINS + 1; } static constexpr uint32_t nbits() { return ilog2(NBINS - 1) + 1; } - static constexpr uint32_t capacity() { return SIZE; } + + // static_assert(int32_t(totbins())==Base::ctNOnes()); static constexpr auto histOff(uint32_t nh) { return NBINS * nh; } @@ -186,91 +135,18 @@ namespace cms { return (t >> shift) & mask; } - __host__ __device__ void zero() { - for (auto &i : off) - i = 0; - } - - __host__ __device__ __forceinline__ void add(CountersOnly const &co) { - for (uint32_t i = 0; i < totbins(); ++i) { -#ifdef __CUDA_ARCH__ - atomicAdd(off + i, co.off[i]); -#else - auto &a = (std::atomic &)(off[i]); - a += co.off[i]; -#endif - } - } - - static __host__ __device__ __forceinline__ uint32_t atomicIncrement(Counter &x) { -#ifdef __CUDA_ARCH__ - return atomicAdd(&x, 1); -#else - auto &a = (std::atomic &)(x); - return a++; -#endif - } - - static __host__ __device__ __forceinline__ uint32_t atomicDecrement(Counter &x) { -#ifdef __CUDA_ARCH__ - return atomicSub(&x, 1); -#else - auto &a = (std::atomic &)(x); - return a--; -#endif - } - - __host__ __device__ __forceinline__ void countDirect(T b) { - assert(b < nbins()); - atomicIncrement(off[b]); - } - - __host__ __device__ __forceinline__ void fillDirect(T b, index_type j) { - assert(b < nbins()); - auto w = atomicDecrement(off[b]); - assert(w > 0); - bins[w - 1] = j; - } - - __host__ __device__ __forceinline__ int32_t bulkFill(AtomicPairCounter &apc, index_type const *v, uint32_t n) { - auto c = apc.add(n); - if (c.m >= nbins()) - return -int32_t(c.m); - off[c.m] = c.n; - for (uint32_t j = 0; j < n; ++j) - bins[c.n + j] = v[j]; - return c.m; - } - - __host__ __device__ __forceinline__ void bulkFinalize(AtomicPairCounter const &apc) { - off[apc.get().m] = apc.get().n; - } - - __host__ __device__ __forceinline__ void bulkFinalizeFill(AtomicPairCounter const &apc) { - auto m = apc.get().m; - auto n = apc.get().n; - if (m >= nbins()) { // overflow! - off[nbins()] = uint32_t(off[nbins() - 1]); - return; - } - auto first = m + blockDim.x * blockIdx.x + threadIdx.x; - for (auto i = first; i < totbins(); i += gridDim.x * blockDim.x) { - off[i] = n; - } - } - __host__ __device__ __forceinline__ void count(T t) { uint32_t b = bin(t); assert(b < nbins()); - atomicIncrement(off[b]); + Base::atomicIncrement(this->off[b]); } __host__ __device__ __forceinline__ void fill(T t, index_type j) { uint32_t b = bin(t); assert(b < nbins()); - auto w = atomicDecrement(off[b]); + auto w = Base::atomicDecrement(this->off[b]); assert(w > 0); - bins[w - 1] = j; + this->content[w - 1] = j; } __host__ __device__ __forceinline__ void count(T t, uint32_t nh) { @@ -278,7 +154,7 @@ namespace cms { assert(b < nbins()); b += histOff(nh); assert(b < totbins()); - atomicIncrement(off[b]); + Base::atomicIncrement(this->off[b]); } __host__ __device__ __forceinline__ void fill(T t, index_type j, uint32_t nh) { @@ -286,37 +162,12 @@ namespace cms { assert(b < nbins()); b += histOff(nh); assert(b < totbins()); - auto w = atomicDecrement(off[b]); + auto w = Base::atomicDecrement(this->off[b]); assert(w > 0); - bins[w - 1] = j; - } - - __host__ __device__ __forceinline__ void finalize(Counter *ws = nullptr) { - assert(off[totbins() - 1] == 0); - blockPrefixScan(off, totbins(), ws); - assert(off[totbins() - 1] == off[totbins() - 2]); + this->content[w - 1] = j; } - - constexpr auto size() const { return uint32_t(off[totbins() - 1]); } - constexpr auto size(uint32_t b) const { return off[b + 1] - off[b]; } - - constexpr index_type const *begin() const { return bins; } - constexpr index_type const *end() const { return begin() + size(); } - - constexpr index_type const *begin(uint32_t b) const { return bins + off[b]; } - constexpr index_type const *end(uint32_t b) const { return bins + off[b + 1]; } - - Counter off[totbins()]; - int32_t psws; // prefix-scan working space - index_type bins[capacity()]; }; - template - using OneToManyAssoc = HistoContainer; - } // namespace cuda } // namespace cms diff --git a/HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h b/HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h index 19c86e31f5b8d..142b0c354686f 100644 --- a/HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h +++ b/HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h @@ -5,6 +5,8 @@ #include #include +#include "FWCore/Utilities/interface/thread_safety_macros.h" + namespace cms { namespace cuda { @@ -28,7 +30,7 @@ namespace cms { using other = HostAllocator; }; - T* allocate(std::size_t n) const __attribute__((warn_unused_result)) __attribute__((malloc)) + CMS_THREAD_SAFE T* allocate(std::size_t n) const __attribute__((warn_unused_result)) __attribute__((malloc)) __attribute__((returns_nonnull)) { void* ptr = nullptr; cudaError_t status = cudaMallocHost(&ptr, n * sizeof(T), FLAGS); diff --git a/HeterogeneousCore/CUDAUtilities/interface/OneToManyAssoc.h b/HeterogeneousCore/CUDAUtilities/interface/OneToManyAssoc.h new file mode 100644 index 0000000000000..01f48bca94f4b --- /dev/null +++ b/HeterogeneousCore/CUDAUtilities/interface/OneToManyAssoc.h @@ -0,0 +1,282 @@ +#ifndef HeterogeneousCore_CUDAUtilities_interface_OneToManyAssoc_h +#define HeterogeneousCore_CUDAUtilities_interface_OneToManyAssoc_h + +#include +#ifndef __CUDA_ARCH__ +#include +#endif // __CUDA_ARCH__ +#include +#include +#include + +#include "HeterogeneousCore/CUDAUtilities/interface/AtomicPairCounter.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cuda_assert.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cudastdAlgorithm.h" +#include "HeterogeneousCore/CUDAUtilities/interface/prefixScan.h" +#include "HeterogeneousCore/CUDAUtilities/interface/FlexiStorage.h" + +namespace cms { + namespace cuda { + + template + struct OneToManyAssocView { + using Counter = typename Assoc::Counter; + using index_type = typename Assoc::index_type; + + Assoc *assoc = nullptr; + Counter *offStorage = nullptr; + index_type *contentStorage = nullptr; + int32_t offSize = -1; + int32_t contentSize = -1; + }; + + // this MUST BE DONE in a single block (or in two kernels!) + template + __global__ void zeroAndInit(OneToManyAssocView view) { + auto h = view.assoc; + assert(1 == gridDim.x); + assert(0 == blockIdx.x); + + int first = threadIdx.x; + + if (0 == first) { + h->psws = 0; + h->initStorage(view); + } + __syncthreads(); + for (int i = first, nt = h->totOnes(); i < nt; i += blockDim.x) { + h->off[i] = 0; + } + } + + template + inline __attribute__((always_inline)) void launchZero(Assoc *h, + cudaStream_t stream +#ifndef __CUDACC__ + = cudaStreamDefault +#endif + ) { + typename Assoc::View view = {h, nullptr, nullptr, -1, -1}; + launchZero(view, stream); + } + template + inline __attribute__((always_inline)) void launchZero(OneToManyAssocView view, + cudaStream_t stream +#ifndef __CUDACC__ + = cudaStreamDefault +#endif + ) { + + if constexpr (Assoc::ctCapacity() < 0) { + assert(view.contentStorage); + assert(view.contentSize > 0); + } + if constexpr (Assoc::ctNOnes() < 0) { + assert(view.offStorage); + assert(view.offSize > 0); + } +#ifdef __CUDACC__ + auto nthreads = 1024; + auto nblocks = 1; // MUST BE ONE as memory is initialize in thread 0 (alternative is two kernels); + zeroAndInit<<>>(view); + cudaCheck(cudaGetLastError()); +#else + auto h = view.assoc; + assert(h); + h->initStorage(view); + h->zero(); + h->psws = 0; +#endif + } + + template + inline __attribute__((always_inline)) void launchFinalize(Assoc *h, + cudaStream_t stream +#ifndef __CUDACC__ + = cudaStreamDefault +#endif + ) { + typename Assoc::View view = {h, nullptr, nullptr, -1, -1}; + launchFinalize(view, stream); + } + + template + inline __attribute__((always_inline)) void launchFinalize(OneToManyAssocView view, + cudaStream_t stream +#ifndef __CUDACC__ + = cudaStreamDefault +#endif + ) { + auto h = view.assoc; + assert(h); +#ifdef __CUDACC__ + using Counter = typename Assoc::Counter; + Counter *poff = (Counter *)((char *)(h) + offsetof(Assoc, off)); + auto nOnes = Assoc::ctNOnes(); + if constexpr (Assoc::ctNOnes() < 0) { + assert(view.offStorage); + assert(view.offSize > 0); + nOnes = view.offSize; + poff = view.offStorage; + } + assert(nOnes > 0); + int32_t *ppsws = (int32_t *)((char *)(h) + offsetof(Assoc, psws)); + auto nthreads = 1024; + auto nblocks = (nOnes + nthreads - 1) / nthreads; + multiBlockPrefixScan<<>>(poff, poff, nOnes, ppsws); + cudaCheck(cudaGetLastError()); +#else + h->finalize(); +#endif + } + + template + __global__ void finalizeBulk(AtomicPairCounter const *apc, Assoc *__restrict__ assoc) { + assoc->bulkFinalizeFill(*apc); + } + + template + class OneToManyAssoc { + public: + using View = OneToManyAssocView>; + using Counter = uint32_t; + + using CountersOnly = OneToManyAssoc; + + using index_type = I; + + static constexpr uint32_t ilog2(uint32_t v) { + constexpr uint32_t b[] = {0x2, 0xC, 0xF0, 0xFF00, 0xFFFF0000}; + constexpr uint32_t s[] = {1, 2, 4, 8, 16}; + + uint32_t r = 0; // result of log2(v) will go here + for (auto i = 4; i >= 0; i--) + if (v & b[i]) { + v >>= s[i]; + r |= s[i]; + } + return r; + } + + static constexpr int32_t ctNOnes() { return ONES; } + constexpr auto totOnes() const { return off.capacity(); } + constexpr auto nOnes() const { return totOnes() - 1; } + static constexpr int32_t ctCapacity() { return SIZE; } + constexpr auto capacity() const { return content.capacity(); } + + __host__ __device__ void initStorage(View view) { + assert(view.assoc == this); + if constexpr (ctCapacity() < 0) { + assert(view.contentStorage); + assert(view.contentSize > 0); + content.init(view.contentStorage, view.contentSize); + } + if constexpr (ctNOnes() < 0) { + assert(view.offStorage); + assert(view.offSize > 0); + off.init(view.offStorage, view.offSize); + } + } + + __host__ __device__ void zero() { + for (int32_t i = 0; i < totOnes(); ++i) { + off[i] = 0; + } + } + + __host__ __device__ __forceinline__ void add(CountersOnly const &co) { + for (int32_t i = 0; i < totOnes(); ++i) { +#ifdef __CUDA_ARCH__ + atomicAdd(off.data() + i, co.off[i]); +#else + auto &a = (std::atomic &)(off[i]); + a += co.off[i]; +#endif + } + } + + static __host__ __device__ __forceinline__ uint32_t atomicIncrement(Counter &x) { +#ifdef __CUDA_ARCH__ + return atomicAdd(&x, 1); +#else + auto &a = (std::atomic &)(x); + return a++; +#endif + } + + static __host__ __device__ __forceinline__ uint32_t atomicDecrement(Counter &x) { +#ifdef __CUDA_ARCH__ + return atomicSub(&x, 1); +#else + auto &a = (std::atomic &)(x); + return a--; +#endif + } + + __host__ __device__ __forceinline__ void count(int32_t b) { + assert(b < nOnes()); + atomicIncrement(off[b]); + } + + __host__ __device__ __forceinline__ void fill(int32_t b, index_type j) { + assert(b < nOnes()); + auto w = atomicDecrement(off[b]); + assert(w > 0); + content[w - 1] = j; + } + + __host__ __device__ __forceinline__ int32_t bulkFill(AtomicPairCounter &apc, index_type const *v, uint32_t n) { + auto c = apc.add(n); + if (int(c.m) >= nOnes()) + return -int32_t(c.m); + off[c.m] = c.n; + for (uint32_t j = 0; j < n; ++j) + content[c.n + j] = v[j]; + return c.m; + } + + __host__ __device__ __forceinline__ void bulkFinalize(AtomicPairCounter const &apc) { + off[apc.get().m] = apc.get().n; + } + + __host__ __device__ __forceinline__ void bulkFinalizeFill(AtomicPairCounter const &apc) { + int m = apc.get().m; + auto n = apc.get().n; + if (m >= nOnes()) { // overflow! + off[nOnes()] = uint32_t(off[nOnes() - 1]); + return; + } + auto first = m + blockDim.x * blockIdx.x + threadIdx.x; + for (int i = first; i < totOnes(); i += gridDim.x * blockDim.x) { + off[i] = n; + } + } + + __host__ __device__ __forceinline__ void finalize(Counter *ws = nullptr) { + assert(off[totOnes() - 1] == 0); + blockPrefixScan(off.data(), totOnes(), ws); + assert(off[totOnes() - 1] == off[totOnes() - 2]); + } + + constexpr auto size() const { return uint32_t(off[totOnes() - 1]); } + constexpr auto size(uint32_t b) const { return off[b + 1] - off[b]; } + + constexpr index_type const *begin() const { return content.data(); } + constexpr index_type const *end() const { return begin() + size(); } + + constexpr index_type const *begin(uint32_t b) const { return content.data() + off[b]; } + constexpr index_type const *end(uint32_t b) const { return content.data() + off[b + 1]; } + + FlexiStorage off; + int32_t psws; // prefix-scan working space + FlexiStorage content; + }; + + } // namespace cuda +} // namespace cms + +#endif // HeterogeneousCore_CUDAUtilities_interface_HistoContainer_h diff --git a/HeterogeneousCore/CUDAUtilities/test/BuildFile.xml b/HeterogeneousCore/CUDAUtilities/test/BuildFile.xml index c663d4f824a77..53d41efcf4236 100644 --- a/HeterogeneousCore/CUDAUtilities/test/BuildFile.xml +++ b/HeterogeneousCore/CUDAUtilities/test/BuildFile.xml @@ -40,6 +40,10 @@ + + + + @@ -48,6 +52,14 @@ + + + + + + + + @@ -76,6 +88,19 @@ + + + + + + + + + + + + + @@ -104,4 +129,4 @@ - \ No newline at end of file + diff --git a/HeterogeneousCore/CUDAUtilities/test/FlexiStorage_t.cpp b/HeterogeneousCore/CUDAUtilities/test/FlexiStorage_t.cpp new file mode 100644 index 0000000000000..d16c4e44cc97d --- /dev/null +++ b/HeterogeneousCore/CUDAUtilities/test/FlexiStorage_t.cpp @@ -0,0 +1,34 @@ +#include "HeterogeneousCore/CUDAUtilities/interface/FlexiStorage.h" + +#include + +using namespace cms::cuda; + +int main() { + FlexiStorage a; + + assert(a.capacity() == 1024); + + FlexiStorage v; + + v.init(a.data(), 20); + + assert(v.capacity() == 20); + + assert(v.data() == a.data()); + + a[4] = 42; + + assert(42 == a[4]); + assert(42 == v[4]); + + auto const& ac = a; + auto const& vc = v; + + assert(42 == ac[4]); + assert(42 == vc[4]); + + assert(ac.data() == vc.data()); + + return 0; +}; diff --git a/HeterogeneousCore/CUDAUtilities/test/HistoContainerRT_t.cu b/HeterogeneousCore/CUDAUtilities/test/HistoContainerRT_t.cu new file mode 100644 index 0000000000000..b49498990fcbe --- /dev/null +++ b/HeterogeneousCore/CUDAUtilities/test/HistoContainerRT_t.cu @@ -0,0 +1,165 @@ +#include +#include +#include +#include +#include + +#include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" +#include "HeterogeneousCore/CUDAUtilities/interface/HistoContainer.h" +#include "HeterogeneousCore/CUDAUtilities/interface/requireDevices.h" + +using namespace cms::cuda; + +template +void go() { + std::mt19937 eng; + std::uniform_int_distribution rgen(std::numeric_limits::min(), std::numeric_limits::max()); + + constexpr int N = 12000; + T v[N]; + auto v_d = make_device_unique(N, nullptr); + + cudaCheck(cudaMemcpy(v_d.get(), v, N * sizeof(T), cudaMemcpyHostToDevice)); + + constexpr uint32_t nParts = 10; + constexpr uint32_t partSize = N / nParts; + uint32_t offsets[nParts + 1]; + + using Hist = HistoContainer; + std::cout << "HistoContainer " << (int)(offsetof(Hist, off)) << ' ' << Hist::nbins() << ' ' << Hist::totbins() << ' ' + << Hist::ctCapacity() << ' ' << offsetof(Hist, content) - offsetof(Hist, off) << ' ' + << (std::numeric_limits::max() - std::numeric_limits::min()) / Hist::nbins() << std::endl; + + Hist h; + uint32_t mem[N]; + auto h_d = make_device_unique(1, nullptr); + auto h_s = make_device_unique(N, nullptr); + // auto h_s = make_device_unique(N, nullptr); + + auto off_d = make_device_unique(nParts + 1, nullptr); + + for (int it = 0; it < 5; ++it) { + offsets[0] = 0; + for (uint32_t j = 1; j < nParts + 1; ++j) { + offsets[j] = offsets[j - 1] + partSize - 3 * j; + assert(offsets[j] <= N); + } + + if (it == 1) { // special cases... + offsets[0] = 0; + offsets[1] = 0; + offsets[2] = 19; + offsets[3] = 32 + offsets[2]; + offsets[4] = 123 + offsets[3]; + offsets[5] = 256 + offsets[4]; + offsets[6] = 311 + offsets[5]; + offsets[7] = 2111 + offsets[6]; + offsets[8] = 256 * 11 + offsets[7]; + offsets[9] = 44 + offsets[8]; + offsets[10] = 3297 + offsets[9]; + assert(offsets[10] <= N); + } + + cudaCheck(cudaMemcpy(off_d.get(), offsets, 4 * (nParts + 1), cudaMemcpyHostToDevice)); + + for (long long j = 0; j < N; j++) + v[j] = rgen(eng); + + if (it == 2) { // big bin + for (long long j = 1000; j < 2000; j++) + v[j] = sizeof(T) == 1 ? 22 : 3456; + } + + cudaCheck(cudaMemcpy(v_d.get(), v, N * sizeof(T), cudaMemcpyHostToDevice)); + + fillManyFromVector(h_d.get(), nParts, v_d.get(), off_d.get(), offsets[10], 256, h_s.get(), 0); + cudaCheck(cudaMemcpy(&h, h_d.get(), sizeof(Hist), cudaMemcpyDeviceToHost)); + assert(h.capacity() == offsets[10]); + // get content + cudaCheck(cudaMemcpy(mem, h_s.get(), N * sizeof(uint32_t), cudaMemcpyDeviceToHost)); + typename Hist::View view = {&h, nullptr, mem, -1, N}; + // plug correct content + h.initStorage(view); + assert(0 == h.off[0]); + assert(offsets[10] == h.size()); + + auto verify = [&](uint32_t i, uint32_t k, uint32_t t1, uint32_t t2) { + assert(t1 < N); + assert(t2 < N); + if (T(v[t1] - v[t2]) <= 0) + std::cout << "for " << i << ':' << v[k] << " failed " << v[t1] << ' ' << v[t2] << std::endl; + }; + + auto incr = [](auto& k) { return k = (k + 1) % Hist::nbins(); }; + + // make sure it spans 3 bins... + auto window = T(1300); + + for (uint32_t j = 0; j < nParts; ++j) { + auto off = Hist::histOff(j); + for (uint32_t i = 0; i < Hist::nbins(); ++i) { + auto ii = i + off; + if (0 == h.size(ii)) + continue; + auto k = *h.begin(ii); + if (j % 2) + k = *(h.begin(ii) + (h.end(ii) - h.begin(ii)) / 2); + auto bk = h.bin(v[k]); + assert(bk == i); + assert(k < offsets[j + 1]); + auto kl = h.bin(v[k] - window); + auto kh = h.bin(v[k] + window); + assert(kl != i); + assert(kh != i); + // std::cout << kl << ' ' << kh << std::endl; + + auto me = v[k]; + auto tot = 0; + auto nm = 0; + bool l = true; + auto khh = kh; + incr(khh); + for (auto kk = kl; kk != khh; incr(kk)) { + if (kk != kl && kk != kh) + nm += h.size(kk + off); + for (auto p = h.begin(kk + off); p < h.end(kk + off); ++p) { + if (std::min(std::abs(T(v[*p] - me)), std::abs(T(me - v[*p]))) > window) { + } else { + ++tot; + } + } + if (kk == i) { + l = false; + continue; + } + if (l) + for (auto p = h.begin(kk + off); p < h.end(kk + off); ++p) + verify(i, k, k, (*p)); + else + for (auto p = h.begin(kk + off); p < h.end(kk + off); ++p) + verify(i, k, (*p), k); + } + if (!(tot >= nm)) { + std::cout << "too bad " << j << ' ' << i << ' ' << int(me) << '/' << (int)T(me - window) << '/' + << (int)T(me + window) << ": " << kl << '/' << kh << ' ' << khh << ' ' << tot << '/' << nm + << std::endl; + } + if (l) + std::cout << "what? " << j << ' ' << i << ' ' << int(me) << '/' << (int)T(me - window) << '/' + << (int)T(me + window) << ": " << kl << '/' << kh << ' ' << khh << ' ' << tot << '/' << nm + << std::endl; + assert(!l); + } + } + } +} + +int main() { + cms::cudatest::requireDevices(); + + go(); + go(); + + return 0; +} diff --git a/HeterogeneousCore/CUDAUtilities/test/HistoContainer_t.cpp b/HeterogeneousCore/CUDAUtilities/test/HistoContainer_t.cpp index 577e9bbb69b57..2109e5a0d5b38 100644 --- a/HeterogeneousCore/CUDAUtilities/test/HistoContainer_t.cpp +++ b/HeterogeneousCore/CUDAUtilities/test/HistoContainer_t.cpp @@ -25,51 +25,73 @@ void go() { constexpr int N = 12000; T v[N]; + using HistR = HistoContainer; using Hist = HistoContainer; using Hist4 = HistoContainer; + std::cout << "HistoContainerR " << HistR::nbits() << ' ' << HistR::nbins() << ' ' << HistR::totbins() << ' ' + << HistR::ctNOnes() << ' ' << HistR::ctCapacity() << ' ' << (rmax - rmin) / HistR::nbins() << std::endl; + std::cout << "bins " << int(Hist::bin(0)) << ' ' << int(Hist::bin(rmin)) << ' ' << int(Hist::bin(rmax)) << std::endl; + std::cout << "HistoContainer " << Hist::nbits() << ' ' << Hist::nbins() << ' ' << Hist::totbins() << ' ' - << Hist::capacity() << ' ' << (rmax - rmin) / Hist::nbins() << std::endl; + << Hist::ctCapacity() << ' ' << (rmax - rmin) / Hist::nbins() << std::endl; std::cout << "bins " << int(Hist::bin(0)) << ' ' << int(Hist::bin(rmin)) << ' ' << int(Hist::bin(rmax)) << std::endl; std::cout << "HistoContainer4 " << Hist4::nbits() << ' ' << Hist4::nbins() << ' ' << Hist4::totbins() << ' ' - << Hist4::capacity() << ' ' << (rmax - rmin) / Hist::nbins() << std::endl; + << Hist4::ctCapacity() << ' ' << (rmax - rmin) / Hist::nbins() << std::endl; for (auto nh = 0; nh < 4; ++nh) std::cout << "bins " << int(Hist4::bin(0)) + Hist4::histOff(nh) << ' ' << int(Hist::bin(rmin)) + Hist4::histOff(nh) << ' ' << int(Hist::bin(rmax)) + Hist4::histOff(nh) << std::endl; + uint32_t mem[N]; + HistR hr; + typename HistR::View view{&hr, nullptr, mem, -1, N}; + hr.initStorage(view); + std::cout << "HistoContainerR " << hr.capacity() << std::endl; + assert(hr.capacity() == N); Hist h; Hist4 h4; + assert(h.capacity() == N); + assert(h4.capacity() == N); + for (int it = 0; it < 5; ++it) { for (long long j = 0; j < N; j++) v[j] = rgen(eng); if (it == 2) for (long long j = N / 2; j < N / 2 + N / 4; j++) v[j] = 4; + hr.zero(); h.zero(); h4.zero(); + assert(hr.size() == 0); assert(h.size() == 0); assert(h4.size() == 0); for (long long j = 0; j < N; j++) { + hr.count(v[j]); h.count(v[j]); if (j < 2000) h4.count(v[j], 2); else h4.count(v[j], j % 4); } + assert(hr.size() == 0); assert(h.size() == 0); assert(h4.size() == 0); + hr.finalize(); h.finalize(); h4.finalize(); assert(h.size() == N); assert(h4.size() == N); for (long long j = 0; j < N; j++) { + hr.fill(v[j], j); h.fill(v[j], j); if (j < 2000) h4.fill(v[j], j, 2); else h4.fill(v[j], j, j % 4); } + assert(hr.off[0] == 0); assert(h.off[0] == 0); assert(h4.off[0] == 0); + assert(hr.size() == N); assert(h.size() == N); assert(h4.size() == N); @@ -80,6 +102,11 @@ void go() { std::cout << "for " << i << ':' << v[k] << " failed " << v[t1] << ' ' << v[t2] << std::endl; }; + for (uint32_t i = 0; i < Hist::nbins(); ++i) { + assert(h.size(i) == hr.size(i)); + assert(*h.begin(i) == *hr.begin(i)); + } + for (uint32_t i = 0; i < Hist::nbins(); ++i) { if (0 == h.size(i)) continue; diff --git a/HeterogeneousCore/CUDAUtilities/test/HistoContainer_t.cu b/HeterogeneousCore/CUDAUtilities/test/HistoContainer_t.cu index 69974aeef0267..75f9cc0e626f5 100644 --- a/HeterogeneousCore/CUDAUtilities/test/HistoContainer_t.cu +++ b/HeterogeneousCore/CUDAUtilities/test/HistoContainer_t.cu @@ -28,9 +28,11 @@ void go() { using Hist = HistoContainer; std::cout << "HistoContainer " << (int)(offsetof(Hist, off)) << ' ' << Hist::nbins() << ' ' << Hist::totbins() << ' ' - << Hist::capacity() << ' ' << offsetof(Hist, bins) - offsetof(Hist, off) << ' ' + << Hist::ctCapacity() << ' ' << offsetof(Hist, content) - offsetof(Hist, off) << ' ' << (std::numeric_limits::max() - std::numeric_limits::min()) / Hist::nbins() << std::endl; + assert(Hist::totbins() == Hist::ctNOnes()); + Hist h; auto h_d = make_device_unique(1, nullptr); @@ -55,6 +57,7 @@ void go() { offsets[8] = 256 * 11 + offsets[7]; offsets[9] = 44 + offsets[8]; offsets[10] = 3297 + offsets[9]; + assert(offsets[10] <= N); } cudaCheck(cudaMemcpy(off_d.get(), offsets, 4 * (nParts + 1), cudaMemcpyHostToDevice)); @@ -69,7 +72,7 @@ void go() { cudaCheck(cudaMemcpy(v_d.get(), v, N * sizeof(T), cudaMemcpyHostToDevice)); - fillManyFromVector(h_d.get(), nParts, v_d.get(), off_d.get(), offsets[10], 256, 0); + fillManyFromVector(h_d.get(), nParts, v_d.get(), off_d.get(), offsets[10], 256, nullptr, 0); cudaCheck(cudaMemcpy(&h, h_d.get(), sizeof(Hist), cudaMemcpyDeviceToHost)); assert(0 == h.off[0]); assert(offsets[10] == h.size()); diff --git a/HeterogeneousCore/CUDAUtilities/test/OneHistoContainer_t.cu b/HeterogeneousCore/CUDAUtilities/test/OneHistoContainer_t.cu index f08c768b43fa5..f2d74c8e7ce98 100644 --- a/HeterogeneousCore/CUDAUtilities/test/OneHistoContainer_t.cu +++ b/HeterogeneousCore/CUDAUtilities/test/OneHistoContainer_t.cu @@ -112,7 +112,7 @@ void go() { assert(v_d.get()); using Hist = HistoContainer; - std::cout << "HistoContainer " << Hist::nbits() << ' ' << Hist::nbins() << ' ' << Hist::capacity() << ' ' + std::cout << "HistoContainer " << Hist::nbits() << ' ' << Hist::nbins() << ' ' << Hist::ctCapacity() << ' ' << (rmax - rmin) / Hist::nbins() << std::endl; std::cout << "bins " << int(Hist::bin(0)) << ' ' << int(Hist::bin(rmin)) << ' ' << int(Hist::bin(rmax)) << std::endl; diff --git a/HeterogeneousCore/CUDAUtilities/test/OneToManyAssoc_t.h b/HeterogeneousCore/CUDAUtilities/test/OneToManyAssoc_t.h index 36ab026ce1eb6..8ba9158cb69b7 100644 --- a/HeterogeneousCore/CUDAUtilities/test/OneToManyAssoc_t.h +++ b/HeterogeneousCore/CUDAUtilities/test/OneToManyAssoc_t.h @@ -13,16 +13,23 @@ #include "HeterogeneousCore/CUDAUtilities/interface/currentDevice.h" #endif -#include "HeterogeneousCore/CUDAUtilities/interface/HistoContainer.h" +#include "HeterogeneousCore/CUDAUtilities/interface/OneToManyAssoc.h" using cms::cuda::AtomicPairCounter; constexpr uint32_t MaxElem = 64000; constexpr uint32_t MaxTk = 8000; constexpr uint32_t MaxAssocs = 4 * MaxTk; +#ifdef RUNTIME_SIZE +using Assoc = cms::cuda::OneToManyAssoc; +using SmallAssoc = cms::cuda::OneToManyAssoc; +using Multiplicity = cms::cuda::OneToManyAssoc; +#else using Assoc = cms::cuda::OneToManyAssoc; using SmallAssoc = cms::cuda::OneToManyAssoc; using Multiplicity = cms::cuda::OneToManyAssoc; +#endif + using TK = std::array; __global__ void countMultiLocal(TK const* __restrict__ tk, Multiplicity* __restrict__ assoc, int32_t n) { @@ -32,7 +39,7 @@ __global__ void countMultiLocal(TK const* __restrict__ tk, Multiplicity* __restr if (threadIdx.x == 0) local.zero(); __syncthreads(); - local.countDirect(2 + i % 4); + local.count(2 + i % 4); __syncthreads(); if (threadIdx.x == 0) assoc->add(local); @@ -42,12 +49,12 @@ __global__ void countMultiLocal(TK const* __restrict__ tk, Multiplicity* __restr __global__ void countMulti(TK const* __restrict__ tk, Multiplicity* __restrict__ assoc, int32_t n) { int first = blockDim.x * blockIdx.x + threadIdx.x; for (int i = first; i < n; i += gridDim.x * blockDim.x) - assoc->countDirect(2 + i % 4); + assoc->count(2 + i % 4); } __global__ void verifyMulti(Multiplicity* __restrict__ m1, Multiplicity* __restrict__ m2) { auto first = blockDim.x * blockIdx.x + threadIdx.x; - for (auto i = first; i < Multiplicity::totbins(); i += gridDim.x * blockDim.x) + for (int i = first; i < m1->totOnes(); i += gridDim.x * blockDim.x) assert(m1->off[i] == m2->off[i]); } @@ -60,7 +67,7 @@ __global__ void count(TK const* __restrict__ tk, Assoc* __restrict__ assoc, int3 if (k >= n) return; if (tk[k][j] < MaxElem) - assoc->countDirect(tk[k][j]); + assoc->count(tk[k][j]); } } @@ -73,11 +80,11 @@ __global__ void fill(TK const* __restrict__ tk, Assoc* __restrict__ assoc, int32 if (k >= n) return; if (tk[k][j] < MaxElem) - assoc->fillDirect(tk[k][j], k); + assoc->fill(tk[k][j], k); } } -__global__ void verify(Assoc* __restrict__ assoc) { assert(assoc->size() < Assoc::capacity()); } +__global__ void verify(Assoc* __restrict__ assoc) { assert(int(assoc->size()) < assoc->capacity()); } template __global__ void fillBulk(AtomicPairCounter* apc, TK const* __restrict__ tk, Assoc* __restrict__ assoc, int32_t n) { @@ -90,9 +97,55 @@ __global__ void fillBulk(AtomicPairCounter* apc, TK const* __restrict__ tk, Asso template __global__ void verifyBulk(Assoc const* __restrict__ assoc, AtomicPairCounter const* apc) { - if (apc->get().m >= Assoc::nbins()) - printf("Overflow %d %d\n", apc->get().m, Assoc::nbins()); - assert(assoc->size() < Assoc::capacity()); + if (int(apc->get().m) >= assoc->nOnes()) + printf("Overflow %d %d\n", apc->get().m, assoc->nOnes()); + assert(int(assoc->size()) < assoc->capacity()); +} + +template +__global__ void verifyFill(Assoc const* __restrict__ la, int n) { + printf("assoc size %d\n", la->size()); + int imax = 0; + long long ave = 0; + int z = 0; + for (int i = 0; i < n; ++i) { + auto x = la->size(i); + if (x == 0) { + z++; + continue; + } + ave += x; + imax = std::max(imax, int(x)); + } + assert(0 == la->size(n)); + printf("found with %d elements %f %d %d\n", n, double(ave) / n, imax, z); +} + +template +__global__ void verifyFinal(Assoc const* __restrict__ la, int N) { + printf("assoc size %d\n", la->size()); + + int imax = 0; + long long ave = 0; + for (int i = 0; i < N; ++i) { + auto x = la->size(i); + if (!(x == 4 || x == 3)) + printf("%d %d\n", i, x); + assert(x == 4 || x == 3); + ave += x; + imax = std::max(imax, int(x)); + } + assert(0 == la->size(N)); + printf("found with ave occupancy %f %d\n", double(ave) / N, imax); +} + +template +auto make_unique(std::size_t size) { +#ifdef __CUDACC__ + return cms::cuda::make_device_unique(size, 0); +#else + return std::make_unique(size); +#endif } int main() { @@ -118,9 +171,9 @@ int main() { assert(gridDim.z == 1); #endif - std::cout << "OneToManyAssoc " << sizeof(Assoc) << ' ' << Assoc::nbins() << ' ' << Assoc::capacity() << std::endl; - std::cout << "OneToManyAssoc (small) " << sizeof(SmallAssoc) << ' ' << SmallAssoc::nbins() << ' ' - << SmallAssoc::capacity() << std::endl; + std::cout << "OneToManyAssoc " << sizeof(Assoc) << ' ' << Assoc::ctNOnes() << ' ' << Assoc::ctCapacity() << std::endl; + std::cout << "OneToManyAssoc (small) " << sizeof(SmallAssoc) << ' ' << SmallAssoc::ctNOnes() << ' ' + << SmallAssoc::ctCapacity() << std::endl; std::mt19937 eng; @@ -164,19 +217,36 @@ int main() { } std::cout << "filled with " << n << " elements " << double(ave) / n << ' ' << imax << ' ' << nz << std::endl; + auto a_d = make_unique(1); + auto sa_d = make_unique(1); #ifdef __CUDACC__ auto v_d = cms::cuda::make_device_unique[]>(N, nullptr); assert(v_d.get()); - auto a_d = cms::cuda::make_device_unique(1, nullptr); - auto sa_d = cms::cuda::make_device_unique(1, nullptr); cudaCheck(cudaMemcpy(v_d.get(), tr.data(), N * sizeof(std::array), cudaMemcpyHostToDevice)); #else - auto a_d = std::make_unique(); - auto sa_d = std::make_unique(); auto v_d = tr.data(); #endif - launchZero(a_d.get(), 0); + Assoc::Counter* a_st = nullptr; + int a_n = MaxElem; + + Assoc::index_type* a_st2 = nullptr; + SmallAssoc::index_type* sa_st2 = nullptr; + int a_n2 = MaxAssocs; + +// storage +#ifdef RUNTIME_SIZE + auto a_st_d = make_unique(a_n); + auto a_st2_d = make_unique(a_n2); + auto sa_st2_d = make_unique(a_n2); + a_st = a_st_d.get(); + a_st2 = a_st2_d.get(); + sa_st2 = sa_st2_d.get(); +#endif + Assoc::View aView = {a_d.get(), a_st, a_st2, a_n, a_n2}; + launchZero(aView, 0); + SmallAssoc::View saView = {sa_d.get(), nullptr, sa_st2, -1, a_n2}; + launchZero(saView, 0); #ifdef __CUDACC__ auto nThreads = 256; @@ -184,41 +254,21 @@ int main() { count<<>>(v_d.get(), a_d.get(), N); - launchFinalize(a_d.get(), 0); + launchFinalize(aView, 0); verify<<<1, 1>>>(a_d.get()); fill<<>>(v_d.get(), a_d.get(), N); + verifyFill<<<1, 1>>>(a_d.get(), n); + #else count(v_d, a_d.get(), N); - launchFinalize(a_d.get()); + launchFinalize(aView); verify(a_d.get()); fill(v_d, a_d.get(), N); -#endif + verifyFill(a_d.get(), n); - Assoc la; - -#ifdef __CUDACC__ - cudaCheck(cudaMemcpy(&la, a_d.get(), sizeof(Assoc), cudaMemcpyDeviceToHost)); -#else - memcpy(&la, a_d.get(), sizeof(Assoc)); // not required, easier #endif - std::cout << la.size() << std::endl; - imax = 0; - ave = 0; - z = 0; - for (auto i = 0U; i < n; ++i) { - auto x = la.size(i); - if (x == 0) { - z++; - continue; - } - ave += x; - imax = std::max(imax, int(x)); - } - assert(0 == la.size(n)); - std::cout << "found with " << n << " elements " << double(ave) / n << ' ' << imax << ' ' << z << std::endl; - - // now the inverse map (actually this is the direct....) + // now the inverse map (actually this is the ....) AtomicPairCounter* dc_d; AtomicPairCounter dc(0); @@ -230,8 +280,8 @@ int main() { finalizeBulk<<>>(dc_d, a_d.get()); verifyBulk<<<1, 1>>>(a_d.get(), dc_d); - cudaCheck(cudaMemcpy(&la, a_d.get(), sizeof(Assoc), cudaMemcpyDeviceToHost)); cudaCheck(cudaMemcpy(&dc, dc_d, sizeof(AtomicPairCounter), cudaMemcpyDeviceToHost)); + verifyFinal<<<1, 1>>>(a_d.get(), N); cudaCheck(cudaMemset(dc_d, 0, sizeof(AtomicPairCounter))); fillBulk<<>>(dc_d, v_d.get(), sa_d.get(), N); @@ -243,7 +293,8 @@ int main() { fillBulk(dc_d, v_d, a_d.get(), N); finalizeBulk(dc_d, a_d.get()); verifyBulk(a_d.get(), dc_d); - memcpy(&la, a_d.get(), sizeof(Assoc)); + + verifyFinal(a_d.get(), N); AtomicPairCounter sdc(0); fillBulk(&sdc, v_d, sa_d.get(), N); @@ -254,40 +305,35 @@ int main() { std::cout << "final counter value " << dc.get().n << ' ' << dc.get().m << std::endl; - std::cout << la.size() << std::endl; - imax = 0; - ave = 0; - for (auto i = 0U; i < N; ++i) { - auto x = la.size(i); - if (!(x == 4 || x == 3)) - std::cout << i << ' ' << x << std::endl; - assert(x == 4 || x == 3); - ave += x; - imax = std::max(imax, int(x)); - } - assert(0 == la.size(N)); - std::cout << "found with ave occupancy " << double(ave) / N << ' ' << imax << std::endl; - // here verify use of block local counters -#ifdef __CUDACC__ - auto m1_d = cms::cuda::make_device_unique(1, nullptr); - auto m2_d = cms::cuda::make_device_unique(1, nullptr); -#else - auto m1_d = std::make_unique(); - auto m2_d = std::make_unique(); + auto m1_d = make_unique(1); + auto m2_d = make_unique(1); + + Multiplicity::index_type* m1_st = nullptr; + Multiplicity::index_type* m2_st = nullptr; + int m_n = 0; + +#ifdef RUNTIME_SIZE + m_n = MaxTk; + auto m1_st_d = make_unique(m_n); + auto m2_st_d = make_unique(m_n); + m1_st = m1_st_d.get(); + m2_st = m1_st_d.get(); #endif - launchZero(m1_d.get(), 0); - launchZero(m2_d.get(), 0); + Multiplicity::View view1 = {m1_d.get(), nullptr, m1_st, -1, m_n}; + Multiplicity::View view2 = {m2_d.get(), nullptr, m2_st, -1, m_n}; + launchZero(view1, 0); + launchZero(view2, 0); #ifdef __CUDACC__ nBlocks = (4 * N + nThreads - 1) / nThreads; countMulti<<>>(v_d.get(), m1_d.get(), N); countMultiLocal<<>>(v_d.get(), m2_d.get(), N); - verifyMulti<<<1, Multiplicity::totbins()>>>(m1_d.get(), m2_d.get()); + verifyMulti<<<1, Multiplicity::ctNOnes()>>>(m1_d.get(), m2_d.get()); - launchFinalize(m1_d.get(), 0); - launchFinalize(m2_d.get(), 0); - verifyMulti<<<1, Multiplicity::totbins()>>>(m1_d.get(), m2_d.get()); + launchFinalize(view1, 0); + launchFinalize(view2, 0); + verifyMulti<<<1, Multiplicity::ctNOnes()>>>(m1_d.get(), m2_d.get()); cudaCheck(cudaGetLastError()); cudaCheck(cudaDeviceSynchronize()); @@ -296,8 +342,8 @@ int main() { countMultiLocal(v_d, m2_d.get(), N); verifyMulti(m1_d.get(), m2_d.get()); - launchFinalize(m1_d.get()); - launchFinalize(m2_d.get()); + launchFinalize(view1, 0); + launchFinalize(view2, 0); verifyMulti(m1_d.get(), m2_d.get()); #endif return 0; diff --git a/HeterogeneousCore/SonicTriton/test/BuildFile.xml b/HeterogeneousCore/SonicTriton/test/BuildFile.xml index f3b5d01f6cfda..63ff99aeaa9ca 100644 --- a/HeterogeneousCore/SonicTriton/test/BuildFile.xml +++ b/HeterogeneousCore/SonicTriton/test/BuildFile.xml @@ -4,7 +4,6 @@ - diff --git a/IOMC/ParticleGuns/src/FlatRandomPtAndDxyGunProducer.cc b/IOMC/ParticleGuns/src/FlatRandomPtAndDxyGunProducer.cc index ea55ab190aa90..685185d8b5155 100644 --- a/IOMC/ParticleGuns/src/FlatRandomPtAndDxyGunProducer.cc +++ b/IOMC/ParticleGuns/src/FlatRandomPtAndDxyGunProducer.cc @@ -109,7 +109,9 @@ void FlatRandomPtAndDxyGunProducer::produce(Event& e, const EventSetup& es) { break; } - HepMC::GenVertex* Vtx1 = new HepMC::GenVertex(HepMC::FourVector(vx, vy, vz)); + float time = sqrt(vx * vx + vy * vy + vz * vz); + + HepMC::GenVertex* Vtx1 = new HepMC::GenVertex(HepMC::FourVector(vx, vy, vz, time)); int PartID = fPartIDs[ip]; const HepPDT::ParticleData* PData = fPDGTable->particle(HepPDT::ParticleID(abs(PartID))); @@ -124,7 +126,7 @@ void FlatRandomPtAndDxyGunProducer::produce(Event& e, const EventSetup& es) { fEvt->add_vertex(Vtx1); if (fAddAntiParticle) { - HepMC::GenVertex* Vtx2 = new HepMC::GenVertex(HepMC::FourVector(-vx, -vy, -vz)); + HepMC::GenVertex* Vtx2 = new HepMC::GenVertex(HepMC::FourVector(-vx, -vy, -vz, time)); HepMC::FourVector ap(-px, -py, -pz, energy); int APartID = -PartID; if (PartID == 22 || PartID == 23) { diff --git a/IOPool/Input/src/RepeatingCachedRootSource.cc b/IOPool/Input/src/RepeatingCachedRootSource.cc new file mode 100644 index 0000000000000..74bffb010cad1 --- /dev/null +++ b/IOPool/Input/src/RepeatingCachedRootSource.cc @@ -0,0 +1,362 @@ +// -*- C++ -*- +// +// Package: Subsystem/Package +// Class : RepeatingCachedRootSource +// +// Implementation: +// [Notes on implementation] +// +// Original Author: Chris Jones +// Created: Mon, 15 Mar 2021 19:02:31 GMT +// + +// system include files +#include + +// user include files +#include "DataFormats/Provenance/interface/ProductRegistry.h" +#include "DataFormats/Provenance/interface/ProcessHistoryRegistry.h" +#include "DataFormats/Provenance/interface/BranchIDListHelper.h" +#include "DataFormats/Provenance/interface/ProcessConfiguration.h" +#include "DataFormats/Provenance/interface/ThinnedAssociationsHelper.h" +#include "DataFormats/Common/interface/WrapperBase.h" + +#include "IOPool/Common/interface/RootServiceChecker.h" + +#include "FWCore/Framework/interface/InputSource.h" +#include "FWCore/Framework/interface/ProductSelectorRules.h" +#include "FWCore/Framework/interface/DelayedReader.h" +#include "FWCore/Framework/interface/InputSourceDescription.h" +#include "FWCore/Framework/interface/EventPrincipal.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/Catalog/interface/InputFileCatalog.h" +#include "FWCore/Utilities/interface/propagate_const.h" +#include "FWCore/Utilities/interface/Exception.h" +#include "FWCore/Sources/interface/EventSkipperByID.h" + +#include "FWCore/Framework/interface/InputSourceMacros.h" + +#include "RunHelper.h" +#include "RootFile.h" +#include "InputFile.h" +#include "DuplicateChecker.h" + +namespace edm { + class RunHelperBase; + class RCDelayedReader; + + class RepeatingCachedRootSource : public InputSource { + public: + RepeatingCachedRootSource(ParameterSet const& pset, InputSourceDescription const& desc); + + static void fillDescriptions(ConfigurationDescriptions& descriptions); + + std::shared_ptr getProduct(unsigned int iStreamIndex, + BranchID const& k, + EDProductGetter const* ep) const; + + class RCDelayedReader : public edm::DelayedReader { + public: + std::shared_ptr getProduct_(edm::BranchID const& k, edm::EDProductGetter const* ep) final { + return m_source->getProduct(m_streamIndex, k, ep); + } + void mergeReaders_(edm::DelayedReader*) final { assert(false); } + void reset_() final {} + + unsigned int m_streamIndex; + edm::RepeatingCachedRootSource const* m_source; + + signalslot::Signal const* preEventReadFromSourceSignal() + const final { + return nullptr; + } + signalslot::Signal const* postEventReadFromSourceSignal() + const final { + return nullptr; + } + }; + + protected: + ItemType getNextItemType() override; + void readLuminosityBlock_(LuminosityBlockPrincipal& lumiPrincipal) override; + std::shared_ptr readLuminosityBlockAuxiliary_() override; + void readEvent_(EventPrincipal& eventPrincipal) override; + + private: + std::shared_ptr readRunAuxiliary_() override; + void readRun_(RunPrincipal& runPrincipal) override; + bool readIt(EventID const& id, EventPrincipal& eventPrincipal, StreamContext& streamContext) override; + void skip(int offset) override; + bool goToEvent_(EventID const& eventID) override; + void beginJob() override; + + std::unique_ptr makeRootFile(std::string const& logicalFileName, + std::string const& pName, + bool isSkipping, + std::shared_ptr filePtr, + std::shared_ptr skipper, + std::shared_ptr duplicateChecker, + std::vector>& indexesIntoFiles); + + RootServiceChecker rootServiceChecker_; + ProductSelectorRules selectorRules_; + edm::propagate_const> runHelper_; + std::unique_ptr rootFile_; + std::vector orderedProcessHistoryIDs_; + std::vector>> cachedWrappers_; + std::vector eventAuxs_; + EventSelectionIDVector selectionIDs_; + BranchListIndexes branchListIndexes_; + ProductProvenanceRetriever provRetriever_; + std::vector delayedReaders_; //one per stream + std::map branchIDToWrapperIndex_; + std::vector streamToCacheIndex_; + size_t nextEventIndex_ = 0; + ItemType presentState_ = IsFile; + unsigned long long eventIndex_ = 0; + }; +} // namespace edm + +using namespace edm; +// +// constants, enums and typedefs +// + +// +// static data member definitions +// + +// +// constructors and destructor +// +RepeatingCachedRootSource::RepeatingCachedRootSource(ParameterSet const& pset, InputSourceDescription const& desc) + : InputSource(pset, desc), + selectorRules_(pset, "inputCommands", "InputSource"), + runHelper_(std::make_unique()), + cachedWrappers_(pset.getUntrackedParameter("repeatNEvents")), + eventAuxs_(cachedWrappers_.size()), + provRetriever_(0), + delayedReaders_(desc.allocations_->numberOfStreams()), + streamToCacheIndex_(desc.allocations_->numberOfStreams(), 0) { + { + int index = 0; + std::for_each(delayedReaders_.begin(), delayedReaders_.end(), [&index, this](auto& iR) { + iR.m_streamIndex = index++; + iR.m_source = this; + }); + } + auto logicalFileName = pset.getUntrackedParameter("fileName"); + InputFileCatalog catalog(std::vector(1U, logicalFileName), ""); + auto const& physicalFileName = catalog.fileCatalogItems().front().fileNames().front(); + auto const nEventsToSkip = pset.getUntrackedParameter("skipEvents"); + std::shared_ptr skipper(EventSkipperByID::create(pset).release()); + + auto duplicateChecker = std::make_shared(pset); + + std::vector> indexesIntoFiles(1); + + auto input = + std::make_shared(physicalFileName.c_str(), " Initiating request to open file ", InputType::Primary); + rootFile_ = makeRootFile( + logicalFileName, physicalFileName, 0 != nEventsToSkip, input, skipper, duplicateChecker, indexesIntoFiles); + rootFile_->reportOpened("repeating"); + + auto const& prodList = rootFile_->productRegistry()->productList(); + productRegistryUpdate().updateFromInput(prodList); + + //setup caching + auto nProdsInEvent = + std::count_if(prodList.begin(), prodList.end(), [](auto&& iV) { return iV.second.branchType() == edm::InEvent; }); + { + size_t index = 0; + for (auto& prod : prodList) { + if (prod.second.branchType() == edm::InEvent) { + branchIDToWrapperIndex_[prod.second.branchID()] = index++; + } + } + } + for (auto& cache : cachedWrappers_) { + cache.resize(nProdsInEvent); + } +} + +void RepeatingCachedRootSource::beginJob() { + ProcessConfiguration processConfiguration; + processConfiguration.setParameterSetID(ParameterSet::emptyParameterSetID()); + processConfiguration.setProcessConfigurationID(); + + //TODO: to make edm::Ref work we need to find a way to pass in a different EDProductGetter + EventPrincipal eventPrincipal(productRegistry(), + std::make_shared(), + std::make_shared(), + processConfiguration, + nullptr); + + { + RunNumber_t run = 0; + LuminosityBlockNumber_t lumi = 0; + auto itAux = eventAuxs_.begin(); + for (auto& cache : cachedWrappers_) { + rootFile_->nextEventEntry(); + rootFile_->readCurrentEvent(eventPrincipal); + auto const& aux = eventPrincipal.aux(); + *(itAux++) = aux; + if (0 == run) { + run = aux.run(); + lumi = aux.luminosityBlock(); + } else { + if (run != aux.run()) { + throw cms::Exception("EventsWithDifferentRuns") << "The requested events to cache are from different Runs"; + } + if (lumi != aux.luminosityBlock()) { + throw cms::Exception("EventsWithDifferentLuminosityBlocks") + << "The requested events to cache are from different LuminosityBlocks"; + } + } + selectionIDs_ = eventPrincipal.eventSelectionIDs(); + branchListIndexes_ = eventPrincipal.branchListIndexes(); + { + auto reader = eventPrincipal.reader(); + for (auto const& branchToIndex : branchIDToWrapperIndex_) { + cache[branchToIndex.second] = reader->getProduct(branchToIndex.first, &eventPrincipal); + } + } + } + rootFile_->rewind(); + } +} + +void RepeatingCachedRootSource::fillDescriptions(ConfigurationDescriptions& descriptions) { + ParameterSetDescription desc; + desc.setComment( + "Read only a few Events from one EDM/Root file, and repeat them in sequence. The Events are required to be from " + "the same Run and LuminosityBlock."); + desc.addUntracked("fileName")->setComment("Name of file to be processed."); + desc.addUntracked("repeatNEvents", 10U) + ->setComment("Number of events to read from file and then repeat in sequence."); + desc.addUntracked("skipEvents", 0); + ProductSelectorRules::fillDescription(desc, "inputCommands"); + InputSource::fillDescription(desc); + + descriptions.add("source", desc); +} + +// +// member functions +// + +std::unique_ptr RepeatingCachedRootSource::makeRootFile( + std::string const& logicalFileName, + std::string const& pName, + bool isSkipping, + std::shared_ptr filePtr, + std::shared_ptr skipper, + std::shared_ptr duplicateChecker, + std::vector>& indexesIntoFiles) { + return std::make_unique(pName, + processConfiguration(), + logicalFileName, + filePtr, + skipper, + isSkipping, + remainingEvents(), + remainingLuminosityBlocks(), + 1, + roottree::defaultCacheSize, //treeCacheSize_, + -1, //treeMaxVirtualSize(), + processingMode(), + runHelper_, + true, //noEventSort_, + selectorRules_, + InputType::Primary, + branchIDListHelper(), + thinnedAssociationsHelper(), + nullptr, // associationsFromSecondary + duplicateChecker, + false, //dropDescendants(), + processHistoryRegistryForUpdate(), + indexesIntoFiles, + 0, //currentIndexIntoFile, + orderedProcessHistoryIDs_, + false, //bypassVersionCheck(), + true, //labelRawDataLikeMC(), + false, //usingGoToEvent_, + true, //enablePrefetching_, + false); //enforceGUIDInFileName_); +} + +std::shared_ptr RepeatingCachedRootSource::getProduct(unsigned int iStreamIndex, + BranchID const& k, + EDProductGetter const* ep) const { + return cachedWrappers_[streamToCacheIndex_[iStreamIndex]][branchIDToWrapperIndex_.find(k)->second]; +} + +RepeatingCachedRootSource::ItemType RepeatingCachedRootSource::getNextItemType() { + auto v = presentState_; + switch (presentState_) { + case IsFile: + presentState_ = IsRun; + break; + case IsRun: + presentState_ = IsLumi; + break; + case IsLumi: + presentState_ = IsEvent; + break; + default: + break; + } + return v; +} + +void RepeatingCachedRootSource::readLuminosityBlock_(LuminosityBlockPrincipal& lumiPrincipal) { + return rootFile_->readLuminosityBlock_(lumiPrincipal); +} + +std::shared_ptr RepeatingCachedRootSource::readLuminosityBlockAuxiliary_() { + return rootFile_->readLuminosityBlockAuxiliary_(); +} +void RepeatingCachedRootSource::readEvent_(EventPrincipal& eventPrincipal) { + auto index = eventIndex_++; + + auto repeatedIndex = index % cachedWrappers_.size(); + + auto const& aux = eventAuxs_[repeatedIndex]; + + auto history = processHistoryRegistry().getMapped(aux.processHistoryID()); + + streamToCacheIndex_[eventPrincipal.streamID().value()] = repeatedIndex; + eventPrincipal.fillEventPrincipal(aux, + history, + selectionIDs_, + branchListIndexes_, + provRetriever_, + &delayedReaders_[eventPrincipal.streamID().value()]); +} + +std::shared_ptr RepeatingCachedRootSource::readRunAuxiliary_() { + return rootFile_->readRunAuxiliary_(); + ; +} + +void RepeatingCachedRootSource::readRun_(RunPrincipal& runPrincipal) { rootFile_->readRun_(runPrincipal); } + +bool RepeatingCachedRootSource::readIt(EventID const& id, + EventPrincipal& eventPrincipal, + StreamContext& streamContext) { + return false; +} + +void RepeatingCachedRootSource::skip(int offset) {} + +bool RepeatingCachedRootSource::goToEvent_(EventID const& eventID) { return false; } + +// +// const member functions +// + +// +// static member functions +// + +DEFINE_FWK_INPUT_SOURCE(RepeatingCachedRootSource); diff --git a/IOPool/Input/src/RootDelayedReader.cc b/IOPool/Input/src/RootDelayedReader.cc index 2a199947e88a2..ab7a0775d5513 100644 --- a/IOPool/Input/src/RootDelayedReader.cc +++ b/IOPool/Input/src/RootDelayedReader.cc @@ -41,7 +41,7 @@ namespace edm { return std::make_pair(resourceAcquirer_.get(), mutex_.get()); } - std::unique_ptr RootDelayedReader::getProduct_(BranchID const& k, EDProductGetter const* ep) { + std::shared_ptr RootDelayedReader::getProduct_(BranchID const& k, EDProductGetter const* ep) { if (lastException_) { std::rethrow_exception(lastException_); } @@ -50,7 +50,7 @@ namespace edm { if (nextReader_) { return nextReader_->getProduct(k, ep); } else { - return std::unique_ptr(); + return std::shared_ptr(); } } TBranch* br = branchInfo->productBranch_; @@ -58,7 +58,7 @@ namespace edm { if (nextReader_) { return nextReader_->getProduct(k, ep); } else { - return std::unique_ptr(); + return std::shared_ptr(); } } diff --git a/IOPool/Input/src/RootDelayedReader.h b/IOPool/Input/src/RootDelayedReader.h index 3342a94babd72..3a143cace0cd5 100644 --- a/IOPool/Input/src/RootDelayedReader.h +++ b/IOPool/Input/src/RootDelayedReader.h @@ -59,7 +59,7 @@ namespace edm { } private: - std::unique_ptr getProduct_(BranchID const& k, EDProductGetter const* ep) override; + std::shared_ptr getProduct_(BranchID const& k, EDProductGetter const* ep) override; void mergeReaders_(DelayedReader* other) override { nextReader_ = other; } void reset_() override { nextReader_ = nullptr; } std::pair sharedResources_() const override; diff --git a/IOPool/Input/src/RootEmbeddedFileSequence.cc b/IOPool/Input/src/RootEmbeddedFileSequence.cc index d31b7589da78a..2880b58df3a40 100644 --- a/IOPool/Input/src/RootEmbeddedFileSequence.cc +++ b/IOPool/Input/src/RootEmbeddedFileSequence.cc @@ -174,8 +174,10 @@ namespace edm { bool RootEmbeddedFileSequence::readOneSequential( EventPrincipal& cache, size_t& fileNameHash, CLHEP::HepRandomEngine*, EventID const*, bool recycleFiles) { assert(rootFile()); - rootFile()->nextEventEntry(); - bool found = rootFile()->readCurrentEvent(cache); + bool found = rootFile()->nextEventEntry(); + if (found) { + found = rootFile()->readCurrentEvent(cache); + } if (!found) { setAtNextFile(); if (noMoreFiles()) { diff --git a/IOPool/Input/src/RootFile.cc b/IOPool/Input/src/RootFile.cc index 2283f88e8cd68..fb3d5b630a40c 100644 --- a/IOPool/Input/src/RootFile.cc +++ b/IOPool/Input/src/RootFile.cc @@ -194,7 +194,7 @@ namespace edm { whyNotFastClonable_(0), hasNewlyDroppedBranch_(), branchListIndexesUnchanged_(false), - eventAux_(), + eventAuxCache_(), eventTree_(filePtr, InEvent, nStreams, @@ -230,8 +230,6 @@ namespace edm { runHelper_(runHelper), newBranchToOldBranch_(), eventHistoryTree_(nullptr), - eventSelectionIDs_(), - branchListIndexes_(), history_(), branchChildren_(new BranchChildren), duplicateChecker_(duplicateChecker), @@ -546,6 +544,10 @@ namespace edm { setIsMergeable(product.second); } } + //inform system we want to use DelayedReader + for (auto& product : newReg->productListUpdator()) { + product.second.setOnDemand(true); + } // freeze the product registry newReg->setFrozen(inputType != InputType::Primary); @@ -770,8 +772,8 @@ namespace edm { // The Lumi is not skipped. If this is an event, see if the event is skipped. if (indexIntoFileIter_.getEntryType() == IndexIntoFile::kEvent) { - fillEventAuxiliary(indexIntoFileIter_.entry()); - if (eventSkipperByID_->skipIt(indexIntoFileIter_.run(), indexIntoFileIter_.lumi(), eventAux_.id().event())) { + auto eventAux = fillEventAuxiliary(indexIntoFileIter_.entry()); + if (eventSkipperByID_->skipIt(indexIntoFileIter_.run(), indexIntoFileIter_.lumi(), eventAux.id().event())) { return true; } } @@ -799,11 +801,11 @@ namespace edm { if (duplicateChecker_.get() == nullptr) { return false; } - fillEventAuxiliary(indexIntoFileIter_.entry()); + auto const eventAux = fillEventAuxiliary(indexIntoFileIter_.entry()); return duplicateChecker_->isDuplicateAndCheckActive(indexIntoFileIter_.processHistoryIDIndex(), indexIntoFileIter_.run(), indexIntoFileIter_.lumi(), - eventAux_.id().event(), + eventAux.id().event(), file_); } @@ -851,8 +853,8 @@ namespace edm { } run = indexIntoFileIter_.run(); lumi = indexIntoFileIter_.lumi(); - fillEventAuxiliary(indexIntoFileIter_.entry()); - event = eventAux_.event(); + auto eventAux = fillEventAuxiliary(indexIntoFileIter_.entry()); + event = eventAux.event(); return IndexIntoFile::kEvent; } @@ -960,32 +962,34 @@ namespace edm { indexIntoFile_.unsortedEventNumbers().reserve(eventTree_.entries()); // First, loop through the event tree. + EventSelectionIDVector eventSelectionIDs; + BranchListIndexes branchListIndexes; while (eventTree_.next()) { bool newRun = false; bool newLumi = false; - fillThisEventAuxiliary(); - fillEventHistory(); + auto evtAux = fillThisEventAuxiliary(); + fillEventHistory(evtAux, eventSelectionIDs, branchListIndexes); // Save the event numbers as we loop through the event auxiliary to avoid // having to read through the event auxiliary again later. These event numbers // are not actually used in this function, but could be needed elsewhere. - indexIntoFile_.unsortedEventNumbers().push_back(eventAux().event()); + indexIntoFile_.unsortedEventNumbers().push_back(evtAux.event()); - ProcessHistoryID reducedPHID = processHistoryRegistry_->reducedProcessHistoryID(eventAux().processHistoryID()); + ProcessHistoryID reducedPHID = processHistoryRegistry_->reducedProcessHistoryID(evtAux.processHistoryID()); - if (iFirst || prevPhid != reducedPHID || prevRun != eventAux().run()) { + if (iFirst || prevPhid != reducedPHID || prevRun != evtAux.run()) { iFirst = false; newRun = newLumi = true; - } else if (prevLumi != eventAux().luminosityBlock()) { + } else if (prevLumi != evtAux.luminosityBlock()) { newLumi = true; } prevPhid = reducedPHID; - prevRun = eventAux().run(); - prevLumi = eventAux().luminosityBlock(); + prevRun = evtAux.run(); + prevLumi = evtAux.luminosityBlock(); if (newLumi) { lumis.emplace_back( - reducedPHID, eventAux().run(), eventAux().luminosityBlock(), eventTree_.entryNumber()); // (insert 1) - runLumiSet.insert(LuminosityBlockID(eventAux().run(), eventAux().luminosityBlock())); // (insert 2) + reducedPHID, evtAux.run(), evtAux.luminosityBlock(), eventTree_.entryNumber()); // (insert 1) + runLumiSet.insert(LuminosityBlockID(evtAux.run(), evtAux.luminosityBlock())); // (insert 2) } else { LumiItem& currentLumi = lumis.back(); assert(currentLumi.lastEventEntry_ == eventTree_.entryNumber()); @@ -993,17 +997,16 @@ namespace edm { } if (newRun) { // Insert run in list if it is not already there. - RunItem item(reducedPHID, eventAux().run()); + RunItem item(reducedPHID, evtAux.run()); if (runItemSet.insert(item).second) { // (check 3, insert 3) runs.push_back(std::move(item)); // (insert 5) - runSet.insert(eventAux().run()); // (insert 4) - phidMap.insert(std::make_pair(eventAux().run(), reducedPHID)); + runSet.insert(evtAux.run()); // (insert 4) + phidMap.insert(std::make_pair(evtAux.run(), reducedPHID)); } } } // now clean up. eventTree_.setEntryNumber(IndexIntoFile::invalidEntry); - eventAux_ = EventAuxiliary(); lastEventEntryNumberRead_ = IndexIntoFile::invalidEntry; // Loop over run entries and fill information. @@ -1224,47 +1227,45 @@ namespace edm { filePtr_ = nullptr; // propagate_const has no reset() function } - void RootFile::fillThisEventAuxiliary() { + EventAuxiliary const& RootFile::fillThisEventAuxiliary() { if (lastEventEntryNumberRead_ == eventTree_.entryNumber()) { // Already read. - return; + return eventAuxCache_; } if (fileFormatVersion().newAuxiliary()) { - EventAuxiliary* pEvAux = &eventAux_; + EventAuxiliary* pEvAux = &eventAuxCache_; eventTree_.fillAux(pEvAux); } else { // for backward compatibility. EventAux eventAux; EventAux* pEvAux = &eventAux; eventTree_.fillAux(pEvAux); - conversion(eventAux, eventAux_); + conversion(eventAux, eventAuxCache_); } lastEventEntryNumberRead_ = eventTree_.entryNumber(); + return eventAuxCache_; } - bool RootFile::fillEventAuxiliary(IndexIntoFile::EntryNumber_t entry) { - if (!eventTree_.current(entry)) { - return false; - } + EventAuxiliary RootFile::fillEventAuxiliary(IndexIntoFile::EntryNumber_t entry) { eventTree_.setEntryNumber(entry); - fillThisEventAuxiliary(); - return true; + return fillThisEventAuxiliary(); } - void RootFile::fillEventHistory() { + void RootFile::fillEventHistory(EventAuxiliary& evtAux, + EventSelectionIDVector& eventSelectionIDs, + BranchListIndexes& branchListIndexes) { // We could consider doing delayed reading, but because we have to // store this History object in a different tree than the event // data tree, this is too hard to do in this first version. - if (fileFormatVersion().eventHistoryBranch()) { // Lumi block number was not in EventID for the relevant releases. - EventID id(eventAux().id().run(), 0, eventAux().id().event()); + EventID id(evtAux.id().run(), 0, evtAux.id().event()); if (eventProcessHistoryIter_->eventID() != id) { EventProcessHistoryID target(id, ProcessHistoryID()); eventProcessHistoryIter_ = lower_bound_all(eventProcessHistoryIDs_, target); assert(eventProcessHistoryIter_->eventID() == id); } - eventAux_.setProcessHistoryID(eventProcessHistoryIter_->processHistoryID()); + evtAux.setProcessHistoryID(eventProcessHistoryIter_->processHistoryID()); ++eventProcessHistoryIter_; } else if (fileFormatVersion().eventHistoryTree()) { // for backward compatibility. @@ -1275,35 +1276,35 @@ namespace edm { } eventHistoryBranch->SetAddress(&pHistory); roottree::getEntry(eventHistoryTree_, eventTree_.entryNumber()); - eventAux_.setProcessHistoryID(history_->processHistoryID()); - eventSelectionIDs_.swap(history_->eventSelectionIDs()); - branchListIndexes_.swap(history_->branchListIndexes()); + evtAux.setProcessHistoryID(history_->processHistoryID()); + eventSelectionIDs.swap(history_->eventSelectionIDs()); + branchListIndexes.swap(history_->branchListIndexes()); } else if (fileFormatVersion().noMetaDataTrees()) { // Current format - EventSelectionIDVector* pESV = &eventSelectionIDs_; + EventSelectionIDVector* pESV = &eventSelectionIDs; TBranch* eventSelectionIDBranch = eventTree_.tree()->GetBranch(poolNames::eventSelectionsBranchName().c_str()); assert(eventSelectionIDBranch != nullptr); eventTree_.fillBranchEntry(eventSelectionIDBranch, pESV); - BranchListIndexes* pBLI = &branchListIndexes_; + BranchListIndexes* pBLI = &branchListIndexes; TBranch* branchListIndexesBranch = eventTree_.tree()->GetBranch(poolNames::branchListIndexesBranchName().c_str()); assert(branchListIndexesBranch != nullptr); eventTree_.fillBranchEntry(branchListIndexesBranch, pBLI); } if (provenanceAdaptor_) { - eventAux_.setProcessHistoryID(provenanceAdaptor_->convertID(eventAux().processHistoryID())); - for (auto& esID : eventSelectionIDs_) { + evtAux.setProcessHistoryID(provenanceAdaptor_->convertID(evtAux.processHistoryID())); + for (auto& esID : eventSelectionIDs) { esID = provenanceAdaptor_->convertID(esID); } } if (daqProvenanceHelper_) { - eventAux_.setProcessHistoryID(daqProvenanceHelper_->mapProcessHistoryID(eventAux_.processHistoryID())); + evtAux.setProcessHistoryID(daqProvenanceHelper_->mapProcessHistoryID(evtAux.processHistoryID())); } if (!fileFormatVersion().splitProductIDs()) { // old format. branchListIndexes_ must be filled in from the ProvenanceAdaptor. - provenanceAdaptor_->branchListIndexes(branchListIndexes_); + provenanceAdaptor_->branchListIndexes(branchListIndexes); } if (branchIDListHelper_) { - branchIDListHelper_->fixBranchListIndexes(branchListIndexes_); + branchIDListHelper_->fixBranchListIndexes(branchListIndexes); } } @@ -1365,15 +1366,15 @@ namespace edm { break; if (eventSkipperByID_ && eventSkipperByID_->somethingToSkip()) { - fillEventAuxiliary(skippedEventEntry); - if (eventSkipperByID_->skipIt(runOfSkippedEvent, lumiOfSkippedEvent, eventAux_.id().event())) { + auto const evtAux = fillEventAuxiliary(skippedEventEntry); + if (eventSkipperByID_->skipIt(runOfSkippedEvent, lumiOfSkippedEvent, evtAux.id().event())) { continue; } } if (duplicateChecker_ && !duplicateChecker_->checkDisabled() && !duplicateChecker_->noDuplicatesInFile()) { - fillEventAuxiliary(skippedEventEntry); + auto const evtAux = fillEventAuxiliary(skippedEventEntry); if (duplicateChecker_->isDuplicateAndCheckActive( - phIndexOfSkippedEvent, runOfSkippedEvent, lumiOfSkippedEvent, eventAux_.id().event(), file_)) { + phIndexOfSkippedEvent, runOfSkippedEvent, lumiOfSkippedEvent, evtAux.id().event(), file_)) { continue; } } @@ -1396,8 +1397,8 @@ namespace edm { break; if (eventSkipperByID_ && eventSkipperByID_->somethingToSkip()) { - fillEventAuxiliary(eventEntry); - if (eventSkipperByID_->skipIt(runOfEvent, lumiOfEvent, eventAux_.id().event())) { + auto const evtAux = fillEventAuxiliary(eventEntry); + if (eventSkipperByID_->skipIt(runOfEvent, lumiOfEvent, evtAux.id().event())) { continue; } } @@ -1442,22 +1443,12 @@ namespace edm { void RootFile::readEvent(EventPrincipal& principal) { assert(indexIntoFileIter_ != indexIntoFileEnd_); assert(indexIntoFileIter_.getEntryType() == IndexIntoFile::kEvent); - // read the event auxiliary if not alrady read. - assert(fillEventAuxiliary(indexIntoFileIter_.entry())); - // read the event readCurrentEvent(principal); + auto const& evtAux = principal.aux(); - runHelper_->checkRunConsistency(eventAux().run(), indexIntoFileIter_.run()); - runHelper_->checkLumiConsistency(eventAux().luminosityBlock(), indexIntoFileIter_.lumi()); - - // If this next assert shows up in performance profiling or significantly affects memory, then these three lines should be deleted. - // The IndexIntoFile should guarantee that it never fails. - ProcessHistoryID idToCheck = (daqProvenanceHelper_ && fileFormatVersion().useReducedProcessHistoryID() - ? *daqProvenanceHelper_->oldProcessHistoryID() - : eventAux().processHistoryID()); - ProcessHistoryID const& reducedPHID = processHistoryRegistry_->reducedProcessHistoryID(idToCheck); - assert(reducedPHID == indexIntoFile_.processHistoryID(indexIntoFileIter_.processHistoryIDIndex())); + runHelper_->checkRunConsistency(evtAux.run(), indexIntoFileIter_.run()); + runHelper_->checkLumiConsistency(evtAux.luminosityBlock(), indexIntoFileIter_.lumi()); ++indexIntoFileIter_; } @@ -1467,25 +1458,35 @@ namespace edm { if (!eventTree_.current()) { return false; } - fillThisEventAuxiliary(); + auto evtAux = fillThisEventAuxiliary(); if (!fileFormatVersion().lumiInEventID()) { //ugly, but will disappear when the backward compatibility is done with schema evolution. - const_cast(eventAux_.id()).setLuminosityBlockNumber(eventAux_.oldLuminosityBlock()); - eventAux_.resetObsoleteInfo(); + const_cast(evtAux.id()).setLuminosityBlockNumber(evtAux.oldLuminosityBlock()); + evtAux.resetObsoleteInfo(); } - fillEventHistory(); - runHelper_->overrideRunNumber(eventAux_.id(), eventAux().isRealData()); + EventSelectionIDVector eventSelectionIDs; + BranchListIndexes branchListIndexes; + fillEventHistory(evtAux, eventSelectionIDs, branchListIndexes); + runHelper_->overrideRunNumber(evtAux.id(), evtAux.isRealData()); // We're not done ... so prepare the EventPrincipal eventTree_.insertEntryForIndex(principal.transitionIndex()); - auto history = processHistoryRegistry_->getMapped(eventAux().processHistoryID()); - principal.fillEventPrincipal(eventAux(), + auto history = processHistoryRegistry_->getMapped(evtAux.processHistoryID()); + principal.fillEventPrincipal(evtAux, history, - std::move(eventSelectionIDs_), - std::move(branchListIndexes_), + std::move(eventSelectionIDs), + std::move(branchListIndexes), *(makeProductProvenanceRetriever(principal.streamID().value())), eventTree_.resetAndGetRootDelayedReader()); + // If this next assert shows up in performance profiling or significantly affects memory, then these three lines should be deleted. + // The IndexIntoFile should guarantee that it never fails. + ProcessHistoryID idToCheck = (daqProvenanceHelper_ && fileFormatVersion().useReducedProcessHistoryID() + ? *daqProvenanceHelper_->oldProcessHistoryID() + : evtAux.processHistoryID()); + ProcessHistoryID const& reducedPHID = processHistoryRegistry_->reducedProcessHistoryID(idToCheck); + assert(reducedPHID == indexIntoFile_.processHistoryID(indexIntoFileIter_.processHistoryIDIndex())); + // report event read from file filePtr_->eventReadFromFile(); return true; @@ -1509,11 +1510,11 @@ namespace edm { IndexIntoFile::EntryNumber_t eventEntry = indexIntoFileIter_.firstEventEntryThisRun(); assert(eventEntry != IndexIntoFile::invalidEntry); assert(eventTree_.current(eventEntry)); - fillEventAuxiliary(eventEntry); + auto const evtAux = fillEventAuxiliary(eventEntry); RunID run = RunID(indexIntoFileIter_.run()); runHelper_->overrideRunNumber(run); - savedRunAuxiliary_ = std::make_shared(run.run(), eventAux().time(), Timestamp::invalidTimestamp()); + savedRunAuxiliary_ = std::make_shared(run.run(), evtAux.time(), Timestamp::invalidTimestamp()); return savedRunAuxiliary(); } // End code for backward compatibility before the existence of run trees. @@ -1536,11 +1537,11 @@ namespace edm { // If we have a valid event, use its information. if (eventEntry != IndexIntoFile::invalidEntry) { assert(eventTree_.current(eventEntry)); - fillEventAuxiliary(eventEntry); + auto evtAux = fillEventAuxiliary(eventEntry); // RunAuxiliary did not contain a valid timestamp. Take it from the next event in this run if there is one. if (runAuxiliary->beginTime() == Timestamp::invalidTimestamp()) { - runAuxiliary->setBeginTime(eventAux().time()); + runAuxiliary->setBeginTime(evtAux.time()); } // For backwards compatibility when the Run's ProcessHistory included only processes where products were added to the @@ -1548,8 +1549,10 @@ namespace edm { // almost always be correct by the current definition (processes included if any products are added. This makes the run, lumi, // and event ProcessHistory's always be the same if no file merging occurs). if (!fileFormatVersion().processHistorySameWithinRun()) { - fillEventHistory(); - runAuxiliary->setProcessHistoryID(eventAux().processHistoryID()); + EventSelectionIDVector eventSelectionIDs; + BranchListIndexes branchListIndexes; + fillEventHistory(evtAux, eventSelectionIDs, branchListIndexes); + runAuxiliary->setProcessHistoryID(evtAux.processHistoryID()); } } } @@ -1592,12 +1595,12 @@ namespace edm { IndexIntoFile::EntryNumber_t eventEntry = indexIntoFileIter_.firstEventEntryThisLumi(); assert(eventEntry != IndexIntoFile::invalidEntry); assert(eventTree_.current(eventEntry)); - fillEventAuxiliary(eventEntry); + auto const evtAux = fillEventAuxiliary(eventEntry); LuminosityBlockID lumi = LuminosityBlockID(indexIntoFileIter_.run(), indexIntoFileIter_.lumi()); runHelper_->overrideRunNumber(lumi); return std::make_shared( - lumi.run(), lumi.luminosityBlock(), eventAux().time(), Timestamp::invalidTimestamp()); + lumi.run(), lumi.luminosityBlock(), evtAux.time(), Timestamp::invalidTimestamp()); } // End code for backward compatibility before the existence of lumi trees. lumiTree_.setEntryNumber(indexIntoFileIter_.entry()); @@ -1610,9 +1613,9 @@ namespace edm { IndexIntoFile::EntryNumber_t eventEntry = indexIntoFileIter_.firstEventEntryThisLumi(); if (eventEntry != IndexIntoFile::invalidEntry) { assert(eventTree_.current(eventEntry)); - fillEventAuxiliary(eventEntry); + auto const evtAux = fillEventAuxiliary(eventEntry); - lumiAuxiliary->setBeginTime(eventAux().time()); + lumiAuxiliary->setBeginTime(evtAux.time()); } lumiAuxiliary->setEndTime(Timestamp::invalidTimestamp()); } @@ -1676,6 +1679,8 @@ namespace edm { return false; if (lumi != indexIntoFileIter_.lumi()) return false; + //The following is used for its side effect of advancing the + // eventTree entry. fillEventAuxiliary(indexIntoFileIter_.entry()); return true; } @@ -1696,9 +1701,9 @@ namespace edm { std::vector>::size_type currentIndexIntoFile) { if (duplicateChecker_ && !duplicateChecker_->checkDisabled()) { if (eventTree_.next()) { - fillThisEventAuxiliary(); - duplicateChecker_->inputFileOpened( - eventAux().isRealData(), indexIntoFile_, indexesIntoFiles, currentIndexIntoFile); + auto const evtAux = fillThisEventAuxiliary(); + + duplicateChecker_->inputFileOpened(evtAux.isRealData(), indexIntoFile_, indexesIntoFiles, currentIndexIntoFile); } eventTree_.setEntryNumber(IndexIntoFile::invalidEntry); } diff --git a/IOPool/Input/src/RootFile.h b/IOPool/Input/src/RootFile.h index 65cf33caf8ca6..bd470d5498b1b 100644 --- a/IOPool/Input/src/RootFile.h +++ b/IOPool/Input/src/RootFile.h @@ -213,11 +213,9 @@ namespace edm { void readLuminosityBlock_(LuminosityBlockPrincipal& lumiPrincipal); std::string const& file() const { return file_; } std::shared_ptr productRegistry() const { return productRegistry_; } - EventAuxiliary const& eventAux() const { return eventAux_; } // IndexIntoFile::EntryNumber_t const& entryNumber() const {return indexIntoFileIter().entry();} // LuminosityBlockNumber_t const& luminosityBlockNumber() const {return indexIntoFileIter().lumi();} // RunNumber_t const& runNumber() const {return indexIntoFileIter().run();} - EventID const& eventID() const { return eventAux().id(); } RootTree const& eventTree() const { return eventTree_; } RootTree const& lumiTree() const { return lumiTree_; } RootTree const& runTree() const { return runTree_; } @@ -274,9 +272,11 @@ namespace edm { void setIfFastClonable(int remainingEvents, int remainingLumis); void validateFile(InputType inputType, bool usingGoToEvent); void fillIndexIntoFile(); - bool fillEventAuxiliary(IndexIntoFile::EntryNumber_t entry); - void fillThisEventAuxiliary(); - void fillEventHistory(); + EventAuxiliary fillEventAuxiliary(IndexIntoFile::EntryNumber_t entry); + EventAuxiliary const& fillThisEventAuxiliary(); + void fillEventHistory(EventAuxiliary& evtAux, + EventSelectionIDVector& eventSelectionIDs, + BranchListIndexes& branchListIndexes); std::shared_ptr fillLumiAuxiliary(); std::shared_ptr fillRunAuxiliary(); std::string const& newBranchToOldBranch(std::string const& newBranch) const; @@ -334,11 +334,12 @@ namespace edm { int whyNotFastClonable_; std::array hasNewlyDroppedBranch_; bool branchListIndexesUnchanged_; - EventAuxiliary eventAux_; + EventAuxiliary eventAuxCache_; //Should only be used by fillThisEventAuxiliary() RootTree eventTree_; RootTree lumiTree_; RootTree runTree_; RootTreePtrArray treePointers_; + //Should only be used by fillThisEventAuxiliary() IndexIntoFile::EntryNumber_t lastEventEntryNumberRead_; std::shared_ptr productRegistry_; std::shared_ptr branchIDLists_; @@ -348,9 +349,7 @@ namespace edm { InputSource::ProcessingMode processingMode_; edm::propagate_const runHelper_; std::map newBranchToOldBranch_; - edm::propagate_const eventHistoryTree_; // backward compatibility - EventSelectionIDVector eventSelectionIDs_; - BranchListIndexes branchListIndexes_; + edm::propagate_const eventHistoryTree_; // backward compatibility edm::propagate_const> history_; // backward compatibility edm::propagate_const> branchChildren_; edm::propagate_const> duplicateChecker_; diff --git a/IOPool/Input/test/BuildFile.xml b/IOPool/Input/test/BuildFile.xml index d6bebd468410a..bfff48141ea7e 100644 --- a/IOPool/Input/test/BuildFile.xml +++ b/IOPool/Input/test/BuildFile.xml @@ -9,5 +9,6 @@ - + + diff --git a/IOPool/Input/test/testRepeatingCachedRootSource.sh b/IOPool/Input/test/testRepeatingCachedRootSource.sh new file mode 100755 index 0000000000000..a02e393cce2a8 --- /dev/null +++ b/IOPool/Input/test/testRepeatingCachedRootSource.sh @@ -0,0 +1,7 @@ +#!/bin/sh -ex +# Pass in name and status +function die { echo $1: status $2 ; exit $2; } + +cmsRun -j PoolInputRepeatingSourceTest_jobreport.xml ${LOCALTOP}/src/IOPool/Input/test/PrePoolInputTest_cfg.py PoolInputRepeatingSource.root 11 561 7 6 3 || die 'Failure using PrePoolInputTest_cfg.py' $? + +cmsRun ${LOCALTOP}/src/IOPool/Input/test/test_repeating_cfg.py || die 'Failed cmsRun test_repeating_cfg.py' diff --git a/IOPool/Input/test/test_repeating_cfg.py b/IOPool/Input/test/test_repeating_cfg.py new file mode 100644 index 0000000000000..feebf28b91d3d --- /dev/null +++ b/IOPool/Input/test/test_repeating_cfg.py @@ -0,0 +1,12 @@ +import FWCore.ParameterSet.Config as cms + +process = cms.Process("TEST") +process.source = cms.Source("RepeatingCachedRootSource", fileName = cms.untracked.string("file:PoolInputTest.root"), repeatNEvents = cms.untracked.uint32(2)) + +process.maxEvents.input = 10000 + +process.OtherThing = cms.EDProducer("OtherThingProducer") +#process.dump = cms.EDAnalyzer("EventContentAnalyzer") + +process.p = cms.Path(process.OtherThing) +#process.o = cms.EndPath(process.dump) diff --git a/JetMETCorrections/Type1MET/python/cleanJetFromEEnoise_cfi.py b/JetMETCorrections/Type1MET/python/cleanJetFromEEnoise_cfi.py index c8b912d623c9a..131072b0295bc 100644 --- a/JetMETCorrections/Type1MET/python/cleanJetFromEEnoise_cfi.py +++ b/JetMETCorrections/Type1MET/python/cleanJetFromEEnoise_cfi.py @@ -26,9 +26,10 @@ ) ) -pfcandidateForUnclusteredUnc = cms.EDProducer("CandPtrProjector", - src = cms.InputTag("packedPFCandidates"), - veto = cms.InputTag("pfcandidateClustered"), +import CommonTools.CandAlgos.candPtrProjector_cfi as _mod +pfcandidateForUnclusteredUnc = _mod.candPtrProjector.clone( + src = "packedPFCandidates", + veto = "pfcandidateClustered", ) diff --git a/L1Trigger/CSCTriggerPrimitives/interface/CSCCathodeLCTProcessor.h b/L1Trigger/CSCTriggerPrimitives/interface/CSCCathodeLCTProcessor.h index 7fd3317965ddd..4479bfd8bec4a 100644 --- a/L1Trigger/CSCTriggerPrimitives/interface/CSCCathodeLCTProcessor.h +++ b/L1Trigger/CSCTriggerPrimitives/interface/CSCCathodeLCTProcessor.h @@ -121,7 +121,6 @@ class CSCCathodeLCTProcessor : public CSCBaseboard { // Multiple hits on the same strip are allowed. void readComparatorDigis(std::vector halfstrip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS]); void pulseExtension(const std::vector time[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], - const int nStrips, PulseArray pulse); //--------------- Functions for post-2007 version of the firmware ----------- @@ -133,7 +132,6 @@ class CSCCathodeLCTProcessor : public CSCBaseboard { /* For a given clock cycle, check each half-strip if a pattern matches */ bool patternFinding(const PulseArray pulse, - const int nStrips, const unsigned int bx_time, std::map >& hits_in_patterns); @@ -150,15 +148,14 @@ class CSCCathodeLCTProcessor : public CSCBaseboard { void dumpConfigParams() const; /** Dump half-strip digis */ - void dumpDigis(const std::vector strip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], - const int nStrips) const; + void dumpDigis(const std::vector strip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS]) const; // --------Functions for the comparator code algorith for Run-3 ---------// //calculates the id based on location of hits int calculateComparatorCode(const std::array, 6>& halfStripPattern) const; // sets the 1/4 and 1/8 strip bits given a floating point position offset - void assignPositionCC(const unsigned offset, std::tuple& returnValue) const; + void assignPositionCC(const unsigned offset, std::tuple& returnValue) const; // runs the CCLUT procedure void runCCLUT(CSCCLCTDigi& digi) const; @@ -194,7 +191,9 @@ class CSCCathodeLCTProcessor : public CSCBaseboard { }; /* number of strips used in this processor */ - int numStrips; + int numStrips_; + int numCFEBs_; + int numHalfStrips_; /* Is the layer in the chamber staggered? */ int stagger[CSCConstants::NUM_LAYERS]; diff --git a/L1Trigger/CSCTriggerPrimitives/interface/LCTQualityControl.h b/L1Trigger/CSCTriggerPrimitives/interface/LCTQualityControl.h index 02496a3604736..91f9df3ac9d1b 100644 --- a/L1Trigger/CSCTriggerPrimitives/interface/LCTQualityControl.h +++ b/L1Trigger/CSCTriggerPrimitives/interface/LCTQualityControl.h @@ -62,7 +62,7 @@ class LCTQualityControl : public CSCBaseboard { unsigned get_csc_max_wire(int station, int ring) const; unsigned get_csc_max_halfstrip(int station, int ring) const; unsigned get_csc_max_quartstrip(int station, int ring) const; - unsigned get_csc_max_eightstrip(int station, int ring) const; + unsigned get_csc_max_eighthstrip(int station, int ring) const; // slope values std::pair get_csc_clct_min_max_slope() const; diff --git a/L1Trigger/CSCTriggerPrimitives/src/CSCCathodeLCTProcessor.cc b/L1Trigger/CSCTriggerPrimitives/src/CSCCathodeLCTProcessor.cc index cd73f8d0dea5e..6808406df853e 100644 --- a/L1Trigger/CSCTriggerPrimitives/src/CSCCathodeLCTProcessor.cc +++ b/L1Trigger/CSCTriggerPrimitives/src/CSCCathodeLCTProcessor.cc @@ -70,7 +70,7 @@ CSCCathodeLCTProcessor::CSCCathodeLCTProcessor(unsigned endcap, config_dumped = true; } - numStrips = 0; // Will be set later. + numStrips_ = 0; // Will be set later. // Provisional, but should be OK for all stations except ME1. for (int i_layer = 0; i_layer < CSCConstants::NUM_LAYERS; i_layer++) { if ((i_layer + 1) % 2 == 0) @@ -123,7 +123,7 @@ CSCCathodeLCTProcessor::CSCCathodeLCTProcessor() : CSCBaseboard() { config_dumped = true; } - numStrips = CSCConstants::MAX_NUM_STRIPS; + numStrips_ = CSCConstants::MAX_NUM_STRIPS; // Should be OK for all stations except ME1. for (int i_layer = 0; i_layer < CSCConstants::NUM_LAYERS; i_layer++) { if ((i_layer + 1) % 2 == 0) @@ -221,9 +221,10 @@ std::vector CSCCathodeLCTProcessor::run(const CSCComparatorDigiColl // Get the number of strips and stagger of layers for the given chamber. // Do it only once per chamber. - if (numStrips <= 0 or numStrips > CSCConstants::MAX_NUM_STRIPS_7CFEBS) { + if (numStrips_ <= 0 or numStrips_ > CSCConstants::MAX_NUM_STRIPS_7CFEBS) { if (cscChamber_) { - numStrips = cscChamber_->layer(1)->geometry()->numberOfStrips(); + numStrips_ = cscChamber_->layer(1)->geometry()->numberOfStrips(); + // ME1/a is known to the readout hardware as strips 65-80 of ME1/1. // Still need to decide whether we do any special adjustments to // reconstruct LCTs in this region (3:1 ganged strips); for now, we @@ -238,20 +239,25 @@ std::vector CSCCathodeLCTProcessor::run(const CSCComparatorDigiColl << "+++ CSC geometry looks garbled; no emulation possible +++\n"; } if (!disableME1a_ && theRing == 1 && !gangedME1a_) - numStrips = CSCConstants::MAX_NUM_STRIPS_7CFEBS; + numStrips_ = CSCConstants::MAX_NUM_STRIPS_7CFEBS; if (!disableME1a_ && theRing == 1 && gangedME1a_) - numStrips = CSCConstants::MAX_NUM_STRIPS; + numStrips_ = CSCConstants::MAX_NUM_STRIPS; if (disableME1a_ && theRing == 1) - numStrips = CSCConstants::MAX_NUM_STRIPS_ME1B; + numStrips_ = CSCConstants::MAX_NUM_STRIPS_ME1B; } - if (numStrips > CSCConstants::MAX_NUM_STRIPS_7CFEBS) { + numHalfStrips_ = 2 * numStrips_ + 1; + numCFEBs_ = numStrips_ / CSCConstants::NUM_STRIPS_PER_CFEB; + + if (numStrips_ > CSCConstants::MAX_NUM_STRIPS_7CFEBS) { edm::LogError("CSCCathodeLCTProcessor|SetupError") - << "+++ Number of strips, " << numStrips << " found in " << theCSCName_ << " (sector " << theSector + << "+++ Number of strips, " << numStrips_ << " found in " << theCSCName_ << " (sector " << theSector << " subsector " << theSubsector << " trig id. " << theTrigChamber << ")" << " exceeds max expected, " << CSCConstants::MAX_NUM_STRIPS_7CFEBS << " +++\n" << "+++ CSC geometry looks garbled; no emulation possible +++\n"; - numStrips = -1; + numStrips_ = -1; + numHalfStrips_ = -1; + numCFEBs_ = -1; } // The strips for a given layer may be offset from the adjacent layers. // This was done in order to improve resolution. We need to find the @@ -275,23 +281,25 @@ std::vector CSCCathodeLCTProcessor::run(const CSCComparatorDigiColl << theTrigChamber << ")" << " is not defined in current geometry! +++\n" << "+++ CSC geometry looks garbled; no emulation possible +++\n"; - numStrips = -1; + numStrips_ = -1; + numHalfStrips_ = -1; + numCFEBs_ = -1; } } - if (numStrips <= 0 or 2 * (unsigned)numStrips > qualityControl_->get_csc_max_halfstrip(theStation, theRing)) { + if (numStrips_ <= 0 or 2 * (unsigned)numStrips_ > qualityControl_->get_csc_max_halfstrip(theStation, theRing)) { edm::LogError("CSCCathodeLCTProcessor|ConfigError") << " " << theCSCName_ << " (sector " << theSector << " subsector " << theSubsector << " trig id. " << theTrigChamber << "):" - << " numStrips = " << numStrips << "; CLCT emulation skipped! +++"; + << " numStrips_ = " << numStrips_ << "; CLCT emulation skipped! +++"; std::vector emptyV; return emptyV; } // Get comparator digis in this chamber. - bool noDigis = getDigis(compdc); + bool hasDigis = getDigis(compdc); - if (!noDigis) { + if (hasDigis) { // Get halfstrip times from comparator digis. std::vector halfstrip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS]; readComparatorDigis(halfstrip); @@ -396,7 +404,7 @@ void CSCCathodeLCTProcessor::run( } bool CSCCathodeLCTProcessor::getDigis(const CSCComparatorDigiCollection* compdc) { - bool noDigis = true; + bool hasDigis = false; // Loop over layers and save comparator digis on each one into digiV[layer]. for (int i_layer = 0; i_layer < CSCConstants::NUM_LAYERS; i_layer++) { @@ -411,7 +419,7 @@ bool CSCCathodeLCTProcessor::getDigis(const CSCComparatorDigiCollection* compdc) } if (!digiV[i_layer].empty()) { - noDigis = false; + hasDigis = true; if (infoV > 1) { LogTrace("CSCCathodeLCTProcessor") << "found " << digiV[i_layer].size() << " comparator digi(s) in layer " << i_layer << " of " << detid.chamberName() << " (trig. sector " << theSector @@ -420,7 +428,7 @@ bool CSCCathodeLCTProcessor::getDigis(const CSCComparatorDigiCollection* compdc) } } - return noDigis; + return hasDigis; } void CSCCathodeLCTProcessor::getDigis(const CSCComparatorDigiCollection* compdc, const CSCDetId& id) { @@ -474,11 +482,11 @@ void CSCCathodeLCTProcessor::readComparatorDigis( // Get strip number. int thisStrip = pld->getStrip() - 1; // count from 0 - if (thisStrip < 0 || thisStrip >= numStrips) { + if (thisStrip < 0 || thisStrip >= numStrips_) { if (infoV >= 0) edm::LogWarning("L1CSCTPEmulatorWrongInput") << "+++ station " << theStation << " ring " << theRing << " chamber " << theChamber - << " Found comparator digi with wrong strip number = " << thisStrip << " (max strips = " << numStrips + << " Found comparator digi with wrong strip number = " << thisStrip << " (max strips = " << numStrips_ << "); skipping it... +++\n"; continue; } @@ -486,7 +494,7 @@ void CSCCathodeLCTProcessor::readComparatorDigis( // comp : comparator output // stagger: stagger for this layer int thisHalfstrip = 2 * thisStrip + thisComparator + stagger[i_layer]; - if (thisHalfstrip >= 2 * numStrips + 1) { + if (thisHalfstrip >= numHalfStrips_) { if (infoV >= 0) edm::LogWarning("L1CSCTPEmulatorWrongInput") << "+++ station " << theStation << " ring " << theRing << " chamber " << theChamber @@ -540,18 +548,15 @@ std::vector CSCCathodeLCTProcessor::findLCTs( const std::vector halfstrip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS]) { std::vector lctList; - // Max. number of half-strips for this chamber. - const int maxHalfStrips = 2 * numStrips + 1; - if (infoV > 1) - dumpDigis(halfstrip, maxHalfStrips); + dumpDigis(halfstrip); // 2 possible LCTs per CSC x 7 LCT quantities int keystrip_data[CSCConstants::MAX_CLCTS_PER_PROCESSOR][CLCT_NUM_QUANTITIES] = {{0}}; PulseArray pulse; // Fire half-strip one-shots for hit_persist bx's (4 bx's by default). - pulseExtension(halfstrip, maxHalfStrips, pulse); + pulseExtension(halfstrip, pulse); unsigned int start_bx = start_bx_shift; // Stop drift_delay bx's short of fifo_tbins since at later bx's we will @@ -585,10 +590,10 @@ std::vector CSCCathodeLCTProcessor::findLCTs( // We check if there is at least one key half strip for which at least // one pattern id has at least the minimum number of hits - bool hits_in_time = patternFinding(pulse, maxHalfStrips, latch_bx, hits_in_patterns); + bool hits_in_time = patternFinding(pulse, latch_bx, hits_in_patterns); if (infoV > 1) { if (hits_in_time) { - for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < maxHalfStrips; hstrip++) { + for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < numHalfStrips_; hstrip++) { if (nhits[hstrip] > 0) { LogTrace("CSCCathodeLCTProcessor") << " bx = " << std::setw(2) << latch_bx << " --->" @@ -618,7 +623,7 @@ std::vector CSCCathodeLCTProcessor::findLCTs( // Calculate quality from pattern id and number of hits, and // simultaneously select best-quality LCT. if (hits_in_time) { - for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < maxHalfStrips; hstrip++) { + for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < numHalfStrips_; hstrip++) { // The bend-direction bit pid[0] is ignored (left and right // bends have equal quality). quality[hstrip] = (best_pid[hstrip] & 14) | (nhits[hstrip] << 5); @@ -642,7 +647,7 @@ std::vector CSCCathodeLCTProcessor::findLCTs( // zero, and repeat the search. markBusyKeys(best_halfstrip[0], best_pid[best_halfstrip[0]], quality); - for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < maxHalfStrips; hstrip++) { + for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < numHalfStrips_; hstrip++) { if (quality[hstrip] > best_quality[1]) { best_halfstrip[1] = hstrip; best_quality[1] = quality[hstrip]; @@ -730,9 +735,9 @@ std::vector CSCCathodeLCTProcessor::findLCTs( unsigned int stop_time = fifo_tbins - drift_delay; for (unsigned int bx = latch_bx + 1; bx < stop_time; bx++) { bool return_to_idle = true; - bool hits_in_time = patternFinding(pulse, maxHalfStrips, bx, hits_in_patterns); + bool hits_in_time = patternFinding(pulse, bx, hits_in_patterns); if (hits_in_time) { - for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < maxHalfStrips; hstrip++) { + for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < numHalfStrips_; hstrip++) { // the dead-time is done at the pre-trigger, not at the trigger if (nhits[hstrip] >= nplanes_hit_pretrig) { if (infoV > 1) @@ -760,9 +765,7 @@ std::vector CSCCathodeLCTProcessor::findLCTs( // Common to all versions. void CSCCathodeLCTProcessor::pulseExtension( - const std::vector time[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], - const int nStrips, - PulseArray pulse) { + const std::vector time[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], PulseArray pulse) { static const unsigned int bits_in_pulse = 8 * sizeof(pulse[0][0]); // Clear pulse array. This array will be used as a bit representation of @@ -774,12 +777,12 @@ void CSCCathodeLCTProcessor::pulseExtension( // of 3 would look like 0000000000111000. This is similating the digital // one-shot in the TMB. for (int i_layer = 0; i_layer < CSCConstants::NUM_LAYERS; i_layer++) - for (int i_strip = 0; i_strip < nStrips; i_strip++) + for (int i_strip = 0; i_strip < numHalfStrips_; i_strip++) pulse[i_layer][i_strip] = 0; // Loop over all layers and halfstrips. for (int i_layer = 0; i_layer < CSCConstants::NUM_LAYERS; i_layer++) { - for (int i_strip = 0; i_strip < nStrips; i_strip++) { + for (int i_strip = 0; i_strip < numHalfStrips_; i_strip++) { // If there is a hit, simulate digital one-shot persistence starting // in the bx of the initial hit. Fill this into pulse[][]. if (!time[i_layer][i_strip].empty()) { @@ -809,9 +812,6 @@ bool CSCCathodeLCTProcessor::preTrigger(const PulseArray pulse, const int start_ if (infoV > 1) LogTrace("CSCCathodeLCTProcessor") << "....................PreTrigger..........................."; - // Max. number of half-strips for this chamber. - const int nStrips = 2 * numStrips + 1; - int nPreTriggers = 0; bool pre_trig = false; @@ -826,9 +826,9 @@ bool CSCCathodeLCTProcessor::preTrigger(const PulseArray pulse, const int start_ std::map> hits_in_patterns; hits_in_patterns.clear(); - bool hits_in_time = patternFinding(pulse, nStrips, bx_time, hits_in_patterns); + bool hits_in_time = patternFinding(pulse, bx_time, hits_in_patterns); if (hits_in_time) { - for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < nStrips; hstrip++) { + for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < numHalfStrips_; hstrip++) { if (infoV > 1) { if (nhits[hstrip] > 0) { LogTrace("CSCCathodeLCTProcessor") @@ -869,7 +869,6 @@ bool CSCCathodeLCTProcessor::preTrigger(const PulseArray pulse, const int start_ // TMB-07 version. bool CSCCathodeLCTProcessor::patternFinding( const PulseArray pulse, - const int nStrips, const unsigned int bx_time, std::map>& hits_in_patterns) { if (bx_time >= fifo_tbins) @@ -880,7 +879,7 @@ bool CSCCathodeLCTProcessor::patternFinding( // substantially. unsigned int layers_hit = 0; for (int i_layer = 0; i_layer < CSCConstants::NUM_LAYERS; i_layer++) { - for (int i_hstrip = 0; i_hstrip < nStrips; i_hstrip++) { + for (int i_hstrip = 0; i_hstrip < numHalfStrips_; i_hstrip++) { if (((pulse[i_layer][i_hstrip] >> bx_time) & 1) == 1) { layers_hit++; break; @@ -890,7 +889,7 @@ bool CSCCathodeLCTProcessor::patternFinding( if (layers_hit < nplanes_hit_pretrig) return false; - for (int key_hstrip = 0; key_hstrip < nStrips; key_hstrip++) { + for (int key_hstrip = 0; key_hstrip < numHalfStrips_; key_hstrip++) { best_pid[key_hstrip] = 0; nhits[key_hstrip] = 0; first_bx_corrected[key_hstrip] = -999; @@ -899,7 +898,7 @@ bool CSCCathodeLCTProcessor::patternFinding( bool hit_layer[CSCConstants::NUM_LAYERS]; // Loop over candidate key strips. - for (int key_hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; key_hstrip < nStrips; key_hstrip++) { + for (int key_hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; key_hstrip < numHalfStrips_; key_hstrip++) { // Loop over patterns and look for hits matching each pattern. for (unsigned int pid = clct_pattern_.size() - 1; pid >= pid_thresh_pretrig and pid < clct_pattern_.size(); pid--) { layers_hit = 0; @@ -932,7 +931,7 @@ bool CSCCathodeLCTProcessor::patternFinding( int this_strip = CSCPatternBank::clct_pattern_offset_[strip_num] + key_hstrip; // current strip should be valid of course - if (this_strip >= 0 && this_strip < nStrips) { + if (this_strip >= 0 && this_strip < numHalfStrips_) { if (infoV > 3) { LogTrace("CSCCathodeLCTProcessor") << " In patternFinding: key_strip = " << key_hstrip << " pid = " << pid << " layer = " << this_layer << " strip = " << this_strip << std::endl; @@ -1061,12 +1060,11 @@ void CSCCathodeLCTProcessor::dumpConfigParams() const { // Reasonably nice dump of digis on half-strips. void CSCCathodeLCTProcessor::dumpDigis( - const std::vector strip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS], - const int nStrips) const { - LogDebug("CSCCathodeLCTProcessor") << theCSCName_ << " strip type: half-strip, nStrips " << nStrips; + const std::vector strip[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS]) const { + LogDebug("CSCCathodeLCTProcessor") << theCSCName_ << " strip type: half-strip, numHalfStrips " << numHalfStrips_; std::ostringstream strstrm; - for (int i_strip = 0; i_strip < nStrips; i_strip++) { + for (int i_strip = 0; i_strip < numHalfStrips_; i_strip++) { if (i_strip % 10 == 0) { if (i_strip < 100) strstrm << i_strip / 10; @@ -1078,14 +1076,14 @@ void CSCCathodeLCTProcessor::dumpDigis( strstrm << " "; } strstrm << "\n"; - for (int i_strip = 0; i_strip < nStrips; i_strip++) { + for (int i_strip = 0; i_strip < numHalfStrips_; i_strip++) { strstrm << i_strip % 10; if ((i_strip + 1) % CSCConstants::NUM_HALF_STRIPS_PER_CFEB == 0) strstrm << " "; } for (int i_layer = 0; i_layer < CSCConstants::NUM_LAYERS; i_layer++) { strstrm << "\n"; - for (int i_strip = 0; i_strip < nStrips; i_strip++) { + for (int i_strip = 0; i_strip < numHalfStrips_; i_strip++) { if (!strip[i_layer][i_strip].empty()) { std::vector bx_times = strip[i_layer][i_strip]; // Dump only the first in time. @@ -1304,7 +1302,7 @@ int CSCCathodeLCTProcessor::calculateComparatorCode(const std::array& returnValue) const { + std::tuple& returnValue) const { /* | Value | Half-Strip Offset | Delta Half-Strip | Quarter-Strip Bit | Eighth-Strip Bit | |-------|--------------------|-------------------|--------------------|------------------| @@ -1325,7 +1323,7 @@ void CSCCathodeLCTProcessor::assignPositionCC(const unsigned offset, | 14 | 7/4 | 1 | 1 | 1 | | 15 | 2 | 2 | 0 | 0 | */ - std::vector> my_tuple = { + std::vector> my_tuple = { {-2, false, true}, {-2, true, false}, {-2, true, true}, @@ -1355,7 +1353,7 @@ void CSCCathodeLCTProcessor::runCCLUT(CSCCLCTDigi& digi) const { strm << "+ Before CCCLUT algorithm: +\n"; strm << "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"; strm << " Old CLCT digi " << digi << "\n"; - strm << " 1/4 strip bit " << digi.getQuartStrip() << " 1/8 strip bit " << digi.getEightStrip() << "\n"; + strm << " 1/4 strip bit " << digi.getQuartStrip() << " 1/8 strip bit " << digi.getEighthStrip() << "\n"; strm << " 1/4 strip number " << digi.getKeyStrip(4) << " 1/8 strip number " << digi.getKeyStrip(8) << "\n"; strm << "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"; LogDebug("CSCCathodeLCTProcessor") << strm.str(); @@ -1409,14 +1407,30 @@ void CSCCathodeLCTProcessor::runCCLUT(CSCCLCTDigi& digi) const { // calculate the new position uint16_t halfstrip = digi.getKeyStrip(); - std::tuple halfstripoffset; - assignPositionCC(positionCC, halfstripoffset); - halfstrip += std::get<0>(halfstripoffset); + std::tuple stripoffset; + assignPositionCC(positionCC, stripoffset); + const int halfstripoffset = std::get<0>(stripoffset); + halfstrip += halfstripoffset; + + // calculate the new CFEB number + int newCFEB = digi.getCFEB(); + + // case where key half-strip is on the lower edge of the CFEB + if (digi.getStrip() == 0 and halfstripoffset <= -1 and digi.getCFEB() > 0) { + newCFEB = digi.getCFEB() - 1; + } + // case where key half-strip is on the upper edge of the CFEB + if (digi.getStrip() == CSCConstants::NUM_HALF_STRIPS_PER_CFEB - 1 and halfstripoffset >= 1 and + digi.getCFEB() < numCFEBs_) { + newCFEB = digi.getCFEB() + 1; + } + + digi.setCFEB(newCFEB); // store the new 1/2, 1/4 and 1/8 strip positions - digi.setStrip(halfstrip - digi.getCFEB() * 32); - digi.setQuartStrip(std::get<1>(halfstripoffset)); - digi.setEightStrip(std::get<2>(halfstripoffset)); + digi.setStrip(halfstrip - digi.getCFEB() * CSCConstants::NUM_HALF_STRIPS_PER_CFEB); + digi.setQuartStrip(std::get<1>(stripoffset)); + digi.setEighthStrip(std::get<2>(stripoffset)); // store the bending angle value in the pattern data member digi.setSlope(slopeCCValue); @@ -1432,7 +1446,7 @@ void CSCCathodeLCTProcessor::runCCLUT(CSCCLCTDigi& digi) const { strm << "+ CCCLUT algorithm results: +\n"; strm << "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"; strm << " New CLCT digi " << digi << "\n"; - strm << " 1/4 strip bit " << digi.getQuartStrip() << " 1/8 strip bit " << digi.getEightStrip() << "\n"; + strm << " 1/4 strip bit " << digi.getQuartStrip() << " 1/8 strip bit " << digi.getEighthStrip() << "\n"; strm << " 1/4 strip number " << digi.getKeyStrip(4) << " 1/8 strip number " << digi.getKeyStrip(8) << "\n"; strm << "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"; LogDebug("CSCCathodeLCTProcessor") << strm.str(); @@ -1440,7 +1454,7 @@ void CSCCathodeLCTProcessor::runCCLUT(CSCCLCTDigi& digi) const { } unsigned CSCCathodeLCTProcessor::convertSlopeToRun2Pattern(const unsigned slope) const { - const unsigned slopeList[32] = {10, 10, 8, 8, 8, 8, 6, 6, 6, 6, 4, 4, 4, 2, 2, 2, - 10, 10, 9, 9, 9, 9, 7, 7, 7, 7, 5, 5, 5, 3, 3, 3}; + const unsigned slopeList[32] = {10, 10, 10, 8, 8, 8, 6, 6, 6, 6, 4, 4, 2, 2, 2, 2, + 10, 10, 10, 9, 9, 9, 7, 7, 7, 7, 5, 5, 3, 3, 3, 3}; return slopeList[slope]; } diff --git a/L1Trigger/CSCTriggerPrimitives/src/CSCGEMMotherboard.cc b/L1Trigger/CSCTriggerPrimitives/src/CSCGEMMotherboard.cc index 8eb194e38e681..520f63fff0556 100644 --- a/L1Trigger/CSCTriggerPrimitives/src/CSCGEMMotherboard.cc +++ b/L1Trigger/CSCTriggerPrimitives/src/CSCGEMMotherboard.cc @@ -150,7 +150,7 @@ CSCCorrelatedLCTDigi CSCGEMMotherboard::constructLCTsGEM(const CSCALCTDigi& alct // 4-bit slope value derived with the CCLUT algorithm thisLCT.setSlope(clct.getSlope()); thisLCT.setQuartStrip(clct.getQuartStrip()); - thisLCT.setEightStrip(clct.getEightStrip()); + thisLCT.setEighthStrip(clct.getEighthStrip()); thisLCT.setRun3Pattern(clct.getRun3Pattern()); } } else if (alct.isValid() and clct.isValid() and not gem1.isValid() and gem2.isValid()) { @@ -175,7 +175,7 @@ CSCCorrelatedLCTDigi CSCGEMMotherboard::constructLCTsGEM(const CSCALCTDigi& alct // 4-bit slope value derived with the CCLUT algorithm thisLCT.setSlope(clct.getSlope()); thisLCT.setQuartStrip(clct.getQuartStrip()); - thisLCT.setEightStrip(clct.getEightStrip()); + thisLCT.setEighthStrip(clct.getEighthStrip()); thisLCT.setRun3Pattern(clct.getRun3Pattern()); } } else if (alct.isValid() and gem2.isValid() and not clct.isValid()) { @@ -249,7 +249,7 @@ CSCCorrelatedLCTDigi CSCGEMMotherboard::constructLCTsGEM(const CSCALCTDigi& alct // 4-bit slope value derived with the CCLUT algorithm thisLCT.setSlope(clct.getSlope()); thisLCT.setQuartStrip(clct.getQuartStrip()); - thisLCT.setEightStrip(clct.getEightStrip()); + thisLCT.setEighthStrip(clct.getEighthStrip()); thisLCT.setRun3Pattern(clct.getRun3Pattern()); } } diff --git a/L1Trigger/CSCTriggerPrimitives/src/CSCMotherboard.cc b/L1Trigger/CSCTriggerPrimitives/src/CSCMotherboard.cc index 305dcf71ea968..063a369562206 100644 --- a/L1Trigger/CSCTriggerPrimitives/src/CSCMotherboard.cc +++ b/L1Trigger/CSCTriggerPrimitives/src/CSCMotherboard.cc @@ -524,7 +524,7 @@ CSCCorrelatedLCTDigi CSCMotherboard::constructLCTs(const CSCALCTDigi& aLCT, // 4-bit slope value derived with the CCLUT algorithm thisLCT.setSlope(cLCT.getSlope()); thisLCT.setQuartStrip(cLCT.getQuartStrip()); - thisLCT.setEightStrip(cLCT.getEightStrip()); + thisLCT.setEighthStrip(cLCT.getEighthStrip()); thisLCT.setRun3Pattern(cLCT.getRun3Pattern()); } diff --git a/L1Trigger/CSCTriggerPrimitives/src/CSCUpgradeCathodeLCTProcessor.cc b/L1Trigger/CSCTriggerPrimitives/src/CSCUpgradeCathodeLCTProcessor.cc index 0af46aabe7355..c8eb90711f0ab 100644 --- a/L1Trigger/CSCTriggerPrimitives/src/CSCUpgradeCathodeLCTProcessor.cc +++ b/L1Trigger/CSCTriggerPrimitives/src/CSCUpgradeCathodeLCTProcessor.cc @@ -45,9 +45,6 @@ bool CSCUpgradeCathodeLCTProcessor::preTrigger(const PulseArray pulse, const int LogTrace("CSCUpgradeCathodeLCTProcessor") << "....................PreTrigger, Phase2 version with localized dead time zone..........................."; - // Max. number of half-strips for this chamber. - const int nStrips = 2 * numStrips + 1; - int nPreTriggers = 0; bool pre_trig = false; @@ -63,9 +60,9 @@ bool CSCUpgradeCathodeLCTProcessor::preTrigger(const PulseArray pulse, const int std::map > hits_in_patterns; hits_in_patterns.clear(); - bool hits_in_time = patternFinding(pulse, nStrips, bx_time, hits_in_patterns); + bool hits_in_time = patternFinding(pulse, bx_time, hits_in_patterns); if (hits_in_time) { - for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < nStrips; hstrip++) { + for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < numHalfStrips_; hstrip++) { if (infoV > 1) { if (nhits[hstrip] > 0) { LogTrace("CSCUpgradeCathodeLCTProcessor") @@ -102,14 +99,14 @@ bool CSCUpgradeCathodeLCTProcessor::preTrigger(const PulseArray pulse, const int } // find all pretriggers //update dead zone - for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < nStrips; hstrip++) { + for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < numHalfStrips_; hstrip++) { if (ispretrig[hstrip]) { int min_hstrip = hstrip - delta_hs; //only fixed localized dead time zone is implemented int max_hstrip = hstrip + delta_hs; if (min_hstrip < stagger[CSCConstants::KEY_CLCT_LAYER - 1]) min_hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; - if (max_hstrip >= nStrips) - max_hstrip = nStrips - 1; + if (max_hstrip >= numHalfStrips_) + max_hstrip = numHalfStrips_ - 1; for (int hs = min_hstrip; hs <= max_hstrip; hs++) busyMap[hs][bx_time + 1] = true; if (infoV > 1) @@ -123,7 +120,7 @@ bool CSCUpgradeCathodeLCTProcessor::preTrigger(const PulseArray pulse, const int return true; } } else //no pattern found, remove all dead time zone - for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < nStrips; hstrip++) { + for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < numHalfStrips_; hstrip++) { if (ispretrig[hstrip]) ispretrig[hstrip] = false; //dead zone is gone by default } @@ -146,16 +143,13 @@ std::vector CSCUpgradeCathodeLCTProcessor::findLCTs( std::vector lctList; - // Max. number of half-strips for this chamber. - const int maxHalfStrips = 2 * numStrips + 1; - // initialize the ispretrig before doing pretriggering - for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < maxHalfStrips; hstrip++) { + for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < numHalfStrips_; hstrip++) { ispretrig[hstrip] = false; } if (infoV > 1) - dumpDigis(halfstrip, maxHalfStrips); + dumpDigis(halfstrip); // keeps dead-time zones around key halfstrips of triggered CLCTs for (int i = 0; i < CSCConstants::NUM_HALF_STRIPS_7CFEBS; i++) { @@ -169,7 +163,7 @@ std::vector CSCUpgradeCathodeLCTProcessor::findLCTs( unsigned int pulse[CSCConstants::NUM_LAYERS][CSCConstants::NUM_HALF_STRIPS_7CFEBS]; // Fire half-strip one-shots for hit_persist bx's (4 bx's by default). - pulseExtension(halfstrip, maxHalfStrips, pulse); + pulseExtension(halfstrip, pulse); unsigned int start_bx = start_bx_shift; // Stop drift_delay bx's short of fifo_tbins since at later bx's we will @@ -198,10 +192,10 @@ std::vector CSCUpgradeCathodeLCTProcessor::findLCTs( std::map > hits_in_patterns; hits_in_patterns.clear(); - bool hits_in_time = patternFinding(pulse, maxHalfStrips, latch_bx, hits_in_patterns); + bool hits_in_time = patternFinding(pulse, latch_bx, hits_in_patterns); if (infoV > 1) { if (hits_in_time) { - for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < maxHalfStrips; hstrip++) { + for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < numHalfStrips_; hstrip++) { if (nhits[hstrip] > 0) { LogTrace("CSCUpgradeCathodeLCTProcessor") << " bx = " << std::setw(2) << latch_bx << " --->" @@ -248,7 +242,7 @@ std::vector CSCUpgradeCathodeLCTProcessor::findLCTs( } } - for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < maxHalfStrips; hstrip++) { + for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < numHalfStrips_; hstrip++) { // The bend-direction bit pid[0] is ignored (left and right bends have equal quality). quality[hstrip] = (best_pid[hstrip] & 14) | (nhits[hstrip] << 5); // do not consider halfstrips: @@ -274,7 +268,7 @@ std::vector CSCUpgradeCathodeLCTProcessor::findLCTs( // Mark keys near best CLCT as busy by setting their quality to zero, and repeat the search. markBusyKeys(best_halfstrip[0], best_pid[best_halfstrip[0]], quality); - for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < maxHalfStrips; hstrip++) { + for (int hstrip = stagger[CSCConstants::KEY_CLCT_LAYER - 1]; hstrip < numHalfStrips_; hstrip++) { if (quality[hstrip] > best_quality[1] && pretrig_zone[hstrip] && !busyMap[hstrip][first_bx]) //!busyMap[hstrip][latch_bx] ) { diff --git a/L1Trigger/CSCTriggerPrimitives/src/LCTQualityControl.cc b/L1Trigger/CSCTriggerPrimitives/src/LCTQualityControl.cc index 94f8fb82fc4f9..ddaca87d1a9c8 100644 --- a/L1Trigger/CSCTriggerPrimitives/src/LCTQualityControl.cc +++ b/L1Trigger/CSCTriggerPrimitives/src/LCTQualityControl.cc @@ -115,13 +115,13 @@ void LCTQualityControl::checkValid(const CSCCLCTDigi& clct, unsigned max_stubs) checkRange(clct.getCompCode(), 0, std::pow(2, 12) - 1, "CSCCLCTDigi with invalid comparator code: ", errors); const unsigned max_quartstrip = get_csc_max_quartstrip(theStation, theRing); - const unsigned max_eightstrip = get_csc_max_eightstrip(theStation, theRing); + const unsigned max_eighthstrip = get_csc_max_eighthstrip(theStation, theRing); // CLCT key quart-strip must be within bounds checkRange(clct.getKeyStrip(4), 0, max_quartstrip - 1, "CSCCLCTDigi with invalid key quart-strip: ", errors); - // CLCT key eight-strip must be within bounds - checkRange(clct.getKeyStrip(8), 0, max_eightstrip - 1, "CSCCLCTDigi with invalid key quart-strip: ", errors); + // CLCT key eighth-strip must be within bounds + checkRange(clct.getKeyStrip(8), 0, max_eighthstrip - 1, "CSCCLCTDigi with invalid key quart-strip: ", errors); } reportErrors(clct, errors); @@ -132,7 +132,7 @@ void LCTQualityControl::checkValid(const CSCCorrelatedLCTDigi& lct) const { chec void LCTQualityControl::checkValid(const CSCCorrelatedLCTDigi& lct, const unsigned station, const unsigned ring) const { const unsigned max_strip = get_csc_max_halfstrip(station, ring); const unsigned max_quartstrip = get_csc_max_quartstrip(station, ring); - const unsigned max_eightstrip = get_csc_max_eightstrip(station, ring); + const unsigned max_eighthstrip = get_csc_max_eighthstrip(station, ring); const unsigned max_wire = get_csc_max_wire(station, ring); const auto& [min_pattern, max_pattern] = get_csc_lct_min_max_pattern(); const unsigned max_quality = get_csc_lct_max_quality(); @@ -154,8 +154,8 @@ void LCTQualityControl::checkValid(const CSCCorrelatedLCTDigi& lct, const unsign // LCT key quart-strip must be within bounds checkRange(lct.getStrip(4), 0, max_quartstrip - 1, "CSCCorrelatedLCTDigi with invalid key quart-strip: ", errors); - // LCT key eight-strip must be within bounds - checkRange(lct.getStrip(8), 0, max_eightstrip - 1, "CSCCorrelatedLCTDigi with invalid key eight-strip: ", errors); + // LCT key eighth-strip must be within bounds + checkRange(lct.getStrip(8), 0, max_eighthstrip - 1, "CSCCorrelatedLCTDigi with invalid key eighth-strip: ", errors); // LCT key wire-group must be within bounds checkRange(lct.getKeyWG(), 0, max_wire - 1, "CSCCorrelatedLCTDigi with invalid wire-group: ", errors); @@ -306,7 +306,7 @@ unsigned LCTQualityControl::get_csc_max_quartstrip(int station, int ring) const return get_csc_max_halfstrip(station, ring) * 2; } -unsigned LCTQualityControl::get_csc_max_eightstrip(int station, int ring) const { +unsigned LCTQualityControl::get_csc_max_eighthstrip(int station, int ring) const { return get_csc_max_halfstrip(station, ring) * 4; } diff --git a/L1Trigger/CSCTriggerPrimitives/test/macros/CCLUTLinearFitWriter.cpp b/L1Trigger/CSCTriggerPrimitives/test/macros/CCLUTLinearFitWriter.cpp index 398b070e422b6..ca0f2c6aefdd1 100644 --- a/L1Trigger/CSCTriggerPrimitives/test/macros/CCLUTLinearFitWriter.cpp +++ b/L1Trigger/CSCTriggerPrimitives/test/macros/CCLUTLinearFitWriter.cpp @@ -131,7 +131,7 @@ void writeHeaderSlopeLUT(ofstream& file); unsigned firmwareWord(const unsigned quality, const unsigned slope, const unsigned offset); void setDataWord(unsigned& word, const unsigned newWord, const unsigned shift, const unsigned mask); unsigned assignPosition(const float fvalue, const float fmin, const float fmax, const unsigned nbits); -unsigned assignBending(const float fvalue, const float fmin, const float fmax, const unsigned nbits); +unsigned assignBending(const float fvalue); int CCLUTLinearFitWriter(unsigned N_LAYER_REQUIREMENT = 3) { //all the patterns we will fit @@ -340,15 +340,13 @@ int CCLUTLinearFitWriter(unsigned N_LAYER_REQUIREMENT = 3) { // everything is in half-strips const float fmaxOffset = 2; const float fminOffset = -1.75; - const float fmaxSlope = 2.5; - const float fminSlope = 0; // negative bending -> 0 // positive bending -> 1 const bool slope_sign(slope >= 0); const unsigned offset_bin = assignPosition(offset, fminOffset, fmaxOffset, 4); - unsigned slope_bin = assignBending(std::abs(slope), fminSlope, fmaxSlope, 4); + unsigned slope_bin = assignBending(std::abs(slope)); if (slope_sign) slope_bin += 16; const unsigned fwword = firmwareWord(0, slope_bin, offset_bin); @@ -504,7 +502,7 @@ void writeHeaderSlopeLUT(ofstream& file) { } unsigned assignPosition(const float fvalue, const float fmin, const float fmax, const unsigned nbits) { - bool debug; + bool debug = false; unsigned value = 0; const unsigned range = pow(2, nbits); const unsigned minValue = 0; @@ -524,24 +522,23 @@ unsigned assignPosition(const float fvalue, const float fmin, const float fmax, return value; } -unsigned assignBending(const float fvalue, const float fmin, const float fmax, const unsigned nbits) { - bool debug; +unsigned assignBending(const float fvalue) { + bool debug = false; unsigned value = 0; - const unsigned range = pow(2, nbits); - const unsigned minValue = 0; - const unsigned maxValue = range - 1; - const double fdelta = (fmax - fmin) / range; - if (fvalue >= fmax) { - value = maxValue; - } else if (fvalue <= fmin) { - value = minValue; - } else { - value = std::min(unsigned(std::floor((fvalue - fmin) / fdelta)), maxValue); - } - if (debug) - std::cout << "fvalue " << fvalue << " " << fmin << " " << fmax << " " << nbits << " " << value << std::endl; + // as defined in DN-19-059, section 4.8 + float slopes[17] = { + 0.0, 0.125, 0.25, 0.375, 0.5, 0.625, 0.75, 0.875, 1.0, 1.125, 1.25, 1.375, 1.5, 1.625, 1.75, 2.0, 2.5}; + for (unsigned i = 0; i < 16; i++) { + if (fvalue >= slopes[i] and fvalue < slopes[i + 1]) { + value = i; + } + } + // overflow bin or undefined value + if (fvalue >= slopes[16]) { + value = 15; + } return value; } diff --git a/L1Trigger/Configuration/python/customiseReEmul.py b/L1Trigger/Configuration/python/customiseReEmul.py index 082ee58efd537..c26b3579249b6 100644 --- a/L1Trigger/Configuration/python/customiseReEmul.py +++ b/L1Trigger/Configuration/python/customiseReEmul.py @@ -3,6 +3,7 @@ import FWCore.ParameterSet.Config as cms from Configuration.Eras.Modifier_stage2L1Trigger_cff import stage2L1Trigger from Configuration.Eras.Modifier_stage2L1Trigger_2017_cff import stage2L1Trigger_2017 +from Configuration.Eras.Modifier_run3_GEM_cff import run3_GEM def L1TCaloStage2ParamsForHW(process): process.load("L1Trigger.L1TCalorimeter.caloStage2Params_HWConfig_cfi") @@ -134,12 +135,13 @@ def L1TReEmulFromRAW2016(process): process.simCscTriggerPrimitiveDigis.CSCWireDigiProducer = cms.InputTag( 'muonCSCDigis', 'MuonCSCWireDigi' ) process.L1TReEmul = cms.Sequence(process.simEcalTriggerPrimitiveDigis * process.simHcalTriggerPrimitiveDigis * process.SimL1Emulator) + #cutlist=['simDtTriggerPrimitiveDigis','simCscTriggerPrimitiveDigis'] #for b in cutlist: # process.SimL1Emulator.remove(getattr(process,b)) # TwinMux stage2L1Trigger.toModify(process.simTwinMuxDigis, - RPC_Source = 'RPCTwinMuxRawToDigi', + RPC_Source = 'rpcTwinMuxRawToDigi', DTDigi_Source = 'twinMuxStage2Digis:PhIn', DTThetaDigi_Source = 'twinMuxStage2Digis:ThIn' ) @@ -179,10 +181,11 @@ def L1TReEmulFromRAW2016(process): process.L1TReEmulPath = cms.Path(process.L1TReEmul) process.schedule.append(process.L1TReEmulPath) - return process + return process def L1TReEmulFromRAW(process): L1TReEmulFromRAW2016(process) + stage2L1Trigger_2017.toModify(process.simOmtfDigis, srcRPC = 'omtfStage2Digis', @@ -191,6 +194,25 @@ def L1TReEmulFromRAW(process): srcDTTh = 'omtfStage2Digis' ) + stage2L1Trigger.toModify(process.simEmtfDigis, + CSCInput = cms.InputTag('emtfStage2Digis'), + RPCInput = cms.InputTag('muonRPCDigis'), + CPPFInput = cms.InputTag('emtfStage2Digis'), + GEMEnable = cms.bool(False), + GEMInput = cms.InputTag('muonGEMPadDigis'), + CPPFEnable = cms.bool(True), # Use CPPF-emulated clustered RPC hits from CPPF as the RPC hits + ) + + run3_GEM.toModify(process.simMuonGEMPadDigis, + InputCollection = 'muonGEMDigis', + ) + + run3_GEM.toModify(process.simTwinMuxDigis, + RPC_Source = 'rpcTwinMuxRawToDigi', + DTDigi_Source = 'simDtTriggerPrimitiveDigis', + DTThetaDigi_Source = 'simDtTriggerPrimitiveDigis' + ) + print("# L1TReEmul sequence: ") print("# {0}".format(process.L1TReEmul)) print("# {0}".format(process.schedule)) diff --git a/L1Trigger/Configuration/python/customiseSettings.py b/L1Trigger/Configuration/python/customiseSettings.py index 170822bd6cc65..12a240d5bb1b9 100644 --- a/L1Trigger/Configuration/python/customiseSettings.py +++ b/L1Trigger/Configuration/python/customiseSettings.py @@ -10,6 +10,10 @@ def L1TSettingsToCaloParams_2018_v1_4(process): process.load("L1Trigger.L1TCalorimeter.caloParams_2018_v1_4_cfi") return process +def L1TSettingsToCaloParams_2018_v1_3(process): + process.load("L1Trigger.L1TCalorimeter.caloParams_2018_v1_3_cfi") + return process + def L1TSettingsToCaloParams_2018_v1_2(process): process.load("L1Trigger.L1TCalorimeter.caloParams_2018_v1_2_cfi") return process diff --git a/L1Trigger/Configuration/test/GEMeMapDummy.db b/L1Trigger/Configuration/test/GEMeMapDummy.db new file mode 100644 index 0000000000000..07e7f6e139ec2 Binary files /dev/null and b/L1Trigger/Configuration/test/GEMeMapDummy.db differ diff --git a/L1Trigger/Configuration/test/mc_L1TReEmulMCFromRAW_L1NtupleEMU_fixConfigGEM.py b/L1Trigger/Configuration/test/mc_L1TReEmulMCFromRAW_L1NtupleEMU_fixConfigGEM.py new file mode 100644 index 0000000000000..4f4bff091859a --- /dev/null +++ b/L1Trigger/Configuration/test/mc_L1TReEmulMCFromRAW_L1NtupleEMU_fixConfigGEM.py @@ -0,0 +1,122 @@ +# Auto generated configuration file +# using: +# Revision: 1.19 +# Source: /local/reps/CMSSW/CMSSW/Configuration/Applications/python/ConfigBuilder.py,v +# with command line options: l1Ntuple -s RAW2DIGI --python_filename=mc_L1TReEmulMCFromRAW_L1NtupleEMU.py -n 2 --no_output --era=Run3 --mc --conditions=112X_mcRun3_2021_realistic_v13 --customise=L1Trigger/Configuration/customiseReEmul.L1TReEmulMCFromRAW --customise=L1Trigger/L1TNtuples/customiseL1Ntuple.L1NtupleEMU --customise=L1Trigger/Configuration/customiseSettings.L1TSettingsToCaloParams_2018_v1_4 --filein=/store/mc/Run3Winter20DRPremixMiniAOD/TT_TuneCP5_14TeV-powheg-pythia8/GEN-SIM-RAW/110X_mcRun3_2021_realistic_v6-v2/20000/CFCAE998-5A17-FB48-A36F-A31EA28D2A72.root +import FWCore.ParameterSet.Config as cms + +from Configuration.Eras.Era_Run3_cff import Run3 + +process = cms.Process('RAW2DIGI',Run3) + +# import of standard configurations +process.load('Configuration.StandardSequences.Services_cff') +process.load('SimGeneral.HepPDTESSource.pythiapdt_cfi') +process.load('FWCore.MessageService.MessageLogger_cfi') +process.load('Configuration.EventContent.EventContent_cff') +process.load('SimGeneral.MixingModule.mixNoPU_cfi') +process.load('Configuration.StandardSequences.GeometryRecoDB_cff') +process.load('Configuration.StandardSequences.MagneticField_cff') +process.load('Configuration.StandardSequences.RawToDigi_cff') +process.load('Configuration.StandardSequences.EndOfProcess_cff') +process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(10), + output = cms.optional.untracked.allowed(cms.int32,cms.PSet) +) + +# Input source +process.source = cms.Source("PoolSource", + fileNames = cms.untracked.vstring('/store/mc/Run3Winter20DRPremixMiniAOD/TT_TuneCP5_14TeV-powheg-pythia8/GEN-SIM-RAW/110X_mcRun3_2021_realistic_v6-v2/20000/CFCAE998-5A17-FB48-A36F-A31EA28D2A72.root'), + secondaryFileNames = cms.untracked.vstring() +) + +process.options = cms.untracked.PSet( + FailPath = cms.untracked.vstring(), + IgnoreCompletely = cms.untracked.vstring(), + Rethrow = cms.untracked.vstring(), + SkipEvent = cms.untracked.vstring(), + allowUnscheduled = cms.obsolete.untracked.bool, + canDeleteEarly = cms.untracked.vstring(), + emptyRunLumiMode = cms.obsolete.untracked.string, + eventSetup = cms.untracked.PSet( + forceNumberOfConcurrentIOVs = cms.untracked.PSet( + allowAnyLabel_=cms.required.untracked.uint32 + ), + numberOfConcurrentIOVs = cms.untracked.uint32(1) + ), + fileMode = cms.untracked.string('FULLMERGE'), + forceEventSetupCacheClearOnNewRun = cms.untracked.bool(False), + makeTriggerResults = cms.obsolete.untracked.bool, + numberOfConcurrentLuminosityBlocks = cms.untracked.uint32(1), + numberOfConcurrentRuns = cms.untracked.uint32(1), + numberOfStreams = cms.untracked.uint32(0), + numberOfThreads = cms.untracked.uint32(1), + printDependencies = cms.untracked.bool(False), + sizeOfStackForThreadsInKB = cms.optional.untracked.uint32, + throwIfIllegalParameter = cms.untracked.bool(True), + wantSummary = cms.untracked.bool(False) +) + +# Production Info +process.configurationMetadata = cms.untracked.PSet( + annotation = cms.untracked.string('l1Ntuple nevts:2'), + name = cms.untracked.string('Applications'), + version = cms.untracked.string('$Revision: 1.19 $') +) + +# Output definition + +# Additional output definition + +# Other statements +from Configuration.AlCa.GlobalTag import GlobalTag +process.GlobalTag = GlobalTag(process.GlobalTag, '112X_mcRun3_2021_realistic_v13', '') + +process.GlobalTag.toGet = cms.VPSet( + cms.PSet(record = cms.string("GEMeMapRcd"), + tag = cms.string("GEMeMapDummy"), + connect = cms.string("sqlite_file:L1Trigger/Configuration/test/GEMeMapDummy.db") + ) +) +process.muonGEMDigis.useDBEMap = True + +# Path and EndPath definitions +process.raw2digi_step = cms.Path(process.RawToDigi) +process.endjob_step = cms.EndPath(process.endOfProcess) + +# Schedule definition +process.schedule = cms.Schedule(process.raw2digi_step,process.endjob_step) +from PhysicsTools.PatAlgos.tools.helpers import associatePatAlgosToolsTask +associatePatAlgosToolsTask(process) + +# customisation of the process. + +# Automatic addition of the customisation function from L1Trigger.Configuration.customiseReEmul +from L1Trigger.Configuration.customiseReEmul import L1TReEmulMCFromRAW + +#call to customisation function L1TReEmulMCFromRAW imported from L1Trigger.Configuration.customiseReEmul +process = L1TReEmulMCFromRAW(process) + +# Automatic addition of the customisation function from L1Trigger.L1TNtuples.customiseL1Ntuple +from L1Trigger.L1TNtuples.customiseL1Ntuple import L1NtupleEMU + +#call to customisation function L1NtupleEMU imported from L1Trigger.L1TNtuples.customiseL1Ntuple +process = L1NtupleEMU(process) + +# Automatic addition of the customisation function from L1Trigger.Configuration.customiseSettings +from L1Trigger.Configuration.customiseSettings import L1TSettingsToCaloParams_2018_v1_4 + +#call to customisation function L1TSettingsToCaloParams_2018_v1_4 imported from L1Trigger.Configuration.customiseSettings +process = L1TSettingsToCaloParams_2018_v1_4(process) + +# End of customisation functions + + +# Customisation from command line + +# Add early deletion of temporary data products to reduce peak memory need +from Configuration.StandardSequences.earlyDeleteSettings_cff import customiseEarlyDelete +process = customiseEarlyDelete(process) +# End adding early deletion diff --git a/L1Trigger/DTTriggerPhase2/interface/GlobalCoordsObtainer.h b/L1Trigger/DTTriggerPhase2/interface/GlobalCoordsObtainer.h new file mode 100644 index 0000000000000..af9d789c3d56f --- /dev/null +++ b/L1Trigger/DTTriggerPhase2/interface/GlobalCoordsObtainer.h @@ -0,0 +1,80 @@ +#ifndef L1Trigger_DTTriggerPhase2_GlobalCoordsObtainer_h +#define L1Trigger_DTTriggerPhase2_GlobalCoordsObtainer_h + +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Utilities/interface/ESGetToken.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" +#include "FWCore/Framework/interface/FrameworkfwdMostUsed.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/Run.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" + +#include "DataFormats/MuonDetId/interface/DTChamberId.h" + +#include "L1Trigger/DTTriggerPhase2/interface/constants.h" + +#include +#include +#include + +// =============================================================================== +// Previous definitions and declarations +// =============================================================================== + +struct lut_value { + long int a; + long int b; +}; + +struct lut_group { + std::map phic; + std::map phi1; + std::map phi3; + std::map phib; +}; + +struct global_constant_per_sl { + double perp; + double x_phi0; +}; + +struct global_constant { + uint32_t chid; + global_constant_per_sl sl1; + global_constant_per_sl sl3; +}; + +// =============================================================================== +// Class declarations +// =============================================================================== + +class GlobalCoordsObtainer { +public: + GlobalCoordsObtainer(const edm::ParameterSet& pset); + ~GlobalCoordsObtainer(); + + void generate_luts(); + std::vector get_global_coordinates(uint32_t, int, int, int); + +private: + std::map calc_atan_lut(int, int, double, double, double, int, int, int, int, int); + // utilities to go to and from 2 complement + int to_two_comp(int val, int size) { + if (val >= 0) + return val; + return std::pow(2, size) + val; + } + + int from_two_comp(int val, int size) { return val - ((2 * val) & (1 << size)); } + + // attributes + bool cmssw_for_global_; + edm::FileInPath global_coords_filename_; + std::vector global_constants; + std::map luts; +}; + +#endif \ No newline at end of file diff --git a/L1Trigger/DTTriggerPhase2/interface/MuonPathAnalyticAnalyzer.h b/L1Trigger/DTTriggerPhase2/interface/MuonPathAnalyticAnalyzer.h new file mode 100644 index 0000000000000..c7624d7834326 --- /dev/null +++ b/L1Trigger/DTTriggerPhase2/interface/MuonPathAnalyticAnalyzer.h @@ -0,0 +1,118 @@ +#ifndef L1Trigger_DTTriggerPhase2_MuonPathAnalyticAnalyzer_h +#define L1Trigger_DTTriggerPhase2_MuonPathAnalyticAnalyzer_h + +#include "L1Trigger/DTTriggerPhase2/interface/MuonPathAnalyzer.h" + +// =============================================================================== +// Previous definitions and declarations +// =============================================================================== + +struct MAGNITUDE { + int add; + int coeff[4]; + int mult; +}; + +struct CONSTANTS { + MAGNITUDE pos; + MAGNITUDE slope; + MAGNITUDE slope_xhh; + MAGNITUDE t0; +}; + +struct LATCOMB_CONSTANTS { + int latcomb; + CONSTANTS constants; +}; + +struct CELL_VALID_LAYOUT { + int cell_horiz_layout[4]; + int valid[4]; +}; + +struct CELL_VALID_LAYOUT_CONSTANTS { + CELL_VALID_LAYOUT cell_valid_layout; + LATCOMB_CONSTANTS latcomb_constants[6]; +}; + +// =============================================================================== +// Class declarations +// =============================================================================== + +class MuonPathAnalyticAnalyzer : public MuonPathAnalyzer { +public: + // Constructors and destructor + MuonPathAnalyticAnalyzer(const edm::ParameterSet &pset, + edm::ConsumesCollector &iC, + std::shared_ptr &globalcoordsobtainer); + ~MuonPathAnalyticAnalyzer() override; + + // Main methods + void initialise(const edm::EventSetup &iEventSetup) override; + void run(edm::Event &iEvent, + const edm::EventSetup &iEventSetup, + MuonPathPtrs &inMpath, + std::vector &metaPrimitives) override; + void run(edm::Event &iEvent, + const edm::EventSetup &iEventSetup, + MuonPathPtrs &inMpath, + MuonPathPtrs &outMPath) override{}; + + void finish() override; + + // Other public methods + + bool hasPosRF(int wh, int sec) { return wh > 0 || (wh == 0 && sec % 4 > 1); }; + + // Public attributes + DTGeometry const *dtGeo_; + edm::ESGetToken dtGeomH; + + //shift + edm::FileInPath shift_filename_; + std::map shiftinfo_; + + //shift theta + edm::FileInPath shift_theta_filename_; + std::map shiftthetainfo_; + + int chosen_sl_; + +private: + // Private methods + void analyze(MuonPathPtr &inMPath, std::vector &metaPrimitives); + void fillLAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER(); + void segment_fitter(DTSuperLayerId MuonPathSLId, + int wires[4], + int t0s[4], + int valid[4], + int reduced_times[4], + int cell_horiz_layout[4], + LATCOMB_CONSTANTS latcomb_consts, + int xwire_mm[4], + int coarse_pos, + int coarse_offset, + std::vector &metaPrimitives); + int compute_parameter(MAGNITUDE constants, int t0s[4], int DIV_SHR_BITS, int INCREASED_RES); + std::vector getLateralityCombination(int latcomb); + + // Private attributes + + bool debug_; + double chi2Th_; + double tanPhiTh_; + double tanPhiThw2max_; + double tanPhiThw2min_; + double tanPhiThw1max_; + double tanPhiThw1min_; + double tanPhiThw0_; + int cellLayout_[cmsdt::NUM_LAYERS]; + bool cmssw_for_global_; + std::string geometry_tag_; + std::vector LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER; + + // global coordinates + std::shared_ptr globalcoordsobtainer_; +}; + +#endif diff --git a/L1Trigger/DTTriggerPhase2/interface/MuonPathAnalyzer.h b/L1Trigger/DTTriggerPhase2/interface/MuonPathAnalyzer.h index 159a6289273e0..470b276708a8a 100644 --- a/L1Trigger/DTTriggerPhase2/interface/MuonPathAnalyzer.h +++ b/L1Trigger/DTTriggerPhase2/interface/MuonPathAnalyzer.h @@ -19,6 +19,7 @@ #include "L1Trigger/DTTriggerPhase2/interface/MuonPath.h" #include "L1Trigger/DTTriggerPhase2/interface/constants.h" +#include "L1Trigger/DTTriggerPhase2/interface/GlobalCoordsObtainer.h" #include "Geometry/Records/interface/MuonGeometryRecord.h" #include "Geometry/DTGeometry/interface/DTGeometry.h" diff --git a/L1Trigger/DTTriggerPhase2/interface/MuonPathAnalyzerInChamber.h b/L1Trigger/DTTriggerPhase2/interface/MuonPathAnalyzerInChamber.h index 3baf7556d7309..05fdf8ed6d33b 100644 --- a/L1Trigger/DTTriggerPhase2/interface/MuonPathAnalyzerInChamber.h +++ b/L1Trigger/DTTriggerPhase2/interface/MuonPathAnalyzerInChamber.h @@ -25,7 +25,7 @@ class MuonPathAnalyzerInChamber : public MuonPathAnalyzer { void run(edm::Event &iEvent, const edm::EventSetup &iEventSetup, MuonPathPtrs &inMpath, - std::vector &metaPrimitives) override {} + std::vector &metaPrimitives) override{}; void run(edm::Event &iEvent, const edm::EventSetup &iEventSetup, MuonPathPtrs &inMpath, @@ -38,7 +38,7 @@ class MuonPathAnalyzerInChamber : public MuonPathAnalyzer { void setMinHits4Fit(int h) { minHits4Fit_ = h; }; void setChiSquareThreshold(float ch2Thr) { chiSquareThreshold_ = ch2Thr; }; void setMinimumQuality(cmsdt::MP_QUALITY q) { - if (minQuality_ >= cmsdt::LOWQGHOST) + if (minQuality_ >= cmsdt::LOWQ) minQuality_ = q; }; diff --git a/L1Trigger/DTTriggerPhase2/interface/MuonPathAnalyzerPerSL.h b/L1Trigger/DTTriggerPhase2/interface/MuonPathAnalyzerPerSL.h deleted file mode 100644 index 7352ea9677bdd..0000000000000 --- a/L1Trigger/DTTriggerPhase2/interface/MuonPathAnalyzerPerSL.h +++ /dev/null @@ -1,103 +0,0 @@ -#ifndef L1Trigger_DTTriggerPhase2_MuonPathAnalyzerPerSL_h -#define L1Trigger_DTTriggerPhase2_MuonPathAnalyzerPerSL_h - -#include "L1Trigger/DTTriggerPhase2/interface/MuonPathAnalyzer.h" - -// =============================================================================== -// Class declarations -// =============================================================================== - -class MuonPathAnalyzerPerSL : public MuonPathAnalyzer { -public: - // Constructors and destructor - MuonPathAnalyzerPerSL(const edm::ParameterSet &pset, edm::ConsumesCollector &iC); - ~MuonPathAnalyzerPerSL() override; - - // Main methods - void initialise(const edm::EventSetup &iEventSetup) override; - void run(edm::Event &iEvent, - const edm::EventSetup &iEventSetup, - MuonPathPtrs &inMpath, - std::vector &metaPrimitives) override; - void run(edm::Event &iEvent, - const edm::EventSetup &iEventSetup, - MuonPathPtrs &inMpath, - MuonPathPtrs &outMPath) override{}; - - void finish() override; - - // Other public methods - void setBXTolerance(int t) { bxTolerance_ = t; }; - int bxTolerance(void) { return bxTolerance_; }; - - void setChiSquareThreshold(float ch2Thr) { chiSquareThreshold_ = ch2Thr; }; - - void setMinQuality(cmsdt::MP_QUALITY q) { - if (minQuality_ >= cmsdt::LOWQGHOST) - minQuality_ = q; - }; - cmsdt::MP_QUALITY minQuality(void) { return minQuality_; }; - - bool hasPosRF(int wh, int sec) { return wh > 0 || (wh == 0 && sec % 4 > 1); }; - - // Public attributes - DTGeometry const *dtGeo_; - edm::ESGetToken dtGeomH; - - //shift - edm::FileInPath shift_filename_; - std::map shiftinfo_; - - int chosen_sl_; - -private: - // Private methods - void analyze(MuonPathPtr &inMPath, std::vector &metaPrimitives); - - void setCellLayout(const int layout[cmsdt::NUM_LAYERS]); - void buildLateralities(void); - bool isStraightPath(cmsdt::LATERAL_CASES sideComb[cmsdt::NUM_LAYERS]); - - void evaluatePathQuality(MuonPathPtr &mPath); - void evaluateLateralQuality(int latIdx, MuonPathPtr &mPath, cmsdt::LATQ_TYPE *latQuality); - void validate(cmsdt::LATERAL_CASES sideComb[3], int layerIndex[3], MuonPathPtr &mPath, cmsdt::PARTIAL_LATQ_TYPE *latq); - - int eqMainBXTerm(cmsdt::LATERAL_CASES sideComb[2], int layerIdx[2], MuonPathPtr &mPath); - - int eqMainTerm(cmsdt::LATERAL_CASES sideComb[2], int layerIdx[2], MuonPathPtr &mPath, int bxValue); - - void lateralCoeficients(cmsdt::LATERAL_CASES sideComb[2], int *coefs); - bool sameBXValue(cmsdt::PARTIAL_LATQ_TYPE *latq); - - void calculatePathParameters(MuonPathPtr &mPath); - void calcTanPhiXPosChamber(MuonPathPtr &mPath); - void calcCellDriftAndXcoor(MuonPathPtr &mPath); - void calcChiSquare(MuonPathPtr &mPath); - - void calcTanPhiXPosChamber3Hits(MuonPathPtr &mPath); - void calcTanPhiXPosChamber4Hits(MuonPathPtr &mPath); - - int omittedHit(int idx); - - // Private attributes - - static const int LAYER_ARRANGEMENTS_[cmsdt::NUM_LAYERS][cmsdt::NUM_CELL_COMB]; - cmsdt::LATERAL_CASES lateralities_[cmsdt::NUM_LATERALITIES][cmsdt::NUM_LAYERS]; - cmsdt::LATQ_TYPE latQuality_[cmsdt::NUM_LATERALITIES]; - - int totalNumValLateralities_; - - int bxTolerance_; - cmsdt::MP_QUALITY minQuality_; - float chiSquareThreshold_; - bool debug_; - double chi2Th_; - double chi2corTh_; - double tanPhiTh_; - int cellLayout_[cmsdt::NUM_LAYERS]; - bool use_LSB_; - double tanPsi_precision_; - double x_precision_; -}; - -#endif diff --git a/L1Trigger/DTTriggerPhase2/interface/MuonPathAssociator.h b/L1Trigger/DTTriggerPhase2/interface/MuonPathAssociator.h index 8586f54f3b96b..06b2246eb5637 100644 --- a/L1Trigger/DTTriggerPhase2/interface/MuonPathAssociator.h +++ b/L1Trigger/DTTriggerPhase2/interface/MuonPathAssociator.h @@ -15,6 +15,7 @@ #include "L1Trigger/DTTriggerPhase2/interface/MuonPath.h" #include "L1Trigger/DTTriggerPhase2/interface/constants.h" +#include "L1Trigger/DTTriggerPhase2/interface/GlobalCoordsObtainer.h" #include "Geometry/Records/interface/MuonGeometryRecord.h" #include "Geometry/DTGeometry/interface/DTGeometry.h" @@ -34,7 +35,9 @@ class MuonPathAssociator { public: // Constructors and destructor - MuonPathAssociator(const edm::ParameterSet &pset, edm::ConsumesCollector &iC); + MuonPathAssociator(const edm::ParameterSet &pset, + edm::ConsumesCollector &iC, + std::shared_ptr &globalcoordsobtainer); ~MuonPathAssociator(); // Main methods @@ -80,13 +83,15 @@ class MuonPathAssociator { double dTanPsi_correlate_TP_; double minx_match_2digis_; double chi2corTh_; - bool use_LSB_; - double tanPsi_precision_; - double x_precision_; + bool cmssw_for_global_; + std::string geometry_tag_; //shift edm::FileInPath shift_filename_; std::map shiftinfo_; + + // global coordinates + std::shared_ptr globalcoordsobtainer_; }; #endif diff --git a/L1Trigger/DTTriggerPhase2/interface/RPCIntegrator.h b/L1Trigger/DTTriggerPhase2/interface/RPCIntegrator.h index 0e7b1ba0e9dc3..e4b6852844425 100644 --- a/L1Trigger/DTTriggerPhase2/interface/RPCIntegrator.h +++ b/L1Trigger/DTTriggerPhase2/interface/RPCIntegrator.h @@ -16,6 +16,8 @@ #include "DataFormats/DTDigi/interface/DTDigiCollection.h" #include "DataFormats/L1DTTrackFinder/interface/L1Phase2MuDTPhContainer.h" #include "DataFormats/L1DTTrackFinder/interface/L1Phase2MuDTPhDigi.h" +#include "DataFormats/L1DTTrackFinder/interface/L1Phase2MuDTThContainer.h" +#include "DataFormats/L1DTTrackFinder/interface/L1Phase2MuDTThDigi.h" #include "DataFormats/RPCRecHit/interface/RPCRecHitCollection.h" #include diff --git a/L1Trigger/DTTriggerPhase2/interface/constants.h b/L1Trigger/DTTriggerPhase2/interface/constants.h index 3c7e1b7756f78..d73a078811b2f 100644 --- a/L1Trigger/DTTriggerPhase2/interface/constants.h +++ b/L1Trigger/DTTriggerPhase2/interface/constants.h @@ -38,7 +38,8 @@ */ namespace cmsdt { - enum MP_QUALITY { NOPATH = 0, LOWQGHOST, LOWQ, HIGHQGHOST, HIGHQ, CLOWQ, LOWLOWQ, CHIGHQ, HIGHLOWQ, HIGHHIGHQ }; + // enum MP_QUALITY { NOPATH = 0, LOWQGHOST, LOWQ, HIGHQGHOST, HIGHQ, CLOWQ, LOWLOWQ, CHIGHQ, HIGHLOWQ, HIGHHIGHQ }; + enum MP_QUALITY { NOPATH = 0, LOWQ = 1, CLOWQ = 2, HIGHQ = 3, CHIGHQ = 4, LOWLOWQ = 6, HIGHLOWQ = 7, HIGHHIGHQ = 8 }; // Tipos de lateralidad de traza de partícula al pasar por una celda enum LATERAL_CASES { LEFT = 0, RIGHT, NONE }; @@ -171,15 +172,27 @@ namespace cmsdt { /* Adimensional */ constexpr int MAX_BX_IDX = 3564; - // En nanosegundos (tiempo de deriva en la celda) - constexpr float MAXDRIFT = 386.75; - // En milímetros (dimensiones de la celda) + // In ns (maximum drift time inside the cell) + constexpr float MAXDRIFT = 387; + // In mm (cell dimmensions) constexpr int CELL_HEIGHT = 13; constexpr float CELL_SEMIHEIGHT = 6.5; constexpr int CELL_LENGTH = 42; constexpr int CELL_SEMILENGTH = 21; - // En milímetros / nanosegundo (velocidad de deriva) + // In mm / ns (velocidad de deriva) constexpr float DRIFT_SPEED = 0.0542; + // With 4 bits for the decimal part + constexpr int DRIFT_SPEED_X4 = 889; // 55.5 * 2 ** 4 + + // distance between SLs, cm + constexpr float VERT_PHI1_PHI3 = 23.5; + + // inverse of the distance between SLs, FW units + constexpr int VERT_PHI1_PHI3_INV = 558; + + // distance between center of the chamber and each SL in mm, 2 bit precision for the decimal part + constexpr int CH_CENTER_TO_MID_SL_X2 = 470; // 117.5 * 2 ** 2 + /* This is the maximum value than internal time can take. This is because internal time is cyclical due to the limited size of the time counters and @@ -202,17 +215,13 @@ namespace cmsdt { constexpr int NUM_CELL_COMB = 3; constexpr int TOTAL_CHANNELS = (NUM_LAYERS * NUM_CH_PER_LAYER); constexpr int NUM_SUPERLAYERS = 3; - constexpr float PHIRES_CONV = 65536. / 0.8; - constexpr float PHIBRES_CONV = 2048. / 1.4; + constexpr float PHIRES_CONV = 65536. / 0.5; // 17 bits, [-0.5, 0.5] + constexpr float PHIBRES_CONV = 4096. / 2.; // 13 bits, [-2, 2] constexpr int CHI2RES_CONV = 1000000; + constexpr int TDCTIME_REDUCED_SIZE = 10; + constexpr float ZRES_CONV = 65536. / 1500; + constexpr float KRES_CONV = 65536. / 2; - constexpr int DIVISION_HELPER1 = 43691; - constexpr int DIVISION_HELPER2 = 65536; - constexpr int DIVISION_HELPER3 = 131072; - constexpr int DENOM_TYPE1 = 6; - constexpr int DENOM_TYPE2 = 4; - constexpr int DENOM_TYPE3 = 2; - constexpr int NBITS = 18; /* * Size of pre-mixer buffers for DTPrimitives * @@ -245,9 +254,49 @@ namespace cmsdt { constexpr double X_POS_L3 = 0.65; constexpr double X_POS_L4 = 1.95; - constexpr int MEANTIME_2LAT = 16384; - constexpr int MEANTIME_3LAT = 10923; - constexpr int MEANTIME_4LAT = 8192; + /* + * Analyzer precision constants + */ + constexpr int DIV_SHR_BITS_T0 = 16; + constexpr int DIV_SHR_BITS_POS = 21; + constexpr int DIV_SHR_BITS_SLOPE = 21; + constexpr int DIV_SHR_BITS_SLOPE_XHH = 18; + + constexpr int INCREASED_RES_T0 = 0; + constexpr int INCREASED_RES_POS = 4; + constexpr int INCREASED_RES_SLOPE = 12; + constexpr int INCREASED_RES_SLOPE_XHH = 4; + + constexpr int INCREASED_RES_POS_POW = 16; + constexpr int INCREASED_RES_SLOPE_POW = 4096; + + // Values to compute drift distances from drift times + constexpr int DTDD_PREADD = 9; + constexpr int DTDD_MULT = 445; + constexpr int DTDD_SHIFTR_BITS = 13; + + /* + * Local to global coordinates transformation + */ + + constexpr int X_SIZE = 18; + constexpr int TANPSI_SIZE = 15; + constexpr int PHI_SIZE = 17; // (1 / 2 ** 17) + constexpr int PHIB_SIZE = 11; // (2 ** 2) / (2 ** 13) + + constexpr int PHI_LUT_ADDR_WIDTH = 12; + constexpr int PHI_B_SHL_BITS = 7; + constexpr int PHI_MULT_SHR_BITS = 10; + constexpr int PHI_LUT_A_BITS = 12; + constexpr int PHI_LUT_B_BITS = 20; + + constexpr int PHIB_LUT_ADDR_WIDTH = 9; + constexpr int PHIB_B_SHL_BITS = 7; + constexpr int PHIB_MULT_SHR_BITS = 10; + constexpr int PHIB_LUT_A_BITS = 10; + constexpr int PHIB_LUT_B_BITS = 16; + + constexpr int PHI_PHIB_RES_DIFF_BITS = 6; } // namespace cmsdt diff --git a/L1Trigger/DTTriggerPhase2/plugins/DTTrigPhase2Prod.cc b/L1Trigger/DTTriggerPhase2/plugins/DTTrigPhase2Prod.cc index 0d9925a8cd08c..73a4a84895f29 100644 --- a/L1Trigger/DTTriggerPhase2/plugins/DTTrigPhase2Prod.cc +++ b/L1Trigger/DTTriggerPhase2/plugins/DTTrigPhase2Prod.cc @@ -27,12 +27,13 @@ #include "L1Trigger/DTTriggerPhase2/interface/HoughGrouping.h" #include "L1Trigger/DTTriggerPhase2/interface/PseudoBayesGrouping.h" #include "L1Trigger/DTTriggerPhase2/interface/MuonPathAnalyzer.h" -#include "L1Trigger/DTTriggerPhase2/interface/MuonPathAnalyzerPerSL.h" +#include "L1Trigger/DTTriggerPhase2/interface/MuonPathAnalyticAnalyzer.h" #include "L1Trigger/DTTriggerPhase2/interface/MuonPathAnalyzerInChamber.h" #include "L1Trigger/DTTriggerPhase2/interface/MuonPathAssociator.h" #include "L1Trigger/DTTriggerPhase2/interface/MPFilter.h" #include "L1Trigger/DTTriggerPhase2/interface/MPQualityEnhancerFilter.h" #include "L1Trigger/DTTriggerPhase2/interface/MPRedundantFilter.h" +#include "L1Trigger/DTTriggerPhase2/interface/GlobalCoordsObtainer.h" #include "DataFormats/MuonDetId/interface/DTChamberId.h" #include "DataFormats/MuonDetId/interface/DTSuperLayerId.h" @@ -41,6 +42,8 @@ #include "DataFormats/DTDigi/interface/DTDigiCollection.h" #include "DataFormats/L1DTTrackFinder/interface/L1Phase2MuDTPhContainer.h" #include "DataFormats/L1DTTrackFinder/interface/L1Phase2MuDTPhDigi.h" +#include "DataFormats/L1DTTrackFinder/interface/L1Phase2MuDTThContainer.h" +#include "DataFormats/L1DTTrackFinder/interface/L1Phase2MuDTThDigi.h" // DT trigger GeomUtils #include "DQM/DTMonitorModule/interface/DTTrigGeomUtils.h" @@ -114,10 +117,8 @@ class DTTrigPhase2Prod : public edm::stream::EDProducer<> { double dT0_correlate_TP_; bool do_correlation_; int scenario_; - - // shift - edm::FileInPath shift_filename_; - std::map shiftinfo_; + bool cmssw_for_global_; + std::string geometry_tag_; // ParameterSet edm::EDGetTokenT dtDigisToken_; @@ -130,6 +131,7 @@ class DTTrigPhase2Prod : public edm::stream::EDProducer<> { std::unique_ptr mpathqualityenhancer_; std::unique_ptr mpathredundantfilter_; std::unique_ptr mpathassociator_; + std::shared_ptr globalcoordsobtainer_; // Buffering bool activateBuffer_; @@ -161,6 +163,7 @@ namespace { DTTrigPhase2Prod::DTTrigPhase2Prod(const ParameterSet& pset) : qmap_({{9, 9}, {8, 8}, {7, 6}, {6, 7}, {5, 3}, {4, 5}, {3, 4}, {2, 2}, {1, 1}}) { produces(); + produces(); debug_ = pset.getUntrackedParameter("debug"); dump_ = pset.getUntrackedParameter("dump"); @@ -176,7 +179,14 @@ DTTrigPhase2Prod::DTTrigPhase2Prod(const ParameterSet& pset) // Choosing grouping scheme: algo_ = pset.getParameter("algo"); + // Local to global coordinates approach + cmssw_for_global_ = pset.getUntrackedParameter("cmssw_for_global", true); + geometry_tag_ = pset.getUntrackedParameter("geometry_tag", ""); + edm::ConsumesCollector consumesColl(consumesCollector()); + globalcoordsobtainer_ = std::make_shared(pset); + if (!cmssw_for_global_) + globalcoordsobtainer_->generate_luts(); if (algo_ == PseudoBayes) { grouping_obj_ = @@ -191,7 +201,7 @@ DTTrigPhase2Prod::DTTrigPhase2Prod(const ParameterSet& pset) if (algo_ == Standard) { if (debug_) LogDebug("DTTrigPhase2Prod") << "DTp2:constructor: JM analyzer"; - mpathanalyzer_ = std::make_unique(pset, consumesColl); + mpathanalyzer_ = std::make_unique(pset, consumesColl, globalcoordsobtainer_); } else { if (debug_) LogDebug("DTTrigPhase2Prod") << "DTp2:constructor: Full chamber analyzer"; @@ -205,7 +215,7 @@ DTTrigPhase2Prod::DTTrigPhase2Prod(const ParameterSet& pset) mpathqualityenhancer_ = std::make_unique(pset); mpathredundantfilter_ = std::make_unique(pset); - mpathassociator_ = std::make_unique(pset, consumesColl); + mpathassociator_ = std::make_unique(pset, consumesColl, globalcoordsobtainer_); rpc_integrator_ = std::make_unique(pset, consumesColl); dtGeomH = esConsumes(); @@ -228,8 +238,9 @@ void DTTrigPhase2Prod::beginRun(edm::Run const& iRun, const edm::EventSetup& iEv mpathredundantfilter_->initialise(iEventSetup); // Filter object initialisation mpathassociator_->initialise(iEventSetup); // Associator object initialisation - const MuonGeometryRecord& geom = iEventSetup.get(); - dtGeo_ = &geom.get(dtGeomH); + edm::ESHandle geom; + iEventSetup.get().get(geometry_tag_, geom); + dtGeo_ = &(*geom); } void DTTrigPhase2Prod::produce(Event& iEvent, const EventSetup& iEventSetup) { @@ -475,7 +486,7 @@ void DTTrigPhase2Prod::produce(Event& iEvent, const EventSetup& iEventSetup) { else if (scenario_ == DATA) //scope for data shift_back = 0; else if (scenario_ == SLICE_TEST) //scope for slice test - shift_back = 0; + shift_back = 400; // RPC integration if (useRPC_) { @@ -489,11 +500,13 @@ void DTTrigPhase2Prod::produce(Event& iEvent, const EventSetup& iEventSetup) { /// STORING RESULTs vector outP2Ph; + vector outP2Th; // Assigning index value assignIndex(correlatedMetaPrimitives); for (const auto& metaPrimitiveIt : correlatedMetaPrimitives) { DTChamberId chId(metaPrimitiveIt.rawId); + DTSuperLayerId slId(metaPrimitiveIt.rawId); if (debug_) LogDebug("DTTrigPhase2Prod") << "looping in final vector: SuperLayerId" << chId << " x=" << metaPrimitiveIt.x << " quality=" << metaPrimitiveIt.quality @@ -517,20 +530,39 @@ void DTTrigPhase2Prod::produce(Event& iEvent, const EventSetup& iEventSetup) { if (debug_) LogDebug("DTTrigPhase2Prod") << "pushing back phase-2 dataformat carlo-federica dataformat"; - outP2Ph.push_back(L1Phase2MuDTPhDigi( - (int)round(metaPrimitiveIt.t0 / (float)LHC_CLK_FREQ) - shift_back, - chId.wheel(), // uwh (m_wheel) - sectorTP, // usc (m_sector) - chId.station(), // ust (m_station) - sl, // ust (m_station) - (int)round(metaPrimitiveIt.phi * PHIRES_CONV), // uphi (_phiAngle) - (int)round(metaPrimitiveIt.phiB * PHIBRES_CONV), // uphib (m_phiBending) - metaPrimitiveIt.quality, // uqua (m_qualityCode) - metaPrimitiveIt.index, // uind (m_segmentIndex) - (int)round(metaPrimitiveIt.t0) - shift_back * LHC_CLK_FREQ, // ut0 (m_t0Segment) - (int)round(metaPrimitiveIt.chi2 * CHI2RES_CONV), // uchi2 (m_chi2Segment) - metaPrimitiveIt.rpcFlag // urpc (m_rpcFlag) - )); + + if (slId.superLayer() != 2) { + //phiTP + outP2Ph.push_back(L1Phase2MuDTPhDigi( + (int)round(metaPrimitiveIt.t0 / (float)LHC_CLK_FREQ) - shift_back, + chId.wheel(), // uwh (m_wheel) + sectorTP, // usc (m_sector) + chId.station(), // ust (m_station) + sl, // ust (m_station) + (int)round(metaPrimitiveIt.phi * PHIRES_CONV), // uphi (_phiAngle) + (int)round(metaPrimitiveIt.phiB * PHIBRES_CONV), // uphib (m_phiBending) + metaPrimitiveIt.quality, // uqua (m_qualityCode) + metaPrimitiveIt.index, // uind (m_segmentIndex) + (int)round(metaPrimitiveIt.t0) - shift_back * LHC_CLK_FREQ, // ut0 (m_t0Segment) + (int)round(metaPrimitiveIt.chi2 * CHI2RES_CONV), // uchi2 (m_chi2Segment) + metaPrimitiveIt.rpcFlag // urpc (m_rpcFlag) + )); + } else { + //thTP + outP2Th.push_back(L1Phase2MuDTThDigi( + (int)round(metaPrimitiveIt.t0 / (float)LHC_CLK_FREQ) - shift_back, + chId.wheel(), // uwh (m_wheel) + sectorTP, // usc (m_sector) + chId.station(), // ust (m_station) + (int)round(metaPrimitiveIt.phi * ZRES_CONV), // uz (m_zGlobal) + (int)round(metaPrimitiveIt.phiB * KRES_CONV), // uk (m_kSlope) + metaPrimitiveIt.quality, // uqua (m_qualityCode) + metaPrimitiveIt.index, // uind (m_segmentIndex) + (int)round(metaPrimitiveIt.t0) - shift_back * LHC_CLK_FREQ, // ut0 (m_t0Segment) + (int)round(metaPrimitiveIt.chi2 * CHI2RES_CONV), // uchi2 (m_chi2Segment) + metaPrimitiveIt.rpcFlag // urpc (m_rpcFlag) + )); + } } // Storing RPC hits that were not used elsewhere @@ -547,6 +579,12 @@ void DTTrigPhase2Prod::produce(Event& iEvent, const EventSetup& iEventSetup) { iEvent.put(std::move(resultP2Ph)); outP2Ph.clear(); outP2Ph.erase(outP2Ph.begin(), outP2Ph.end()); + + std::unique_ptr resultP2Th(new L1Phase2MuDTThContainer); + resultP2Th->setContainer(outP2Th); + iEvent.put(std::move(resultP2Th)); + outP2Th.clear(); + outP2Th.erase(outP2Th.begin(), outP2Th.end()); } void DTTrigPhase2Prod::endRun(edm::Run const& iRun, const edm::EventSetup& iEventSetup) { diff --git a/L1Trigger/DTTriggerPhase2/python/dtTriggerPhase2PrimitiveDigis_cfi.py b/L1Trigger/DTTriggerPhase2/python/dtTriggerPhase2PrimitiveDigis_cfi.py index f1c65d71868e2..63be80ade8ac9 100644 --- a/L1Trigger/DTTriggerPhase2/python/dtTriggerPhase2PrimitiveDigis_cfi.py +++ b/L1Trigger/DTTriggerPhase2/python/dtTriggerPhase2PrimitiveDigis_cfi.py @@ -6,8 +6,14 @@ dtTriggerPhase2PrimitiveDigis = cms.EDProducer("DTTrigPhase2Prod", digiTag = cms.InputTag("CalibratedDigis"), + geometry_tag = cms.untracked.string(""), trigger_with_sl = cms.untracked.int32(4), - tanPhiTh = cms.untracked.double(1.), + tanPhiTh = cms.untracked.double(1.), + tanPhiThw2max = cms.untracked.double(1.3), + tanPhiThw2min = cms.untracked.double(0.5), + tanPhiThw1max = cms.untracked.double(0.9), + tanPhiThw1min = cms.untracked.double(0.2), + tanPhiThw0 = cms.untracked.double(0.5), chi2Th = cms.untracked.double(0.01), #in cm^2 chi2corTh = cms.untracked.double(0.1), #in cm^2 do_correlation = cms.bool(True), @@ -17,9 +23,6 @@ dTanPsi_correlate_TP = cms.untracked.double(99999.), clean_chi2_correlation = cms.untracked.bool(True), allow_confirmation = cms.untracked.bool(True), - use_LSB = cms.untracked.bool(True), - tanPsi_precision = cms.untracked.double(1./4096.), - x_precision = cms.untracked.double(1./160.), minx_match_2digis = cms.untracked.double(1.), scenario = cms.int32(0), #0 for mc, 1 for data, 2 for slice test filter_cousins = cms.untracked.bool(True), @@ -27,6 +30,9 @@ ttrig_filename = cms.FileInPath('L1Trigger/DTTriggerPhase2/data/wire_rawId_ttrig.txt'), z_filename = cms.FileInPath('L1Trigger/DTTriggerPhase2/data/wire_rawId_z.txt'), shift_filename = cms.FileInPath('L1Trigger/DTTriggerPhase2/data/wire_rawId_x.txt'), + shift_theta_filename = cms.FileInPath('L1Trigger/DTTriggerPhase2/data/theta_shift.txt'), + global_coords_filename = cms.FileInPath('L1Trigger/DTTriggerPhase2/data/global_coord_perp_x_phi0.txt'), + cmssw_for_global = cms.untracked.bool(False), algo = cms.int32(0), # 0 = STD gr., 2 = Hough transform, 1 = PseudoBayes Approach minHits4Fit = cms.untracked.int32(4), @@ -34,7 +40,7 @@ #debugging debug = cms.untracked.bool(False), dump = cms.untracked.bool(False), - + #RPC rpcRecHits = cms.InputTag("rpcRecHits"), useRPC = cms.bool(False), diff --git a/L1Trigger/DTTriggerPhase2/src/GlobalCoordsObtainer.cc b/L1Trigger/DTTriggerPhase2/src/GlobalCoordsObtainer.cc new file mode 100644 index 0000000000000..1376d4c6e40c0 --- /dev/null +++ b/L1Trigger/DTTriggerPhase2/src/GlobalCoordsObtainer.cc @@ -0,0 +1,264 @@ +#include "L1Trigger/DTTriggerPhase2/interface/GlobalCoordsObtainer.h" + +using namespace edm; +using namespace cmsdt; + +// ============================================================================ +// Constructors and destructor +// ============================================================================ +GlobalCoordsObtainer::GlobalCoordsObtainer(const ParameterSet& pset) { + global_coords_filename_ = pset.getParameter("global_coords_filename"); + std::ifstream ifin3(global_coords_filename_.fullPath()); + + if (ifin3.fail()) { + throw cms::Exception("Missing Input File") + << "GlobalCoordsObtainer::GlobalCoordsObtainer() - Cannot find " << global_coords_filename_.fullPath(); + } + + int wh, st, se, sl; + double perp, x_phi0; + std::string line; + + global_constant_per_sl sl1_constants; + global_constant_per_sl sl3_constants; + + while (ifin3.good()) { + ifin3 >> wh >> st >> se >> sl >> perp >> x_phi0; + + if (sl == 1) { + sl1_constants.perp = perp; + sl1_constants.x_phi0 = x_phi0; + } else { + sl3_constants.perp = perp; + sl3_constants.x_phi0 = x_phi0; + + DTChamberId ChId(wh, st, se); + global_constants.push_back({ChId.rawId(), sl1_constants, sl3_constants}); + } + } +} + +GlobalCoordsObtainer::~GlobalCoordsObtainer() {} + +void GlobalCoordsObtainer::generate_luts() { + for (auto& global_constant : global_constants) { + int sgn = 1; + DTChamberId ChId(global_constant.chid); + // typical hasPosRF function + if (ChId.wheel() > 0 || (ChId.wheel() == 0 && ChId.sector() % 4 > 1)) { + sgn = -1; + } + + auto phi1 = calc_atan_lut(12, + 6, + (1. / 16) / (global_constant.sl1.perp * 10), + global_constant.sl1.x_phi0 / global_constant.sl1.perp, + 1. / std::pow(2, 17), + 10, + 3, + 12, + 20, + sgn); + + auto phi3 = calc_atan_lut(12, + 6, + (1. / 16) / (global_constant.sl3.perp * 10), + global_constant.sl3.x_phi0 / global_constant.sl3.perp, + 1. / std::pow(2, 17), + 10, + 3, + 12, + 20, + sgn); + + double max_x_phi0 = global_constant.sl1.x_phi0; + if (global_constant.sl3.x_phi0 > max_x_phi0) { + max_x_phi0 = global_constant.sl3.x_phi0; + } + + auto phic = calc_atan_lut(12, + 6, + (1. / 16) / ((global_constant.sl1.perp + global_constant.sl3.perp) / .2), + max_x_phi0 / ((global_constant.sl1.perp + global_constant.sl3.perp) / 2), + 1. / std::pow(2, 17), + 10, + 3, + 12, + 20, + sgn); + + auto phib = calc_atan_lut(9, 6, 1. / 4096, 0., 4. / std::pow(2, 13), 10, 3, 10, 16, sgn); + + luts[global_constant.chid] = {phic, phi1, phi3, phib}; + } +} + +std::map GlobalCoordsObtainer::calc_atan_lut(int msb_num, + int lsb_num, + double in_res, + double abscissa_0, + double out_res, + int a_extra_bits, + int b_extra_bits, + int a_size, + int b_size, + int sgn) { + // Calculates the coefficients needed to calculate the arc-tan function in fw + // by doing a piece-wise linear approximation. + // In fw, input (x) and output (y) are integers, these conversions are needed + // t = x*in_res - abscissa_0 + // phi = arctan(t) + // y = phi/out_res + // => y = arctan(x*in_res - abcissa_0)/out_res + // The linear function is approximated as + // y = a*x_lsb + b + // Where a, b = func(x_msb) are the coefficients stored in the lut + + // a is stored as unsigned, b as signed, with their respective sizes a_size, b_size, + // previously shifted left by a_extra_bits and b_extra_bits, respectively + + long int a_min = -std::pow(2, (a_size - 1)); + long int a_max = std::pow(2, (a_size - 1)) - 1; + long int b_min = -std::pow(2, (b_size - 1)); + long int b_max = std::pow(2, (b_size - 1)) - 1; + + std::map lut; + + for (long int x_msb = -(long int)std::pow(2, msb_num - 1); x_msb < (long int)std::pow(2, msb_num - 1); x_msb++) { + int x1 = ((x_msb) << lsb_num); + int x2 = ((x_msb + 1) << lsb_num) - 1; + + double t1 = x1 * in_res - abscissa_0; + double t2 = x2 * in_res - abscissa_0; + + double phi1 = sgn * atan(t1); + double phi2 = sgn * atan(t2); + + double y1 = phi1 / out_res; + double y2 = phi2 / out_res; + + // we want to find a, b so that the error in the extremes is the same as the error in the center + // so the error in the extremes will be the same, so the "a" is determined by those points + double a = (y2 - y1) / (x2 - x1); + + // by derivating the error function and equaling to 0, you get this is the point + // towards the interval center with the highest error + // err_f = y - (a*x+b) = sgn*arctan(x*in_res - abcissa_0)/out_res - (a*x+b) + // d(err_f)/dx = sgn*(1/(1+(x*in_res - abcissa_0)^2))*in_res/out_res - a + // d(err_f)/dx = 0 => x_max_err = (sqrt(in_res/out_res/a-1) + abscissa_0)/in_res + // There is sign ambiguity in the sqrt operation. The sqrt has units of t (adimensional). + // It is resolved by setting the sqrt to have the same sign as (t1+t2)/2 + + double t_max_err = sqrt(sgn * in_res / out_res / a - 1); + if ((t1 + t2) < 0) { + t_max_err *= -1; + } + + double x_max_err = (t_max_err + abscissa_0) / in_res; + double phi_max_err = sgn * atan(t_max_err); + double y_max_err = phi_max_err / out_res; + + // once you have the point of max error, the "b" parameter is chosen as the average between + // those two numbers, which makes the error at the center be equal in absolute value + // to the error in the extremes + // units: rad + + double b = (y1 + y_max_err - a * (x_max_err - x1)) / 2; + + // increase b in 1/2 of y_lsb, so that fw truncate operation on the of the result + // is equivalent to a round function instead of a floor function + b += 0.5; + + // shift left and round + long int a_int = (long int)(round(a * (pow(2, a_extra_bits)))); + long int b_int = (long int)(round(b * (pow(2, b_extra_bits)))); + + // tuck a, b constants into the bit size of the output (un)signed integer + std::vector as = {a_min, a_int, a_max}; + std::vector bs = {b_min, b_int, b_max}; + + std::sort(as.begin(), as.end()); + std::sort(bs.begin(), bs.end()); + + a_int = as.at(1); + b_int = bs.at(1); + + // // convert a, b to two's complement + // auto a_signed = a_int % (long int) (pow(2, a_size)); + // auto b_signed = b_int % (long int) (pow(2, b_size)); + + // convert x_msb to two's complement signed + int index = to_two_comp(x_msb, msb_num); + lut[index] = {a_int, b_int}; + } + return lut; +} + +std::vector GlobalCoordsObtainer::get_global_coordinates(uint32_t chid, int sl, int x, int tanpsi) { + // Depending on the type of primitive (SL1, SL3 or correlated), choose the + // appropriate input data (x, tanpsi) from the input primitive data structure + // and the corresponding phi-lut from the 3 available options + auto phi_lut = &luts[chid].phic; + if (sl == 1) { + phi_lut = &luts[chid].phi1; + } else if (sl == 3) { + phi_lut = &luts[chid].phi3; + } + + auto phib_lut = &luts[chid].phib; + + // x and slope are given in two's complement in fw + x = to_two_comp(x, X_SIZE); + tanpsi = to_two_comp(tanpsi, TANPSI_SIZE); + + // Slice x and tanpsi + // Both x and tanpsi are represented in vhdl as signed, this means their values + // are stored as two's complement. + + // The MSB part is going to be used to index the luts and obtain a and b parameters + // Converting the upper part of the signed to an integer (with sign). + + int x_msb = x >> (X_SIZE - PHI_LUT_ADDR_WIDTH); + x_msb = from_two_comp(x_msb, PHI_LUT_ADDR_WIDTH); + + int tanpsi_msb = tanpsi >> (TANPSI_SIZE - PHIB_LUT_ADDR_WIDTH); + tanpsi_msb = from_two_comp(tanpsi_msb, PHIB_LUT_ADDR_WIDTH); + + x_msb = x >> (X_SIZE - PHI_LUT_ADDR_WIDTH); + x_msb = from_two_comp(x_msb, PHI_LUT_ADDR_WIDTH); + + tanpsi_msb = tanpsi >> (TANPSI_SIZE - PHIB_LUT_ADDR_WIDTH); + tanpsi_msb = from_two_comp(tanpsi_msb, PHIB_LUT_ADDR_WIDTH); + + // The LSB part can be sliced right away because it must yield a positive integer + int x_lsb = x & (int)(std::pow(2, (X_SIZE - PHI_LUT_ADDR_WIDTH)) - 1); + int tanpsi_lsb = tanpsi & (int)(std::pow(2, (TANPSI_SIZE - PHIB_LUT_ADDR_WIDTH)) - 1); + + // Index the luts wiht the MSB parts already calculated + auto phi_lut_q = phi_lut->at(to_two_comp(x_msb, PHI_LUT_ADDR_WIDTH)); + auto phib_lut_q = phib_lut->at(to_two_comp(tanpsi_msb, PHIB_LUT_ADDR_WIDTH)); + + // Separate this data into the coefficients a and b + auto phi_lut_a = phi_lut_q.a; + auto phi_lut_b = phi_lut_q.b; + auto phib_lut_a = phib_lut_q.a; + auto phib_lut_b = phib_lut_q.b; + + // Do the linear piece-wise operations + // At this point all variables that can be negative have already been converted + // so will yield negative values when necessary + int phi_uncut = (phi_lut_b << PHI_B_SHL_BITS) + x_lsb * phi_lut_a; + int psi_uncut = (phib_lut_b << PHIB_B_SHL_BITS) + tanpsi_lsb * phib_lut_a; + + // Trim phi to its final size + int phi = (phi_uncut >> PHI_MULT_SHR_BITS); + + // Calculate phi_bending from the uncut version of phi and psi, and the trim it to size + int phib_uncut = psi_uncut - (phi_uncut >> (PHI_PHIB_RES_DIFF_BITS + PHI_MULT_SHR_BITS - PHIB_MULT_SHR_BITS)); + int phib = (phib_uncut >> PHIB_MULT_SHR_BITS); + + double phi_f = (double)phi / pow(2, PHI_SIZE); + double phib_f = (double)phib / pow(2, PHIB_SIZE); + + return std::vector({phi_f, phib_f}); +} \ No newline at end of file diff --git a/L1Trigger/DTTriggerPhase2/src/MuonPathAnalyticAnalyzer.cc b/L1Trigger/DTTriggerPhase2/src/MuonPathAnalyticAnalyzer.cc new file mode 100644 index 0000000000000..92d8f9750c7ae --- /dev/null +++ b/L1Trigger/DTTriggerPhase2/src/MuonPathAnalyticAnalyzer.cc @@ -0,0 +1,2253 @@ +#include "L1Trigger/DTTriggerPhase2/interface/MuonPathAnalyticAnalyzer.h" +#include +#include + +using namespace edm; +using namespace std; +using namespace cmsdt; +// ============================================================================ +// Constructors and destructor +// ============================================================================ +MuonPathAnalyticAnalyzer::MuonPathAnalyticAnalyzer(const ParameterSet &pset, + edm::ConsumesCollector &iC, + std::shared_ptr &globalcoordsobtainer) + : MuonPathAnalyzer(pset, iC), + debug_(pset.getUntrackedParameter("debug")), + chi2Th_(pset.getUntrackedParameter("chi2Th")), + tanPhiTh_(pset.getUntrackedParameter("tanPhiTh")), + tanPhiThw2max_(pset.getUntrackedParameter("tanPhiThw2max")), + tanPhiThw2min_(pset.getUntrackedParameter("tanPhiThw2min")), + tanPhiThw1max_(pset.getUntrackedParameter("tanPhiThw1max")), + tanPhiThw1min_(pset.getUntrackedParameter("tanPhiThw1min")), + tanPhiThw0_(pset.getUntrackedParameter("tanPhiThw0")), + cmssw_for_global_(pset.getUntrackedParameter("cmssw_for_global")), + geometry_tag_(pset.getUntrackedParameter("geometry_tag")) { + if (debug_) + LogDebug("MuonPathAnalyticAnalyzer") << "MuonPathAnalyzer: constructor"; + + fillLAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER(); + + //shift phi + int rawId; + shift_filename_ = pset.getParameter("shift_filename"); + std::ifstream ifin3(shift_filename_.fullPath()); + double shift; + if (ifin3.fail()) { + throw cms::Exception("Missing Input File") + << "MuonPathAnalyticAnalyzer::MuonPathAnalyticAnalyzer() - Cannot find " << shift_filename_.fullPath(); + } + while (ifin3.good()) { + ifin3 >> rawId >> shift; + shiftinfo_[rawId] = shift; + } + + //shift theta + + shift_theta_filename_ = pset.getParameter("shift_theta_filename"); + std::ifstream ifin4(shift_theta_filename_.fullPath()); + if (ifin4.fail()) { + throw cms::Exception("Missing Input File") + << "MuonPathAnalyzerPerSL::MuonPathAnalyzerPerSL() - Cannot find " << shift_theta_filename_.fullPath(); + } + + while (ifin4.good()) { + ifin4 >> rawId >> shift; + shiftthetainfo_[rawId] = shift; + } + + chosen_sl_ = pset.getUntrackedParameter("trigger_with_sl"); + + if (chosen_sl_ != 1 && chosen_sl_ != 3 && chosen_sl_ != 4) { + LogDebug("MuonPathAnalyticAnalyzer") << "chosen sl must be 1,3 or 4(both superlayers)"; + assert(chosen_sl_ != 1 && chosen_sl_ != 3 && chosen_sl_ != 4); //4 means run using the two superlayers + } + + dtGeomH = iC.esConsumes(); + globalcoordsobtainer_ = globalcoordsobtainer; +} + +MuonPathAnalyticAnalyzer::~MuonPathAnalyticAnalyzer() { + if (debug_) + LogDebug("MuonPathAnalyticAnalyzer") << "MuonPathAnalyzer: destructor"; +} + +// ============================================================================ +// Main methods (initialise, run, finish) +// ============================================================================ +void MuonPathAnalyticAnalyzer::initialise(const edm::EventSetup &iEventSetup) { + if (debug_) + LogDebug("MuonPathAnalyticAnalyzer") << "MuonPathAnalyticAnalyzer::initialiase"; + + edm::ESHandle geom; + iEventSetup.get().get(geometry_tag_, geom); + dtGeo_ = &(*geom); +} + +void MuonPathAnalyticAnalyzer::run(edm::Event &iEvent, + const edm::EventSetup &iEventSetup, + MuonPathPtrs &muonpaths, + std::vector &metaPrimitives) { + if (debug_) + LogDebug("MuonPathAnalyticAnalyzer") << "MuonPathAnalyticAnalyzer: run"; + + // fit per SL (need to allow for multiple outputs for a single mpath) + for (auto &muonpath : muonpaths) { + analyze(muonpath, metaPrimitives); + } +} + +void MuonPathAnalyticAnalyzer::finish() { + if (debug_) + LogDebug("MuonPathAnalyticAnalyzer") << "MuonPathAnalyzer: finish"; +}; + +//------------------------------------------------------------------ +//--- Métodos privados +//------------------------------------------------------------------ + +void MuonPathAnalyticAnalyzer::analyze(MuonPathPtr &inMPath, std::vector &metaPrimitives) { + if (debug_) + LogDebug("MuonPathAnalyticAnalyzer") << "DTp2:analyze \t\t\t\t starts"; + // LOCATE MPATH + int selected_Id = 0; + if (inMPath->primitive(0)->tdcTimeStamp() != -1) + selected_Id = inMPath->primitive(0)->cameraId(); + else if (inMPath->primitive(1)->tdcTimeStamp() != -1) + selected_Id = inMPath->primitive(1)->cameraId(); + else if (inMPath->primitive(2)->tdcTimeStamp() != -1) + selected_Id = inMPath->primitive(2)->cameraId(); + else if (inMPath->primitive(3)->tdcTimeStamp() != -1) + selected_Id = inMPath->primitive(3)->cameraId(); + + DTLayerId thisLId(selected_Id); + if (debug_) + LogDebug("MuonPathAnalyticAnalyzer") << "Building up MuonPathSLId from rawId in the Primitive"; + DTSuperLayerId MuonPathSLId(thisLId.wheel(), thisLId.station(), thisLId.sector(), thisLId.superLayer()); + if (debug_) + LogDebug("MuonPathAnalyticAnalyzer") << "The MuonPathSLId is" << MuonPathSLId; + + if (debug_) + LogDebug("MuonPathAnalyticAnalyzer") + << "DTp2:analyze \t\t\t\t In analyze function checking if inMPath->isAnalyzable() " << inMPath->isAnalyzable(); + + if (chosen_sl_ < 4 && thisLId.superLayer() != chosen_sl_) + return; // avoid running when mpath not in chosen SL (for 1SL fitting) + + auto mPath = std::make_shared(inMPath); + mPath->setQuality(NOPATH); + + int wi[4], wires[4], t0s[4], valids[4]; + // bool is_four_hit = true; + for (int j = 0; j < NUM_LAYERS; j++) { + if (mPath->primitive(j)->isValidTime()) { + wi[j] = mPath->primitive(j)->channelId(); + wires[j] = mPath->primitive(j)->channelId(); + t0s[j] = mPath->primitive(j)->tdcTimeStamp(); + valids[j] = 1; + } else { + wi[j] = -1; + wires[j] = -1; + t0s[j] = -1; + valids[j] = 0; + // is_four_hit = false; + } + } + + if (wi[0] < 0) + wi[0] = wi[1]; + else if (wi[1] < 0) + wi[1] = wi[0]; + else if (wi[2] < 0) + wi[2] = wi[1] - 1; + else if (wi[3] < 0) + wi[3] = wi[2]; + + int cell_horiz_layout[4]; + for (int lay = 0; lay < NUM_LAYERS; lay++) { + cell_horiz_layout[lay] = (wi[lay] - wi[0]) * 2; + if (lay % 2 != 0) + cell_horiz_layout[lay]--; + } + + // calculate the coarse offset position + int tmp = 1; + if (valids[1] == 0) + tmp = 3; + int coarse_pos = (wi[tmp] * 2 - cell_horiz_layout[tmp]) * 21 * std::pow(2, 4); + + //calculate the relative position of wires in mm wrt layer 0's cell wire + int xwire_mm[4]; + for (int lay = 0; lay < NUM_LAYERS; lay++) { + xwire_mm[lay] = 21 * cell_horiz_layout[lay]; + } + + // divide the timestamps in coarse + reduced part + int valid_coarse_times[4], min_coarse_time = 999999, max_coarse_time = -999999; + for (int lay = 0; lay < NUM_LAYERS; lay++) { + if (valids[lay] == 1) { + valid_coarse_times[lay] = (t0s[lay] >> (TDCTIME_REDUCED_SIZE - 1)); + if (valid_coarse_times[lay] < min_coarse_time) { + min_coarse_time = valid_coarse_times[lay]; + } + if (valid_coarse_times[lay] > max_coarse_time) { + max_coarse_time = valid_coarse_times[lay]; + } + } else { + valid_coarse_times[lay] = -1; + } + } + + // if (!is_four_hit) cout << "Found a 3!" << endl; + + if (max_coarse_time - min_coarse_time >= 2) + return; + int coarse_offset = max_coarse_time - 1; + + int reduced_times[4]; + for (int lay = 0; lay < NUM_LAYERS; lay++) { + reduced_times[lay] = + ((1 - ((max_coarse_time & 1) ^ ((t0s[lay] >> (TDCTIME_REDUCED_SIZE - 1)) & 1))) << (TDCTIME_REDUCED_SIZE - 1)); + reduced_times[lay] += (t0s[lay] & std::stoi(std::string(TDCTIME_REDUCED_SIZE - 1, '1'), nullptr, 2)); + } + std::vector latcomb_consts_arr; + for (auto &elem : LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER) + if (elem.cell_valid_layout.valid[0] == valids[0] && elem.cell_valid_layout.valid[1] == valids[1] && + elem.cell_valid_layout.valid[2] == valids[2] && elem.cell_valid_layout.valid[3] == valids[3] && + elem.cell_valid_layout.cell_horiz_layout[0] == cell_horiz_layout[0] && + elem.cell_valid_layout.cell_horiz_layout[1] == cell_horiz_layout[1] && + elem.cell_valid_layout.cell_horiz_layout[2] == cell_horiz_layout[2] && + elem.cell_valid_layout.cell_horiz_layout[3] == cell_horiz_layout[3]) + for (auto &ind_latcomb_consts : elem.latcomb_constants) + latcomb_consts_arr.push_back(ind_latcomb_consts); + for (auto &latcomb_consts : latcomb_consts_arr) { + segment_fitter(MuonPathSLId, + wires, + t0s, + valids, + reduced_times, + cell_horiz_layout, + latcomb_consts, + xwire_mm, + coarse_pos, + coarse_offset, + metaPrimitives); + } +} + +int MuonPathAnalyticAnalyzer::compute_parameter(MAGNITUDE constants, int t0s[4], int DIV_SHR_BITS, int INCREASED_RES) { + long int result = 0; + for (int lay = 0; lay < NUM_LAYERS; lay++) { + result += constants.coeff[lay] * t0s[lay]; + } + result = ((result * int(std::pow(2, INCREASED_RES)) + constants.add) * constants.mult) >> DIV_SHR_BITS; + + return result; +} + +void MuonPathAnalyticAnalyzer::segment_fitter(DTSuperLayerId MuonPathSLId, + int wires[4], + int t0s[4], + int valid[4], + int reduced_times[4], + int cell_horiz_layout[4], + LATCOMB_CONSTANTS latcomb_consts, + int xwire_mm[4], + int coarse_pos, + int coarse_offset, + std::vector &metaPrimitives) { + auto latcomb = latcomb_consts.latcomb; + auto constants = latcomb_consts.constants; + bool is_four_hit = true; + + if (latcomb == 0) + return; + + int lat_array[4]; + for (int lay = 0; lay < NUM_LAYERS; lay++) { + if (((latcomb >> lay) & 1) != 0) { + lat_array[lay] = 1; + } else + lat_array[lay] = -1; + } + + int time = compute_parameter(constants.t0, reduced_times, DIV_SHR_BITS_T0, INCREASED_RES_T0); + int pos = compute_parameter(constants.pos, reduced_times, DIV_SHR_BITS_POS, INCREASED_RES_POS); + int slope = compute_parameter(constants.slope, reduced_times, DIV_SHR_BITS_SLOPE, INCREASED_RES_SLOPE); + int slope_xhh = + compute_parameter(constants.slope_xhh, reduced_times, DIV_SHR_BITS_SLOPE_XHH, INCREASED_RES_SLOPE_XHH); + + int bx_time = time + (coarse_offset << (TDCTIME_REDUCED_SIZE - 1)); + + pos += coarse_pos; + + int chi2_mm2_p = 0; + for (int lay = 0; lay < NUM_LAYERS; lay++) { + int drift_time = reduced_times[lay] - time; + if (valid[lay] == 1 && (drift_time < 0 || drift_time > MAXDRIFT)) + return; + + int drift_dist = ((((drift_time * INCREASED_RES_POS_POW) + DTDD_PREADD) * DTDD_MULT) >> DTDD_SHIFTR_BITS); + int xdist = xwire_mm[lay] * pow(2, 4) - (pos - coarse_pos) + lat_array[lay] * drift_dist; + xdist -= (3 - 2 * (3 - lay)) * slope_xhh; + int res = xdist; + if (valid[lay] == 0) { + res = 0; + is_four_hit = false; + } + chi2_mm2_p += res * res * 4; + } + + int quality = HIGHQ; + if (!is_four_hit) + quality = LOWQ; + + // Obtain coordinate values in floating point + double pos_f, slope_f, chi2_f; + DTWireId wireId(MuonPathSLId, 2, 1); + + pos_f = double(pos) + + int(10 * shiftinfo_[wireId.rawId()] * INCREASED_RES_POS_POW); // position in mm * precision in JM RF + pos_f /= (10. * INCREASED_RES_POS_POW); // position in cm w.r.t center of the chamber + slope_f = -(double(slope) / INCREASED_RES_SLOPE_POW); + chi2_f = double(chi2_mm2_p) / (16. * 64. * 100.); + + // Impose the thresholds + if (MuonPathSLId.superLayer() != 2) + if (std::abs(slope_f) > tanPhiTh_) + return; + if (chi2_f > (chi2Th_)) + return; + + // Compute phi and phib + // Implemented using cmssw geometry as of now, will implemented fw-like in the near future + DTChamberId ChId(MuonPathSLId.wheel(), MuonPathSLId.station(), MuonPathSLId.sector()); + double phi = -999.; + double phiB = -999.; + if (cmssw_for_global_ && MuonPathSLId.superLayer() != 2) { + double z = 0; + double z1 = Z_POS_SL; + double z3 = -1. * z1; + if (ChId.station() == 3 or ChId.station() == 4) { + z1 = z1 + Z_SHIFT_MB4; + z3 = z3 + Z_SHIFT_MB4; + } + if (MuonPathSLId.superLayer() == 1) + z = z1; + else if (MuonPathSLId.superLayer() == 3) + z = z3; + + GlobalPoint jm_x_cmssw_global = dtGeo_->chamber(ChId)->toGlobal(LocalPoint(pos_f, 0., z)); + int thisec = MuonPathSLId.sector(); + if (thisec == 13) + thisec = 4; + if (thisec == 14) + thisec = 10; + phi = jm_x_cmssw_global.phi() - PHI_CONV * (thisec - 1); + double psi = atan(slope_f); + phiB = hasPosRF(MuonPathSLId.wheel(), MuonPathSLId.sector()) ? psi - phi : -psi - phi; + + } else if (MuonPathSLId.superLayer() != 2) { + auto global_coords = + globalcoordsobtainer_->get_global_coordinates(ChId.rawId(), MuonPathSLId.superLayer(), pos, slope); + phi = global_coords[0]; + phiB = global_coords[1]; + + } else { + DTLayerId SL2_layer2Id(MuonPathSLId, 2); + double z_shift = shiftthetainfo_[SL2_layer2Id.rawId()]; + double jm_y = hasPosRF(MuonPathSLId.wheel(), MuonPathSLId.sector()) ? z_shift - pos_f : z_shift + pos_f; + phi = jm_y; + phiB = slope_f; // + } + + // get the lateralities (in reverse order) in order to fill the metaprimitive + std::vector lateralities = getLateralityCombination(latcomb); + for (int lay = 0; lay < NUM_LAYERS; lay++) { + if (valid[lay] == 0) + lateralities[lay] = -1; + } + + if (MuonPathSLId.superLayer() == 2) { + // Impose the thresholds + if (std::abs(MuonPathSLId.wheel()) == 2) { + if (slope_f > tanPhiThw2max_ or slope_f < tanPhiThw2min_) + return; + } + + if (std::abs(MuonPathSLId.wheel()) == 1) { + if (slope_f > tanPhiThw1max_ or slope_f < tanPhiThw1min_) + return; + } + + if (MuonPathSLId.wheel() == 0) { + if (std::abs(slope_f) > tanPhiThw0_) + return; + } + + DTLayerId SL2_layer2Id(MuonPathSLId, 2); + double z_shift = shiftthetainfo_[SL2_layer2Id.rawId()]; + double jm_y = hasPosRF(MuonPathSLId.wheel(), MuonPathSLId.sector()) ? z_shift - pos_f : z_shift + pos_f; + if (cmssw_for_global_) { + LocalPoint wire1_in_layer(dtGeo_->layer(SL2_layer2Id)->specificTopology().wirePosition(1), 0, -0.65); + GlobalPoint wire1_in_global = dtGeo_->layer(SL2_layer2Id)->toGlobal(wire1_in_layer); + LocalPoint wire1_in_sl = dtGeo_->superLayer(MuonPathSLId)->toLocal(wire1_in_global); + double x_shift = wire1_in_sl.x(); + jm_y = (dtGeo_->superLayer(MuonPathSLId) + ->toGlobal(LocalPoint(double(pos) / (10 * pow(2, INCREASED_RES_POS)) + x_shift, 0., 0))) + .z(); + } + phi = jm_y; + phiB = slope_f; + } + + metaPrimitives.emplace_back(metaPrimitive({MuonPathSLId.rawId(), + double(bx_time), + pos_f, + slope_f, + phi, + phiB, + chi2_f, + quality, + wires[0], + t0s[0], + lateralities[0], + wires[1], + t0s[1], + lateralities[1], + wires[2], + t0s[2], + lateralities[2], + wires[3], + t0s[3], + lateralities[3], + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1})); +} + +std::vector MuonPathAnalyticAnalyzer::getLateralityCombination(int latcomb) { + // returns the latcomb as a binary number represented in a vector of integers + // careful, the output is in reverse order + std::vector binaryNum = {}; + while (latcomb > 1) { + binaryNum.push_back(latcomb % 2); + latcomb = latcomb / 2; + } + binaryNum.push_back(latcomb); + while (binaryNum.size() < 4) + binaryNum.push_back(0); + return binaryNum; +} + +void MuonPathAnalyticAnalyzer::fillLAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER() { + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, -1, 0, -1}, {1, 1, 0, 1}}, + { + {1, + { + {-6170, {1, 0, 0, -1}, 56936}, + {239, {0, 1, 0, -1}, 4380}, + {37, {0, 1, 0, -1}, 3559}, + {776, {2, 3, 0, -1}, 16384}, + }}, + {2, + { + {-30885, {-1, 3, 0, -2}, 18979}, + {-1583769, {1, 0, 0, -1}, 2920}, + {-6133, {1, 0, 0, -1}, 2372}, + {-771, {2, 3, 0, 1}, 10923}, + }}, + {3, + { + {-6170, {1, 0, 0, -1}, 56936}, + {-1584008, {-1, 1, 0, 0}, 8759}, + {-6170, {-1, 1, 0, 0}, 7117}, + {-773, {-2, 3, 0, 1}, 32768}, + }}, + {8, + { + {-6170, {-1, 0, 0, 1}, 56936}, + {-1584008, {1, -1, 0, 0}, 8759}, + {-6170, {1, -1, 0, 0}, 7117}, + {775, {-2, 3, 0, 1}, 32768}, + }}, + {9, + { + {-30885, {1, -3, 0, 2}, 18979}, + {-1583769, {-1, 0, 0, 1}, 2920}, + {-6133, {-1, 0, 0, 1}, 2372}, + {777, {2, 3, 0, 1}, 10923}, + }}, + {10, + { + {-6170, {-1, 0, 0, 1}, 56936}, + {239, {0, -1, 0, 1}, 4380}, + {37, {0, -1, 0, 1}, 3559}, + {-772, {2, 3, 0, -1}, 16384}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, -1, 0, 1}, {0, 1, 1, 1}}, + { + {2, + { + {-6170, {0, 1, -1, 0}, 56936}, + {1584248, {0, 0, 1, -1}, 8759}, + {6206, {0, 0, 1, -1}, 7117}, + {1, {0, 1, 2, -1}, 32768}, + }}, + {4, + { + {-6170, {0, -1, 1, 0}, 56936}, + {3168495, {0, 1, 0, -1}, 4380}, + {12413, {0, 1, 0, -1}, 3559}, + {2, {0, 1, 2, 1}, 16384}, + }}, + {6, + { + {-6170, {0, 2, -1, -1}, 56936}, + {1584248, {0, -1, 1, 0}, 8759}, + {6206, {0, -1, 1, 0}, 7117}, + {1, {0, -1, 2, 1}, 32768}, + }}, + {8, + { + {-6170, {0, -2, 1, 1}, 56936}, + {1584248, {0, 1, -1, 0}, 8759}, + {6206, {0, 1, -1, 0}, 7117}, + {1, {0, -1, 2, 1}, 32768}, + }}, + {10, + { + {-6170, {0, 1, -1, 0}, 56936}, + {3168495, {0, -1, 0, 1}, 4380}, + {12413, {0, -1, 0, 1}, 3559}, + {2, {0, 1, 2, 1}, 16384}, + }}, + {12, + { + {-6170, {0, -1, 1, 0}, 56936}, + {1584248, {0, 0, -1, 1}, 8759}, + {6206, {0, 0, -1, 1}, 7117}, + {1, {0, 1, 2, -1}, 32768}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, -1, -2, -3}, {1, 1, 0, 1}}, + { + {1, + { + {-18546, {1, 0, 0, -1}, 56936}, + {-3168017, {0, 1, 0, -1}, 4380}, + {-12339, {0, 1, 0, -1}, 3559}, + {2, {2, 3, 0, -1}, 16384}, + }}, + {2, + { + {-55637, {-1, 3, 0, -2}, 18979}, + {-4752025, {1, 0, 0, -1}, 2920}, + {-18509, {1, 0, 0, -1}, 2372}, + {3, {2, 3, 0, 1}, 10923}, + }}, + {3, + { + {-18546, {1, 0, 0, -1}, 56936}, + {-1584008, {-1, 1, 0, 0}, 8759}, + {-6170, {-1, 1, 0, 0}, 7117}, + {1, {-2, 3, 0, 1}, 32768}, + }}, + {8, + { + {-18546, {-1, 0, 0, 1}, 56936}, + {-1584008, {1, -1, 0, 0}, 8759}, + {-6170, {1, -1, 0, 0}, 7117}, + {1, {-2, 3, 0, 1}, 32768}, + }}, + {9, + { + {-55637, {1, -3, 0, 2}, 18979}, + {-4752025, {-1, 0, 0, 1}, 2920}, + {-18509, {-1, 0, 0, 1}, 2372}, + {3, {2, 3, 0, 1}, 10923}, + }}, + {10, + { + {-18546, {-1, 0, 0, 1}, 56936}, + {-3168017, {0, -1, 0, 1}, 4380}, + {-12339, {0, -1, 0, 1}, 3559}, + {2, {2, 3, 0, -1}, 16384}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, 1, 0, 1}, {0, 1, 1, 1}}, + { + {2, + { + {6206, {0, 1, -1, 0}, 56936}, + {1584248, {0, 0, 1, -1}, 8759}, + {6206, {0, 0, 1, -1}, 7117}, + {775, {0, 1, 2, -1}, 32768}, + }}, + {4, + { + {6206, {0, -1, 1, 0}, 56936}, + {239, {0, 1, 0, -1}, 4380}, + {37, {0, 1, 0, -1}, 3559}, + {-772, {0, 1, 2, 1}, 16384}, + }}, + {6, + { + {18582, {0, 2, -1, -1}, 56936}, + {-1584008, {0, -1, 1, 0}, 8759}, + {-6170, {0, -1, 1, 0}, 7117}, + {-773, {0, -1, 2, 1}, 32768}, + }}, + {8, + { + {18582, {0, -2, 1, 1}, 56936}, + {-1584008, {0, 1, -1, 0}, 8759}, + {-6170, {0, 1, -1, 0}, 7117}, + {775, {0, -1, 2, 1}, 32768}, + }}, + {10, + { + {6206, {0, 1, -1, 0}, 56936}, + {239, {0, -1, 0, 1}, 4380}, + {37, {0, -1, 0, 1}, 3559}, + {776, {0, 1, 2, 1}, 16384}, + }}, + {12, + { + {6206, {0, -1, 1, 0}, 56936}, + {1584248, {0, 0, -1, 1}, 8759}, + {6206, {0, 0, -1, 1}, 7117}, + {-773, {0, 1, 2, -1}, 32768}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, 1, 2, 1}, {1, 1, 1, 0}}, + { + {1, + { + {18582, {1, 1, -2, 0}, 56936}, + {1584248, {0, 1, -1, 0}, 8759}, + {6206, {0, 1, -1, 0}, 7117}, + {1, {1, 2, -1, 0}, 32768}, + }}, + {2, + { + {18582, {0, 1, -1, 0}, 56936}, + {3168495, {1, 0, -1, 0}, 4380}, + {12413, {1, 0, -1, 0}, 3559}, + {2, {1, 2, 1, 0}, 16384}, + }}, + {3, + { + {18582, {0, 1, -1, 0}, 56936}, + {1584248, {-1, 1, 0, 0}, 8759}, + {6206, {-1, 1, 0, 0}, 7117}, + {1, {-1, 2, 1, 0}, 32768}, + }}, + {4, + { + {18582, {0, -1, 1, 0}, 56936}, + {1584248, {1, -1, 0, 0}, 8759}, + {6206, {1, -1, 0, 0}, 7117}, + {1, {-1, 2, 1, 0}, 32768}, + }}, + {5, + { + {18582, {0, -1, 1, 0}, 56936}, + {3168495, {-1, 0, 1, 0}, 4380}, + {12413, {-1, 0, 1, 0}, 3559}, + {2, {1, 2, 1, 0}, 16384}, + }}, + {6, + { + {18582, {-1, -1, 2, 0}, 56936}, + {1584248, {0, -1, 1, 0}, 8759}, + {6206, {0, -1, 1, 0}, 7117}, + {1, {1, 2, -1, 0}, 32768}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, 1, 0, -1}, {1, 0, 1, 1}}, + { + {1, + { + {-6170, {1, 0, 0, -1}, 56936}, + {-1584008, {0, 0, 1, -1}, 8759}, + {-6170, {0, 0, 1, -1}, 7117}, + {-773, {1, 0, 3, -2}, 32768}, + }}, + {4, + { + {-6133, {-2, 0, 3, -1}, 18979}, + {-1583769, {1, 0, 0, -1}, 2920}, + {-6133, {1, 0, 0, -1}, 2372}, + {777, {1, 0, 3, 2}, 10923}, + }}, + {5, + { + {-6170, {1, 0, 0, -1}, 56936}, + {239, {-1, 0, 1, 0}, 4380}, + {37, {-1, 0, 1, 0}, 3559}, + {776, {-1, 0, 3, 2}, 16384}, + }}, + {8, + { + {-6170, {-1, 0, 0, 1}, 56936}, + {239, {1, 0, -1, 0}, 4380}, + {37, {1, 0, -1, 0}, 3559}, + {-772, {-1, 0, 3, 2}, 16384}, + }}, + {9, + { + {-6133, {2, 0, -3, 1}, 18979}, + {-1583769, {-1, 0, 0, 1}, 2920}, + {-6133, {-1, 0, 0, 1}, 2372}, + {-771, {1, 0, 3, 2}, 10923}, + }}, + {12, + { + {-6170, {-1, 0, 0, 1}, 56936}, + {-1584008, {0, 0, -1, 1}, 8759}, + {-6170, {0, 0, -1, 1}, 7117}, + {775, {1, 0, 3, -2}, 32768}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, -1, -2, -1}, {1, 1, 1, 0}}, + { + {1, + { + {-18546, {1, 1, -2, 0}, 56936}, + {-1584008, {0, 1, -1, 0}, 8759}, + {-6170, {0, 1, -1, 0}, 7117}, + {1, {1, 2, -1, 0}, 32768}, + }}, + {2, + { + {-18546, {0, 1, -1, 0}, 56936}, + {-3168017, {1, 0, -1, 0}, 4380}, + {-12339, {1, 0, -1, 0}, 3559}, + {2, {1, 2, 1, 0}, 16384}, + }}, + {3, + { + {-18546, {0, 1, -1, 0}, 56936}, + {-1584008, {-1, 1, 0, 0}, 8759}, + {-6170, {-1, 1, 0, 0}, 7117}, + {1, {-1, 2, 1, 0}, 32768}, + }}, + {4, + { + {-18546, {0, -1, 1, 0}, 56936}, + {-1584008, {1, -1, 0, 0}, 8759}, + {-6170, {1, -1, 0, 0}, 7117}, + {1, {-1, 2, 1, 0}, 32768}, + }}, + {5, + { + {-18546, {0, -1, 1, 0}, 56936}, + {-3168017, {-1, 0, 1, 0}, 4380}, + {-12339, {-1, 0, 1, 0}, 3559}, + {2, {1, 2, 1, 0}, 16384}, + }}, + {6, + { + {-18546, {-1, -1, 2, 0}, 56936}, + {-1584008, {0, -1, 1, 0}, 8759}, + {-6170, {0, -1, 1, 0}, 7117}, + {1, {1, 2, -1, 0}, 32768}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, -1, -2, -3}, {0, 1, 1, 1}}, + { + {2, + { + {-18546, {0, 1, -1, 0}, 56936}, + {-1584008, {0, 0, 1, -1}, 8759}, + {-6170, {0, 0, 1, -1}, 7117}, + {1, {0, 1, 2, -1}, 32768}, + }}, + {4, + { + {-18546, {0, -1, 1, 0}, 56936}, + {-3168017, {0, 1, 0, -1}, 4380}, + {-12339, {0, 1, 0, -1}, 3559}, + {2, {0, 1, 2, 1}, 16384}, + }}, + {6, + { + {-18546, {0, 2, -1, -1}, 56936}, + {-1584008, {0, -1, 1, 0}, 8759}, + {-6170, {0, -1, 1, 0}, 7117}, + {1, {0, -1, 2, 1}, 32768}, + }}, + {8, + { + {-18546, {0, -2, 1, 1}, 56936}, + {-1584008, {0, 1, -1, 0}, 8759}, + {-6170, {0, 1, -1, 0}, 7117}, + {1, {0, -1, 2, 1}, 32768}, + }}, + {10, + { + {-18546, {0, 1, -1, 0}, 56936}, + {-3168017, {0, -1, 0, 1}, 4380}, + {-12339, {0, -1, 0, 1}, 3559}, + {2, {0, 1, 2, 1}, 16384}, + }}, + {12, + { + {-18546, {0, -1, 1, 0}, 56936}, + {-1584008, {0, 0, -1, 1}, 8759}, + {-6170, {0, 0, -1, 1}, 7117}, + {1, {0, 1, 2, -1}, 32768}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, -1, -2, -1}, {0, 1, 1, 1}}, + { + {2, + { + {-18546, {0, 1, -1, 0}, 56936}, + {1584248, {0, 0, 1, -1}, 8759}, + {6206, {0, 0, 1, -1}, 7117}, + {775, {0, 1, 2, -1}, 32768}, + }}, + {4, + { + {-18546, {0, -1, 1, 0}, 56936}, + {239, {0, 1, 0, -1}, 4380}, + {37, {0, 1, 0, -1}, 3559}, + {-772, {0, 1, 2, 1}, 16384}, + }}, + {6, + { + {-6170, {0, 2, -1, -1}, 56936}, + {-1584008, {0, -1, 1, 0}, 8759}, + {-6170, {0, -1, 1, 0}, 7117}, + {-773, {0, -1, 2, 1}, 32768}, + }}, + {8, + { + {-6170, {0, -2, 1, 1}, 56936}, + {-1584008, {0, 1, -1, 0}, 8759}, + {-6170, {0, 1, -1, 0}, 7117}, + {775, {0, -1, 2, 1}, 32768}, + }}, + {10, + { + {-18546, {0, 1, -1, 0}, 56936}, + {239, {0, -1, 0, 1}, 4380}, + {37, {0, -1, 0, 1}, 3559}, + {776, {0, 1, 2, 1}, 16384}, + }}, + {12, + { + {-18546, {0, -1, 1, 0}, 56936}, + {1584248, {0, 0, -1, 1}, 8759}, + {6206, {0, 0, -1, 1}, 7117}, + {-773, {0, 1, 2, -1}, 32768}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, -1, -2, -3}, {1, 1, 1, 0}}, + { + {1, + { + {-18546, {1, 1, -2, 0}, 56936}, + {-1584008, {0, 1, -1, 0}, 8759}, + {-6170, {0, 1, -1, 0}, 7117}, + {1, {1, 2, -1, 0}, 32768}, + }}, + {2, + { + {-18546, {0, 1, -1, 0}, 56936}, + {-3168017, {1, 0, -1, 0}, 4380}, + {-12339, {1, 0, -1, 0}, 3559}, + {2, {1, 2, 1, 0}, 16384}, + }}, + {3, + { + {-18546, {0, 1, -1, 0}, 56936}, + {-1584008, {-1, 1, 0, 0}, 8759}, + {-6170, {-1, 1, 0, 0}, 7117}, + {1, {-1, 2, 1, 0}, 32768}, + }}, + {4, + { + {-18546, {0, -1, 1, 0}, 56936}, + {-1584008, {1, -1, 0, 0}, 8759}, + {-6170, {1, -1, 0, 0}, 7117}, + {1, {-1, 2, 1, 0}, 32768}, + }}, + {5, + { + {-18546, {0, -1, 1, 0}, 56936}, + {-3168017, {-1, 0, 1, 0}, 4380}, + {-12339, {-1, 0, 1, 0}, 3559}, + {2, {1, 2, 1, 0}, 16384}, + }}, + {6, + { + {-18546, {-1, -1, 2, 0}, 56936}, + {-1584008, {0, -1, 1, 0}, 8759}, + {-6170, {0, -1, 1, 0}, 7117}, + {1, {1, 2, -1, 0}, 32768}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, 1, 2, 1}, {0, 1, 1, 1}}, + { + {2, + { + {18582, {0, 1, -1, 0}, 56936}, + {-1584008, {0, 0, 1, -1}, 8759}, + {-6170, {0, 0, 1, -1}, 7117}, + {-773, {0, 1, 2, -1}, 32768}, + }}, + {4, + { + {18582, {0, -1, 1, 0}, 56936}, + {239, {0, 1, 0, -1}, 4380}, + {37, {0, 1, 0, -1}, 3559}, + {776, {0, 1, 2, 1}, 16384}, + }}, + {6, + { + {6206, {0, 2, -1, -1}, 56936}, + {1584248, {0, -1, 1, 0}, 8759}, + {6206, {0, -1, 1, 0}, 7117}, + {775, {0, -1, 2, 1}, 32768}, + }}, + {8, + { + {6206, {0, -2, 1, 1}, 56936}, + {1584248, {0, 1, -1, 0}, 8759}, + {6206, {0, 1, -1, 0}, 7117}, + {-773, {0, -1, 2, 1}, 32768}, + }}, + {10, + { + {18582, {0, 1, -1, 0}, 56936}, + {239, {0, -1, 0, 1}, 4380}, + {37, {0, -1, 0, 1}, 3559}, + {-772, {0, 1, 2, 1}, 16384}, + }}, + {12, + { + {18582, {0, -1, 1, 0}, 56936}, + {-1584008, {0, 0, -1, 1}, 8759}, + {-6170, {0, 0, -1, 1}, 7117}, + {775, {0, 1, 2, -1}, 32768}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, -1, -2, -1}, {1, 1, 1, 1}}, + { + {4, + { + {-222510, {-6, -5, 14, -3}, 4067}, + {-6334836, {4, 1, 0, -5}, 626}, + {-24494, {4, 1, 0, -5}, 508}, + {-3087, {1, 2, 7, 4}, 4681}, + }}, + {6, + { + {-24715, {-1, 1, 1, -1}, 28468}, + {-6335315, {3, -1, 1, -3}, 876}, + {-24568, {3, -1, 1, -3}, 712}, + {-772, {1, 1, 1, 1}, 16384}, + }}, + {7, + { + {-37018, {5, 2, -1, -6}, 9489}, + {-3168017, {-1, 0, 1, 0}, 4380}, + {-12339, {-1, 0, 1, 0}, 3559}, + {-2318, {-2, 1, 4, 3}, 10923}, + }}, + {0, + { + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + }}, + {0, + { + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + }}, + {0, + { + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, 1, 2, 3}, {0, 1, 1, 1}}, + { + {2, + { + {18582, {0, 1, -1, 0}, 56936}, + {1584248, {0, 0, 1, -1}, 8759}, + {6206, {0, 0, 1, -1}, 7117}, + {1, {0, 1, 2, -1}, 32768}, + }}, + {4, + { + {18582, {0, -1, 1, 0}, 56936}, + {3168495, {0, 1, 0, -1}, 4380}, + {12413, {0, 1, 0, -1}, 3559}, + {2, {0, 1, 2, 1}, 16384}, + }}, + {6, + { + {18582, {0, 2, -1, -1}, 56936}, + {1584248, {0, -1, 1, 0}, 8759}, + {6206, {0, -1, 1, 0}, 7117}, + {1, {0, -1, 2, 1}, 32768}, + }}, + {8, + { + {18582, {0, -2, 1, 1}, 56936}, + {1584248, {0, 1, -1, 0}, 8759}, + {6206, {0, 1, -1, 0}, 7117}, + {1, {0, -1, 2, 1}, 32768}, + }}, + {10, + { + {18582, {0, 1, -1, 0}, 56936}, + {3168495, {0, -1, 0, 1}, 4380}, + {12413, {0, -1, 0, 1}, 3559}, + {2, {0, 1, 2, 1}, 16384}, + }}, + {12, + { + {18582, {0, -1, 1, 0}, 56936}, + {1584248, {0, 0, -1, 1}, 8759}, + {6206, {0, 0, -1, 1}, 7117}, + {1, {0, 1, 2, -1}, 32768}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, 1, 0, -1}, {1, 1, 1, 1}}, + { + {1, + { + {-37018, {6, 1, -2, -5}, 9489}, + {-3168017, {0, 1, 0, -1}, 4380}, + {-12339, {0, 1, 0, -1}, 3559}, + {-2318, {3, 4, 1, -2}, 10923}, + }}, + {9, + { + {37, {1, -1, -1, 1}, 28468}, + {-6335315, {-3, 1, -1, 3}, 876}, + {-24568, {-3, 1, -1, 3}, 712}, + {-772, {1, 1, 1, 1}, 16384}, + }}, + {13, + { + {49762, {3, -14, 5, 6}, 4067}, + {-6334836, {-5, 0, 1, 4}, 626}, + {-24494, {-5, 0, 1, 4}, 508}, + {-3087, {4, 7, 2, 1}, 4681}, + }}, + {0, + { + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + }}, + {0, + { + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + }}, + {0, + { + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, -1, -2, -1}, {1, 1, 0, 1}}, + { + {1, + { + {-6170, {1, 0, 0, -1}, 56936}, + {239, {0, 1, 0, -1}, 4380}, + {37, {0, 1, 0, -1}, 3559}, + {776, {2, 3, 0, -1}, 16384}, + }}, + {2, + { + {-30885, {-1, 3, 0, -2}, 18979}, + {-1583769, {1, 0, 0, -1}, 2920}, + {-6133, {1, 0, 0, -1}, 2372}, + {-771, {2, 3, 0, 1}, 10923}, + }}, + {3, + { + {-6170, {1, 0, 0, -1}, 56936}, + {-1584008, {-1, 1, 0, 0}, 8759}, + {-6170, {-1, 1, 0, 0}, 7117}, + {-773, {-2, 3, 0, 1}, 32768}, + }}, + {8, + { + {-6170, {-1, 0, 0, 1}, 56936}, + {-1584008, {1, -1, 0, 0}, 8759}, + {-6170, {1, -1, 0, 0}, 7117}, + {775, {-2, 3, 0, 1}, 32768}, + }}, + {9, + { + {-30885, {1, -3, 0, 2}, 18979}, + {-1583769, {-1, 0, 0, 1}, 2920}, + {-6133, {-1, 0, 0, 1}, 2372}, + {777, {2, 3, 0, 1}, 10923}, + }}, + {10, + { + {-6170, {-1, 0, 0, 1}, 56936}, + {239, {0, -1, 0, 1}, 4380}, + {37, {0, -1, 0, 1}, 3559}, + {-772, {2, 3, 0, -1}, 16384}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, 1, 2, 3}, {1, 1, 0, 1}}, + { + {1, + { + {18582, {1, 0, 0, -1}, 56936}, + {3168495, {0, 1, 0, -1}, 4380}, + {12413, {0, 1, 0, -1}, 3559}, + {2, {2, 3, 0, -1}, 16384}, + }}, + {2, + { + {55747, {-1, 3, 0, -2}, 18979}, + {4752743, {1, 0, 0, -1}, 2920}, + {18619, {1, 0, 0, -1}, 2372}, + {3, {2, 3, 0, 1}, 10923}, + }}, + {3, + { + {18582, {1, 0, 0, -1}, 56936}, + {1584248, {-1, 1, 0, 0}, 8759}, + {6206, {-1, 1, 0, 0}, 7117}, + {1, {-2, 3, 0, 1}, 32768}, + }}, + {8, + { + {18582, {-1, 0, 0, 1}, 56936}, + {1584248, {1, -1, 0, 0}, 8759}, + {6206, {1, -1, 0, 0}, 7117}, + {1, {-2, 3, 0, 1}, 32768}, + }}, + {9, + { + {55747, {1, -3, 0, 2}, 18979}, + {4752743, {-1, 0, 0, 1}, 2920}, + {18619, {-1, 0, 0, 1}, 2372}, + {3, {2, 3, 0, 1}, 10923}, + }}, + {10, + { + {18582, {-1, 0, 0, 1}, 56936}, + {3168495, {0, -1, 0, 1}, 4380}, + {12413, {0, -1, 0, 1}, 3559}, + {2, {2, 3, 0, -1}, 16384}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, -1, 0, 1}, {1, 1, 1, 0}}, + { + {1, + { + {6206, {1, 1, -2, 0}, 56936}, + {1584248, {0, 1, -1, 0}, 8759}, + {6206, {0, 1, -1, 0}, 7117}, + {775, {1, 2, -1, 0}, 32768}, + }}, + {2, + { + {-6170, {0, 1, -1, 0}, 56936}, + {239, {1, 0, -1, 0}, 4380}, + {37, {1, 0, -1, 0}, 3559}, + {-772, {1, 2, 1, 0}, 16384}, + }}, + {3, + { + {-6170, {0, 1, -1, 0}, 56936}, + {-1584008, {-1, 1, 0, 0}, 8759}, + {-6170, {-1, 1, 0, 0}, 7117}, + {-773, {-1, 2, 1, 0}, 32768}, + }}, + {4, + { + {-6170, {0, -1, 1, 0}, 56936}, + {-1584008, {1, -1, 0, 0}, 8759}, + {-6170, {1, -1, 0, 0}, 7117}, + {775, {-1, 2, 1, 0}, 32768}, + }}, + {5, + { + {-6170, {0, -1, 1, 0}, 56936}, + {239, {-1, 0, 1, 0}, 4380}, + {37, {-1, 0, 1, 0}, 3559}, + {776, {1, 2, 1, 0}, 16384}, + }}, + {6, + { + {6206, {-1, -1, 2, 0}, 56936}, + {1584248, {0, -1, 1, 0}, 8759}, + {6206, {0, -1, 1, 0}, 7117}, + {-773, {1, 2, -1, 0}, 32768}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, 1, 0, -1}, {0, 1, 1, 1}}, + { + {2, + { + {6206, {0, 1, -1, 0}, 56936}, + {-1584008, {0, 0, 1, -1}, 8759}, + {-6170, {0, 0, 1, -1}, 7117}, + {1, {0, 1, 2, -1}, 32768}, + }}, + {4, + { + {6206, {0, -1, 1, 0}, 56936}, + {-3168017, {0, 1, 0, -1}, 4380}, + {-12339, {0, 1, 0, -1}, 3559}, + {2, {0, 1, 2, 1}, 16384}, + }}, + {6, + { + {6206, {0, 2, -1, -1}, 56936}, + {-1584008, {0, -1, 1, 0}, 8759}, + {-6170, {0, -1, 1, 0}, 7117}, + {1, {0, -1, 2, 1}, 32768}, + }}, + {8, + { + {6206, {0, -2, 1, 1}, 56936}, + {-1584008, {0, 1, -1, 0}, 8759}, + {-6170, {0, 1, -1, 0}, 7117}, + {1, {0, -1, 2, 1}, 32768}, + }}, + {10, + { + {6206, {0, 1, -1, 0}, 56936}, + {-3168017, {0, -1, 0, 1}, 4380}, + {-12339, {0, -1, 0, 1}, 3559}, + {2, {0, 1, 2, 1}, 16384}, + }}, + {12, + { + {6206, {0, -1, 1, 0}, 56936}, + {-1584008, {0, 0, -1, 1}, 8759}, + {-6170, {0, 0, -1, 1}, 7117}, + {1, {0, 1, 2, -1}, 32768}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, -1, 0, -1}, {1, 1, 1, 1}}, + { + {2, + { + {-123502, {-3, 14, -5, -6}, 4067}, + {-6334836, {5, 0, -1, -4}, 626}, + {-24494, {5, 0, -1, -4}, 508}, + {-2314, {4, 7, 2, 1}, 4681}, + }}, + {10, + { + {-12339, {-1, 1, -1, 1}, 28468}, + {479, {1, -1, -1, 1}, 2190}, + {74, {1, -1, -1, 1}, 1779}, + {-1543, {1, 3, 3, 1}, 8192}, + }}, + {3, + { + {-12339, {1, 1, -1, -1}, 28468}, + {-3168017, {-1, 1, 1, -1}, 4380}, + {-12339, {-1, 1, 1, -1}, 3559}, + {-1545, {-1, 3, 3, -1}, 16384}, + }}, + {11, + { + {-49246, {6, 5, -14, 3}, 4067}, + {-6334836, {-4, -1, 0, 5}, 626}, + {-24494, {-4, -1, 0, 5}, 508}, + {-2314, {1, 2, 7, 4}, 4681}, + }}, + {0, + { + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + }}, + {0, + { + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, -1, 0, -1}, {0, 1, 1, 1}}, + { + {2, + { + {-6170, {0, 1, -1, 0}, 56936}, + {-1584008, {0, 0, 1, -1}, 8759}, + {-6170, {0, 0, 1, -1}, 7117}, + {-773, {0, 1, 2, -1}, 32768}, + }}, + {4, + { + {-6170, {0, -1, 1, 0}, 56936}, + {239, {0, 1, 0, -1}, 4380}, + {37, {0, 1, 0, -1}, 3559}, + {776, {0, 1, 2, 1}, 16384}, + }}, + {6, + { + {-18546, {0, 2, -1, -1}, 56936}, + {1584248, {0, -1, 1, 0}, 8759}, + {6206, {0, -1, 1, 0}, 7117}, + {775, {0, -1, 2, 1}, 32768}, + }}, + {8, + { + {-18546, {0, -2, 1, 1}, 56936}, + {1584248, {0, 1, -1, 0}, 8759}, + {6206, {0, 1, -1, 0}, 7117}, + {-773, {0, -1, 2, 1}, 32768}, + }}, + {10, + { + {-6170, {0, 1, -1, 0}, 56936}, + {239, {0, -1, 0, 1}, 4380}, + {37, {0, -1, 0, 1}, 3559}, + {-772, {0, 1, 2, 1}, 16384}, + }}, + {12, + { + {-6170, {0, -1, 1, 0}, 56936}, + {-1584008, {0, 0, -1, 1}, 8759}, + {-6170, {0, 0, -1, 1}, 7117}, + {775, {0, 1, 2, -1}, 32768}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, 1, 2, 3}, {1, 1, 1, 1}}, + { + {8, + { + {111495, {-5, -2, 1, 6}, 9489}, + {3168495, {1, 0, -1, 0}, 4380}, + {12413, {1, 0, -1, 0}, 3559}, + {3, {-2, 1, 4, 3}, 10923}, + }}, + {12, + { + {37165, {-1, -1, 1, 1}, 28468}, + {3168495, {1, -1, -1, 1}, 4380}, + {12413, {1, -1, -1, 1}, 3559}, + {2, {-1, 3, 3, -1}, 16384}, + }}, + {14, + { + {111495, {-6, -1, 2, 5}, 9489}, + {3168495, {0, -1, 0, 1}, 4380}, + {12413, {0, -1, 0, 1}, 3559}, + {3, {3, 4, 1, -2}, 10923}, + }}, + {1, + { + {111495, {6, 1, -2, -5}, 9489}, + {3168495, {0, 1, 0, -1}, 4380}, + {12413, {0, 1, 0, -1}, 3559}, + {3, {3, 4, 1, -2}, 10923}, + }}, + {3, + { + {37165, {1, 1, -1, -1}, 28468}, + {3168495, {-1, 1, 1, -1}, 4380}, + {12413, {-1, 1, 1, -1}, 3559}, + {2, {-1, 3, 3, -1}, 16384}, + }}, + {7, + { + {111495, {5, 2, -1, -6}, 9489}, + {3168495, {-1, 0, 1, 0}, 4380}, + {12413, {-1, 0, 1, 0}, 3559}, + {3, {-2, 1, 4, 3}, 10923}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, 1, 0, 1}, {1, 0, 1, 1}}, + { + {1, + { + {6206, {1, 0, 0, -1}, 56936}, + {1584248, {0, 0, 1, -1}, 8759}, + {6206, {0, 0, 1, -1}, 7117}, + {775, {1, 0, 3, -2}, 32768}, + }}, + {4, + { + {6243, {-2, 0, 3, -1}, 18979}, + {1584487, {1, 0, 0, -1}, 2920}, + {6243, {1, 0, 0, -1}, 2372}, + {-771, {1, 0, 3, 2}, 10923}, + }}, + {5, + { + {6206, {1, 0, 0, -1}, 56936}, + {239, {-1, 0, 1, 0}, 4380}, + {37, {-1, 0, 1, 0}, 3559}, + {-772, {-1, 0, 3, 2}, 16384}, + }}, + {8, + { + {6206, {-1, 0, 0, 1}, 56936}, + {239, {1, 0, -1, 0}, 4380}, + {37, {1, 0, -1, 0}, 3559}, + {776, {-1, 0, 3, 2}, 16384}, + }}, + {9, + { + {6243, {2, 0, -3, 1}, 18979}, + {1584487, {-1, 0, 0, 1}, 2920}, + {6243, {-1, 0, 0, 1}, 2372}, + {777, {1, 0, 3, 2}, 10923}, + }}, + {12, + { + {6206, {-1, 0, 0, 1}, 56936}, + {1584248, {0, 0, -1, 1}, 8759}, + {6206, {0, 0, -1, 1}, 7117}, + {-773, {1, 0, 3, -2}, 32768}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, 1, 2, 1}, {1, 1, 0, 1}}, + { + {1, + { + {6206, {1, 0, 0, -1}, 56936}, + {239, {0, 1, 0, -1}, 4380}, + {37, {0, 1, 0, -1}, 3559}, + {-772, {2, 3, 0, -1}, 16384}, + }}, + {2, + { + {30995, {-1, 3, 0, -2}, 18979}, + {1584487, {1, 0, 0, -1}, 2920}, + {6243, {1, 0, 0, -1}, 2372}, + {777, {2, 3, 0, 1}, 10923}, + }}, + {3, + { + {6206, {1, 0, 0, -1}, 56936}, + {1584248, {-1, 1, 0, 0}, 8759}, + {6206, {-1, 1, 0, 0}, 7117}, + {775, {-2, 3, 0, 1}, 32768}, + }}, + {8, + { + {6206, {-1, 0, 0, 1}, 56936}, + {1584248, {1, -1, 0, 0}, 8759}, + {6206, {1, -1, 0, 0}, 7117}, + {-773, {-2, 3, 0, 1}, 32768}, + }}, + {9, + { + {30995, {1, -3, 0, 2}, 18979}, + {1584487, {-1, 0, 0, 1}, 2920}, + {6243, {-1, 0, 0, 1}, 2372}, + {-771, {2, 3, 0, 1}, 10923}, + }}, + {10, + { + {6206, {-1, 0, 0, 1}, 56936}, + {239, {0, -1, 0, 1}, 4380}, + {37, {0, -1, 0, 1}, 3559}, + {776, {2, 3, 0, -1}, 16384}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, -1, 0, -1}, {1, 1, 1, 0}}, + { + {1, + { + {6206, {1, 1, -2, 0}, 56936}, + {1584248, {0, 1, -1, 0}, 8759}, + {6206, {0, 1, -1, 0}, 7117}, + {775, {1, 2, -1, 0}, 32768}, + }}, + {2, + { + {-6170, {0, 1, -1, 0}, 56936}, + {239, {1, 0, -1, 0}, 4380}, + {37, {1, 0, -1, 0}, 3559}, + {-772, {1, 2, 1, 0}, 16384}, + }}, + {3, + { + {-6170, {0, 1, -1, 0}, 56936}, + {-1584008, {-1, 1, 0, 0}, 8759}, + {-6170, {-1, 1, 0, 0}, 7117}, + {-773, {-1, 2, 1, 0}, 32768}, + }}, + {4, + { + {-6170, {0, -1, 1, 0}, 56936}, + {-1584008, {1, -1, 0, 0}, 8759}, + {-6170, {1, -1, 0, 0}, 7117}, + {775, {-1, 2, 1, 0}, 32768}, + }}, + {5, + { + {-6170, {0, -1, 1, 0}, 56936}, + {239, {-1, 0, 1, 0}, 4380}, + {37, {-1, 0, 1, 0}, 3559}, + {776, {1, 2, 1, 0}, 16384}, + }}, + {6, + { + {6206, {-1, -1, 2, 0}, 56936}, + {1584248, {0, -1, 1, 0}, 8759}, + {6206, {0, -1, 1, 0}, 7117}, + {-773, {1, 2, -1, 0}, 32768}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, 1, 2, 1}, {1, 0, 1, 1}}, + { + {1, + { + {6206, {1, 0, 0, -1}, 56936}, + {-1584008, {0, 0, 1, -1}, 8759}, + {-6170, {0, 0, 1, -1}, 7117}, + {-1546, {1, 0, 3, -2}, 32768}, + }}, + {4, + { + {43371, {-2, 0, 3, -1}, 18979}, + {1584487, {1, 0, 0, -1}, 2920}, + {6243, {1, 0, 0, -1}, 2372}, + {1550, {1, 0, 3, 2}, 10923}, + }}, + {5, + { + {6206, {1, 0, 0, -1}, 56936}, + {3168495, {-1, 0, 1, 0}, 4380}, + {12413, {-1, 0, 1, 0}, 3559}, + {1549, {-1, 0, 3, 2}, 16384}, + }}, + {8, + { + {6206, {-1, 0, 0, 1}, 56936}, + {3168495, {1, 0, -1, 0}, 4380}, + {12413, {1, 0, -1, 0}, 3559}, + {-1545, {-1, 0, 3, 2}, 16384}, + }}, + {9, + { + {43371, {2, 0, -3, 1}, 18979}, + {1584487, {-1, 0, 0, 1}, 2920}, + {6243, {-1, 0, 0, 1}, 2372}, + {-1544, {1, 0, 3, 2}, 10923}, + }}, + {12, + { + {6206, {-1, 0, 0, 1}, 56936}, + {-1584008, {0, 0, -1, 1}, 8759}, + {-6170, {0, 0, -1, 1}, 7117}, + {1548, {1, 0, 3, -2}, 32768}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, 1, 0, -1}, {1, 1, 1, 0}}, + { + {1, + { + {-6170, {1, 1, -2, 0}, 56936}, + {-1584008, {0, 1, -1, 0}, 8759}, + {-6170, {0, 1, -1, 0}, 7117}, + {-773, {1, 2, -1, 0}, 32768}, + }}, + {2, + { + {6206, {0, 1, -1, 0}, 56936}, + {239, {1, 0, -1, 0}, 4380}, + {37, {1, 0, -1, 0}, 3559}, + {776, {1, 2, 1, 0}, 16384}, + }}, + {3, + { + {6206, {0, 1, -1, 0}, 56936}, + {1584248, {-1, 1, 0, 0}, 8759}, + {6206, {-1, 1, 0, 0}, 7117}, + {775, {-1, 2, 1, 0}, 32768}, + }}, + {4, + { + {6206, {0, -1, 1, 0}, 56936}, + {1584248, {1, -1, 0, 0}, 8759}, + {6206, {1, -1, 0, 0}, 7117}, + {-773, {-1, 2, 1, 0}, 32768}, + }}, + {5, + { + {6206, {0, -1, 1, 0}, 56936}, + {239, {-1, 0, 1, 0}, 4380}, + {37, {-1, 0, 1, 0}, 3559}, + {-772, {1, 2, 1, 0}, 16384}, + }}, + {6, + { + {-6170, {-1, -1, 2, 0}, 56936}, + {-1584008, {0, -1, 1, 0}, 8759}, + {-6170, {0, -1, 1, 0}, 7117}, + {775, {1, 2, -1, 0}, 32768}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, 1, 2, 3}, {1, 1, 1, 0}}, + { + {1, + { + {18582, {1, 1, -2, 0}, 56936}, + {1584248, {0, 1, -1, 0}, 8759}, + {6206, {0, 1, -1, 0}, 7117}, + {1, {1, 2, -1, 0}, 32768}, + }}, + {2, + { + {18582, {0, 1, -1, 0}, 56936}, + {3168495, {1, 0, -1, 0}, 4380}, + {12413, {1, 0, -1, 0}, 3559}, + {2, {1, 2, 1, 0}, 16384}, + }}, + {3, + { + {18582, {0, 1, -1, 0}, 56936}, + {1584248, {-1, 1, 0, 0}, 8759}, + {6206, {-1, 1, 0, 0}, 7117}, + {1, {-1, 2, 1, 0}, 32768}, + }}, + {4, + { + {18582, {0, -1, 1, 0}, 56936}, + {1584248, {1, -1, 0, 0}, 8759}, + {6206, {1, -1, 0, 0}, 7117}, + {1, {-1, 2, 1, 0}, 32768}, + }}, + {5, + { + {18582, {0, -1, 1, 0}, 56936}, + {3168495, {-1, 0, 1, 0}, 4380}, + {12413, {-1, 0, 1, 0}, 3559}, + {2, {1, 2, 1, 0}, 16384}, + }}, + {6, + { + {18582, {-1, -1, 2, 0}, 56936}, + {1584248, {0, -1, 1, 0}, 8759}, + {6206, {0, -1, 1, 0}, 7117}, + {1, {1, 2, -1, 0}, 32768}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, 1, 0, 1}, {1, 1, 1, 0}}, + { + {1, + { + {-6170, {1, 1, -2, 0}, 56936}, + {-1584008, {0, 1, -1, 0}, 8759}, + {-6170, {0, 1, -1, 0}, 7117}, + {-773, {1, 2, -1, 0}, 32768}, + }}, + {2, + { + {6206, {0, 1, -1, 0}, 56936}, + {239, {1, 0, -1, 0}, 4380}, + {37, {1, 0, -1, 0}, 3559}, + {776, {1, 2, 1, 0}, 16384}, + }}, + {3, + { + {6206, {0, 1, -1, 0}, 56936}, + {1584248, {-1, 1, 0, 0}, 8759}, + {6206, {-1, 1, 0, 0}, 7117}, + {775, {-1, 2, 1, 0}, 32768}, + }}, + {4, + { + {6206, {0, -1, 1, 0}, 56936}, + {1584248, {1, -1, 0, 0}, 8759}, + {6206, {1, -1, 0, 0}, 7117}, + {-773, {-1, 2, 1, 0}, 32768}, + }}, + {5, + { + {6206, {0, -1, 1, 0}, 56936}, + {239, {-1, 0, 1, 0}, 4380}, + {37, {-1, 0, 1, 0}, 3559}, + {-772, {1, 2, 1, 0}, 16384}, + }}, + {6, + { + {-6170, {-1, -1, 2, 0}, 56936}, + {-1584008, {0, -1, 1, 0}, 8759}, + {-6170, {0, -1, 1, 0}, 7117}, + {775, {1, 2, -1, 0}, 32768}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, -1, 0, 1}, {1, 1, 1, 1}}, + { + {2, + { + {-49246, {-3, 14, -5, -6}, 4067}, + {6338188, {5, 0, -1, -4}, 626}, + {25010, {5, 0, -1, -4}, 508}, + {-3087, {4, 7, 2, 1}, 4681}, + }}, + {6, + { + {37, {-1, 1, 1, -1}, 28468}, + {6337709, {3, -1, 1, -3}, 876}, + {24936, {3, -1, 1, -3}, 712}, + {-772, {1, 1, 1, 1}, 16384}, + }}, + {14, + { + {37239, {-6, -1, 2, 5}, 9489}, + {3168495, {0, -1, 0, 1}, 4380}, + {12413, {0, -1, 0, 1}, 3559}, + {-2318, {3, 4, 1, -2}, 10923}, + }}, + {0, + { + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + }}, + {0, + { + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + }}, + {0, + { + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, -1, -2, -3}, {1, 0, 1, 1}}, + { + {1, + { + {-18546, {1, 0, 0, -1}, 56936}, + {-1584008, {0, 0, 1, -1}, 8759}, + {-6170, {0, 0, 1, -1}, 7117}, + {1, {1, 0, 3, -2}, 32768}, + }}, + {4, + { + {-55637, {-2, 0, 3, -1}, 18979}, + {-4752025, {1, 0, 0, -1}, 2920}, + {-18509, {1, 0, 0, -1}, 2372}, + {3, {1, 0, 3, 2}, 10923}, + }}, + {5, + { + {-18546, {1, 0, 0, -1}, 56936}, + {-3168017, {-1, 0, 1, 0}, 4380}, + {-12339, {-1, 0, 1, 0}, 3559}, + {2, {-1, 0, 3, 2}, 16384}, + }}, + {8, + { + {-18546, {-1, 0, 0, 1}, 56936}, + {-3168017, {1, 0, -1, 0}, 4380}, + {-12339, {1, 0, -1, 0}, 3559}, + {2, {-1, 0, 3, 2}, 16384}, + }}, + {9, + { + {-55637, {2, 0, -3, 1}, 18979}, + {-4752025, {-1, 0, 0, 1}, 2920}, + {-18509, {-1, 0, 0, 1}, 2372}, + {3, {1, 0, 3, 2}, 10923}, + }}, + {12, + { + {-18546, {-1, 0, 0, 1}, 56936}, + {-1584008, {0, 0, -1, 1}, 8759}, + {-6170, {0, 0, -1, 1}, 7117}, + {1, {1, 0, 3, -2}, 32768}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, 1, 0, 1}, {1, 1, 1, 1}}, + { + {4, + { + {49762, {-6, -5, 14, -3}, 4067}, + {6338188, {4, 1, 0, -5}, 626}, + {25010, {4, 1, 0, -5}, 508}, + {-2314, {1, 2, 7, 4}, 4681}, + }}, + {12, + { + {12413, {-1, -1, 1, 1}, 28468}, + {3168495, {1, -1, -1, 1}, 4380}, + {12413, {1, -1, -1, 1}, 3559}, + {-1545, {-1, 3, 3, -1}, 16384}, + }}, + {5, + { + {12413, {1, -1, 1, -1}, 28468}, + {479, {-1, 1, 1, -1}, 2190}, + {74, {-1, 1, 1, -1}, 1779}, + {-1543, {1, 3, 3, 1}, 8192}, + }}, + {13, + { + {124018, {3, -14, 5, 6}, 4067}, + {6338188, {-5, 0, 1, 4}, 626}, + {25010, {-5, 0, 1, 4}, 508}, + {-2314, {4, 7, 2, 1}, 4681}, + }}, + {0, + { + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + }}, + {0, + { + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, -1, 0, 1}, {1, 0, 1, 1}}, + { + {1, + { + {6206, {1, 0, 0, -1}, 56936}, + {1584248, {0, 0, 1, -1}, 8759}, + {6206, {0, 0, 1, -1}, 7117}, + {775, {1, 0, 3, -2}, 32768}, + }}, + {4, + { + {6243, {-2, 0, 3, -1}, 18979}, + {1584487, {1, 0, 0, -1}, 2920}, + {6243, {1, 0, 0, -1}, 2372}, + {-771, {1, 0, 3, 2}, 10923}, + }}, + {5, + { + {6206, {1, 0, 0, -1}, 56936}, + {239, {-1, 0, 1, 0}, 4380}, + {37, {-1, 0, 1, 0}, 3559}, + {-772, {-1, 0, 3, 2}, 16384}, + }}, + {8, + { + {6206, {-1, 0, 0, 1}, 56936}, + {239, {1, 0, -1, 0}, 4380}, + {37, {1, 0, -1, 0}, 3559}, + {776, {-1, 0, 3, 2}, 16384}, + }}, + {9, + { + {6243, {2, 0, -3, 1}, 18979}, + {1584487, {-1, 0, 0, 1}, 2920}, + {6243, {-1, 0, 0, 1}, 2372}, + {777, {1, 0, 3, 2}, 10923}, + }}, + {12, + { + {6206, {-1, 0, 0, 1}, 56936}, + {1584248, {0, 0, -1, 1}, 8759}, + {6206, {0, 0, -1, 1}, 7117}, + {-773, {1, 0, 3, -2}, 32768}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, -1, 0, -1}, {1, 0, 1, 1}}, + { + {1, + { + {-6170, {1, 0, 0, -1}, 56936}, + {-1584008, {0, 0, 1, -1}, 8759}, + {-6170, {0, 0, 1, -1}, 7117}, + {-773, {1, 0, 3, -2}, 32768}, + }}, + {4, + { + {-6133, {-2, 0, 3, -1}, 18979}, + {-1583769, {1, 0, 0, -1}, 2920}, + {-6133, {1, 0, 0, -1}, 2372}, + {777, {1, 0, 3, 2}, 10923}, + }}, + {5, + { + {-6170, {1, 0, 0, -1}, 56936}, + {239, {-1, 0, 1, 0}, 4380}, + {37, {-1, 0, 1, 0}, 3559}, + {776, {-1, 0, 3, 2}, 16384}, + }}, + {8, + { + {-6170, {-1, 0, 0, 1}, 56936}, + {239, {1, 0, -1, 0}, 4380}, + {37, {1, 0, -1, 0}, 3559}, + {-772, {-1, 0, 3, 2}, 16384}, + }}, + {9, + { + {-6133, {2, 0, -3, 1}, 18979}, + {-1583769, {-1, 0, 0, 1}, 2920}, + {-6133, {-1, 0, 0, 1}, 2372}, + {-771, {1, 0, 3, 2}, 10923}, + }}, + {12, + { + {-6170, {-1, 0, 0, 1}, 56936}, + {-1584008, {0, 0, -1, 1}, 8759}, + {-6170, {0, 0, -1, 1}, 7117}, + {775, {1, 0, 3, -2}, 32768}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, 1, 2, 1}, {1, 1, 1, 1}}, + { + {8, + { + {37239, {-5, -2, 1, 6}, 9489}, + {3168495, {1, 0, -1, 0}, 4380}, + {12413, {1, 0, -1, 0}, 3559}, + {-2318, {-2, 1, 4, 3}, 10923}, + }}, + {9, + { + {24789, {1, -1, -1, 1}, 28468}, + {6337709, {-3, 1, -1, 3}, 876}, + {24936, {-3, 1, -1, 3}, 712}, + {-772, {1, 1, 1, 1}, 16384}, + }}, + {11, + { + {223026, {6, 5, -14, 3}, 4067}, + {6338188, {-4, -1, 0, 5}, 626}, + {25010, {-4, -1, 0, 5}, 508}, + {-3087, {1, 2, 7, 4}, 4681}, + }}, + {0, + { + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + }}, + {0, + { + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + }}, + {0, + { + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + {0, {0, 0, 0, 0}, 0}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, -1, -2, -1}, {1, 0, 1, 1}}, + { + {1, + { + {-6170, {1, 0, 0, -1}, 56936}, + {1584248, {0, 0, 1, -1}, 8759}, + {6206, {0, 0, 1, -1}, 7117}, + {1548, {1, 0, 3, -2}, 32768}, + }}, + {4, + { + {-43261, {-2, 0, 3, -1}, 18979}, + {-1583769, {1, 0, 0, -1}, 2920}, + {-6133, {1, 0, 0, -1}, 2372}, + {-1544, {1, 0, 3, 2}, 10923}, + }}, + {5, + { + {-6170, {1, 0, 0, -1}, 56936}, + {-3168017, {-1, 0, 1, 0}, 4380}, + {-12339, {-1, 0, 1, 0}, 3559}, + {-1545, {-1, 0, 3, 2}, 16384}, + }}, + {8, + { + {-6170, {-1, 0, 0, 1}, 56936}, + {-3168017, {1, 0, -1, 0}, 4380}, + {-12339, {1, 0, -1, 0}, 3559}, + {1549, {-1, 0, 3, 2}, 16384}, + }}, + {9, + { + {-43261, {2, 0, -3, 1}, 18979}, + {-1583769, {-1, 0, 0, 1}, 2920}, + {-6133, {-1, 0, 0, 1}, 2372}, + {1550, {1, 0, 3, 2}, 10923}, + }}, + {12, + { + {-6170, {-1, 0, 0, 1}, 56936}, + {1584248, {0, 0, -1, 1}, 8759}, + {6206, {0, 0, -1, 1}, 7117}, + {-1546, {1, 0, 3, -2}, 32768}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, 1, 0, -1}, {1, 1, 0, 1}}, + { + {1, + { + {-6170, {1, 0, 0, -1}, 56936}, + {-3168017, {0, 1, 0, -1}, 4380}, + {-12339, {0, 1, 0, -1}, 3559}, + {-1545, {2, 3, 0, -1}, 16384}, + }}, + {2, + { + {6243, {-1, 3, 0, -2}, 18979}, + {-1583769, {1, 0, 0, -1}, 2920}, + {-6133, {1, 0, 0, -1}, 2372}, + {1550, {2, 3, 0, 1}, 10923}, + }}, + {3, + { + {-6170, {1, 0, 0, -1}, 56936}, + {1584248, {-1, 1, 0, 0}, 8759}, + {6206, {-1, 1, 0, 0}, 7117}, + {1548, {-2, 3, 0, 1}, 32768}, + }}, + {8, + { + {-6170, {-1, 0, 0, 1}, 56936}, + {1584248, {1, -1, 0, 0}, 8759}, + {6206, {1, -1, 0, 0}, 7117}, + {-1546, {-2, 3, 0, 1}, 32768}, + }}, + {9, + { + {6243, {1, -3, 0, 2}, 18979}, + {-1583769, {-1, 0, 0, 1}, 2920}, + {-6133, {-1, 0, 0, 1}, 2372}, + {-1544, {2, 3, 0, 1}, 10923}, + }}, + {10, + { + {-6170, {-1, 0, 0, 1}, 56936}, + {-3168017, {0, -1, 0, 1}, 4380}, + {-12339, {0, -1, 0, 1}, 3559}, + {1549, {2, 3, 0, -1}, 16384}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, -1, -2, -3}, {1, 1, 1, 1}}, + { + {8, + { + {-111274, {-5, -2, 1, 6}, 9489}, + {-3168017, {1, 0, -1, 0}, 4380}, + {-12339, {1, 0, -1, 0}, 3559}, + {3, {-2, 1, 4, 3}, 10923}, + }}, + {12, + { + {-37091, {-1, -1, 1, 1}, 28468}, + {-3168017, {1, -1, -1, 1}, 4380}, + {-12339, {1, -1, -1, 1}, 3559}, + {2, {-1, 3, 3, -1}, 16384}, + }}, + {14, + { + {-111274, {-6, -1, 2, 5}, 9489}, + {-3168017, {0, -1, 0, 1}, 4380}, + {-12339, {0, -1, 0, 1}, 3559}, + {3, {3, 4, 1, -2}, 10923}, + }}, + {1, + { + {-111274, {6, 1, -2, -5}, 9489}, + {-3168017, {0, 1, 0, -1}, 4380}, + {-12339, {0, 1, 0, -1}, 3559}, + {3, {3, 4, 1, -2}, 10923}, + }}, + {3, + { + {-37091, {1, 1, -1, -1}, 28468}, + {-3168017, {-1, 1, 1, -1}, 4380}, + {-12339, {-1, 1, 1, -1}, 3559}, + {2, {-1, 3, 3, -1}, 16384}, + }}, + {7, + { + {-111274, {5, 2, -1, -6}, 9489}, + {-3168017, {-1, 0, 1, 0}, 4380}, + {-12339, {-1, 0, 1, 0}, 3559}, + {3, {-2, 1, 4, 3}, 10923}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, 1, 0, 1}, {1, 1, 0, 1}}, + { + {1, + { + {6206, {1, 0, 0, -1}, 56936}, + {239, {0, 1, 0, -1}, 4380}, + {37, {0, 1, 0, -1}, 3559}, + {-772, {2, 3, 0, -1}, 16384}, + }}, + {2, + { + {30995, {-1, 3, 0, -2}, 18979}, + {1584487, {1, 0, 0, -1}, 2920}, + {6243, {1, 0, 0, -1}, 2372}, + {777, {2, 3, 0, 1}, 10923}, + }}, + {3, + { + {6206, {1, 0, 0, -1}, 56936}, + {1584248, {-1, 1, 0, 0}, 8759}, + {6206, {-1, 1, 0, 0}, 7117}, + {775, {-2, 3, 0, 1}, 32768}, + }}, + {8, + { + {6206, {-1, 0, 0, 1}, 56936}, + {1584248, {1, -1, 0, 0}, 8759}, + {6206, {1, -1, 0, 0}, 7117}, + {-773, {-2, 3, 0, 1}, 32768}, + }}, + {9, + { + {30995, {1, -3, 0, 2}, 18979}, + {1584487, {-1, 0, 0, 1}, 2920}, + {6243, {-1, 0, 0, 1}, 2372}, + {-771, {2, 3, 0, 1}, 10923}, + }}, + {10, + { + {6206, {-1, 0, 0, 1}, 56936}, + {239, {0, -1, 0, 1}, 4380}, + {37, {0, -1, 0, 1}, 3559}, + {776, {2, 3, 0, -1}, 16384}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, 1, 2, 3}, {1, 0, 1, 1}}, + { + {1, + { + {18582, {1, 0, 0, -1}, 56936}, + {1584248, {0, 0, 1, -1}, 8759}, + {6206, {0, 0, 1, -1}, 7117}, + {1, {1, 0, 3, -2}, 32768}, + }}, + {4, + { + {55747, {-2, 0, 3, -1}, 18979}, + {4752743, {1, 0, 0, -1}, 2920}, + {18619, {1, 0, 0, -1}, 2372}, + {3, {1, 0, 3, 2}, 10923}, + }}, + {5, + { + {18582, {1, 0, 0, -1}, 56936}, + {3168495, {-1, 0, 1, 0}, 4380}, + {12413, {-1, 0, 1, 0}, 3559}, + {2, {-1, 0, 3, 2}, 16384}, + }}, + {8, + { + {18582, {-1, 0, 0, 1}, 56936}, + {3168495, {1, 0, -1, 0}, 4380}, + {12413, {1, 0, -1, 0}, 3559}, + {2, {-1, 0, 3, 2}, 16384}, + }}, + {9, + { + {55747, {2, 0, -3, 1}, 18979}, + {4752743, {-1, 0, 0, 1}, 2920}, + {18619, {-1, 0, 0, 1}, 2372}, + {3, {1, 0, 3, 2}, 10923}, + }}, + {12, + { + {18582, {-1, 0, 0, 1}, 56936}, + {1584248, {0, 0, -1, 1}, 8759}, + {6206, {0, 0, -1, 1}, 7117}, + {1, {1, 0, 3, -2}, 32768}, + }}, + }}); + LAYOUT_VALID_TO_LATCOMB_CONSTS_ENCODER.push_back({{{0, -1, 0, 1}, {1, 1, 0, 1}}, + { + {1, + { + {6206, {1, 0, 0, -1}, 56936}, + {3168495, {0, 1, 0, -1}, 4380}, + {12413, {0, 1, 0, -1}, 3559}, + {1549, {2, 3, 0, -1}, 16384}, + }}, + {2, + { + {-6133, {-1, 3, 0, -2}, 18979}, + {1584487, {1, 0, 0, -1}, 2920}, + {6243, {1, 0, 0, -1}, 2372}, + {-1544, {2, 3, 0, 1}, 10923}, + }}, + {3, + { + {6206, {1, 0, 0, -1}, 56936}, + {-1584008, {-1, 1, 0, 0}, 8759}, + {-6170, {-1, 1, 0, 0}, 7117}, + {-1546, {-2, 3, 0, 1}, 32768}, + }}, + {8, + { + {6206, {-1, 0, 0, 1}, 56936}, + {-1584008, {1, -1, 0, 0}, 8759}, + {-6170, {1, -1, 0, 0}, 7117}, + {1548, {-2, 3, 0, 1}, 32768}, + }}, + {9, + { + {-6133, {1, -3, 0, 2}, 18979}, + {1584487, {-1, 0, 0, 1}, 2920}, + {6243, {-1, 0, 0, 1}, 2372}, + {1550, {2, 3, 0, 1}, 10923}, + }}, + {10, + { + {6206, {-1, 0, 0, 1}, 56936}, + {3168495, {0, -1, 0, 1}, 4380}, + {12413, {0, -1, 0, 1}, 3559}, + {-1545, {2, 3, 0, -1}, 16384}, + }}, + }}); +} diff --git a/L1Trigger/DTTriggerPhase2/src/MuonPathAnalyzerInChamber.cc b/L1Trigger/DTTriggerPhase2/src/MuonPathAnalyzerInChamber.cc index 42a0aadd2144e..a634baabd7632 100644 --- a/L1Trigger/DTTriggerPhase2/src/MuonPathAnalyzerInChamber.cc +++ b/L1Trigger/DTTriggerPhase2/src/MuonPathAnalyzerInChamber.cc @@ -14,7 +14,7 @@ MuonPathAnalyzerInChamber::MuonPathAnalyzerInChamber(const ParameterSet &pset, e chi2Th_(pset.getUntrackedParameter("chi2Th")), shift_filename_(pset.getParameter("shift_filename")), bxTolerance_(30), - minQuality_(LOWQGHOST), + minQuality_(LOWQ), chiSquareThreshold_(50), minHits4Fit_(pset.getUntrackedParameter("minHits4Fit")) { // Obtention of parameters diff --git a/L1Trigger/DTTriggerPhase2/src/MuonPathAnalyzerPerSL.cc b/L1Trigger/DTTriggerPhase2/src/MuonPathAnalyzerPerSL.cc deleted file mode 100644 index 3fa3436fe06b4..0000000000000 --- a/L1Trigger/DTTriggerPhase2/src/MuonPathAnalyzerPerSL.cc +++ /dev/null @@ -1,1076 +0,0 @@ -#include "L1Trigger/DTTriggerPhase2/interface/MuonPathAnalyzerPerSL.h" -#include -#include - -using namespace edm; -using namespace std; -using namespace cmsdt; -// ============================================================================ -// Constructors and destructor -// ============================================================================ -MuonPathAnalyzerPerSL::MuonPathAnalyzerPerSL(const ParameterSet &pset, edm::ConsumesCollector &iC) - : MuonPathAnalyzer(pset, iC), - bxTolerance_(30), - minQuality_(LOWQGHOST), - chiSquareThreshold_(50), - debug_(pset.getUntrackedParameter("debug")), - chi2Th_(pset.getUntrackedParameter("chi2Th")), - tanPhiTh_(pset.getUntrackedParameter("tanPhiTh")), - use_LSB_(pset.getUntrackedParameter("use_LSB")), - tanPsi_precision_(pset.getUntrackedParameter("tanPsi_precision")), - x_precision_(pset.getUntrackedParameter("x_precision")) { - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "MuonPathAnalyzer: constructor"; - - setChiSquareThreshold(chi2Th_ * 100.); - - //shift - int rawId; - shift_filename_ = pset.getParameter("shift_filename"); - std::ifstream ifin3(shift_filename_.fullPath()); - double shift; - if (ifin3.fail()) { - throw cms::Exception("Missing Input File") - << "MuonPathAnalyzerPerSL::MuonPathAnalyzerPerSL() - Cannot find " << shift_filename_.fullPath(); - } - while (ifin3.good()) { - ifin3 >> rawId >> shift; - shiftinfo_[rawId] = shift; - } - - chosen_sl_ = pset.getUntrackedParameter("trigger_with_sl"); - - if (chosen_sl_ != 1 && chosen_sl_ != 3 && chosen_sl_ != 4) { - LogDebug("MuonPathAnalyzerPerSL") << "chosen sl must be 1,3 or 4(both superlayers)"; - assert(chosen_sl_ != 1 && chosen_sl_ != 3 && chosen_sl_ != 4); //4 means run using the two superlayers - } - - dtGeomH = iC.esConsumes(); -} - -MuonPathAnalyzerPerSL::~MuonPathAnalyzerPerSL() { - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "MuonPathAnalyzer: destructor"; -} - -// ============================================================================ -// Main methods (initialise, run, finish) -// ============================================================================ -void MuonPathAnalyzerPerSL::initialise(const edm::EventSetup &iEventSetup) { - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "MuonPathAnalyzerPerSL::initialiase"; - - const MuonGeometryRecord &geom = iEventSetup.get(); - dtGeo_ = &geom.get(dtGeomH); -} - -void MuonPathAnalyzerPerSL::run(edm::Event &iEvent, - const edm::EventSetup &iEventSetup, - MuonPathPtrs &muonpaths, - std::vector &metaPrimitives) { - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "MuonPathAnalyzerPerSL: run"; - - // fit per SL (need to allow for multiple outputs for a single mpath) - for (auto &muonpath : muonpaths) { - analyze(muonpath, metaPrimitives); - } -} - -void MuonPathAnalyzerPerSL::finish() { - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "MuonPathAnalyzer: finish"; -}; - -constexpr int MuonPathAnalyzerPerSL::LAYER_ARRANGEMENTS_[NUM_LAYERS][NUM_CELL_COMB] = { - {0, 1, 2}, - {1, 2, 3}, // Consecutive groups - {0, 1, 3}, - {0, 2, 3} // Non-consecutive groups -}; - -//------------------------------------------------------------------ -//--- Métodos privados -//------------------------------------------------------------------ - -void MuonPathAnalyzerPerSL::analyze(MuonPathPtr &inMPath, std::vector &metaPrimitives) { - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:analyze \t\t\t\t starts"; - - // LOCATE MPATH - int selected_Id = 0; - if (inMPath->primitive(0)->tdcTimeStamp() != -1) - selected_Id = inMPath->primitive(0)->cameraId(); - else if (inMPath->primitive(1)->tdcTimeStamp() != -1) - selected_Id = inMPath->primitive(1)->cameraId(); - else if (inMPath->primitive(2)->tdcTimeStamp() != -1) - selected_Id = inMPath->primitive(2)->cameraId(); - else if (inMPath->primitive(3)->tdcTimeStamp() != -1) - selected_Id = inMPath->primitive(3)->cameraId(); - - DTLayerId thisLId(selected_Id); - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "Building up MuonPathSLId from rawId in the Primitive"; - DTSuperLayerId MuonPathSLId(thisLId.wheel(), thisLId.station(), thisLId.sector(), thisLId.superLayer()); - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "The MuonPathSLId is" << MuonPathSLId; - - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") - << "DTp2:analyze \t\t\t\t In analyze function checking if inMPath->isAnalyzable() " << inMPath->isAnalyzable(); - - if (chosen_sl_ < 4 && thisLId.superLayer() != chosen_sl_) - return; // avoid running when mpath not in chosen SL (for 1SL fitting) - - auto mPath = std::make_shared(inMPath); - - if (mPath->isAnalyzable()) { - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:analyze \t\t\t\t\t yes it is analyzable " << mPath->isAnalyzable(); - setCellLayout(mPath->cellLayout()); - evaluatePathQuality(mPath); - } else { - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:analyze \t\t\t\t\t no it is NOT analyzable " << mPath->isAnalyzable(); - return; - } - - int wi[8], tdc[8], lat[8]; - DTPrimitivePtr Prim0(mPath->primitive(0)); - wi[0] = Prim0->channelId(); - tdc[0] = Prim0->tdcTimeStamp(); - DTPrimitivePtr Prim1(mPath->primitive(1)); - wi[1] = Prim1->channelId(); - tdc[1] = Prim1->tdcTimeStamp(); - DTPrimitivePtr Prim2(mPath->primitive(2)); - wi[2] = Prim2->channelId(); - tdc[2] = Prim2->tdcTimeStamp(); - DTPrimitivePtr Prim3(mPath->primitive(3)); - wi[3] = Prim3->channelId(); - tdc[3] = Prim3->tdcTimeStamp(); - for (int i = 4; i < 8; i++) { - wi[i] = -1; - tdc[i] = -1; - lat[i] = -1; - } - - DTWireId wireId(MuonPathSLId, 2, 1); - - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:analyze \t\t\t\t checking if it passes the min quality cut " - << mPath->quality() << ">" << minQuality_; - if (mPath->quality() >= minQuality_) { - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:analyze \t\t\t\t min quality achievedCalidad: " << mPath->quality(); - for (int i = 0; i <= 3; i++) { - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") - << "DTp2:analyze \t\t\t\t Capa: " << mPath->primitive(i)->layerId() - << " Canal: " << mPath->primitive(i)->channelId() << " TDCTime: " << mPath->primitive(i)->tdcTimeStamp(); - } - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:analyze \t\t\t\t Starting lateralities loop, totalNumValLateralities: " - << totalNumValLateralities_; - - double best_chi2 = 99999.; - double chi2_jm_tanPhi = 999; - double chi2_jm_x = -1; - double chi2_jm_t0 = -1; - double chi2_phi = -1; - double chi2_phiB = -1; - double chi2_chi2 = -1; - int chi2_quality = -1; - int bestLat[8]; - for (int i = 0; i < 8; i++) { - bestLat[i] = -1; - } - - for (int i = 0; i < totalNumValLateralities_; i++) { //here - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:analyze \t\t\t\t\t laterality #- " << i; - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:analyze \t\t\t\t\t laterality #- " << i << " checking quality:"; - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") - << "DTp2:analyze \t\t\t\t\t laterality #- " << i << " checking mPath Quality=" << mPath->quality(); - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") - << "DTp2:analyze \t\t\t\t\t laterality #- " << i << " latQuality_[i].val=" << latQuality_[i].valid; - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:analyze \t\t\t\t\t laterality #- " << i << " before if:"; - - if (latQuality_[i].valid and - (((mPath->quality() == HIGHQ or mPath->quality() == HIGHQGHOST) and latQuality_[i].quality == HIGHQ) or - ((mPath->quality() == LOWQ or mPath->quality() == LOWQGHOST) and latQuality_[i].quality == LOWQ))) { - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:analyze \t\t\t\t\t laterality #- " << i << " inside if"; - mPath->setBxTimeValue(latQuality_[i].bxValue); - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") - << "DTp2:analyze \t\t\t\t\t laterality #- " << i << " settingLateralCombination"; - mPath->setLateralComb(lateralities_[i]); - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") - << "DTp2:analyze \t\t\t\t\t laterality #- " << i << " done settingLateralCombination"; - - // Clonamos el objeto analizado. - auto mpAux = std::make_shared(mPath); - lat[0] = mpAux->lateralComb()[0]; - lat[1] = mpAux->lateralComb()[1]; - lat[2] = mpAux->lateralComb()[2]; - lat[3] = mpAux->lateralComb()[3]; - - int wiOk[NUM_LAYERS], tdcOk[NUM_LAYERS], latOk[NUM_LAYERS]; - for (int lay = 0; lay < 4; lay++) { - if (latQuality_[i].invalidateHitIdx == lay) { - wiOk[lay] = -1; - tdcOk[lay] = -1; - latOk[lay] = -1; - } else { - wiOk[lay] = wi[lay]; - tdcOk[lay] = tdc[lay]; - latOk[lay] = lat[lay]; - } - } - - int idxHitNotValid = latQuality_[i].invalidateHitIdx; - if (idxHitNotValid >= 0) { - auto dtpAux = std::make_shared(); - mpAux->setPrimitive(dtpAux, idxHitNotValid); - } - - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:analyze \t\t\t\t\t calculating parameters "; - calculatePathParameters(mpAux); - /* - * After calculating the parameters, and if it is a 4-hit fit, - * if the resultant chi2 is higher than the programmed threshold, - * the mpath is eliminated and we go to the next element - */ - if ((mpAux->quality() == HIGHQ or mpAux->quality() == HIGHQGHOST) && - mpAux->chiSquare() > chiSquareThreshold_) { //check this if!!! - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") - << "DTp2:analyze \t\t\t\t\t HIGHQ or HIGHQGHOST but min chi2 or Q test not satisfied "; - } else { - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:analyze \t\t\t\t\t inside else, returning values: "; - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:analyze \t\t\t\t\t BX Time = " << mpAux->bxTimeValue(); - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:analyze \t\t\t\t\t BX Id = " << mpAux->bxNumId(); - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:analyze \t\t\t\t\t XCoor = " << mpAux->horizPos(); - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:analyze \t\t\t\t\t tan(Phi)= " << mpAux->tanPhi(); - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:analyze \t\t\t\t\t chi2= " << mpAux->chiSquare(); - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:analyze \t\t\t\t\t lateralities = " - << " " << mpAux->lateralComb()[0] << " " << mpAux->lateralComb()[1] << " " - << mpAux->lateralComb()[2] << " " << mpAux->lateralComb()[3]; - - DTChamberId ChId(MuonPathSLId.wheel(), MuonPathSLId.station(), MuonPathSLId.sector()); - - double jm_tanPhi = -1. * mpAux->tanPhi(); //testing with this line - if (use_LSB_) - jm_tanPhi = floor(jm_tanPhi / tanPsi_precision_) * tanPsi_precision_; - double jm_x = - (((double)mpAux->horizPos()) / 10.) + x_precision_ * (round(shiftinfo_[wireId.rawId()] / x_precision_)); - if (use_LSB_) - jm_x = ((double)round(((double)jm_x) / x_precision_)) * x_precision_; - //changing to chamber frame or reference: - double jm_t0 = mpAux->bxTimeValue(); - int quality = mpAux->quality(); - - //computing phi and phiB - double z = 0; - double z1 = Z_POS_SL; - double z3 = -1. * z1; - if (ChId.station() == 3 or ChId.station() == 4) { - z1 = z1 + Z_SHIFT_MB4; - z3 = z3 + Z_SHIFT_MB4; - } else if (MuonPathSLId.superLayer() == 1) - z = z1; - else if (MuonPathSLId.superLayer() == 3) - z = z3; - - GlobalPoint jm_x_cmssw_global = dtGeo_->chamber(ChId)->toGlobal(LocalPoint(jm_x, 0., z)); - int thisec = MuonPathSLId.sector(); - if (thisec == 13) - thisec = 4; - if (thisec == 14) - thisec = 10; - double phi = jm_x_cmssw_global.phi() - PHI_CONV * (thisec - 1); - double psi = atan(jm_tanPhi); - double phiB = hasPosRF(MuonPathSLId.wheel(), MuonPathSLId.sector()) ? psi - phi : -psi - phi; - double chi2 = mpAux->chiSquare() * 0.01; //in cmssw we need cm, 1 cm^2 = 100 mm^2 - - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") - << "DTp2:analyze \t\t\t\t\t\t\t\t pushing back metaPrimitive at x=" << jm_x << " tanPhi:" << jm_tanPhi - << " t0:" << jm_t0; - - if (mpAux->quality() == HIGHQ or - mpAux->quality() == HIGHQGHOST) { //keep only the values with the best chi2 among lateralities - if ((chi2 < best_chi2) && (std::abs(jm_tanPhi) <= tanPhiTh_)) { - chi2_jm_tanPhi = jm_tanPhi; - chi2_jm_x = (mpAux->horizPos() / 10.) + shiftinfo_[wireId.rawId()]; - chi2_jm_t0 = mpAux->bxTimeValue(); - chi2_phi = phi; - chi2_phiB = phiB; - chi2_chi2 = chi2; - best_chi2 = chi2; - chi2_quality = mpAux->quality(); - for (int i = 0; i < 4; i++) { - bestLat[i] = lat[i]; - } - } - } else if (std::abs(jm_tanPhi) <= - tanPhiTh_) { //write the metaprimitive in case no HIGHQ or HIGHQGHOST and tanPhi range - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") - << "DTp2:analyze \t\t\t\t\t\t\t\t pushing back metaprimitive no HIGHQ or HIGHQGHOST"; - metaPrimitives.emplace_back(metaPrimitive({MuonPathSLId.rawId(), - jm_t0, - jm_x, - jm_tanPhi, - phi, - phiB, - chi2, - quality, - wiOk[0], - tdcOk[0], - latOk[0], - wiOk[1], - tdcOk[1], - latOk[1], - wiOk[2], - tdcOk[2], - latOk[2], - wiOk[3], - tdcOk[3], - latOk[3], - wi[4], - tdc[4], - lat[4], - wi[5], - tdc[5], - lat[5], - wi[6], - tdc[6], - lat[6], - wi[7], - tdc[7], - lat[7], - -1})); - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") - << "DTp2:analyze \t\t\t\t\t\t\t\t done pushing back metaprimitive no HIGHQ or HIGHQGHOST"; - } - } - } else { - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") - << "DTp2:analyze \t\t\t\t\t\t\t\t latQuality_[i].valid and (((mPath->quality()==HIGHQ or " - "mPath->quality()==HIGHQGHOST) and latQuality_[i].quality==HIGHQ) or ((mPath->quality() " - "== LOWQ or mPath->quality()==LOWQGHOST) and latQuality_[i].quality==LOWQ)) not passed"; - } - } - if (chi2_jm_tanPhi != 999 and std::abs(chi2_jm_tanPhi) < tanPhiTh_) { // - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:analyze \t\t\t\t\t\t\t\t pushing back best chi2 metaPrimitive"; - metaPrimitives.emplace_back(metaPrimitive({MuonPathSLId.rawId(), - chi2_jm_t0, - chi2_jm_x, - chi2_jm_tanPhi, - chi2_phi, - chi2_phiB, - chi2_chi2, - chi2_quality, - wi[0], - tdc[0], - bestLat[0], - wi[1], - tdc[1], - bestLat[1], - wi[2], - tdc[2], - bestLat[2], - wi[3], - tdc[3], - bestLat[3], - wi[4], - tdc[4], - bestLat[4], - wi[5], - tdc[5], - bestLat[5], - wi[6], - tdc[6], - bestLat[6], - wi[7], - tdc[7], - bestLat[7], - -1})); - } - } - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:analyze \t\t\t\t finishes"; -} - -void MuonPathAnalyzerPerSL::setCellLayout(const int layout[NUM_LAYERS]) { - memcpy(cellLayout_, layout, 4 * sizeof(int)); - - buildLateralities(); -} - -/** - * For a given 4-cell combination (one per layer), all the possible lateralities - * combinations that are compatible with a straight line are generated. - */ -void MuonPathAnalyzerPerSL::buildLateralities(void) { - LATERAL_CASES(*validCase)[NUM_LAYERS], sideComb[NUM_LAYERS]; - - totalNumValLateralities_ = 0; - /* We generate all the possible lateralities combination for a given group - of cells */ - for (int lowLay = LEFT; lowLay <= RIGHT; lowLay++) - for (int midLowLay = LEFT; midLowLay <= RIGHT; midLowLay++) - for (int midHigLay = LEFT; midHigLay <= RIGHT; midHigLay++) - for (int higLay = LEFT; higLay <= RIGHT; higLay++) { - sideComb[0] = static_cast(lowLay); - sideComb[1] = static_cast(midLowLay); - sideComb[2] = static_cast(midHigLay); - sideComb[3] = static_cast(higLay); - - /* If a laterality combination is valid, we store it */ - if (isStraightPath(sideComb)) { - validCase = lateralities_ + totalNumValLateralities_; - memcpy(validCase, sideComb, 4 * sizeof(LATERAL_CASES)); - - latQuality_[totalNumValLateralities_].valid = false; - latQuality_[totalNumValLateralities_].bxValue = 0; - latQuality_[totalNumValLateralities_].quality = NOPATH; - latQuality_[totalNumValLateralities_].invalidateHitIdx = -1; - - totalNumValLateralities_++; - } - } -} - -/** - * This method checks whether a given combination conform a straight line or not - */ -bool MuonPathAnalyzerPerSL::isStraightPath(LATERAL_CASES sideComb[NUM_LAYERS]) { - return true; //trying with all lateralities to be confirmed - - int i, ajustedLayout[NUM_LAYERS], pairDiff[3], desfase[3]; - - for (i = 0; i <= 3; i++) - ajustedLayout[i] = cellLayout_[i] + sideComb[i]; - for (i = 0; i <= 2; i++) - pairDiff[i] = ajustedLayout[i + 1] - ajustedLayout[i]; - for (i = 0; i <= 1; i++) - desfase[i] = abs(pairDiff[i + 1] - pairDiff[i]); - desfase[2] = abs(pairDiff[2] - pairDiff[0]); - bool resultado = (desfase[0] > 1 or desfase[1] > 1 or desfase[2] > 1); - - return (!resultado); -} -void MuonPathAnalyzerPerSL::evaluatePathQuality(MuonPathPtr &mPath) { - int totalHighQ = 0, totalLowQ = 0; - - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") - << "DTp2:evaluatePathQuality \t\t\t\t\t En evaluatePathQuality Evaluando PathQ. Celda base: " - << mPath->baseChannelId(); - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:evaluatePathQuality \t\t\t\t\t Total lateralidades: " - << totalNumValLateralities_; - - mPath->setQuality(NOPATH); - - for (int latIdx = 0; latIdx < totalNumValLateralities_; latIdx++) { - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:evaluatePathQuality \t\t\t\t\t Analizando combinacion de lateralidad: " - << lateralities_[latIdx][0] << " " << lateralities_[latIdx][1] << " " - << lateralities_[latIdx][2] << " " << lateralities_[latIdx][3]; - - evaluateLateralQuality(latIdx, mPath, &(latQuality_[latIdx])); - - if (latQuality_[latIdx].quality == HIGHQ) { - totalHighQ++; - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:evaluatePathQuality \t\t\t\t\t\t Lateralidad HIGHQ"; - } - if (latQuality_[latIdx].quality == LOWQ) { - totalLowQ++; - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:evaluatePathQuality \t\t\t\t\t\t Lateralidad LOWQ"; - } - } - /* - * Quality stablishment - */ - if (totalHighQ == 1) { - mPath->setQuality(HIGHQ); - } else if (totalHighQ > 1) { - mPath->setQuality(HIGHQGHOST); - } else if (totalLowQ == 1) { - mPath->setQuality(LOWQ); - } else if (totalLowQ > 1) { - mPath->setQuality(LOWQGHOST); - } -} - -void MuonPathAnalyzerPerSL::evaluateLateralQuality(int latIdx, MuonPathPtr &mPath, LATQ_TYPE *latQuality) { - int layerGroup[3]; - LATERAL_CASES sideComb[3]; - PARTIAL_LATQ_TYPE latQResult[NUM_LAYERS] = {{false, 0}, {false, 0}, {false, 0}, {false, 0}}; - - // Default values. - latQuality->valid = false; - latQuality->bxValue = 0; - latQuality->quality = NOPATH; - latQuality->invalidateHitIdx = -1; - - /* If, for a given laterality combination, the two consecutive 3-layer combinations - were a valid track, we will have found a right high-quality track, hence - it will be unnecessary to check the remaining 2 combinations. - In order to mimic the FPGA behaviour, we build a code that analyzes the 4 combinations - with an additional logic to discriminate the final quality of the track - */ - for (int i = 0; i <= 3; i++) { - memcpy(layerGroup, LAYER_ARRANGEMENTS_[i], 3 * sizeof(int)); - - // Pick the laterality combination for each cell - for (int j = 0; j < 3; j++) - sideComb[j] = lateralities_[latIdx][layerGroup[j]]; - - validate(sideComb, layerGroup, mPath, &(latQResult[i])); - } - /* - Impose the condition for a complete laterality combination, that all combinations - should give the same BX vale to give a consistent track. - */ - if (!sameBXValue(latQResult)) { - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") - << "DTp2:evaluateLateralQuality \t\t\t\t\t Lateralidad DESCARTADA. Tolerancia de BX excedida"; - return; - } - - // two complementary valid tracks => full muon track. - if ((latQResult[0].latQValid && latQResult[1].latQValid) or (latQResult[0].latQValid && latQResult[2].latQValid) or - (latQResult[0].latQValid && latQResult[3].latQValid) or (latQResult[1].latQValid && latQResult[2].latQValid) or - (latQResult[1].latQValid && latQResult[3].latQValid) or (latQResult[2].latQValid && latQResult[3].latQValid)) { - latQuality->valid = true; - - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:analyze \t\t\t\t\t\t Valid BXs"; - long int sumBX = 0, numValid = 0; - for (int i = 0; i <= 3; i++) { - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:analyze \t\t\t\t\t\t " - << "[" << latQResult[i].bxValue << "," << latQResult[i].latQValid << "]"; - if (latQResult[i].latQValid) { - sumBX += latQResult[i].bxValue; - numValid++; - } - } - - // mean time of all lateralities. - if (numValid == 1) - latQuality->bxValue = sumBX; - else if (numValid == 2) - latQuality->bxValue = (sumBX * (MEANTIME_2LAT)) / std::pow(2, 15); - else if (numValid == 3) - latQuality->bxValue = (sumBX * (MEANTIME_3LAT)) / std::pow(2, 15); - else if (numValid == 4) - latQuality->bxValue = (sumBX * (MEANTIME_4LAT)) / std::pow(2, 15); - - latQuality->quality = HIGHQ; - - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:evaluateLateralQuality \t\t\t\t\t Lateralidad ACEPTADA. HIGHQ."; - } else { - if (latQResult[0].latQValid or latQResult[1].latQValid or latQResult[2].latQValid or latQResult[3].latQValid) { - latQuality->valid = true; - latQuality->quality = LOWQ; - for (int i = 0; i < 4; i++) - if (latQResult[i].latQValid) { - latQuality->bxValue = latQResult[i].bxValue; - latQuality->invalidateHitIdx = omittedHit(i); - break; - } - - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:evaluateLateralQuality \t\t\t\t\t Lateralidad ACEPTADA. LOWQ."; - } else { - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:evaluateLateralQuality \t\t\t\t\t Lateralidad DESCARTADA. NOPATH."; - } - } -} - -/** - * Validate, for a layer combination (3), cells and lateralities, if the temporal values - * fullfill the mean-timer criteria. - */ -void MuonPathAnalyzerPerSL::validate(LATERAL_CASES sideComb[3], - int layerIndex[3], - MuonPathPtr &mPath, - PARTIAL_LATQ_TYPE *latq) { - // Valor por defecto. - latq->bxValue = 0; - latq->latQValid = false; - - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:validate \t\t\t\t\t\t\t In validate, checking muon path for layers: " - << layerIndex[0] << "/" << layerIndex[1] << "/" << layerIndex[2]; - - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:validate \t\t\t\t\t\t\t Partial lateralities: " << sideComb[0] << "/" - << sideComb[1] << "/" << sideComb[2]; - - int validCells = 0; - for (int j = 0; j < 3; j++) - if (mPath->primitive(layerIndex[j])->isValidTime()) - validCells++; - - if (validCells != 3) { - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:validate \t\t\t\t\t\t\t There is no valid cells."; - return; - } - - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:validate \t\t\t\t\t\t\t TDC values: " - << mPath->primitive(layerIndex[0])->tdcTimeStamp() << "/" - << mPath->primitive(layerIndex[1])->tdcTimeStamp() << "/" - << mPath->primitive(layerIndex[2])->tdcTimeStamp() << "."; - - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:validate \t\t\t\t\t\t\t Valid TIMES: " - << mPath->primitive(layerIndex[0])->isValidTime() << "/" - << mPath->primitive(layerIndex[1])->isValidTime() << "/" - << mPath->primitive(layerIndex[2])->isValidTime() << "."; - - /* Vertical distances */ - int dVertMI = layerIndex[1] - layerIndex[0]; - int dVertSM = layerIndex[2] - layerIndex[1]; - - /* Horizontal distances between lower/middle and middle/upper cells */ - int dHorzMI = cellLayout_[layerIndex[1]] - cellLayout_[layerIndex[0]]; - int dHorzSM = cellLayout_[layerIndex[2]] - cellLayout_[layerIndex[1]]; - - /* Pair index of layers that we are using - SM => Upper + Middle - MI => Middle + Lower - We use pointers to simplify the code */ - int *layPairSM = &layerIndex[1]; - int *layPairMI = &layerIndex[0]; - - /* Pair combination of cells to compose the equation. */ - LATERAL_CASES smSides[2], miSides[2]; - - /* Considering the index 0 of "sideComb" the laterality of the lower cells is stored, - we extract the laterality combiantion for SM and MI pairs */ - - memcpy(smSides, &sideComb[1], 2 * sizeof(LATERAL_CASES)); - - memcpy(miSides, &sideComb[0], 2 * sizeof(LATERAL_CASES)); - - long int bxValue = 0; - int coefsAB[2] = {0, 0}, coefsCD[2] = {0, 0}; - /* It's neccesary to be careful with that pointer's indirection. We need to - retrieve the lateral coeficientes (+-1) from the lower/middle and - middle/upper cell's lateral combinations. They are needed to evaluate the - existance of a possible BX value, following it's calculation equation */ - lateralCoeficients(miSides, coefsAB); - lateralCoeficients(smSides, coefsCD); - - /* Each of the summs of the 'coefsCD' & 'coefsAB' give always as results 0, +-2 - */ - - int denominator = dVertMI * (coefsCD[1] + coefsCD[0]) - dVertSM * (coefsAB[1] + coefsAB[0]); - - if (denominator == 0) { - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:validate \t\t\t\t\t\t\t Imposible to calculate BX."; - return; - } - - long int sumA = (long int)floor(MAXDRIFT * (dVertMI * dHorzSM - dVertSM * dHorzMI)); - long int numerator = - (sumA + dVertMI * eqMainBXTerm(smSides, layPairSM, mPath) - dVertSM * eqMainBXTerm(miSides, layPairMI, mPath)); - - // These magic numbers are for doing divisions in the FW. - // These divisions are done with a precision of 18bits. - if (denominator == -1 * DENOM_TYPE1) - bxValue = (numerator * (-1 * DIVISION_HELPER1)) / std::pow(2, NBITS); - else if (denominator == -1 * DENOM_TYPE2) - bxValue = (numerator * (-1 * DIVISION_HELPER2)) / std::pow(2, NBITS); - else if (denominator == -1 * DENOM_TYPE3) - bxValue = (numerator * (-1 * DIVISION_HELPER3)) / std::pow(2, NBITS); - else if (denominator == DENOM_TYPE3) - bxValue = (numerator * (DIVISION_HELPER3)) / std::pow(2, NBITS); - else if (denominator == DENOM_TYPE2) - bxValue = (numerator * (DIVISION_HELPER2)) / std::pow(2, NBITS); - else if (denominator == DENOM_TYPE1) - bxValue = (numerator * (DIVISION_HELPER1)) / std::pow(2, NBITS); - else - LogDebug("MuonPathAnalyzerPerSL") << "Different!"; - if (bxValue < 0) { - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:validate \t\t\t\t\t\t\t No-valid combination. Negative BX."; - return; - } - - for (int i = 0; i < 3; i++) - if (mPath->primitive(layerIndex[i])->isValidTime()) { - int diffTime = mPath->primitive(layerIndex[i])->tdcTimeStampNoOffset() - bxValue; - - if (diffTime <= 0 or diffTime > round(MAXDRIFT)) { - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") - << "DTp2:validate \t\t\t\t\t\t\t Invalid BX value. at least one crazt TDC time"; - return; - } - } - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:validate \t\t\t\t\t\t\t BX: " << bxValue; - - /* If you reach here, the BX and partial laterality are considered are valid - */ - latq->bxValue = bxValue; - latq->latQValid = true; -} -int MuonPathAnalyzerPerSL::eqMainBXTerm(LATERAL_CASES sideComb[2], int layerIdx[2], MuonPathPtr &mPath) { - int eqTerm = 0, coefs[2]; - - lateralCoeficients(sideComb, coefs); - - eqTerm = coefs[0] * mPath->primitive(layerIdx[0])->tdcTimeStampNoOffset() + - coefs[1] * mPath->primitive(layerIdx[1])->tdcTimeStampNoOffset(); - - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:eqMainBXTerm \t\t\t\t\t In eqMainBXTerm EQTerm(BX): " << eqTerm; - - return (eqTerm); -} -int MuonPathAnalyzerPerSL::eqMainTerm(LATERAL_CASES sideComb[2], int layerIdx[2], MuonPathPtr &mPath, int bxValue) { - int eqTerm = 0, coefs[2]; - - lateralCoeficients(sideComb, coefs); - - if (!use_LSB_) - eqTerm = coefs[0] * (mPath->primitive(layerIdx[0])->tdcTimeStampNoOffset() - bxValue) + - coefs[1] * (mPath->primitive(layerIdx[1])->tdcTimeStampNoOffset() - bxValue); - else - eqTerm = coefs[0] * floor((DRIFT_SPEED / (10 * x_precision_)) * - (mPath->primitive(layerIdx[0])->tdcTimeStampNoOffset() - bxValue)) + - coefs[1] * floor((DRIFT_SPEED / (10 * x_precision_)) * - (mPath->primitive(layerIdx[1])->tdcTimeStampNoOffset() - bxValue)); - - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:\t\t\t\t\t EQTerm(Main): " << eqTerm; - - return (eqTerm); -} - -void MuonPathAnalyzerPerSL::lateralCoeficients(LATERAL_CASES sideComb[2], int *coefs) { - if ((sideComb[0] == LEFT) && (sideComb[1] == LEFT)) { - *(coefs) = +1; - *(coefs + 1) = -1; - } else if ((sideComb[0] == LEFT) && (sideComb[1] == RIGHT)) { - *(coefs) = +1; - *(coefs + 1) = +1; - } else if ((sideComb[0] == RIGHT) && (sideComb[1] == LEFT)) { - *(coefs) = -1; - *(coefs + 1) = -1; - } else if ((sideComb[0] == RIGHT) && (sideComb[1] == RIGHT)) { - *(coefs) = -1; - *(coefs + 1) = +1; - } -} - -/** - * Determines if all valid partial lateral combinations share the same value - * of 'bxValue'. - */ -bool MuonPathAnalyzerPerSL::sameBXValue(PARTIAL_LATQ_TYPE *latq) { - bool result = true; - - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "Dtp2:sameBXValue bxTolerance_: " << bxTolerance_; - - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "Dtp2:sameBXValue \t\t\t\t\t\t d01:" << abs(latq[0].bxValue - latq[1].bxValue); - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "Dtp2:sameBXValue \t\t\t\t\t\t d02:" << abs(latq[0].bxValue - latq[2].bxValue); - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "Dtp2:sameBXValue \t\t\t\t\t\t d03:" << abs(latq[0].bxValue - latq[3].bxValue); - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "Dtp2:sameBXValue \t\t\t\t\t\t d12:" << abs(latq[1].bxValue - latq[2].bxValue); - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "Dtp2:sameBXValue \t\t\t\t\t\t d13:" << abs(latq[1].bxValue - latq[3].bxValue); - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "Dtp2:sameBXValue \t\t\t\t\t\t d23:" << abs(latq[2].bxValue - latq[3].bxValue); - - bool d01, d02, d03, d12, d13, d23; - d01 = (abs(latq[0].bxValue - latq[1].bxValue) <= bxTolerance_) ? true : false; - d02 = (abs(latq[0].bxValue - latq[2].bxValue) <= bxTolerance_) ? true : false; - d03 = (abs(latq[0].bxValue - latq[3].bxValue) <= bxTolerance_) ? true : false; - d12 = (abs(latq[1].bxValue - latq[2].bxValue) <= bxTolerance_) ? true : false; - d13 = (abs(latq[1].bxValue - latq[3].bxValue) <= bxTolerance_) ? true : false; - d23 = (abs(latq[2].bxValue - latq[3].bxValue) <= bxTolerance_) ? true : false; - - /* 4 groups of partial combination of valid lateralities */ - if ((latq[0].latQValid && latq[1].latQValid && latq[2].latQValid && latq[3].latQValid) && !(d01 && d12 && d23)) - result = false; - else - /* 4 posible cases of 3 groups of valid partial lateralities */ - if (((latq[0].latQValid && latq[1].latQValid && latq[2].latQValid) && !(d01 && d12)) or - ((latq[0].latQValid && latq[1].latQValid && latq[3].latQValid) && !(d01 && d13)) or - ((latq[0].latQValid && latq[2].latQValid && latq[3].latQValid) && !(d02 && d23)) or - ((latq[1].latQValid && latq[2].latQValid && latq[3].latQValid) && !(d12 && d23))) - result = false; - else - /* Lastly, the 4 possible cases of partial valid lateralities */ - - if (((latq[0].latQValid && latq[1].latQValid) && !d01) or ((latq[0].latQValid && latq[2].latQValid) && !d02) or - ((latq[0].latQValid && latq[3].latQValid) && !d03) or ((latq[1].latQValid && latq[2].latQValid) && !d12) or - ((latq[1].latQValid && latq[3].latQValid) && !d13) or ((latq[2].latQValid && latq[3].latQValid) && !d23)) - result = false; - - return result; -} - -/** Calculate the parameters of the detected trayectories */ -void MuonPathAnalyzerPerSL::calculatePathParameters(MuonPathPtr &mPath) { - // The order is important. - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") - << "DTp2:calculatePathParameters \t\t\t\t\t\t calculating calcCellDriftAndXcoor(mPath) "; - calcCellDriftAndXcoor(mPath); - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:calculatePathParameters \t\t\t\t\t\t checking mPath->quality() " - << mPath->quality(); - if (mPath->quality() == HIGHQ or mPath->quality() == HIGHQGHOST) { - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") - << "DTp2:calculatePathParameters \t\t\t\t\t\t\t Quality test passed, now calcTanPhiXPosChamber4Hits(mPath) "; - calcTanPhiXPosChamber4Hits(mPath); - } else { - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") - << "DTp2:calculatePathParameters \t\t\t\t\t\t\t Quality test NOT passed calcTanPhiXPosChamber3Hits(mPath) "; - calcTanPhiXPosChamber3Hits(mPath); - } - - if (debug_) - LogDebug("MuonPathAnalyzerPerSL") << "DTp2:calculatePathParameters \t\t\t\t\t\t calcChiSquare(mPath) "; - calcChiSquare(mPath); -} - -void MuonPathAnalyzerPerSL::calcTanPhiXPosChamber(MuonPathPtr &mPath) { - int layerIdx[2]; - /* - To calculate path's angle are only necessary two valid primitives. - This method should be called only when a 'MuonPath' is determined as valid, - so, at least, three of its primitives must have a valid time. - With this two comparitions (which can be implemented easily as multiplexors - in the FPGA) this method ensures to catch two of those valid primitives to - evaluate the angle. - - The first one is below the middle line of the superlayer, while the other - one is above this line - */ - if (mPath->primitive(0)->isValidTime()) - layerIdx[0] = 0; - else - layerIdx[0] = 1; - - if (mPath->primitive(3)->isValidTime()) - layerIdx[1] = 3; - else - layerIdx[1] = 2; - - /* We identify along which cells' sides the muon travels */ - LATERAL_CASES sideComb[2]; - sideComb[0] = (mPath->lateralComb())[layerIdx[0]]; - sideComb[1] = (mPath->lateralComb())[layerIdx[1]]; - - /* Horizontal gap between cells in cell's semi-length units */ - int dHoriz = (mPath->cellLayout())[layerIdx[1]] - (mPath->cellLayout())[layerIdx[0]]; - - /* Vertical gap between cells in cell's height units */ - int dVert = layerIdx[1] - layerIdx[0]; - - /*-----------------------------------------------------------------*/ - /*--------------------- Phi angle calculation ---------------------*/ - /*-----------------------------------------------------------------*/ - float num = CELL_SEMILENGTH * dHoriz + DRIFT_SPEED * eqMainTerm(sideComb, layerIdx, mPath, mPath->bxTimeValue()); - - float denom = CELL_HEIGHT * dVert; - float tanPhi = num / denom; - - mPath->setTanPhi(tanPhi); - - /*-----------------------------------------------------------------*/ - /*----------------- Horizontal coord. calculation -----------------*/ - /*-----------------------------------------------------------------*/ - - /* - Using known coordinates, relative to superlayer axis reference, (left most - superlayer side, and middle line between 2nd and 3rd layers), calculating - horizontal coordinate implies using a basic line equation: - (y - y0) = (x - x0) * cotg(Phi) - This horizontal coordinate can be obtained setting y = 0 on last equation, - and also setting y0 and x0 with the values of a known muon's path cell - position hit. - It's enough to use the lower cell (layerIdx[0]) coordinates. So: - xC = x0 - y0 * tan(Phi) - */ - float lowerXPHorizPos = mPath->xCoorCell(layerIdx[0]); - - float lowerXPVertPos = 0; // This is only the absolute value distance. - if (layerIdx[0] == 0) - lowerXPVertPos = CELL_HEIGHT + CELL_SEMIHEIGHT; - else - lowerXPVertPos = CELL_SEMIHEIGHT; - - mPath->setHorizPos(lowerXPHorizPos + lowerXPVertPos * tanPhi); -} - -/** - * Coordinate and angle calculations for a 4 HITS cases - */ -void MuonPathAnalyzerPerSL::calcTanPhiXPosChamber4Hits(MuonPathPtr &mPath) { - int x_prec_inv = (int)(1. / (10. * x_precision_)); - int numberOfBits = (int)(round(std::log(x_prec_inv) / std::log(2.))); - int numerator = 3 * (int)round(mPath->xCoorCell(3) / (10 * x_precision_)) + - (int)round(mPath->xCoorCell(2) / (10 * x_precision_)) - - (int)round(mPath->xCoorCell(1) / (10 * x_precision_)) - - 3 * (int)round(mPath->xCoorCell(0) / (10 * x_precision_)); - int CELL_HEIGHT_JM = pow(2, 15) / ((int)(10 * CELL_HEIGHT)); - int tanPhi_x4096 = (numerator * CELL_HEIGHT_JM) >> (3 + numberOfBits); - mPath->setTanPhi(tanPhi_x4096 * tanPsi_precision_); - - float XPos = (mPath->xCoorCell(0) + mPath->xCoorCell(1) + mPath->xCoorCell(2) + mPath->xCoorCell(3)) / 4; - mPath->setHorizPos(floor(XPos / (10 * x_precision_)) * 10 * x_precision_); -} - -/** - * 3 HITS cases - */ -void MuonPathAnalyzerPerSL::calcTanPhiXPosChamber3Hits(MuonPathPtr &mPath) { - int layerIdx[2]; - int x_prec_inv = (int)(1. / (10. * x_precision_)); - int numberOfBits = (int)(round(std::log(x_prec_inv) / std::log(2.))); - - if (mPath->primitive(0)->isValidTime()) - layerIdx[0] = 0; - else - layerIdx[0] = 1; - - if (mPath->primitive(3)->isValidTime()) - layerIdx[1] = 3; - else - layerIdx[1] = 2; - - /*-----------------------------------------------------------------*/ - /*--------------------- Phi angle calculation ---------------------*/ - /*-----------------------------------------------------------------*/ - - int tan_division_denominator_bits = 16; - - int num = - ((int)((int)(x_prec_inv * mPath->xCoorCell(layerIdx[1])) - (int)(x_prec_inv * mPath->xCoorCell(layerIdx[0]))) - << (12 - numberOfBits)); - int denominator = (layerIdx[1] - layerIdx[0]) * CELL_HEIGHT; - int denominator_inv = ((int)(0.5 + pow(2, tan_division_denominator_bits) / float(denominator))); - - float tanPhi = ((num * denominator_inv) >> tan_division_denominator_bits) / ((1. / tanPsi_precision_)); - - mPath->setTanPhi(tanPhi); - - /*-----------------------------------------------------------------*/ - /*----------------- Horizontal coord. calculation -----------------*/ - /*-----------------------------------------------------------------*/ - float XPos = 0; - if (mPath->primitive(0)->isValidTime() and mPath->primitive(3)->isValidTime()) - XPos = (mPath->xCoorCell(0) + mPath->xCoorCell(3)) / 2; - else - XPos = (mPath->xCoorCell(1) + mPath->xCoorCell(2)) / 2; - - mPath->setHorizPos(floor(XPos / (10 * x_precision_)) * 10 * x_precision_); -} - -/** - * Calculate the drift distances of each wire and the horizontal position - */ -void MuonPathAnalyzerPerSL::calcCellDriftAndXcoor(MuonPathPtr &mPath) { - long int drift_speed_new = 889; - long int drift_dist_um_x4; - long int wireHorizPos_x4; - long int pos_mm_x4; - int x_prec_inv = (int)(1. / (10. * x_precision_)); - - for (int i = 0; i <= 3; i++) - if (mPath->primitive(i)->isValidTime()) { - drift_dist_um_x4 = - drift_speed_new * ((long int)mPath->primitive(i)->tdcTimeStampNoOffset() - (long int)mPath->bxTimeValue()); - wireHorizPos_x4 = (long)(mPath->primitive(i)->wireHorizPos() * x_prec_inv); - - if ((mPath->lateralComb())[i] == LEFT) - pos_mm_x4 = wireHorizPos_x4 - (drift_dist_um_x4 >> 10); - else - pos_mm_x4 = wireHorizPos_x4 + (drift_dist_um_x4 >> 10); - - mPath->setXCoorCell(pos_mm_x4 * (10 * x_precision_), i); - mPath->setDriftDistance(((float)(drift_dist_um_x4 >> 10)) * (10 * x_precision_), i); - } -} - -/** - * Calculate the quality estimator of each trayectory. - */ -void MuonPathAnalyzerPerSL::calcChiSquare(MuonPathPtr &mPath) { - int x_prec_inv = (int)(1. / (10. * x_precision_)); - int numberOfBits = (int)(round(std::log(x_prec_inv) / std::log(2.))); - long int Z_FACTOR[NUM_LAYERS] = {-6, -2, 2, 6}; - for (int i = 0; i < 4; i++) { - Z_FACTOR[i] = Z_FACTOR[i] * (long int)CELL_HEIGHT; - } - long int sum_A = 0, sum_B = 0; - long int chi2_mm2_x1024 = 0; - for (int i = 0; i < 4; i++) { - if (mPath->primitive(i)->isValidTime()) { - sum_A = (((int)(mPath->xCoorCell(i) / (10 * x_precision_))) - ((int)(mPath->horizPos() / (10 * x_precision_)))) - << (14 - numberOfBits); - sum_B = Z_FACTOR[i] * ((int)(mPath->tanPhi() / tanPsi_precision_)); - chi2_mm2_x1024 += (sum_A - sum_B) * (sum_A - sum_B); - } - } - chi2_mm2_x1024 = chi2_mm2_x1024 >> 18; - - mPath->setChiSquare(((double)chi2_mm2_x1024 / 1024.)); -} - -int MuonPathAnalyzerPerSL::omittedHit(int idx) { - switch (idx) { - case 0: - return 3; - case 1: - return 0; - case 2: - return 2; - case 3: - return 1; - } - - return -1; -} diff --git a/L1Trigger/DTTriggerPhase2/src/MuonPathAssociator.cc b/L1Trigger/DTTriggerPhase2/src/MuonPathAssociator.cc index b1150be0cc92d..00476899a4d75 100644 --- a/L1Trigger/DTTriggerPhase2/src/MuonPathAssociator.cc +++ b/L1Trigger/DTTriggerPhase2/src/MuonPathAssociator.cc @@ -1,5 +1,5 @@ #include "L1Trigger/DTTriggerPhase2/interface/MuonPathAssociator.h" -#include "L1Trigger/DTTriggerPhase2/interface/MuonPathAnalyzerPerSL.h" +#include "L1Trigger/DTTriggerPhase2/interface/MuonPathAnalyticAnalyzer.h" #include "L1Trigger/DTTriggerPhase2/interface/constants.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" @@ -10,13 +10,12 @@ using namespace cmsdt; // ============================================================================ // Constructors and destructor // ============================================================================ -MuonPathAssociator::MuonPathAssociator(const ParameterSet &pset, edm::ConsumesCollector &iC) { +MuonPathAssociator::MuonPathAssociator(const ParameterSet &pset, + edm::ConsumesCollector &iC, + std::shared_ptr &globalcoordsobtainer) { // Obtention of parameters debug_ = pset.getUntrackedParameter("debug"); clean_chi2_correlation_ = pset.getUntrackedParameter("clean_chi2_correlation"); - use_LSB_ = pset.getUntrackedParameter("use_LSB"); - tanPsi_precision_ = pset.getUntrackedParameter("tanPsi_precision"); - x_precision_ = pset.getUntrackedParameter("x_precision"); useBX_correlation_ = pset.getUntrackedParameter("useBX_correlation"); allow_confirmation_ = pset.getUntrackedParameter("allow_confirmation"); dT0_correlate_TP_ = pset.getUntrackedParameter("dT0_correlate_TP"); @@ -24,6 +23,8 @@ MuonPathAssociator::MuonPathAssociator(const ParameterSet &pset, edm::ConsumesCo dTanPsi_correlate_TP_ = pset.getUntrackedParameter("dTanPsi_correlate_TP"); minx_match_2digis_ = pset.getUntrackedParameter("minx_match_2digis"); chi2corTh_ = pset.getUntrackedParameter("chi2corTh"); + cmssw_for_global_ = pset.getUntrackedParameter("cmssw_for_global"); + geometry_tag_ = pset.getUntrackedParameter("geometry_tag"); if (debug_) LogDebug("MuonPathAssociator") << "MuonPathAssociator: constructor"; @@ -43,6 +44,7 @@ MuonPathAssociator::MuonPathAssociator(const ParameterSet &pset, edm::ConsumesCo } dtGeomH_ = iC.esConsumes(); + globalcoordsobtainer_ = globalcoordsobtainer; } MuonPathAssociator::~MuonPathAssociator() { @@ -57,8 +59,9 @@ void MuonPathAssociator::initialise(const edm::EventSetup &iEventSetup) { if (debug_) LogDebug("MuonPathAssociator") << "MuonPathAssociator::initialiase"; - const MuonGeometryRecord &geom = iEventSetup.get(); - dtGeo_ = &geom.get(dtGeomH_); + edm::ESHandle geom; + iEventSetup.get().get(geometry_tag_, geom); + dtGeo_ = &(*geom); } void MuonPathAssociator::run(edm::Event &iEvent, @@ -81,11 +84,6 @@ void MuonPathAssociator::finish() { void MuonPathAssociator::correlateMPaths(edm::Handle dtdigis, std::vector &inMPaths, std::vector &outMPaths) { - int x_prec_inv = (int)(1. / (10. * x_precision_)); - int numberOfBits = (int)(round(std::log(x_prec_inv) / std::log(2.))); - - //Silvia's code for correlationg filteredMetaPrimitives - if (debug_) LogDebug("MuonPathAssociator") << "starting correlation"; @@ -153,29 +151,38 @@ void MuonPathAssociator::correlateMPaths(edm::Handle dtdigis, if (std::abs(SL1metaPrimitive->t0 - SL3metaPrimitive->t0) >= dT0_correlate_TP_) continue; //time match } - long int PosSL1 = (int)round(10 * SL1metaPrimitive->x / (10 * x_precision_)); - long int PosSL3 = (int)round(10 * SL3metaPrimitive->x / (10 * x_precision_)); + long int PosSL1 = (int)round(INCREASED_RES_POS_POW * 10 * SL1metaPrimitive->x); + long int PosSL3 = (int)round(INCREASED_RES_POS_POW * 10 * SL3metaPrimitive->x); double NewSlope = -999.; - if (use_LSB_) { - long int newConstant = (int)(139.5 * 4); - long int difPos_mm_x4 = PosSL3 - PosSL1; - long int tanPsi_x4096_x128 = (difPos_mm_x4)*newConstant; - long int tanPsi_x4096 = tanPsi_x4096_x128 / ((long int)pow(2, 5 + numberOfBits)); - if (tanPsi_x4096 < 0 && tanPsi_x4096_x128 % ((long int)pow(2, 5 + numberOfBits)) != 0) - tanPsi_x4096--; - NewSlope = -tanPsi_x4096 * tanPsi_precision_; + + long int pos = (PosSL3 + PosSL1) / 2; + // FW always rounds down (e.g 29.5 -> 29, -29.5 -> -30). For negative numbers, we don't do the same. + // Let's fix it (this also happens for the slope) + if (((PosSL3 + PosSL1) % 2 != 0) && (pos < 0)) { + pos--; } + + long int difPos_mm_x4 = PosSL3 - PosSL1; + long int tanPsi_x4096_x128 = (difPos_mm_x4)*VERT_PHI1_PHI3_INV; + long int tanpsi = tanPsi_x4096_x128 / ((long int)pow(2, 5 + INCREASED_RES_POS)); + if (tanpsi < 0 && tanPsi_x4096_x128 % ((long int)pow(2, 5 + INCREASED_RES_POS)) != 0) + tanpsi--; + NewSlope = -tanpsi / (double)INCREASED_RES_SLOPE_POW; double MeanT0 = (SL1metaPrimitive->t0 + SL3metaPrimitive->t0) / 2; - double MeanPos = (PosSL3 + PosSL1) / (2. / (x_precision_)); - if (use_LSB_) { - MeanPos = floor(round(10. * (MeanPos / x_precision_)) * 0.1) * x_precision_; - } + double MeanPos = (PosSL3 + PosSL1) / (2. * INCREASED_RES_POS_POW * 10); DTSuperLayerId SLId1(SL1metaPrimitive->rawId); DTSuperLayerId SLId3(SL3metaPrimitive->rawId); DTWireId wireId1(SLId1, 2, 1); DTWireId wireId3(SLId3, 2, 1); + int shift_sl1 = int(round(shiftinfo_[wireId1.rawId()] * INCREASED_RES_POS_POW * 10)); + int shift_sl3 = int(round(shiftinfo_[wireId3.rawId()] * INCREASED_RES_POS_POW * 10)); + if (shift_sl1 < shift_sl3) { + pos -= shift_sl1; + } else + pos -= shift_sl3; + int wi[8], tdc[8], lat[8]; wi[0] = SL1metaPrimitive->wi1; tdc[0] = SL1metaPrimitive->tdc1; @@ -204,27 +211,26 @@ void MuonPathAssociator::correlateMPaths(edm::Handle dtdigis, long int chi2 = 0; - long int CH_CENTER_TO_MID_SL_P = (long int)(117.5 * 4); long int Z_FACTOR_CORR[8] = {-6, -2, 2, 6, -6, -2, 2, 6}; for (int i = 0; i < 8; i++) { int sign = 2 * (i / 4) - 1; - Z_FACTOR_CORR[i] = Z_FACTOR_CORR[i] * CELL_HEIGHT + CH_CENTER_TO_MID_SL_P * sign; + Z_FACTOR_CORR[i] = Z_FACTOR_CORR[i] * CELL_HEIGHT + CH_CENTER_TO_MID_SL_X2 * sign; } long int sum_A, sum_B; - for (int i = 0; i < 8; i++) { + for (int i = 0; i < NUM_LAYERS_2SL; i++) { long int shift, slTime; - if (i / 4 == 0) { - shift = round(shiftinfo_[wireId1.rawId()] / x_precision_); + if (i / NUM_LAYERS == 0) { // layers 0 - 3 -> SL1 + shift = shift_sl1; slTime = SL1metaPrimitive->t0; - } else { - shift = round(shiftinfo_[wireId3.rawId()] / x_precision_); + } else { // layers 4 - 7 -> SL3 + shift = shift_sl3; slTime = SL3metaPrimitive->t0; } if (wi[i] != -1) { - long int drift_speed_new = 889; - long int drift_dist_um_x4 = drift_speed_new * (((long int)tdc[i]) - slTime); - long int wireHorizPos_x4 = (42 * wi[i] + ((i + 1) % 2) * 21) / (10 * x_precision_); + long int drift_dist_um_x4 = DRIFT_SPEED_X4 * (((long int)tdc[i]) - slTime); + long int wireHorizPos_x4 = + (CELL_LENGTH * wi[i] + ((i + 1) % 2) * CELL_SEMILENGTH) * INCREASED_RES_POS_POW; long int pos_mm_x4; if (lat[i] == 0) { @@ -232,14 +238,14 @@ void MuonPathAssociator::correlateMPaths(edm::Handle dtdigis, } else { pos_mm_x4 = wireHorizPos_x4 + (drift_dist_um_x4 >> 10); } - sum_A = shift + pos_mm_x4 - (long int)round(MeanPos / x_precision_); - sum_A = sum_A << (14 - numberOfBits); - sum_B = Z_FACTOR_CORR[i] * (long int)round(-NewSlope / tanPsi_precision_); + sum_A = shift + pos_mm_x4 - (long int)round(MeanPos * 10 * INCREASED_RES_POS_POW); + sum_A = sum_A << (14 - INCREASED_RES_POS); + sum_B = Z_FACTOR_CORR[i] * (long int)round(-NewSlope * INCREASED_RES_SLOPE_POW); chi2 += ((sum_A - sum_B) * (sum_A - sum_B)) >> 2; } } - double newChi2 = (double)(chi2 >> 16) / (1024. * 100.); + double newChi2 = (double)(chi2 >> INCREASED_RES_POS_POW) / (1024. * 100.); if (newChi2 > chi2corTh_) continue; @@ -249,29 +255,38 @@ void MuonPathAssociator::correlateMPaths(edm::Handle dtdigis, useFitSL3[sl3] = true; int quality = 0; - if (SL3metaPrimitive->quality <= 2 and SL1metaPrimitive->quality <= 2) - quality = 6; - - if ((SL3metaPrimitive->quality >= 3 && SL1metaPrimitive->quality <= 2) or - (SL1metaPrimitive->quality >= 3 && SL3metaPrimitive->quality <= 2)) - quality = 8; - - if (SL3metaPrimitive->quality >= 3 && SL1metaPrimitive->quality >= 3) - quality = 9; - - double z = 0; - if (ChId.station() >= 3) - z = -1.8; - GlobalPoint jm_x_cmssw_global = dtGeo_->chamber(ChId)->toGlobal( - LocalPoint(MeanPos, 0., z)); //Jm_x is already extrapolated to the middle of the SL - int thisec = ChId.sector(); - if (se == 13) - thisec = 4; - if (se == 14) - thisec = 10; - double phi = jm_x_cmssw_global.phi() - 0.5235988 * (thisec - 1); - double psi = atan(NewSlope); - double phiB = hasPosRF(ChId.wheel(), ChId.sector()) ? psi - phi : -psi - phi; + if (SL3metaPrimitive->quality == LOWQ and SL1metaPrimitive->quality == LOWQ) + quality = LOWLOWQ; + + if ((SL3metaPrimitive->quality == HIGHQ && SL1metaPrimitive->quality == LOWQ) or + (SL1metaPrimitive->quality == HIGHQ && SL3metaPrimitive->quality == LOWQ)) + quality = HIGHLOWQ; + + if (SL3metaPrimitive->quality == HIGHQ && SL1metaPrimitive->quality == HIGHQ) + quality = HIGHHIGHQ; + + double phi = -999.; + double phiB = -999.; + if (cmssw_for_global_) { + double z = 0; + if (ChId.station() >= 3) + z = Z_SHIFT_MB4; + GlobalPoint jm_x_cmssw_global = dtGeo_->chamber(ChId)->toGlobal( + LocalPoint(MeanPos, 0., z)); //Jm_x is already extrapolated to the middle of the SL + int thisec = ChId.sector(); + if (se == 13) + thisec = 4; + if (se == 14) + thisec = 10; + phi = jm_x_cmssw_global.phi() - PHI_CONV * (thisec - 1); + double psi = atan(NewSlope); + phiB = hasPosRF(ChId.wheel(), ChId.sector()) ? psi - phi : -psi - phi; + } else { + auto global_coords = globalcoordsobtainer_->get_global_coordinates(ChId.rawId(), 0, pos, tanpsi); + + phi = global_coords[0]; + phiB = global_coords[1]; + } if (!clean_chi2_correlation_) outMPaths.emplace_back(ChId.rawId(), @@ -357,10 +372,10 @@ void MuonPathAssociator::correlateMPaths(edm::Handle dtdigis, int best_lat = -1; int next_lat = -1; int lat = -1; - for (const auto &dtLayerId_It : *dtdigis) { const DTLayerId dtLId = dtLayerId_It.first; - const DTSuperLayerId &dtSLId(dtLId); + // creating a new DTSuperLayerId object to compare with the required SL id + const DTSuperLayerId dtSLId(dtLId.wheel(), dtLId.station(), dtLId.sector(), 3); if (dtSLId.rawId() != sl3Id.rawId()) continue; double l_shift = 0; @@ -372,17 +387,20 @@ void MuonPathAssociator::correlateMPaths(edm::Handle dtdigis, l_shift = -1 * X_POS_L3; else if (dtLId.layer() == 1) l_shift = -1 * X_POS_L4; - double x_inSL3 = SL1metaPrimitive->x - SL1metaPrimitive->tanPhi * (23.5 + l_shift); + double x_inSL3 = SL1metaPrimitive->x - SL1metaPrimitive->tanPhi * (VERT_PHI1_PHI3 + l_shift); for (auto digiIt = (dtLayerId_It.second).first; digiIt != (dtLayerId_It.second).second; ++digiIt) { DTWireId wireId(dtLId, (*digiIt).wire()); - int x_wire = shiftinfo_[wireId.rawId()] + ((*digiIt).time() - SL1metaPrimitive->t0) * 0.00543; - int x_wire_left = shiftinfo_[wireId.rawId()] - ((*digiIt).time() - SL1metaPrimitive->t0) * 0.00543; + double x_wire = + shiftinfo_[wireId.rawId()] + ((*digiIt).time() - SL1metaPrimitive->t0) * DRIFT_SPEED / 10.; + double x_wire_left = + shiftinfo_[wireId.rawId()] - ((*digiIt).time() - SL1metaPrimitive->t0) * DRIFT_SPEED / 10.; lat = 1; if (std::abs(x_inSL3 - x_wire) > std::abs(x_inSL3 - x_wire_left)) { x_wire = x_wire_left; //choose the closest laterality lat = 0; } if (std::abs(x_inSL3 - x_wire) < minx) { + min2x = minx; minx = std::abs(x_inSL3 - x_wire); next_wire = best_wire; next_tdc = best_tdc; @@ -405,9 +423,9 @@ void MuonPathAssociator::correlateMPaths(edm::Handle dtdigis, } } if (matched_digis >= 2 and best_layer != -1 and next_layer != -1) { - int new_quality = 7; - if (SL1metaPrimitive->quality <= 2) - new_quality = 5; + int new_quality = CHIGHQ; + if (SL1metaPrimitive->quality == LOWQ) + new_quality = CLOWQ; int wi1 = -1; int tdc1 = -1; @@ -564,23 +582,26 @@ void MuonPathAssociator::correlateMPaths(edm::Handle dtdigis, for (const auto &dtLayerId_It : *dtdigis) { const DTLayerId dtLId = dtLayerId_It.first; - const DTSuperLayerId &dtSLId(dtLId); + // creating a new DTSuperLayerId object to compare with the required SL id + const DTSuperLayerId dtSLId(dtLId.wheel(), dtLId.station(), dtLId.sector(), 1); if (dtSLId.rawId() != sl1Id.rawId()) continue; double l_shift = 0; if (dtLId.layer() == 4) - l_shift = 1.95; + l_shift = X_POS_L4; if (dtLId.layer() == 3) - l_shift = 0.65; + l_shift = X_POS_L3; if (dtLId.layer() == 2) - l_shift = -0.65; + l_shift = -1 * X_POS_L3; if (dtLId.layer() == 1) - l_shift = -1.95; - double x_inSL1 = SL3metaPrimitive->x + SL3metaPrimitive->tanPhi * (23.5 - l_shift); + l_shift = -1 * X_POS_L4; + double x_inSL1 = SL3metaPrimitive->x + SL3metaPrimitive->tanPhi * (VERT_PHI1_PHI3 - l_shift); for (auto digiIt = (dtLayerId_It.second).first; digiIt != (dtLayerId_It.second).second; ++digiIt) { DTWireId wireId(dtLId, (*digiIt).wire()); - int x_wire = shiftinfo_[wireId.rawId()] + ((*digiIt).time() - SL3metaPrimitive->t0) * 0.00543; - int x_wire_left = shiftinfo_[wireId.rawId()] - ((*digiIt).time() - SL3metaPrimitive->t0) * 0.00543; + double x_wire = + shiftinfo_[wireId.rawId()] + ((*digiIt).time() - SL3metaPrimitive->t0) * DRIFT_SPEED / 10.; + double x_wire_left = + shiftinfo_[wireId.rawId()] - ((*digiIt).time() - SL3metaPrimitive->t0) * DRIFT_SPEED / 10.; lat = 1; if (std::abs(x_inSL1 - x_wire) > std::abs(x_inSL1 - x_wire_left)) { x_wire = x_wire_left; //choose the closest laterality @@ -609,9 +630,9 @@ void MuonPathAssociator::correlateMPaths(edm::Handle dtdigis, } } if (matched_digis >= 2 and best_layer != -1 and next_layer != -1) { - int new_quality = 7; - if (SL3metaPrimitive->quality <= 2) - new_quality = 5; + int new_quality = CHIGHQ; + if (SL3metaPrimitive->quality == LOWQ) + new_quality = CLOWQ; int wi1 = -1; int tdc1 = -1; @@ -889,6 +910,35 @@ void MuonPathAssociator::correlateMPaths(edm::Handle dtdigis, } } } + + //eta TP we do not correlate with other superlayer in the same chamber so we forward them all + std::vector SL2metaPrimitives; + + for (int wh = -2; wh <= 2; wh++) { + for (int st = 1; st <= 4; st++) { + for (int se = 1; se <= 14; se++) { + if (se >= 13 && st != 4) + continue; + + DTChamberId ChId(wh, st, se); + DTSuperLayerId sl2Id(wh, st, se, 2); + + //filterSL2 etaTP + for (auto metaprimitiveIt = inMPaths.begin(); metaprimitiveIt != inMPaths.end(); ++metaprimitiveIt) + if (metaprimitiveIt->rawId == sl2Id.rawId()) { + SL2metaPrimitives.push_back(*metaprimitiveIt); + //std::cout<<"pushing back eta metaprimitive: "; + printmPC(*metaprimitiveIt); + outMPaths.push_back(*metaprimitiveIt); + } + } + } + } + + LogDebug("MuonPathAssociator") << "\t etaTP: added " << SL2metaPrimitives.size() << "to outMPaths" << std::endl; + + SL2metaPrimitives.clear(); + SL2metaPrimitives.erase(SL2metaPrimitives.begin(), SL2metaPrimitives.end()); } void MuonPathAssociator::removeSharingFits(vector &chamberMPaths, vector &allMPaths) { diff --git a/L1Trigger/L1TCalorimeter/python/caloParams_2018_v1_3_cfi.py b/L1Trigger/L1TCalorimeter/python/caloParams_2018_v1_3_cfi.py new file mode 100644 index 0000000000000..df894ebd37207 --- /dev/null +++ b/L1Trigger/L1TCalorimeter/python/caloParams_2018_v1_3_cfi.py @@ -0,0 +1,172 @@ +import FWCore.ParameterSet.Config as cms + +from L1Trigger.L1TCalorimeter.caloParams_cfi import caloParamsSource +import L1Trigger.L1TCalorimeter.caloParams_cfi +caloStage2Params = L1Trigger.L1TCalorimeter.caloParams_cfi.caloParams.clone() + +# towers +caloStage2Params.towerLsbH = cms.double(0.5) +caloStage2Params.towerLsbE = cms.double(0.5) +caloStage2Params.towerLsbSum = cms.double(0.5) +caloStage2Params.towerNBitsH = cms.int32(8) +caloStage2Params.towerNBitsE = cms.int32(8) +caloStage2Params.towerNBitsSum = cms.int32(9) +caloStage2Params.towerNBitsRatio = cms.int32(3) +caloStage2Params.towerEncoding = cms.bool(True) + +# regions +caloStage2Params.regionLsb = cms.double(0.5) +caloStage2Params.regionPUSType = cms.string("None") +caloStage2Params.regionPUSParams = cms.vdouble() + +# EG +caloStage2Params.egLsb = cms.double(0.5) +caloStage2Params.egEtaCut = cms.int32(28) +caloStage2Params.egSeedThreshold = cms.double(2.) +caloStage2Params.egNeighbourThreshold = cms.double(1.) +caloStage2Params.egHcalThreshold = cms.double(0.) +caloStage2Params.egTrimmingLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/egTrimmingLUT_10_v16.01.19.txt") +caloStage2Params.egMaxHcalEt = cms.double(0.) +caloStage2Params.egMaxPtHOverE = cms.double(128.) +caloStage2Params.egMaxHOverELUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/HoverEIdentification_0.995_v15.12.23.txt") +caloStage2Params.egHOverEcutBarrel = cms.int32(3) +caloStage2Params.egHOverEcutEndcap = cms.int32(4) +caloStage2Params.egBypassExtHOverE = cms.uint32(0) +caloStage2Params.egCompressShapesLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/egCompressLUT_v4.txt") +caloStage2Params.egShapeIdType = cms.string("compressed") +caloStage2Params.egShapeIdVersion = cms.uint32(0) +caloStage2Params.egShapeIdLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/shapeIdentification_adapt0.99_compressedieta_compressedE_compressedshape_v15.12.08.txt")#Not used any more in the current emulator version, merged with calibration LUT + +caloStage2Params.egPUSType = cms.string("None") +caloStage2Params.egIsolationType = cms.string("compressed") +caloStage2Params.egIsoLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/EG_Iso_LUT_04_04_2017.2.txt") +caloStage2Params.egIsoLUTFile2 = cms.FileInPath("L1Trigger/L1TCalorimeter/data/EG_LoosestIso_2018.2.txt") +caloStage2Params.egIsoAreaNrTowersEta = cms.uint32(2) +caloStage2Params.egIsoAreaNrTowersPhi = cms.uint32(4) +caloStage2Params.egIsoVetoNrTowersPhi = cms.uint32(2) +#caloStage2Params.egIsoPUEstTowerGranularity = cms.uint32(1) +#caloStage2Params.egIsoMaxEtaAbsForTowerSum = cms.uint32(4) +#caloStage2Params.egIsoMaxEtaAbsForIsoSum = cms.uint32(27) +caloStage2Params.egPUSParams = cms.vdouble(1,4,32) #Isolation window in firmware goes up to abs(ieta)=32 for now +caloStage2Params.egCalibrationType = cms.string("compressed") +caloStage2Params.egCalibrationVersion = cms.uint32(0) +#caloStage2Params.egCalibrationLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/EG_Calibration_LUT_FW_v17.04.04_shapeIdentification_adapt0.99_compressedieta_compressedE_compressedshape_v15.12.08_correct.txt") +caloStage2Params.egCalibrationLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/corrections_Trimming10_compressedieta_compressedE_compressedshape_PANTELIS_v2_NEW_CALIBRATIONS_withShape_v17.04.04.txt") + +# Tau +caloStage2Params.tauLsb = cms.double(0.5) +caloStage2Params.isoTauEtaMax = cms.int32(25) +caloStage2Params.tauSeedThreshold = cms.double(0.) +caloStage2Params.tauNeighbourThreshold = cms.double(0.) +caloStage2Params.tauIsoAreaNrTowersEta = cms.uint32(2) +caloStage2Params.tauIsoAreaNrTowersPhi = cms.uint32(4) +caloStage2Params.tauIsoVetoNrTowersPhi = cms.uint32(2) +caloStage2Params.tauPUSType = cms.string("None") +caloStage2Params.tauIsoLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/Tau_Iso_LUT_Option_31_extrap_2018_FW_v10.0.0.txt") +caloStage2Params.tauIsoLUTFile2 = cms.FileInPath("L1Trigger/L1TCalorimeter/data/Tau_Iso_LUT_Option_31_extrap_2018_FW_v10.0.0.txt") +#caloStage2Params.tauCalibrationLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/Tau_Calibration_LUT_2017_Layer1Calibration_FW_v12.0.0.txt") +caloStage2Params.tauCalibrationLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/Tau_Calibration_LUT_2018_Layer1CalibrationNewHCAL_FW_v13.0.0.txt") +caloStage2Params.tauCompressLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/tauCompressAllLUT_12bit_v3.txt") +caloStage2Params.tauPUSParams = cms.vdouble(1,4,32) + +# jets +caloStage2Params.jetLsb = cms.double(0.5) +caloStage2Params.jetSeedThreshold = cms.double(4.0) +caloStage2Params.jetNeighbourThreshold = cms.double(0.) +caloStage2Params.jetPUSType = cms.string("ChunkyDonut") +caloStage2Params.jetBypassPUS = cms.uint32(0) + +# Calibration options +caloStage2Params.jetCalibrationType = cms.string("LUT") + +caloStage2Params.jetCompressPtLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/lut_pt_compress_2017v1.txt") +caloStage2Params.jetCompressEtaLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/lut_eta_compress_2017v1.txt") +caloStage2Params.jetCalibrationLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/lut_calib_2018v1_ECALZS_noHFJEC.txt") + + +# sums: 0=ET, 1=HT, 2=MET, 3=MHT +caloStage2Params.etSumLsb = cms.double(0.5) +caloStage2Params.etSumEtaMin = cms.vint32(1, 1, 1, 1, 1) +caloStage2Params.etSumEtaMax = cms.vint32(28, 26, 28, 26, 28) +caloStage2Params.etSumEtThreshold = cms.vdouble(0., 30., 0., 30., 0.) # only 2nd (HT) and 4th (MHT) values applied +caloStage2Params.etSumMetPUSType = cms.string("LUT") # et threshold from this LUT supercedes et threshold in line above +caloStage2Params.etSumEttPUSType = cms.string("None") +caloStage2Params.etSumEcalSumPUSType = cms.string("None") +caloStage2Params.etSumBypassMetPUS = cms.uint32(0) +caloStage2Params.etSumBypassEttPUS = cms.uint32(1) +caloStage2Params.etSumBypassEcalSumPUS = cms.uint32(1) +caloStage2Params.etSumXCalibrationType = cms.string("None") +caloStage2Params.etSumYCalibrationType = cms.string("None") +caloStage2Params.etSumEttCalibrationType = cms.string("None") +caloStage2Params.etSumEcalSumCalibrationType = cms.string("None") + +caloStage2Params.etSumMetPUSLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/lut_towEtThresh_2017v7.txt") +caloStage2Params.etSumEttPUSLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/lut_towEtThresh_dummy.txt") +caloStage2Params.etSumEcalSumPUSLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/lut_towEtThresh_dummy.txt") +caloStage2Params.etSumXCalibrationLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/lut_etSumPUS_dummy.txt") +caloStage2Params.etSumYCalibrationLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/lut_etSumPUS_dummy.txt") +caloStage2Params.etSumEttCalibrationLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/lut_etSumPUS_dummy.txt") +caloStage2Params.etSumEcalSumCalibrationLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/lut_etSumPUS_dummy.txt") + + +# Layer 1 SF +caloStage2Params.layer1ECalScaleETBins = cms.vint32([3, 6, 9, 12, 15, 20, 25, 30, 35, 40, 45, 55, 70, 256]) +caloStage2Params.layer1ECalScaleFactors = cms.vdouble([ + 1.128436, 1.102229, 1.128385, 1.127897, 1.142444, 1.115476, 1.104283, 1.124583, 1.115929, 1.115196, 1.130342, 1.127173, 1.130640, 1.125474, 1.126652, 1.143535, 1.148905, 1.309035, 1.156021, 1.292685, 1.314302, 1.327634, 1.341229, 1.364885, 1.411117, 0.000000, 0.000000, 0.000000, + 1.128436, 1.102229, 1.128385, 1.127897, 1.142444, 1.115476, 1.104283, 1.124583, 1.115929, 1.115196, 1.130342, 1.127173, 1.130640, 1.125474, 1.126652, 1.143535, 1.148905, 1.309035, 1.156021, 1.292685, 1.314302, 1.327634, 1.341229, 1.364885, 1.411117, 1.432419, 0.000000, 0.000000, + 1.078545, 1.072734, 1.075464, 1.081920, 1.078434, 1.072281, 1.079780, 1.082043, 1.094741, 1.074544, 1.082784, 1.084089, 1.086375, 1.099718, 1.092858, 1.092855, 1.105166, 1.256155, 1.126301, 1.215671, 1.226302, 1.268900, 1.281721, 1.310629, 1.356976, 1.386428, 1.220159, 0.000000, + 1.052366, 1.053986, 1.055250, 1.051033, 1.055017, 1.062249, 1.059624, 1.065355, 1.062623, 1.054089, 1.060477, 1.074504, 1.075570, 1.078549, 1.071588, 1.080279, 1.078463, 1.211087, 1.103915, 1.186517, 1.194161, 1.234868, 1.250080, 1.274639, 1.327394, 1.362218, 1.161404, 1.062366, + 1.044640, 1.043507, 1.046185, 1.042067, 1.042425, 1.044121, 1.050677, 1.051604, 1.046070, 1.040140, 1.052732, 1.055652, 1.057201, 1.062982, 1.059512, 1.054542, 1.063873, 1.189094, 1.091948, 1.165298, 1.177338, 1.213632, 1.223587, 1.259376, 1.312025, 1.330172, 1.160220, 1.059058, + 1.032947, 1.033877, 1.036016, 1.036056, 1.037819, 1.036489, 1.040341, 1.035373, 1.042736, 1.030510, 1.039291, 1.043943, 1.051946, 1.049653, 1.045154, 1.048874, 1.043392, 1.146608, 1.083743, 1.161479, 1.164940, 1.197187, 1.229915, 1.238886, 1.289410, 1.344620, 1.078591, 1.051894, + 1.025813, 1.028301, 1.026054, 1.032050, 1.029899, 1.032383, 1.033763, 1.034211, 1.033892, 1.023902, 1.034960, 1.039866, 1.039984, 1.042478, 1.041047, 1.044143, 1.038748, 1.146814, 1.069148, 1.134356, 1.147952, 1.175102, 1.202532, 1.234549, 1.285897, 1.280056, 1.055845, 1.050155, + 1.025370, 1.024465, 1.023378, 1.024989, 1.026322, 1.025140, 1.026122, 1.028451, 1.029161, 1.020083, 1.031555, 1.032971, 1.036222, 1.042410, 1.038053, 1.036796, 1.037195, 1.123576, 1.071556, 1.129229, 1.129561, 1.170449, 1.190240, 1.218357, 1.270482, 1.302586, 1.047321, 1.049100, + 1.018591, 1.019825, 1.020823, 1.019265, 1.021761, 1.021521, 1.024053, 1.024121, 1.024979, 1.015315, 1.026035, 1.028734, 1.030409, 1.031414, 1.030694, 1.033450, 1.035642, 1.103688, 1.066969, 1.117955, 1.135950, 1.163170, 1.180714, 1.228736, 1.254963, 1.307361, 1.047123, 1.047264, + 1.017483, 1.016714, 1.018925, 1.017087, 1.020438, 1.018852, 1.020796, 1.022534, 1.023495, 1.013378, 1.024097, 1.026067, 1.029037, 1.030731, 1.028759, 1.032480, 1.034680, 1.101491, 1.069770, 1.110644, 1.129222, 1.147881, 1.176695, 1.219110, 1.253033, 1.308691, 1.040706, 1.046607, + 1.015432, 1.014445, 1.016057, 1.014908, 1.019115, 1.016567, 1.020411, 1.019852, 1.020255, 1.010779, 1.023433, 1.023674, 1.027479, 1.027385, 1.027332, 1.027537, 1.029061, 1.091079, 1.063278, 1.108876, 1.122727, 1.171282, 1.172058, 1.211259, 1.245839, 1.303968, 1.033863, 1.047743, + 1.014370, 1.013304, 1.013397, 1.014261, 1.013673, 1.013183, 1.018534, 1.016581, 1.017015, 1.008220, 1.019515, 1.021560, 1.024502, 1.025611, 1.025905, 1.025863, 1.027252, 1.085230, 1.063040, 1.112256, 1.116617, 1.140393, 1.159214, 1.191434, 1.240601, 1.268525, 1.033247, 1.042853, + 1.010174, 1.009843, 1.011520, 1.011041, 1.012957, 1.009075, 1.013178, 1.013301, 1.015033, 1.005133, 1.017533, 1.018564, 1.020319, 1.022634, 1.022429, 1.022338, 1.025613, 1.077639, 1.057895, 1.107098, 1.111157, 1.136106, 1.161737, 1.179259, 1.232736, 1.290141, 1.018941, 1.014733, + 1.000302, 1.007651, 1.000751, 1.007791, 1.008949, 1.005394, 1.009599, 1.010180, 1.010865, 1.001827, 1.012447, 1.015231, 1.019545, 1.020611, 1.022404, 1.019032, 1.023113, 1.065127, 1.054688, 1.102754, 1.106151, 1.125574, 1.134480, 1.180965, 1.231939, 1.277289, 1.018941, 1.014733 + ]) + +caloStage2Params.layer1HCalScaleETBins = cms.vint32([6, 9, 12, 15, 20, 25, 30, 35, 40, 45, 55, 70, 256]) +caloStage2Params.layer1HCalScaleFactors = cms.vdouble([ + 1.691347, 1.704095, 1.729441, 1.735242, 1.726367, 1.780424, 1.794996, 1.815904, 1.817388, 1.894632, 1.932656, 1.957527, 1.970890, 2.005818, 2.041546, 2.042775, 1.989288, 1.594904, + 1.659821, 1.676038, 1.495936, 1.505035, 1.512590, 1.511470, 1.494893, 1.378435, 1.430994, 1.500227, 1.531796, 1.547539, 1.559295, 1.561478, 1.568922, 1.601485, 1.616591, 1.620739, + 1.642884, 1.678420, 1.692987, 1.728681, 1.728957, 1.766650, 1.782739, 1.782875, 1.751371, 1.431918, 1.487225, 1.483881, 1.336485, 1.349895, 1.363924, 1.375728, 1.377818, 1.310078, + 1.334588, 1.399686, 1.465418, 1.462800, 1.475840, 1.474735, 1.474407, 1.506928, 1.526279, 1.524000, 1.532718, 1.583398, 1.608380, 1.623528, 1.619634, 1.646501, 1.667856, 1.674628, + 1.635381, 1.350235, 1.394938, 1.383940, 1.244552, 1.256971, 1.261180, 1.282746, 1.279512, 1.221092, 1.241831, 1.351526, 1.390201, 1.404198, 1.416259, 1.404045, 1.418265, 1.437914, + 1.450857, 1.463511, 1.462653, 1.501891, 1.518896, 1.548252, 1.545831, 1.565901, 1.574314, 1.575115, 1.557629, 1.301893, 1.326949, 1.312526, 1.197573, 1.210304, 1.222283, 1.239081, + 1.240673, 1.185591, 1.207651, 1.275166, 1.314260, 1.335228, 1.340603, 1.323027, 1.324793, 1.347954, 1.349916, 1.363145, 1.359628, 1.402624, 1.416518, 1.457202, 1.461053, 1.484090, + 1.500787, 1.498450, 1.471731, 1.215732, 1.253565, 1.243598, 1.157168, 1.164428, 1.175435, 1.189310, 1.192682, 1.142038, 1.162810, 1.230426, 1.262901, 1.265380, 1.274364, 1.276111, + 1.282349, 1.291748, 1.305521, 1.301818, 1.305124, 1.336506, 1.345742, 1.357458, 1.370139, 1.381995, 1.394554, 1.388952, 1.363805, 1.166810, 1.204780, 1.193913, 1.118331, 1.124657, + 1.136138, 1.148564, 1.147392, 1.085564, 1.109949, 1.184837, 1.221607, 1.219692, 1.235950, 1.230444, 1.234908, 1.245100, 1.256813, 1.252608, 1.263569, 1.284188, 1.300083, 1.309901, + 1.312849, 1.335500, 1.339967, 1.328269, 1.309282, 1.128239, 1.173002, 1.163030, 1.077388, 1.087037, 1.085620, 1.099773, 1.097418, 1.047416, 1.080447, 1.135984, 1.186335, 1.189457, + 1.186903, 1.191054, 1.192951, 1.218812, 1.222226, 1.220196, 1.221331, 1.264243, 1.284869, 1.277098, 1.263366, 1.276293, 1.291829, 1.275918, 1.248086, 1.095700, 1.143874, 1.132783, + 1.054939, 1.055922, 1.055405, 1.058330, 1.062463, 1.012972, 1.028538, 1.089975, 1.155949, 1.153120, 1.157186, 1.163320, 1.157607, 1.174722, 1.181157, 1.179473, 1.186948, 1.192614, + 1.207973, 1.215075, 1.252322, 1.231549, 1.241483, 1.224214, 1.207592, 1.069829, 1.112551, 1.107158, 1.025349, 1.026181, 1.028466, 1.035129, 1.030918, 0.977843, 1.004295, 1.075236, + 1.122942, 1.124839, 1.130900, 1.139241, 1.134602, 1.141732, 1.154381, 1.154366, 1.162207, 1.167863, 1.182334, 1.189497, 1.179567, 1.185553, 1.205978, 1.188532, 1.154839, 1.058371, + 1.096597, 1.086545, 0.997724, 1.000690, 1.005683, 1.009107, 1.006028, 0.962736, 0.974019, 1.035748, 1.094997, 1.098600, 1.101567, 1.102895, 1.106445, 1.113255, 1.114956, 1.118930, + 1.128154, 1.135288, 1.145308, 1.151612, 1.142554, 1.153640, 1.154025, 1.138100, 1.127446, 1.034945, 1.069153, 1.062188, 0.977909, 0.972598, 0.972539, 0.978454, 0.975065, 0.941113, + 0.948722, 1.004971, 1.055020, 1.054883, 1.059317, 1.061911, 1.062005, 1.066707, 1.074156, 1.064278, 1.072810, 1.076579, 1.084072, 1.091055, 1.090640, 1.086634, 1.095179, 1.075771, + 1.051884, 1.005930, 1.033331, 1.024734, 0.943637, 0.941986, 0.937779, 0.943865, 0.928477, 0.902234, 0.908232, 0.960607, 1.005841, 1.011405, 1.012527, 1.015557, 1.014508, 1.020877, + 1.019076, 1.015173, 1.015651, 1.019594, 1.026845, 1.024959, 1.025915, 1.029455, 1.017985, 1.016933, 0.989723, 0.977768, 0.993744, 0.985200, 0.907247, 0.903328, 0.912164, 0.898908, + 0.886431, 0.851162, 0.863541, 0.890523 + ]) + +caloStage2Params.layer1HFScaleETBins = cms.vint32([6, 9, 12, 15, 20, 25, 30, 35, 40, 45, 55, 70, 256]) + +caloStage2Params.layer1HFScaleFactors = cms.vdouble([ + 1.401648, 1.138462, 1.188641, 1.173580, 1.218745, 1.238716, 1.279351, 1.306353, 1.352201, 1.425513, 1.766435, 1.913788, + 1.284459, 1.081785, 1.142576, 1.136715, 1.118770, 1.156336, 1.173606, 1.201886, 1.276473, 1.291960, 1.663819, 1.755983, + 1.204911, 1.055869, 1.092000, 1.100584, 1.049183, 1.082497, 1.082629, 1.113835, 1.167107, 1.195128, 1.573579, 1.696511, + 1.148313, 1.036986, 1.094283, 1.054889, 1.001794, 1.023684, 1.032747, 1.048416, 1.096110, 1.146655, 1.541076, 1.641335, + 1.100579, 1.014459, 1.045712, 1.024446, 0.964075, 0.978100, 0.990507, 1.007612, 1.048333, 1.095952, 1.501771, 1.598874, + 1.062801, 0.988340, 1.024694, 0.983528, 0.925067, 0.939920, 0.957879, 0.972375, 1.007824, 1.060773, 1.440472, 1.545380, + 1.022108, 0.970880, 1.008919, 0.956236, 0.907449, 0.922011, 0.938728, 0.950612, 0.987919, 1.036760, 1.395258, 1.500256, + 0.997997, 0.952793, 0.987330, 0.928038, 0.891417, 0.906300, 0.921343, 0.936786, 0.970373, 1.014640, 1.342585, 1.464742, + 0.980560, 0.939970, 0.976677, 0.911275, 0.883970, 0.896411, 0.909605, 0.928250, 0.960889, 1.000147, 1.299124, 1.444636, + 0.960950, 0.924990, 0.949128, 0.902849, 0.880957, 0.892083, 0.904219, 0.920509, 0.950512, 0.989206, 1.253466, 1.428955, + 0.947099, 0.903350, 0.941550, 0.892063, 0.873377, 0.886352, 0.900072, 0.915840, 0.944985, 0.981827, 1.199814, 1.410339, + 0.915085, 0.901126, 0.930501, 0.883655, 0.869623, 0.883995, 0.896408, 0.913637, 0.946368, 0.979263, 1.145768, 1.360238, + 0.886918, 0.895145, 0.914478, 0.882066, 0.871161, 0.886831, 0.900315, 0.917568, 0.952193, 0.984897, 1.097738, 1.285041 + ]) diff --git a/L1Trigger/L1TCalorimeter/python/caloParams_2019_v1_0_cfi.py b/L1Trigger/L1TCalorimeter/python/caloParams_2019_v1_0_cfi.py new file mode 100644 index 0000000000000..35ea9b2e6187c --- /dev/null +++ b/L1Trigger/L1TCalorimeter/python/caloParams_2019_v1_0_cfi.py @@ -0,0 +1,180 @@ +import FWCore.ParameterSet.Config as cms + +from L1Trigger.L1TCalorimeter.caloParams_cfi import caloParamsSource +import L1Trigger.L1TCalorimeter.caloParams_cfi +caloStage2Params = L1Trigger.L1TCalorimeter.caloParams_cfi.caloParams.clone() + +# towers +caloStage2Params.towerLsbH = cms.double(0.5) +caloStage2Params.towerLsbE = cms.double(0.5) +caloStage2Params.towerLsbSum = cms.double(0.5) +caloStage2Params.towerNBitsH = cms.int32(8) +caloStage2Params.towerNBitsE = cms.int32(8) +caloStage2Params.towerNBitsSum = cms.int32(9) +caloStage2Params.towerNBitsRatio = cms.int32(3) +caloStage2Params.towerEncoding = cms.bool(True) + +# regions +caloStage2Params.regionLsb = cms.double(0.5) +caloStage2Params.regionPUSType = cms.string("None") +caloStage2Params.regionPUSParams = cms.vdouble() + +# EG +caloStage2Params.egLsb = cms.double(0.5) +caloStage2Params.egEtaCut = cms.int32(28) +caloStage2Params.egSeedThreshold = cms.double(2.) +caloStage2Params.egNeighbourThreshold = cms.double(1.) +caloStage2Params.egHcalThreshold = cms.double(0.) +caloStage2Params.egTrimmingLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/egTrimmingLUT_10_v16.01.19.txt") +caloStage2Params.egMaxHcalEt = cms.double(0.) +caloStage2Params.egMaxPtHOverE = cms.double(128.) +caloStage2Params.egMaxHOverELUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/HoverEIdentification_0.995_v15.12.23.txt") +caloStage2Params.egHOverEcutBarrel = cms.int32(3) +caloStage2Params.egHOverEcutEndcap = cms.int32(4) +caloStage2Params.egBypassExtHOverE = cms.uint32(0) +caloStage2Params.egBypassShape = cms.uint32(0) +caloStage2Params.egBypassECALFG = cms.uint32(0) +caloStage2Params.egCompressShapesLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/egCompressLUT_v4.txt") +caloStage2Params.egShapeIdType = cms.string("compressed") +caloStage2Params.egShapeIdVersion = cms.uint32(0) +caloStage2Params.egShapeIdLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/shapeIdentification_adapt0.99_compressedieta_compressedE_compressedshape_v15.12.08.txt")#Not used any more in the current emulator version, merged with calibration LUT + +caloStage2Params.egPUSType = cms.string("None") +caloStage2Params.egIsolationType = cms.string("compressed") +caloStage2Params.egIsoLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/EG_Iso_LUT_04_04_2017.2.txt") +caloStage2Params.egIsoLUTFile2 = cms.FileInPath("L1Trigger/L1TCalorimeter/data/EG_LoosestIso_2018.2.txt") +caloStage2Params.egIsoAreaNrTowersEta = cms.uint32(2) +caloStage2Params.egIsoAreaNrTowersPhi = cms.uint32(4) +caloStage2Params.egIsoVetoNrTowersPhi = cms.uint32(2) +#caloStage2Params.egIsoPUEstTowerGranularity = cms.uint32(1) +#caloStage2Params.egIsoMaxEtaAbsForTowerSum = cms.uint32(4) +#caloStage2Params.egIsoMaxEtaAbsForIsoSum = cms.uint32(27) +caloStage2Params.egPUSParams = cms.vdouble(1,4,32) #Isolation window in firmware goes up to abs(ieta)=32 for now +caloStage2Params.egCalibrationType = cms.string("compressed") +caloStage2Params.egCalibrationVersion = cms.uint32(0) +#caloStage2Params.egCalibrationLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/EG_Calibration_LUT_FW_v17.04.04_shapeIdentification_adapt0.99_compressedieta_compressedE_compressedshape_v15.12.08_correct.txt") +caloStage2Params.egCalibrationLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/corrections_Trimming10_compressedieta_compressedE_compressedshape_PANTELIS_v2_NEW_CALIBRATIONS_withShape_v17.04.04.txt") + +# Tau +caloStage2Params.tauLsb = cms.double(0.5) +caloStage2Params.isoTauEtaMax = cms.int32(25) +caloStage2Params.tauSeedThreshold = cms.double(0.) +caloStage2Params.tauNeighbourThreshold = cms.double(0.) +caloStage2Params.tauIsoAreaNrTowersEta = cms.uint32(2) +caloStage2Params.tauIsoAreaNrTowersPhi = cms.uint32(4) +caloStage2Params.tauIsoVetoNrTowersPhi = cms.uint32(2) +caloStage2Params.tauPUSType = cms.string("None") +caloStage2Params.tauIsoLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/Tau_Iso_LUT_Option_31_extrap_2018_FW_v10.0.0.txt") +caloStage2Params.tauIsoLUTFile2 = cms.FileInPath("L1Trigger/L1TCalorimeter/data/Tau_Iso_LUT_Option_31_extrap_2018_FW_v10.0.0.txt") +#caloStage2Params.tauCalibrationLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/Tau_Calibration_LUT_2017_Layer1Calibration_FW_v12.0.0.txt") +caloStage2Params.tauCalibrationLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/Tau_Calibration_LUT_2018_Layer1CalibrationNewHCAL_FW_v13.0.0.txt") +caloStage2Params.tauCompressLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/tauCompressAllLUT_12bit_v3.txt") +caloStage2Params.tauPUSParams = cms.vdouble(1,4,32) + +# jets +caloStage2Params.jetLsb = cms.double(0.5) +caloStage2Params.jetSeedThreshold = cms.double(4.0) +caloStage2Params.jetNeighbourThreshold = cms.double(0.) +caloStage2Params.jetPUSType = cms.string("ChunkyDonut") +caloStage2Params.jetPUSUsePhiRing = cms.uint32(False) +caloStage2Params.jetBypassPUS = cms.uint32(0) + +# Calibration options +caloStage2Params.jetCalibrationType = cms.string("LUT") + +caloStage2Params.jetCompressPtLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/lut_pt_compress_2017v1.txt") +caloStage2Params.jetCompressEtaLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/lut_eta_compress_2017v1.txt") +caloStage2Params.jetCalibrationLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/lut_calib_2018v1_ECALZS_noHFJEC.txt") + + +# sums: 0=ET, 1=HT, 2=MET, 3=MHT +caloStage2Params.etSumLsb = cms.double(0.5) +caloStage2Params.etSumEtaMin = cms.vint32(1, 1, 1, 1, 1) +caloStage2Params.etSumEtaMax = cms.vint32(28, 26, 28, 26, 28) +caloStage2Params.etSumEtThreshold = cms.vdouble(0., 30., 0., 30., 0.) # only 2nd (HT) and 4th (MHT) values applied +caloStage2Params.etSumMetPUSType = cms.string("LUT") # et threshold from this LUT supercedes et threshold in line above +caloStage2Params.etSumEttPUSType = cms.string("None") +caloStage2Params.etSumEcalSumPUSType = cms.string("None") +caloStage2Params.etSumBypassMetPUS = cms.uint32(0) +caloStage2Params.etSumBypassEttPUS = cms.uint32(1) +caloStage2Params.etSumBypassEcalSumPUS = cms.uint32(1) +caloStage2Params.etSumXCalibrationType = cms.string("None") +caloStage2Params.etSumYCalibrationType = cms.string("None") +caloStage2Params.etSumEttCalibrationType = cms.string("None") +caloStage2Params.etSumEcalSumCalibrationType = cms.string("None") + +caloStage2Params.etSumCentralityLower = cms.vdouble(0.0, 1.5, 7.5, 80.5, 268.0, 699.0, 1514.0, 65535.0) +caloStage2Params.etSumCentralityUpper = cms.vdouble(4.0, 10.5, 117.5, 342.0, 809.5, 1641.0, 2966.0, 65535.0) + +caloStage2Params.etSumMetPUSLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/lut_towEtThresh_2017v7.txt") +caloStage2Params.etSumEttPUSLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/lut_towEtThresh_dummy.txt") +caloStage2Params.etSumEcalSumPUSLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/lut_towEtThresh_dummy.txt") +caloStage2Params.metCalibrationLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/lut_etSumCalib_dummy.txt") +caloStage2Params.metHFCalibrationLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/lut_etSumCalib_dummy.txt") +caloStage2Params.etSumEttCalibrationLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/lut_etSumCalib_dummy.txt") +caloStage2Params.etSumEcalSumCalibrationLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/lut_etSumCalib_dummy.txt") +caloStage2Params.metPhiCalibrationLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/lut_etSumCalib_dummy.txt") +caloStage2Params.metHFPhiCalibrationLUTFile = cms.FileInPath("L1Trigger/L1TCalorimeter/data/lut_etSumCalib_dummy.txt") + + +# Layer 1 SF +caloStage2Params.layer1ECalScaleETBins = cms.vint32([3, 6, 9, 12, 15, 20, 25, 30, 35, 40, 45, 55, 70, 256]) +caloStage2Params.layer1ECalScaleFactors = cms.vdouble([ + 1.128436, 1.102229, 1.128385, 1.127897, 1.142444, 1.115476, 1.104283, 1.124583, 1.115929, 1.115196, 1.130342, 1.127173, 1.130640, 1.125474, 1.126652, 1.143535, 1.148905, 1.309035, 1.156021, 1.292685, 1.314302, 1.327634, 1.341229, 1.364885, 1.411117, 0.000000, 0.000000, 0.000000, + 1.128436, 1.102229, 1.128385, 1.127897, 1.142444, 1.115476, 1.104283, 1.124583, 1.115929, 1.115196, 1.130342, 1.127173, 1.130640, 1.125474, 1.126652, 1.143535, 1.148905, 1.309035, 1.156021, 1.292685, 1.314302, 1.327634, 1.341229, 1.364885, 1.411117, 1.432419, 0.000000, 0.000000, + 1.078545, 1.072734, 1.075464, 1.081920, 1.078434, 1.072281, 1.079780, 1.082043, 1.094741, 1.074544, 1.082784, 1.084089, 1.086375, 1.099718, 1.092858, 1.092855, 1.105166, 1.256155, 1.126301, 1.215671, 1.226302, 1.268900, 1.281721, 1.310629, 1.356976, 1.386428, 1.220159, 0.000000, + 1.052366, 1.053986, 1.055250, 1.051033, 1.055017, 1.062249, 1.059624, 1.065355, 1.062623, 1.054089, 1.060477, 1.074504, 1.075570, 1.078549, 1.071588, 1.080279, 1.078463, 1.211087, 1.103915, 1.186517, 1.194161, 1.234868, 1.250080, 1.274639, 1.327394, 1.362218, 1.161404, 1.062366, + 1.044640, 1.043507, 1.046185, 1.042067, 1.042425, 1.044121, 1.050677, 1.051604, 1.046070, 1.040140, 1.052732, 1.055652, 1.057201, 1.062982, 1.059512, 1.054542, 1.063873, 1.189094, 1.091948, 1.165298, 1.177338, 1.213632, 1.223587, 1.259376, 1.312025, 1.330172, 1.160220, 1.059058, + 1.032947, 1.033877, 1.036016, 1.036056, 1.037819, 1.036489, 1.040341, 1.035373, 1.042736, 1.030510, 1.039291, 1.043943, 1.051946, 1.049653, 1.045154, 1.048874, 1.043392, 1.146608, 1.083743, 1.161479, 1.164940, 1.197187, 1.229915, 1.238886, 1.289410, 1.344620, 1.078591, 1.051894, + 1.025813, 1.028301, 1.026054, 1.032050, 1.029899, 1.032383, 1.033763, 1.034211, 1.033892, 1.023902, 1.034960, 1.039866, 1.039984, 1.042478, 1.041047, 1.044143, 1.038748, 1.146814, 1.069148, 1.134356, 1.147952, 1.175102, 1.202532, 1.234549, 1.285897, 1.280056, 1.055845, 1.050155, + 1.025370, 1.024465, 1.023378, 1.024989, 1.026322, 1.025140, 1.026122, 1.028451, 1.029161, 1.020083, 1.031555, 1.032971, 1.036222, 1.042410, 1.038053, 1.036796, 1.037195, 1.123576, 1.071556, 1.129229, 1.129561, 1.170449, 1.190240, 1.218357, 1.270482, 1.302586, 1.047321, 1.049100, + 1.018591, 1.019825, 1.020823, 1.019265, 1.021761, 1.021521, 1.024053, 1.024121, 1.024979, 1.015315, 1.026035, 1.028734, 1.030409, 1.031414, 1.030694, 1.033450, 1.035642, 1.103688, 1.066969, 1.117955, 1.135950, 1.163170, 1.180714, 1.228736, 1.254963, 1.307361, 1.047123, 1.047264, + 1.017483, 1.016714, 1.018925, 1.017087, 1.020438, 1.018852, 1.020796, 1.022534, 1.023495, 1.013378, 1.024097, 1.026067, 1.029037, 1.030731, 1.028759, 1.032480, 1.034680, 1.101491, 1.069770, 1.110644, 1.129222, 1.147881, 1.176695, 1.219110, 1.253033, 1.308691, 1.040706, 1.046607, + 1.015432, 1.014445, 1.016057, 1.014908, 1.019115, 1.016567, 1.020411, 1.019852, 1.020255, 1.010779, 1.023433, 1.023674, 1.027479, 1.027385, 1.027332, 1.027537, 1.029061, 1.091079, 1.063278, 1.108876, 1.122727, 1.171282, 1.172058, 1.211259, 1.245839, 1.303968, 1.033863, 1.047743, + 1.014370, 1.013304, 1.013397, 1.014261, 1.013673, 1.013183, 1.018534, 1.016581, 1.017015, 1.008220, 1.019515, 1.021560, 1.024502, 1.025611, 1.025905, 1.025863, 1.027252, 1.085230, 1.063040, 1.112256, 1.116617, 1.140393, 1.159214, 1.191434, 1.240601, 1.268525, 1.033247, 1.042853, + 1.010174, 1.009843, 1.011520, 1.011041, 1.012957, 1.009075, 1.013178, 1.013301, 1.015033, 1.005133, 1.017533, 1.018564, 1.020319, 1.022634, 1.022429, 1.022338, 1.025613, 1.077639, 1.057895, 1.107098, 1.111157, 1.136106, 1.161737, 1.179259, 1.232736, 1.290141, 1.018941, 1.014733, + 1.000302, 1.007651, 1.000751, 1.007791, 1.008949, 1.005394, 1.009599, 1.010180, 1.010865, 1.001827, 1.012447, 1.015231, 1.019545, 1.020611, 1.022404, 1.019032, 1.023113, 1.065127, 1.054688, 1.102754, 1.106151, 1.125574, 1.134480, 1.180965, 1.231939, 1.277289, 1.018941, 1.014733 + ]) + +caloStage2Params.layer1HCalScaleETBins = cms.vint32([6, 9, 12, 15, 20, 25, 30, 35, 40, 45, 55, 70, 256]) +caloStage2Params.layer1HCalScaleFactors = cms.vdouble([ + 1.691347, 1.704095, 1.729441, 1.735242, 1.726367, 1.780424, 1.794996, 1.815904, 1.817388, 1.894632, 1.932656, 1.957527, 1.970890, 2.005818, 2.041546, 2.042775, 1.989288, 1.594904, + 1.659821, 1.676038, 1.495936, 1.505035, 1.512590, 1.511470, 1.494893, 1.378435, 1.430994, 1.500227, 1.531796, 1.547539, 1.559295, 1.561478, 1.568922, 1.601485, 1.616591, 1.620739, + 1.642884, 1.678420, 1.692987, 1.728681, 1.728957, 1.766650, 1.782739, 1.782875, 1.751371, 1.431918, 1.487225, 1.483881, 1.336485, 1.349895, 1.363924, 1.375728, 1.377818, 1.310078, + 1.334588, 1.399686, 1.465418, 1.462800, 1.475840, 1.474735, 1.474407, 1.506928, 1.526279, 1.524000, 1.532718, 1.583398, 1.608380, 1.623528, 1.619634, 1.646501, 1.667856, 1.674628, + 1.635381, 1.350235, 1.394938, 1.383940, 1.244552, 1.256971, 1.261180, 1.282746, 1.279512, 1.221092, 1.241831, 1.351526, 1.390201, 1.404198, 1.416259, 1.404045, 1.418265, 1.437914, + 1.450857, 1.463511, 1.462653, 1.501891, 1.518896, 1.548252, 1.545831, 1.565901, 1.574314, 1.575115, 1.557629, 1.301893, 1.326949, 1.312526, 1.197573, 1.210304, 1.222283, 1.239081, + 1.240673, 1.185591, 1.207651, 1.275166, 1.314260, 1.335228, 1.340603, 1.323027, 1.324793, 1.347954, 1.349916, 1.363145, 1.359628, 1.402624, 1.416518, 1.457202, 1.461053, 1.484090, + 1.500787, 1.498450, 1.471731, 1.215732, 1.253565, 1.243598, 1.157168, 1.164428, 1.175435, 1.189310, 1.192682, 1.142038, 1.162810, 1.230426, 1.262901, 1.265380, 1.274364, 1.276111, + 1.282349, 1.291748, 1.305521, 1.301818, 1.305124, 1.336506, 1.345742, 1.357458, 1.370139, 1.381995, 1.394554, 1.388952, 1.363805, 1.166810, 1.204780, 1.193913, 1.118331, 1.124657, + 1.136138, 1.148564, 1.147392, 1.085564, 1.109949, 1.184837, 1.221607, 1.219692, 1.235950, 1.230444, 1.234908, 1.245100, 1.256813, 1.252608, 1.263569, 1.284188, 1.300083, 1.309901, + 1.312849, 1.335500, 1.339967, 1.328269, 1.309282, 1.128239, 1.173002, 1.163030, 1.077388, 1.087037, 1.085620, 1.099773, 1.097418, 1.047416, 1.080447, 1.135984, 1.186335, 1.189457, + 1.186903, 1.191054, 1.192951, 1.218812, 1.222226, 1.220196, 1.221331, 1.264243, 1.284869, 1.277098, 1.263366, 1.276293, 1.291829, 1.275918, 1.248086, 1.095700, 1.143874, 1.132783, + 1.054939, 1.055922, 1.055405, 1.058330, 1.062463, 1.012972, 1.028538, 1.089975, 1.155949, 1.153120, 1.157186, 1.163320, 1.157607, 1.174722, 1.181157, 1.179473, 1.186948, 1.192614, + 1.207973, 1.215075, 1.252322, 1.231549, 1.241483, 1.224214, 1.207592, 1.069829, 1.112551, 1.107158, 1.025349, 1.026181, 1.028466, 1.035129, 1.030918, 0.977843, 1.004295, 1.075236, + 1.122942, 1.124839, 1.130900, 1.139241, 1.134602, 1.141732, 1.154381, 1.154366, 1.162207, 1.167863, 1.182334, 1.189497, 1.179567, 1.185553, 1.205978, 1.188532, 1.154839, 1.058371, + 1.096597, 1.086545, 0.997724, 1.000690, 1.005683, 1.009107, 1.006028, 0.962736, 0.974019, 1.035748, 1.094997, 1.098600, 1.101567, 1.102895, 1.106445, 1.113255, 1.114956, 1.118930, + 1.128154, 1.135288, 1.145308, 1.151612, 1.142554, 1.153640, 1.154025, 1.138100, 1.127446, 1.034945, 1.069153, 1.062188, 0.977909, 0.972598, 0.972539, 0.978454, 0.975065, 0.941113, + 0.948722, 1.004971, 1.055020, 1.054883, 1.059317, 1.061911, 1.062005, 1.066707, 1.074156, 1.064278, 1.072810, 1.076579, 1.084072, 1.091055, 1.090640, 1.086634, 1.095179, 1.075771, + 1.051884, 1.005930, 1.033331, 1.024734, 0.943637, 0.941986, 0.937779, 0.943865, 0.928477, 0.902234, 0.908232, 0.960607, 1.005841, 1.011405, 1.012527, 1.015557, 1.014508, 1.020877, + 1.019076, 1.015173, 1.015651, 1.019594, 1.026845, 1.024959, 1.025915, 1.029455, 1.017985, 1.016933, 0.989723, 0.977768, 0.993744, 0.985200, 0.907247, 0.903328, 0.912164, 0.898908, + 0.886431, 0.851162, 0.863541, 0.890523 + ]) + +caloStage2Params.layer1HFScaleETBins = cms.vint32([6, 9, 12, 15, 20, 25, 30, 35, 40, 45, 55, 70, 256]) + +caloStage2Params.layer1HFScaleFactors = cms.vdouble([ + 1.401648, 1.138462, 1.188641, 1.173580, 1.218745, 1.238716, 1.279351, 1.306353, 1.352201, 1.425513, 1.766435, 1.913788, + 1.284459, 1.081785, 1.142576, 1.136715, 1.118770, 1.156336, 1.173606, 1.201886, 1.276473, 1.291960, 1.663819, 1.755983, + 1.204911, 1.055869, 1.092000, 1.100584, 1.049183, 1.082497, 1.082629, 1.113835, 1.167107, 1.195128, 1.573579, 1.696511, + 1.148313, 1.036986, 1.094283, 1.054889, 1.001794, 1.023684, 1.032747, 1.048416, 1.096110, 1.146655, 1.541076, 1.641335, + 1.100579, 1.014459, 1.045712, 1.024446, 0.964075, 0.978100, 0.990507, 1.007612, 1.048333, 1.095952, 1.501771, 1.598874, + 1.062801, 0.988340, 1.024694, 0.983528, 0.925067, 0.939920, 0.957879, 0.972375, 1.007824, 1.060773, 1.440472, 1.545380, + 1.022108, 0.970880, 1.008919, 0.956236, 0.907449, 0.922011, 0.938728, 0.950612, 0.987919, 1.036760, 1.395258, 1.500256, + 0.997997, 0.952793, 0.987330, 0.928038, 0.891417, 0.906300, 0.921343, 0.936786, 0.970373, 1.014640, 1.342585, 1.464742, + 0.980560, 0.939970, 0.976677, 0.911275, 0.883970, 0.896411, 0.909605, 0.928250, 0.960889, 1.000147, 1.299124, 1.444636, + 0.960950, 0.924990, 0.949128, 0.902849, 0.880957, 0.892083, 0.904219, 0.920509, 0.950512, 0.989206, 1.253466, 1.428955, + 0.947099, 0.903350, 0.941550, 0.892063, 0.873377, 0.886352, 0.900072, 0.915840, 0.944985, 0.981827, 1.199814, 1.410339, + 0.915085, 0.901126, 0.930501, 0.883655, 0.869623, 0.883995, 0.896408, 0.913637, 0.946368, 0.979263, 1.145768, 1.360238, + 0.886918, 0.895145, 0.914478, 0.882066, 0.871161, 0.886831, 0.900315, 0.917568, 0.952193, 0.984897, 1.097738, 1.285041 + ]) diff --git a/L1Trigger/L1TCalorimeter/test/runCaloLayer2MPFWValidation.py b/L1Trigger/L1TCalorimeter/test/runCaloLayer2MPFWValidation.py index 9c82e8e33e046..d20859891eb01 100644 --- a/L1Trigger/L1TCalorimeter/test/runCaloLayer2MPFWValidation.py +++ b/L1Trigger/L1TCalorimeter/test/runCaloLayer2MPFWValidation.py @@ -115,7 +115,7 @@ process.simCaloStage2Digis.towerToken = cms.InputTag("caloStage2Digis","CaloTower") # emulator ES -process.load('L1Trigger.L1TCalorimeter.caloParams_2018_v1_4_cfi') +process.load('L1Trigger.L1TCalorimeter.caloParams_2019_v1_0_cfi') # histograms process.load('L1Trigger.L1TCalorimeter.l1tStage2CaloAnalyzer_cfi') diff --git a/L1Trigger/L1TCalorimeter/test/runEmulator-CaloStage2.py b/L1Trigger/L1TCalorimeter/test/runEmulator-CaloStage2.py index 001e4ce4a6679..8c4800a0df78d 100644 --- a/L1Trigger/L1TCalorimeter/test/runEmulator-CaloStage2.py +++ b/L1Trigger/L1TCalorimeter/test/runEmulator-CaloStage2.py @@ -122,7 +122,7 @@ process.simCaloStage2Layer1Digis.hcalToken = cms.InputTag("hcalDigis") # emulator ES -process.load('L1Trigger.L1TCalorimeter.caloParams_2018_v1_4_cfi') +process.load('L1Trigger.L1TCalorimeter.caloParams_2019_v1_0_cfi') # histograms process.load('L1Trigger.L1TCalorimeter.l1tStage2CaloAnalyzer_cfi') diff --git a/L1Trigger/L1TCommon/macros/NtupleDiff.C b/L1Trigger/L1TCommon/macros/NtupleDiff.C index eaf63510e7ab0..11605c9b6a8e0 100644 --- a/L1Trigger/L1TCommon/macros/NtupleDiff.C +++ b/L1Trigger/L1TCommon/macros/NtupleDiff.C @@ -1,66 +1,93 @@ #include "L1Trigger/L1TNtuples/interface/L1AnalysisL1UpgradeDataFormat.h" -void bitwise_compare(const char * tag, TTree * tree1, TTree * tree2, const char * var, const char * var2, const char * cut, int nbins, double max, double min){ +void bitwise_compare(const char* tag, + TTree* tree1, + TTree* tree2, + const char* var, + const char* var2, + const char* cut, + int nbins, + double max, + double min) { char command[1000]; - static int count = 0; + static int countDiscrep = 0; + static int countAgree = 0; - TH1F h1("h1","",nbins,max,min); - TH1F h2("h2","",nbins,max,min); + TH1F h1("h1", "", nbins, max, min); + TH1F h2("h2", "", nbins, max, min); sprintf(command, "%s>>h1", var); tree1->Draw(command, cut); sprintf(command, "%s>>h2", var2); tree2->Draw(command, cut); //cout << "count 1: " << h1.GetEntries() << "\n"; //cout << "count 2: " << h2.GetEntries() << "\n"; - - if(!TString(var).CompareTo("sumEt[0]")) { var = "ETT";} - else if(!TString(var).CompareTo("sumEt[2]")) {var = "HTT";} - else if(!TString(var).CompareTo("sumEt[4]")) {var = "ETM";} - else if(!TString(var).CompareTo("sumEt[6]")) {var = "HTM";} + + if (!TString(var).CompareTo("sumEt[0]")) { + var = "ETT"; + } else if (!TString(var).CompareTo("sumEt[2]")) { + var = "HTT"; + } else if (!TString(var).CompareTo("sumEt[4]")) { + var = "ETM"; + } else if (!TString(var).CompareTo("sumEt[6]")) { + var = "HTM"; + } int fail = 0; - for (int i=0; iSetTitle(var); h1.Draw("L"); h2.Draw("epSAME"); c1.SaveAs(name); - count++; + countDiscrep++; } else { cout << "SUCCESS: bitwise equality for variable " << var << "\n"; + char name[1000]; + sprintf(name, "agree_%s_%s_%d.pdf", tag, var, countAgree); + TCanvas c1; + h1.GetXaxis()->SetTitle(var); + h1.Draw("L"); + h2.Draw("epSAME"); + c1.SaveAs(name); + countAgree++; } - } -void bitwise_compare(const char * tag, TTree * tree1, TTree * tree2, const char * var, const char * cut, int nbins, double max, double min){ +void bitwise_compare( + const char* tag, TTree* tree1, TTree* tree2, const char* var, const char* cut, int nbins, double max, double min) { bitwise_compare(tag, tree1, tree2, var, var, cut, nbins, max, min); } -void NtupleDiff(const char * tag, const char * file1, const char * file2, const char * treepath1="l1UpgradeEmuTree/L1UpgradeTree", const char * treepath2="l1UpgradeEmuTree/L1UpgradeTree"){ +void NtupleDiff(const char* tag, + const char* file1, + const char* file2, + const char* treepath1 = "l1UpgradeEmuTree/L1UpgradeTree", + const char* treepath2 = "l1UpgradeEmuTree/L1UpgradeTree") { cout << "INFO: comparing contents of tree " << treepath1 << " in file " << file1 << "\n"; cout << "INFO: comparing contents of tree " << treepath2 << " in file " << file2 << "\n"; TFile input1(file1); - TTree * tree1 = (TTree*) input1.Get(treepath1); - if (! tree1) { + TTree* tree1 = (TTree*)input1.Get(treepath1); + if (!tree1) { cout << "ERROR: could not open tree 1.\n"; input1.ls(); return; } TFile input2(file2); - TTree * tree2 = (TTree*) input2.Get(treepath2); - if (! tree2) { + TTree* tree2 = (TTree*)input2.Get(treepath2); + if (!tree2) { cout << "ERROR: could not open tree 2.\n"; input2.ls(); return; @@ -87,9 +114,9 @@ void NtupleDiff(const char * tag, const char * file1, const char * file2, const bitwise_compare(tag, tree1, tree2, "egEta", "egEt > 10.0", 20.0, -5.0, 5.0); bitwise_compare(tag, tree1, tree2, "egPhi", "egEt > 10.0", 20.0, -6.2, 6.2); - bitwise_compare(tag, tree1, tree2, "muonEt", "muonEt > 10.0", 20.0, 0.0, 200.0); - bitwise_compare(tag, tree1, tree2, "muonEta", "muonEt > 10.0", 20.0, -5.0, 5.0); - bitwise_compare(tag, tree1, tree2, "muonPhi", "muonEt > 10.0", 20.0, -6.2, 6.2); + bitwise_compare(tag, tree1, tree2, "muonEt", "muonEt > 3.0", 20.0, 0.0, 200.0); + bitwise_compare(tag, tree1, tree2, "muonEta", "muonEt > 3.0", 20.0, -5.0, 5.0); + bitwise_compare(tag, tree1, tree2, "muonPhi", "muonEt > 3.0", 20.0, -6.2, 6.2); bitwise_compare(tag, tree1, tree2, "sumEt[0]", "", 20.0, 0.0, 500.0); bitwise_compare(tag, tree1, tree2, "sumEt[2]", "", 20.0, 0.0, 500.0); @@ -101,7 +128,6 @@ void NtupleDiff(const char * tag, const char * file1, const char * file2, const //bitwise_compare(tag, tree1, tree2, "sumEt[2]", "sumEt[1]", "", 20.0, 0.0, 500.0); //bitwise_compare(tag, tree1, tree2, "sumEt[4]", "sumEt[2]", "", 20.0, 0.0, 500.0); //bitwise_compare(tag, tree1, tree2, "sumEt[6]", "sumEt[3]", "", 20.0, 0.0, 500.0); - //TH1F * jetEt = new TH1F("jetEt","", 20, 0.0, 200.0); //tree->Draw("jetEt>>jetEt","jetEt > 10.0"); @@ -117,5 +143,5 @@ void NtupleDiff(const char * tag, const char * file1, const char * file2, const //TH1F * muonEt = new TH1F("muonEt","", 20, 0.0, 200.0); //tree->Draw("muonEt>>muonEt","muonEt > 1.0"); - //cout << "muon count: " << muonEt->GetEntries() << "\n"; + //cout << "muon count: " << muonEt->GetEntries() << "\n"; } diff --git a/L1Trigger/L1TCommon/scripts/makeHtml.sh b/L1Trigger/L1TCommon/scripts/makeHtml.sh index fcec2a24431ae..d31b640a1f52a 100755 --- a/L1Trigger/L1TCommon/scripts/makeHtml.sh +++ b/L1Trigger/L1TCommon/scripts/makeHtml.sh @@ -25,6 +25,8 @@ compDir2=$2 #compStr2=sed -e 's/.*.\///' $compDir2 directory=`pwd` +agreeDirectory=`pwd`/inAgrement +mkdir $agreeDirectory ## convert all the .pdf files to .png find . -type f -name '*.pdf' -print0 | @@ -32,9 +34,43 @@ find . -type f -name '*.pdf' -print0 | do convert -verbose "${file}" "${file%.*}.png" done +# move all the plots in agreement in separate directory +mv agree* $agreeDirectory + sleep 1 tempDate=`date "+%Y-%m-%d"`; + +# Make webpage for plots in agreement +outputFileAgreement=inAgrement/inAgreement_$tempDate.htm +>$outputFileAgreement +cat <>$outputFileAgreement + + + + Result WebPages for $tempDate + + + +

Results Web Pages for $tempDate

+

Result Agreeing Histograms:

+

comparing $compDir1 (line) and $compDir2 (points)

+ +EOF + +for file in `ls $agreeDirectory | grep png` ; +#for file in "$( find $directory -name "*.png" )" # -type l = symbolic links +do + echo "$file" +cat <>$outputFileAgreement + +

Plot: $file

+

----------------------

+ +EOF +done | sort + +# Make main webpage for plots with discrepancies outputFile=plots_$tempDate.htm >$outputFile @@ -47,10 +83,18 @@ cat <>$outputFile

Results Web Pages for $tempDate

-

Result Histograms comparing $compDir1 (line) and $compDir2 (points)

+

Compare $compDir1 and $compDir2

diff_menu_a_vs_menu_b.txt

----------------------

+ + Plots In Agreement +

----------------------

+ + Plots In Disagrement +

----------------------

+

Result Discrepancy Histograms:

+

comparing $compDir1 (line) and $compDir2 (points)

EOF for file in `ls $directory | grep png` ; diff --git a/L1Trigger/L1TCommon/scripts/testL1T.pl b/L1Trigger/L1TCommon/scripts/testL1T.pl index 00e1d82849722..bd1e95b618fa9 100755 --- a/L1Trigger/L1TCommon/scripts/testL1T.pl +++ b/L1Trigger/L1TCommon/scripts/testL1T.pl @@ -11,11 +11,32 @@ $MAIN_LOG = "MAIN.log"; $JOB_LOG = "JOB.log"; $DIE_FILE = "DIE"; -$NUM_JOBS = 6; +$NUM_JOBS = 8; $TIMEOUT = 10*60; #$GEN_SIM_FILE = "/store/relval/CMSSW_7_6_0/RelValProdTTbar/GEN-SIM/76X_mcRun1_realistic_v10-v1/00000/08F44119-9C7F-E511-85C3-0025905B85A2.root"; #$GEN_SIM_FILE = "file:/afs/cern.ch/work/m/mulhearn/data/gen-sim/GEN-SIM-08F44119-9C7F-E511-85C3-0025905B85A2.root"; -$GEN_SIM_FILE = "root://cms-xrd-global.cern.ch///store/relval/CMSSW_7_6_0/RelValProdTTbar/GEN-SIM/76X_mcRun1_realistic_v10-v1/00000/08F44119-9C7F-E511-85C3-0025905B85A2.root"; +#$GEN_SIM_FILE = "root://cms-xrd-global.cern.ch///store/relval/CMSSW_7_6_0/RelValProdTTbar/GEN-SIM/76X_mcRun1_realistic_v10-v1/00000/08F44119-9C7F-E511-85C3-0025905B85A2.root"; +$GEN_SIM_FILE = "root://eoscms//eos/cms/store/group/dpg_trigger/comm_trigger/L1Trigger/rekovic/unit-test/input//store/relval/CMSSW_7_6_0/RelValProdTTbar/GEN-SIM/76X_mcRun1_realistic_v10-v1/00000/08F44119-9C7F-E511-85C3-0025905B85A2.root"; +#$DATA_2016_FILE = "root://eoscms//eos/cms/store/group/dpg_trigger/comm_trigger/L1Trigger/rekovic/unit-test/input//store/data/Run2016A/ZeroBias1/RAW/v1/000/271/336/00000/00963A5A-BF0A-E611-A657-02163E0141FB.root"; +$DATA_2016_FILE = "/store/data/Run2016H/HLTPhysics3/RAW/v1/000/281/602/00000/0E71643D-BF82-E611-8593-02163E011B19.root"; +#$DATA_2017_FILE = "/store/express/Run2017C/ExpressPhysics/FEVT/Express-v3/000/301/142/00000/0008C605-0881-E711-84A2-02163E019C07.root"; +#$DATA_2017_FILE = "/store/data/Run2017C/HLTPhysics/RAW/v1/000/301/142/00000/00682207-3181-E711-8706-02163E01445A.root"; +#$DATA_2017_FILE = "/store/data/Run2017G/HLTPhysics/RAW/v1/000/306/826/00000/3EFDFCB7-A2CE-E711-80E1-02163E019BEA.root"; +#$DATA_2017_FILE = "root://cms-xrd-global.cern.ch///store/data/Run2017H/SingleMuon/RAW/v1/000/307/082/00000/FE78107C-90D2-E711-84AB-02163E01A586.root"; +#$DATA_2018_FILE = "/store/data/Run2018A/HLTPhysics/RAW/v1/000/316/994/00000/CEFB7B46-3B62-E811-BA1F-FA163E4C0F07.root"; +#$DATA_2017_FILE = "root://cms-xrd-global.cern.ch///store/data/Run2017C/JetHT/RAW/v1/000/301/914/00000/C4B8EA5E-988A-E711-B38B-02163E01399E.root"; +$DATA_2017_FILE = "root://eoscms.cern.ch//eos/cms/store/group/dpg_trigger/comm_trigger/L1Trigger/rekovic/unit-test/input//store/data/Run2017C/JetHT/RAW/v1/000/301/914/00000/C4B8EA5E-988A-E711-B38B-02163E01399E.root"; +#$DATA_2017_FILE = "root://cms-xrd-global.cern.ch///store/express/Run2017C/ExpressPhysics/FEVT/Express-v2/000/300/226/00000/0218D0FB-2376-E711-B5B1-02163E014257.root"; +#$DATA_2017_FILE = "root://cms-xrd-global.cern.ch///store/data/Run2017D/HLTPhysics9/RAW/v1/000/302/676/00000/7A9DB54D-6D98-E711-B9AE-02163E013478.root"; +#$DATA_2018_FILE = "root://cms-xrd-global.cern.ch///store/data/Run2018A/SingleMuon/RAW/v1/000/316/218/00000/3CA8127E-4E57-E811-887E-FA163EEA1DC3.root"; +#$DATA_2018_FILE = "root://cms-xrd-global.cern.ch///store/express/Run2017F/ExpressPhysics/FEVT/Express-v1/000/305/636/00002/581DD5E7-10BA-E711-8E38-02163E011B94.root"; +#$DATA_2018_FILE = "/store/express/Run2018C/ExpressPhysics/FEVT/Express-v1/000/319/992/00000/041AB4A0-708C-E811-921F-02163E0153F7.root"; +#$DATA_2018_FILE = "/store/express/Run2018C/ExpressPhysics/FEVT/Express-v1/000/319/992/00000/041AB4A0-708C-E811-921F-02163E0153F7.root"; +#$DATA_2018_FILE = "root://cms-xrd-global.cern.ch///store/data/Run2018A/JetHT/RAW/v1/000/316/995/00000/FEEAE7BF-CA64-E811-8959-FA163E35C0CD.root"; +#$DATA_2018_FILE = "root://eoscms//eos/cms/store/group/dpg_trigger/comm_trigger/L1Trigger/rekovic/unit-test/input//data/Run2018A/JetHT/RAW/v1/000/316/995/00000/FEEAE7BF-CA64-E811-8959-FA163E35C0CD.root"; +$DATA_2018_FILE = "root://eoscms.cern.ch//eos/cms/store/group/dpg_trigger/comm_trigger/L1Trigger/rekovic/unit-test/input/store/data/Run2018B/JetHT/RAW/v1/000/316/995/00000/FEEAE7BF-CA64-E811-8959-FA163E35C0CD.root"; +#cmsDriver.py $PYTHON_OPT -s RAW2DIGI --era=Run2_2018 --data --conditions=101X_dataRun2_Prompt_v9 --customise=L1Trigger/Configuration/customiseReEmul.L1TReEmulFromRAW --customise=L1Trigger/L1TNtuples/customiseL1Ntuple.L1NtupleAODRAWEMU --customise=L1Trigger/Configuration/customiseSettings.L1TSettingsToCaloParams_2018_v1_2 --filein=/store/express/Run2017F/ExpressPhysics/FEVT/Express-v1/000/305/636/00002/581DD5E7-10BA-E711-8E38-02163E011B94.root + $VERBOSE = 0; $KILL = 0; $DRYRUN = 0; @@ -34,8 +55,20 @@ $SINGLE_JOB = 0; $COND_MC = "--conditions=auto:run2_mc"; -$COND_DATA_2015 = "--conditions=auto:run2_data"; -$COND_DATA_2016 = "--conditions=80X_dataRun2_Prompt_v8"; +#$COND_MC = "--conditions=90X_mcRun2_asymptotic_v0"; +#$COND_MC = "--conditions=90X_upgrade2017_realistic_v6_C1"; +#$COND_DATA_2015 = "--conditions=auto:run2_data"; +#$COND_DATA_2016 = "--conditions=auto:run2_data"; +#$COND_DATA_2017 = "--conditions=auto:run2_data"; +#$COND_DATA_2018 = "--conditions=auto:run2_data"; +$COND_DATA_2015 = "--conditions=101X_dataRun2_Prompt_v9"; +$COND_DATA_2016 = "--conditions=101X_dataRun2_Prompt_v9"; +$COND_DATA_2017 = "--conditions=101X_dataRun2_Prompt_v9"; +$COND_DATA_2018 = "--conditions=101X_dataRun2_Prompt_v9"; +#$COND_DATA_2017 = "--conditions=92X_dataRun2_Prompt_v8"; +#$COND_MC = "--conditions=80X_mcRun2_asymptotic_v17"; # = run2_mc in CMSSW_8_0_19 +#$COND_DATA_2015 = "--conditions=80X_dataRun2_v18"; # = run2_data in CMSSW_8_0_19 +#$COND_DATA_2016 = "--conditions=80X_dataRun2_Prompt_v8"; sub main; main @ARGV; @@ -134,12 +167,12 @@ sub test_dummy { # sub test_unpackers_dont_crash { #$file = "/store/data/Commissioning2016/Cosmics/RAW/v1/000/264/573/00000/5A9E5261-BDD1-E511-9102-02163E014378.root"; - $file = "/store/data/Run2016A/ZeroBias1/RAW/v1/000/271/336/00000/00963A5A-BF0A-E611-A657-02163E0141FB.root"; + #$file = "/store/data/Run2016A/ZeroBias1/RAW/v1/000/271/336/00000/00963A5A-BF0A-E611-A657-02163E0141FB.root"; $nevt = 200; if ($FAST) {$nevt = 10; } if ($SLOW) {$nevt = -1; } if (! $RECYCLE){ - $status = long_command("cmsDriver.py L1TEST $PYTHON_OPT -s RAW2DIGI --era=Run2_2016 $COND_DATA_2015 -n $nevt --data --filein=$file --no_output --no_exec >& CMSDRIVER.log"); + $status = long_command("cmsDriver.py L1TEST $PYTHON_OPT -s RAW2DIGI --era=Run2_2016 $COND_DATA_2015 -n $nevt --data --filein=$DATA_2016_FILE --no_output --no_exec >& CMSDRIVER.log"); print "INFO: status of cmsDriver call is $status\n"; if ($status){ print "ERROR: abnormal status returned: $status\n"; @@ -166,7 +199,7 @@ sub test_unpack_2016_data { if ($SLOW) {$nevt = 500; } if (! $RECYCLE){ - $status = long_command("cmsDriver.py L1TEST $PYTHON_OPT $COND_DATA_2015 -s RAW2DIGI -n $nevt --era=Run2_2016 --data --filein=/store/data/Run2016A/ZeroBias1/RAW/v1/000/271/336/00000/00963A5A-BF0A-E611-A657-02163E0141FB.root --no_output --no_exec --customise=L1Trigger/Configuration/customiseUtils.L1TStage2DigisSummary --customise=L1Trigger/L1TNtuples/customiseL1Ntuple.L1NtupleRAW >& CMSDRIVER.log"); + $status = long_command("cmsDriver.py L1TEST $PYTHON_OPT $COND_DATA_2016 -s RAW2DIGI -n $nevt --era=Run2_2016 --data --filein=$DATA_2016_FILE --no_output --no_exec --customise=L1Trigger/Configuration/customiseUtils.L1TStage2DigisSummary --customise=L1Trigger/L1TNtuples/customiseL1Ntuple.L1NtupleRAW >& CMSDRIVER.log"); print "INFO: status of cmsDriver call is $status\n"; if ($status){ @@ -293,15 +326,71 @@ sub test_reemul { sub test_reemul_2016 { # $file = "/store/data/Run2015D/DoubleEG/RAW-RECO/ZElectron-PromptReco-v4/000/260/627/00000/12455212-1E85-E511-8913-02163E014472.root"; - $file = "/store/data/Run2016A/ZeroBias1/RAW/v1/000/271/336/00000/00963A5A-BF0A-E611-A657-02163E0141FB.root"; + #$file = "/store/data/Run2016A/ZeroBias1/RAW/v1/000/271/336/00000/00963A5A-BF0A-E611-A657-02163E0141FB.root"; #$file = "/store/data/Run2016B/MuonEG/RAW-RECO/TopMuEG-PromptReco-v2/000/273/450/00000/8EF765B2-531C-E611-86D5-02163E012060.root"; #$file = "/store/data/Run2016B/ZeroBias8/RAW/v1/000/272/021/00000/D821E02F-BA0D-E611-9DE0-02163E013885.root"; + $nevt = 100; + if ($FAST) {$nevt = 200; } + if ($SLOW) {$nevt = 1000; } + + if (! $RECYCLE){ + $status = long_command("cmsDriver.py $PYTHON_OPT -s RAW2DIGI --era=Run2_2016 --customise=L1Trigger/Configuration/customiseReEmul.L1TReEmulFromRAW --customise=L1Trigger/L1TNtuples/customiseL1Ntuple.L1NtupleEMU --customise=L1Trigger/Configuration/customiseUtils.L1TTurnOffUnpackStage2GtGmtAndCalo $COND_DATA_2015 -n $nevt --data --no_exec --no_output --filein=$DATA_2016_FILE --customise=L1Trigger/Configuration/customiseUtils.L1TGlobalSimDigisSummary --customise=L1Trigger/Configuration/customiseUtils.L1TAddInfoOutput --customise=L1Trigger/Configuration/customiseUtils.L1TGlobalMenuXML >& CMSDRIVER.log"); + + print "INFO: status of cmsDriver call is $status\n"; + if ($status){ + print "ERROR: abnormal status returned: $status\n"; + return; + } + $status = long_command("$CMSRUN >& CMSRUN.log"); + print "INFO: status of cmsRun call is $status\n"; + if ($status){ + print "ERROR: abnormal status returned: $status\n"; + return; + } + } + + $SUCCESS = 0; + open INPUT,"root -b -q -x ../../L1Trigger/L1TCommon/macros/CheckL1Ntuple.C |"; + while (){ + print $_; + if (/SUCCESS/){ $SUCCESS = 1; } + } + close INPUT; + + if (! $SUCCESS){ + print "ERROR: L1Ntuple did not contain sufficient Calo and Muon candidates for success.\n"; + return; + } + + #print "INFO: parsing the following menu summary:\n"; + #system "grep 'L1T menu Name' -A 250 CMSRUN.log"; + + @TRIGGERS = ("L1_SingleMu3","L1_SingleEG5","L1_SingleJet16"); + foreach $trig (@TRIGGERS) { + open INPUT,"grep 'L1T menu Name' -A 250 CMSRUN.log | grep $trig |"; + $FIRED = 0; + while (){ + #chomp; print "LINE: $_\n"; + /$trig\W+(\w+)/; + print "INFO: $trig fired $1 times\n"; + if ($1 > 0){ $FIRED = 1; } + } + if (! $FIRED){ + print "ERROR: $trig did not fire.\n"; + return; + } + } + system "touch SUCCESS"; + +} + +sub test_reemul_2017 { $nevt = 100; if ($FAST) {$nevt = 100; } if ($SLOW) {$nevt = 1000; } if (! $RECYCLE){ - $status = long_command("cmsDriver.py $PYTHON_OPT -s RAW2DIGI --era=Run2_2016 --customise=L1Trigger/Configuration/customiseReEmul.L1TReEmulFromRAW --customise=L1Trigger/L1TNtuples/customiseL1Ntuple.L1NtupleEMU --customise=L1Trigger/Configuration/customiseUtils.L1TTurnOffUnpackStage2GtGmtAndCalo $COND_DATA_2015 -n $nevt --data --no_exec --no_output --filein=$file --customise=L1Trigger/Configuration/customiseUtils.L1TGlobalSimDigisSummary --customise=L1Trigger/Configuration/customiseUtils.L1TAddInfoOutput --customise=L1Trigger/Configuration/customiseUtils.L1TGlobalMenuXML >& CMSDRIVER.log"); + $status = long_command("cmsDriver.py L1TEST $PYTHON_OPT -s RAW2DIGI --era=Run2_2017 --customise=L1Trigger/Configuration/customiseReEmul.L1TReEmulFromRAW --customise=L1Trigger/L1TNtuples/customiseL1Ntuple.L1NtupleEMU --customise=L1Trigger/Configuration/customiseUtils.L1TTurnOffUnpackStage2GtGmtAndCalo $COND_DATA_2017 -n $nevt --data --no_exec --no_output --filein=$DATA_2017_FILE --customise=L1Trigger/Configuration/customiseUtils.L1TGlobalSimDigisSummary --customise=L1Trigger/Configuration/customiseUtils.L1TAddInfoOutput >& CMSDRIVER.log"); print "INFO: status of cmsDriver call is $status\n"; if ($status){ @@ -351,13 +440,70 @@ sub test_reemul_2016 { } +sub test_reemul_2018 { + #$file = "/store/express/Run2017C/ExpressPhysics/FEVT/Express-v3/000/301/142/00000/0008C605-0881-E711-84A2-02163E019C07.root" + $nevt = 100; + if ($FAST) {$nevt = 100; } + if ($SLOW) {$nevt = 1000; } + + if (! $RECYCLE){ + $status = long_command("cmsDriver.py L1TEST $PYTHON_OPT -s RAW2DIGI --era=Run2_2018 --customise=L1Trigger/Configuration/customiseReEmul.L1TReEmulFromRAW --customise=L1Trigger/L1TNtuples/customiseL1Ntuple.L1NtupleEMU --customise=L1Trigger/Configuration/customiseUtils.L1TTurnOffUnpackStage2GtGmtAndCalo $COND_DATA_2018 -n $nevt --data --no_exec --no_output --filein=$DATA_2018_FILE --customise=L1Trigger/Configuration/customiseUtils.L1TGlobalSimDigisSummary --customise=L1Trigger/Configuration/customiseUtils.L1TAddInfoOutput >& CMSDRIVER.log"); + + print "INFO: status of cmsDriver call is $status\n"; + if ($status){ + print "ERROR: abnormal status returned: $status\n"; + return; + } + $status = long_command("$CMSRUN >& CMSRUN.log"); + print "INFO: status of cmsRun call is $status\n"; + if ($status){ + print "ERROR: abnormal status returned: $status\n"; + return; + } + } + + $SUCCESS = 0; + open INPUT,"root -b -q -x ../../L1Trigger/L1TCommon/macros/CheckL1Ntuple.C |"; + while (){ + print $_; + if (/SUCCESS/){ $SUCCESS = 1; } + } + close INPUT; + + if (! $SUCCESS){ + print "ERROR: L1Ntuple did not contain sufficient Calo and Muon candidates for success.\n"; + return; + } + + #print "INFO: parsing the following menu summary:\n"; + #system "grep 'L1T menu Name' -A 250 CMSRUN.log"; + + @TRIGGERS = ("L1_SingleMu3","L1_SingleEG50","L1_SingleJet35"); + foreach $trig (@TRIGGERS) { + open INPUT,"grep 'L1T menu Name' -A 250 CMSRUN.log | grep $trig |"; + $FIRED = 0; + while (){ + #chomp; print "LINE: $_\n"; + /$trig\W+(\w+)/; + print "INFO: $trig fired $1 times\n"; + if ($1 > 0){ $FIRED = 1; } + } + if (! $FIRED){ + print "ERROR: $trig did not fire.\n"; + return; + } + } + system "touch SUCCESS"; + +} + sub test_mc_prod { $nevt = 50; if ($FAST) {$nevt = 5; } if ($SLOW) {$nevt = 500; } if (! $RECYCLE){ - $status = long_command("cmsDriver.py L1TEST $COND_MC -s DIGI,L1 --datatier GEN-SIM-RAW -n $nevt --era Run2_2016 --mc --no_output --no_exec --filein=$GEN_SIM_FILE --customise=L1Trigger/L1TNtuples/customiseL1Ntuple.L1NtupleEMUNoEventTree >& CMSDRIVER.log"); + $status = long_command("cmsDriver.py L1TEST $COND_MC -s DIGI,L1 --datatier GEN-SIM-RAW -n $nevt --era Run2_2016 --mc --no_output --no_exec --filein=$GEN_SIM_FILE --customise=L1Trigger/L1TNtuples/customiseL1Ntuple.L1NtupleEMUNoEventTree --customise=L1Trigger/Configuration/customiseUtils.L1TGlobalSimDigisSummary --customise=L1Trigger/Configuration/customiseUtils.L1TAddInfoOutput >& CMSDRIVER.log"); # --geometry=Extended2016,Extended2016Reco --customise=L1Trigger/Configuration/customiseReEmul.L1TEventSetupForHF1x1TPs print "INFO: status of cmsDriver call is $status\n"; @@ -415,6 +561,8 @@ sub run_job { case 3 {test_pack_unpack_is_unity; } case 4 {test_unpackers_dont_crash; } case 5 {test_reemul_2016;} + case 6 {test_reemul_2017;} + case 7 {test_reemul_2018;} else {test_dummy; } } my $job_time = time() - $start_time; @@ -566,6 +714,14 @@ sub main { print "$theirs\n";; $status = long_command("root -b -q -x '$ENV{CMSSW_BASE}/src/L1Trigger/L1TCommon/macros/NtupleDiff.C(\"reemul2016\",\"$ours\",\"$theirs\")'"); + $ours = "../$DIR1/$WORK_DIR/test_6/L1Ntuple.root"; + $theirs = "../$DIR2/$WORK_DIR/test_6/L1Ntuple.root"; + if (! -e $ours) { print "ERROR: could not find file $ours\n"; exit(1); } + if (! -e $theirs) { print "ERROR: could not find file $theirs\n"; exit(1); } + print "$ours\n"; + print "$theirs\n";; + $status = long_command("root -b -q -x '$ENV{CMSSW_BASE}/src/L1Trigger/L1TCommon/macros/NtupleDiff.C(\"reemul2017\",\"$ours\",\"$theirs\")'"); + # this is a hack until L1T uGT output goes into L1TNtuple: system "sed -n \'/L1T menu Name/,/Final OR Count/p\' ../$DIR1/$WORK_DIR/test_0/CMSRUN.log > menu_a.txt"; diff --git a/L1Trigger/L1TGlobal/src/MuCondition.cc b/L1Trigger/L1TGlobal/src/MuCondition.cc index f89256dfe454b..1a7803fa77e8c 100644 --- a/L1Trigger/L1TGlobal/src/MuCondition.cc +++ b/L1Trigger/L1TGlobal/src/MuCondition.cc @@ -246,7 +246,21 @@ const bool l1t::MuCondition::evaluateCondition(const int bxEval) const { } } - if (!(((chargeCorr & 2) != 0 && equalSigns) || ((chargeCorr & 4) != 0 && posCount == 2))) { + // Original OS 4 muon condition (disagreement with firmware): + // if (!(((chargeCorr & 2) != 0 && equalSigns) || ((chargeCorr & 4) != 0 && posCount == 2))) { + // Fix by R. Cavanaugh: + // Note that negative charge => hwCharge = 0 + // positive charge => hwCharge = 1 + // Hence: (0,0,0,0) => (posCount = 0) => 4 SS muons + // (1,0,0,0) => (posCount = 1) => 1 OS muon pair, 1 SS muon pair + // (1,1,0,0) => (posCount = 2) => 2 OS muon pairs + // (1,0,1,0) => (posCount = 2) => 2 OS muon pairs + // (0,0,1,1) => (posCount = 2) => 2 OS muon pairs + // (1,1,1,0) => (posCount = 3) => 1 SS muon pair, 1 OS muon pair + // (1,1,1,1) => (posCount = 4) => 4 SS muons + // A requirement (posCount == 2) implies there must be exactly 2 OS pairs of muons + // A requirement of at least 1 pair of OS muons implies condition should be (posCount > 0 && posCount < 4) + if (!(((chargeCorr & 2) != 0 && equalSigns) || ((chargeCorr & 4) != 0 && (posCount > 0 && posCount < 4)))) { LogDebug("L1TGlobal") << "===> MuCondition:: 4 Muon Fail Charge Correlation Condition = " << chargeCorr << " posCnt " << posCount << std::endl; continue; @@ -382,7 +396,7 @@ const bool l1t::MuCondition::checkObjectParameter(const int iCondition, << "\n\t hwQual = 0x " << cand.hwQual() << "\n\t hwIso = 0x " << cand.hwIso() << std::dec << std::endl; - if (objPar.unconstrainedPtHigh > 0) // Check if unconstrained pT cut-window is valid + if (objPar.unconstrainedPtHigh > 0) // Rick Cavanaugh: Check if unconstrained pT cut-window is valid { if (!checkUnconstrainedPt(objPar.unconstrainedPtLow, objPar.unconstrainedPtHigh, @@ -393,8 +407,8 @@ const bool l1t::MuCondition::checkObjectParameter(const int iCondition, return false; } } - - if (objPar.impactParameterLUT != 0) // Check if impact parameter LUT is valid. 0xF is default; 0x0 is invalid + if (objPar.impactParameterLUT != + 0) // Rick Cavanaugh: Check if impact parameter LUT is valid. 0xF is default; 0x0 is invalid { // check impact parameter ( bit check ) with impact parameter LUT // sanity check on candidate impact parameter @@ -474,7 +488,7 @@ const bool l1t::MuCondition::checkObjectParameter(const int iCondition, } // A number of values is required to trigger (at least one). - // "Don’t care" means that all values are allowed. + // "Don't care" means that all values are allowed. // Qual = 000 means then NO MUON (GTL module) // if (cand.hwQual() == 0) { diff --git a/L1Trigger/L1TMuon/python/fakeGmtParams_cff.py b/L1Trigger/L1TMuon/python/fakeGmtParams_cff.py index a74a4195f4cf5..1892ff1c07655 100644 --- a/L1Trigger/L1TMuon/python/fakeGmtParams_cff.py +++ b/L1Trigger/L1TMuon/python/fakeGmtParams_cff.py @@ -2,6 +2,7 @@ import os +# directory paths to code and external LUTs l1tgmt_basedir = "L1Trigger/L1TMuon/" lut_dir = os.path.join(l1tgmt_basedir, "data/microgmt_luts/") @@ -15,29 +16,38 @@ gmtParams = cms.ESProducer('L1TMuonGlobalParamsESProducer', # id for uGMT settings uGmtProcessorId = cms.string('ugmt_processor'), + # paths to external xml online config files + # for testing purposes or manual generation of conditions from a trigger key hwXmlFile = cms.string('L1Trigger/L1TMuon/data/o2o/ugmt/UGMT_HW.xml'), topCfgXmlFile = cms.string('L1Trigger/L1TMuon/data/o2o/ugmt/ugmt_top_config_p5.xml'), xmlCfgKey = cms.string('TestKey1'), - # get configuration from DB and ignore values below this one + + # get configuration from OMDS xml files defined above + # if "True" parameters below this one are ignored configFromXml = cms.bool(False), - #fwVersion = cms.uint32(1), + # uGMT FW version to be set + # Format: 0xMMmmvvpp for major.minor.very_minor.patch + # E.g.: 2.1.0.patch1 translates to 0x02010001 fwVersion = cms.uint32(0x4010000), # uGMT inputs to disable # disabled inputs are not used in the algo but are still in the readout - caloInputsDisable = cms.bool(False), + caloInputsDisable = cms.bool(False), # disables all 28 calo inputs bmtfInputsToDisable = cms.vuint32(0,0,0,0,0,0,0,0,0,0,0,0), # BMTF 0-11 omtfInputsToDisable = cms.vuint32(0,0,0,0,0,0,0,0,0,0,0,0), # OMTF+0-5, OMTF-0-5 emtfInputsToDisable = cms.vuint32(0,0,0,0,0,0,0,0,0,0,0,0), # EMTF+0-5, EMTF-0-5 # masked inputs # masked inputs are not used in the algo and are not in the readout - caloInputsMasked = cms.bool(False), + caloInputsMasked = cms.bool(False), # masks all 28 calo inputs maskedBmtfInputs = cms.vuint32(0,0,0,0,0,0,0,0,0,0,0,0), # BMTF 0-11 maskedOmtfInputs = cms.vuint32(0,0,0,0,0,0,0,0,0,0,0,0), # OMTF+0-5, OMTF-0-5 maskedEmtfInputs = cms.vuint32(0,0,0,0,0,0,0,0,0,0,0,0), # EMTF+0-5, EMTF-0-5 + # paths to external lookup tables + # The paths can be empty for MatchQual and SortRAnk LUTs, in which case + # the LUTs are generated on the fly by the parameters defined below. AbsIsoCheckMemLUTPath = cms.string(os.path.join(lut_dir, 'AbsIsoCheckMem.txt')), RelIsoCheckMemLUTPath = cms.string(os.path.join(lut_dir, 'RelIsoCheckMem.txt')), IdxSelMemPhiLUTPath = cms.string(os.path.join(lut_dir, 'IdxSelMemPhi.txt')), @@ -58,6 +68,8 @@ FEtaExtrapolationLUTPath = cms.string(os.path.join(lut_dir, 'EEtaExtrapolation_5eta_7pt_4out_0outshift_20170505.txt')), SortRankLUTPath = cms.string(os.path.join(lut_dir, 'SortRank.txt')), + # parameters for MatchQual LUTs if no external LUT is defined + # If a path to an external LUT is defined these parameters have no effect FwdPosSingleMatchQualLUTMaxDR = cms.double(0.05), FwdPosSingleMatchQualLUTfEta = cms.double(1), FwdPosSingleMatchQualLUTfPhi = cms.double(1), @@ -96,6 +108,8 @@ FONegMatchQualLUTfEtaCoarse = cms.double(1), FONegMatchQualLUTfPhi = cms.double(3), + # parameters for SortRank LUT if no path to an external LUT is defined + # If a path to an external LUT is defined these parameters have no effect SortRankLUTPtFactor = cms.uint32(1), # can be 0 or 1 SortRankLUTQualFactor = cms.uint32(4), # can be 0 to 34 ) diff --git a/L1Trigger/L1TMuon/python/simDigis_cff.py b/L1Trigger/L1TMuon/python/simDigis_cff.py index 23a260212041e..d52e32d4d41ea 100644 --- a/L1Trigger/L1TMuon/python/simDigis_cff.py +++ b/L1Trigger/L1TMuon/python/simDigis_cff.py @@ -96,10 +96,11 @@ ## GEM TPs from L1Trigger.L1TGEM.simGEMDigis_cff import * _run3_SimL1TMuonTask = SimL1TMuonTask.copy() -_run3_SimL1TMuonTask.add(simMuonGEMPadTask) +#_run3_SimL1TMuonTask.add(simMuonGEMPadTask) from Configuration.Eras.Modifier_run3_GEM_cff import run3_GEM -(stage2L1Trigger & run3_GEM).toReplaceWith( SimL1TMuonTask, _run3_SimL1TMuonTask ) +#(stage2L1Trigger & run3_GEM).toReplaceWith( SimL1TMuonTask, _run3_SimL1TMuonTask ) +(stage2L1Trigger & run3_GEM).toReplaceWith( SimL1TMuonTask, cms.Task(simMuonGEMPadTask,_run3_SimL1TMuonTask) ) ## ME0 TPs from L1Trigger.L1TGEM.me0TriggerDigis_cff import * diff --git a/L1Trigger/L1TMuon/test/dump_ugmt_luts.py b/L1Trigger/L1TMuon/test/dump_ugmt_luts.py index d170c582df3f9..d1e3108de581a 100644 --- a/L1Trigger/L1TMuon/test/dump_ugmt_luts.py +++ b/L1Trigger/L1TMuon/test/dump_ugmt_luts.py @@ -1,3 +1,7 @@ +# This can be used to generate uGMT LUTs from parameters in the fakeGmtParams_cff.py file +# or dump LUTs from the conditions DB when given a record+tag+(optional)snapshotTime combination +# The LUTs are dumped as .txt files in the lut_dump directory, which needs to be created before running. + import FWCore.ParameterSet.Config as cms process = cms.Process("L1MicroGMTEmulator") @@ -8,8 +12,26 @@ process.source = cms.Source("EmptySource") process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(1)) +## use this to produce LUTs from the config parameters in fakeGmtParams_cff process.load('L1Trigger.L1TMuon.fakeGmtParams_cff') +## use this to extract LUTs from the CondDB record + tag + snapshotTime(optional) +#from CondCore.CondDB.CondDB_cfi import CondDB +#CondDB.connect = cms.string("frontier://FrontierProd/CMS_CONDITIONS") +#process.l1ugmtdb = cms.ESSource("PoolDBESSource", +# CondDB, +# toGet = cms.VPSet( +# cms.PSet( +# record = cms.string('L1TMuonGlobalParamsRcd'), +# tag = cms.string("L1TMuonGlobalParams_Stage2v0_hlt"), +# #tag = cms.string("L1TMuonGlobalParams_static_v91.12"), +# #tag = cms.string("L1TMuonGlobalParams_static_v94.6.1"), +# #tag = cms.string("L1TMuonGlobalParams_Stage2v0_2018_mc"), +# #snapshotTime = cms.string("2017-09-20 23:59:59.000") +# ) +# ) +#) + process.dumper = cms.EDAnalyzer("L1TMicroGMTLUTDumper", out_directory = cms.string("lut_dump"), ) diff --git a/L1Trigger/L1TMuonBarrel/BuildFile.xml b/L1Trigger/L1TMuonBarrel/BuildFile.xml index 0479f012f00cd..18a9659ad941f 100644 --- a/L1Trigger/L1TMuonBarrel/BuildFile.xml +++ b/L1Trigger/L1TMuonBarrel/BuildFile.xml @@ -4,6 +4,7 @@ + diff --git a/L1Trigger/L1TMuonBarrel/interface/L1TMuonBarrelKalmanAlgo.h b/L1Trigger/L1TMuonBarrel/interface/L1TMuonBarrelKalmanAlgo.h index 2bb6c447aec8d..31b03f79d5166 100644 --- a/L1Trigger/L1TMuonBarrel/interface/L1TMuonBarrelKalmanAlgo.h +++ b/L1Trigger/L1TMuonBarrel/interface/L1TMuonBarrelKalmanAlgo.h @@ -38,10 +38,10 @@ class L1TMuonBarrelKalmanAlgo { int correctedPhiB(const L1MuKBMTCombinedStubRef&); void propagate(L1MuKBMTrack&); void updateEta(L1MuKBMTrack&, const L1MuKBMTCombinedStubRef&); - bool update(L1MuKBMTrack&, const L1MuKBMTCombinedStubRef&, int); + bool update(L1MuKBMTrack&, const L1MuKBMTCombinedStubRef&, int, int); bool updateOffline(L1MuKBMTrack&, const L1MuKBMTCombinedStubRef&); bool updateOffline1D(L1MuKBMTrack&, const L1MuKBMTCombinedStubRef&); - bool updateLUT(L1MuKBMTrack&, const L1MuKBMTCombinedStubRef&, int); + bool updateLUT(L1MuKBMTrack&, const L1MuKBMTCombinedStubRef&, int, int); void vertexConstraint(L1MuKBMTrack&); void vertexConstraintOffline(L1MuKBMTrack&); void vertexConstraintLUT(L1MuKBMTrack&); @@ -106,6 +106,26 @@ class L1TMuonBarrelKalmanAlgo { std::vector combos2_; std::vector combos1_; + //bits for fixed point precision + static const int BITSCURV = 14; + static const int BITSPHI = 12; + static const int BITSPHIB = 13; + static const int BITSPARAM = 14; + static const int GAIN_0 = 9; + static const int GAIN_0INT = 6; + static const int GAIN_4 = 9; + static const int GAIN_4INT = 4; + static const int GAIN_V0 = 9; + static const int GAIN_V0INT = 3; + + static const int GAIN2_0 = 12; + static const int GAIN2_0INT = 8; + static const int GAIN2_1 = 12; + static const int GAIN2_1INT = 4; + static const int GAIN2_4 = 12; + static const int GAIN2_4INT = 4; + static const int GAIN2_5 = 12; + static const int GAIN2_5INT = 0; //STUFF NOT USED IN THE FIRMWARE BUT ONLY FOR DEBUGGING /////////////////////////////////////////////////////// @@ -116,6 +136,9 @@ class L1TMuonBarrelKalmanAlgo { double pointResolutionPhi_; //point resolution for phiB double pointResolutionPhiB_; + std::vector pointResolutionPhiBH_; + std::vector pointResolutionPhiBL_; + //double pointResolutionPhiB_; //point resolution for vertex double pointResolutionVertex_; diff --git a/L1Trigger/L1TMuonBarrel/interface/L1TMuonBarrelKalmanLUTs.h b/L1Trigger/L1TMuonBarrel/interface/L1TMuonBarrelKalmanLUTs.h index d27d955929d08..ad722f49ab53a 100644 --- a/L1Trigger/L1TMuonBarrel/interface/L1TMuonBarrelKalmanLUTs.h +++ b/L1Trigger/L1TMuonBarrel/interface/L1TMuonBarrelKalmanLUTs.h @@ -12,14 +12,17 @@ class L1TMuonBarrelKalmanLUTs { ~L1TMuonBarrelKalmanLUTs(); std::vector trackGain(uint, uint, uint); - std::vector trackGain2(uint, uint, uint); + std::vector trackGain2(uint, uint, uint, uint, uint); std::pair vertexGain(uint, uint); uint coarseEta(uint, uint); private: TFile *lutFile_; std::map lut_; - std::map lut2_; + std::map lut2HH_; + std::map lut2LH_; + std::map lut2HL_; + std::map lut2LL_; std::map coarseEta_; }; diff --git a/L1Trigger/L1TMuonBarrel/python/simKBmtfDigis_cfi.py b/L1Trigger/L1TMuonBarrel/python/simKBmtfDigis_cfi.py index 6259b736a1da1..ead53e44bc03d 100644 --- a/L1Trigger/L1TMuonBarrel/python/simKBmtfDigis_cfi.py +++ b/L1Trigger/L1TMuonBarrel/python/simKBmtfDigis_cfi.py @@ -8,12 +8,12 @@ # eLoss = cms.vdouble(-2.85e-4,-6.21e-5,-1.26e-4,-1.23e-4), eLoss = cms.vdouble(+0.000765,0,0,0), - aPhi = cms.vdouble(1.942,0.03125,0.0273438,0.015625), - aPhiB = cms.vdouble(-1.508,-0.123047,-0.174805,-0.144531), + aPhi = cms.vdouble(1.942, .01511, .01476, .009799), + aPhiB = cms.vdouble(-1.508,-0.1237,-0.1496,-0.1333), aPhiBNLO = cms.vdouble(0.000331,0,0,0), - bPhi = cms.vdouble(-1,0.154297,0.173828,0.147461), - bPhiB = cms.vdouble(-1,1.15332,1.17285,1.14648), + bPhi = cms.vdouble(-1,.18245,.20898,.17286), + bPhiB = cms.vdouble(-1,1.18245,1.20898,1.17286), phiAt2 = cms.double(0.15918), etaLUT0 = cms.vdouble(8.946,7.508,6.279,6.399), etaLUT1 = cms.vdouble(0.159,0.116,0.088,0.128), @@ -23,6 +23,7 @@ chiSquareCutCurvMax = cms.vint32(2500,2500,2500,2500,2500), chiSquareCut = cms.vint32(126,126,126,126,126), + #vertex cuts trackComp = cms.vdouble(1.75,1.25,0.625,0.250), trackCompErr1 = cms.vdouble(2.0,2.0,2.0,2.0), @@ -43,6 +44,8 @@ mScatteringPhiB = cms.vdouble(7.22e-3,3.461e-3,4.447e-3,4.12e-3), pointResolutionPhi = cms.double(1.), pointResolutionPhiB = cms.double(500.), + pointResolutionPhiBH = cms.vdouble(151., 173., 155., 153.), + pointResolutionPhiBL = cms.vdouble(17866., 19306., 23984., 23746.), pointResolutionVertex = cms.double(1.) ) diff --git a/L1Trigger/L1TMuonBarrel/src/L1TMuonBarrelKalmanAlgo.cc b/L1Trigger/L1TMuonBarrel/src/L1TMuonBarrelKalmanAlgo.cc index 0909710653d4d..9df5d8f415998 100644 --- a/L1Trigger/L1TMuonBarrel/src/L1TMuonBarrelKalmanAlgo.cc +++ b/L1Trigger/L1TMuonBarrel/src/L1TMuonBarrelKalmanAlgo.cc @@ -1,5 +1,7 @@ #include #include "L1Trigger/L1TMuonBarrel/interface/L1TMuonBarrelKalmanAlgo.h" +#include "ap_int.h" +#include "ap_fixed.h" L1TMuonBarrelKalmanAlgo::L1TMuonBarrelKalmanAlgo(const edm::ParameterSet& settings) : verbose_(settings.getParameter("verbose")), @@ -29,11 +31,14 @@ L1TMuonBarrelKalmanAlgo::L1TMuonBarrelKalmanAlgo(const edm::ParameterSet& settin combos3_(settings.getParameter >("combos3")), combos2_(settings.getParameter >("combos2")), combos1_(settings.getParameter >("combos1")), + useOfflineAlgo_(settings.getParameter("useOfflineAlgo")), mScatteringPhi_(settings.getParameter >("mScatteringPhi")), mScatteringPhiB_(settings.getParameter >("mScatteringPhiB")), pointResolutionPhi_(settings.getParameter("pointResolutionPhi")), pointResolutionPhiB_(settings.getParameter("pointResolutionPhiB")), + pointResolutionPhiBH_(settings.getParameter >("pointResolutionPhiBH")), + pointResolutionPhiBL_(settings.getParameter >("pointResolutionPhiBL")), pointResolutionVertex_(settings.getParameter("pointResolutionVertex")) {} @@ -96,7 +101,7 @@ l1t::RegionalMuonCand L1TMuonBarrelKalmanAlgo::convertToBMTF(const L1MuKBMTrack& int quality = 12 | (rank(track) >> 6); - int dxy = abs(track.dxy()) >> 9; + int dxy = abs(track.dxy()) >> 8; if (dxy > 3) dxy = 3; @@ -324,12 +329,12 @@ void L1TMuonBarrelKalmanAlgo::propagate(L1MuKBMTrack& track) { //int offset=int(charge*eLoss_[step-1]*K*K); // if (fabs(offset)>4096) // offset=4096*offset/fabs(offset); - int charge = 1; if (K != 0) charge = K / fabs(K); int KBound = K; + if (KBound > 4095) KBound = 4095; if (KBound < -4095) @@ -353,25 +358,50 @@ void L1TMuonBarrelKalmanAlgo::propagate(L1MuKBMTrack& track) { KNew = K + deltaK; //phi propagation - int phi11 = fp_product(aPhi_[step - 1], K, 10); - int phi12 = fp_product(-bPhi_[step - 1], phiB, 10); + ap_fixed phi11 = ap_fixed(aPhi_[step - 1]) * ap_fixed(K); + ap_fixed phi12 = + ap_fixed(-bPhi_[step - 1]) * ap_fixed(phiB); + if (verbose_) { - printf("phi prop = %d* %f = %d, %d* %f =%d\n", K, aPhi_[step - 1], phi11, phiB, -bPhi_[step - 1], phi12); + printf("phi prop = %d * %f = %d, %d * %f = %d\n", + K, + ap_fixed(aPhi_[step - 1]).to_float(), + phi11.to_int(), + phiB, + ap_fixed(-bPhi_[step - 1]).to_float(), + phi12.to_int()); } - int phiNew = wrapAround(phi + phi11 + phi12, 2048); + int phiNew = ap_fixed(phi + phi11 + phi12); + //phiB propagation - int phiB11 = fp_product(aPhiB_[step - 1], K, 10); - int phiB12 = fp_product(bPhiB_[step - 1], phiB, 11); - int phiBNew = wrapAround(phiB11 + phiB12, 4096); + ap_fixed phiB11 = ap_fixed(aPhiB_[step - 1]) * ap_fixed(K); + ap_fixed phiB12 = + ap_ufixed(bPhiB_[step - 1]) * ap_fixed(phiB); + int phiBNew = ap_fixed<13, 13>(phiB11 + phiB12); if (verbose_) { - printf("phiB prop = %d* %f = %d, %d* %f =%d\n", K, aPhiB_[step - 1], phiB11, phiB, bPhiB_[step - 1], phiB12); + printf("phiB prop = %d * %f = %d, %d * %f = %d\n", + K, + ap_fixed(aPhiB_[step - 1]).to_float(), + phiB11.to_int(), + phiB, + ap_ufixed(bPhiB_[step - 1]).to_float(), + phiB12.to_int()); } //Only for the propagation to vertex we use the LUT for better precision and the full function if (step == 1) { int addr = KBound / 2; - phiBNew = wrapAround( - int(aPhiB_[step - 1] * addr / (1 + charge * aPhiBNLO_[step - 1] * addr)) + int(bPhiB_[step - 1] * phiB), 4096); + // Extra steps to mimic firmware for vertex prop + ap_ufixed<11, 11> dxyOffset = (int)fabs(aPhiB_[step - 1] * addr / (1 + charge * aPhiBNLO_[step - 1] * addr)); + ap_fixed<12, 12> DXY; + if (addr > 0) + DXY = -dxyOffset; + else + DXY = dxyOffset; + phiBNew = ap_fixed(DXY - ap_fixed(phiB)); + if (verbose_) { + printf("Vertex phiB prop = %d - %d = %d\n", DXY.to_int(), ap_fixed(phiB).to_int(), phiBNew); + } } /////////////////////////////////////////////////////// //Rest of the stuff is for the offline version only @@ -425,7 +455,7 @@ void L1TMuonBarrelKalmanAlgo::propagate(L1MuKBMTrack& track) { track.setCoordinates(step - 1, KNew, phiNew, phiBNew); } -bool L1TMuonBarrelKalmanAlgo::update(L1MuKBMTrack& track, const L1MuKBMTCombinedStubRef& stub, int mask) { +bool L1TMuonBarrelKalmanAlgo::update(L1MuKBMTrack& track, const L1MuKBMTCombinedStubRef& stub, int mask, int seedQual) { updateEta(track, stub); if (useOfflineAlgo_) { if (mask == 3 || mask == 5 || mask == 9 || mask == 6 || mask == 10 || mask == 12) @@ -434,7 +464,7 @@ bool L1TMuonBarrelKalmanAlgo::update(L1MuKBMTrack& track, const L1MuKBMTCombined return updateOffline1D(track, stub); } else - return updateLUT(track, stub, mask); + return updateLUT(track, stub, mask, seedQual); } bool L1TMuonBarrelKalmanAlgo::updateOffline(L1MuKBMTrack& track, const L1MuKBMTCombinedStubRef& stub) { @@ -461,7 +491,10 @@ bool L1TMuonBarrelKalmanAlgo::updateOffline(L1MuKBMTrack& track, const L1MuKBMTC R(0, 0) = pointResolutionPhi_; R(0, 1) = 0.0; R(1, 0) = 0.0; - R(1, 1) = pointResolutionPhiB_; + if (stub->quality() < 4) + R(1, 1) = pointResolutionPhiBL_[track.step() - 1]; + else + R(1, 1) = pointResolutionPhiBH_[track.step() - 1]; const std::vector& covLine = track.covariance(); L1MuKBMTrack::CovarianceMatrix cov(covLine.begin(), covLine.end()); @@ -484,6 +517,8 @@ bool L1TMuonBarrelKalmanAlgo::updateOffline(L1MuKBMTrack& track, const L1MuKBMTC track.setResidual(stub->stNum() - 1, fabs(phi - phiNew) + fabs(phiB - phiBNew) / 8); if (verbose_) { + printf("residual %d - %d = %d %d - %d = %d\n", phi, trackPhi, int(residual[0]), phiB, trackPhiB, int(residual[1])); + printf("Gains offline: %f %f %f %f\n", Gain(0, 0), Gain(0, 1), Gain(2, 0), Gain(2, 1)); printf(" K = %d + %f * %f + %f * %f\n", trackK, Gain(0, 0), residual(0), Gain(0, 1), residual(1)); printf(" phiB = %d + %f * %f + %f * %f\n", trackPhiB, Gain(2, 0), residual(0), Gain(2, 1), residual(1)); } @@ -502,7 +537,7 @@ bool L1TMuonBarrelKalmanAlgo::updateOffline(L1MuKBMTrack& track, const L1MuKBMTC c(2, 1) = covNew(2, 1); c(2, 2) = covNew(2, 2); if (verbose_) { - printf("Post Fit Covariance Matrix %f %f %f \n", cov(0, 0), cov(1, 1), cov(2, 2)); + printf("Post Fit Covariance Matrix %f %f %f\n", cov(0, 0), cov(1, 1), cov(2, 2)); } track.setCovariance(c); @@ -521,6 +556,9 @@ bool L1TMuonBarrelKalmanAlgo::updateOffline1D(L1MuKBMTrack& track, const L1MuKBM double residual = phi - trackPhi; + if (verbose_) + printf("residuals %d - %d = %d\n", phi, trackPhi, int(residual)); + Matrix13 H; H(0, 0) = 0.0; H(0, 1) = 1.0; @@ -536,6 +574,8 @@ bool L1TMuonBarrelKalmanAlgo::updateOffline1D(L1MuKBMTrack& track, const L1MuKBM Matrix31 Gain = cov * ROOT::Math::Transpose(H) / S; track.setKalmanGain(track.step(), fabs(trackK), Gain(0, 0), 0.0, Gain(1, 0), 0.0, Gain(2, 0), 0.0); + if (verbose_) + printf("Gains: %f %f\n", Gain(0, 0), Gain(2, 0)); int KNew = wrapAround(trackK + int(Gain(0, 0) * residual), 8192); int phiNew = wrapAround(trackPhi + residual, 8192); @@ -544,6 +584,10 @@ bool L1TMuonBarrelKalmanAlgo::updateOffline1D(L1MuKBMTrack& track, const L1MuKBM Matrix33 covNew = cov - Gain * (H * cov); L1MuKBMTrack::CovarianceMatrix c; + if (verbose_) { + printf("phiUpdate: %d %d\n", int(Gain(0, 0) * residual), int(Gain(2, 0) * residual)); + } + c(0, 0) = covNew(0, 0); c(0, 1) = covNew(0, 1); c(0, 2) = covNew(0, 2); @@ -560,7 +604,10 @@ bool L1TMuonBarrelKalmanAlgo::updateOffline1D(L1MuKBMTrack& track, const L1MuKBM return true; } -bool L1TMuonBarrelKalmanAlgo::updateLUT(L1MuKBMTrack& track, const L1MuKBMTCombinedStubRef& stub, int mask) { +bool L1TMuonBarrelKalmanAlgo::updateLUT(L1MuKBMTrack& track, + const L1MuKBMTCombinedStubRef& stub, + int mask, + int seedQual) { int trackK = track.curvature(); int trackPhi = track.positionAngle(); int trackPhiB = track.bendingAngle(); @@ -568,15 +615,18 @@ bool L1TMuonBarrelKalmanAlgo::updateLUT(L1MuKBMTrack& track, const L1MuKBMTCombi int phi = correctedPhi(stub, track.sector()); int phiB = correctedPhiB(stub); - if (stub->quality() < 4) - phiB = trackPhiB; - Vector2 residual; - int residualPhi = wrapAround(phi - trackPhi, 4096); - int residualPhiB = wrapAround(phiB - trackPhiB, 8192); + ap_fixed residualPhi = phi - trackPhi; + ap_fixed residualPhiB = phiB - trackPhiB; if (verbose_) - printf("residuals %d-%d=%d %d-%d=%d\n", phi, trackPhi, int(residualPhi), phiB, trackPhiB, int(residualPhiB)); + printf("residual %d - %d = %d %d - %d = %d\n", + phi, + trackPhi, + residualPhi.to_int(), + phiB, + trackPhiB, + residualPhiB.to_int()); uint absK = fabs(trackK); if (absK > 4095) @@ -590,36 +640,59 @@ bool L1TMuonBarrelKalmanAlgo::updateLUT(L1MuKBMTrack& track, const L1MuKBMTCombi GAIN[3] = 0.0; } else { - GAIN = lutService_->trackGain2(track.step(), track.hitPattern(), absK / 8); + GAIN = lutService_->trackGain2(track.step(), track.hitPattern(), absK / 8, seedQual, stub->quality()); } - if (verbose_) - printf("Gains:%d %f %f %f %f\n", absK / 4, GAIN[0], GAIN[1], GAIN[2], GAIN[3]); + if (verbose_) { + printf("Gains (fp): %f %f %f %f\n", GAIN[0], GAIN[1], GAIN[2], GAIN[3]); + if (!(mask == 3 || mask == 5 || mask == 9 || mask == 6 || mask == 10 || mask == 12)) + printf("Addr=%d gain0=%f gain4=-%f\n", + absK / 4, + ap_ufixed(GAIN[0]).to_float(), + ap_ufixed(GAIN[2]).to_float()); + else + printf("Addr=%d %f -%f %f %f\n", + absK / 4, + ap_fixed(GAIN[0]).to_float(), + ap_ufixed(GAIN[1]).to_float(), + ap_ufixed(GAIN[2]).to_float(), + ap_ufixed(GAIN[3]).to_float()); + } + track.setKalmanGain(track.step(), fabs(trackK), GAIN[0], GAIN[1], 1, 0, GAIN[2], GAIN[3]); - int k_0 = fp_product(GAIN[0], residualPhi, 3); - int k_1 = fp_product(GAIN[1], residualPhiB, 5); - int KNew = trackK + k_0 + k_1; + int KNew; + if (!(mask == 3 || mask == 5 || mask == 9 || mask == 6 || mask == 10 || mask == 12)) { + KNew = ap_fixed(ap_fixed(trackK) + + ap_ufixed(GAIN[0]) * residualPhi); + } else { + ap_fixed k11 = ap_fixed(GAIN[0]) * residualPhi; + ap_fixed k12 = ap_ufixed(GAIN[1]) * residualPhiB; + KNew = ap_fixed(ap_fixed(trackK) + k11 - k12); + } if (fabs(KNew) >= 8191) return false; KNew = wrapAround(KNew, 8192); int phiNew = phi; //different products for different firmware logic - int pbdouble_0 = fp_product(fabs(GAIN[2]), residualPhi, 9); - int pb_0 = fp_product(GAIN[2], residualPhi, 9); - int pb_1 = fp_product(GAIN[3], residualPhiB, 9); + ap_fixed pbdouble_0 = ap_ufixed(GAIN[2]) * residualPhi; + ap_fixed pb_1 = ap_ufixed(GAIN[3]) * residualPhiB; + ap_fixed pb_0 = ap_ufixed(GAIN[2]) * residualPhi; - if (verbose_) - printf("phiupdate: %d %d\n", pb_0, pb_1); + if (verbose_) { + printf("phiupdate %f %f %f\n", pb_0.to_float(), pb_1.to_float(), pbdouble_0.to_float()); + } int phiBNew; if (!(mask == 3 || mask == 5 || mask == 9 || mask == 6 || mask == 10 || mask == 12)) { - phiBNew = wrapAround(trackPhiB + pb_0, 4096); - if (fabs(trackPhiB + pb_0) >= 4095) + phiBNew = ap_fixed(ap_fixed(trackPhiB) - + ap_ufixed(GAIN[2]) * residualPhi); + + if (fabs(phiBNew) >= 4095) return false; } else { - phiBNew = wrapAround(trackPhiB + pb_1 - pbdouble_0, 4096); - if (fabs(trackPhiB + pb_1 - pbdouble_0) >= 4095) + phiBNew = ap_fixed(ap_fixed(trackPhiB) + pb_1 - pbdouble_0); + if (fabs(phiBNew) >= 4095) return false; } track.setCoordinates(track.step(), KNew, phiNew, phiBNew); @@ -687,11 +760,16 @@ void L1TMuonBarrelKalmanAlgo::vertexConstraintLUT(L1MuKBMTrack& track) { std::pair GAIN = lutService_->vertexGain(track.hitPattern(), absK / 2); track.setKalmanGain(track.step(), fabs(track.curvature()), GAIN.first, GAIN.second, -1); - int k_0 = fp_product(GAIN.first, int(residual), 7); - int KNew = wrapAround(track.curvature() + k_0, 8192); + ap_fixed k_0 = + -(ap_ufixed(fabs(GAIN.first))) * ap_fixed(residual); + int KNew = ap_fixed(k_0 + ap_fixed(track.curvature())); if (verbose_) { - printf("VERTEX GAIN(%d)= %f * %d = %d\n", absK / 2, GAIN.first, int(residual), k_0); + printf("VERTEX GAIN(%d)= -%f * %d = %d\n", + absK / 2, + ap_ufixed(fabs(GAIN.first)).to_float(), + ap_fixed(residual).to_int(), + k_0.to_int()); } int p_0 = fp_product(GAIN.second, int(residual), 7); @@ -739,6 +817,7 @@ std::pair L1TMuonBarrelKalmanAlgo::chain(const L1MuKBMTCombi const L1MuKBMTCombinedStubRefVector& stubs) { L1MuKBMTrackCollection pretracks; std::vector combinatorics; + int seedQual; switch (seed->stNum()) { case 1: combinatorics = combos1_; @@ -760,7 +839,7 @@ std::pair L1TMuonBarrelKalmanAlgo::chain(const L1MuKBMTCombi } L1MuKBMTrack nullTrack(seed, correctedPhi(seed, seed->scNum()), correctedPhiB(seed)); - + seedQual = seed->quality(); for (const auto& mask : combinatorics) { L1MuKBMTrack track(seed, correctedPhi(seed, seed->scNum()), correctedPhiB(seed)); int phiB = correctedPhiB(seed); @@ -802,8 +881,16 @@ std::pair L1TMuonBarrelKalmanAlgo::chain(const L1MuKBMTCombi covariance(1, 2) = 0; covariance(2, 0) = 0; covariance(2, 1) = 0; - covariance(2, 2) = float(pointResolutionPhiB_); + if (!(mask == 3 || mask == 5 || mask == 9 || mask == 6 || mask == 10 || mask == 12)) + covariance(2, 2) = float(pointResolutionPhiB_); + else { + if (seed->quality() < 4) + covariance(2, 2) = float(pointResolutionPhiBL_[seed->stNum() - 1]); + else + covariance(2, 2) = float(pointResolutionPhiBH_[seed->stNum() - 1]); + } track.setCovariance(covariance); + // if (verbose_) { printf("New Kalman fit staring at step=%d, phi=%d,phiB=%d with curvature=%d\n", @@ -864,7 +951,7 @@ std::pair L1TMuonBarrelKalmanAlgo::chain(const L1MuKBMTCombi if (track.step() > 0) if (getBit(mask, track.step() - 1)) { std::pair bestStub = match(seed, stubs, track.step()); - if ((!bestStub.first) || (!update(track, stubs[bestStub.second], mask))) + if ((!bestStub.first) || (!update(track, stubs[bestStub.second], mask, seedQual))) break; if (verbose_) { printf("updated Coordinates step:%d,phi=%d,phiB=%d,K=%d\n", @@ -899,7 +986,7 @@ std::pair L1TMuonBarrelKalmanAlgo::chain(const L1MuKBMTCombi printf("------------------------------------------------------\n"); } setFloatingPointValues(track, true); - //rset the coordinates at muon to include phi at station 2 + //set the coordinates at muon to include phi at station 2 track.setCoordinatesAtMuon(track.curvatureAtMuon(), phiAtStation2, track.phiBAtMuon()); track.setRank(rank(track)); if (verbose_) @@ -908,6 +995,7 @@ std::pair L1TMuonBarrelKalmanAlgo::chain(const L1MuKBMTCombi } } } + //Now for all the pretracks we need only one L1MuKBMTrackCollection cleaned = clean(pretracks, seed->stNum()); @@ -935,7 +1023,8 @@ bool L1TMuonBarrelKalmanAlgo::estimateChiSquare(L1MuKBMTrack& track) { uint delta = wrapAround(abs(diff1 + AK), 2048); chi = chi + delta; if (verbose_) - printf("Chi Square stub for track with coords=%d -> AK=%d stubCoords=%d diff=%d delta=%d\n", + printf("Chi Square stub for track with pattern=%d coords=%d -> AK=%d stubCoords=%d diff=%d delta=%d\n", + track.hitPattern(), coords, AK, stubCoords, @@ -954,7 +1043,6 @@ bool L1TMuonBarrelKalmanAlgo::estimateChiSquare(L1MuKBMTrack& track) { // // } track.setApproxChi2(chi); - for (uint i = 0; i < chiSquareCutPattern_.size(); ++i) { if (track.hitPattern() == chiSquareCutPattern_[i] && fabs(K) < chiSquareCutCurv_[i] && track.approxChi2() > chiSquareCut_[i]) @@ -974,18 +1062,43 @@ void L1TMuonBarrelKalmanAlgo::estimateCompatibility(L1MuKBMTrack& track) { uint stubSel = 1; if (track.stubs()[0]->quality() > track.stubs()[1]->quality()) stubSel = 0; - const L1MuKBMTCombinedStubRef& stub = track.stubs()[stubSel]; - int absK = fabs(K); - int diff = wrapAround(stub->phiB() - fp_product(trackComp_[stub->stNum() - 1], K, 9), 2048); - int delta = fabs(diff); - uint err = - wrapAround(trackCompErr1_[stub->stNum() - 1] + fp_product(trackCompErr2_[stub->stNum() - 1], absK, 9), 256); - track.setTrackCompatibility(delta / err); + if (verbose_) { + printf("stubsel %d phi=%d phiB=%d\n", stubSel, stub->phi(), stub->phiB()); + } + + ap_ufixed absK; + if (K < 0) + absK = -K; + else + absK = K; + + ap_fixed<12, 12> diff = ap_int<10>(stub->phiB()) - + ap_ufixed<5, 1>(trackComp_[stub->stNum() - 1]) * ap_fixed(K); + ap_ufixed<11, 11> delta; + if (diff.is_neg()) + delta = -diff; + else + delta = diff; + + ap_ufixed err = + ap_uint<3>(trackCompErr1_[stub->stNum() - 1]) + ap_ufixed<5, 0>(trackCompErr2_[stub->stNum() - 1]) * absK; + track.setTrackCompatibility(((int)delta) / ((int)err)); for (uint i = 0; i < trackCompPattern_.size(); ++i) { - int deltaMax = err * trackCompCut_[i]; - if ((track.hitPattern() == trackCompPattern_[i]) && (absK < trackCompCutCurv_[i]) && + int deltaMax = ap_ufixed(err * trackCompCut_[i]); + if (verbose_) { + if (track.hitPattern() == trackCompPattern_[i]) { + printf("delta = %d = abs(%d - %f*%d\n", delta.to_int(), stub->phiB(), trackComp_[stub->stNum() - 1], K); + printf("err = %d = %f + %f*%d\n", + err.to_int(), + trackCompErr1_[stub->stNum() - 1], + trackCompErr2_[stub->stNum() - 1], + absK.to_int()); + printf("deltaMax = %d = %d*%d\n", deltaMax, err.to_int(), trackCompCut_[i]); + } + } + if ((track.hitPattern() == trackCompPattern_[i]) && ((int)absK < trackCompCutCurv_[i]) && ((track.approxChi2() > chiSquareCutTight_[i]) || (delta > deltaMax))) { track.setCoordinatesAtVertex(8191, track.phiAtVertex(), track.dxy()); break; @@ -996,8 +1109,9 @@ void L1TMuonBarrelKalmanAlgo::estimateCompatibility(L1MuKBMTrack& track) { int L1TMuonBarrelKalmanAlgo::rank(const L1MuKBMTrack& track) { // int offset=0; uint chi = track.approxChi2() > 127 ? 127 : track.approxChi2(); - if (hitPattern(track) == customBitmask(0, 0, 1, 1)) + if (hitPattern(track) == customBitmask(0, 0, 1, 1)) { return 60; + } // return offset+(track.stubs().size()*2+track.quality())*80-track.approxChi2(); return 160 + (track.stubs().size()) * 20 - chi; } @@ -1139,12 +1253,10 @@ int L1TMuonBarrelKalmanAlgo::ptLUT(int K) { FK = FK * lsb; //step 1 -material and B-field - FK = 0.898 * FK / (1.0 - 0.6 * FK); - //step 2 -low Pt - FK = FK - 26.382 * FK * FK * FK * FK * FK; - //step 3 - misalignment - FK = FK - charge * 1.408e-3; - //Get to BMTF + FK = .8569 * FK / (1.0 + 0.1144 * FK); + //step 2 - misalignment + FK = FK - charge * 1.23e-03; + //Get to BMTF scale FK = FK / 1.17; int pt = 0; @@ -1154,8 +1266,8 @@ int L1TMuonBarrelKalmanAlgo::ptLUT(int K) { if (pt > 511) pt = 511; - if (pt < 6) - pt = 6; + if (pt < 8) + pt = 8; return pt; } @@ -1191,7 +1303,7 @@ L1MuKBMTrackCollection L1TMuonBarrelKalmanAlgo::clean(const L1MuKBMTrackCollecti int sel2 = infoRank[5] >= infoRank[6] ? 5 : 6; selected = infoRank[7] >= infoRank[sel2] ? 7 : sel2; } - if (seed == 2) //station 3 seeded + if (seed == 2) //station 2 seeded selected = 3; auto search = infoTrack.find(selected); @@ -1227,7 +1339,6 @@ void L1TMuonBarrelKalmanAlgo::calculateEta(L1MuKBMTrack& track) { } mask = (awheel << nstubs) | mask; track.setCoarseEta(sign * lutService_->coarseEta(pattern, mask)); - int sumweights = 0; int sums = 0; @@ -1239,7 +1350,6 @@ void L1TMuonBarrelKalmanAlgo::calculateEta(L1MuKBMTrack& track) { sumweights += rank; sums += rank * stub->eta1(); } - //0.5 0.332031 0.25 0.199219 0.164063 float factor; if (sumweights == 1) @@ -1276,15 +1386,12 @@ int L1TMuonBarrelKalmanAlgo::phiAt2(const L1MuKBMTrack& track) { if (stub->stNum() == 2) return correctedPhi(stub, track.sector()); - int phi = track.phiAtMuon(); - int phiB = track.phiBAtMuon(); + ap_fixed phi = track.phiAtMuon(); + ap_fixed phiB = track.phiBAtMuon(); + ap_fixed phiAt2 = phiAt2_; + int phiNew = ap_fixed(phi + phiAt2 * phiB); - int phiNew = phi + fp_product(phiAt2_, phiB, 10); if (verbose_) printf("Phi at second station=%d\n", phiNew); - if (phiNew > 4095) - phiNew = 4095; - if (phiNew < -4096) - phiNew = -4096; return phiNew; } diff --git a/L1Trigger/L1TMuonBarrel/src/L1TMuonBarrelKalmanLUTs.cc b/L1Trigger/L1TMuonBarrel/src/L1TMuonBarrelKalmanLUTs.cc index 1dbaf3f353c3c..7dbed4fb1f88d 100644 --- a/L1Trigger/L1TMuonBarrel/src/L1TMuonBarrelKalmanLUTs.cc +++ b/L1Trigger/L1TMuonBarrel/src/L1TMuonBarrelKalmanLUTs.cc @@ -25,12 +25,33 @@ L1TMuonBarrelKalmanLUTs::L1TMuonBarrelKalmanLUTs(const std::string& filename) { lut_[14] = (TH1*)lutFile_->Get("gain_14_0"); lut_[15] = (TH1*)lutFile_->Get("gain_15_0"); - lut2_[3 * 64 + 8] = (TH1*)lutFile_->Get("gain2_8_3"); - lut2_[2 * 64 + 8] = (TH1*)lutFile_->Get("gain2_8_2"); - lut2_[2 * 64 + 4] = (TH1*)lutFile_->Get("gain2_4_2"); - lut2_[1 * 64 + 8] = (TH1*)lutFile_->Get("gain2_8_1"); - lut2_[1 * 64 + 4] = (TH1*)lutFile_->Get("gain2_4_1"); - lut2_[1 * 64 + 2] = (TH1*)lutFile_->Get("gain2_2_1"); + lut2HH_[3 * 64 + 8] = (TH1*)lutFile_->Get("gain2_8_3_HH"); + lut2HH_[2 * 64 + 8] = (TH1*)lutFile_->Get("gain2_8_2_HH"); + lut2HH_[2 * 64 + 4] = (TH1*)lutFile_->Get("gain2_4_2_HH"); + lut2HH_[1 * 64 + 8] = (TH1*)lutFile_->Get("gain2_8_1_HH"); + lut2HH_[1 * 64 + 4] = (TH1*)lutFile_->Get("gain2_4_1_HH"); + lut2HH_[1 * 64 + 2] = (TH1*)lutFile_->Get("gain2_2_1_HH"); + + lut2LH_[3 * 64 + 8] = (TH1*)lutFile_->Get("gain2_8_3_LH"); + lut2LH_[2 * 64 + 8] = (TH1*)lutFile_->Get("gain2_8_2_LH"); + lut2LH_[2 * 64 + 4] = (TH1*)lutFile_->Get("gain2_4_2_LH"); + lut2LH_[1 * 64 + 8] = (TH1*)lutFile_->Get("gain2_8_1_LH"); + lut2LH_[1 * 64 + 4] = (TH1*)lutFile_->Get("gain2_4_1_LH"); + lut2LH_[1 * 64 + 2] = (TH1*)lutFile_->Get("gain2_2_1_LH"); + + lut2HL_[3 * 64 + 8] = (TH1*)lutFile_->Get("gain2_8_3_HL"); + lut2HL_[2 * 64 + 8] = (TH1*)lutFile_->Get("gain2_8_2_HL"); + lut2HL_[2 * 64 + 4] = (TH1*)lutFile_->Get("gain2_4_2_HL"); + lut2HL_[1 * 64 + 8] = (TH1*)lutFile_->Get("gain2_8_1_HL"); + lut2HL_[1 * 64 + 4] = (TH1*)lutFile_->Get("gain2_4_1_HL"); + lut2HL_[1 * 64 + 2] = (TH1*)lutFile_->Get("gain2_2_1_HL"); + + lut2LL_[3 * 64 + 8] = (TH1*)lutFile_->Get("gain2_8_3_LL"); + lut2LL_[2 * 64 + 8] = (TH1*)lutFile_->Get("gain2_8_2_LL"); + lut2LL_[2 * 64 + 4] = (TH1*)lutFile_->Get("gain2_4_2_LL"); + lut2LL_[1 * 64 + 8] = (TH1*)lutFile_->Get("gain2_8_1_LL"); + lut2LL_[1 * 64 + 4] = (TH1*)lutFile_->Get("gain2_4_1_LL"); + lut2LL_[1 * 64 + 2] = (TH1*)lutFile_->Get("gain2_2_1_LL"); coarseEta_[3] = (TH1*)lutFile_->Get("coarseEta_3"); coarseEta_[5] = (TH1*)lutFile_->Get("coarseEta_5"); @@ -56,18 +77,29 @@ std::vector L1TMuonBarrelKalmanLUTs::trackGain(uint step, uint bitmask, u std::vector gain(4, 0.0); const TH1* h = lut_[64 * step + bitmask]; gain[0] = h->GetBinContent(K + 1); - gain[2] = -h->GetBinContent(1024 + K + 1); + gain[2] = h->GetBinContent(1024 + K + 1); return gain; } -std::vector L1TMuonBarrelKalmanLUTs::trackGain2(uint step, uint bitmask, uint K) { +std::vector L1TMuonBarrelKalmanLUTs::trackGain2(uint step, uint bitmask, uint K, uint qual1, uint qual2) { std::vector gain(4, 0.0); // printf("Track gain %d %d %d\n",step,bitmask,K); - const TH1* h = lut2_[64 * step + bitmask]; + const TH1* h; + if (qual1 < 4) { + if (qual2 < 4) + h = lut2LL_[64 * step + bitmask]; + else + h = lut2LH_[64 * step + bitmask]; + } else { + if (qual2 < 4) + h = lut2HL_[64 * step + bitmask]; + else + h = lut2HH_[64 * step + bitmask]; + } gain[0] = h->GetBinContent(K + 1); gain[1] = h->GetBinContent(512 + K + 1); - gain[2] = -h->GetBinContent(2 * 512 + K + 1); + gain[2] = h->GetBinContent(2 * 512 + K + 1); gain[3] = h->GetBinContent(3 * 512 + K + 1); return gain; } diff --git a/L1Trigger/L1TMuonBarrel/src/L1TMuonBarrelKalmanRegionModule.cc b/L1Trigger/L1TMuonBarrel/src/L1TMuonBarrelKalmanRegionModule.cc index 5b9095269f061..d2e25fe102a5a 100644 --- a/L1Trigger/L1TMuonBarrel/src/L1TMuonBarrelKalmanRegionModule.cc +++ b/L1Trigger/L1TMuonBarrel/src/L1TMuonBarrelKalmanRegionModule.cc @@ -80,6 +80,11 @@ L1MuKBMTrackCollection L1TMuonBarrelKalmanRegionModule::process(L1TMuonBarrelKal for (const auto& seed : seeds) { std::pair trackInfo = trackMaker->chain(seed, stubs); + //printf("Kalman Track %d valid=%d tag=%d rank=%d charge=%d pt=%f eta=%f phi=%f curvature=%d curvature STA =%d stubs=%d chi2=%d pts=%f %f pattern=%d\n",seed->stNum(),trackInfo.first, trackInfo.second.stubs()[0]->tag(),trackInfo.second.rank(),trackInfo.second.charge(),trackInfo.second.pt(),trackInfo.second.eta(),trackInfo.second.phi(),trackInfo.second.curvatureAtVertex(),trackInfo.second.curvatureAtMuon(),int(trackInfo.second.stubs().size()),trackInfo.second.approxChi2(),trackInfo.second.pt(),trackInfo.second.ptUnconstrained(),trackInfo.second.hitPattern()); + + L1MuKBMTrack nullTrack(seed, seed->phi(), 8 * seed->phiB()); + nullTrack.setPtEtaPhi(0, 0, 0); + nullTrack.setRank(0); if (trackInfo.first) { if (seed->stNum() == 2) pretracks2.push_back(trackInfo.second); @@ -87,18 +92,73 @@ L1MuKBMTrackCollection L1TMuonBarrelKalmanRegionModule::process(L1TMuonBarrelKal pretracks3.push_back(trackInfo.second); if (seed->stNum() == 4) pretracks4.push_back(trackInfo.second); + } else { + if (seed->stNum() == 2) + pretracks2.push_back(nullTrack); + if (seed->stNum() == 3) + pretracks3.push_back(nullTrack); + if (seed->stNum() == 4) + pretracks4.push_back(nullTrack); + } + } + L1MuKBMTrack nullTrack; + nullTrack.setPtEtaPhi(0, 0, 0); + nullTrack.setRank(0); + // All pretracks must have trackL and trackH like firmware + // Swap trackH and trackL for seeds 2/3 to mimic firmware + if (pretracks2.size() < 2) { + if (pretracks2.empty()) { // if no tracks, set trackH and trackL to null + pretracks2.push_back(nullTrack); + pretracks2.push_back(nullTrack); + } else { // otherwise add nulltrack for trackH or trackL + if (pretracks2[0].stubs()[0]->tag() == 0) + pretracks2.push_back(nullTrack); + else + pretracks2.insert(pretracks2.begin(), nullTrack); } } - //for (const auto& track1 :pretracks2) - // printf("SEED=2 Kalman Track charge=%d pt=%f eta=%f phi=%f curvature=%d curvature STA =%d stubs=%d chi2=%d pts=%f %f pattern=%d\n",track1.charge(),track1.pt(),track1.eta(),track1.phi(),track1.curvatureAtVertex(),track1.curvatureAtMuon(),int(track1.stubs().size()),track1.approxChi2(),track1.pt(),track1.ptUnconstrained(),track1.hitPattern()); + std::swap(pretracks2[0], pretracks2[1]); - //for (const auto& track1 :pretracks3) - // printf("SEED=3 Kalman Track charge=%d pt=%f eta=%f phi=%f curvature=%d curvature STA =%d stubs=%d chi2=%d pts=%f %f pattern=%d\n",track1.charge(),track1.pt(),track1.eta(),track1.phi(),track1.curvatureAtVertex(),track1.curvatureAtMuon(),int(track1.stubs().size()),track1.approxChi2(),track1.pt(),track1.ptUnconstrained(),track1.hitPattern()); + if (pretracks3.size() < 2) { + if (pretracks3.empty()) { + pretracks3.push_back(nullTrack); + pretracks3.push_back(nullTrack); + } else { + if (pretracks3[0].stubs()[0]->tag() == 0) + pretracks3.push_back(nullTrack); + else + pretracks3.insert(pretracks3.begin(), nullTrack); + } + } + std::swap(pretracks3[0], pretracks3[1]); - //for (const auto& track1 :pretracks4) - // printf("SEED=4 Kalman Track charge=%d pt=%f eta=%f phi=%f curvature=%d curvature STA =%d stubs=%d chi2=%d pts=%f %f pattern=%d\n",track1.charge(),track1.pt(),track1.eta(),track1.phi(),track1.curvatureAtVertex(),track1.curvatureAtMuon(),int(track1.stubs().size()),track1.approxChi2(),track1.pt(),track1.ptUnconstrained(),track1.hitPattern()); + if (pretracks4.size() < 2) { + if (pretracks4.empty()) { + pretracks4.push_back(nullTrack); + pretracks4.push_back(nullTrack); + } else { + if (pretracks4[0].stubs()[0]->tag() == 0) + pretracks4.push_back(nullTrack); + else + pretracks4.insert(pretracks4.begin(), nullTrack); + } + } + + /* + printf("SEED 2\n"); + for (const auto& track1 :pretracks2){ + printf(" Kalman Track rank=%d charge=%d pt=%f eta=%f phi=%f curvature=%d curvature STA =%d stubs=%d chi2=%d pts=%f %f pattern=%d\n",track1.rank(),track1.charge(),track1.pt(),track1.eta(),track1.phi(),track1.curvatureAtVertex(),track1.curvatureAtMuon(),int(track1.stubs().size()),track1.approxChi2(),track1.pt(),track1.ptUnconstrained(),track1.hitPattern()); + } + printf("SEED 3\n"); + for (const auto& track1 :pretracks3){ + printf(" Kalman Track rank=%d charge=%d pt=%f eta=%f phi=%f curvature=%d curvature STA =%d stubs=%d chi2=%d pts=%f %f pattern=%d\n",track1.rank(),track1.charge(),track1.pt(),track1.eta(),track1.phi(),track1.curvatureAtVertex(),track1.curvatureAtMuon(),int(track1.stubs().size()),track1.approxChi2(),track1.pt(),track1.ptUnconstrained(),track1.hitPattern()); + } + printf("SEED 4\n"); + for (const auto& track1 :pretracks4){ + printf(" Kalman Track rank=%d charge=%d pt=%f eta=%f phi=%f curvature=%d curvature STA =%d stubs=%d chi2=%d pts=%f %f pattern=%d\n",track1.rank(),track1.charge(),track1.pt(),track1.eta(),track1.phi(),track1.curvatureAtVertex(),track1.curvatureAtMuon(),int(track1.stubs().size()),track1.approxChi2(),track1.pt(),track1.ptUnconstrained(),track1.hitPattern()); + } + */ - // trackMaker->resolveEtaUnit(pretracks); L1MuKBMTrackCollection out = cleanRegion(pretracks2, pretracks3, pretracks4); if (verbose_) { printf(" -----Sector Processor Kalman Tracks-----\n"); @@ -123,24 +183,29 @@ L1MuKBMTrackCollection L1TMuonBarrelKalmanRegionModule::selfClean(const L1MuKBMT L1MuKBMTrackCollection out; for (uint i = 0; i < tracks.size(); ++i) { - bool keep = true; - + //bool keep = true; + L1MuKBMTrack temp = tracks[i]; for (uint j = 0; j < tracks.size(); ++j) { if (i == j) continue; if (tracks[i].overlapTrack(tracks[j])) { if (tracks[i].rank() < tracks[j].rank()) { - keep = false; + //keep = false; + temp.setPtEtaPhi(0, 0, 0); + temp.setRank(0); } else if (tracks[i].rank() == tracks[j].rank()) { //if same rank prefer seed that is high - if (!tracks[j].stubs()[0]->tag()) - keep = false; + if (!tracks[j].stubs()[0]->tag()) { + //keep = false; + temp.setPtEtaPhi(0, 0, 0); + temp.setRank(0); + } } } } - - if (keep) - out.push_back(tracks[i]); + out.push_back(temp); + //if (keep) + //out.push_back(tracks[i]); } return out; @@ -151,17 +216,20 @@ L1MuKBMTrackCollection L1TMuonBarrelKalmanRegionModule::cleanHigher(const L1MuKB L1MuKBMTrackCollection out; for (uint i = 0; i < tracks1.size(); ++i) { - bool keep = true; - + //bool keep = true; + L1MuKBMTrack temp = tracks1[i]; for (uint j = 0; j < tracks2.size(); ++j) { if (tracks1[i].overlapTrack(tracks2[j])) { if (tracks1[i].rank() <= tracks2[j].rank()) { - keep = false; + //keep = false; + temp.setPtEtaPhi(0, 0, 0); + temp.setRank(0); } } } - if (keep) - out.push_back(tracks1[i]); + out.push_back(temp); + //if (keep) + // out.push_back(tracks1[i]); } return out; @@ -172,17 +240,20 @@ L1MuKBMTrackCollection L1TMuonBarrelKalmanRegionModule::cleanLower(const L1MuKBM L1MuKBMTrackCollection out; for (uint i = 0; i < tracks1.size(); ++i) { - bool keep = true; - + //bool keep = true; + L1MuKBMTrack temp = tracks1[i]; for (uint j = 0; j < tracks2.size(); ++j) { if (tracks1[i].overlapTrack(tracks2[j])) { if (tracks1[i].rank() < tracks2[j].rank()) { - keep = false; + //keep = false; + temp.setPtEtaPhi(0, 0, 0); + temp.setRank(0); } } } - if (keep) - out.push_back(tracks1[i]); + out.push_back(temp); + //if (keep) + // out.push_back(tracks1[i]); } return out; @@ -191,6 +262,7 @@ L1MuKBMTrackCollection L1TMuonBarrelKalmanRegionModule::cleanLower(const L1MuKBM L1MuKBMTrackCollection L1TMuonBarrelKalmanRegionModule::sort4(const L1MuKBMTrackCollection& in) { L1MuKBMTrackCollection out; //partial sort like in firmwarE (bitonic) + if (in.size() <= 2) return in; else if (in.size() == 3) { @@ -268,7 +340,6 @@ L1MuKBMTrackCollection L1TMuonBarrelKalmanRegionModule::sort4(const L1MuKBMTrack out.push_back(s3_1); out.push_back(s3_2); } - return out; } @@ -281,32 +352,24 @@ L1MuKBMTrackCollection L1TMuonBarrelKalmanRegionModule::cleanRegion(const L1MuKB L1MuKBMTrackCollection cleaned23 = cleanHigher(cleaned2, tracks3); L1MuKBMTrackCollection cleaned32 = cleanLower(cleaned3, tracks2); - //printf("Cleaned sizes = 2=%d 3=%d 23=%d 32=%d \n",int(cleaned2.size()),int(cleaned3.size()),int(cleaned23.size()),int(cleaned32.size())); - //merge 2,3 L1MuKBMTrackCollection step1; - - if (!cleaned32.empty()) - step1.insert(step1.end(), cleaned32.begin(), cleaned32.end()); if (!cleaned23.empty()) step1.insert(step1.end(), cleaned23.begin(), cleaned23.end()); + if (!cleaned32.empty()) + step1.insert(step1.end(), cleaned32.begin(), cleaned32.end()); //take the best 2 L1MuKBMTrackCollection sorted23 = sort4(step1); - // printf("Sorted 23 =%d\n",int(sorted23.size())); //Now clean the tracks 4 between them L1MuKBMTrackCollection cleaned4 = selfClean(tracks4); - // printf("Cleaned4 =%d\n",int(cleaned4.size())); //Now clean the 23 tracks from tracks4 L1MuKBMTrackCollection cleanedSorted23 = cleanHigher(sorted23, tracks4); - // printf("Cleaned23 from 4 =%d\n",int(cleanedSorted23.size())); - //Now clean the tracks4 from sorted 23 L1MuKBMTrackCollection cleanedSorted4 = cleanLower(cleaned4, sorted23); - // printf("Cleaned4 from 23 =%d\n",int(cleanedSorted4.size())); //Now merge all of those L1MuKBMTrackCollection step2; @@ -317,5 +380,23 @@ L1MuKBMTrackCollection L1TMuonBarrelKalmanRegionModule::cleanRegion(const L1MuKB step2.insert(step2.end(), cleanedSorted23.begin(), cleanedSorted23.end()); L1MuKBMTrackCollection out = sort4(step2); + // Verbose statements: + /* + printf("tracks 1-4\n"); + for (const auto& track1 :step1) + printf(" rank=%d charge=%d pt=%f eta=%f phi=%f curvature=%d curvature STA =%d stubs=%d chi2=%d pts=%f %f pattern=%d\n",track1.rank(),track1.charge(),track1.pt(),track1.eta(),track1.phi(),track1.curvatureAtVertex(),track1.curvatureAtMuon(),int(track1.stubs().size()),track1.approxChi2(),track1.pt(),track1.ptUnconstrained(),track1.hitPattern()); + + printf("sorted1\n"); + for (const auto& track1 :sorted23) + printf(" rank=%d charge=%d pt=%f eta=%f phi=%f curvature=%d curvature STA =%d stubs=%d chi2=%d pts=%f %f pattern=%d\n",track1.rank(),track1.charge(),track1.pt(),track1.eta(),track1.phi(),track1.curvatureAtVertex(),track1.curvatureAtMuon(),int(track1.stubs().size()),track1.approxChi2(),track1.pt(),track1.ptUnconstrained(),track1.hitPattern()); + + printf("track 5-8\n"); + for (const auto& track1 :step2) + printf(" rank=%d charge=%d pt=%f eta=%f phi=%f curvature=%d curvature STA =%d stubs=%d chi2=%d pts=%f %f pattern=%d\n",track1.rank(),track1.charge(),track1.pt(),track1.eta(),track1.phi(),track1.curvatureAtVertex(),track1.curvatureAtMuon(),int(track1.stubs().size()),track1.approxChi2(),track1.pt(),track1.ptUnconstrained(),track1.hitPattern()); + + printf("OUTPUT\n"); + for (const auto& track1 :out) + printf(" rank=%d charge=%d pt=%f eta=%f phi=%f curvature=%d curvature STA =%d stubs=%d chi2=%d pts=%f %f pattern=%d\n",track1.rank(),track1.charge(),track1.pt(),track1.eta(),track1.phi(),track1.curvatureAtVertex(),track1.curvatureAtMuon(),int(track1.stubs().size()),track1.approxChi2(),track1.pt(),track1.ptUnconstrained(),track1.hitPattern()); + */ return out; } diff --git a/L1Trigger/L1TMuonBarrel/src/L1TMuonBarrelKalmanSectorProcessor.cc b/L1Trigger/L1TMuonBarrel/src/L1TMuonBarrelKalmanSectorProcessor.cc index 9c28428153de5..66878bca1c5d7 100644 --- a/L1Trigger/L1TMuonBarrel/src/L1TMuonBarrelKalmanSectorProcessor.cc +++ b/L1Trigger/L1TMuonBarrel/src/L1TMuonBarrelKalmanSectorProcessor.cc @@ -223,6 +223,7 @@ L1MuKBMTrackCollection L1TMuonBarrelKalmanSectorProcessor::cleanNeighbor(const L L1MuKBMTrackCollection out; for (const auto& track1 : coll1) { + /* if (verbose_) printf( "Pre Track charge=%d pt=%f eta=%f phi=%f curvature=%d curvature STA =%d stubs=%d bitmask=%d rank=%d chi=%d " @@ -239,7 +240,7 @@ L1MuKBMTrackCollection L1TMuonBarrelKalmanSectorProcessor::cleanNeighbor(const L track1.approxChi2(), track1.pt(), track1.ptUnconstrained()); - + */ bool keep = true; for (const auto& track2 : coll2) { if (!track1.overlapTrack(track2)) @@ -253,6 +254,12 @@ L1MuKBMTrackCollection L1TMuonBarrelKalmanSectorProcessor::cleanNeighbor(const L } if (keep) out.push_back(track1); + else { + L1MuKBMTrack temp = track1; + temp.setPtEtaPhi(0, 0, 0); + temp.setRank(0); + out.push_back(temp); + } } return out; @@ -292,6 +299,12 @@ L1MuKBMTrackCollection L1TMuonBarrelKalmanSectorProcessor::cleanNeighbors(const if (keep) out.push_back(track1); + else { + L1MuKBMTrack temp = track1; + temp.setPtEtaPhi(0, 0, 0); + temp.setRank(0); + out.push_back(temp); + } } return out; diff --git a/L1Trigger/L1TMuonBarrel/src/L1TMuonBarrelKalmanStubProcessor.cc b/L1Trigger/L1TMuonBarrel/src/L1TMuonBarrelKalmanStubProcessor.cc index 394c0ff6d6890..bc2c52d5dffd7 100644 --- a/L1Trigger/L1TMuonBarrel/src/L1TMuonBarrelKalmanStubProcessor.cc +++ b/L1Trigger/L1TMuonBarrel/src/L1TMuonBarrelKalmanStubProcessor.cc @@ -301,7 +301,8 @@ void L1TMuonBarrelKalmanStubProcessor::makeInputPattern(const L1MuDTChambPhConta } else { os << "-2048 0 0 0 15 "; } - const L1MuDTChambPhDigi* seg8 = phiContainer->chPhiSegm2(wheel, 4, previousSector, 1); + //const L1MuDTChambPhDigi* seg8 = phiContainer->chPhiSegm2(wheel, 4, previousSector, 1); + const L1MuDTChambPhDigi* seg8 = phiContainer->chPhiSegm2(wheel, 4, previousSector, -1); if (seg8 && seg8->phi() > 111) { os << seg8->phi() - 2144 << " " << seg8->phiB() << " " << seg8->code() << " 1 5 "; } else { diff --git a/L1Trigger/L1TMuonBarrel/test/kalmanTools/createGains.py b/L1Trigger/L1TMuonBarrel/test/kalmanTools/createGains.py index 9290cccd48103..494d26ca700ab 100644 --- a/L1Trigger/L1TMuonBarrel/test/kalmanTools/createGains.py +++ b/L1Trigger/L1TMuonBarrel/test/kalmanTools/createGains.py @@ -20,8 +20,9 @@ def fetchKMTF(event,etaMax=0.83,chi2=800000,dxyCut=100000): ####Save the Kalman Gains for LUTs kalmanGain={} +kalmanGain2H={} +kalmanGain2L={} kalmanGain2={} - for track in [3,5,6,7,9,10,11,12,13,14,15]: for station in [3,2,1]: if getBit(track,station-1)==0: @@ -33,18 +34,27 @@ def fetchKMTF(event,etaMax=0.83,chi2=800000,dxyCut=100000): if track in [3,5,6,9,10,12]: if not (partialMask in kalmanGain2.keys()): kalmanGain2[partialMask] = {} - kalmanGain2[partialMask][station] = {} + if not (partialMask in kalmanGain2H.keys()): + kalmanGain2H[partialMask] = {} + if not (partialMask in kalmanGain2L.keys()): + kalmanGain2L[partialMask] = {} + kalmanGain2[partialMask][station]={} + for q1 in ['H', 'L']: + kalmanGain2[partialMask][station][q1]={} + for q2 in ['H', 'L']: + kalmanGain2[partialMask][station][q1][q2]={} + + kalmanGain2[partialMask][station][q1][q2][0]=ROOT.TH2D("gain2_{track}_{station}_0_{q1}{q2}".format(track=partialMask,station=station,q1=q1,q2=q2),"h",64,0,512,256*2,-100*2,100*2) + kalmanGain2[partialMask][station][q1][q2][1]=ROOT.TH2D("gain2_{track}_{station}_1_{q1}{q2}".format(track=partialMask,station=station,q1=q1,q2=q2),"h",64,0,512,256*4,-8*4,8*4) + kalmanGain2[partialMask][station][q1][q2][4]=ROOT.TH2D("gain2_{track}_{station}_4_{q1}{q2}".format(track=partialMask,station=station,q1=q1,q2=q2),"h",64,0,512,256*2,-15*2,0) + kalmanGain2[partialMask][station][q1][q2][5]=ROOT.TH2D("gain2_{track}_{station}_5_{q1}{q2}".format(track=partialMask,station=station,q1=q1,q2=q2),"h",64,0,512,256*2,0,1*2) - kalmanGain2[partialMask][station][0]=ROOT.TH2D("gain2_{track}_{station}_0".format(track=partialMask,station=station),"h",64,0,512,128,-100,100) - kalmanGain2[partialMask][station][1]=ROOT.TH2D("gain2_{track}_{station}_1".format(track=partialMask,station=station),"h",64,0,512,128,-8,8) - kalmanGain2[partialMask][station][4]=ROOT.TH2D("gain2_{track}_{station}_4".format(track=partialMask,station=station),"h",64,0,512,128,-15,0) - kalmanGain2[partialMask][station][5]=ROOT.TH2D("gain2_{track}_{station}_5".format(track=partialMask,station=station),"h",64,0,512,128,0,1) else: if not (partialMask in kalmanGain.keys()): kalmanGain[partialMask] = {} kalmanGain[partialMask][station] = {} - kalmanGain[partialMask][station][0]=ROOT.TH2D("gain_{track}_{station}_0".format(track=partialMask,station=station),"h",64,0,1024,128,-100,100) - kalmanGain[partialMask][station][4]=ROOT.TH2D("gain_{track}_{station}_4".format(track=partialMask,station=station),"h",64,0,1024,128,-15,0) + kalmanGain[partialMask][station][0]=ROOT.TH2D("gain_{track}_{station}_0".format(track=partialMask,station=station),"h",64,0,1024,256,-100,100) + kalmanGain[partialMask][station][4]=ROOT.TH2D("gain_{track}_{station}_4".format(track=partialMask,station=station),"h",64,0,1024,256,-15,0) for station in [0]: @@ -60,37 +70,44 @@ def fetchKMTF(event,etaMax=0.83,chi2=800000,dxyCut=100000): - -events=Events(['lutEvents.root']) -counter=-1 -for event in events: - counter=counter+1 - #fetch stubs - kmtf=[] - kmtf = fetchKMTF(event,1.5,1000000,1000000) - ##Fill histograms and rates - for track in kmtf: - mask = track.hitPattern() - for station in [3,2,1]: - if not getBit(mask,station-1): - continue - gain = track.kalmanGain(station) - partialMask = mask & (15<= 4: + q1='H' + for station in [3,2,1]: + if not getBit(mask,station-1): + continue + gain = track.kalmanGain(station) + partialMask = mask & (15<= 4: + q2 = 'H' + if mask in [3,5,6,9,10,12]: + for element in [0,1,4,5]: + kalmanGain2[partialMask][station][q1][q2][element].Fill(gain[0]/8,gain[element+1]) + else: + for element in [0,4]: + kalmanGain[partialMask][station][element].Fill(gain[0]/4,gain[element+1]) + + for station in [0]: + gain = track.kalmanGain(station) + kalmanGain[mask][station][0].Fill(gain[0]/2,gain[1]) + kalmanGain[mask][station][1].Fill(gain[0]/2,gain[2]) f=ROOT.TFile("gains.root","RECREATE") @@ -103,10 +120,10 @@ def fetchKMTF(event,etaMax=0.83,chi2=800000,dxyCut=100000): for k in kalmanGain2.keys(): for s in kalmanGain2[k].keys(): - for e in kalmanGain2[k][s].keys(): - kalmanGain2[k][s][e].Write() - - + for q1 in kalmanGain2[k][s].keys(): + for q2 in kalmanGain2[k][s][q1].keys(): + for e in kalmanGain2[k][s][q1][q2].keys(): + kalmanGain2[k][s][q1][q2][e].Write() f.Close() diff --git a/L1Trigger/L1TMuonBarrel/test/kalmanTools/packGainsLUT.py b/L1Trigger/L1TMuonBarrel/test/kalmanTools/packGainsLUT.py index 89bb3f9fe4e47..56bf7991cdca3 100644 --- a/L1Trigger/L1TMuonBarrel/test/kalmanTools/packGainsLUT.py +++ b/L1Trigger/L1TMuonBarrel/test/kalmanTools/packGainsLUT.py @@ -16,12 +16,14 @@ def pack(f,fout,station,code): def pack2(f,fout,station,code): fout.cd() - newH=ROOT.TH1D("gain2_{code}_{station}".format(station=station,code=code),"h",4*512,0,4*512) - for N,i in enumerate([0,1,4,5]): - h=f.Get("G2_{code}_{station}_{i}".format(station=station,code=code,i=i)) - for j in range(1,h.GetNbinsX()+1): - newH.SetBinContent(N*512+j,h.GetBinContent(j)) - newH.Write() + for q1 in ['H', 'L']: + for q2 in ['H', 'L']: + newH=ROOT.TH1D("gain2_{code}_{station}_{q1}{q2}".format(station=station,code=code,q1=q1,q2=q2),"h",4*512,0,4*512) + for N,i in enumerate([0,1,4,5]): + h=f.Get("G2_{code}_{station}_{i}_{q1}{q2}".format(station=station,code=code,i=i,q1=q1,q2=q2)) + for j in range(1,h.GetNbinsX()+1): + newH.SetBinContent(N*512+j,h.GetBinContent(j)) + newH.Write() def packV(f,fout,code): diff --git a/L1Trigger/L1TMuonBarrel/test/kalmanTools/parseGainsLUT.py b/L1Trigger/L1TMuonBarrel/test/kalmanTools/parseGainsLUT.py index 3e0f1bf66327c..3cef39ee57b0b 100644 --- a/L1Trigger/L1TMuonBarrel/test/kalmanTools/parseGainsLUT.py +++ b/L1Trigger/L1TMuonBarrel/test/kalmanTools/parseGainsLUT.py @@ -1,18 +1,20 @@ import ROOT +ROOT.gROOT.SetBatch(True) - -def generate(tfile,name,outname,bins,mini,maxi,zeroSup=False,constant=-1,absol=False,factor=1): +def generate(tfile,name,outname,bins,mini,maxi,zeroSup=False,constant=-1,absol=False,factor=1,rebin=False): xaxis=ROOT.TAxis(512*factor,0,512*factor) axis=ROOT.TAxis(bins,mini,maxi) h=tfile.Get(name) + if rebin: + h.Rebin() histo = h.ProfileX().ProjectionX() for i in range(1,h.GetNbinsX()+1): proj = h.ProjectionY("q",i,i) mean=proj.GetMean() rms = proj.GetRMS() - if proj.Integral()>100: + if proj.Integral()>15: histo.SetBinContent(i,mean) histo.SetBinError(i,rms) else: @@ -34,11 +36,10 @@ def generate(tfile,name,outname,bins,mini,maxi,zeroSup=False,constant=-1,absol=F N=N+1 else: g = ROOT.TGraphErrors(histo) - x1=ROOT.Double_t(0.0) - y1=ROOT.Double_t(0.0) + x1=ROOT.Double(0.0) + y1=ROOT.Double(0.0) g.GetPoint(g.GetN()-1,x1,y1) lastx=x1 - newH = ROOT.TH1D(outname,outname,512*factor,0,512*factor) for i in range(1,xaxis.GetNbins()+1): x = xaxis.GetBinLowEdge(i) @@ -51,37 +52,47 @@ def generate(tfile,name,outname,bins,mini,maxi,zeroSup=False,constant=-1,absol=F if absol: content=abs(content) intCont = axis.GetBinLowEdge(axis.FindBin(content)) - newH.SetBinContent(i,intCont) - + newH.SetBinContent(i,round(content,5)) + c1 = ROOT.TCanvas("temp", "", 600, 600) + newH.Draw("p") + histo.Draw("same") + newH.GetYaxis().SetRangeUser(min(newH.GetMinimum(), histo.GetMinimum())-.1, max(newH.GetMaximum(), histo.GetMaximum())+.1) + c1.SaveAs(outname+".png") return newH,h.ProfileX().ProjectionX(outname+'_orig') - + def printLUT(h,f,name,N): typ = 'updateLUT'+name[-1]+'_t' arr=[] for i in range(1,h.GetNbinsX()+1): - arr.append(str(h.GetBinContent(i))) + arr.append("{}".format(h.GetBinContent(i))) st = "const "+typ+" "+name+"["+str(N)+"]={"+','.join(arr)+"};\n" f.write(st) + +def printLUT2(h,f,name,N): + typ = 'update2LUT'+name[-4]+"_t" + arr=[] + if name[-2]=="L": + st = "const "+typ+" "+name+"={}".format(h.GetBinContent(1))+";\n" + f.write(st) + else: + for i in range(1,h.GetNbinsX()+1): + arr.append("{}".format(h.GetBinContent(i))) + st = "const "+typ+" "+name+"["+str(N)+"]={"+','.join(arr)+"};\n" + f.write(st) + def printLUTV(h,f,name,N): typ = 'updateLUTV'+name[-1]+'_t' arr=[] for i in range(1,h.GetNbinsX()+1): - arr.append(str(h.GetBinContent(i))) + arr.append("{}".format(h.GetBinContent(i))) st = "const "+typ+" "+name+"["+str(N)+"]={"+','.join(arr)+"};\n" f.write(st) fileio=open("gainLUTs.h","w") -fileio.write('#include "ap_fixed.h"\n') -fileio.write('typedef ap_ufixed<9,6> updateLUT0_t;\n') -fileio.write('typedef ap_ufixed<9,4> updateLUT4_t;\n') -fileio.write('typedef ap_fixed<9,4> updateLUT1_t;\n') -fileio.write('typedef ap_ufixed<9,8> updateLUT5_t;\n') -fileio.write('typedef ap_ufixed<9,2> updateLUTV0_t;\n') -fileio.write('typedef ap_ufixed<9,2> updateLUTV1_t;\n'); - +fileio.write('#include common.h\n') f=ROOT.TFile("gains.root") @@ -89,46 +100,46 @@ def printLUTV(h,f,name,N): fout.cd() -def parse(fileio,f,fout,ele,bins,mini,maxi,zeroSup=False,constant=-1,absol=False,factor=1): +def parse(fileio,f,fout,ele,bins,mini,maxi,zeroSup=False,constant=-1,absol=False,factor=1,rebin=False): fout.cd() stele=str(ele) - h,hO=generate(f,"gain_8_3_"+stele,"G_8_3_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) + h,hO=generate(f,"gain_8_3_"+stele,"G_8_3_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor,rebin) printLUT(h,fileio,"gain_1000_3_"+stele,1024) h.Write() hO.Write() - h,hO=generate(f,"gain_8_2_"+stele,"G_8_2_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) + h,hO=generate(f,"gain_8_2_"+stele,"G_8_2_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor,rebin) printLUT(h,fileio,"gain_1000_2_"+stele,1024) h.Write() hO.Write() - h,hO=generate(f,"gain_12_2_"+stele,"G_12_2_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) + h,hO=generate(f,"gain_12_2_"+stele,"G_12_2_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor,rebin) printLUT(h,fileio,"gain_1100_2_"+stele,1024) h.Write() hO.Write() - h,hO=generate(f,"gain_12_1_"+stele,"G_12_1_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) + h,hO=generate(f,"gain_12_1_"+stele,"G_12_1_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor,rebin) printLUT(h,fileio,"gain_1100_1_"+stele,1024) h.Write() hO.Write() - h,hO=generate(f,"gain_4_2_"+stele,"G_4_2_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) + h,hO=generate(f,"gain_4_2_"+stele,"G_4_2_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor,rebin) printLUT(h,fileio,"gain_0100_2_"+stele,1024) h.Write() hO.Write() - h,hO=generate(f,"gain_10_1_"+stele,"G_10_1_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) + h,hO=generate(f,"gain_10_1_"+stele,"G_10_1_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor,rebin) printLUT(h,fileio,"gain_1010_1_"+stele,1024) h.Write() hO.Write() - h,hO=generate(f,"gain_6_1_"+stele,"G_6_1_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) + h,hO=generate(f,"gain_6_1_"+stele,"G_6_1_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor,rebin) printLUT(h,fileio,"gain_0110_1_"+stele,1024) h.Write() hO.Write() - h,hO=generate(f,"gain_14_1_"+stele,"G_14_1_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) + h,hO=generate(f,"gain_14_1_"+stele,"G_14_1_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor,rebin) printLUT(h,fileio,"gain_1110_1_"+stele,1024) h.Write() hO.Write() @@ -138,100 +149,104 @@ def parse(fileio,f,fout,ele,bins,mini,maxi,zeroSup=False,constant=-1,absol=False def parse2(fileio,f,fout,ele,bins,mini,maxi,zeroSup=False,constant=-1,absol=False,factor=1): fout.cd() stele=str(ele) - h,hO=generate(f,"gain2_8_3_"+stele,"G2_8_3_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) - printLUT(h,fileio,"gain2_1000_3_"+stele,512) - h.Write() - hO.Write() + for q1 in ['H', 'L']: + for q2 in ['H', 'L']: + stele = str(ele) + stele = stele+"_"+q1+q2 + h,hO=generate(f,"gain2_8_3_"+stele,"G2_8_3_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) + printLUT2(h,fileio,"gain2_1000_3_"+stele,512) + h.Write() + hO.Write() - h,hO=generate(f,"gain2_8_2_"+stele,"G2_8_2_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) - printLUT(h,fileio,"gain2_1000_2_"+stele,512) - h.Write() - hO.Write() + h,hO=generate(f,"gain2_8_2_"+stele,"G2_8_2_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) + printLUT2(h,fileio,"gain2_1000_2_"+stele,512) + h.Write() + hO.Write() - h,hO=generate(f,"gain2_8_1_"+stele,"G2_8_1_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) - printLUT(h,fileio,"gain2_1000_1_"+stele,512) - h.Write() - hO.Write() + h,hO=generate(f,"gain2_8_1_"+stele,"G2_8_1_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) + printLUT2(h,fileio,"gain2_1000_1_"+stele,512) + h.Write() + hO.Write() - h,hO=generate(f,"gain2_4_2_"+stele,"G2_4_2_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) - printLUT(h,fileio,"gain2_0100_2_"+stele,512) - h.Write() - hO.Write() + h,hO=generate(f,"gain2_4_2_"+stele,"G2_4_2_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) + printLUT2(h,fileio,"gain2_0100_2_"+stele,512) + h.Write() + hO.Write() - h,hO=generate(f,"gain2_4_1_"+stele,"G2_4_1_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) - printLUT(h,fileio,"gain2_0100_1_"+stele,512) - h.Write() - hO.Write() + h,hO=generate(f,"gain2_4_1_"+stele,"G2_4_1_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) + printLUT2(h,fileio,"gain2_0100_1_"+stele,512) + h.Write() + hO.Write() - h,hO=generate(f,"gain2_2_1_"+stele,"G2_2_1_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) - printLUT(h,fileio,"gain2_0010_1_"+stele,512) - h.Write() - hO.Write() + h,hO=generate(f,"gain2_2_1_"+stele,"G2_2_1_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) + printLUT2(h,fileio,"gain2_0010_1_"+stele,512) + h.Write() + hO.Write() -def parseV(fileio,f,fout,ele,bins,mini,maxi,zeroSup=False,constant=-1,absol=False,factor=2): +def parseV(fileio,f,fout,ele,bins,mini,maxi,zeroSup=False,constant=-1,absol=False,factor=2,rebin=False): fout.cd() stele=str(ele) - h,hO=generate(f,"gain_15_0_"+stele,"G_15_0_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) + h,hO=generate(f,"gain_15_0_"+stele,"G_15_0_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor,rebin) printLUTV(h,fileio,"gain_1111_0_"+stele,1024) h.Write() hO.Write() - h,hO=generate(f,"gain_14_0_"+stele,"G_14_0_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) + h,hO=generate(f,"gain_14_0_"+stele,"G_14_0_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor,rebin) printLUTV(h,fileio,"gain_1110_0_"+stele,1024) h.Write() hO.Write() - h,hO=generate(f,"gain_13_0_"+stele,"G_13_0_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) + h,hO=generate(f,"gain_13_0_"+stele,"G_13_0_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor,rebin) printLUTV(h,fileio,"gain_1101_0_"+stele,1024) h.Write() hO.Write() - h,hO=generate(f,"gain_12_0_"+stele,"G_12_0_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) + h,hO=generate(f,"gain_12_0_"+stele,"G_12_0_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor,rebin) printLUTV(h,fileio,"gain_1100_0_"+stele,1024) h.Write() hO.Write() - h,hO=generate(f,"gain_11_0_"+stele,"G_11_0_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) + h,hO=generate(f,"gain_11_0_"+stele,"G_11_0_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor,rebin) printLUTV(h,fileio,"gain_1011_0_"+stele,1024) h.Write() hO.Write() - h,hO=generate(f,"gain_10_0_"+stele,"G_10_0_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) + h,hO=generate(f,"gain_10_0_"+stele,"G_10_0_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor,rebin) printLUTV(h,fileio,"gain_1010_0_"+stele,1024) h.Write() hO.Write() - h,hO=generate(f,"gain_9_0_"+stele,"G_9_0_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) + h,hO=generate(f,"gain_9_0_"+stele,"G_9_0_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor,rebin) printLUTV(h,fileio,"gain_1001_0_"+stele,1024) h.Write() hO.Write() - h,hO=generate(f,"gain_7_0_"+stele,"G_7_0_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) + h,hO=generate(f,"gain_7_0_"+stele,"G_7_0_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor,rebin) printLUTV(h,fileio,"gain_0111_0_"+stele,1024) h.Write() hO.Write() - h,hO=generate(f,"gain_6_0_"+stele,"G_6_0_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) + h,hO=generate(f,"gain_6_0_"+stele,"G_6_0_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor,rebin) printLUTV(h,fileio,"gain_0110_0_"+stele,1024) h.Write() hO.Write() - h,hO=generate(f,"gain_5_0_"+stele,"G_5_0_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) + h,hO=generate(f,"gain_5_0_"+stele,"G_5_0_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor,rebin) printLUTV(h,fileio,"gain_0101_0_"+stele,1024) h.Write() hO.Write() - h,hO=generate(f,"gain_3_0_"+stele,"G_3_0_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor) + h,hO=generate(f,"gain_3_0_"+stele,"G_3_0_"+stele,bins,mini,maxi,zeroSup,constant,absol,factor,rebin) printLUTV(h,fileio,"gain_0011_0_"+stele,1024) h.Write() hO.Write() -parse(fileio,f,fout,0,512,0,64,True,-1,False,2) -parse(fileio,f,fout,4,512,0,16,True,-1,True,2) +parse(fileio,f,fout,0,512*2,0,64*2,True,-1,False,2,False) +parse(fileio,f,fout,4,512,0,16,True,-1,True,2,False) parse2(fileio,f,fout,0,512,0,64,True,-1,False,1) -parse2(fileio,f,fout,1,512,-8,8,True,-1,False,1) +parse2(fileio,f,fout,1,512,-8,8,True,-1,True,1) parse2(fileio,f,fout,4,512,0,16,True,-1,True,1) parse2(fileio,f,fout,5,512,0,1,True,-1,False,1) -parseV(fileio,f,fout,0,512,0,4,True,700,True,2) -parseV(fileio,f,fout,1,512,0,4,True,700,True,2) +parseV(fileio,f,fout,0,512,0,4,True,-1,True,2,True) +parseV(fileio,f,fout,1,512,0,4,True,-1,True,2,True) fout.Close() f.Close() diff --git a/L1Trigger/L1TNtuples/interface/L1AnalysisL1UpgradeTfMuon.h b/L1Trigger/L1TNtuples/interface/L1AnalysisL1UpgradeTfMuon.h index c4478755446b2..9a2329caf3034 100644 --- a/L1Trigger/L1TNtuples/interface/L1AnalysisL1UpgradeTfMuon.h +++ b/L1Trigger/L1TNtuples/interface/L1AnalysisL1UpgradeTfMuon.h @@ -11,12 +11,17 @@ namespace L1Analysis { enum { TEST = 0 }; L1AnalysisL1UpgradeTfMuon(); ~L1AnalysisL1UpgradeTfMuon(); - void Reset() { l1upgradetfmuon_.Reset(); } + void Reset() { + l1upgradetfmuon_.Reset(); + isKalman_ = false; + } + void SetKalmanMuon() { isKalman_ = true; } void SetTfMuon(const l1t::RegionalMuonCandBxCollection& muon, unsigned maxL1UpgradeTfMuon); L1AnalysisL1UpgradeTfMuonDataFormat* getData() { return &l1upgradetfmuon_; } private: L1AnalysisL1UpgradeTfMuonDataFormat l1upgradetfmuon_; + bool isKalman_{false}; }; } // namespace L1Analysis #endif diff --git a/L1Trigger/L1TNtuples/interface/L1AnalysisL1UpgradeTfMuonDataFormat.h b/L1Trigger/L1TNtuples/interface/L1AnalysisL1UpgradeTfMuonDataFormat.h index eb1105d2ff8b3..c2281c626c7c3 100644 --- a/L1Trigger/L1TNtuples/interface/L1AnalysisL1UpgradeTfMuonDataFormat.h +++ b/L1Trigger/L1TNtuples/interface/L1AnalysisL1UpgradeTfMuonDataFormat.h @@ -13,6 +13,8 @@ namespace L1Analysis { void Reset() { nTfMuons = 0; tfMuonHwPt.clear(); + tfMuonHwPtUnconstrained.clear(); + tfMuonHwDxy.clear(); tfMuonHwEta.clear(); tfMuonHwPhi.clear(); tfMuonGlobalPhi.clear(); @@ -32,6 +34,8 @@ namespace L1Analysis { unsigned short int nTfMuons; std::vector tfMuonHwPt; + std::vector tfMuonHwPtUnconstrained; + std::vector tfMuonHwDxy; std::vector tfMuonHwEta; std::vector tfMuonHwPhi; std::vector tfMuonGlobalPhi; diff --git a/L1Trigger/L1TNtuples/plugins/BuildFile.xml b/L1Trigger/L1TNtuples/plugins/BuildFile.xml index 43068a0a75c91..7daf789cd70c2 100644 --- a/L1Trigger/L1TNtuples/plugins/BuildFile.xml +++ b/L1Trigger/L1TNtuples/plugins/BuildFile.xml @@ -21,6 +21,7 @@ + diff --git a/L1Trigger/L1TNtuples/plugins/L1UpgradeTfMuonTreeProducer.cc b/L1Trigger/L1TNtuples/plugins/L1UpgradeTfMuonTreeProducer.cc index f410ea0a7f50b..05a8685e7a60d 100644 --- a/L1Trigger/L1TNtuples/plugins/L1UpgradeTfMuonTreeProducer.cc +++ b/L1Trigger/L1TNtuples/plugins/L1UpgradeTfMuonTreeProducer.cc @@ -27,8 +27,14 @@ #include "FWCore/MessageLogger/interface/MessageLogger.h" // data formats +#include "DataFormats/FEDRawData/interface/FEDHeader.h" #include "DataFormats/L1TMuon/interface/RegionalMuonCand.h" +// Needed to get BMTF firmware version +#include "DataFormats/FEDRawData/interface/FEDRawDataCollection.h" +#include "EventFilter/L1TRawToDigi/interface/AMC13Spec.h" +#include "EventFilter/L1TRawToDigi/interface/Block.h" + // ROOT output stuff #include "FWCore/ServiceRegistry/interface/Service.h" #include "CommonTools/UtilAlgos/interface/TFileService.h" @@ -52,17 +58,20 @@ class L1UpgradeTfMuonTreeProducer : public edm::EDAnalyzer { void endJob() override; public: + L1Analysis::L1AnalysisL1UpgradeTfMuon l1UpgradeKBmtf; L1Analysis::L1AnalysisL1UpgradeTfMuon l1UpgradeBmtf; L1Analysis::L1AnalysisL1UpgradeTfMuon l1UpgradeOmtf; L1Analysis::L1AnalysisL1UpgradeTfMuon l1UpgradeEmtf; L1Analysis::L1AnalysisBMTFInputs l1UpgradeBmtfInputs; L1Analysis::L1AnalysisL1UpgradeTfMuonDataFormat* l1UpgradeBmtfData; + L1Analysis::L1AnalysisL1UpgradeTfMuonDataFormat* l1UpgradeKBmtfData; L1Analysis::L1AnalysisL1UpgradeTfMuonDataFormat* l1UpgradeOmtfData; L1Analysis::L1AnalysisL1UpgradeTfMuonDataFormat* l1UpgradeEmtfData; L1Analysis::L1AnalysisBMTFInputsDataFormat* l1UpgradeBmtfInputsData; private: unsigned maxL1UpgradeTfMuon_; + bool isEMU_; // output file edm::Service fs_; @@ -71,22 +80,32 @@ class L1UpgradeTfMuonTreeProducer : public edm::EDAnalyzer { TTree* tree_; // EDM input tags + edm::EDGetTokenT fedToken_; edm::EDGetTokenT bmtfMuonToken_; + edm::EDGetTokenT bmtf2MuonToken_; edm::EDGetTokenT omtfMuonToken_; edm::EDGetTokenT emtfMuonToken_; edm::EDGetTokenT bmtfPhInputToken_; edm::EDGetTokenT bmtfThInputToken_; + + // EDM handles + edm::Handle feds_; + + unsigned getAlgoFwVersion(); }; L1UpgradeTfMuonTreeProducer::L1UpgradeTfMuonTreeProducer(const edm::ParameterSet& iConfig) { + isEMU_ = iConfig.getParameter("isEMU"); + fedToken_ = consumes(iConfig.getParameter("feds")); bmtfMuonToken_ = consumes(iConfig.getUntrackedParameter("bmtfMuonToken")); + bmtf2MuonToken_ = + consumes(iConfig.getUntrackedParameter("bmtf2MuonToken")); omtfMuonToken_ = consumes(iConfig.getUntrackedParameter("omtfMuonToken")); emtfMuonToken_ = consumes(iConfig.getUntrackedParameter("emtfMuonToken")); - bmtfPhInputToken_ = consumes(iConfig.getUntrackedParameter("bmtfInputPhMuonToken")); bmtfThInputToken_ = @@ -95,6 +114,7 @@ L1UpgradeTfMuonTreeProducer::L1UpgradeTfMuonTreeProducer(const edm::ParameterSet maxL1UpgradeTfMuon_ = iConfig.getParameter("maxL1UpgradeTfMuon"); l1UpgradeBmtfData = l1UpgradeBmtf.getData(); + l1UpgradeKBmtfData = l1UpgradeKBmtf.getData(); l1UpgradeOmtfData = l1UpgradeOmtf.getData(); l1UpgradeEmtfData = l1UpgradeEmtf.getData(); l1UpgradeBmtfInputsData = l1UpgradeBmtfInputs.getData(); @@ -102,6 +122,7 @@ L1UpgradeTfMuonTreeProducer::L1UpgradeTfMuonTreeProducer(const edm::ParameterSet // set up output tree_ = fs_->make("L1UpgradeTfMuonTree", "L1UpgradeTfMuonTree"); tree_->Branch("L1UpgradeBmtfMuon", "L1Analysis::L1AnalysisL1UpgradeTfMuonDataFormat", &l1UpgradeBmtfData, 32000, 3); + tree_->Branch("L1UpgradeKBmtfMuon", "L1Analysis::L1AnalysisL1UpgradeTfMuonDataFormat", &l1UpgradeKBmtfData, 32000, 3); tree_->Branch("L1UpgradeOmtfMuon", "L1Analysis::L1AnalysisL1UpgradeTfMuonDataFormat", &l1UpgradeOmtfData, 32000, 3); tree_->Branch("L1UpgradeEmtfMuon", "L1Analysis::L1AnalysisL1UpgradeTfMuonDataFormat", &l1UpgradeEmtfData, 32000, 3); @@ -117,18 +138,42 @@ L1UpgradeTfMuonTreeProducer::~L1UpgradeTfMuonTreeProducer() {} // ------------ method called to for each event ------------ void L1UpgradeTfMuonTreeProducer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { + edm::EDGetTokenT legacybmtfMuonToken; + edm::EDGetTokenT kbmtfMuonToken; + if (isEMU_) { + legacybmtfMuonToken = bmtfMuonToken_; + kbmtfMuonToken = bmtf2MuonToken_; + } else { + iEvent.getByToken(fedToken_, feds_); + // Get fw version + unsigned algoFwVersion{getAlgoFwVersion()}; + if (algoFwVersion < 2499805536) { //95000160(hex) + // Legacy was triggering (and therefore in the main collection) + legacybmtfMuonToken = bmtfMuonToken_; + kbmtfMuonToken = bmtf2MuonToken_; + } else { + // kBMTF was triggering + legacybmtfMuonToken = bmtf2MuonToken_; + kbmtfMuonToken = bmtfMuonToken_; + } + } + l1UpgradeBmtf.Reset(); + l1UpgradeKBmtf.Reset(); + l1UpgradeKBmtf.SetKalmanMuon(); l1UpgradeOmtf.Reset(); l1UpgradeEmtf.Reset(); l1UpgradeBmtfInputs.Reset(); edm::Handle bmtfMuon; + edm::Handle kbmtfMuon; edm::Handle omtfMuon; edm::Handle emtfMuon; edm::Handle bmtfPhInputs; edm::Handle bmtfThInputs; - iEvent.getByToken(bmtfMuonToken_, bmtfMuon); + iEvent.getByToken(legacybmtfMuonToken, bmtfMuon); + iEvent.getByToken(kbmtfMuonToken, kbmtfMuon); iEvent.getByToken(omtfMuonToken_, omtfMuon); iEvent.getByToken(emtfMuonToken_, emtfMuon); iEvent.getByToken(bmtfPhInputToken_, bmtfPhInputs); @@ -140,6 +185,12 @@ void L1UpgradeTfMuonTreeProducer::analyze(const edm::Event& iEvent, const edm::E edm::LogWarning("MissingProduct") << "L1Upgrade BMTF muons not found. Branch will not be filled" << std::endl; } + if (kbmtfMuon.isValid()) { + l1UpgradeKBmtf.SetTfMuon(*kbmtfMuon, maxL1UpgradeTfMuon_); + } else { + edm::LogWarning("MissingProduct") << "L1Upgrade kBMTF muons not found. Branch will not be filled" << std::endl; + } + if (omtfMuon.isValid()) { l1UpgradeOmtf.SetTfMuon(*omtfMuon, maxL1UpgradeTfMuon_); } else { @@ -173,5 +224,50 @@ void L1UpgradeTfMuonTreeProducer::beginJob(void) {} // ------------ method called once each job just after ending the event loop ------------ void L1UpgradeTfMuonTreeProducer::endJob() {} +unsigned L1UpgradeTfMuonTreeProducer::getAlgoFwVersion() { + int nonEmptyFed = 0; + if (feds_->FEDData(1376).size() > 0) + nonEmptyFed = 1376; + else if (feds_->FEDData(1377).size() > 0) + nonEmptyFed = 1377; + else { + edm::LogError("L1UpgradeTfMuonTreeProducer") + << "Both BMTF feds (1376, 1377) seem empty, will lead to unexpected results in tree from data."; + return 0; + } + + const FEDRawData& l1tRcd = feds_->FEDData(nonEmptyFed); + edm::LogInfo("L1UpgradeTfMuonTreeProducer") << "L1T Rcd taken from the FEDData."; + edm::LogInfo("L1UpgradeTfMuonTreeProducer") << "l1tRcd.size=" << l1tRcd.size() << " for fed:" << nonEmptyFed; + + const unsigned char* data = l1tRcd.data(); + FEDHeader header(data); + + amc13::Packet packet; + if (!packet.parse((const uint64_t*)data, + (const uint64_t*)(data + 8), + (l1tRcd.size()) / 8, + header.lvl1ID(), + header.bxID(), + false, + false)) { + edm::LogError("L1UpgradeTfMuonTreeProducer") << "Could not extract AMC13 Packet."; + return 0; + } + + if (!packet.payload().empty()) { + auto payload64 = (packet.payload().at(0)).data(); + const uint32_t* start = (const uint32_t*)payload64.get(); + const uint32_t* end = start + (packet.payload().at(0).size() * 2); + + l1t::MP7Payload payload(start, end, false); + return payload.getAlgorithmFWVersion(); + + } else { + edm::LogError("L1UpgradeTfMuonTreeProducer") << "AMC13 payload is empty, cannot extract AMC13 Packet."; + return 0; + } +} + //define this as a plug-in DEFINE_FWK_MODULE(L1UpgradeTfMuonTreeProducer); diff --git a/L1Trigger/L1TNtuples/python/L1NtupleEMU_cff.py b/L1Trigger/L1TNtuples/python/L1NtupleEMU_cff.py index 19183e9d5b011..91adaa1b0b6ab 100644 --- a/L1Trigger/L1TNtuples/python/L1NtupleEMU_cff.py +++ b/L1Trigger/L1TNtuples/python/L1NtupleEMU_cff.py @@ -8,9 +8,11 @@ from L1Trigger.L1TNtuples.l1uGTTree_cfi import * l1UpgradeTfMuonEmuTree = l1UpgradeTfMuonTree.clone() -l1UpgradeTfMuonEmuTree.bmtfMuonToken = cms.untracked.InputTag("simBmtfDigis","BMTF") -l1UpgradeTfMuonEmuTree.omtfMuonToken = cms.untracked.InputTag("simOmtfDigis","OMTF") -l1UpgradeTfMuonEmuTree.emtfMuonToken = cms.untracked.InputTag("simEmtfDigis","EMTF") +l1UpgradeTfMuonEmuTree.bmtfMuonToken = cms.untracked.InputTag("simBmtfDigis","BMTF") +l1UpgradeTfMuonEmuTree.bmtf2MuonToken = cms.untracked.InputTag("simKBmtfDigis","BMTF") +l1UpgradeTfMuonEmuTree.omtfMuonToken = cms.untracked.InputTag("simOmtfDigis","OMTF") +l1UpgradeTfMuonEmuTree.emtfMuonToken = cms.untracked.InputTag("simEmtfDigis","EMTF") +l1UpgradeTfMuonEmuTree.isEMU = cms.bool(True) l1CaloTowerEmuTree = l1CaloTowerTree.clone() l1CaloTowerEmuTree.ecalToken = cms.untracked.InputTag("simEcalTriggerPrimitiveDigis") diff --git a/L1Trigger/L1TNtuples/python/l1UpgradeTfMuonTree_cfi.py b/L1Trigger/L1TNtuples/python/l1UpgradeTfMuonTree_cfi.py index 836f5823e78e4..3b1cd2cd4a63b 100644 --- a/L1Trigger/L1TNtuples/python/l1UpgradeTfMuonTree_cfi.py +++ b/L1Trigger/L1TNtuples/python/l1UpgradeTfMuonTree_cfi.py @@ -2,12 +2,15 @@ l1UpgradeTfMuonTree = cms.EDAnalyzer( "L1UpgradeTfMuonTreeProducer", + feds = cms.InputTag("rawDataCollector"), bmtfMuonToken = cms.untracked.InputTag("bmtfDigis","BMTF"), + bmtf2MuonToken = cms.untracked.InputTag("bmtfDigis","BMTF2"), bmtfInputPhMuonToken = cms.untracked.InputTag("bmtfDigis",""), bmtfInputThMuonToken = cms.untracked.InputTag("bmtfDigis",""), omtfMuonToken = cms.untracked.InputTag("omtfDigis","OMTF"), emtfMuonToken = cms.untracked.InputTag("emtfDigis","EMTF"), - maxL1UpgradeTfMuon = cms.uint32(60) + maxL1UpgradeTfMuon = cms.uint32(60), + isEMU = cms.bool(False) ) from Configuration.Eras.Modifier_stage1L1Trigger_cff import stage1L1Trigger diff --git a/L1Trigger/L1TNtuples/src/L1AnalysisL1UpgradeTfMuon.cc b/L1Trigger/L1TNtuples/src/L1AnalysisL1UpgradeTfMuon.cc index 622b4ad3e42f0..dcf4bf9959f79 100644 --- a/L1Trigger/L1TNtuples/src/L1AnalysisL1UpgradeTfMuon.cc +++ b/L1Trigger/L1TNtuples/src/L1AnalysisL1UpgradeTfMuon.cc @@ -12,6 +12,10 @@ void L1Analysis::L1AnalysisL1UpgradeTfMuon::SetTfMuon(const l1t::RegionalMuonCan ++it) { if (it->hwPt() > 0) { l1upgradetfmuon_.tfMuonHwPt.push_back(it->hwPt()); + if (isKalman_) { + l1upgradetfmuon_.tfMuonHwPtUnconstrained.push_back(it->hwPtUnconstrained()); + l1upgradetfmuon_.tfMuonHwDxy.push_back(it->hwDXY()); + } l1upgradetfmuon_.tfMuonHwEta.push_back(it->hwEta()); l1upgradetfmuon_.tfMuonHwPhi.push_back(it->hwPhi()); l1upgradetfmuon_.tfMuonGlobalPhi.push_back( @@ -60,8 +64,8 @@ void L1Analysis::L1AnalysisL1UpgradeTfMuon::SetTfMuon(const l1t::RegionalMuonCan decoded_track_address["kBX"] = it->trackSubAddress(l1t::RegionalMuonCand::kBX); } l1upgradetfmuon_.tfMuonDecodedTrAdd.push_back(decoded_track_address); - l1upgradetfmuon_.tfMuonHwTrAdd.push_back(l1t::RegionalMuonRawDigiTranslator::generateRawTrkAddress( - *it, true)); // TODO: We're assuming that we're dealing with Kalman muons here. + l1upgradetfmuon_.tfMuonHwTrAdd.push_back( + l1t::RegionalMuonRawDigiTranslator::generateRawTrkAddress(*it, isKalman_)); l1upgradetfmuon_.nTfMuons++; } } diff --git a/MagneticField/GeomBuilder/plugins/dd4hep/DD4hep_VolumeBasedMagneticFieldESProducerFromDB.cc b/MagneticField/GeomBuilder/plugins/dd4hep/DD4hep_VolumeBasedMagneticFieldESProducerFromDB.cc index e1f27f537d449..d920c2a5e4c0d 100644 --- a/MagneticField/GeomBuilder/plugins/dd4hep/DD4hep_VolumeBasedMagneticFieldESProducerFromDB.cc +++ b/MagneticField/GeomBuilder/plugins/dd4hep/DD4hep_VolumeBasedMagneticFieldESProducerFromDB.cc @@ -7,6 +7,7 @@ #include "FWCore/Framework/interface/EventSetupRecordIntervalFinder.h" #include "FWCore/Framework/interface/ESProducer.h" +#include "FWCore/Concurrency/interface/SharedResourceNames.h" #include "CondFormats/RunInfo/interface/RunInfo.h" #include "CondFormats/DataRecord/interface/RunSummaryRcd.h" @@ -80,6 +81,7 @@ DD4hep_VolumeBasedMagneticFieldESProducerFromDB::DD4hep_VolumeBasedMagneticField const edm::ParameterSet& iConfig) : debug_(iConfig.getUntrackedParameter("debugBuilder")) { std::string const myConfigLabel = "VBMFESChoice"; + usesResources({edm::ESSharedResourceNames::kDD4Hep}); //Based on configuration, pick algorithm to produce the proper MagFieldConfig with a specific label const int current = iConfig.getParameter("valueOverride"); diff --git a/OnlineDB/EcalCondDB/interface/FEConfigCokeDat.h b/OnlineDB/EcalCondDB/interface/FEConfigCokeDat.h new file mode 100644 index 0000000000000..b9d26f41066e4 --- /dev/null +++ b/OnlineDB/EcalCondDB/interface/FEConfigCokeDat.h @@ -0,0 +1,147 @@ +#ifndef ONLINEDB_ECALCONDDB_FECONFIGCOKEDAT_H +#define ONLINEDB_ECALCONDDB_FECONFIGCOKEDAT_H + +#include +#include + +#include "OnlineDB/EcalCondDB/interface/IDataItem.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigCokeInfo.h" +#include "OnlineDB/EcalCondDB/interface/EcalLogicID.h" + +class FEConfigCokeDat : public IDataItem { +public: + friend class EcalCondDBInterface; // XXX temp should not need + FEConfigCokeDat(); + ~FEConfigCokeDat() override; + + // User data methods + inline std::string getTable() override { return "FE_CONFIG_COKE_DAT"; } + + inline void setThreshold(int x) { m_thre = x; } + inline int getThreshold() const { return m_thre; } + inline void setSuccEventLimit(int x) { m_succ_ev_lim = x; } + inline int getSuccEventLimit() const { return m_succ_ev_lim; } + inline void setCumulEventLimit(int x) { m_cum_ev_lim = x; } + inline int getCumulEventLimit() const { return m_cum_ev_lim; } + inline void setSuccDetectEnable(int x) { m_succ_det_en = x; } + inline int getSuccDetectEnable() const { return m_succ_det_en; } + inline void setCumDetectEnable(int x) { m_cum_det_en = x; } + inline int getCumDetectEnable() const { return m_cum_det_en; } + inline void setThreshold1(int x) { m_thre1 = x; } + inline int getThreshold1() const { return m_thre1; } + inline void setSucc1EventLimit(int x) { m_succ1_ev_lim = x; } + inline int getSucc1EventLimit() const { return m_succ1_ev_lim; } + inline void setCumul1EventLimit(int x) { m_cum1_ev_lim = x; } + inline int getCumul1EventLimit() const { return m_cum1_ev_lim; } + inline void setCombiMode(int x) { m_combi_mode = x; } + inline int getCombiMode() const { return m_combi_mode; } + inline void setOccMode(int x) { m_occ_mode = x; } + inline int getOccMode() const { return m_occ_mode; } + inline void setCombSuccDetect(int x) { m_comb_succ_det = x; } + inline int getCombSuccDetect() const { return m_comb_succ_det; } + inline void setCombCumulDetect(int x) { m_comb_cumul_det = x; } + inline int getCombCumulDetect() const { return m_comb_cumul_det; } + inline void setOccDetect(int x) { m_occ_det = x; } + inline int getOccDetect() const { return m_occ_det; } + inline void setCumul1Detect(int x) { m_cum1_det = x; } + inline int getCumul1Detect() const { return m_cum1_det; } + inline void setThreshold2(int x) { m_thre2 = x; } + inline int getThreshold2() const { return m_thre2; } + inline void setOccLimit(int x) { m_occ_lim = x; } + inline int getOccLimit() const { return m_occ_lim; } + inline void setThreshold3(int x) { m_thre3 = x; } + inline int getThreshold3() const { return m_thre3; } + inline void setCumul2Limit(int x) { m_cum2_lim = x; } + inline int getCumul2Limit() const { return m_cum2_lim; } + inline void setStopBufW(int x) { m_stop_bufw = x; } + inline int getStopBufW() const { return m_stop_bufw; } + // this simplifies the code + inline void setPar1(int x) { m_thre = x; } + inline int getPar1() const { return m_thre; } + inline void setPar2(int x) { m_succ_ev_lim = x; } + inline int getPar2() const { return m_succ_ev_lim; } + inline void setPar3(int x) { m_cum_ev_lim = x; } + inline int getPar3() const { return m_cum_ev_lim; } + inline void setPar4(int x) { m_succ_det_en = x; } + inline int getPar4() const { return m_succ_det_en; } + inline void setPar5(int x) { m_cum_det_en = x; } + inline int getPar5() const { return m_cum_det_en; } + inline void setPar6(int x) { m_thre1 = x; } + inline int getPar6() const { return m_thre1; } + inline void setPar7(int x) { m_succ1_ev_lim = x; } + inline int getPar7() const { return m_succ1_ev_lim; } + inline void setPar8(int x) { m_cum1_ev_lim = x; } + inline int getPar8() const { return m_cum1_ev_lim; } + inline void setPar9(int x) { m_combi_mode = x; } + inline int getPar9() const { return m_combi_mode; } + inline void setPar10(int x) { m_occ_mode = x; } + inline int getPar10() const { return m_occ_mode; } + inline void setPar11(int x) { m_comb_succ_det = x; } + inline int getPar11() const { return m_comb_succ_det; } + inline void setPar12(int x) { m_comb_cumul_det = x; } + inline int getPar12() const { return m_comb_cumul_det; } + inline void setPar13(int x) { m_occ_det = x; } + inline int getPar13() const { return m_occ_det; } + inline void setPar14(int x) { m_cum1_det = x; } + inline int getPar14() const { return m_cum1_det; } + inline void setPar15(int x) { m_thre2 = x; } + inline int getPar15() const { return m_thre2; } + inline void setPar16(int x) { m_occ_lim = x; } + inline int getPar16() const { return m_occ_lim; } + inline void setPar17(int x) { m_thre3 = x; } + inline int getPar17() const { return m_thre3; } + inline void setPar18(int x) { m_cum2_lim = x; } + inline int getPar18() const { return m_cum2_lim; } + inline void setPar19(int x) { m_stop_bufw = x; } + inline int getPar19() const { return m_stop_bufw; } + + void clear() { + m_thre = 0; + m_succ_ev_lim = 0; + m_cum_ev_lim = 0; + m_succ_det_en = 0; + m_cum_det_en = 0; + m_thre1 = 0; + m_succ1_ev_lim = 0; + m_cum1_ev_lim = 0; + m_combi_mode = 0; + m_occ_mode = 0; + m_comb_succ_det = 0; + m_comb_cumul_det = 0; + m_occ_det = 0; + m_cum1_det = 0; + m_thre2 = 0; + m_occ_lim = 0; + m_thre3 = 0; + m_cum2_lim = 0; + m_stop_bufw = 0; + } + +private: + void prepareWrite() noexcept(false) override; + void writeDB(const EcalLogicID* ecid, const FEConfigCokeDat* item, FEConfigCokeInfo* iconf) noexcept(false); + void writeArrayDB(const std::map* data, FEConfigCokeInfo* iconf) noexcept(false); + void fetchData(std::map* fillMap, FEConfigCokeInfo* iconf) noexcept(false); + // User data + int m_thre; + int m_succ_ev_lim; + int m_cum_ev_lim; + int m_succ_det_en; + int m_cum_det_en; + int m_thre1; + int m_succ1_ev_lim; + int m_cum1_ev_lim; + int m_combi_mode; + int m_occ_mode; + int m_comb_succ_det; + int m_comb_cumul_det; + int m_occ_det; + int m_cum1_det; + int m_thre2; + int m_occ_lim; + int m_thre3; + int m_cum2_lim; + int m_stop_bufw; +}; + +#endif diff --git a/OnlineDB/EcalCondDB/interface/FEConfigCokeInfo.h b/OnlineDB/EcalCondDB/interface/FEConfigCokeInfo.h new file mode 100644 index 0000000000000..d34ae5051491a --- /dev/null +++ b/OnlineDB/EcalCondDB/interface/FEConfigCokeInfo.h @@ -0,0 +1,56 @@ +#ifndef ONLINEDB_ECALCONDDB_FECONFIGCOKEINFO_H +#define ONLINEDB_ECALCONDDB_FECONFIGCOKEINFO_H + +#include +#include + +#include "OnlineDB/EcalCondDB/interface/IODConfig.h" +#include "OnlineDB/EcalCondDB/interface/Tm.h" +#include "OnlineDB/EcalCondDB/interface/DateHandler.h" + +class FEConfigCokeInfo : public IODConfig { +public: + friend class EcalCondDBInterface; + + FEConfigCokeInfo(); + ~FEConfigCokeInfo() override; + + // Methods for user data + inline std::string getTable() override { return "FE_CONFIG_COKE_INFO"; } + + inline void setId(int id) { m_ID = id; } + inline int getId() const { return m_ID; } + // for compatibility + void setID(int id) { setId(id); } + int getID() { return getId(); } + // the tag is already in IODConfig + inline void setVersion(int id) { m_version = id; } + inline int getVersion() const { return m_version; } + + Tm getDBTime() const { return m_db_time; } + void setDBTime(const Tm& x) { m_db_time = x; } + + // Methods from IUniqueDBObject + int fetchID() noexcept(false); + int fetchNextId() noexcept(false); + void setByID(int id) noexcept(false); + void setParameters(const std::map& my_keys_map); + + // operators + inline bool operator==(const FEConfigCokeInfo& r) const { return (m_ID == r.m_ID); } + inline bool operator!=(const FEConfigCokeInfo& r) const { return !(*this == r); } + +private: + // User data for this IOV + int m_ID; + Tm m_db_time; + int m_version; + + void prepareWrite() noexcept(false) override; + void writeDB() noexcept(false); + void clear(); + void fetchData(FEConfigCokeInfo* result) noexcept(false); + void fetchLastData(FEConfigCokeInfo* result) noexcept(false); +}; + +#endif diff --git a/OnlineDB/EcalCondDB/interface/FEConfigMainInfo.h b/OnlineDB/EcalCondDB/interface/FEConfigMainInfo.h index 0f194e9cda08b..a5aa7f9e8cb33 100644 --- a/OnlineDB/EcalCondDB/interface/FEConfigMainInfo.h +++ b/OnlineDB/EcalCondDB/interface/FEConfigMainInfo.h @@ -63,6 +63,18 @@ class FEConfigMainInfo : public IODConfig { void setBstId(int x) { m_bst_id = x; } int getBstId() const { return m_bst_id; } // + void setCokeId(int x) { m_coke_id = x; } + int getCokeId() const { return m_coke_id; } + // + void setWeight2Id(int x) { m_wei2_id = x; } + int getWeight2Id() const { return m_wei2_id; } + // + void setWei2Id(int x) { m_wei2_id = x; } + int getWei2Id() const { return m_wei2_id; } + // + void setOddWeiId(int x) { m_wei2_id = x; } + int getOddWeiId() const { return m_wei2_id; } + // inline void setVersion(int id) { m_version = id; } inline int getVersion() const { return m_version; } @@ -84,6 +96,8 @@ class FEConfigMainInfo : public IODConfig { int m_bst_id; int m_tim_id; int m_spi_id; + int m_coke_id; + int m_wei2_id; int m_version; Tm m_db_time; std::string m_description; diff --git a/OnlineDB/EcalCondDB/interface/FEConfigOddWeightDat.h b/OnlineDB/EcalCondDB/interface/FEConfigOddWeightDat.h new file mode 100644 index 0000000000000..5f1b6e718601b --- /dev/null +++ b/OnlineDB/EcalCondDB/interface/FEConfigOddWeightDat.h @@ -0,0 +1,37 @@ +#ifndef ONLINEDB_ECALCONDDB_FECONFIGODDWEIGHTDAT +#define ONLINEDB_ECALCONDDB_FECONFIGODDWEIGHTDAT + +#include +#include + +#include "OnlineDB/EcalCondDB/interface/IDataItem.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigOddWeightInfo.h" +#include "OnlineDB/EcalCondDB/interface/EcalLogicID.h" + +class FEConfigOddWeightDat : public IDataItem { +public: + friend class EcalCondDBInterface; // XXX temp should not need + FEConfigOddWeightDat(); + ~FEConfigOddWeightDat() override; + + // User data methods + inline std::string getTable() override { return "FE_CONFIG_WEIGHT2_DAT"; } + + inline void setWeightGroupId(int x) { m_group_id = x; } + inline int getWeightGroupId() const { return m_group_id; } + +private: + void prepareWrite() noexcept(false) override; + + void writeDB(const EcalLogicID* ecid, const FEConfigOddWeightDat* item, FEConfigOddWeightInfo* iconf) noexcept(false); + + void writeArrayDB(const std::map* data, + FEConfigOddWeightInfo* iconf) noexcept(false); + + void fetchData(std::map* fillMap, FEConfigOddWeightInfo* iconf) noexcept(false); + + // User data + int m_group_id; +}; + +#endif diff --git a/OnlineDB/EcalCondDB/interface/FEConfigOddWeightGroupDat.h b/OnlineDB/EcalCondDB/interface/FEConfigOddWeightGroupDat.h new file mode 100644 index 0000000000000..ebd4ee3ca2cc1 --- /dev/null +++ b/OnlineDB/EcalCondDB/interface/FEConfigOddWeightGroupDat.h @@ -0,0 +1,59 @@ +#ifndef ONLINEDB_ECALCONDDB_FECONFIGODDWEIGHTGROUPDAT_H +#define ONLINEDB_ECALCONDDB_FECONFIGODDWEIGHTGROUPDAT_H + +#include +#include + +#include "OnlineDB/EcalCondDB/interface/IDataItem.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigOddWeightInfo.h" +#include "OnlineDB/EcalCondDB/interface/EcalLogicID.h" + +class FEConfigOddWeightGroupDat : public IDataItem { +public: + friend class EcalCondDBInterface; // XXX temp should not need + FEConfigOddWeightGroupDat(); + ~FEConfigOddWeightGroupDat() override; + + // User data methods + inline std::string getTable() override { return "FE_WEIGHT2_PER_GROUP_DAT"; } + + inline void setWeightGroupId(int x) { m_group_id = x; } + inline int getWeightGroupId() const { return m_group_id; } + + inline void setWeight0(float x) { m_w0 = x; } + inline float getWeight0() const { return m_w0; } + inline void setWeight1(float x) { m_w1 = x; } + inline float getWeight1() const { return m_w1; } + inline void setWeight2(float x) { m_w2 = x; } + inline float getWeight2() const { return m_w2; } + inline void setWeight3(float x) { m_w3 = x; } + inline float getWeight3() const { return m_w3; } + inline void setWeight4(float x) { m_w4 = x; } + inline float getWeight4() const { return m_w4; } + inline void setWeight5(float x) { m_w5 = x; } + inline float getWeight5() const { return m_w5; } + +private: + void prepareWrite() noexcept(false) override; + + void writeDB(const EcalLogicID* ecid, + const FEConfigOddWeightGroupDat* item, + FEConfigOddWeightInfo* iconf) noexcept(false); + + void writeArrayDB(const std::map* data, + FEConfigOddWeightInfo* iconf) noexcept(false); + + void fetchData(std::map* fillMap, + FEConfigOddWeightInfo* iconf) noexcept(false); + + // User data + int m_group_id; + float m_w0; + float m_w1; + float m_w2; + float m_w3; + float m_w4; + float m_w5; +}; + +#endif diff --git a/OnlineDB/EcalCondDB/interface/FEConfigOddWeightInfo.h b/OnlineDB/EcalCondDB/interface/FEConfigOddWeightInfo.h new file mode 100644 index 0000000000000..cc93d264ed2eb --- /dev/null +++ b/OnlineDB/EcalCondDB/interface/FEConfigOddWeightInfo.h @@ -0,0 +1,60 @@ +#ifndef ONLINEDB_ECALCONDDB_FECONFIGODDWEIGHTINFO_H +#define ONLINEDB_ECALCONDDB_FECONFIGODDWEIGHTINFO_H + +#include +#include + +#include "OnlineDB/EcalCondDB/interface/IODConfig.h" +#include "OnlineDB/EcalCondDB/interface/Tm.h" +#include "OnlineDB/EcalCondDB/interface/DateHandler.h" + +class FEConfigOddWeightInfo : public IODConfig { +public: + friend class EcalCondDBInterface; + + FEConfigOddWeightInfo(); + ~FEConfigOddWeightInfo() override; + + // Methods for user data + inline std::string getTable() override { return "FE_CONFIG_WEIGHT2_INFO"; } + + void setNumberOfGroups(int n) { m_ngr = n; } + int getNumberOfGroups() const { return m_ngr; } + + inline void setId(int id) { m_ID = id; } + inline int getId() const { return m_ID; } + // for compatibility + void setID(int id) { setId(id); } + int getID() { return getId(); } + // the tag is already in IODConfig + inline void setVersion(int id) { m_version = id; } + inline int getVersion() const { return m_version; } + + Tm getDBTime() const { return m_db_time; } + void setDBTime(const Tm& x) { m_db_time = x; } + + // Methods from IUniqueDBObject + int fetchID() noexcept(false); + int fetchNextId() noexcept(false); + void setByID(int id) noexcept(false); + void setParameters(const std::map& my_keys_map); + + // operators + inline bool operator==(const FEConfigOddWeightInfo& r) const { return (m_ID == r.m_ID); } + inline bool operator!=(const FEConfigOddWeightInfo& r) const { return !(*this == r); } + +private: + // User data for this IOV + int m_ngr; + int m_ID; + Tm m_db_time; + int m_version; + + void prepareWrite() noexcept(false) override; + void writeDB() noexcept(false); + void clear(); + void fetchData(FEConfigOddWeightInfo* result) noexcept(false); + void fetchLastData(FEConfigOddWeightInfo* result) noexcept(false); +}; + +#endif diff --git a/OnlineDB/EcalCondDB/interface/FEConfigOddWeightModeDat.h b/OnlineDB/EcalCondDB/interface/FEConfigOddWeightModeDat.h new file mode 100644 index 0000000000000..2f3a5671c8e2d --- /dev/null +++ b/OnlineDB/EcalCondDB/interface/FEConfigOddWeightModeDat.h @@ -0,0 +1,139 @@ +#ifndef ONLINEDB_ECALCONDDB_FECONFIGODDWEIGHTMODEDAT_H +#define ONLINEDB_ECALCONDDB_FECONFIGODDWEIGHTMODEDAT_H + +#include +#include + +#include "OnlineDB/EcalCondDB/interface/IDataItem.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigOddWeightInfo.h" +#include "OnlineDB/EcalCondDB/interface/EcalLogicID.h" + +class FEConfigOddWeightModeDat : public IDataItem { +public: + friend class EcalCondDBInterface; // XXX temp should not need + FEConfigOddWeightModeDat(); + ~FEConfigOddWeightModeDat() override; + + // User data methods + inline std::string getTable() override { return "FE_WEIGHT2_MODE_DAT"; } + + inline void setEnableEBOddFilter(int x) { m_en_EB_flt = x; } + inline float getEnableEBOddFilter() const { return m_en_EB_flt; } + inline void setEnableEEOddFilter(int x) { m_en_EE_flt = x; } + inline float getEnableEEOddFilter() const { return m_en_EE_flt; } + + inline void setEnableEBOddPeakFinder(int x) { m_en_EB_pf = x; } + inline float getEnableEBOddPeakFinder() const { return m_en_EB_pf; } + inline void setEnableEEOddPeakFinder(int x) { m_en_EE_pf = x; } + inline float getEnableEEOddPeakFinder() const { return m_en_EE_pf; } + + inline void setDisableEBEvenPeakFinder(int x) { m_dis_EB_even_pf = x; } + inline float getDisableEBEvenPeakFinder() const { return m_dis_EB_even_pf; } + inline void setDisableEEEvenPeakFinder(int x) { m_dis_EE_even_pf = x; } + inline float getDisableEEEvenPeakFinder() const { return m_dis_EE_even_pf; } + + inline void setFenixEBStripOutput(int x) { m_fe_EB_strout = x; } + inline float getFenixEBStripOutput() const { return m_fe_EB_strout; } + inline void setFenixEEStripOutput(int x) { m_fe_EE_strout = x; } + inline float getFenixEEStripOutput() const { return m_fe_EE_strout; } + + inline void setFenixEBStripInfobit2(int x) { m_fe_EB_strib2 = x; } + inline float getFenixEBStripInfobit2() const { return m_fe_EB_strib2; } + inline void setFenixEEStripInfobit2(int x) { m_fe_EE_strib2 = x; } + inline float getFenixEEStripInfobit2() const { return m_fe_EE_strib2; } + + inline void setFenixEBTcpOutput(int x) { m_fe_EB_tcpout = x; } + inline float getFenixEBTcpOutput() const { return m_fe_EB_tcpout; } + inline void setFenixEBTcpInfoBit1(int x) { m_fe_EB_tcpib1 = x; } + inline float getFenixEBTcpInfobit1() const { return m_fe_EB_tcpib1; } + + inline void setFenixEETcpOutput(int x) { m_fe_EE_tcpout = x; } + inline float getFenixEETcpOutput() const { return m_fe_EE_tcpout; } + inline void setFenixEETcpInfoBit1(int x) { m_fe_EE_tcpib1 = x; } + inline float getFenixEETcpInfobit1() const { return m_fe_EE_tcpib1; } + + // redundant methods for simplification of the code + + inline void setFenixPar1(int x) { m_en_EB_flt = x; } + inline float getFenixPar1() const { return m_en_EB_flt; } + inline void setFenixPar2(int x) { m_en_EE_flt = x; } + inline float getFenixPar2() const { return m_en_EE_flt; } + + inline void setFenixPar3(int x) { m_en_EB_pf = x; } + inline float getFenixPar3() const { return m_en_EB_pf; } + inline void setFenixPar4(int x) { m_en_EE_pf = x; } + inline float getFenixPar4() const { return m_en_EE_pf; } + + inline void setFenixPar5(int x) { m_dis_EB_even_pf = x; } + inline float getFenixPar5() const { return m_dis_EB_even_pf; } + + inline void setFenixPar6(int x) { m_dis_EE_even_pf = x; } + inline float getFenixPar6() const { return m_dis_EE_even_pf; } + + inline void setFenixPar7(int x) { m_fe_EB_strout = x; } + inline float getFenixPar7() const { return m_fe_EB_strout; } + inline void setFenixPar8(int x) { m_fe_EE_strout = x; } + inline float getFenixPar8() const { return m_fe_EE_strout; } + + inline void setFenixPar9(int x) { m_fe_EB_strib2 = x; } + inline float getFenixPar9() const { return m_fe_EB_strib2; } + inline void setFenixPar10(int x) { m_fe_EE_strib2 = x; } + inline float getFenixPar10() const { return m_fe_EE_strib2; } + + inline void setFenixPar11(int x) { m_fe_EB_tcpout = x; } + inline float getFenixPar11() const { return m_fe_EB_tcpout; } + inline void setFenixPar12(int x) { m_fe_EB_tcpib1 = x; } + inline float getFenixPar12() const { return m_fe_EB_tcpib1; } + + inline void setFenixPar13(int x) { m_fe_EE_tcpout = x; } + inline float getFenixPar13() const { return m_fe_EE_tcpout; } + inline void setFenixPar14(int x) { m_fe_EE_tcpib1 = x; } + inline float getFenixPar14() const { return m_fe_EE_tcpib1; } + + // extra parameters + + inline void setFenixPar15(int x) { m_fe_par15 = x; } + inline float getFenixPar15() const { return m_fe_par15; } + inline void setFenixPar16(int x) { m_fe_par16 = x; } + inline float getFenixPar16() const { return m_fe_par16; } + inline void setFenixPar17(int x) { m_fe_par17 = x; } + inline float getFenixPar17() const { return m_fe_par17; } + inline void setFenixPar18(int x) { m_fe_par18 = x; } + inline float getFenixPar18() const { return m_fe_par18; } + +private: + void prepareWrite() noexcept(false) override; + + void writeDB(const EcalLogicID* ecid, + const FEConfigOddWeightModeDat* item, + FEConfigOddWeightInfo* iconf) noexcept(false); + + void writeArrayDB(const std::map* data, + FEConfigOddWeightInfo* iconf) noexcept(false); + + void fetchData(std::map* fillMap, + FEConfigOddWeightInfo* iconf) noexcept(false); + + // User data + + int m_en_EB_flt; + int m_en_EE_flt; + int m_en_EB_pf; + int m_en_EE_pf; + int m_dis_EB_even_pf; + int m_dis_EE_even_pf; + int m_fe_EB_strout; + int m_fe_EE_strout; + int m_fe_EB_strib2; + int m_fe_EE_strib2; + int m_fe_EB_tcpout; + int m_fe_EB_tcpib1; + int m_fe_EE_tcpout; + int m_fe_EE_tcpib1; + int m_fe_par15; + int m_fe_par16; + int m_fe_par17; + int m_fe_par18; +}; + +#endif diff --git a/OnlineDB/EcalCondDB/interface/all_fe_config_types.h b/OnlineDB/EcalCondDB/interface/all_fe_config_types.h index c020d9a1d53dd..556a9f4de6148 100644 --- a/OnlineDB/EcalCondDB/interface/all_fe_config_types.h +++ b/OnlineDB/EcalCondDB/interface/all_fe_config_types.h @@ -1,40 +1,43 @@ -#ifndef ALLFECONFIG -#define ALLFECONFIG +#ifndef ONLINEDB_ECALCONDDB_ALL_FE_CONFIG_TYPES_H +#define ONLINEDB_ECALCONDDB_ALL_FE_CONFIG_TYPES_H -#include "OnlineDB/EcalCondDB/interface/FEConfigPedInfo.h" -#include "OnlineDB/EcalCondDB/interface/FEConfigPedDat.h" -#include "OnlineDB/EcalCondDB/interface/FEConfigFgrInfo.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigBadStripDat.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigBadStripInfo.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigBadTTDat.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigBadTTInfo.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigBadXTDat.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigBadXTInfo.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigCokeDat.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigCokeInfo.h" #include "OnlineDB/EcalCondDB/interface/FEConfigFgrDat.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigFgrEEStripDat.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigFgrEETowerDat.h" #include "OnlineDB/EcalCondDB/interface/FEConfigFgrGroupDat.h" -#include "OnlineDB/EcalCondDB/interface/FEConfigLinDat.h" -#include "OnlineDB/EcalCondDB/interface/FEConfigLinInfo.h" -#include "OnlineDB/EcalCondDB/interface/FEConfigLUTInfo.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigFgrInfo.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigFgrParamDat.h" #include "OnlineDB/EcalCondDB/interface/FEConfigLUTDat.h" #include "OnlineDB/EcalCondDB/interface/FEConfigLUTGroupDat.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigLUTInfo.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigLUTParamDat.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigLinDat.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigLinInfo.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigLinParamDat.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigMainInfo.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigOddWeightDat.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigOddWeightGroupDat.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigOddWeightInfo.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigOddWeightModeDat.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigParamDat.h" #include "OnlineDB/EcalCondDB/interface/FEConfigPedDat.h" #include "OnlineDB/EcalCondDB/interface/FEConfigPedInfo.h" #include "OnlineDB/EcalCondDB/interface/FEConfigSlidingDat.h" #include "OnlineDB/EcalCondDB/interface/FEConfigSlidingInfo.h" -#include "OnlineDB/EcalCondDB/interface/FEConfigWeightInfo.h" -#include "OnlineDB/EcalCondDB/interface/FEConfigWeightGroupDat.h" -#include "OnlineDB/EcalCondDB/interface/FEConfigWeightDat.h" -#include "OnlineDB/EcalCondDB/interface/FEConfigBadXTDat.h" -#include "OnlineDB/EcalCondDB/interface/FEConfigBadTTDat.h" -#include "OnlineDB/EcalCondDB/interface/FEConfigBadXTInfo.h" -#include "OnlineDB/EcalCondDB/interface/FEConfigBadTTInfo.h" -#include "OnlineDB/EcalCondDB/interface/FEConfigMainInfo.h" -#include "OnlineDB/EcalCondDB/interface/FEConfigFgrEEStripDat.h" -#include "OnlineDB/EcalCondDB/interface/FEConfigFgrEETowerDat.h" -#include "OnlineDB/EcalCondDB/interface/FEConfigFgrParamDat.h" -#include "OnlineDB/EcalCondDB/interface/FEConfigLinParamDat.h" -#include "OnlineDB/EcalCondDB/interface/FEConfigLUTParamDat.h" - -#include "OnlineDB/EcalCondDB/interface/FEConfigTimingInfo.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigSpikeDat.h" #include "OnlineDB/EcalCondDB/interface/FEConfigSpikeInfo.h" -#include "OnlineDB/EcalCondDB/interface/FEConfigBadStripInfo.h" - #include "OnlineDB/EcalCondDB/interface/FEConfigTimingDat.h" -#include "OnlineDB/EcalCondDB/interface/FEConfigSpikeDat.h" -#include "OnlineDB/EcalCondDB/interface/FEConfigBadStripDat.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigTimingInfo.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigWeightDat.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigWeightGroupDat.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigWeightInfo.h" #endif diff --git a/OnlineDB/EcalCondDB/src/FEConfigCokeDat.cc b/OnlineDB/EcalCondDB/src/FEConfigCokeDat.cc new file mode 100644 index 0000000000000..ddc2e0941c3da --- /dev/null +++ b/OnlineDB/EcalCondDB/src/FEConfigCokeDat.cc @@ -0,0 +1,337 @@ +#include +#include +#include "OnlineDB/Oracle/interface/Oracle.h" + +#include "OnlineDB/EcalCondDB/interface/FEConfigCokeDat.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigCokeInfo.h" + +using namespace std; +using namespace oracle::occi; + +FEConfigCokeDat::FEConfigCokeDat() { + m_env = nullptr; + m_conn = nullptr; + m_writeStmt = nullptr; + m_readStmt = nullptr; + + clear(); +} + +FEConfigCokeDat::~FEConfigCokeDat() {} + +void FEConfigCokeDat::prepareWrite() noexcept(false) { + this->checkConnection(); + + try { + m_writeStmt = m_conn->createStatement(); + m_writeStmt->setSQL( + "INSERT INTO " + getTable() + + " (coke_conf_id, logic_id, " + " THRESHOLD, SUCC_EVENT_LIMIT, CUMUL_EVENT_LIMIT, SUCC_DETECT_ENABLE, CUMUL_DETECT_ENABLE, THD1_THRESHOLD, " + "SUCC1_EV_LIMIT, CUMUL1_EV_LIMIT, COMBI_MODE, OCC_MODE, COMB_SUCC_DETECT, COMB_CUMUL_DETECT, OCC_DETECT, " + "CUMUL1_DETECT, THD2_THRESHOLD , OCC_LIMIT , THD3_THRESHOLD , CUMUL2_LIMIT , STOP_BUFW ) " + "VALUES (:coke_conf_id, :logic_id, " + ":m1, :m2, :m3, :m4, :m5, :m6, :m7, :m8, :m9, :m10, :m11, :m12, :m13, :m14, :m15, :m16, :m17, :m18, :m19 )"); + } catch (SQLException& e) { + throw(std::runtime_error("FEConfigCokeDat::prepareWrite(): " + e.getMessage())); + } +} + +void FEConfigCokeDat::writeDB(const EcalLogicID* ecid, + const FEConfigCokeDat* item, + FEConfigCokeInfo* iconf) noexcept(false) { + this->checkConnection(); + this->checkPrepare(); + + int iconfID = iconf->fetchID(); + if (!iconfID) { + throw(std::runtime_error("FEConfigCokeDat::writeDB: ICONF not in DB")); + } + + int logicID = ecid->getLogicID(); + if (!logicID) { + throw(std::runtime_error("FEConfigCokeDat::writeDB: Bad EcalLogicID")); + } + + try { + m_writeStmt->setInt(1, iconfID); + m_writeStmt->setInt(2, logicID); + m_writeStmt->setInt(3, item->getPar1()); + m_writeStmt->setInt(4, item->getPar2()); + m_writeStmt->setInt(5, item->getPar3()); + m_writeStmt->setInt(6, item->getPar4()); + m_writeStmt->setInt(7, item->getPar5()); + m_writeStmt->setInt(8, item->getPar6()); + m_writeStmt->setInt(9, item->getPar7()); + m_writeStmt->setInt(10, item->getPar8()); + m_writeStmt->setInt(11, item->getPar9()); + m_writeStmt->setInt(12, item->getPar10()); + m_writeStmt->setInt(13, item->getPar11()); + m_writeStmt->setInt(14, item->getPar12()); + m_writeStmt->setInt(15, item->getPar13()); + m_writeStmt->setInt(16, item->getPar14()); + m_writeStmt->setInt(17, item->getPar15()); + m_writeStmt->setInt(18, item->getPar16()); + m_writeStmt->setInt(19, item->getPar17()); + m_writeStmt->setInt(20, item->getPar18()); + m_writeStmt->setInt(21, item->getPar19()); + + m_writeStmt->executeUpdate(); + } catch (SQLException& e) { + throw(std::runtime_error("FEConfigCokeDat::writeDB(): " + e.getMessage())); + } +} + +void FEConfigCokeDat::fetchData(map* fillMap, FEConfigCokeInfo* iconf) noexcept(false) { + this->checkConnection(); + fillMap->clear(); + + iconf->setConnection(m_env, m_conn); + int iconfID = iconf->fetchID(); + if (!iconfID) { + // throw(std::runtime_error("FEConfigCokeDat::writeDB: ICONF not in DB")); + return; + } + + try { + m_readStmt->setSQL( + "SELECT cv.name, cv.logic_id, cv.id1, cv.id2, cv.id3, cv.maps_to, " + " d.THRESHOLD, d.SUCC_EVENT_LIMIT, d.CUMUL_EVENT_LIMIT, d.SUCC_DETECT_ENABLE, d.CUMUL_DETECT_ENABLE, " + "d.THD1_THRESHOLD, d.SUCC1_EV_LIMIT, d.CUMUL1_EV_LIMIT, d.COMBI_MODE, d.OCC_MODE, d.COMB_SUCC_DETECT, " + "d.COMB_CUMUL_DETECT, d.OCC_DETECT, d.CUMUL1_DETECT, d.THD2_THRESHOLD , d.OCC_LIMIT , d.THD3_THRESHOLD , " + "d.CUMUL2_LIMIT , d.STOP_BUFW " + "FROM channelview cv JOIN " + + getTable() + + " d " + "ON cv.logic_id = d.logic_id AND cv.name = cv.maps_to " + "WHERE coke_conf_id = :coke_conf_id"); + m_readStmt->setInt(1, iconfID); + ResultSet* rset = m_readStmt->executeQuery(); + + std::pair p; + FEConfigCokeDat dat; + while (rset->next()) { + p.first = EcalLogicID(rset->getString(1), // name + rset->getInt(2), // logic_id + rset->getInt(3), // id1 + rset->getInt(4), // id2 + rset->getInt(5), // id3 + rset->getString(6)); // maps_to + + dat.setPar1(rset->getInt(7)); + dat.setPar2(rset->getInt(8)); + dat.setPar3(rset->getInt(9)); + dat.setPar4(rset->getInt(10)); + dat.setPar5(rset->getInt(11)); + dat.setPar6(rset->getInt(12)); + dat.setPar7(rset->getInt(13)); + dat.setPar8(rset->getInt(14)); + dat.setPar9(rset->getInt(15)); + dat.setPar10(rset->getInt(16)); + dat.setPar11(rset->getInt(17)); + dat.setPar12(rset->getInt(18)); + dat.setPar13(rset->getInt(19)); + dat.setPar14(rset->getInt(20)); + dat.setPar15(rset->getInt(21)); + dat.setPar16(rset->getInt(22)); + dat.setPar17(rset->getInt(23)); + dat.setPar18(rset->getInt(24)); + dat.setPar19(rset->getInt(25)); + + p.second = dat; + fillMap->insert(p); + } + } catch (SQLException& e) { + throw(std::runtime_error("FEConfigCokeDat::fetchData: " + e.getMessage())); + } +} + +void FEConfigCokeDat::writeArrayDB(const std::map* data, + FEConfigCokeInfo* iconf) noexcept(false) { + this->checkConnection(); + this->checkPrepare(); + + int iconfID = iconf->fetchID(); + if (!iconfID) { + throw(std::runtime_error("FEConfigCokeDat::writeArrayDB: ICONF not in DB")); + } + + int nrows = data->size(); + int* ids = new int[nrows]; + int* iconfid_vec = new int[nrows]; + int* xx1 = new int[nrows]; + int* xx2 = new int[nrows]; + int* xx3 = new int[nrows]; + int* xx4 = new int[nrows]; + int* xx5 = new int[nrows]; + int* xx6 = new int[nrows]; + int* xx7 = new int[nrows]; + int* xx8 = new int[nrows]; + int* xx9 = new int[nrows]; + int* xx10 = new int[nrows]; + int* xx11 = new int[nrows]; + int* xx12 = new int[nrows]; + int* xx13 = new int[nrows]; + int* xx14 = new int[nrows]; + int* xx15 = new int[nrows]; + int* xx16 = new int[nrows]; + int* xx17 = new int[nrows]; + int* xx18 = new int[nrows]; + int* xx19 = new int[nrows]; + + ub2* ids_len = new ub2[nrows]; + ub2* iconf_len = new ub2[nrows]; + ub2* x1_len = new ub2[nrows]; + ub2* x2_len = new ub2[nrows]; + ub2* x3_len = new ub2[nrows]; + ub2* x4_len = new ub2[nrows]; + ub2* x5_len = new ub2[nrows]; + ub2* x6_len = new ub2[nrows]; + ub2* x7_len = new ub2[nrows]; + ub2* x8_len = new ub2[nrows]; + ub2* x9_len = new ub2[nrows]; + ub2* x10_len = new ub2[nrows]; + ub2* x11_len = new ub2[nrows]; + ub2* x12_len = new ub2[nrows]; + ub2* x13_len = new ub2[nrows]; + ub2* x14_len = new ub2[nrows]; + ub2* x15_len = new ub2[nrows]; + ub2* x16_len = new ub2[nrows]; + ub2* x17_len = new ub2[nrows]; + ub2* x18_len = new ub2[nrows]; + ub2* x19_len = new ub2[nrows]; + + const EcalLogicID* channel; + const FEConfigCokeDat* dataitem; + int count = 0; + typedef map::const_iterator CI; + for (CI p = data->begin(); p != data->end(); ++p) { + channel = &(p->first); + int logicID = channel->getLogicID(); + if (!logicID) { + throw(std::runtime_error("FEConfigCokeDat::writeArrayDB: Bad EcalLogicID")); + } + ids[count] = logicID; + iconfid_vec[count] = iconfID; + + dataitem = &(p->second); + + xx1[count] = dataitem->getPar1(); + xx2[count] = dataitem->getPar2(); + xx3[count] = dataitem->getPar3(); + xx4[count] = dataitem->getPar4(); + xx5[count] = dataitem->getPar5(); + xx6[count] = dataitem->getPar6(); + xx7[count] = dataitem->getPar7(); + xx8[count] = dataitem->getPar8(); + xx9[count] = dataitem->getPar9(); + xx10[count] = dataitem->getPar10(); + xx11[count] = dataitem->getPar11(); + xx12[count] = dataitem->getPar12(); + xx13[count] = dataitem->getPar13(); + xx14[count] = dataitem->getPar14(); + xx15[count] = dataitem->getPar15(); + xx16[count] = dataitem->getPar16(); + xx17[count] = dataitem->getPar17(); + xx18[count] = dataitem->getPar18(); + xx19[count] = dataitem->getPar19(); + + ids_len[count] = sizeof(ids[count]); + iconf_len[count] = sizeof(iconfid_vec[count]); + + x1_len[count] = sizeof(xx1[count]); + x2_len[count] = sizeof(xx2[count]); + x3_len[count] = sizeof(xx3[count]); + x4_len[count] = sizeof(xx4[count]); + x5_len[count] = sizeof(xx5[count]); + x6_len[count] = sizeof(xx6[count]); + x7_len[count] = sizeof(xx7[count]); + x8_len[count] = sizeof(xx8[count]); + x9_len[count] = sizeof(xx9[count]); + x10_len[count] = sizeof(xx10[count]); + x11_len[count] = sizeof(xx11[count]); + x12_len[count] = sizeof(xx12[count]); + x13_len[count] = sizeof(xx13[count]); + x14_len[count] = sizeof(xx14[count]); + x15_len[count] = sizeof(xx15[count]); + x16_len[count] = sizeof(xx16[count]); + x17_len[count] = sizeof(xx17[count]); + x18_len[count] = sizeof(xx18[count]); + x19_len[count] = sizeof(xx19[count]); + + count++; + } + + try { + m_writeStmt->setDataBuffer(1, (dvoid*)iconfid_vec, OCCIINT, sizeof(iconfid_vec[0]), iconf_len); + m_writeStmt->setDataBuffer(2, (dvoid*)ids, OCCIINT, sizeof(ids[0]), ids_len); + m_writeStmt->setDataBuffer(3, (dvoid*)xx1, OCCIINT, sizeof(xx1[0]), x1_len); + m_writeStmt->setDataBuffer(4, (dvoid*)xx2, OCCIINT, sizeof(xx2[0]), x2_len); + m_writeStmt->setDataBuffer(5, (dvoid*)xx3, OCCIINT, sizeof(xx3[0]), x3_len); + m_writeStmt->setDataBuffer(6, (dvoid*)xx4, OCCIINT, sizeof(xx4[0]), x4_len); + m_writeStmt->setDataBuffer(7, (dvoid*)xx5, OCCIINT, sizeof(xx5[0]), x5_len); + m_writeStmt->setDataBuffer(8, (dvoid*)xx6, OCCIINT, sizeof(xx6[0]), x6_len); + m_writeStmt->setDataBuffer(9, (dvoid*)xx7, OCCIINT, sizeof(xx7[0]), x7_len); + m_writeStmt->setDataBuffer(10, (dvoid*)xx8, OCCIINT, sizeof(xx8[0]), x8_len); + m_writeStmt->setDataBuffer(11, (dvoid*)xx9, OCCIINT, sizeof(xx9[0]), x9_len); + m_writeStmt->setDataBuffer(12, (dvoid*)xx10, OCCIINT, sizeof(xx10[0]), x10_len); + m_writeStmt->setDataBuffer(13, (dvoid*)xx11, OCCIINT, sizeof(xx11[0]), x11_len); + m_writeStmt->setDataBuffer(14, (dvoid*)xx12, OCCIINT, sizeof(xx12[0]), x12_len); + m_writeStmt->setDataBuffer(15, (dvoid*)xx13, OCCIINT, sizeof(xx13[0]), x13_len); + m_writeStmt->setDataBuffer(16, (dvoid*)xx14, OCCIINT, sizeof(xx14[0]), x14_len); + m_writeStmt->setDataBuffer(17, (dvoid*)xx15, OCCIINT, sizeof(xx15[0]), x15_len); + m_writeStmt->setDataBuffer(18, (dvoid*)xx16, OCCIINT, sizeof(xx16[0]), x16_len); + m_writeStmt->setDataBuffer(19, (dvoid*)xx17, OCCIINT, sizeof(xx17[0]), x17_len); + m_writeStmt->setDataBuffer(20, (dvoid*)xx18, OCCIINT, sizeof(xx18[0]), x18_len); + m_writeStmt->setDataBuffer(21, (dvoid*)xx19, OCCIINT, sizeof(xx19[0]), x19_len); + + m_writeStmt->executeArrayUpdate(nrows); + + delete[] ids; + delete[] iconfid_vec; + delete[] xx1; + delete[] xx2; + delete[] xx3; + delete[] xx4; + delete[] xx5; + delete[] xx6; + delete[] xx7; + delete[] xx8; + delete[] xx9; + delete[] xx10; + delete[] xx11; + delete[] xx12; + delete[] xx13; + delete[] xx14; + delete[] xx15; + delete[] xx16; + delete[] xx17; + delete[] xx18; + delete[] xx19; + + delete[] ids_len; + delete[] iconf_len; + delete[] x1_len; + delete[] x2_len; + delete[] x3_len; + delete[] x4_len; + delete[] x5_len; + delete[] x6_len; + delete[] x7_len; + delete[] x8_len; + delete[] x9_len; + delete[] x10_len; + delete[] x11_len; + delete[] x12_len; + delete[] x13_len; + delete[] x14_len; + delete[] x15_len; + delete[] x16_len; + delete[] x17_len; + delete[] x18_len; + delete[] x19_len; + + } catch (SQLException& e) { + throw(std::runtime_error("FEConfigCokeDat::writeArrayDB(): " + e.getMessage())); + } +} diff --git a/OnlineDB/EcalCondDB/src/FEConfigCokeInfo.cc b/OnlineDB/EcalCondDB/src/FEConfigCokeInfo.cc new file mode 100644 index 0000000000000..e8af17b898044 --- /dev/null +++ b/OnlineDB/EcalCondDB/src/FEConfigCokeInfo.cc @@ -0,0 +1,214 @@ +#include +#include +#include +#include "OnlineDB/Oracle/interface/Oracle.h" +#include +#include "OnlineDB/EcalCondDB/interface/FEConfigCokeInfo.h" +#include "OnlineDB/EcalCondDB/interface/Tm.h" +#include "OnlineDB/EcalCondDB/interface/DateHandler.h" + +using namespace std; +using namespace oracle::occi; + +FEConfigCokeInfo::FEConfigCokeInfo() { + m_env = nullptr; + m_conn = nullptr; + m_writeStmt = nullptr; + m_readStmt = nullptr; + m_config_tag = ""; + m_version = 0; + m_ID = 0; + clear(); +} + +void FEConfigCokeInfo::clear() {} + +FEConfigCokeInfo::~FEConfigCokeInfo() {} + +int FEConfigCokeInfo::fetchNextId() noexcept(false) { + int result = 0; + try { + this->checkConnection(); + + m_readStmt = m_conn->createStatement(); + m_readStmt->setSQL("select FE_CONFIG_COKE_SQ.NextVal from DUAL "); + ResultSet* rset = m_readStmt->executeQuery(); + while (rset->next()) { + result = rset->getInt(1); + } + result++; + m_conn->terminateStatement(m_readStmt); + return result; + + } catch (SQLException& e) { + throw(std::runtime_error(std::string("FEConfigCokeInfo::fetchNextId(): ") + e.getMessage())); + } +} + +void FEConfigCokeInfo::prepareWrite() noexcept(false) { + this->checkConnection(); + + int next_id = 0; + if (getId() == 0) { + next_id = fetchNextId(); + } + + try { + m_writeStmt = m_conn->createStatement(); + m_writeStmt->setSQL("INSERT INTO " + getTable() + + " ( coke_conf_id, tag, version) " + " VALUES ( :1, :2, :3 ) "); + + m_writeStmt->setInt(1, next_id); + m_ID = next_id; + + } catch (SQLException& e) { + throw(std::runtime_error(std::string("FEConfigCokeInfo::prepareWrite(): ") + e.getMessage())); + } +} + +void FEConfigCokeInfo::setParameters(const std::map& my_keys_map) { + // parses the result of the XML parser that is a map of + // string string with variable name variable value + + for (std::map::const_iterator ci = my_keys_map.begin(); ci != my_keys_map.end(); ci++) { + if (ci->first == "VERSION") + setVersion(atoi(ci->second.c_str())); + if (ci->first == "TAG") + setConfigTag(ci->second); + } +} + +void FEConfigCokeInfo::writeDB() noexcept(false) { + this->checkConnection(); + this->checkPrepare(); + + try { + // number 1 is the id + m_writeStmt->setString(2, this->getConfigTag()); + m_writeStmt->setInt(3, this->getVersion()); + + m_writeStmt->executeUpdate(); + + } catch (SQLException& e) { + throw(std::runtime_error(std::string("FEConfigCokeInfo::writeDB(): ") + e.getMessage())); + } + // Now get the ID + if (!this->fetchID()) { + throw(std::runtime_error("FEConfigCokeInfo::writeDB: Failed to write")); + } +} + +void FEConfigCokeInfo::fetchData(FEConfigCokeInfo* result) noexcept(false) { + this->checkConnection(); + result->clear(); + if (result->getId() == 0 && (result->getConfigTag().empty())) { + throw(std::runtime_error("FEConfigCokeInfo::fetchData(): no Id defined for this FEConfigCokeInfo ")); + } + + try { + DateHandler dh(m_env, m_conn); + + m_readStmt->setSQL("SELECT * FROM " + getTable() + " where ( coke_conf_id= :1 or (tag=:2 AND version=:3 ) )"); + m_readStmt->setInt(1, result->getId()); + m_readStmt->setString(2, result->getConfigTag()); + m_readStmt->setInt(3, result->getVersion()); + ResultSet* rset = m_readStmt->executeQuery(); + + rset->next(); + + // 1 is the id and 2 is the config tag and 3 is the version + + result->setId(rset->getInt(1)); + result->setConfigTag(rset->getString(2)); + result->setVersion(rset->getInt(3)); + + Date dbdate = rset->getDate(4); + result->setDBTime(dh.dateToTm(dbdate)); + + } catch (SQLException& e) { + throw(std::runtime_error(std::string("FEConfigCokeInfo::fetchData(): ") + e.getMessage())); + } +} + +void FEConfigCokeInfo::fetchLastData(FEConfigCokeInfo* result) noexcept(false) { + this->checkConnection(); + result->clear(); + try { + DateHandler dh(m_env, m_conn); + + m_readStmt->setSQL("SELECT * FROM " + getTable() + " where coke_conf_id = ( select max( coke_conf_id) from " + + getTable() + " ) "); + ResultSet* rset = m_readStmt->executeQuery(); + + rset->next(); + + result->setId(rset->getInt(1)); + result->setConfigTag(rset->getString(2)); + result->setVersion(rset->getInt(3)); + Date dbdate = rset->getDate(4); + result->setDBTime(dh.dateToTm(dbdate)); + + } catch (SQLException& e) { + throw(std::runtime_error(std::string("FEConfigCokeInfo::fetchData(): ") + e.getMessage())); + } +} + +int FEConfigCokeInfo::fetchID() noexcept(false) { + // Return from memory if available + if (m_ID != 0) { + return m_ID; + } + + this->checkConnection(); + + try { + Statement* stmt = m_conn->createStatement(); + stmt->setSQL("SELECT coke_conf_id FROM " + getTable() + " WHERE tag=:1 and version=:2 "); + + stmt->setString(1, getConfigTag()); + stmt->setInt(2, getVersion()); + + ResultSet* rset = stmt->executeQuery(); + + if (rset->next()) { + m_ID = rset->getInt(1); + } else { + m_ID = 0; + } + m_conn->terminateStatement(stmt); + } catch (SQLException& e) { + throw(std::runtime_error(std::string("FEConfigCokeInfo::fetchID: ") + e.getMessage())); + } + + return m_ID; +} + +void FEConfigCokeInfo::setByID(int id) noexcept(false) { + this->checkConnection(); + + DateHandler dh(m_env, m_conn); + + try { + Statement* stmt = m_conn->createStatement(); + + stmt->setSQL("SELECT * FROM " + getTable() + " WHERE coke_conf_id = :1"); + stmt->setInt(1, id); + + ResultSet* rset = stmt->executeQuery(); + if (rset->next()) { + this->setId(rset->getInt(1)); + this->setConfigTag(rset->getString(2)); + this->setVersion(rset->getInt(3)); + + Date dbdate = rset->getDate(4); + this->setDBTime(dh.dateToTm(dbdate)); + } else { + throw(std::runtime_error("FEConfigCokeInfo::setByID: Given config_id is not in the database")); + } + + m_conn->terminateStatement(stmt); + } catch (SQLException& e) { + throw(std::runtime_error(std::string("FEConfigCokeInfo::setByID: ") + e.getMessage())); + } +} diff --git a/OnlineDB/EcalCondDB/src/FEConfigMainInfo.cc b/OnlineDB/EcalCondDB/src/FEConfigMainInfo.cc index 383af4f9e0bfd..0dd5473f033ef 100644 --- a/OnlineDB/EcalCondDB/src/FEConfigMainInfo.cc +++ b/OnlineDB/EcalCondDB/src/FEConfigMainInfo.cc @@ -34,6 +34,8 @@ void FEConfigMainInfo::clear() { m_tim_id = 0; m_spi_id = 0; m_bst_id = 0; + m_coke_id = 0; + m_wei2_id = 0; m_db_time = Tm(); } @@ -113,8 +115,9 @@ void FEConfigMainInfo::prepareWrite() noexcept(false) { m_writeStmt = m_conn->createStatement(); m_writeStmt->setSQL( "INSERT INTO fe_config_main (conf_id, ped_conf_id, lin_conf_id, lut_conf_id, fgr_conf_id, sli_conf_id, " - "wei_conf_id, spi_conf_id, tim_conf_id, bxt_conf_id, btt_conf_id, bst_conf_id, tag, version, description) " - " VALUES (:1, :2, :3 , :4, :5, :6 ,:7, :8, :9, :10, :11, :12, :13, :14, :15 )"); + "wei_conf_id, spi_conf_id, tim_conf_id, bxt_conf_id, btt_conf_id, bst_conf_id, coke_conf_id, wei2_conf_id, " + "tag, version, description) " + " VALUES (:1, :2, :3 , :4, :5, :6 ,:7, :8, :9, :10, :11, :12, :13, :14, :15, :16, :17 )"); m_writeStmt->setInt(1, next_id); m_ID = next_id; @@ -143,9 +146,11 @@ void FEConfigMainInfo::writeDB() noexcept(false) { m_writeStmt->setInt(10, this->getBxtId()); m_writeStmt->setInt(11, this->getBttId()); m_writeStmt->setInt(12, this->getBstId()); - m_writeStmt->setString(13, this->getConfigTag()); - m_writeStmt->setInt(14, this->getVersion()); - m_writeStmt->setString(15, this->getDescription()); + m_writeStmt->setInt(13, this->getCokeId()); + m_writeStmt->setInt(14, this->getWei2Id()); + m_writeStmt->setString(15, this->getConfigTag()); + m_writeStmt->setInt(16, this->getVersion()); + m_writeStmt->setString(17, this->getDescription()); m_writeStmt->executeUpdate(); } catch (SQLException& e) { @@ -194,7 +199,10 @@ void FEConfigMainInfo::setByID(int id) noexcept(false) { try { Statement* stmt = m_conn->createStatement(); - stmt->setSQL("SELECT * FROM FE_CONFIG_MAIN WHERE conf_id = :1 "); + stmt->setSQL( + "SELECT conf_id, ped_conf_id, lin_conf_id, lut_conf_id, fgr_conf_id, sli_conf_id, wei_conf_id, spi_conf_id, " + "tim_conf_id, bxt_conf_id, btt_conf_id, bst_conf_id, coke_conf_id, wei2_conf_id, tag, version, description, " + "db_timestamp FROM FE_CONFIG_MAIN WHERE conf_id = :1 "); stmt->setInt(1, id); ResultSet* rset = stmt->executeQuery(); @@ -211,10 +219,12 @@ void FEConfigMainInfo::setByID(int id) noexcept(false) { setBxtId(rset->getInt(10)); setBttId(rset->getInt(11)); setBstId(rset->getInt(12)); - setConfigTag(rset->getString(13)); - setVersion(rset->getInt(14)); - setDescription(rset->getString(15)); - Date dbdate = rset->getDate(16); + setCokeId(rset->getInt(13)); + setWei2Id(rset->getInt(14)); + setConfigTag(rset->getString(15)); + setVersion(rset->getInt(16)); + setDescription(rset->getString(17)); + Date dbdate = rset->getDate(18); setDBTime(dh.dateToTm(dbdate)); m_ID = id; } else { @@ -243,7 +253,10 @@ void FEConfigMainInfo::fetchData(FEConfigMainInfo* result) noexcept(false) { } try { - m_readStmt->setSQL("SELECT * FROM FE_CONFIG_MAIN WHERE conf_id = :1 "); + m_readStmt->setSQL( + "SELECT conf_id, ped_conf_id, lin_conf_id, lut_conf_id, fgr_conf_id, sli_conf_id, wei_conf_id, spi_conf_id, " + "tim_conf_id, bxt_conf_id, btt_conf_id, bst_conf_id, coke_conf_id, wei2_conf_id, tag, version, description, " + "db_timestamp FROM FE_CONFIG_MAIN WHERE conf_id = :1 "); std::cout << " ### 2 getId from FEConfigMainInfo = " << result->getId() << std::endl; @@ -266,11 +279,13 @@ void FEConfigMainInfo::fetchData(FEConfigMainInfo* result) noexcept(false) { setBxtId(rset->getInt(10)); setBttId(rset->getInt(11)); setBstId(rset->getInt(12)); + setCokeId(rset->getInt(13)); + setWei2Id(rset->getInt(14)); - result->setConfigTag(rset->getString(13)); - result->setVersion(rset->getInt(14)); - result->setDescription(rset->getString(15)); - Date dbdate = rset->getDate(16); + result->setConfigTag(rset->getString(15)); + result->setVersion(rset->getInt(16)); + result->setDescription(rset->getString(17)); + Date dbdate = rset->getDate(18); result->setDBTime(dh.dateToTm(dbdate)); } catch (SQLException& e) { diff --git a/OnlineDB/EcalCondDB/src/FEConfigOddWeightDat.cc b/OnlineDB/EcalCondDB/src/FEConfigOddWeightDat.cc new file mode 100644 index 0000000000000..eaa9da3880010 --- /dev/null +++ b/OnlineDB/EcalCondDB/src/FEConfigOddWeightDat.cc @@ -0,0 +1,170 @@ +#include +#include +#include "OnlineDB/Oracle/interface/Oracle.h" + +#include "OnlineDB/EcalCondDB/interface/FEConfigOddWeightDat.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigOddWeightInfo.h" + +using namespace std; +using namespace oracle::occi; + +FEConfigOddWeightDat::FEConfigOddWeightDat() { + m_env = nullptr; + m_conn = nullptr; + m_writeStmt = nullptr; + m_readStmt = nullptr; + + m_group_id = 0; +} + +FEConfigOddWeightDat::~FEConfigOddWeightDat() {} + +void FEConfigOddWeightDat::prepareWrite() noexcept(false) { + this->checkConnection(); + + try { + m_writeStmt = m_conn->createStatement(); + m_writeStmt->setSQL( + "INSERT INTO fe_config_weight2_dat (wei2_conf_id, logic_id, " + "group_id ) " + "VALUES (:wei2_conf_id, :logic_id, " + ":group_id )"); + } catch (SQLException& e) { + throw(std::runtime_error("FEConfigOddWeightDat::prepareWrite(): " + e.getMessage())); + } +} + +void FEConfigOddWeightDat::writeDB(const EcalLogicID* ecid, + const FEConfigOddWeightDat* item, + FEConfigOddWeightInfo* iconf) noexcept(false) { + this->checkConnection(); + this->checkPrepare(); + + int iconfID = iconf->fetchID(); + if (!iconfID) { + throw(std::runtime_error("FEConfigOddWeightDat::writeDB: ICONF not in DB")); + } + + int logicID = ecid->getLogicID(); + if (!logicID) { + throw(std::runtime_error("FEConfigOddWeightDat::writeDB: Bad EcalLogicID")); + } + + try { + m_writeStmt->setInt(1, iconfID); + m_writeStmt->setInt(2, logicID); + m_writeStmt->setInt(3, item->getWeightGroupId()); + + m_writeStmt->executeUpdate(); + } catch (SQLException& e) { + throw(std::runtime_error("FEConfigOddWeightDat::writeDB(): " + e.getMessage())); + } +} + +void FEConfigOddWeightDat::fetchData(map* fillMap, + FEConfigOddWeightInfo* iconf) noexcept(false) { + this->checkConnection(); + fillMap->clear(); + + iconf->setConnection(m_env, m_conn); + int iconfID = iconf->fetchID(); + if (!iconfID) { + // throw(std::runtime_error("FEConfigOddWeightDat::writeDB: ICONF not in DB")); + return; + } + + try { + m_readStmt->setSQL( + "SELECT cv.name, cv.logic_id, cv.id1, cv.id2, cv.id3, cv.maps_to, " + "d.group_id " + "FROM channelview cv JOIN fe_config_weight2_dat d " + "ON cv.logic_id = d.logic_id AND cv.name = cv.maps_to " + "WHERE wei2_conf_id = :wei2_conf_id"); + m_readStmt->setInt(1, iconfID); + ResultSet* rset = m_readStmt->executeQuery(); + + std::pair p; + FEConfigOddWeightDat dat; + while (rset->next()) { + p.first = EcalLogicID(rset->getString(1), // name + rset->getInt(2), // logic_id + rset->getInt(3), // id1 + rset->getInt(4), // id2 + rset->getInt(5), // id3 + rset->getString(6)); // maps_to + + dat.setWeightGroupId(rset->getInt(7)); + + p.second = dat; + fillMap->insert(p); + } + } catch (SQLException& e) { + throw(std::runtime_error("FEConfigOddWeightDat::fetchData: " + e.getMessage())); + } +} + +void FEConfigOddWeightDat::writeArrayDB(const std::map* data, + FEConfigOddWeightInfo* iconf) noexcept(false) { + this->checkConnection(); + this->checkPrepare(); + + int iconfID = iconf->fetchID(); + if (!iconfID) { + throw(std::runtime_error("FEConfigOddWeightDat::writeArrayDB: ICONF not in DB")); + } + + int nrows = data->size(); + int* ids = new int[nrows]; + int* iconfid_vec = new int[nrows]; + int* xx = new int[nrows]; + + ub2* ids_len = new ub2[nrows]; + ub2* iconf_len = new ub2[nrows]; + ub2* x_len = new ub2[nrows]; + + const EcalLogicID* channel; + const FEConfigOddWeightDat* dataitem; + int count = 0; + typedef map::const_iterator CI; + for (CI p = data->begin(); p != data->end(); ++p) { + channel = &(p->first); + int logicID = channel->getLogicID(); + if (!logicID) { + throw(std::runtime_error("FEConfigOddWeightDat::writeArrayDB: Bad EcalLogicID")); + } + ids[count] = logicID; + iconfid_vec[count] = iconfID; + + dataitem = &(p->second); + // dataIface.writeDB( channel, dataitem, iconf); + int x = dataitem->getWeightGroupId(); + + xx[count] = x; + + ids_len[count] = sizeof(ids[count]); + iconf_len[count] = sizeof(iconfid_vec[count]); + + x_len[count] = sizeof(xx[count]); + + count++; + } + + try { + m_writeStmt->setDataBuffer(1, (dvoid*)iconfid_vec, OCCIINT, sizeof(iconfid_vec[0]), iconf_len); + m_writeStmt->setDataBuffer(2, (dvoid*)ids, OCCIINT, sizeof(ids[0]), ids_len); + m_writeStmt->setDataBuffer(3, (dvoid*)xx, OCCIINT, sizeof(xx[0]), x_len); + + m_writeStmt->executeArrayUpdate(nrows); + + delete[] ids; + delete[] iconfid_vec; + delete[] xx; + + delete[] ids_len; + delete[] iconf_len; + delete[] x_len; + + } catch (SQLException& e) { + throw(std::runtime_error("FEConfigOddWeightDat::writeArrayDB(): " + e.getMessage())); + } +} diff --git a/OnlineDB/EcalCondDB/src/FEConfigOddWeightGroupDat.cc b/OnlineDB/EcalCondDB/src/FEConfigOddWeightGroupDat.cc new file mode 100644 index 0000000000000..8ba03e9d17222 --- /dev/null +++ b/OnlineDB/EcalCondDB/src/FEConfigOddWeightGroupDat.cc @@ -0,0 +1,228 @@ +#include +#include +#include "OnlineDB/Oracle/interface/Oracle.h" + +#include "OnlineDB/EcalCondDB/interface/FEConfigOddWeightGroupDat.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigOddWeightInfo.h" + +using namespace std; +using namespace oracle::occi; + +FEConfigOddWeightGroupDat::FEConfigOddWeightGroupDat() { + m_env = nullptr; + m_conn = nullptr; + m_writeStmt = nullptr; + m_readStmt = nullptr; + + m_group_id = 0; + m_w0 = 0; + m_w1 = 0; + m_w2 = 0; + m_w3 = 0; + m_w4 = 0; + m_w5 = 0; +} + +FEConfigOddWeightGroupDat::~FEConfigOddWeightGroupDat() {} + +void FEConfigOddWeightGroupDat::prepareWrite() noexcept(false) { + this->checkConnection(); + + try { + m_writeStmt = m_conn->createStatement(); + m_writeStmt->setSQL( + "INSERT INTO fe_weight2_per_group_dat (wei2_conf_id, group_id, " + " w0, w1, w2, w3, w4, w5 ) " + "VALUES (:wei2_conf_id, :group_id, " + ":w0, :w1, :w2, :w3, :w4, :w5 )"); + } catch (SQLException& e) { + throw(std::runtime_error("FEConfigOddWeightGroupDat::prepareWrite(): " + e.getMessage())); + } +} + +void FEConfigOddWeightGroupDat::writeDB(const EcalLogicID* ecid, + const FEConfigOddWeightGroupDat* item, + FEConfigOddWeightInfo* iconf) noexcept(false) { + this->checkConnection(); + this->checkPrepare(); + + int iconfID = iconf->fetchID(); + if (!iconfID) { + throw(std::runtime_error("FEConfigOddWeightGroupDat::writeDB: ICONF not in DB")); + } + /* no need for the logic id in this table + int logicID = ecid->getLogicID(); + if (!logicID) { throw(std::runtime_error("FEConfigOddWeightGroupDat::writeDB: Bad EcalLogicID")); } + */ + + try { + m_writeStmt->setInt(1, iconfID); + + m_writeStmt->setInt(2, item->getWeightGroupId()); + m_writeStmt->setFloat(3, item->getWeight0()); + m_writeStmt->setFloat(4, item->getWeight1()); + m_writeStmt->setFloat(5, item->getWeight2()); + m_writeStmt->setFloat(6, item->getWeight3()); + m_writeStmt->setFloat(7, item->getWeight4()); + m_writeStmt->setFloat(8, item->getWeight5()); + + m_writeStmt->executeUpdate(); + } catch (SQLException& e) { + throw(std::runtime_error("FEConfigOddWeightGroupDat::writeDB(): " + e.getMessage())); + } +} + +void FEConfigOddWeightGroupDat::fetchData(map* fillMap, + FEConfigOddWeightInfo* iconf) noexcept(false) { + this->checkConnection(); + fillMap->clear(); + + iconf->setConnection(m_env, m_conn); + int iconfID = iconf->fetchID(); + if (!iconfID) { + throw(std::runtime_error("FEConfigOddWeightGroupDat::fetchData: ICONF not in DB")); + return; + } + + try { + m_readStmt->setSQL( + "SELECT d.group_id, d.w0, d.w1, d.w2, d.w3, d.w4, d.w5 " + "FROM fe_weight2_per_group_dat d " + "WHERE wei2_conf_id = :wei2_conf_id order by d.group_id "); + m_readStmt->setInt(1, iconfID); + ResultSet* rset = m_readStmt->executeQuery(); + + std::pair p; + FEConfigOddWeightGroupDat dat; + int ig = -1; + while (rset->next()) { + ig++; // we create a dummy logic_id + p.first = EcalLogicID("Group_id", // name + ig); // logic_id + + dat.setWeightGroupId(rset->getInt(1)); + dat.setWeight0(rset->getFloat(2)); + dat.setWeight1(rset->getFloat(3)); + dat.setWeight2(rset->getFloat(4)); + dat.setWeight3(rset->getFloat(5)); + dat.setWeight4(rset->getFloat(6)); + dat.setWeight5(rset->getFloat(7)); + + p.second = dat; + fillMap->insert(p); + } + } catch (SQLException& e) { + throw(std::runtime_error("FEConfigOddWeightGroupDat::fetchData: " + e.getMessage())); + } +} + +void FEConfigOddWeightGroupDat::writeArrayDB(const std::map* data, + FEConfigOddWeightInfo* iconf) noexcept(false) { + this->checkConnection(); + this->checkPrepare(); + + int iconfID = iconf->fetchID(); + if (!iconfID) { + throw(std::runtime_error("FEConfigOddWeightGroupDat::writeArrayDB: ICONF not in DB")); + } + + int nrows = data->size(); + int* ids = new int[nrows]; + int* iconfid_vec = new int[nrows]; + int* xx = new int[nrows]; + float* yy = new float[nrows]; + float* zz = new float[nrows]; + float* rr = new float[nrows]; + float* ss = new float[nrows]; + float* tt = new float[nrows]; + float* ww = new float[nrows]; + + ub2* ids_len = new ub2[nrows]; + ub2* iconf_len = new ub2[nrows]; + ub2* x_len = new ub2[nrows]; + ub2* y_len = new ub2[nrows]; + ub2* z_len = new ub2[nrows]; + ub2* r_len = new ub2[nrows]; + ub2* s_len = new ub2[nrows]; + ub2* t_len = new ub2[nrows]; + ub2* w_len = new ub2[nrows]; + + // const EcalLogicID* channel; + const FEConfigOddWeightGroupDat* dataitem; + int count = 0; + typedef map::const_iterator CI; + for (CI p = data->begin(); p != data->end(); ++p) { + // channel = &(p->first); + // int logicID = channel->getLogicID(); + // if (!logicID) { throw(std::runtime_error("FEConfigOddWeightGroupDat::writeArrayDB: Bad EcalLogicID")); } + // ids[count]=logicID; + iconfid_vec[count] = iconfID; + + dataitem = &(p->second); + // dataIface.writeDB( channel, dataitem, iconf); + int x = dataitem->getWeightGroupId(); + float y = dataitem->getWeight0(); + float z = dataitem->getWeight1(); + float r = dataitem->getWeight2(); + float s = dataitem->getWeight3(); + float t = dataitem->getWeight4(); + float w = dataitem->getWeight5(); + + xx[count] = x; + yy[count] = y; + zz[count] = z; + rr[count] = r; + ss[count] = s; + tt[count] = t; + ww[count] = w; + + // ids_len[count]=sizeof(ids[count]); + iconf_len[count] = sizeof(iconfid_vec[count]); + + x_len[count] = sizeof(xx[count]); + y_len[count] = sizeof(yy[count]); + z_len[count] = sizeof(zz[count]); + r_len[count] = sizeof(rr[count]); + s_len[count] = sizeof(ss[count]); + t_len[count] = sizeof(tt[count]); + w_len[count] = sizeof(ww[count]); + + count++; + } + + try { + m_writeStmt->setDataBuffer(1, (dvoid*)iconfid_vec, OCCIINT, sizeof(iconfid_vec[0]), iconf_len); + m_writeStmt->setDataBuffer(2, (dvoid*)xx, OCCIINT, sizeof(xx[0]), x_len); + m_writeStmt->setDataBuffer(3, (dvoid*)yy, OCCIFLOAT, sizeof(yy[0]), y_len); + m_writeStmt->setDataBuffer(4, (dvoid*)zz, OCCIFLOAT, sizeof(zz[0]), z_len); + m_writeStmt->setDataBuffer(5, (dvoid*)rr, OCCIFLOAT, sizeof(rr[0]), r_len); + m_writeStmt->setDataBuffer(6, (dvoid*)ss, OCCIFLOAT, sizeof(ss[0]), s_len); + m_writeStmt->setDataBuffer(7, (dvoid*)tt, OCCIFLOAT, sizeof(tt[0]), t_len); + m_writeStmt->setDataBuffer(8, (dvoid*)ww, OCCIFLOAT, sizeof(ww[0]), w_len); + + m_writeStmt->executeArrayUpdate(nrows); + + delete[] ids; + delete[] iconfid_vec; + delete[] xx; + delete[] yy; + delete[] zz; + delete[] rr; + delete[] ss; + delete[] tt; + delete[] ww; + + delete[] ids_len; + delete[] iconf_len; + delete[] x_len; + delete[] y_len; + delete[] z_len; + delete[] r_len; + delete[] s_len; + delete[] t_len; + delete[] w_len; + + } catch (SQLException& e) { + throw(std::runtime_error("FEConfigOddWeightGroupDat::writeArrayDB(): " + e.getMessage())); + } +} diff --git a/OnlineDB/EcalCondDB/src/FEConfigOddWeightInfo.cc b/OnlineDB/EcalCondDB/src/FEConfigOddWeightInfo.cc new file mode 100644 index 0000000000000..b85a040903393 --- /dev/null +++ b/OnlineDB/EcalCondDB/src/FEConfigOddWeightInfo.cc @@ -0,0 +1,212 @@ +#include +#include +#include +#include "OnlineDB/Oracle/interface/Oracle.h" +#include +#include "OnlineDB/EcalCondDB/interface/FEConfigOddWeightInfo.h" +#include "OnlineDB/EcalCondDB/interface/Tm.h" +#include "OnlineDB/EcalCondDB/interface/DateHandler.h" + +using namespace std; +using namespace oracle::occi; + +FEConfigOddWeightInfo::FEConfigOddWeightInfo() { + m_env = nullptr; + m_conn = nullptr; + m_writeStmt = nullptr; + m_readStmt = nullptr; + m_config_tag = ""; + m_version = 0; + m_ID = 0; + clear(); +} + +void FEConfigOddWeightInfo::clear() { m_ngr = 0; } + +FEConfigOddWeightInfo::~FEConfigOddWeightInfo() {} + +int FEConfigOddWeightInfo::fetchNextId() noexcept(false) { + int result = 0; + try { + this->checkConnection(); + + m_readStmt = m_conn->createStatement(); + m_readStmt->setSQL("select FE_CONFIG_WEIGHT2GROUP_SQ.NextVal from DUAL "); + ResultSet* rset = m_readStmt->executeQuery(); + while (rset->next()) { + result = rset->getInt(1); + } + result++; + m_conn->terminateStatement(m_readStmt); + return result; + + } catch (SQLException& e) { + throw(std::runtime_error(std::string("FEConfigOddWeightInfo::fetchNextId(): ") + e.getMessage())); + } +} + +void FEConfigOddWeightInfo::prepareWrite() noexcept(false) { + this->checkConnection(); + + int next_id = 0; + if (getId() == 0) { + next_id = fetchNextId(); + } + + try { + m_writeStmt = m_conn->createStatement(); + m_writeStmt->setSQL("INSERT INTO " + getTable() + + " ( wei2_conf_id, tag, number_of_groups) " + " VALUES ( :1, :2, :3 ) "); + + m_writeStmt->setInt(1, next_id); + m_ID = next_id; + + } catch (SQLException& e) { + throw(std::runtime_error(std::string("FEConfigOddWeightInfo::prepareWrite(): ") + e.getMessage())); + } +} + +void FEConfigOddWeightInfo::setParameters(const std::map& my_keys_map) { + // parses the result of the XML parser that is a map of + // string string with variable name variable value + + for (std::map::const_iterator ci = my_keys_map.begin(); ci != my_keys_map.end(); ci++) { + if (ci->first == "TAG") + setConfigTag(ci->second); + if (ci->first == "NUMBER_OF_GROUPS") + setNumberOfGroups(atoi(ci->second.c_str())); + } +} + +void FEConfigOddWeightInfo::writeDB() noexcept(false) { + this->checkConnection(); + this->checkPrepare(); + + try { + // number 1 is the id + m_writeStmt->setString(2, this->getConfigTag()); + m_writeStmt->setInt(3, this->getNumberOfGroups()); + + m_writeStmt->executeUpdate(); + + } catch (SQLException& e) { + throw(std::runtime_error(std::string("FEConfigOddWeightInfo::writeDB(): ") + e.getMessage())); + } + // Now get the ID + if (!this->fetchID()) { + throw(std::runtime_error("FEConfigOddWeightInfo::writeDB: Failed to write")); + } +} + +void FEConfigOddWeightInfo::fetchData(FEConfigOddWeightInfo* result) noexcept(false) { + this->checkConnection(); + result->clear(); + if (result->getId() == 0 && (result->getConfigTag().empty())) { + throw(std::runtime_error("FEConfigOddWeightInfo::fetchData(): no Id defined for this FEConfigOddWeightInfo ")); + } + + try { + DateHandler dh(m_env, m_conn); + + m_readStmt->setSQL("SELECT wei2_conf_id, tag, number_of_groups, db_timestamp FROM " + getTable() + + " where ( wei2_conf_id= :1 or (tag=:2 ) )"); + m_readStmt->setInt(1, result->getId()); + m_readStmt->setString(2, result->getConfigTag()); + ResultSet* rset = m_readStmt->executeQuery(); + + rset->next(); + + // 1 is the id and 2 is the config tag and 3 is the version + + result->setId(rset->getInt(1)); + result->setConfigTag(rset->getString(2)); + result->setNumberOfGroups(rset->getInt(3)); + Date dbdate = rset->getDate(4); + result->setDBTime(dh.dateToTm(dbdate)); + + } catch (SQLException& e) { + throw(std::runtime_error(std::string("FEConfigOddWeightInfo::fetchData(): ") + e.getMessage())); + } +} + +void FEConfigOddWeightInfo::fetchLastData(FEConfigOddWeightInfo* result) noexcept(false) { + this->checkConnection(); + result->clear(); + try { + DateHandler dh(m_env, m_conn); + + m_readStmt->setSQL("SELECT wei2_conf_id, tag, number_of_groups, db_timestamp FROM " + getTable() + + " where wei2_conf_id = ( select max( wei2_conf_id) from " + getTable() + " ) "); + ResultSet* rset = m_readStmt->executeQuery(); + + rset->next(); + + result->setId(rset->getInt(1)); + result->setConfigTag(rset->getString(2)); + result->setNumberOfGroups(rset->getInt(3)); + Date dbdate = rset->getDate(4); + result->setDBTime(dh.dateToTm(dbdate)); + + } catch (SQLException& e) { + throw(std::runtime_error(std::string("FEConfigOddWeightInfo::fetchData(): ") + e.getMessage())); + } +} + +int FEConfigOddWeightInfo::fetchID() noexcept(false) { + // Return from memory if available + if (m_ID != 0) { + return m_ID; + } + + this->checkConnection(); + + try { + Statement* stmt = m_conn->createStatement(); + stmt->setSQL("SELECT wei2_conf_id FROM " + getTable() + " WHERE tag=:1 "); + + stmt->setString(1, getConfigTag()); + + ResultSet* rset = stmt->executeQuery(); + + if (rset->next()) { + m_ID = rset->getInt(1); + } else { + m_ID = 0; + } + m_conn->terminateStatement(stmt); + } catch (SQLException& e) { + throw(std::runtime_error(std::string("FEConfigOddWeightInfo::fetchID: ") + e.getMessage())); + } + + return m_ID; +} + +void FEConfigOddWeightInfo::setByID(int id) noexcept(false) { + this->checkConnection(); + + DateHandler dh(m_env, m_conn); + + try { + Statement* stmt = m_conn->createStatement(); + + stmt->setSQL("SELECT wei2_conf_id, tag, number_of_groups, db_timestamp FROM " + getTable() + + " WHERE wei2_conf_id = :1"); + stmt->setInt(1, id); + + ResultSet* rset = stmt->executeQuery(); + if (rset->next()) { + this->setId(rset->getInt(1)); + this->setConfigTag(rset->getString(2)); + this->setNumberOfGroups(rset->getInt(3)); + Date dbdate = rset->getDate(4); + this->setDBTime(dh.dateToTm(dbdate)); + } else { + throw(std::runtime_error("FEConfigOddWeightInfo::setByID: Given config_id is not in the database")); + } + + m_conn->terminateStatement(stmt); + } catch (SQLException& e) { + throw(std::runtime_error(std::string("FEConfigOddWeightInfo::setByID: ") + e.getMessage())); + } +} diff --git a/OnlineDB/EcalCondDB/src/FEConfigOddWeightModeDat.cc b/OnlineDB/EcalCondDB/src/FEConfigOddWeightModeDat.cc new file mode 100644 index 0000000000000..5f3f8c32fbe53 --- /dev/null +++ b/OnlineDB/EcalCondDB/src/FEConfigOddWeightModeDat.cc @@ -0,0 +1,168 @@ +#include +#include +#include "OnlineDB/Oracle/interface/Oracle.h" + +#include "OnlineDB/EcalCondDB/interface/FEConfigOddWeightModeDat.h" +#include "OnlineDB/EcalCondDB/interface/FEConfigOddWeightInfo.h" + +using namespace std; +using namespace oracle::occi; + +FEConfigOddWeightModeDat::FEConfigOddWeightModeDat() { + m_env = nullptr; + m_conn = nullptr; + m_writeStmt = nullptr; + m_readStmt = nullptr; + + m_en_EB_flt = 0; + m_en_EE_flt = 0; + m_en_EB_pf = 0; + m_en_EE_pf = 0; + m_dis_EB_even_pf = 0; + m_dis_EE_even_pf = 0; + m_fe_EB_strout = 0; + m_fe_EE_strout = 0; + m_fe_EB_strib2 = 0; + m_fe_EE_strib2 = 0; + m_fe_EB_tcpout = 0; + m_fe_EB_tcpib1 = 0; + m_fe_EE_tcpout = 0; + m_fe_EE_tcpib1 = 0; + m_fe_par15 = 0; + m_fe_par16 = 0; + m_fe_par17 = 0; + m_fe_par18 = 0; +} + +FEConfigOddWeightModeDat::~FEConfigOddWeightModeDat() {} + +void FEConfigOddWeightModeDat::prepareWrite() noexcept(false) { + this->checkConnection(); + + try { + m_writeStmt = m_conn->createStatement(); + m_writeStmt->setSQL( + "INSERT INTO " + getTable() + + " (wei2_conf_id, " + " enableEBOddFilter, enableEEOddFilter, enableEBOddPeakFinder,enableEEOddPeakFinder, disableEBEvenPeakFinder, " + "DISABLEEEEVENPEAKFINDER, fenixEBStripOutput, fenixEEStripOutput, FenixEBStripInfoBit2, fenixEEStripInfobit2, " + "EBfenixTcpOutput, EBfenixTCPInfobit1,EEFENIXTCPOUTPUT, EEFENIXTCPINFOBIT1 ,fenixpar15, fenixpar16, " + "fenixpar17, fenixpar18 ) " + "VALUES (:wei2_conf_id, " + " :w1, :w2, :w3, :w4, :w5, :w6, :w7, :w8, :w9, :w10, :w11, :w12, :w13, :w14, :w15 , :w16, :w17, :w18 )"); + } catch (SQLException& e) { + throw(std::runtime_error("FEConfigOddWeightModeDat::prepareWrite(): " + e.getMessage())); + } +} + +void FEConfigOddWeightModeDat::writeDB(const EcalLogicID* ecid, + const FEConfigOddWeightModeDat* item, + FEConfigOddWeightInfo* iconf) noexcept(false) { + this->checkConnection(); + this->checkPrepare(); + + int iconfID = iconf->fetchID(); + if (!iconfID) { + throw(std::runtime_error("FEConfigOddWeightModeDat::writeDB: ICONF not in DB")); + } + + try { + m_writeStmt->setInt(1, iconfID); + + m_writeStmt->setInt(2, item->getFenixPar1()); + m_writeStmt->setInt(3, item->getFenixPar2()); + m_writeStmt->setInt(4, item->getFenixPar3()); + m_writeStmt->setInt(5, item->getFenixPar4()); + m_writeStmt->setInt(6, item->getFenixPar5()); + m_writeStmt->setInt(7, item->getFenixPar6()); + m_writeStmt->setInt(8, item->getFenixPar7()); + m_writeStmt->setInt(9, item->getFenixPar8()); + m_writeStmt->setInt(10, item->getFenixPar9()); + m_writeStmt->setInt(11, item->getFenixPar10()); + m_writeStmt->setInt(12, item->getFenixPar11()); + m_writeStmt->setInt(13, item->getFenixPar12()); + m_writeStmt->setInt(14, item->getFenixPar13()); + m_writeStmt->setInt(15, item->getFenixPar14()); + m_writeStmt->setInt(16, item->getFenixPar15()); + m_writeStmt->setInt(17, item->getFenixPar16()); + m_writeStmt->setInt(18, item->getFenixPar17()); + m_writeStmt->setInt(19, item->getFenixPar18()); + + m_writeStmt->executeUpdate(); + } catch (SQLException& e) { + throw(std::runtime_error("FEConfigOddWeightModeDat::writeDB(): " + e.getMessage())); + } +} + +void FEConfigOddWeightModeDat::fetchData(map* fillMap, + FEConfigOddWeightInfo* iconf) noexcept(false) { + this->checkConnection(); + fillMap->clear(); + + iconf->setConnection(m_env, m_conn); + int iconfID = iconf->fetchID(); + if (!iconfID) { + throw(std::runtime_error("FEConfigOddWeightModeDat::fetchData: ICONF not in DB")); + return; + } + + try { + m_readStmt->setSQL( + "SELECT enableEBOddFilter, enableEEOddFilter, enableEBOddPeakFinder,enableEEOddPeakFinder, " + "disableEBEvenPeakFinder, DISABLEEEEVENPEAKFINDER, fenixEBStripOutput, fenixEBStripOutput, " + "FenixEBStripInfoBit2, fenixEEStripInfobit2, EBfenixTcpOutput, EBfenixTCPInfobit1,EEFENIXTCPOUTPUT, " + "EEFENIXTCPINFOBIT1 ,fenixpar15, fenixpar16, fenixpar17, fenixpar18 " + "FROM " + + getTable() + + " d " + "WHERE wei2_conf_id = :wei2_conf_id "); + m_readStmt->setInt(1, iconfID); + ResultSet* rset = m_readStmt->executeQuery(); + + std::pair p; + FEConfigOddWeightModeDat dat; + int ig = -1; + while (rset->next()) { + ig++; // we create a dummy logic_id + p.first = EcalLogicID("Group_id", // name + ig); // logic_id + + dat.setFenixPar1(rset->getInt(1)); + dat.setFenixPar2(rset->getInt(2)); + dat.setFenixPar3(rset->getInt(3)); + dat.setFenixPar4(rset->getInt(4)); + dat.setFenixPar5(rset->getInt(5)); + dat.setFenixPar6(rset->getInt(6)); + dat.setFenixPar7(rset->getInt(7)); + dat.setFenixPar8(rset->getInt(8)); + dat.setFenixPar9(rset->getInt(9)); + dat.setFenixPar10(rset->getInt(10)); + dat.setFenixPar11(rset->getInt(11)); + dat.setFenixPar12(rset->getInt(12)); + dat.setFenixPar13(rset->getInt(13)); + dat.setFenixPar14(rset->getInt(14)); + dat.setFenixPar15(rset->getInt(15)); + dat.setFenixPar16(rset->getInt(16)); + dat.setFenixPar17(rset->getInt(17)); + dat.setFenixPar18(rset->getInt(18)); + + p.second = dat; + fillMap->insert(p); + } + } catch (SQLException& e) { + throw(std::runtime_error("FEConfigOddWeightModeDat::fetchData: " + e.getMessage())); + } +} + +void FEConfigOddWeightModeDat::writeArrayDB(const std::map* data, + FEConfigOddWeightInfo* iconf) noexcept(false) { + const EcalLogicID* channel; + const FEConfigOddWeightModeDat* dataitem; + + typedef map::const_iterator CI; + for (CI p = data->begin(); p != data->end(); ++p) { + channel = &(p->first); + dataitem = &(p->second); + writeDB(channel, dataitem, iconf); + } +} diff --git a/OnlineDB/EcalCondDB/test/BuildFile.xml b/OnlineDB/EcalCondDB/test/BuildFile.xml index 432ea142dbace..1b56dc353b263 100644 --- a/OnlineDB/EcalCondDB/test/BuildFile.xml +++ b/OnlineDB/EcalCondDB/test/BuildFile.xml @@ -1,6 +1,16 @@ + + + + + + + + + + diff --git a/OnlineDB/EcalCondDB/test/TestFEConfig2.cpp b/OnlineDB/EcalCondDB/test/TestFEConfig2.cpp new file mode 100644 index 0000000000000..baa17c230dc95 --- /dev/null +++ b/OnlineDB/EcalCondDB/test/TestFEConfig2.cpp @@ -0,0 +1,298 @@ +#include +#include +#include +#include +#include +#include + +#include "OnlineDB/EcalCondDB/interface/EcalCondDBInterface.h" +#include "OnlineDB/EcalCondDB/interface/all_monitoring_types.h" +#include "OnlineDB/EcalCondDB/interface/all_fe_config_types.h" +#include "OnlineDB/EcalCondDB/interface/RunDat.h" +#include "OnlineDB/EcalCondDB/interface/RunList.h" +#include "OnlineDB/EcalCondDB/interface/MonPedestalsDat.h" +#include "TROOT.h" +#include "TFile.h" +#include "TDirectory.h" +#include "TH2F.h" +#include "TF1.h" + +using namespace std; + +class CondDBApp { +public: + /** + * App constructor; Makes the database connection + */ + CondDBApp(string host, string sid, string user, string pass, int port) { + try { + cout << "Making connection...to " << port << flush; + econn = new EcalCondDBInterface(host, sid, user, pass, port); + cout << "Done." << endl; + } catch (runtime_error& e) { + cerr << e.what() << endl; + exit(-1); + } + } + CondDBApp(string sid, string user, string pass) { + try { + cout << "Making connection...to " << sid << endl; + econn = new EcalCondDBInterface(sid, user, pass); + cout << "Done." << endl; + } catch (runtime_error& e) { + cerr << e.what() << endl; + exit(-1); + } + } + + /** + * App destructor; Cleans up database connection + */ + ~CondDBApp() { delete econn; } + + inline std::string to_string(char value[]) { + std::ostringstream streamOut; + streamOut << value; + return streamOut.str(); + } + + void testReadOddWeights(int iconf_req) { + // now we do something else + // this is an example for reading the odd weights + // for a given config iconf_req + + cout << "*****************************************" << endl; + cout << "test reading odd weights with id=" << iconf_req << endl; + cout << "*****************************************" << endl; + + FEConfigOddWeightInfo fe_wei_info; + fe_wei_info.setId(iconf_req); + econn->fetchConfigSet(&fe_wei_info); + + map dataset_wei; + econn->fetchDataSet(&dataset_wei, &fe_wei_info); + + typedef map::const_iterator CIfewei; + EcalLogicID ecid_xt; + FEConfigOddWeightDat rd_wei; + + int rd_weiv[15176]; + for (int i = 0; i < 15176; i++) { + rd_weiv[i] = 0; + } + int i = 0; + for (CIfewei p = dataset_wei.begin(); p != dataset_wei.end(); p++) { + ecid_xt = p->first; + rd_wei = p->second; + int sm_num = ecid_xt.getID1(); + int tow_num = ecid_xt.getID2(); + int strip_num = ecid_xt.getID3(); + rd_weiv[i] = rd_wei.getWeightGroupId(); + if (i < 10) + std::cout << "here is the value for SM:" << sm_num << " tower:" << tow_num << " strip:" << strip_num + << " group id:" << rd_weiv[i] << endl; + i = i + 1; + } + + map dataset_mode; + econn->fetchDataSet(&dataset_mode, &fe_wei_info); + + typedef map::const_iterator CIfem; + FEConfigOddWeightModeDat rd_mode; + + int rd_modev[19] = {0}; + int k = 0; + for (CIfem p = dataset_mode.begin(); p != dataset_mode.end(); p++) { + rd_mode = p->second; + rd_modev[0] = rd_mode.getEnableEBOddFilter(); + rd_modev[1] = rd_mode.getEnableEEOddFilter(); + // ... + std::cout << "here is the value for the weight mode: EnableEBOddFilter:" << rd_modev[0] + << " EnableEEOddFilter:" << rd_modev[1] << std::endl; + k = k + 1; + } + + cout << "*****************************************" << endl; + cout << "test read done" << iconf_req << endl; + cout << "*****************************************" << endl; + } + + void testWriteOddWeights() { + // now we do something else + // this is an example for writing the odd weights + + cout << "*****************************************" << endl; + cout << "************Inserting Odd weights************" << endl; + cout << "*****************************************" << endl; + + FEConfigOddWeightInfo fe_wei_info; + fe_wei_info.setNumberOfGroups(2); // this eventually refers to some other table + fe_wei_info.setConfigTag("my preferred odd weights"); + econn->insertConfigSet(&fe_wei_info); + + Tm tdb = fe_wei_info.getDBTime(); + // tdb.dumpTm(); + + vector ecid_vec; + ecid_vec = econn->getEcalLogicIDSet("EB_VFE", 1, 36, 1, 68, 1, 5); + + map dataset; + // we create 2 groups + for (int ich = 0; ich < 2; ich++) { + FEConfigOddWeightGroupDat wei; + wei.setWeightGroupId(ich); + if (ich == 0) { // first group + wei.setWeight0(0); + wei.setWeight1(1); + wei.setWeight2(2); + wei.setWeight3(3); + wei.setWeight4(4); + wei.setWeight5(5); + } else { // second group + wei.setWeight0(2); + wei.setWeight1(3); + wei.setWeight2(4); + wei.setWeight3(5); + wei.setWeight4(6); + wei.setWeight5(7); + } + // Fill the dataset + dataset[ecid_vec[ich]] = wei; // we use any logic id, because it is in any case ignored... + } + + // Insert the dataset + econn->insertDataArraySet(&dataset, &fe_wei_info); + + vector my_StripEcalLogicId1_EE; + vector my_StripEcalLogicId2_EE; + + // EE Strip identifiers + // DCC=601-609 TT = ~40 EEstrip = 5 + my_StripEcalLogicId1_EE = + econn->getEcalLogicIDSetOrdered("ECAL_readout_strip", 601, 609, 1, 100, 0, 5, "ECAL_readout_strip", 123); + // EE Strip identifiers + // DCC=646-654 TT = ~40 EEstrip = 5 + my_StripEcalLogicId2_EE = + econn->getEcalLogicIDSetOrdered("ECAL_readout_strip", 646, 654, 1, 100, 0, 5, "ECAL_readout_strip", 123); + + // now we store in the DB the correspondence btw channels and odd weight groups + map dataset2; + // in this case I decide in a stupid way which channel belongs to which group + for (int ich = 0; ich < (int)ecid_vec.size(); ich++) { + FEConfigOddWeightDat weid; + if (ecid_vec[ich].getID1() <= 609 || ecid_vec[ich].getID1() > 645) { + weid.setWeightGroupId(0); // EB + } + // Fill the dataset + dataset2[ecid_vec[ich]] = weid; + } + + // EE loop + for (int ich = 0; ich < (int)my_StripEcalLogicId1_EE.size(); ich++) { + FEConfigOddWeightDat wut; + int igroup = 1; // this group is for EE + wut.setWeightGroupId(igroup); + // Fill the dataset + dataset2[my_StripEcalLogicId1_EE[ich]] = wut; + } + // EE loop 2 (we had to split the ids of EE in 2 vectors to avoid crash!) + for (int ich = 0; ich < (int)my_StripEcalLogicId2_EE.size(); ich++) { + FEConfigOddWeightDat wut; + int igroup = 1; // this group is for EE + wut.setWeightGroupId(igroup); + // Fill the dataset + dataset2[my_StripEcalLogicId2_EE[ich]] = wut; + } + + // Insert the dataset + + econn->insertDataArraySet(&dataset2, &fe_wei_info); + + map datasetmode; + FEConfigOddWeightModeDat wei_mode; + wei_mode.setEnableEBOddFilter(3); + wei_mode.setDisableEBEvenPeakFinder(4); + wei_mode.setFenixEEStripOutput(5); + // this is just a test, I leave the other parameters at 0 + + // Fill the dataset + datasetmode[ecid_vec[0]] = wei_mode; // we use any logic id, because it is in any case ignored... + + econn->insertDataSet(&datasetmode, &fe_wei_info); + + cout << "*****************************************" << endl; + cout << "*********** odd weights done ************" << endl; + cout << "*****************************************" << endl; + } + +private: + CondDBApp(); // hidden default constructor + EcalCondDBInterface* econn; + + uint64_t startmicros; + uint64_t endmicros; + run_t startrun; + run_t endrun; + + TFile* f; + TH2F* mataq_vs_run; + TH2F* apd_pn_mean_vs_run; + + void printTag(const RunTag* tag) const { + cout << endl; + cout << "=============RunTag:" << endl; + cout << "GeneralTag: " << tag->getGeneralTag() << endl; + cout << "Location: " << tag->getLocationDef().getLocation() << endl; + cout << "Run Type: " << tag->getRunTypeDef().getRunType() << endl; + cout << "====================" << endl; + } + + void printIOV(const RunIOV* iov) const { + cout << endl; + cout << "=============RunIOV:" << endl; + RunTag tag = iov->getRunTag(); + printTag(&tag); + cout << "Run Number: " << iov->getRunNumber() << endl; + cout << "Run Start: " << iov->getRunStart().str() << endl; + cout << "Run End: " << iov->getRunEnd().str() << endl; + cout << "====================" << endl; + } +}; + +int main(int argc, char* argv[]) { + string sid; + string user; + string pass; + string cfg_str; + string read_and_w_str; + + if (argc != 6) { + cout << "Usage:" << endl; + cout << " " << argv[0] << " " << endl; + exit(-1); + } + + sid = argv[1]; + user = argv[2]; + pass = argv[3]; + cfg_str = argv[4]; + int cfg_id = atoi(cfg_str.c_str()); + read_and_w_str = argv[5]; + int rw_id = atoi(read_and_w_str.c_str()); + + try { + CondDBApp app(sid, user, pass); + if (rw_id == 1 || rw_id == 2) + app.testWriteOddWeights(); + if (rw_id == 0 || rw_id == 2) + app.testReadOddWeights(cfg_id); + } catch (exception& e) { + cout << "ERROR: " << e.what() << endl; + } catch (...) { + cout << "Unknown error caught" << endl; + } + + cout << "All Done." << endl; + + return 0; +} diff --git a/OnlineDB/EcalCondDB/test/TestOddWeightConf_v1.cpp b/OnlineDB/EcalCondDB/test/TestOddWeightConf_v1.cpp new file mode 100644 index 0000000000000..5e77d09c3d8c1 --- /dev/null +++ b/OnlineDB/EcalCondDB/test/TestOddWeightConf_v1.cpp @@ -0,0 +1,329 @@ +#include +#include +#include +#include +#include +#include + +#include "OnlineDB/EcalCondDB/interface/EcalCondDBInterface.h" +#include "OnlineDB/EcalCondDB/interface/all_monitoring_types.h" +#include "OnlineDB/EcalCondDB/interface/all_fe_config_types.h" +#include "OnlineDB/EcalCondDB/interface/RunDat.h" +#include "OnlineDB/EcalCondDB/interface/RunList.h" +#include "OnlineDB/EcalCondDB/interface/MonPedestalsDat.h" +#include "TROOT.h" +#include "TFile.h" +#include "TDirectory.h" +#include "TH2F.h" +#include "TF1.h" + +using namespace std; + +class CondDBApp { +public: + /** + * App constructor; Makes the database connection + */ + CondDBApp(string host, string sid, string user, string pass, int port) { + try { + cout << "Making connection...to " << port << flush; + econn = new EcalCondDBInterface(host, sid, user, pass, port); + cout << "Done." << endl; + } catch (runtime_error& e) { + cerr << e.what() << endl; + exit(-1); + } + } + CondDBApp(string sid, string user, string pass) { + try { + cout << "Making connection...to " << sid << endl; + econn = new EcalCondDBInterface(sid, user, pass); + cout << "Done." << endl; + } catch (runtime_error& e) { + cerr << e.what() << endl; + exit(-1); + } + } + + /** + * App destructor; Cleans up database connection + */ + ~CondDBApp() { delete econn; } + + inline std::string to_string(char value[]) { + std::ostringstream streamOut; + streamOut << value; + return streamOut.str(); + } + + void testReadOddWeights(int iconf_req) { + // now we do something else + // this is an example for reading the odd weights + // for a given config iconf_req + + cout << "*****************************************" << endl; + cout << "test reading odd weights with id=" << iconf_req << endl; + cout << "*****************************************" << endl; + + FEConfigOddWeightInfo fe_wei_info; + fe_wei_info.setId(iconf_req); + econn->fetchConfigSet(&fe_wei_info); + + map dataset_wei; + econn->fetchDataSet(&dataset_wei, &fe_wei_info); + + typedef map::const_iterator CIfewei; + EcalLogicID ecid_xt; + FEConfigOddWeightDat rd_wei; + + int rd_weiv[15176]; + for (int i = 0; i < 15176; i++) { + rd_weiv[i] = 0; + } + int i = 0; + for (CIfewei p = dataset_wei.begin(); p != dataset_wei.end(); p++) { + ecid_xt = p->first; + rd_wei = p->second; + int sm_num = ecid_xt.getID1(); + int tow_num = ecid_xt.getID2(); + int strip_num = ecid_xt.getID3(); + rd_weiv[i] = rd_wei.getWeightGroupId(); + if (i < 10) + std::cout << "here is the value for SM:" << sm_num << " tower:" << tow_num << " strip:" << strip_num + << " group id:" << rd_weiv[i] << endl; + i = i + 1; + } + + map dataset_mode; + econn->fetchDataSet(&dataset_mode, &fe_wei_info); + + typedef map::const_iterator CIfem; + FEConfigOddWeightModeDat rd_mode; + + int rd_modev[19] = {0}; + int k = 0; + for (CIfem p = dataset_mode.begin(); p != dataset_mode.end(); p++) { + rd_mode = p->second; + rd_modev[0] = rd_mode.getEnableEBOddFilter(); + rd_modev[1] = rd_mode.getEnableEEOddFilter(); + rd_modev[2] = rd_mode.getEnableEBOddPeakFinder(); + rd_modev[3] = rd_mode.getEnableEEOddPeakFinder(); + rd_modev[4] = rd_mode.getDisableEBEvenPeakFinder(); + rd_modev[5] = rd_mode.getDisableEEEvenPeakFinder(); + rd_modev[6] = rd_mode.getFenixEBStripOutput(); + rd_modev[7] = rd_mode.getFenixEEStripOutput(); + rd_modev[8] = rd_mode.getFenixEBStripInfobit2(); + rd_modev[9] = rd_mode.getFenixEEStripInfobit2(); + rd_modev[10] = rd_mode.getFenixEBTcpOutput(); + rd_modev[11] = rd_mode.getFenixEBTcpInfobit1(); + rd_modev[12] = rd_mode.getFenixEETcpOutput(); + rd_modev[13] = rd_mode.getFenixEETcpInfobit1(); + // ... + std::cout << "here is the value for the weight mode: " << std::endl + << " EnableEBOddFilter:" << rd_modev[0] << std::endl + << " EnableEEOddFilter:" << rd_modev[1] << std::endl + << " EnableEBOddPeakFinder:" << rd_modev[2] << std::endl + << " EnableEEOddPeakFinder:" << rd_modev[3] << std::endl + << " DisableEBEvenPeakFinder:" << rd_modev[4] << std::endl + << " DisableEEEvenPeakFinder:" << rd_modev[5] << std::endl + << " FenixEBStripOutput:" << rd_modev[6] << std::endl + << " FenixEEStripOutput:" << rd_modev[7] << std::endl + << " FenixEBStripInfobit2:" << rd_modev[8] << std::endl + << " FenixEEStripInfobit2:" << rd_modev[9] << std::endl + << " FenixEBTcpOutput:" << rd_modev[10] << std::endl + << " FenixEBTcpinfobit1:" << rd_modev[11] << std::endl + << " FenixEETcpOutput:" << rd_modev[12] << std::endl + << " FenixEETcpinfobit1:" << rd_modev[13] << std::endl; + k = k + 1; + } + + cout << "*****************************************" << endl; + cout << "test read done" << iconf_req << endl; + cout << "*****************************************" << endl; + } + + void testWriteOddWeights() { + // now we do something else + // this is an example for writing the odd weights + + cout << "*****************************************" << endl; + cout << "************Inserting Odd weights************" << endl; + cout << "*****************************************" << endl; + + FEConfigOddWeightInfo fe_wei_info; + fe_wei_info.setNumberOfGroups(2); // this eventually refers to some other table + fe_wei_info.setConfigTag("oddweights_zeroing_flagging_test_v1"); + econn->insertConfigSet(&fe_wei_info); + + Tm tdb = fe_wei_info.getDBTime(); + // tdb.dumpTm(); + + vector EB_ecid_vec, EE_ecid_vec1, EE_ecid_vec2; + EB_ecid_vec = econn->getEcalLogicIDSet("EB_VFE", 1, 36, 1, 68, 1, 5); + + // EE Strip identifiers + // DCC=601-609 TT = ~40 EEstrip = 5 + EE_ecid_vec1 = + econn->getEcalLogicIDSetOrdered("ECAL_readout_strip", 601, 609, 1, 100, 0, 5, "ECAL_readout_strip", 123); + // EE Strip identifiers + // DCC=646-654 TT = ~40 EEstrip = 5 + EE_ecid_vec2 = + econn->getEcalLogicIDSetOrdered("ECAL_readout_strip", 646, 654, 1, 100, 0, 5, "ECAL_readout_strip", 123); + + map dataset; + // All EB with the same weights, and all EE with slightly different + for (int ich = 0; ich < 2; ich++) { + FEConfigOddWeightGroupDat wei; + wei.setWeightGroupId(ich); + if (ich == 0) { // first group + wei.setWeight0(125); // w0 in the confDB is w4 in the offline 125,63,0,0,68 + wei.setWeight1(63 + 0x80); + wei.setWeight2(0); + wei.setWeight3(0); + wei.setWeight4(68); + wei.setWeight5(0); + } else { // second group + wei.setWeight0(125); // w0 in the confDB is w4 in the offline 125,63,0,0,68 + wei.setWeight1(64 + 0x80); + wei.setWeight2(0); + wei.setWeight3(0); + wei.setWeight4(67); + wei.setWeight5(0); + } + // Fill the dataset + dataset[EB_ecid_vec[ich]] = wei; // we use any logic id, because it is in any case ignored... + } + + // Insert the dataset + econn->insertDataArraySet(&dataset, &fe_wei_info); + + // now we store in the DB the correspondence btw channels and odd weight groups + map dataset2; + // in this case I decide in a stupid way which channel belongs to which group + for (int ich = 0; ich < (int)EB_ecid_vec.size(); ich++) { + FEConfigOddWeightDat weid; + std::cout << "EB " << EB_ecid_vec[ich].getID1() << " " << EB_ecid_vec[ich].getID2() << " " + << EB_ecid_vec[ich].getID3() << std::endl; + weid.setWeightGroupId(0); // EB + // Fill the dataset + dataset2[EB_ecid_vec[ich]] = weid; + } + + for (int ich = 0; ich < (int)EE_ecid_vec1.size(); ich++) { + FEConfigOddWeightDat weid; + weid.setWeightGroupId(1); + // Fill the dataset + std::cout << "EE " << EE_ecid_vec1[ich].getID1() << " " << EE_ecid_vec1[ich].getID2() << " " + << EE_ecid_vec1[ich].getID3() << std::endl; + dataset2[EE_ecid_vec1[ich]] = weid; + } + // EE loop 2 (we had to split the ids of EE in 2 vectors to avoid crash!) + for (int ich = 0; ich < (int)EE_ecid_vec2.size(); ich++) { + FEConfigOddWeightDat weid; + std::cout << "EE " << EE_ecid_vec2[ich].getID1() << " " << EE_ecid_vec2[ich].getID2() << " " + << EE_ecid_vec2[ich].getID3() << std::endl; + weid.setWeightGroupId(1); + // Fill the dataset + dataset2[EE_ecid_vec2[ich]] = weid; + } + + // Insert the dataset + + econn->insertDataArraySet(&dataset2, &fe_wei_info); + + map datasetmode; + FEConfigOddWeightModeDat wei_mode; + + wei_mode.setEnableEBOddFilter(1); + wei_mode.setEnableEEOddFilter(1); + wei_mode.setEnableEBOddPeakFinder(1); + wei_mode.setEnableEEOddPeakFinder(1); + + wei_mode.setFenixEBStripOutput(2); + wei_mode.setFenixEEStripOutput(2); + + wei_mode.setFenixEBStripInfobit2(1); + wei_mode.setFenixEBTcpOutput(2); + wei_mode.setFenixEBTcpInfoBit1(1); + + // Fill the dataset + datasetmode[EB_ecid_vec[0]] = wei_mode; // we use any logic id, because it is in any case ignored... + + econn->insertDataSet(&datasetmode, &fe_wei_info); + + cout << "*****************************************" << endl; + cout << "*********** odd weights done ************" << endl; + cout << "*****************************************" << endl; + } + +private: + CondDBApp(); // hidden default constructor + EcalCondDBInterface* econn; + + uint64_t startmicros; + uint64_t endmicros; + run_t startrun; + run_t endrun; + + TFile* f; + TH2F* mataq_vs_run; + TH2F* apd_pn_mean_vs_run; + + void printTag(const RunTag* tag) const { + cout << endl; + cout << "=============RunTag:" << endl; + cout << "GeneralTag: " << tag->getGeneralTag() << endl; + cout << "Location: " << tag->getLocationDef().getLocation() << endl; + cout << "Run Type: " << tag->getRunTypeDef().getRunType() << endl; + cout << "====================" << endl; + } + + void printIOV(const RunIOV* iov) const { + cout << endl; + cout << "=============RunIOV:" << endl; + RunTag tag = iov->getRunTag(); + printTag(&tag); + cout << "Run Number: " << iov->getRunNumber() << endl; + cout << "Run Start: " << iov->getRunStart().str() << endl; + cout << "Run End: " << iov->getRunEnd().str() << endl; + cout << "====================" << endl; + } +}; + +int main(int argc, char* argv[]) { + string sid; + string user; + string pass; + string cfg_str; + string read_and_w_str; + + if (argc != 6) { + cout << "Usage:" << endl; + cout << " " << argv[0] << " " << endl; + exit(-1); + } + + sid = argv[1]; + user = argv[2]; + pass = argv[3]; + cfg_str = argv[4]; + int cfg_id = atoi(cfg_str.c_str()); + read_and_w_str = argv[5]; + int rw_id = atoi(read_and_w_str.c_str()); + + try { + CondDBApp app(sid, user, pass); + if (rw_id == 1 || rw_id == 2) + app.testWriteOddWeights(); + if (rw_id == 0 || rw_id == 2) + app.testReadOddWeights(cfg_id); + } catch (exception& e) { + cout << "ERROR: " << e.what() << endl; + } catch (...) { + cout << "Unknown error caught" << endl; + } + + cout << "All Done." << endl; + + return 0; +} diff --git a/PhysicsTools/HepMCCandAlgos/plugins/MCTruthMatchers.cc b/PhysicsTools/HepMCCandAlgos/plugins/MCTruthMatchers.cc index 55d0b4488562b..7d92063c8873b 100644 --- a/PhysicsTools/HepMCCandAlgos/plugins/MCTruthMatchers.cc +++ b/PhysicsTools/HepMCCandAlgos/plugins/MCTruthMatchers.cc @@ -33,7 +33,16 @@ typedef reco::PhysObjectMatcher< reco::MatchByDR > GenJetMatcher; +// JET Match by deltaR and dPt, ranking by deltaR +typedef reco::PhysObjectMatcher< + reco::CandidateView, + reco::GenJetCollection, + reco::MCMatchSelector, + reco::MatchByDRDPt > + GenJetMatcherDRPtByDR; + #include "FWCore/Framework/interface/MakerMacros.h" DEFINE_FWK_MODULE(MCMatcher); DEFINE_FWK_MODULE(MCMatcherByPt); DEFINE_FWK_MODULE(GenJetMatcher); +DEFINE_FWK_MODULE(GenJetMatcherDRPtByDR); diff --git a/PhysicsTools/JetCharge/test/JetChargeAnalyzer.cc b/PhysicsTools/JetCharge/test/JetChargeAnalyzer.cc index f16deadc7f2f4..df7f8e4259089 100644 --- a/PhysicsTools/JetCharge/test/JetChargeAnalyzer.cc +++ b/PhysicsTools/JetCharge/test/JetChargeAnalyzer.cc @@ -9,8 +9,8 @@ #include "DataFormats/JetReco/interface/Jet.h" #include "DataFormats/JetReco/interface/JetFloatAssociation.h" -#include "SimDataFormats/JetMatching/interface/JetFlavour.h" -#include "SimDataFormats/JetMatching/interface/JetFlavourMatching.h" +#include "DataFormats/JetMatching/interface/JetFlavour.h" +#include "DataFormats/JetMatching/interface/JetFlavourMatching.h" //#include "RecoBTag/MCTools/interface/JetFlavourIdentifier.h" diff --git a/PhysicsTools/JetExamples/test/BuildFile.xml b/PhysicsTools/JetExamples/test/BuildFile.xml index 10065642a4d6a..3fc71f93806b9 100644 --- a/PhysicsTools/JetExamples/test/BuildFile.xml +++ b/PhysicsTools/JetExamples/test/BuildFile.xml @@ -2,24 +2,24 @@ - + - + - + diff --git a/PhysicsTools/JetExamples/test/printGenJetRatio.cc b/PhysicsTools/JetExamples/test/printGenJetRatio.cc index 2c6456ffadf72..0ced2796b96e4 100644 --- a/PhysicsTools/JetExamples/test/printGenJetRatio.cc +++ b/PhysicsTools/JetExamples/test/printGenJetRatio.cc @@ -15,8 +15,8 @@ #include "DataFormats/JetReco/interface/JetFloatAssociation.h" #include "DataFormats/Common/interface/Ref.h" -#include "SimDataFormats/JetMatching/interface/JetFlavour.h" -#include "SimDataFormats/JetMatching/interface/JetFlavourMatching.h" +#include "DataFormats/JetMatching/interface/JetFlavour.h" +#include "DataFormats/JetMatching/interface/JetFlavourMatching.h" class printGenJetRatio : public edm::EDAnalyzer { public: diff --git a/PhysicsTools/JetExamples/test/printJetFlavour.cc b/PhysicsTools/JetExamples/test/printJetFlavour.cc index b6fc9978eb840..7917045433c1f 100644 --- a/PhysicsTools/JetExamples/test/printJetFlavour.cc +++ b/PhysicsTools/JetExamples/test/printJetFlavour.cc @@ -18,10 +18,10 @@ #include "DataFormats/Common/interface/Ref.h" #include "DataFormats/Common/interface/getRef.h" -#include "SimDataFormats/JetMatching/interface/JetFlavour.h" -#include "SimDataFormats/JetMatching/interface/JetFlavourMatching.h" -#include "SimDataFormats/JetMatching/interface/MatchedPartons.h" -#include "SimDataFormats/JetMatching/interface/JetMatchedPartons.h" +#include "DataFormats/JetMatching/interface/JetFlavour.h" +#include "DataFormats/JetMatching/interface/JetFlavourMatching.h" +#include "DataFormats/JetMatching/interface/MatchedPartons.h" +#include "DataFormats/JetMatching/interface/JetMatchedPartons.h" // system include files #include diff --git a/PhysicsTools/JetExamples/test/printJetFlavourInfo.cc b/PhysicsTools/JetExamples/test/printJetFlavourInfo.cc index 23ee2a4eee7c2..6baf80028b6b6 100644 --- a/PhysicsTools/JetExamples/test/printJetFlavourInfo.cc +++ b/PhysicsTools/JetExamples/test/printJetFlavourInfo.cc @@ -8,8 +8,8 @@ #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "DataFormats/JetReco/interface/Jet.h" -#include "SimDataFormats/JetMatching/interface/JetFlavourInfo.h" -#include "SimDataFormats/JetMatching/interface/JetFlavourInfoMatching.h" +#include "DataFormats/JetMatching/interface/JetFlavourInfo.h" +#include "DataFormats/JetMatching/interface/JetFlavourInfoMatching.h" #include "DataFormats/Math/interface/deltaR.h" diff --git a/PhysicsTools/JetMCAlgos/BuildFile.xml b/PhysicsTools/JetMCAlgos/BuildFile.xml index 87d7186a6349e..30fd1636bd76a 100644 --- a/PhysicsTools/JetMCAlgos/BuildFile.xml +++ b/PhysicsTools/JetMCAlgos/BuildFile.xml @@ -1,4 +1,6 @@ + + diff --git a/PhysicsTools/JetMCAlgos/plugins/BuildFile.xml b/PhysicsTools/JetMCAlgos/plugins/BuildFile.xml index 2a290c3f4925c..ac51f547ae3fa 100644 --- a/PhysicsTools/JetMCAlgos/plugins/BuildFile.xml +++ b/PhysicsTools/JetMCAlgos/plugins/BuildFile.xml @@ -4,9 +4,19 @@ - + + + + + + + + + + + diff --git a/PhysicsTools/JetMCAlgos/plugins/GenHFHadronMatcher.cc b/PhysicsTools/JetMCAlgos/plugins/GenHFHadronMatcher.cc index b403a259d4f4c..bb33a8ef6a96e 100644 --- a/PhysicsTools/JetMCAlgos/plugins/GenHFHadronMatcher.cc +++ b/PhysicsTools/JetMCAlgos/plugins/GenHFHadronMatcher.cc @@ -44,7 +44,7 @@ #include "DataFormats/JetReco/interface/Jet.h" #include "DataFormats/Math/interface/deltaR.h" -#include "SimDataFormats/JetMatching/interface/JetFlavourInfoMatching.h" +#include "DataFormats/JetMatching/interface/JetFlavourInfoMatching.h" // // class declaration @@ -320,8 +320,9 @@ std::vector GenHFHadronMatcher::findHadronJets(const reco::GenParticleColle reco::JetFlavourInfo jetInfo = i_info->second; const int jetIndex = i_info - jetFlavourInfos->begin(); // Looping over each hadron associated with the jet and finding its origin - const reco::GenParticleRefVector &hadronsInJet = - flavour_ == 5 ? jetInfo.getbHadrons() : flavour_ == 4 ? jetInfo.getcHadrons() : reco::GenParticleRefVector(); + const reco::GenParticleRefVector &hadronsInJet = flavour_ == 5 ? jetInfo.getbHadrons() + : flavour_ == 4 ? jetInfo.getcHadrons() + : reco::GenParticleRefVector(); for (reco::GenParticleRefVector::const_iterator hadron = hadronsInJet.begin(); hadron != hadronsInJet.end(); ++hadron) { // Check that the hadron satisfies criteria configured in the module diff --git a/PhysicsTools/JetMCAlgos/plugins/GenJetBCEnergyRatio.cc b/PhysicsTools/JetMCAlgos/plugins/GenJetBCEnergyRatio.cc index ee3853f4676a4..338cadcbb2668 100644 --- a/PhysicsTools/JetMCAlgos/plugins/GenJetBCEnergyRatio.cc +++ b/PhysicsTools/JetMCAlgos/plugins/GenJetBCEnergyRatio.cc @@ -21,7 +21,7 @@ #include "DataFormats/JetReco/interface/Jet.h" #include "DataFormats/JetReco/interface/GenJetCollection.h" -#include "SimDataFormats/JetMatching/interface/JetFlavour.h" +#include "DataFormats/JetMatching/interface/JetFlavour.h" #include "DataFormats/Common/interface/Ref.h" #include "DataFormats/Candidate/interface/Candidate.h" diff --git a/PhysicsTools/JetMCAlgos/plugins/JetFlavourClustering.cc b/PhysicsTools/JetMCAlgos/plugins/JetFlavourClustering.cc index cb25ebd0414a9..b5da866b36cee 100644 --- a/PhysicsTools/JetMCAlgos/plugins/JetFlavourClustering.cc +++ b/PhysicsTools/JetMCAlgos/plugins/JetFlavourClustering.cc @@ -89,8 +89,8 @@ #include "DataFormats/JetReco/interface/Jet.h" #include "DataFormats/JetReco/interface/JetCollection.h" -#include "SimDataFormats/JetMatching/interface/JetFlavourInfo.h" -#include "SimDataFormats/JetMatching/interface/JetFlavourInfoMatching.h" +#include "DataFormats/JetMatching/interface/JetFlavourInfo.h" +#include "DataFormats/JetMatching/interface/JetFlavourInfoMatching.h" #include "DataFormats/HepMCCandidate/interface/GenParticle.h" #include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h" #include "DataFormats/Math/interface/deltaR.h" diff --git a/PhysicsTools/JetMCAlgos/plugins/JetFlavourIdentifier.cc b/PhysicsTools/JetMCAlgos/plugins/JetFlavourIdentifier.cc index 274b7bb4ceb00..58e600b7cae93 100644 --- a/PhysicsTools/JetMCAlgos/plugins/JetFlavourIdentifier.cc +++ b/PhysicsTools/JetMCAlgos/plugins/JetFlavourIdentifier.cc @@ -53,10 +53,10 @@ #include "DataFormats/JetReco/interface/Jet.h" #include "DataFormats/JetReco/interface/JetCollection.h" #include "DataFormats/JetReco/interface/CaloJetCollection.h" -#include "SimDataFormats/JetMatching/interface/JetFlavour.h" -#include "SimDataFormats/JetMatching/interface/JetFlavourMatching.h" -#include "SimDataFormats/JetMatching/interface/MatchedPartons.h" -#include "SimDataFormats/JetMatching/interface/JetMatchedPartons.h" +#include "DataFormats/JetMatching/interface/JetFlavour.h" +#include "DataFormats/JetMatching/interface/JetFlavourMatching.h" +#include "DataFormats/JetMatching/interface/MatchedPartons.h" +#include "DataFormats/JetMatching/interface/JetMatchedPartons.h" #include "DataFormats/Common/interface/Ref.h" #include "DataFormats/Candidate/interface/Candidate.h" diff --git a/PhysicsTools/JetMCAlgos/plugins/JetPartonMatcher.cc b/PhysicsTools/JetMCAlgos/plugins/JetPartonMatcher.cc index 2e1b130aca3c5..1b1771f7e1d6b 100644 --- a/PhysicsTools/JetMCAlgos/plugins/JetPartonMatcher.cc +++ b/PhysicsTools/JetMCAlgos/plugins/JetPartonMatcher.cc @@ -66,10 +66,10 @@ #include "DataFormats/JetReco/interface/Jet.h" #include "DataFormats/JetReco/interface/JetCollection.h" #include "DataFormats/JetReco/interface/CaloJetCollection.h" -#include "SimDataFormats/JetMatching/interface/JetFlavour.h" -#include "SimDataFormats/JetMatching/interface/JetFlavourMatching.h" -#include "SimDataFormats/JetMatching/interface/MatchedPartons.h" -#include "SimDataFormats/JetMatching/interface/JetMatchedPartons.h" +#include "DataFormats/JetMatching/interface/JetFlavour.h" +#include "DataFormats/JetMatching/interface/JetFlavourMatching.h" +#include "DataFormats/JetMatching/interface/MatchedPartons.h" +#include "DataFormats/JetMatching/interface/JetMatchedPartons.h" #include "DataFormats/Common/interface/View.h" #include "DataFormats/Common/interface/Ref.h" diff --git a/PhysicsTools/NanoAOD/plugins/CandMCMatchTableProducer.cc b/PhysicsTools/NanoAOD/plugins/CandMCMatchTableProducer.cc index 6a947bed593d6..d892eb751ba52 100644 --- a/PhysicsTools/NanoAOD/plugins/CandMCMatchTableProducer.cc +++ b/PhysicsTools/NanoAOD/plugins/CandMCMatchTableProducer.cc @@ -7,6 +7,8 @@ #include "DataFormats/Common/interface/View.h" #include "DataFormats/Candidate/interface/Candidate.h" #include "DataFormats/HepMCCandidate/interface/GenParticle.h" +#include +#include "DataFormats/JetReco/interface/GenJetCollection.h" #include #include @@ -63,6 +65,13 @@ class CandMCMatchTableProducer : public edm::global::EDProducer<> { candMapVisTau_ = consumes>(params.getParameter("mcMapVisTau")); } + + if (type_ == MElectron) { + candMapDressedLep_ = + consumes>(params.getParameter("mcMapDressedLep")); + mapTauAnc_ = consumes>(params.getParameter("mapTauAnc")); + genPartsToken_ = consumes(params.getParameter("genparticles")); + } } ~CandMCMatchTableProducer() override {} @@ -82,20 +91,38 @@ class CandMCMatchTableProducer : public edm::global::EDProducer<> { iEvent.getByToken(candMapVisTau_, mapVisTau); } + edm::Handle> mapDressedLep; + edm::Handle> mapTauAnc; + edm::Handle genParts; + if (type_ == MElectron) { + iEvent.getByToken(candMapDressedLep_, mapDressedLep); + iEvent.getByToken(mapTauAnc_, mapTauAnc); + iEvent.getByToken(genPartsToken_, genParts); + } + std::vector key(ncand, -1), flav(ncand, 0); for (unsigned int i = 0; i < ncand; ++i) { //std::cout << "cand #" << i << ": pT = " << cands->ptrAt(i)->pt() << ", eta = " << cands->ptrAt(i)->eta() << ", phi = " << cands->ptrAt(i)->phi() << std::endl; reco::GenParticleRef match = (*map)[cands->ptrAt(i)]; reco::GenParticleRef matchVisTau; + reco::GenJetRef matchDressedLep; + bool hasTauAnc = false; if (type_ == MTau) { matchVisTau = (*mapVisTau)[cands->ptrAt(i)]; } + if (type_ == MElectron) { + matchDressedLep = (*mapDressedLep)[cands->ptrAt(i)]; + if (matchDressedLep.isNonnull()) { + hasTauAnc = (*mapTauAnc)[matchDressedLep]; + } + } if (match.isNonnull()) key[i] = match.key(); else if (matchVisTau.isNonnull()) key[i] = matchVisTau.key(); - else - continue; + else if (type_ != MElectron) + continue; // go ahead with electrons, as those may be matched to a dressed lepton + switch (type_) { case MMuon: if (match->isPromptFinalState()) @@ -106,7 +133,35 @@ class CandMCMatchTableProducer : public edm::global::EDProducer<> { flav[i] = getParentHadronFlag(match); // 3 = light, 4 = charm, 5 = b break; case MElectron: - if (match->isPromptFinalState()) + if (matchDressedLep.isNonnull()) { + if (matchDressedLep->pdgId() == 22) + flav[i] = 22; + else + flav[i] = (hasTauAnc) ? 15 : 1; + + float minpt = 0; + const reco::GenParticle* highestPtConstituent = nullptr; + for (auto& consti : matchDressedLep->getGenConstituents()) { + if (abs(consti->pdgId()) != 11) + continue; + if (consti->pt() < minpt) + continue; + minpt = consti->pt(); + highestPtConstituent = consti; + } + if (highestPtConstituent) { + auto iter = + std::find_if(genParts->begin(), genParts->end(), [highestPtConstituent](reco::GenParticle genp) { + return (abs(genp.pdgId()) == 11) && (deltaR(genp, *highestPtConstituent) < 0.01) && + (abs(genp.pt() - highestPtConstituent->pt()) / highestPtConstituent->pt() < 0.01); + }); + if (iter != genParts->end()) { + key[i] = iter - genParts->begin(); + } + } + } else if (!match.isNonnull()) + flav[i] = 0; + else if (match->isPromptFinalState()) flav[i] = (match->pdgId() == 22 ? 22 : 1); // prompt electron or photon else if (match->isDirectPromptTauDecayProductFinalState()) flav[i] = 15; // tau @@ -139,7 +194,9 @@ class CandMCMatchTableProducer : public edm::global::EDProducer<> { } tab->addColumn(branchName_ + "Idx", key, "Index into genParticle list for " + doc_); - tab->addColumn(branchName_ + "Flav", flav, "Flavour of genParticle for " + doc_ + ": " + flavDoc_); + tab->addColumn(branchName_ + "Flav", + flav, + "Flavour of genParticle (DressedLeptons for electrons) for " + doc_ + ": " + flavDoc_); iEvent.put(std::move(tab)); } @@ -183,6 +240,11 @@ class CandMCMatchTableProducer : public edm::global::EDProducer<> { "type of object to match (Muon, Electron, Tau, Photon, Other), taylors what's in t Flav branch"); desc.addOptional("mcMapVisTau") ->setComment("as mcMap, but pointing to the visible gen taus (only if objType == Tau)"); + desc.addOptional("mcMapDressedLep") + ->setComment("as mcMap, but pointing to gen dressed leptons (only if objType == Electrons)"); + desc.addOptional("mapTauAnc") + ->setComment("Value map of matched gen electrons containing info on the tau ancestry"); + desc.addOptional("genparticles")->setComment("Collection of genParticles to be stored."); descriptions.add("candMcMatchTable", desc); } @@ -191,6 +253,9 @@ class CandMCMatchTableProducer : public edm::global::EDProducer<> { const edm::EDGetTokenT src_; const edm::EDGetTokenT> candMap_; edm::EDGetTokenT> candMapVisTau_; + edm::EDGetTokenT> candMapDressedLep_; + edm::EDGetTokenT> mapTauAnc_; + edm::EDGetTokenT genPartsToken_; enum MatchType { MMuon, MElectron, MTau, MPhoton, MOther } type_; std::string flavDoc_; }; diff --git a/PhysicsTools/NanoAOD/plugins/GenJetFlavourTableProducer.cc b/PhysicsTools/NanoAOD/plugins/GenJetFlavourTableProducer.cc index 9ebe624ea258f..f84fb1554f0f6 100644 --- a/PhysicsTools/NanoAOD/plugins/GenJetFlavourTableProducer.cc +++ b/PhysicsTools/NanoAOD/plugins/GenJetFlavourTableProducer.cc @@ -12,8 +12,8 @@ #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "DataFormats/JetReco/interface/GenJet.h" -#include "SimDataFormats/JetMatching/interface/JetFlavourInfo.h" -#include "SimDataFormats/JetMatching/interface/JetFlavourInfoMatching.h" +#include "DataFormats/JetMatching/interface/JetFlavourInfo.h" +#include "DataFormats/JetMatching/interface/JetFlavourInfoMatching.h" #include "DataFormats/Math/interface/deltaR.h" #include "DataFormats/NanoAOD/interface/FlatTable.h" diff --git a/PhysicsTools/NanoAOD/plugins/GenJetGenPartMerger.cc b/PhysicsTools/NanoAOD/plugins/GenJetGenPartMerger.cc new file mode 100644 index 0000000000000..4107afbdf66ea --- /dev/null +++ b/PhysicsTools/NanoAOD/plugins/GenJetGenPartMerger.cc @@ -0,0 +1,113 @@ + +// system include files +#include + +// user include files +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/stream/EDProducer.h" + +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/MakerMacros.h" + +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Utilities/interface/StreamID.h" + +#include "DataFormats/JetReco/interface/GenJetCollection.h" +#include "DataFormats/HepMCCandidate/interface/GenParticle.h" + +#include "DataFormats/Common/interface/ValueMap.h" + +// +// class declaration +// + +class GenJetGenPartMerger : public edm::stream::EDProducer<> { +public: + explicit GenJetGenPartMerger(const edm::ParameterSet&); + ~GenJetGenPartMerger() override; + +private: + void beginStream(edm::StreamID) override; + void produce(edm::Event&, const edm::EventSetup&) override; + void endStream() override; + + const edm::EDGetTokenT jetToken_; + const edm::EDGetTokenT partToken_; + const edm::EDGetTokenT> tauAncToken_; +}; + +// +// constants, enums and typedefs +// + +// +// static data member definitions +// + +// +// constructors and destructor +// +GenJetGenPartMerger::GenJetGenPartMerger(const edm::ParameterSet& iConfig) + : jetToken_(consumes(iConfig.getParameter("srcJet"))), + partToken_(consumes(iConfig.getParameter("srcPart"))), + tauAncToken_(consumes>(iConfig.getParameter("hasTauAnc"))) { + produces("merged"); + produces>("hasTauAnc"); +} + +GenJetGenPartMerger::~GenJetGenPartMerger() {} + +// +// member functions +// + +// ------------ method called to produce the data ------------ +void GenJetGenPartMerger::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) { + using namespace edm; + std::unique_ptr merged(new reco::GenJetCollection); + + std::vector hasTauAncValues; + + edm::Handle jetHandle; + iEvent.getByToken(jetToken_, jetHandle); + + edm::Handle partHandle; + iEvent.getByToken(partToken_, partHandle); + + edm::Handle> tauAncHandle; + iEvent.getByToken(tauAncToken_, tauAncHandle); + + for (unsigned int ijet = 0; ijet < jetHandle->size(); ++ijet) { + auto jet = jetHandle->at(ijet); + merged->push_back(reco::GenJet(jet)); + reco::GenJetRef jetRef(jetHandle, ijet); + hasTauAncValues.push_back((*tauAncHandle)[jetRef]); + } + + for (auto& part : *partHandle) { + reco::GenJet jet; + jet.setP4(part.p4()); + jet.setPdgId(part.pdgId()); + jet.setCharge(part.charge()); + merged->push_back(jet); + hasTauAncValues.push_back(false); + } + + auto newmerged = iEvent.put(std::move(merged), "merged"); + + std::unique_ptr> out(new edm::ValueMap()); + edm::ValueMap::Filler filler(*out); + filler.insert(newmerged, hasTauAncValues.begin(), hasTauAncValues.end()); + filler.fill(); + + iEvent.put(std::move(out), "hasTauAnc"); +} + +// ------------ method called once each stream before processing any runs, lumis or events ------------ +void GenJetGenPartMerger::beginStream(edm::StreamID) {} + +// ------------ method called once each stream after processing all runs, lumis and events ------------ +void GenJetGenPartMerger::endStream() {} + +//define this as a plug-in +DEFINE_FWK_MODULE(GenJetGenPartMerger); diff --git a/PhysicsTools/NanoAOD/python/electrons_cff.py b/PhysicsTools/NanoAOD/python/electrons_cff.py index 4ae862884e9fd..83449e50d95a4 100644 --- a/PhysicsTools/NanoAOD/python/electrons_cff.py +++ b/PhysicsTools/NanoAOD/python/electrons_cff.py @@ -1,10 +1,10 @@ import FWCore.ParameterSet.Config as cms - from PhysicsTools.NanoAOD.nano_eras_cff import * from PhysicsTools.NanoAOD.common_cff import * import PhysicsTools.PatAlgos.producersLayer1.electronProducer_cfi from math import ceil,log - +#NOTE: All definitions of modules should point to the latest flavour of the electronTable in NanoAOD. +#Common modifications for past eras are done at the end whereas modifications specific to a single era is done after the original definition. from RecoEgamma.EgammaTools.egammaObjectModificationsInMiniAOD_cff import egamma8XObjectUpdateModifier,egamma9X105XUpdateModifier,prependEgamma8XObjectUpdateModifier ele9X105XUpdateModifier=egamma9X105XUpdateModifier.clone( phoPhotonIso = "", @@ -24,7 +24,7 @@ # this below is used only in some eras slimmedElectronsUpdated = cms.EDProducer("PATElectronUpdater", - src = cms.InputTag("slimmedElectronsTo106X"), + src = cms.InputTag("slimmedElectrons"), vertices = cms.InputTag("offlineSlimmedPrimaryVertices"), computeMiniIso = cms.bool(False), fixDxySign = cms.bool(True), @@ -33,15 +33,10 @@ miniIsoParamsE = PhysicsTools.PatAlgos.producersLayer1.electronProducer_cfi.patElectrons.miniIsoParamsE, # so they're in sync ) run2_miniAOD_80XLegacy.toModify( slimmedElectronsUpdated, computeMiniIso = True ) -# bypass the update to 106X in 106X to only pick up the IP sign fix -run2_egamma_2017.toModify(slimmedElectronsUpdated, src = cms.InputTag("slimmedElectrons")) -run2_egamma_2018.toModify(slimmedElectronsUpdated, src = cms.InputTag("slimmedElectrons")) -run2_nanoAOD_106Xv1.toModify(slimmedElectronsUpdated, src = cms.InputTag("slimmedElectrons")) -####because run2_egamma_2017 and run2_egamma_2018 can modify things further, need the following line to resort back +##modify the past eras for modifier in run2_miniAOD_80XLegacy,run2_nanoAOD_94X2016,run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_102Xv1: modifier.toModify(slimmedElectronsUpdated, src = cms.InputTag("slimmedElectronsTo106X")) - - +############################FOR bitmapVIDForEle main defn############################# electron_id_modules_WorkingPoints_nanoAOD = cms.PSet( modules = cms.vstring( 'RecoEgamma.ElectronIdentification.Identification.cutBasedElectronID_Fall17_94X_V1_cff', @@ -59,7 +54,6 @@ "egmGsfElectronIDs:cutBasedElectronID-Fall17-94X-V2-tight", ) ) - for modifier in run2_miniAOD_80XLegacy,run2_nanoAOD_94X2016: modifier.toModify(electron_id_modules_WorkingPoints_nanoAOD, modules = cms.vstring( @@ -84,7 +78,6 @@ ) ) - def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): docstring='' for modname in modules: @@ -102,40 +95,34 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): ) _bitmapVIDForEle_docstring = _get_bitmapVIDForEle_docstring(electron_id_modules_WorkingPoints_nanoAOD.modules,bitmapVIDForEle.WorkingPoints) -bitmapVIDForEleSpring15 = bitmapVIDForEle.clone() -bitmapVIDForEleSpring15.WorkingPoints = cms.vstring( - "egmGsfElectronIDs:cutBasedElectronID-Spring15-25ns-V1-standalone-veto", - "egmGsfElectronIDs:cutBasedElectronID-Spring15-25ns-V1-standalone-loose", - "egmGsfElectronIDs:cutBasedElectronID-Spring15-25ns-V1-standalone-medium", -# "egmGsfElectronIDs:cutBasedElectronID-Spring15-25ns-V1-standalone-tight", # not fitting in sizeof(int) +bitmapVIDForEleSpring15 = bitmapVIDForEle.clone( + WorkingPoints = cms.vstring( + "egmGsfElectronIDs:cutBasedElectronID-Spring15-25ns-V1-standalone-veto", + "egmGsfElectronIDs:cutBasedElectronID-Spring15-25ns-V1-standalone-loose", + "egmGsfElectronIDs:cutBasedElectronID-Spring15-25ns-V1-standalone-medium", + # "egmGsfElectronIDs:cutBasedElectronID-Spring15-25ns-V1-standalone-tight", # not fitting in sizeof(int) + ) ) _bitmapVIDForEleSpring15_docstring = _get_bitmapVIDForEle_docstring(electron_id_modules_WorkingPoints_nanoAOD.modules,bitmapVIDForEleSpring15.WorkingPoints) -bitmapVIDForEleSum16 = bitmapVIDForEle.clone() -bitmapVIDForEleSum16.WorkingPoints = cms.vstring( +bitmapVIDForEleSum16 = bitmapVIDForEle.clone( + WorkingPoints = cms.vstring( "egmGsfElectronIDs:cutBasedElectronID-Summer16-80X-V1-veto", "egmGsfElectronIDs:cutBasedElectronID-Summer16-80X-V1-loose", "egmGsfElectronIDs:cutBasedElectronID-Summer16-80X-V1-medium", "egmGsfElectronIDs:cutBasedElectronID-Summer16-80X-V1-tight", + ) ) _bitmapVIDForEleSum16_docstring = _get_bitmapVIDForEle_docstring(electron_id_modules_WorkingPoints_nanoAOD.modules,bitmapVIDForEleSum16.WorkingPoints) -bitmapVIDForEleHEEP = bitmapVIDForEle.clone() -bitmapVIDForEleHEEP.WorkingPoints = cms.vstring( - "egmGsfElectronIDs:heepElectronID-HEEPV70" +bitmapVIDForEleHEEP = bitmapVIDForEle.clone( + WorkingPoints = cms.vstring("egmGsfElectronIDs:heepElectronID-HEEPV70" + ) ) _bitmapVIDForEleHEEP_docstring = _get_bitmapVIDForEle_docstring(electron_id_modules_WorkingPoints_nanoAOD.modules,bitmapVIDForEleHEEP.WorkingPoints) - - - - -for modifier in run2_egamma_2017,run2_egamma_2018,run2_miniAOD_80XLegacy,run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016,run2_nanoAOD_102Xv1,run2_nanoAOD_106Xv1: - modifier.toModify(bitmapVIDForEle, src = "slimmedElectronsUpdated") - modifier.toModify(bitmapVIDForEleSpring15, src = "slimmedElectronsUpdated") - modifier.toModify(bitmapVIDForEleSum16, src = "slimmedElectronsUpdated") - modifier.toModify(bitmapVIDForEleHEEP, src = "slimmedElectronsUpdated") - - +############################for bitmapVIDForEle defn end############################# +#######################ISO ELE defn(in principle should be an import#################### +##PhysicsTools/NanoAOD/python/EleIsoValueMapProducer_cfi.py isoForEle = cms.EDProducer("EleIsoValueMapProducer", src = cms.InputTag("slimmedElectrons"), relative = cms.bool(False), @@ -144,61 +131,64 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): EAFile_MiniIso = cms.FileInPath("RecoEgamma/ElectronIdentification/data/Fall17/effAreaElectrons_cone03_pfNeuHadronsAndPhotons_94X.txt"), EAFile_PFIso = cms.FileInPath("RecoEgamma/ElectronIdentification/data/Fall17/effAreaElectrons_cone03_pfNeuHadronsAndPhotons_94X.txt"), ) -for modifier in run2_egamma_2017,run2_egamma_2018, run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016,run2_nanoAOD_102Xv1,run2_nanoAOD_106Xv1: - modifier.toModify(isoForEle, src = "slimmedElectronsUpdated") - -run2_miniAOD_80XLegacy.toModify(isoForEle, src = "slimmedElectronsUpdated", +run2_miniAOD_80XLegacy.toModify(isoForEle, EAFile_MiniIso = "RecoEgamma/ElectronIdentification/data/Spring15/effAreaElectrons_cone03_pfNeuHadronsAndPhotons_25ns.txt", EAFile_PFIso = "RecoEgamma/ElectronIdentification/data/Summer16/effAreaElectrons_cone03_pfNeuHadronsAndPhotons_80X.txt") run2_nanoAOD_94X2016.toModify(isoForEle, EAFile_MiniIso = "RecoEgamma/ElectronIdentification/data/Spring15/effAreaElectrons_cone03_pfNeuHadronsAndPhotons_25ns.txt", EAFile_PFIso = "RecoEgamma/ElectronIdentification/data/Summer16/effAreaElectrons_cone03_pfNeuHadronsAndPhotons_80X.txt") - +#######################################ISO ELE end##################################### +######################################ptRatioForEle##################################### +###import from hysicsTools/NanoAOD/pythonElectronJetVarProducer_cfi.py ptRatioRelForEle = cms.EDProducer("ElectronJetVarProducer", srcJet = cms.InputTag("updatedJets"), srcLep = cms.InputTag("slimmedElectrons"), srcVtx = cms.InputTag("offlineSlimmedPrimaryVertices"), ) -for modifier in run2_egamma_2017,run2_egamma_2018, run2_miniAOD_80XLegacy,run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016,run2_nanoAOD_102Xv1,run2_nanoAOD_106Xv1: - modifier.toModify(ptRatioRelForEle, srcLep = "slimmedElectronsUpdated") - +######################################ptRatioForEle##################################### +#############3###################seedGailEle############################# seedGainEle = cms.EDProducer("ElectronSeedGainProducer", src = cms.InputTag("slimmedElectrons")) -for modifier in run2_egamma_2017,run2_egamma_2018, run2_miniAOD_80XLegacy,run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016,run2_nanoAOD_102Xv1,run2_nanoAOD_106Xv1: - modifier.toModify(seedGainEle, src = "slimmedElectronsUpdated") - +############################################seed gainELE +############################calibratedPatElectrons############## +##this is a special one, so we leave the era modifications here##### import RecoEgamma.EgammaTools.calibratedEgammas_cff -calibratedPatElectronsUL17 = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatElectrons.clone( +calibratedPatElectronsNano = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatElectrons.clone( produceCalibratedObjs = False, - correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2017_24Feb2020_runEtaR9Gain_v2"), + src = "slimmedElectrons" ) -run2_egamma_2017.toModify(calibratedPatElectronsUL17, src = "slimmedElectronsUpdated") -calibratedPatElectronsUL18 = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatElectrons.clone( - produceCalibratedObjs = False, - correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2018_29Sep2020_RunFineEtaR9Gain"), -) -run2_egamma_2018.toModify(calibratedPatElectronsUL18, src = "slimmedElectronsUpdated") +(run2_egamma_2016 & tracker_apv_vfp30_2016).toModify(calibratedPatElectronsNano, + correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2016_UltraLegacy_preVFP_RunFineEtaR9Gain") +) -calibratedPatElectrons80XLegacy = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatElectrons.clone( - produceCalibratedObjs = False, - correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Legacy2016_07Aug2017_FineEtaR9_v3_ele_unc"), +(run2_egamma_2016 & ~tracker_apv_vfp30_2016).toModify(calibratedPatElectronsNano, + correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2016_UltraLegacy_postVFP_RunFineEtaR9Gain") ) -run2_miniAOD_80XLegacy.toModify(calibratedPatElectrons80XLegacy, src = "slimmedElectronsUpdated") -calibratedPatElectrons94X = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatElectrons.clone( - produceCalibratedObjs = False, - correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2017_17Nov2017_v1_ele_unc"), +run2_egamma_2017.toModify(calibratedPatElectronsNano, + correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2017_24Feb2020_runEtaR9Gain_v2") ) -for modifier in run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016: - modifier.toModify(calibratedPatElectrons94X, src = "slimmedElectronsUpdated") -calibratedPatElectrons102X = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatElectrons.clone( - produceCalibratedObjs = False, - correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2018_Step2Closure_CoarseEtaR9Gain_v2"), +run2_egamma_2018.toModify(calibratedPatElectronsNano, + correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2018_29Sep2020_RunFineEtaR9Gain") ) -run2_nanoAOD_102Xv1.toModify(calibratedPatElectrons102X, src = "slimmedElectronsUpdated") +run2_miniAOD_80XLegacy.toModify(calibratedPatElectronsNano, + correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Legacy2016_07Aug2017_FineEtaR9_v3_ele_unc") + ) + +for modifier in run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2: + modifier.toModify(calibratedPatElectronsNano, + correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2017_17Nov2017_v1_ele_unc") + ) + +run2_nanoAOD_102Xv1.toModify(calibratedPatElectronsNano, + correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2018_Step2Closure_CoarseEtaR9Gain_v2") +) +##############################end calibratedPatElectronsNano############################33 +#####################Start slimmedElectronsWithUserData###############################3 +##import from PhysicsTools/PatAlgos/python/electronsWithUserData_cfi.py slimmedElectronsWithUserData = cms.EDProducer("PATElectronUserDataEmbedder", src = cms.InputTag("slimmedElectrons"), userFloats = cms.PSet( @@ -214,6 +204,14 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): ptRatio = cms.InputTag("ptRatioRelForEle:ptRatio"), ptRel = cms.InputTag("ptRatioRelForEle:ptRel"), jetNDauChargedMVASel = cms.InputTag("ptRatioRelForEle:jetNDauChargedMVASel"), + ecalTrkEnergyErrPostCorrNew = cms.InputTag("calibratedPatElectronsNano","ecalTrkEnergyErrPostCorr"), + ecalTrkEnergyPreCorrNew = cms.InputTag("calibratedPatElectronsNano","ecalTrkEnergyPreCorr"), + ecalTrkEnergyPostCorrNew = cms.InputTag("calibratedPatElectronsNano","ecalTrkEnergyPostCorr"), + energyScaleUpNew = cms.InputTag("calibratedPatElectronsNano","energyScaleUp"), + energyScaleDownNew = cms.InputTag("calibratedPatElectronsNano","energyScaleDown"), + energySigmaUpNew = cms.InputTag("calibratedPatElectronsNano","energySigmaUp"), + energySigmaDownNew = cms.InputTag("calibratedPatElectronsNano","energySigmaDown"), + ), userIntFromBools = cms.PSet( @@ -250,53 +248,42 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): jetForLepJetVar = cms.InputTag("ptRatioRelForEle:jetForLepJetVar") # warning: Ptr is null if no match is found ), ) -for modifier in run2_egamma_2017,run2_egamma_2018, run2_miniAOD_80XLegacy,run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016,run2_nanoAOD_102Xv1,run2_nanoAOD_106Xv1: - modifier.toModify(slimmedElectronsWithUserData, src = "slimmedElectronsUpdated") - -run2_egamma_2017.toModify(slimmedElectronsWithUserData.userFloats, - ecalTrkEnergyErrPostCorrNew = cms.InputTag("calibratedPatElectronsUL17","ecalTrkEnergyErrPostCorr"), - ecalTrkEnergyPreCorrNew = cms.InputTag("calibratedPatElectronsUL17","ecalTrkEnergyPreCorr"), - ecalTrkEnergyPostCorrNew = cms.InputTag("calibratedPatElectronsUL17","ecalTrkEnergyPostCorr"), +###Not to update with S+S vars as they already exist for run2_nanoAOD_94X2016 era +run2_nanoAOD_94X2016.toModify(slimmedElectronsWithUserData.userFloats, + ecalTrkEnergyErrPostCorrNew = None, + ecalTrkEnergyPreCorrNew = None, + ecalTrkEnergyPostCorrNew = None, + energyScaleUpNew = None, + energyScaleDownNew = None, + energySigmaUpNew = None, + energySigmaDownNew = None + + ) -run2_egamma_2018.toModify(slimmedElectronsWithUserData.userFloats, - ecalTrkEnergyErrPostCorrNew = cms.InputTag("calibratedPatElectronsUL18","ecalTrkEnergyErrPostCorr"), - ecalTrkEnergyPreCorrNew = cms.InputTag("calibratedPatElectronsUL18","ecalTrkEnergyPreCorr"), - ecalTrkEnergyPostCorrNew = cms.InputTag("calibratedPatElectronsUL18","ecalTrkEnergyPostCorr"), +run2_nanoAOD_94X2016.toModify(slimmedElectronsWithUserData.userIntFromBools, + # MVAs and HEEP are already pre-computed. Cut-based too (except V2), but we re-add it for consistency with the nested bitmap + cutbasedID_Sum16_veto = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Summer16-80X-V1-veto"), + cutbasedID_Sum16_loose = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Summer16-80X-V1-loose"), + cutbasedID_Sum16_medium = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Summer16-80X-V1-medium"), + cutbasedID_Sum16_tight = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Summer16-80X-V1-tight"), + cutbasedID_HLT = cms.InputTag("egmGsfElectronIDs:cutBasedElectronHLTPreselection-Summer16-V1"), + cutbasedID_Spring15_veto = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Spring15-25ns-V1-standalone-veto"), + cutbasedID_Spring15_loose = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Spring15-25ns-V1-standalone-loose"), + cutbasedID_Spring15_medium = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Spring15-25ns-V1-standalone-medium"), + cutbasedID_Spring15_tight = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Spring15-25ns-V1-standalone-tight"), + cutbasedID_Fall17_V2_veto = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Fall17-94X-V2-veto"), + cutbasedID_Fall17_V2_loose = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Fall17-94X-V2-loose"), + cutbasedID_Fall17_V2_medium = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Fall17-94X-V2-medium"), + cutbasedID_Fall17_V2_tight = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Fall17-94X-V2-tight"), + ) run2_miniAOD_80XLegacy.toModify(slimmedElectronsWithUserData.userFloats, mvaSpring16GP = cms.InputTag("electronMVAValueMapProducer:ElectronMVAEstimatorRun2Spring16GeneralPurposeV1Values"), mvaSpring16HZZ = cms.InputTag("electronMVAValueMapProducer:ElectronMVAEstimatorRun2Spring16HZZV1Values"), ) -run2_miniAOD_80XLegacy.toModify(slimmedElectronsWithUserData.userFloats, - ecalTrkEnergyErrPostCorrNew = cms.InputTag("calibratedPatElectrons80XLegacy","ecalTrkEnergyErrPostCorr"), - ecalTrkEnergyPreCorrNew = cms.InputTag("calibratedPatElectrons80XLegacy","ecalTrkEnergyPreCorr"), - ecalTrkEnergyPostCorrNew = cms.InputTag("calibratedPatElectrons80XLegacy","ecalTrkEnergyPostCorr"), -) -run2_nanoAOD_94XMiniAODv1.toModify(slimmedElectronsWithUserData.userFloats, - ecalTrkEnergyErrPostCorrNew = cms.InputTag("calibratedPatElectrons94X","ecalTrkEnergyErrPostCorr"), - ecalTrkEnergyPreCorrNew = cms.InputTag("calibratedPatElectrons94X","ecalTrkEnergyPreCorr"), - ecalTrkEnergyPostCorrNew = cms.InputTag("calibratedPatElectrons94X","ecalTrkEnergyPostCorr"), -) - - -#the94X miniAOD V2 had a bug in the scale and smearing for electrons in the E/p comb -#therefore we redo it but but we need use a new name for the userFloat as we cant override existing userfloats -#for technical reasons - -run2_nanoAOD_94XMiniAODv2.toModify(slimmedElectronsWithUserData.userFloats, - ecalTrkEnergyErrPostCorrNew = cms.InputTag("calibratedPatElectrons94X","ecalTrkEnergyErrPostCorr"), - ecalTrkEnergyPreCorrNew = cms.InputTag("calibratedPatElectrons94X","ecalTrkEnergyPreCorr"), - ecalTrkEnergyPostCorrNew = cms.InputTag("calibratedPatElectrons94X","ecalTrkEnergyPostCorr"), -) - -run2_nanoAOD_102Xv1.toModify(slimmedElectronsWithUserData.userFloats, - ecalTrkEnergyErrPostCorrNew = cms.InputTag("calibratedPatElectrons102X","ecalTrkEnergyErrPostCorr"), - ecalTrkEnergyPreCorrNew = cms.InputTag("calibratedPatElectrons102X","ecalTrkEnergyPreCorr"), - ecalTrkEnergyPostCorrNew = cms.InputTag("calibratedPatElectrons102X","ecalTrkEnergyPostCorr"), -) run2_miniAOD_80XLegacy.toModify(slimmedElectronsWithUserData.userIntFromBools, mvaSpring16GP_WP90 = cms.InputTag("egmGsfElectronIDs:mvaEleID-Spring16-GeneralPurpose-V1-wp90"), @@ -313,34 +300,19 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): cutbasedID_Spring15_tight = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Spring15-25ns-V1-standalone-tight"), ) -run2_nanoAOD_94X2016.toModify(slimmedElectronsWithUserData.userIntFromBools, - # MVAs and HEEP are already pre-computed. Cut-based too (except V2), but we re-add it for consistency with the nested bitmap - cutbasedID_Sum16_veto = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Summer16-80X-V1-veto"), - cutbasedID_Sum16_loose = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Summer16-80X-V1-loose"), - cutbasedID_Sum16_medium = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Summer16-80X-V1-medium"), - cutbasedID_Sum16_tight = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Summer16-80X-V1-tight"), - cutbasedID_HLT = cms.InputTag("egmGsfElectronIDs:cutBasedElectronHLTPreselection-Summer16-V1"), - cutbasedID_Spring15_veto = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Spring15-25ns-V1-standalone-veto"), - cutbasedID_Spring15_loose = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Spring15-25ns-V1-standalone-loose"), - cutbasedID_Spring15_medium = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Spring15-25ns-V1-standalone-medium"), - cutbasedID_Spring15_tight = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Spring15-25ns-V1-standalone-tight"), - cutbasedID_Fall17_V2_veto = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Fall17-94X-V2-veto"), - cutbasedID_Fall17_V2_loose = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Fall17-94X-V2-loose"), - cutbasedID_Fall17_V2_medium = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Fall17-94X-V2-medium"), - cutbasedID_Fall17_V2_tight = cms.InputTag("egmGsfElectronIDs:cutBasedElectronID-Fall17-94X-V2-tight"), - -) for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016: modifier.toModify(slimmedElectronsWithUserData.userInts, VIDNestedWPBitmapSpring15 = cms.InputTag("bitmapVIDForEleSpring15"), VIDNestedWPBitmapSum16 = cms.InputTag("bitmapVIDForEleSum16"), ) - +#################################################END slimmedElectrons with user data##################### +#################################################finalElectrons##################### finalElectrons = cms.EDFilter("PATElectronRefSelector", src = cms.InputTag("slimmedElectronsWithUserData"), cut = cms.string("pt > 5 ") ) - +#################################################finalElectrons##################### +################################################electronMVATTH##################### electronMVATTH= cms.EDProducer("EleBaseMVAValueMapProducer", src = cms.InputTag("linkedObjects","electrons"), weightFile = cms.FileInPath("PhysicsTools/NanoAOD/data/el_BDTG_2017.weights.xml"), @@ -365,7 +337,8 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): run2_egamma_2016.toModify(electronMVATTH, weightFile = "PhysicsTools/NanoAOD/data/el_BDTG_2016.weights.xml", ) - +################################################electronMVATTH end##################### +################################################electronTable defn ##################### electronTable = cms.EDProducer("SimpleCandidateFlatTableProducer", src = cms.InputTag("linkedObjects","electrons"), cut = cms.string(""), #we should not filter on cross linked collections @@ -435,26 +408,22 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): ), ) -#the94X miniAOD V2 had a bug in the scale and smearing for electrons in the E/p comb -#therefore we redo it but but we need use a new name for the userFloat as we cant override existing userfloats #for technical reasons -for modifier in run2_egamma_2017,run2_egamma_2018, run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_miniAOD_80XLegacy,run2_nanoAOD_102Xv1: +for modifier in run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_miniAOD_80XLegacy,run2_nanoAOD_102Xv1,run2_nanoAOD_106Xv1,run2_nanoAOD_106Xv2: modifier.toModify(electronTable.variables, pt = Var("pt*userFloat('ecalTrkEnergyPostCorrNew')/userFloat('ecalTrkEnergyPreCorrNew')", float, precision=-1, doc="p_{T}"), energyErr = Var("userFloat('ecalTrkEnergyErrPostCorrNew')", float, precision=6, doc="energy error of the cluster-track combination"), eCorr = Var("userFloat('ecalTrkEnergyPostCorrNew')/userFloat('ecalTrkEnergyPreCorrNew')", float, doc="ratio of the calibrated energy/miniaod energy"), scEtOverPt = Var("(superCluster().energy()/(pt*userFloat('ecalTrkEnergyPostCorrNew')/userFloat('ecalTrkEnergyPreCorrNew')*cosh(superCluster().eta())))-1",float,doc="(supercluster transverse energy)/pt-1",precision=8), -) - -# scale and smearing only when available -for modifier in run2_nanoAOD_94X2016,: - modifier.toModify(electronTable.variables, - pt = Var("pt*userFloat('ecalTrkEnergyPostCorr')/userFloat('ecalTrkEnergyPreCorr')", float, precision=-1, doc="p_{T}"), - energyErr = Var("userFloat('ecalTrkEnergyErrPostCorr')", float, precision=6, doc="energy error of the cluster-track combination"), - eCorr = Var("userFloat('ecalTrkEnergyPostCorr')/userFloat('ecalTrkEnergyPreCorr')", float, doc="ratio of the calibrated energy/miniaod energy"), - scEtOverPt = Var("(superCluster().energy()/(pt*userFloat('ecalTrkEnergyPostCorr')/userFloat('ecalTrkEnergyPreCorr')*cosh(superCluster().eta())))-1",float,doc="(supercluster transverse energy)/pt-1",precision=8), - ) + dEscaleUp=Var("userFloat('ecalTrkEnergyPostCorrNew')-userFloat('energyScaleUpNew')", float, doc="ecal energy scale shifted 1 sigma up(adding gain/stat/syst in quadrature)", precision=8), + dEscaleDown=Var("userFloat('ecalTrkEnergyPostCorrNew')-userFloat('energyScaleDownNew')", float, doc="ecal energy scale shifted 1 sigma down (adding gain/stat/syst in quadrature)", precision=8), + dEsigmaUp=Var("userFloat('ecalTrkEnergyPostCorrNew')-userFloat('energySigmaUpNew')", float, doc="ecal energy smearing value shifted 1 sigma up", precision=8), + dEsigmaDown=Var("userFloat('ecalTrkEnergyPostCorrNew')-userFloat('energySigmaDownNew')", float, doc="ecal energy smearing value shifted 1 sigma up", precision=8), +) +#the94X miniAOD V2 had a bug in the scale and smearing for electrons in the E/p comb +#therefore we redo it but but we need use a new name for the userFloat as we cant override existing userfloats +# scale and smearing only when available#ONLY needed for this era run2_nanoAOD_94X2016.toModify(electronTable.variables, cutBased_Sum16 = Var("userInt('cutbasedID_Sum16_veto')+userInt('cutbasedID_Sum16_loose')+userInt('cutbasedID_Sum16_medium')+userInt('cutbasedID_Sum16_tight')",int,doc="cut-based Summer16 ID (0:fail, 1:veto, 2:loose, 3:medium, 4:tight)"), cutBased_Fall17_V1 = Var("electronID('cutBasedElectronID-Fall17-94X-V1-veto')+electronID('cutBasedElectronID-Fall17-94X-V1-loose')+electronID('cutBasedElectronID-Fall17-94X-V1-medium')+electronID('cutBasedElectronID-Fall17-94X-V1-tight')",int,doc="cut-based Fall17 ID (0:fail, 1:veto, 2:loose, 3:medium, 4:tight)"), @@ -479,7 +448,16 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): mvaFall17V1noIso_WPL = Var("electronID('mvaEleID-Fall17-noIso-V1-wpLoose')",bool,doc="MVA Fall17 V1 noIso ID loose WP"), vidNestedWPBitmapSpring15 = Var("userInt('VIDNestedWPBitmapSpring15')",int,doc=_bitmapVIDForEleSpring15_docstring), vidNestedWPBitmapSum16 = Var("userInt('VIDNestedWPBitmapSum16')",int,doc=_bitmapVIDForEleSum16_docstring), -) + pt = Var("pt*userFloat('ecalTrkEnergyPostCorr')/userFloat('ecalTrkEnergyPreCorr')", float, precision=-1, doc="p_{T}"), + energyErr = Var("userFloat('ecalTrkEnergyErrPostCorr')", float, precision=6, doc="energy error of the cluster-track combination"), + eCorr = Var("userFloat('ecalTrkEnergyPostCorr')/userFloat('ecalTrkEnergyPreCorr')", float, doc="ratio of the calibrated energy/miniaod energy"), + scEtOverPt = Var("(superCluster().energy()/(pt*userFloat('ecalTrkEnergyPostCorr')/userFloat('ecalTrkEnergyPreCorr')*cosh(superCluster().eta())))-1",float,doc="(supercluster transverse energy)/pt-1",precision=8), + dEscaleUp=Var("userFloat('ecalTrkEnergyPostCorr')-userFloat('energyScaleUp')", float, doc="ecal energy scale shifted 1 sigma up (adding gain/stat/syst in quadrature)", precision=8), + dEscaleDown=Var("userFloat('ecalTrkEnergyPostCorr')-userFloat('energyScaleDown')", float, doc="ecal energy scale shifted 1 sigma down (adding gain/stat/syst in quadrature)", precision=8), + dEsigmaUp=Var("userFloat('ecalTrkEnergyPostCorr')-userFloat('energySigmaUp')", float, doc="ecal energy smearing value shifted 1 sigma up", precision=8), + dEsigmaDown=Var("userFloat('ecalTrkEnergyPostCorr')-userFloat('energySigmaDown')", float, doc="ecal energy smearing value shifted 1 sigma up", precision=8), +) +### run2_miniAOD_80XLegacy.toModify(electronTable.variables, cutBased_Sum16 = Var("userInt('cutbasedID_Sum16_veto')+userInt('cutbasedID_Sum16_loose')+userInt('cutbasedID_Sum16_medium')+userInt('cutbasedID_Sum16_tight')",int,doc="cut-based Summer16 ID (0:fail, 1:veto, 2:loose, 3:medium, 4:tight)"), cutBased_HLTPreSel = Var("userInt('cutbasedID_HLT')",int,doc="cut-based HLT pre-selection ID"), @@ -494,7 +472,33 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): vidNestedWPBitmapSum16 = Var("userInt('VIDNestedWPBitmapSum16')",int,doc=_bitmapVIDForEleSum16_docstring), ) - +#############electron Table END##################### +from PhysicsTools.NanoAOD.particlelevel_cff import particleLevel +particleLevelForMatching = particleLevel.clone( + lepMinPt = cms.double(3.), + phoMinPt = cms.double(3), +) +#as above should be cloned from @ PhysicsTools/NanoAOD/python/particlelevel_cff.py +tautaggerForMatching = cms.EDProducer("GenJetTauTaggerProducer", + src = cms.InputTag('particleLevelForMatching:leptons') +) +##PhysicsTools/NanoAOD/plugins/GenJetGenPartMerger.cc##this class misses fillDescription#TODO +matchingElecPhoton = cms.EDProducer("GenJetGenPartMerger", + srcJet =cms.InputTag("particleLevelForMatching:leptons"), + srcPart=cms.InputTag("particleLevelForMatching:photons"), + hasTauAnc=cms.InputTag("tautaggerForMatching"), +) +electronsMCMatchForTableAlt = cms.EDProducer("GenJetMatcherDRPtByDR", # cut on deltaR, deltaPt/Pt; pick best by deltaR + src = electronTable.src, # final reco collection + matched = cms.InputTag("matchingElecPhoton:merged"), # final mc-truth particle collection + mcPdgId = cms.vint32(11,22), # one or more PDG ID (11 = el, 22 = pho); absolute values (see below) + checkCharge = cms.bool(False), # True = require RECO and MC objects to have the same charge + mcStatus = cms.vint32(), + maxDeltaR = cms.double(0.3), # Minimum deltaR for the match + maxDPtRel = cms.double(0.5), # Minimum deltaPt/Pt for the match + resolveAmbiguities = cms.bool(True), # Forbid two RECO objects to match to the same GEN object + resolveByMatchQuality = cms.bool(True), # False = just match input in order; True = pick lowest deltaR pair first +) electronsMCMatchForTable = cms.EDProducer("MCMatcher", # cut on deltaR, deltaPt/Pt; pick best by deltaR src = electronTable.src, # final reco collection matched = cms.InputTag("finalGenParticles"), # final mc-truth particle collection @@ -506,52 +510,50 @@ def _get_bitmapVIDForEle_docstring(modules,WorkingPoints): resolveAmbiguities = cms.bool(True), # Forbid two RECO objects to match to the same GEN object resolveByMatchQuality = cms.bool(True), # False = just match input in order; True = pick lowest deltaR pair first ) - +#should be cloned from PhysicsTools/NanoAOD/python/candMcMatchTable_cfi.py electronMCTable = cms.EDProducer("CandMCMatchTableProducer", src = electronTable.src, + mcMapDressedLep = cms.InputTag("electronsMCMatchForTableAlt"), mcMap = cms.InputTag("electronsMCMatchForTable"), + mapTauAnc = cms.InputTag("matchingElecPhoton:hasTauAnc"), objName = electronTable.name, objType = electronTable.name, #cms.string("Electron"), branchName = cms.string("genPart"), docString = cms.string("MC matching to status==1 electrons or photons"), + genparticles = cms.InputTag("finalGenParticles"), ) electronSequence = cms.Sequence(bitmapVIDForEle + bitmapVIDForEleHEEP + isoForEle + ptRatioRelForEle + seedGainEle + slimmedElectronsWithUserData + finalElectrons) electronTables = cms.Sequence (electronMVATTH + electronTable) -electronMC = cms.Sequence(electronsMCMatchForTable + electronMCTable) +electronMC = cms.Sequence(particleLevelForMatching + tautaggerForMatching + matchingElecPhoton + electronsMCMatchForTable + electronsMCMatchForTableAlt + electronMCTable) + +#for NANO from reminAOD, no need to run slimmedElectronsUpdated, other modules of electron sequence will run on slimmedElectrons +for modifier in run2_miniAOD_80XLegacy,run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016,run2_nanoAOD_102Xv1,run2_nanoAOD_106Xv1: + modifier.toModify(bitmapVIDForEle, src = "slimmedElectronsUpdated") + modifier.toModify(bitmapVIDForEleSpring15, src = "slimmedElectronsUpdated") + modifier.toModify(bitmapVIDForEleSum16, src = "slimmedElectronsUpdated") + modifier.toModify(bitmapVIDForEleHEEP, src = "slimmedElectronsUpdated") + modifier.toModify(isoForEle, src = "slimmedElectronsUpdated") + modifier.toModify(ptRatioRelForEle, srcLep = "slimmedElectronsUpdated") + modifier.toModify(seedGainEle, src = "slimmedElectronsUpdated") + modifier.toModify(slimmedElectronsWithUserData, src = "slimmedElectronsUpdated") + modifier.toModify(calibratedPatElectronsNano, src = "slimmedElectronsUpdated") + ###this sequence should run for all eras except run2_nanoAOD_106Xv2 which should run the electronSequence as above + _withULAndUpdate_sequence = cms.Sequence(slimmedElectronsUpdated + electronSequence.copy()) + modifier.toReplaceWith(electronSequence, _withULAndUpdate_sequence) + from RecoEgamma.ElectronIdentification.heepIdVarValueMapProducer_cfi import heepIDVarValueMaps _updateTo106X_sequence =cms.Sequence(heepIDVarValueMaps + slimmedElectronsTo106X) heepIDVarValueMaps.dataFormat = 2 +_withTo106XAndUpdate_sequence = cms.Sequence(_updateTo106X_sequence + electronSequence.copy()) -_withTo106XAndUpdate_sequence = cms.Sequence(_updateTo106X_sequence + slimmedElectronsUpdated + electronSequence.copy()) - -_withULAndUpdate_sequence = cms.Sequence(slimmedElectronsUpdated + electronSequence.copy()) - -_withUL17AndUpdateScale_sequence = _withULAndUpdate_sequence.copy() -_withUL17AndUpdateScale_sequence.replace(slimmedElectronsWithUserData, calibratedPatElectronsUL17 + slimmedElectronsWithUserData) -run2_egamma_2017.toReplaceWith(electronSequence, _withUL17AndUpdateScale_sequence) - -_withUL18AndUpdateScale_sequence = _withULAndUpdate_sequence.copy() -_withUL18AndUpdateScale_sequence.replace(slimmedElectronsWithUserData, calibratedPatElectronsUL18 + slimmedElectronsWithUserData) -run2_egamma_2018.toReplaceWith(electronSequence, _withUL18AndUpdateScale_sequence) - -_withTo106XAndUpdateAnd80XLegacyScale_sequence = _withTo106XAndUpdate_sequence.copy() -_withTo106XAndUpdateAnd80XLegacyScale_sequence.replace(slimmedElectronsWithUserData, calibratedPatElectrons80XLegacy + bitmapVIDForEleSpring15 +bitmapVIDForEleSum16 + slimmedElectronsWithUserData) -run2_miniAOD_80XLegacy.toReplaceWith(electronSequence, _withTo106XAndUpdateAnd80XLegacyScale_sequence) +for modifier in run2_miniAOD_80XLegacy, run2_nanoAOD_94X2016: + _withTo106XAndUpdateAnd80XLegacyScale_sequence = _withTo106XAndUpdate_sequence.copy() + _withTo106XAndUpdateAnd80XLegacyScale_sequence.replace(slimmedElectronsWithUserData, bitmapVIDForEleSpring15 +bitmapVIDForEleSum16 + slimmedElectronsWithUserData) + modifier.toReplaceWith(electronSequence, _withTo106XAndUpdateAnd80XLegacyScale_sequence) _withTo106XAndUpdateAnd94XScale_sequence = _withTo106XAndUpdate_sequence.copy() -_withTo106XAndUpdateAnd94XScale_sequence.replace(slimmedElectronsWithUserData, calibratedPatElectrons94X + slimmedElectronsWithUserData) -run2_nanoAOD_94XMiniAODv1.toReplaceWith(electronSequence, _withTo106XAndUpdateAnd94XScale_sequence) -run2_nanoAOD_94XMiniAODv2.toReplaceWith(electronSequence, _withTo106XAndUpdateAnd94XScale_sequence) - -_withTo106XAndUpdateAnd_bitmapVIDForEleSpring15AndSum16_sequence = _withTo106XAndUpdate_sequence.copy() -_withTo106XAndUpdateAnd_bitmapVIDForEleSpring15AndSum16_sequence.replace(slimmedElectronsWithUserData, bitmapVIDForEleSpring15 + bitmapVIDForEleSum16 + slimmedElectronsWithUserData) -run2_nanoAOD_94X2016.toReplaceWith(electronSequence, _withTo106XAndUpdateAnd_bitmapVIDForEleSpring15AndSum16_sequence) - -_withTo106XAndUpdateAnd102XScale_sequence = _withTo106XAndUpdate_sequence.copy() -_withTo106XAndUpdateAnd102XScale_sequence.replace(slimmedElectronsWithUserData, calibratedPatElectrons102X + slimmedElectronsWithUserData) -run2_nanoAOD_102Xv1.toReplaceWith(electronSequence, _withTo106XAndUpdateAnd102XScale_sequence) +for modifier in run2_nanoAOD_94XMiniAODv1, run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_102Xv1: + modifier.toReplaceWith(electronSequence, _withTo106XAndUpdate_sequence) -_withUpdate_sequence = electronSequence.copy() -_withUpdate_sequence.replace(bitmapVIDForEle, slimmedElectronsUpdated + bitmapVIDForEle) -run2_nanoAOD_106Xv1.toReplaceWith(electronSequence, _withUpdate_sequence) +electronSequence.replace(slimmedElectronsWithUserData,calibratedPatElectronsNano + slimmedElectronsWithUserData) diff --git a/PhysicsTools/NanoAOD/python/isotracks_cff.py b/PhysicsTools/NanoAOD/python/isotracks_cff.py index 757b2d020456e..c6083ae5663e1 100644 --- a/PhysicsTools/NanoAOD/python/isotracks_cff.py +++ b/PhysicsTools/NanoAOD/python/isotracks_cff.py @@ -3,7 +3,7 @@ finalIsolatedTracks = cms.EDProducer("IsolatedTrackCleaner", tracks = cms.InputTag("isolatedTracks"), - cut = cms.string("((pt>5 && (abs(pdgId) == 11 || abs(pdgId) == 13)) || pt > 10) && (abs(pdgId) < 15 || abs(eta) < 2.5) && abs(dxy) < 0.2 && abs(dz) < 0.1 && ((pfIsolationDR03().chargedHadronIso < 5 && pt < 25) || pfIsolationDR03().chargedHadronIso/pt < 0.2)"), + cut = cms.string("((pt>5 && (abs(pdgId) == 11 || abs(pdgId) == 13)) || pt > 10) && (abs(pdgId) < 15 || abs(eta) < 2.5) && ((abs(dxy) < 0.2 && abs(dz) < 0.1) || pt>15) && ((pfIsolationDR03().chargedHadronIso < 5 && pt < 25) || pfIsolationDR03().chargedHadronIso/pt < 0.2)"), finalLeptons = cms.VInputTag( cms.InputTag("finalElectrons"), cms.InputTag("finalLooseMuons"), diff --git a/PhysicsTools/NanoAOD/python/muons_cff.py b/PhysicsTools/NanoAOD/python/muons_cff.py index 0ab0ebf6304b2..55bfe3cecd6ee 100644 --- a/PhysicsTools/NanoAOD/python/muons_cff.py +++ b/PhysicsTools/NanoAOD/python/muons_cff.py @@ -47,7 +47,7 @@ finalMuons = cms.EDFilter("PATMuonRefSelector", src = cms.InputTag("slimmedMuonsWithUserData"), - cut = cms.string("pt > 3 && (passed('CutBasedIdLoose') || passed('SoftCutBasedId') || passed('SoftMvaId') || passed('CutBasedIdGlobalHighPt') || passed('CutBasedIdTrkHighPt'))") + cut = cms.string("pt > 15 || (pt > 3 && (passed('CutBasedIdLoose') || passed('SoftCutBasedId') || passed('SoftMvaId') || passed('CutBasedIdGlobalHighPt') || passed('CutBasedIdTrkHighPt')))") ) finalLooseMuons = cms.EDFilter("PATMuonRefSelector", # for isotrack cleaning diff --git a/PhysicsTools/NanoAOD/python/nanoDQM_cfi.py b/PhysicsTools/NanoAOD/python/nanoDQM_cfi.py index c1bff0f3f2fdf..31584ec78caa1 100644 --- a/PhysicsTools/NanoAOD/python/nanoDQM_cfi.py +++ b/PhysicsTools/NanoAOD/python/nanoDQM_cfi.py @@ -115,6 +115,10 @@ Plot1D('tightCharge', 'tightCharge', 3, -0.5, 2.5, 'Tight charge criteria (0:none, 1:isGsfScPixChargeConsistent, 2:isGsfCtfScPixChargeConsistent)'), NoPlot('vidNestedWPBitmap'), NoPlot('vidNestedWPBitmapHEEP'), + Plot1D('dEscaleUp', 'dEscaleUp', 100, -0.01, 0.01, '#Delta E scaleUp'), + Plot1D('dEscaleDown', 'dEscaleDown', 100, -0.01, 0.01, '#Delta E scaleDown'), + Plot1D('dEsigmaUp', 'dEsigmaUp', 100, -0.1, 0.1, '#Delta E sigmaUp'), + Plot1D('dEsigmaDown', 'dEsigmaDown', 100, -0.1, 0.1, '#Delta E sigmaDown'), ) ), FatJet = cms.PSet( @@ -581,6 +585,10 @@ Plot1D('r9', 'r9', 20, 0, 1.1, 'R9 of the supercluster, calculated with full 5x5 region'), Plot1D('seedGain', 'seedGain', 12, 0.5, 12.5, 'Gain of the seed crystal'), Plot1D('sieie', 'sieie', 20, 0, 0.05, 'sigma_IetaIeta of the supercluster, calculated with full 5x5 region'), + Plot1D('dEscaleUp', 'dEscaleUp', 100, -0.01, 0.01, '#Delta E scaleUp'), + Plot1D('dEscaleDown', 'dEscaleDown', 100, -0.01, 0.01, '#Delta E scaleDown'), + Plot1D('dEsigmaUp', 'dEsigmaUp', 100, -0.1, 0.1, '#Delta E sigmaUp'), + Plot1D('dEsigmaDown', 'dEsigmaDown', 100, -0.1, 0.1, '#Delta E sigmaDown'), NoPlot('vidNestedWPBitmap'), ) ), diff --git a/PhysicsTools/NanoAOD/python/nano_cff.py b/PhysicsTools/NanoAOD/python/nano_cff.py index 0ebe6d9e66061..fdba88878d652 100644 --- a/PhysicsTools/NanoAOD/python/nano_cff.py +++ b/PhysicsTools/NanoAOD/python/nano_cff.py @@ -253,10 +253,12 @@ def nanoAOD_activateVID(process): for modname in electron_id_modules_WorkingPoints_nanoAOD.modules: setupAllVIDIdsInModule(process,modname,setupVIDElectronSelection) process.electronSequence.insert(process.electronSequence.index(process.bitmapVIDForEle),process.egmGsfElectronIDSequence) - for modifier in run2_egamma_2017,run2_egamma_2018,run2_miniAOD_80XLegacy,run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016,run2_nanoAOD_102Xv1,run2_nanoAOD_106Xv1: + for modifier in run2_miniAOD_80XLegacy,run2_nanoAOD_94XMiniAODv1,run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016,run2_nanoAOD_102Xv1,run2_nanoAOD_106Xv1: modifier.toModify(process.electronMVAValueMapProducer, src = "slimmedElectronsUpdated") modifier.toModify(process.egmGsfElectronIDs, physicsObjectSrc = "slimmedElectronsUpdated") + run2_nanoAOD_106Xv2.toModify(process.electronMVAValueMapProducer, src = "slimmedElectrons") + run2_nanoAOD_106Xv2.toModify(process.egmGsfElectronIDs, physicsObjectSrc = "slimmedElectrons") switchOnVIDPhotonIdProducer(process,DataFormat.MiniAOD) # do not call this to avoid resetting photon IDs in VID, if called before inside makePuppiesFromMiniAOD for modname in photon_id_modules_WorkingPoints_nanoAOD.modules: @@ -385,6 +387,18 @@ def nanoAOD_customizeMC(process): modifier.toModify(process, lambda p: nanoAOD_runMETfixEE2017(p,isData=False)) return process +###increasing the precision of selected GenParticles. +def nanoWmassGenCustomize(process): + pdgSelection="?(abs(pdgId) == 11|| abs(pdgId)==13 || abs(pdgId)==15 ||abs(pdgId)== 12 || abs(pdgId)== 14 || abs(pdgId)== 16|| abs(pdgId)== 24|| pdgId== 23)" + # Keep precision same as default RECO for selected particles + ptPrecision="{}?{}:{}".format(pdgSelection, CandVars.pt.precision.value(),genParticleTable.variables.pt.precision.value()) + process.genParticleTable.variables.pt.precision=cms.string(ptPrecision) + phiPrecision="{} ? {} : {}".format(pdgSelection, CandVars.phi.precision.value(), genParticleTable.variables.phi.precision.value()) + process.genParticleTable.variables.phi.precision=cms.string(phiPrecision) + etaPrecision="{} ? {} : {}".format(pdgSelection, CandVars.eta.precision.value(), genParticleTable.variables.eta.precision.value()) + process.genParticleTable.variables.eta.precision=cms.string(etaPrecision) + return process + ### Era dependent customization _80x_sequence = nanoSequenceCommon.copy() #remove stuff diff --git a/PhysicsTools/NanoAOD/python/nano_eras_cff.py b/PhysicsTools/NanoAOD/python/nano_eras_cff.py index 9f3723cbae97a..cfe39c6f1cc4e 100644 --- a/PhysicsTools/NanoAOD/python/nano_eras_cff.py +++ b/PhysicsTools/NanoAOD/python/nano_eras_cff.py @@ -16,3 +16,5 @@ from Configuration.Eras.Modifier_run2_nanoAOD_102Xv1_cff import run2_nanoAOD_102Xv1 from Configuration.Eras.Modifier_run2_nanoAOD_106Xv1_cff import run2_nanoAOD_106Xv1 from Configuration.Eras.Modifier_run2_nanoAOD_106Xv2_cff import run2_nanoAOD_106Xv2 +from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff import tracker_apv_vfp30_2016 + diff --git a/PhysicsTools/NanoAOD/python/photons_cff.py b/PhysicsTools/NanoAOD/python/photons_cff.py index 321ab7e3ca25c..7ef99a578138a 100644 --- a/PhysicsTools/NanoAOD/python/photons_cff.py +++ b/PhysicsTools/NanoAOD/python/photons_cff.py @@ -75,34 +75,42 @@ def make_bitmapVID_docstring(id_modules_working_points_pset): import RecoEgamma.EgammaTools.calibratedEgammas_cff -calibratedPatPhotonsUL17 = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatPhotons.clone( +calibratedPatPhotonsNano = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatPhotons.clone( produceCalibratedObjs = False, + correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2016_UltraLegacy_preVFP_RunFineEtaR9Gain"), +) + +(run2_egamma_2016 & tracker_apv_vfp30_2016).toModify(calibratedPatPhotonsNano, + correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2016_UltraLegacy_preVFP_RunFineEtaR9Gain") +) + +(run2_egamma_2016 & ~tracker_apv_vfp30_2016).toModify(calibratedPatPhotonsNano, + correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2016_UltraLegacy_postVFP_RunFineEtaR9Gain"), +) + +run2_egamma_2017.toModify(calibratedPatPhotonsNano, correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2017_24Feb2020_runEtaR9Gain_v2") ) -calibratedPatPhotonsUL18 = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatPhotons.clone( - produceCalibratedObjs = False, +run2_egamma_2018.toModify(calibratedPatPhotonsNano, correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2018_29Sep2020_RunFineEtaR9Gain") ) -calibratedPatPhotons102Xv1 = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatPhotons.clone( - produceCalibratedObjs = False, +run2_nanoAOD_102Xv1.toModify(calibratedPatPhotonsNano, correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2018_Step2Closure_CoarseEtaR9Gain_v2") ) -calibratedPatPhotons94Xv1 = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatPhotons.clone( - produceCalibratedObjs = False, +run2_nanoAOD_94XMiniAODv1.toModify(calibratedPatPhotonsNano, correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2017_17Nov2017_v1_ele_unc") ) -calibratedPatPhotons94Xv2 = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatPhotons.clone( - produceCalibratedObjs = False, +run2_nanoAOD_94XMiniAODv2.toModify(calibratedPatPhotonsNano, correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2017_17Nov2017_v1_ele_unc") ) -calibratedPatPhotons80XLegacy = RecoEgamma.EgammaTools.calibratedEgammas_cff.calibratedPatPhotons.clone( - produceCalibratedObjs = False, - correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Legacy2016_07Aug2017_FineEtaR9_v3_ele_unc"), + +run2_miniAOD_80XLegacy.toModify(calibratedPatPhotonsNano, + correctionFile = cms.string("EgammaAnalysis/ElectronTools/data/ScalesSmearings/Legacy2016_07Aug2017_FineEtaR9_v3_ele_unc") ) slimmedPhotonsWithUserData = cms.EDProducer("PATPhotonUserDataEmbedder", @@ -133,42 +141,31 @@ def make_bitmapVID_docstring(id_modules_working_points_pset): VIDNestedWPBitmap = cms.InputTag("bitmapVIDForPho"), VIDNestedWPBitmap_Spring16V2p2 = cms.InputTag("bitmapVIDForPhoSpring16V2p2"), seedGain = cms.InputTag("seedGainPho"), - ), -) - -run2_egamma_2017.toModify(slimmedPhotonsWithUserData.userFloats, - ecalEnergyErrPostCorrNew = cms.InputTag("calibratedPatPhotonsUL17","ecalEnergyErrPostCorr"), - ecalEnergyPreCorrNew = cms.InputTag("calibratedPatPhotonsUL17","ecalEnergyPreCorr"), - ecalEnergyPostCorrNew = cms.InputTag("calibratedPatPhotonsUL17","ecalEnergyPostCorr"), -) - -run2_egamma_2018.toModify(slimmedPhotonsWithUserData.userFloats, - ecalEnergyErrPostCorrNew = cms.InputTag("calibratedPatPhotonsUL18","ecalEnergyErrPostCorr"), - ecalEnergyPreCorrNew = cms.InputTag("calibratedPatPhotonsUL18","ecalEnergyPreCorr"), - ecalEnergyPostCorrNew = cms.InputTag("calibratedPatPhotonsUL18","ecalEnergyPostCorr"), + ) ) -run2_miniAOD_80XLegacy.toModify(slimmedPhotonsWithUserData.userFloats, - ecalEnergyErrPostCorrNew = cms.InputTag("calibratedPatPhotons80XLegacy","ecalEnergyErrPostCorr"), - ecalEnergyPreCorrNew = cms.InputTag("calibratedPatPhotons80XLegacy","ecalEnergyPreCorr"), - ecalEnergyPostCorrNew = cms.InputTag("calibratedPatPhotons80XLegacy","ecalEnergyPostCorr"), -) -run2_nanoAOD_94XMiniAODv1.toModify(slimmedPhotonsWithUserData.userFloats, - ecalEnergyErrPostCorrNew = cms.InputTag("calibratedPatPhotons94Xv1","ecalEnergyErrPostCorr"), - ecalEnergyPreCorrNew = cms.InputTag("calibratedPatPhotons94Xv1","ecalEnergyPreCorr"), - ecalEnergyPostCorrNew = cms.InputTag("calibratedPatPhotons94Xv1","ecalEnergyPostCorr"), -) -run2_nanoAOD_94XMiniAODv2.toModify(slimmedPhotonsWithUserData.userFloats, - ecalEnergyErrPostCorrNew = cms.InputTag("calibratedPatPhotons94Xv2","ecalEnergyErrPostCorr"), - ecalEnergyPreCorrNew = cms.InputTag("calibratedPatPhotons94Xv2","ecalEnergyPreCorr"), - ecalEnergyPostCorrNew = cms.InputTag("calibratedPatPhotons94Xv2","ecalEnergyPostCorr"), -) +for modifier in run2_egamma_2016, run2_egamma_2017, run2_egamma_2018, run2_miniAOD_80XLegacy, run2_nanoAOD_94XMiniAODv1, run2_nanoAOD_94XMiniAODv2, run2_nanoAOD_102Xv1: + modifier.toModify(slimmedPhotonsWithUserData.userFloats, + ecalEnergyErrPostCorrNew = cms.InputTag("calibratedPatPhotonsNano","ecalEnergyErrPostCorr"), + ecalEnergyPreCorrNew = cms.InputTag("calibratedPatPhotonsNano","ecalEnergyPreCorr"), + ecalEnergyPostCorrNew = cms.InputTag("calibratedPatPhotonsNano","ecalEnergyPostCorr"), + energyScaleUpNew = cms.InputTag("calibratedPatPhotonsNano","energyScaleUp"), + energyScaleDownNew = cms.InputTag("calibratedPatPhotonsNano","energyScaleDown"), + energySigmaUpNew = cms.InputTag("calibratedPatPhotonsNano","energySigmaUp"), + energySigmaDownNew = cms.InputTag("calibratedPatPhotonsNano","energySigmaDown"), + ) + + +run2_nanoAOD_94X2016.toModify(slimmedPhotonsWithUserData.userFloats, + ecalEnergyErrPostCorrNew = None, + ecalEnergyPreCorrNew = None, + ecalEnergyPostCorrNew = None, + energyScaleUpNew = None, + energyScaleDownNew = None, + energySigmaUpNew = None, + energySigmaDownNew = None + ) -run2_nanoAOD_102Xv1.toModify(slimmedPhotonsWithUserData.userFloats, - ecalEnergyErrPostCorrNew = cms.InputTag("calibratedPatPhotons102Xv1","ecalEnergyErrPostCorr"), - ecalEnergyPreCorrNew = cms.InputTag("calibratedPatPhotons102Xv1","ecalEnergyPreCorr"), - ecalEnergyPostCorrNew = cms.InputTag("calibratedPatPhotons102Xv1","ecalEnergyPostCorr"), -) finalPhotons = cms.EDFilter("PATPhotonRefSelector", src = cms.InputTag("slimmedPhotonsWithUserData"), @@ -234,22 +231,24 @@ def make_bitmapVID_docstring(id_modules_working_points_pset): ) ) -#these eras have the energy correction in the mini -for modifier in run2_nanoAOD_94XMiniAODv2, run2_nanoAOD_94X2016: - modifier.toModify(photonTable.variables, - pt = Var("pt*userFloat('ecalEnergyPostCorr')/userFloat('ecalEnergyPreCorr')", float, precision=-1, doc="p_{T}"), - energyErr = Var("userFloat('ecalEnergyErrPostCorr')",float,doc="energy error of the cluster from regression",precision=6), - eCorr = Var("userFloat('ecalEnergyPostCorr')/userFloat('ecalEnergyPreCorr')",float,doc="ratio of the calibrated energy/miniaod energy"), - ) #these eras need to make the energy correction, hence the "New" -for modifier in run2_egamma_2017,run2_egamma_2018,run2_nanoAOD_94XMiniAODv1, run2_miniAOD_80XLegacy, run2_nanoAOD_102Xv1,run2_nanoAOD_94XMiniAODv2: +for modifier in run2_egamma_2016,run2_egamma_2017,run2_egamma_2018,run2_nanoAOD_94XMiniAODv1, run2_miniAOD_80XLegacy, run2_nanoAOD_102Xv1,run2_nanoAOD_94XMiniAODv2: modifier.toModify(photonTable.variables, pt = Var("pt*userFloat('ecalEnergyPostCorrNew')/userFloat('ecalEnergyPreCorrNew')", float, precision=-1, doc="p_{T}"), energyErr = Var("userFloat('ecalEnergyErrPostCorrNew')",float,doc="energy error of the cluster from regression",precision=6), eCorr = Var("userFloat('ecalEnergyPostCorrNew')/userFloat('ecalEnergyPreCorrNew')",float,doc="ratio of the calibrated energy/miniaod energy"), ) +#these eras have the energy correction in the mini +for modifier in run2_nanoAOD_94X2016,: + modifier.toModify(photonTable.variables, + pt = Var("pt*userFloat('ecalEnergyPostCorr')/userFloat('ecalEnergyPreCorr')", float, precision=-1, doc="p_{T}"), + energyErr = Var("userFloat('ecalEnergyErrPostCorr')",float,doc="energy error of the cluster from regression",precision=6), + eCorr = Var("userFloat('ecalEnergyPostCorr')/userFloat('ecalEnergyPreCorr')",float,doc="ratio of the calibrated energy/miniaod energy"), + + ) + # only add the Spring16 IDs for 2016 nano (~(run2_nanoAOD_94X2016 | run2_miniAOD_80XLegacy)).toModify(photonTable.variables, cutBased_Spring16V2p2 = None, @@ -292,14 +291,28 @@ def make_bitmapVID_docstring(id_modules_working_points_pset): modifier.toModify(bitmapVIDForPho, src = "slimmedPhotonsTo106X") modifier.toModify(bitmapVIDForPhoSpring16V2p2, src = "slimmedPhotonsTo106X") modifier.toModify(isoForPho, src = "slimmedPhotonsTo106X") - modifier.toModify(calibratedPatPhotons102Xv1, src = "slimmedPhotonsTo106X") - modifier.toModify(calibratedPatPhotons94Xv1, src = "slimmedPhotonsTo106X") - modifier.toModify(calibratedPatPhotons94Xv2, src = "slimmedPhotonsTo106X") - modifier.toModify(calibratedPatPhotons80XLegacy, src = "slimmedPhotonsTo106X") + modifier.toModify(calibratedPatPhotonsNano, src = "slimmedPhotonsTo106X") modifier.toModify(slimmedPhotonsWithUserData, src = "slimmedPhotonsTo106X") modifier.toModify(seedGainPho, src = "slimmedPhotonsTo106X") +##adding 4 most imp scale & smearing variables to table +for modifier in run2_nanoAOD_106Xv1,run2_nanoAOD_106Xv2,run2_egamma_2016,run2_egamma_2017,run2_egamma_2018,run2_miniAOD_80XLegacy, run2_nanoAOD_94XMiniAODv1, run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_102Xv1: + modifier.toModify(photonTable.variables, + dEscaleUp=Var("userFloat('ecalEnergyPostCorrNew') - userFloat('energyScaleUpNew')", float, doc="ecal energy scale shifted 1 sigma up (adding gain/stat/syst in quadrature)", precision=8), + dEscaleDown=Var("userFloat('ecalEnergyPostCorrNew') - userFloat('energyScaleDownNew')", float, doc="ecal energy scale shifted 1 sigma down (adding gain/stat/syst in quadrature)", precision=8), + dEsigmaUp=Var("userFloat('ecalEnergyPostCorrNew') - userFloat('energySigmaUpNew')", float, doc="ecal energy smearing value shifted 1 sigma up", precision=8), + dEsigmaDown=Var("userFloat('ecalEnergyPostCorrNew') - userFloat('energySigmaDownNew')", float, doc="ecal energy smearing value shifted 1 sigma up", precision=8), + ) + +for modifier in run2_nanoAOD_94X2016,: + modifier.toModify(photonTable.variables, + dEscaleUp=Var("userFloat('ecalEnergyPostCorr') - userFloat('energyScaleUp')", float, doc="ecal energy scale shifted 1 sigma up (adding gain/stat/syst in quadrature)", precision=8), + dEscaleDown=Var("userFloat('ecalEnergyPostCorr') - userFloat('energyScaleDown')", float, doc="ecal energy scale shifted 1 sigma down (adding gain/stat/syst in quadrature)", precision=8), + dEsigmaUp=Var("userFloat('ecalEnergyPostCorr') - userFloat('energySigmaUp')", float, doc="ecal energy smearing value shifted 1 sigma up", precision=8), + dEsigmaDown=Var("userFloat('ecalEnergyPostCorr') - userFloat('energySigmaDown')", float, doc="ecal energy smearing value shifted 1 sigma up", precision=8), + ) + photonSequence = cms.Sequence( bitmapVIDForPho + \ bitmapVIDForPhoSpring16V2p2 + \ @@ -314,36 +327,46 @@ def make_bitmapVID_docstring(id_modules_working_points_pset): from RecoEgamma.EgammaIsolationAlgos.egmPhotonIsolationMiniAOD_cff import egmPhotonIsolation from RecoEgamma.PhotonIdentification.photonIDValueMapProducer_cff import photonIDValueMapProducer + +_withUpdatePho_sequence = photonSequence.copy() ###copy first for non-ULs else it just takes the UL sequence + + ###UL to be done first +_withUL16preVFPScale_sequence = photonSequence.copy() +_withUL16preVFPScale_sequence.replace(slimmedPhotonsWithUserData, calibratedPatPhotonsNano + slimmedPhotonsWithUserData) +(run2_egamma_2016 & tracker_apv_vfp30_2016).toReplaceWith(photonSequence, _withUL16preVFPScale_sequence) + +_withUL16postVFPScale_sequence = photonSequence.copy() +_withUL16postVFPScale_sequence.replace(slimmedPhotonsWithUserData, calibratedPatPhotonsNano + slimmedPhotonsWithUserData) +(run2_egamma_2016 & ~tracker_apv_vfp30_2016).toReplaceWith(photonSequence, _withUL16postVFPScale_sequence) + _withUL17Scale_sequence = photonSequence.copy() -_withUL17Scale_sequence.replace(slimmedPhotonsWithUserData, calibratedPatPhotonsUL17 + slimmedPhotonsWithUserData) +_withUL17Scale_sequence.replace(slimmedPhotonsWithUserData, calibratedPatPhotonsNano + slimmedPhotonsWithUserData) run2_egamma_2017.toReplaceWith(photonSequence, _withUL17Scale_sequence) _withUL18Scale_sequence = photonSequence.copy() -_withUL18Scale_sequence.replace(slimmedPhotonsWithUserData, calibratedPatPhotonsUL18 + slimmedPhotonsWithUserData) +_withUL18Scale_sequence.replace(slimmedPhotonsWithUserData, calibratedPatPhotonsNano + slimmedPhotonsWithUserData) run2_egamma_2018.toReplaceWith(photonSequence, _withUL18Scale_sequence) _updatePhoTo106X_sequence =cms.Sequence(egmPhotonIsolation + photonIDValueMapProducer + slimmedPhotonsTo106X) -_withUpdatePho_sequence = photonSequence.copy() _withUpdatePho_sequence.insert(0,_updatePhoTo106X_sequence) for modifier in run2_nanoAOD_94XMiniAODv2,run2_nanoAOD_94X2016 ,run2_nanoAOD_102Xv1,run2_nanoAOD_94XMiniAODv1: modifier.toReplaceWith(photonSequence, _withUpdatePho_sequence) - _with80XScale_sequence = _withUpdatePho_sequence.copy() -_with80XScale_sequence.replace(slimmedPhotonsWithUserData, calibratedPatPhotons80XLegacy + slimmedPhotonsWithUserData) +_with80XScale_sequence.replace(slimmedPhotonsWithUserData, calibratedPatPhotonsNano + slimmedPhotonsWithUserData) run2_miniAOD_80XLegacy.toReplaceWith(photonSequence, _with80XScale_sequence) _with94Xv1Scale_sequence = _withUpdatePho_sequence.copy() -_with94Xv1Scale_sequence.replace(slimmedPhotonsWithUserData, calibratedPatPhotons94Xv1 + slimmedPhotonsWithUserData) +_with94Xv1Scale_sequence.replace(slimmedPhotonsWithUserData, calibratedPatPhotonsNano + slimmedPhotonsWithUserData) run2_nanoAOD_94XMiniAODv1.toReplaceWith(photonSequence, _with94Xv1Scale_sequence) _with94Xv2Scale_sequence = _withUpdatePho_sequence.copy() -_with94Xv2Scale_sequence.replace(slimmedPhotonsWithUserData, calibratedPatPhotons94Xv2 + slimmedPhotonsWithUserData) +_with94Xv2Scale_sequence.replace(slimmedPhotonsWithUserData, calibratedPatPhotonsNano + slimmedPhotonsWithUserData) run2_nanoAOD_94XMiniAODv2.toReplaceWith(photonSequence, _with94Xv2Scale_sequence) _with102Xv1Scale_sequence = photonSequence.copy() -_with102Xv1Scale_sequence.replace(slimmedPhotonsWithUserData, calibratedPatPhotons102Xv1 + slimmedPhotonsWithUserData) +_with102Xv1Scale_sequence.replace(slimmedPhotonsWithUserData, calibratedPatPhotonsNano + slimmedPhotonsWithUserData) run2_nanoAOD_102Xv1.toReplaceWith(photonSequence, _with102Xv1Scale_sequence) diff --git a/PhysicsTools/ONNXRuntime/test/plot_load_and_predict.py b/PhysicsTools/ONNXRuntime/test/plot_load_and_predict.py index d72706986203e..c803d9e5b7426 100755 --- a/PhysicsTools/ONNXRuntime/test/plot_load_and_predict.py +++ b/PhysicsTools/ONNXRuntime/test/plot_load_and_predict.py @@ -21,7 +21,7 @@ # The model is available on github `onnx...test_sigmoid `_. example1 = get_example("sigmoid.onnx") -sess = rt.InferenceSession(example1) +sess = rt.InferenceSession(example1, providers=['CPUExecutionProvider']) ######################### # Let's see the input name and shape. diff --git a/PhysicsTools/PatAlgos/plugins/BuildFile.xml b/PhysicsTools/PatAlgos/plugins/BuildFile.xml index d17868f1629ff..1ca337345c0c0 100644 --- a/PhysicsTools/PatAlgos/plugins/BuildFile.xml +++ b/PhysicsTools/PatAlgos/plugins/BuildFile.xml @@ -10,6 +10,7 @@ + @@ -27,7 +28,6 @@ - diff --git a/PhysicsTools/PatAlgos/plugins/GenJetFlavourInfoPreserver.cc b/PhysicsTools/PatAlgos/plugins/GenJetFlavourInfoPreserver.cc index def40febd16ef..98098929cb479 100644 --- a/PhysicsTools/PatAlgos/plugins/GenJetFlavourInfoPreserver.cc +++ b/PhysicsTools/PatAlgos/plugins/GenJetFlavourInfoPreserver.cc @@ -14,8 +14,8 @@ #include "DataFormats/JetReco/interface/Jet.h" #include "DataFormats/JetReco/interface/JetCollection.h" -#include "SimDataFormats/JetMatching/interface/JetFlavourInfo.h" -#include "SimDataFormats/JetMatching/interface/JetFlavourInfoMatching.h" +#include "DataFormats/JetMatching/interface/JetFlavourInfo.h" +#include "DataFormats/JetMatching/interface/JetFlavourInfoMatching.h" #include "DataFormats/JetReco/interface/GenJet.h" #include "DataFormats/JetReco/interface/GenJetCollection.h" diff --git a/PhysicsTools/PatAlgos/plugins/PATElectronProducer.cc b/PhysicsTools/PatAlgos/plugins/PATElectronProducer.cc index d27001ad46947..ae4250078d6f8 100644 --- a/PhysicsTools/PatAlgos/plugins/PATElectronProducer.cc +++ b/PhysicsTools/PatAlgos/plugins/PATElectronProducer.cc @@ -450,7 +450,7 @@ void PATElectronProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSe if (addMVAVariables_) { // add missing mva variables - std::vector vCov = lazyTools.localCovariances(*(itElectron->superCluster()->seed())); + const auto& vCov = lazyTools.localCovariances(*(itElectron->superCluster()->seed())); anElectron.setMvaVariables(vCov[1], ip3d); } // PFClusterIso @@ -681,7 +681,7 @@ void PATElectronProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSe if (addMVAVariables_) { // add mva variables - std::vector vCov = lazyTools.localCovariances(*(itElectron->superCluster()->seed())); + const auto& vCov = lazyTools.localCovariances(*(itElectron->superCluster()->seed())); anElectron.setMvaVariables(vCov[1], ip3d); } diff --git a/PhysicsTools/PatAlgos/plugins/PATElectronSlimmer.cc b/PhysicsTools/PatAlgos/plugins/PATElectronSlimmer.cc index 58ca1c865d4f1..02fee8eabc1dc 100644 --- a/PhysicsTools/PatAlgos/plugins/PATElectronSlimmer.cc +++ b/PhysicsTools/PatAlgos/plugins/PATElectronSlimmer.cc @@ -199,7 +199,7 @@ void pat::PATElectronSlimmer::produce(edm::Event& iEvent, const edm::EventSetup& } } if (saveNonZSClusterShapes_(electron)) { - std::vector vCov = lazyToolsNoZS.localCovariances(*(electron.superCluster()->seed())); + const auto& vCov = lazyToolsNoZS.localCovariances(*(electron.superCluster()->seed())); electron.full5x5_setSigmaIetaIphi(vCov[1]); } } diff --git a/PhysicsTools/PatAlgos/plugins/PATJetProducer.h b/PhysicsTools/PatAlgos/plugins/PATJetProducer.h index 77037dcd38cee..b117c0c8c9451 100644 --- a/PhysicsTools/PatAlgos/plugins/PATJetProducer.h +++ b/PhysicsTools/PatAlgos/plugins/PATJetProducer.h @@ -21,8 +21,8 @@ #include "FWCore/Utilities/interface/InputTag.h" #include "DataFormats/Common/interface/View.h" -#include "SimDataFormats/JetMatching/interface/JetFlavourMatching.h" -#include "SimDataFormats/JetMatching/interface/JetFlavourInfoMatching.h" +#include "DataFormats/JetMatching/interface/JetFlavourMatching.h" +#include "DataFormats/JetMatching/interface/JetFlavourInfoMatching.h" #include "CommonTools/Utils/interface/PtComparator.h" diff --git a/PhysicsTools/PatAlgos/plugins/PATPhotonSlimmer.cc b/PhysicsTools/PatAlgos/plugins/PATPhotonSlimmer.cc index b24d3da8313d6..997405760ed77 100644 --- a/PhysicsTools/PatAlgos/plugins/PATPhotonSlimmer.cc +++ b/PhysicsTools/PatAlgos/plugins/PATPhotonSlimmer.cc @@ -196,7 +196,7 @@ void pat::PATPhotonSlimmer::produce(edm::Event& iEvent, const edm::EventSetup& i } } if (saveNonZSClusterShapes_(photon)) { - std::vector vCov = lazyToolsNoZS.localCovariances(*(photon.superCluster()->seed())); + const auto& vCov = lazyToolsNoZS.localCovariances(*(photon.superCluster()->seed())); float r9 = lazyToolsNoZS.e3x3(*(photon.superCluster()->seed())) / photon.superCluster()->rawEnergy(); float sigmaIetaIeta = (!edm::isNotFinite(vCov[0])) ? sqrt(vCov[0]) : 0; float sigmaIetaIphi = vCov[1]; diff --git a/PhysicsTools/PatAlgos/python/patMuonMerger_cfi.py b/PhysicsTools/PatAlgos/python/patMuonMerger_cfi.py index a49456feb7a68..8406f5a6f3417 100644 --- a/PhysicsTools/PatAlgos/python/patMuonMerger_cfi.py +++ b/PhysicsTools/PatAlgos/python/patMuonMerger_cfi.py @@ -1,10 +1,7 @@ import FWCore.ParameterSet.Config as cms - -mergedMuons = cms.EDProducer("PATMuonMerger", - muons = cms.InputTag("slimmedMuons"), - pfCandidates=cms.InputTag("packedPFCandidates"), - otherTracks = cms.InputTag("lostTracks"), - muonCut = cms.string("pt>15 && abs(eta)<2.4"), - pfCandidatesCut = cms.string("pt>15 && abs(eta)<2.4"), - lostTrackCut = cms.string("pt>15 && abs(eta)<2.4") +import PhysicsTools.PatAlgos.mergedMuonsNoCuts_cfi as _mod +mergedMuons = _mod.mergedMuonsNoCuts.clone( + muonCut = "pt>15 && abs(eta)<2.4", + pfCandidatesCut = "pt>15 && abs(eta)<2.4", + lostTrackCut = "pt>15 && abs(eta)<2.4" ) diff --git a/PhysicsTools/PatAlgos/python/slimming/miniAOD_tools.py b/PhysicsTools/PatAlgos/python/slimming/miniAOD_tools.py index c074770bb506c..8b04ba50a66f9 100644 --- a/PhysicsTools/PatAlgos/python/slimming/miniAOD_tools.py +++ b/PhysicsTools/PatAlgos/python/slimming/miniAOD_tools.py @@ -375,6 +375,7 @@ def _add_deepFlavour(process): import RecoTauTag.RecoTau.tools.runTauIdMVA as tauIdConfig tauIdEmbedder = tauIdConfig.TauIDEmbedder( process, debug = False, + originalTauName = _noUpdatedTauName, updatedTauName = _updatedTauName, toKeep = ['deepTau2017v2p1'] ) @@ -384,20 +385,9 @@ def _add_deepFlavour(process): tauIdEmbedder.runTauID() addToProcessAndTask(_noUpdatedTauName, process.slimmedTaus.clone(),process,task) delattr(process, 'slimmedTaus') - process.deepTau2017v2p1.taus = _noUpdatedTauName - process.slimmedTaus = getattr(process, _updatedTauName).clone( - src = _noUpdatedTauName - ) - process.deepTauIDTask = cms.Task(process.deepTau2017v2p1, process.slimmedTaus) - task.add(process.deepTauIDTask) - if 'newDMPhase2v1' in tauIdEmbedder.toKeep: - process.rerunDiscriminationByIsolationMVADBnewDMwLTPhase2raw.PATTauProducer=_noUpdatedTauName - process.rerunDiscriminationByIsolationMVADBnewDMwLTPhase2.PATTauProducer=_noUpdatedTauName - task.add(process.rerunIsolationMVADBnewDMwLTPhase2Task) - if 'againstElePhase2v1' in tauIdEmbedder.toKeep: - process.patTauDiscriminationByElectronRejectionMVA6Phase2v1Raw.PATTauProducer=_noUpdatedTauName - process.patTauDiscriminationByElectronRejectionMVA6Phase2v1.PATTauProducer=_noUpdatedTauName - task.add(process.patTauDiscriminationByElectronRejectionMVA6Phase2v1Task) + process.slimmedTaus = getattr(process, _updatedTauName).clone() + process.rerunMvaIsolationTask.add(process.slimmedTaus) + task.add(process.rerunMvaIsolationTask) #-- Rerun tauID against dead ECal towers to taus for the various re-MiniAOD eras # to enable default behoviour with leading track extrapolation to ECAL @@ -628,9 +618,9 @@ def miniAOD_customizeData(process): process.load("Geometry.VeryForwardGeometry.geometryRPFromDB_cfi") process.load('L1Trigger.L1TGlobal.simGtExtFakeProd_cfi') task = getPatAlgosToolsTask(process) - from Configuration.Eras.Modifier_ctpps_2016_cff import ctpps_2016 - ctpps_2016.toModify(task, func=lambda t: t.add(process.ctppsLocalTrackLiteProducer)) - ctpps_2016.toModify(task, func=lambda t: t.add(process.ctppsProtons)) + from Configuration.Eras.Modifier_ctpps_cff import ctpps + ctpps.toModify(task, func=lambda t: t.add(process.ctppsLocalTrackLiteProducer)) + ctpps.toModify(task, func=lambda t: t.add(process.ctppsProtons)) from Configuration.ProcessModifiers.run2_miniAOD_UL_cff import run2_miniAOD_UL run2_miniAOD_UL.toModify(task, func=lambda t: t.add(process.simGtExtUnprefireable)) diff --git a/PhysicsTools/PatUtils/data/JEC11_V12_AK5PF_UncertaintySources.txt b/PhysicsTools/PatUtils/data/JEC11_V12_AK5PF_UncertaintySources.txt deleted file mode 100644 index 8d9c485f38ffb..0000000000000 --- a/PhysicsTools/PatUtils/data/JEC11_V12_AK5PF_UncertaintySources.txt +++ /dev/null @@ -1,841 +0,0 @@ -#Uncertainty sources for JEC11_V12 AK5PF -[Absolute] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --4.5 -4.0 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --4.0 -3.5 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --3.5 -3.0 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --3.0 -2.8 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --2.8 -2.6 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --2.6 -2.4 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --2.4 -2.2 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --2.2 -2.0 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --2.0 -1.8 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --1.8 -1.6 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --1.6 -1.4 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --1.4 -1.2 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --1.2 -1.0 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --1.0 -0.8 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --0.8 -0.6 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --0.6 -0.4 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --0.4 -0.2 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --0.2 0.0 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -0.0 0.2 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -0.2 0.4 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -0.4 0.6 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -0.6 0.8 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -0.8 1.0 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -1.0 1.2 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -1.2 1.4 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -1.4 1.6 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -1.6 1.8 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -1.8 2.0 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -2.0 2.2 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -2.2 2.4 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -2.4 2.6 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -2.6 2.8 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -2.8 3.0 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -3.0 3.5 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -3.5 4.0 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -4.0 4.5 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -4.5 5.2 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -[HighPtExtra] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --4.5 -4.0 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --4.0 -3.5 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --3.5 -3.0 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --3.0 -2.8 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --2.8 -2.6 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --2.6 -2.4 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --2.4 -2.2 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --2.2 -2.0 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --2.0 -1.8 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --1.8 -1.6 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --1.6 -1.4 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --1.4 -1.2 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --1.2 -1.0 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --1.0 -0.8 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --0.8 -0.6 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --0.6 -0.4 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --0.4 -0.2 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --0.2 0.0 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -0.0 0.2 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -0.2 0.4 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -0.4 0.6 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -0.6 0.8 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -0.8 1.0 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -1.0 1.2 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -1.2 1.4 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -1.4 1.6 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -1.6 1.8 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -1.8 2.0 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -2.0 2.2 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -2.2 2.4 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -2.4 2.6 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -2.6 2.8 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -2.8 3.0 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -3.0 3.5 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -3.5 4.0 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -4.0 4.5 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -4.5 5.2 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -[SinglePion] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --4.5 -4.0 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --4.0 -3.5 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --3.5 -3.0 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --3.0 -2.8 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --2.8 -2.6 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --2.6 -2.4 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --2.4 -2.2 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --2.2 -2.0 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --2.0 -1.8 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --1.8 -1.6 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --1.6 -1.4 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --1.4 -1.2 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --1.2 -1.0 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --1.0 -0.8 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --0.8 -0.6 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --0.6 -0.4 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --0.4 -0.2 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --0.2 0.0 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -0.0 0.2 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -0.2 0.4 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -0.4 0.6 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -0.6 0.8 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -0.8 1.0 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -1.0 1.2 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -1.2 1.4 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -1.4 1.6 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -1.6 1.8 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -1.8 2.0 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -2.0 2.2 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -2.2 2.4 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -2.4 2.6 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -2.6 2.8 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -2.8 3.0 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -3.0 3.5 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -3.5 4.0 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -4.0 4.5 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -4.5 5.2 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -[Flavor] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --4.5 -4.0 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --4.0 -3.5 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --3.5 -3.0 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --3.0 -2.8 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --2.8 -2.6 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --2.6 -2.4 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --2.4 -2.2 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --2.2 -2.0 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --2.0 -1.8 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --1.8 -1.6 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --1.6 -1.4 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --1.4 -1.2 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --1.2 -1.0 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --1.0 -0.8 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --0.8 -0.6 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --0.6 -0.4 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --0.4 -0.2 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --0.2 0.0 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -0.0 0.2 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -0.2 0.4 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -0.4 0.6 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -0.6 0.8 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -0.8 1.0 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -1.0 1.2 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -1.2 1.4 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -1.4 1.6 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -1.6 1.8 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -1.8 2.0 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -2.0 2.2 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -2.2 2.4 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -2.4 2.6 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -2.6 2.8 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -2.8 3.0 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -3.0 3.5 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -3.5 4.0 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -4.0 4.5 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -4.5 5.2 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -[Time] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --4.5 -4.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --4.0 -3.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --3.5 -3.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --3.0 -2.8 117 9.0 0.0451 0.0451 11.0 0.0451 0.0451 13.5 0.0451 0.0451 16.5 0.0451 0.0451 19.5 0.0451 0.0451 22.5 0.0451 0.0451 26.0 0.0451 0.0451 30.0 0.0451 0.0451 34.5 0.0451 0.0451 40.0 0.0451 0.0451 46.0 0.0451 0.0451 52.5 0.0451 0.0451 60.0 0.0451 0.0451 69.0 0.0451 0.0451 79.0 0.0451 0.0451 90.5 0.0451 0.0451 105.5 0.0451 0.0451 123.5 0.0451 0.0451 143.0 0.0451 0.0451 163.5 0.0451 0.0451 185.0 0.0451 0.0451 208.0 0.0451 0.0451 232.5 0.0451 0.0451 258.5 0.0451 0.0451 286.0 0.0451 0.0451 331.0 0.0451 0.0451 396.0 0.0451 0.0451 468.5 0.0451 0.0451 549.5 0.0451 0.0451 639.0 0.0451 0.0451 738.0 0.0451 0.0451 847.5 0.0451 0.0451 968.5 0.0451 0.0451 1102.0 0.0451 0.0451 1249.5 0.0451 0.0451 1412.0 0.0451 0.0451 1590.5 0.0451 0.0451 1787.0 0.0451 0.0451 1944.5 0.0451 0.0451 --2.8 -2.6 117 9.0 0.0461 0.0461 11.0 0.0461 0.0461 13.5 0.0461 0.0461 16.5 0.0461 0.0461 19.5 0.0461 0.0461 22.5 0.0461 0.0461 26.0 0.0461 0.0461 30.0 0.0461 0.0461 34.5 0.0461 0.0461 40.0 0.0461 0.0461 46.0 0.0461 0.0461 52.5 0.0461 0.0461 60.0 0.0461 0.0461 69.0 0.0461 0.0461 79.0 0.0461 0.0461 90.5 0.0461 0.0461 105.5 0.0461 0.0461 123.5 0.0461 0.0461 143.0 0.0461 0.0461 163.5 0.0461 0.0461 185.0 0.0461 0.0461 208.0 0.0461 0.0461 232.5 0.0461 0.0461 258.5 0.0461 0.0461 286.0 0.0461 0.0461 331.0 0.0461 0.0461 396.0 0.0461 0.0461 468.5 0.0461 0.0461 549.5 0.0461 0.0461 639.0 0.0461 0.0461 738.0 0.0461 0.0461 847.5 0.0461 0.0461 968.5 0.0461 0.0461 1102.0 0.0461 0.0461 1249.5 0.0461 0.0461 1412.0 0.0461 0.0461 1590.5 0.0461 0.0461 1787.0 0.0461 0.0461 1944.5 0.0461 0.0461 --2.6 -2.4 117 9.0 0.0461 0.0461 11.0 0.0461 0.0461 13.5 0.0461 0.0461 16.5 0.0461 0.0461 19.5 0.0461 0.0461 22.5 0.0461 0.0461 26.0 0.0461 0.0461 30.0 0.0461 0.0461 34.5 0.0461 0.0461 40.0 0.0461 0.0461 46.0 0.0461 0.0461 52.5 0.0461 0.0461 60.0 0.0461 0.0461 69.0 0.0461 0.0461 79.0 0.0461 0.0461 90.5 0.0461 0.0461 105.5 0.0461 0.0461 123.5 0.0461 0.0461 143.0 0.0461 0.0461 163.5 0.0461 0.0461 185.0 0.0461 0.0461 208.0 0.0461 0.0461 232.5 0.0461 0.0461 258.5 0.0461 0.0461 286.0 0.0461 0.0461 331.0 0.0461 0.0461 396.0 0.0461 0.0461 468.5 0.0461 0.0461 549.5 0.0461 0.0461 639.0 0.0461 0.0461 738.0 0.0461 0.0461 847.5 0.0461 0.0461 968.5 0.0461 0.0461 1102.0 0.0461 0.0461 1249.5 0.0461 0.0461 1412.0 0.0461 0.0461 1590.5 0.0461 0.0461 1787.0 0.0461 0.0461 1944.5 0.0461 0.0461 --2.4 -2.2 117 9.0 0.0146 0.0146 11.0 0.0146 0.0146 13.5 0.0146 0.0146 16.5 0.0146 0.0146 19.5 0.0146 0.0146 22.5 0.0146 0.0146 26.0 0.0146 0.0146 30.0 0.0146 0.0146 34.5 0.0146 0.0146 40.0 0.0146 0.0146 46.0 0.0146 0.0146 52.5 0.0146 0.0146 60.0 0.0146 0.0146 69.0 0.0146 0.0146 79.0 0.0146 0.0146 90.5 0.0146 0.0146 105.5 0.0146 0.0146 123.5 0.0146 0.0146 143.0 0.0146 0.0146 163.5 0.0146 0.0146 185.0 0.0146 0.0146 208.0 0.0146 0.0146 232.5 0.0146 0.0146 258.5 0.0146 0.0146 286.0 0.0146 0.0146 331.0 0.0146 0.0146 396.0 0.0146 0.0146 468.5 0.0146 0.0146 549.5 0.0146 0.0146 639.0 0.0146 0.0146 738.0 0.0146 0.0146 847.5 0.0146 0.0146 968.5 0.0146 0.0146 1102.0 0.0146 0.0146 1249.5 0.0146 0.0146 1412.0 0.0146 0.0146 1590.5 0.0146 0.0146 1787.0 0.0146 0.0146 1944.5 0.0146 0.0146 --2.2 -2.0 117 9.0 0.0146 0.0146 11.0 0.0146 0.0146 13.5 0.0146 0.0146 16.5 0.0146 0.0146 19.5 0.0146 0.0146 22.5 0.0146 0.0146 26.0 0.0146 0.0146 30.0 0.0146 0.0146 34.5 0.0146 0.0146 40.0 0.0146 0.0146 46.0 0.0146 0.0146 52.5 0.0146 0.0146 60.0 0.0146 0.0146 69.0 0.0146 0.0146 79.0 0.0146 0.0146 90.5 0.0146 0.0146 105.5 0.0146 0.0146 123.5 0.0146 0.0146 143.0 0.0146 0.0146 163.5 0.0146 0.0146 185.0 0.0146 0.0146 208.0 0.0146 0.0146 232.5 0.0146 0.0146 258.5 0.0146 0.0146 286.0 0.0146 0.0146 331.0 0.0146 0.0146 396.0 0.0146 0.0146 468.5 0.0146 0.0146 549.5 0.0146 0.0146 639.0 0.0146 0.0146 738.0 0.0146 0.0146 847.5 0.0146 0.0146 968.5 0.0146 0.0146 1102.0 0.0146 0.0146 1249.5 0.0146 0.0146 1412.0 0.0146 0.0146 1590.5 0.0146 0.0146 1787.0 0.0146 0.0146 1944.5 0.0146 0.0146 --2.0 -1.8 117 9.0 0.0099 0.0099 11.0 0.0099 0.0099 13.5 0.0099 0.0099 16.5 0.0099 0.0099 19.5 0.0099 0.0099 22.5 0.0099 0.0099 26.0 0.0099 0.0099 30.0 0.0099 0.0099 34.5 0.0099 0.0099 40.0 0.0099 0.0099 46.0 0.0099 0.0099 52.5 0.0099 0.0099 60.0 0.0099 0.0099 69.0 0.0099 0.0099 79.0 0.0099 0.0099 90.5 0.0099 0.0099 105.5 0.0099 0.0099 123.5 0.0099 0.0099 143.0 0.0099 0.0099 163.5 0.0099 0.0099 185.0 0.0099 0.0099 208.0 0.0099 0.0099 232.5 0.0099 0.0099 258.5 0.0099 0.0099 286.0 0.0099 0.0099 331.0 0.0099 0.0099 396.0 0.0099 0.0099 468.5 0.0099 0.0099 549.5 0.0099 0.0099 639.0 0.0099 0.0099 738.0 0.0099 0.0099 847.5 0.0099 0.0099 968.5 0.0099 0.0099 1102.0 0.0099 0.0099 1249.5 0.0099 0.0099 1412.0 0.0099 0.0099 1590.5 0.0099 0.0099 1787.0 0.0099 0.0099 1944.5 0.0099 0.0099 --1.8 -1.6 117 9.0 0.0099 0.0099 11.0 0.0099 0.0099 13.5 0.0099 0.0099 16.5 0.0099 0.0099 19.5 0.0099 0.0099 22.5 0.0099 0.0099 26.0 0.0099 0.0099 30.0 0.0099 0.0099 34.5 0.0099 0.0099 40.0 0.0099 0.0099 46.0 0.0099 0.0099 52.5 0.0099 0.0099 60.0 0.0099 0.0099 69.0 0.0099 0.0099 79.0 0.0099 0.0099 90.5 0.0099 0.0099 105.5 0.0099 0.0099 123.5 0.0099 0.0099 143.0 0.0099 0.0099 163.5 0.0099 0.0099 185.0 0.0099 0.0099 208.0 0.0099 0.0099 232.5 0.0099 0.0099 258.5 0.0099 0.0099 286.0 0.0099 0.0099 331.0 0.0099 0.0099 396.0 0.0099 0.0099 468.5 0.0099 0.0099 549.5 0.0099 0.0099 639.0 0.0099 0.0099 738.0 0.0099 0.0099 847.5 0.0099 0.0099 968.5 0.0099 0.0099 1102.0 0.0099 0.0099 1249.5 0.0099 0.0099 1412.0 0.0099 0.0099 1590.5 0.0099 0.0099 1787.0 0.0099 0.0099 1944.5 0.0099 0.0099 --1.6 -1.4 117 9.0 0.0099 0.0099 11.0 0.0099 0.0099 13.5 0.0099 0.0099 16.5 0.0099 0.0099 19.5 0.0099 0.0099 22.5 0.0099 0.0099 26.0 0.0099 0.0099 30.0 0.0099 0.0099 34.5 0.0099 0.0099 40.0 0.0099 0.0099 46.0 0.0099 0.0099 52.5 0.0099 0.0099 60.0 0.0099 0.0099 69.0 0.0099 0.0099 79.0 0.0099 0.0099 90.5 0.0099 0.0099 105.5 0.0099 0.0099 123.5 0.0099 0.0099 143.0 0.0099 0.0099 163.5 0.0099 0.0099 185.0 0.0099 0.0099 208.0 0.0099 0.0099 232.5 0.0099 0.0099 258.5 0.0099 0.0099 286.0 0.0099 0.0099 331.0 0.0099 0.0099 396.0 0.0099 0.0099 468.5 0.0099 0.0099 549.5 0.0099 0.0099 639.0 0.0099 0.0099 738.0 0.0099 0.0099 847.5 0.0099 0.0099 968.5 0.0099 0.0099 1102.0 0.0099 0.0099 1249.5 0.0099 0.0099 1412.0 0.0099 0.0099 1590.5 0.0099 0.0099 1787.0 0.0099 0.0099 1944.5 0.0099 0.0099 --1.4 -1.2 117 9.0 0.0021 0.0021 11.0 0.0021 0.0021 13.5 0.0021 0.0021 16.5 0.0021 0.0021 19.5 0.0021 0.0021 22.5 0.0021 0.0021 26.0 0.0021 0.0021 30.0 0.0021 0.0021 34.5 0.0021 0.0021 40.0 0.0021 0.0021 46.0 0.0021 0.0021 52.5 0.0021 0.0021 60.0 0.0021 0.0021 69.0 0.0021 0.0021 79.0 0.0021 0.0021 90.5 0.0021 0.0021 105.5 0.0021 0.0021 123.5 0.0021 0.0021 143.0 0.0021 0.0021 163.5 0.0021 0.0021 185.0 0.0021 0.0021 208.0 0.0021 0.0021 232.5 0.0021 0.0021 258.5 0.0021 0.0021 286.0 0.0021 0.0021 331.0 0.0021 0.0021 396.0 0.0021 0.0021 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0021 0.0021 968.5 0.0021 0.0021 1102.0 0.0021 0.0021 1249.5 0.0021 0.0021 1412.0 0.0021 0.0021 1590.5 0.0021 0.0021 1787.0 0.0021 0.0021 1944.5 0.0021 0.0021 --1.2 -1.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.0 -0.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.8 -0.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.6 -0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.4 -0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.2 0.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.0 0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.2 0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.4 0.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.6 0.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.8 1.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.0 1.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.2 1.4 117 9.0 0.0021 0.0021 11.0 0.0021 0.0021 13.5 0.0021 0.0021 16.5 0.0021 0.0021 19.5 0.0021 0.0021 22.5 0.0021 0.0021 26.0 0.0021 0.0021 30.0 0.0021 0.0021 34.5 0.0021 0.0021 40.0 0.0021 0.0021 46.0 0.0021 0.0021 52.5 0.0021 0.0021 60.0 0.0021 0.0021 69.0 0.0021 0.0021 79.0 0.0021 0.0021 90.5 0.0021 0.0021 105.5 0.0021 0.0021 123.5 0.0021 0.0021 143.0 0.0021 0.0021 163.5 0.0021 0.0021 185.0 0.0021 0.0021 208.0 0.0021 0.0021 232.5 0.0021 0.0021 258.5 0.0021 0.0021 286.0 0.0021 0.0021 331.0 0.0021 0.0021 396.0 0.0021 0.0021 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0021 0.0021 968.5 0.0021 0.0021 1102.0 0.0021 0.0021 1249.5 0.0021 0.0021 1412.0 0.0021 0.0021 1590.5 0.0021 0.0021 1787.0 0.0021 0.0021 1944.5 0.0021 0.0021 -1.4 1.6 117 9.0 0.0099 0.0099 11.0 0.0099 0.0099 13.5 0.0099 0.0099 16.5 0.0099 0.0099 19.5 0.0099 0.0099 22.5 0.0099 0.0099 26.0 0.0099 0.0099 30.0 0.0099 0.0099 34.5 0.0099 0.0099 40.0 0.0099 0.0099 46.0 0.0099 0.0099 52.5 0.0099 0.0099 60.0 0.0099 0.0099 69.0 0.0099 0.0099 79.0 0.0099 0.0099 90.5 0.0099 0.0099 105.5 0.0099 0.0099 123.5 0.0099 0.0099 143.0 0.0099 0.0099 163.5 0.0099 0.0099 185.0 0.0099 0.0099 208.0 0.0099 0.0099 232.5 0.0099 0.0099 258.5 0.0099 0.0099 286.0 0.0099 0.0099 331.0 0.0099 0.0099 396.0 0.0099 0.0099 468.5 0.0099 0.0099 549.5 0.0099 0.0099 639.0 0.0099 0.0099 738.0 0.0099 0.0099 847.5 0.0099 0.0099 968.5 0.0099 0.0099 1102.0 0.0099 0.0099 1249.5 0.0099 0.0099 1412.0 0.0099 0.0099 1590.5 0.0099 0.0099 1787.0 0.0099 0.0099 1944.5 0.0099 0.0099 -1.6 1.8 117 9.0 0.0099 0.0099 11.0 0.0099 0.0099 13.5 0.0099 0.0099 16.5 0.0099 0.0099 19.5 0.0099 0.0099 22.5 0.0099 0.0099 26.0 0.0099 0.0099 30.0 0.0099 0.0099 34.5 0.0099 0.0099 40.0 0.0099 0.0099 46.0 0.0099 0.0099 52.5 0.0099 0.0099 60.0 0.0099 0.0099 69.0 0.0099 0.0099 79.0 0.0099 0.0099 90.5 0.0099 0.0099 105.5 0.0099 0.0099 123.5 0.0099 0.0099 143.0 0.0099 0.0099 163.5 0.0099 0.0099 185.0 0.0099 0.0099 208.0 0.0099 0.0099 232.5 0.0099 0.0099 258.5 0.0099 0.0099 286.0 0.0099 0.0099 331.0 0.0099 0.0099 396.0 0.0099 0.0099 468.5 0.0099 0.0099 549.5 0.0099 0.0099 639.0 0.0099 0.0099 738.0 0.0099 0.0099 847.5 0.0099 0.0099 968.5 0.0099 0.0099 1102.0 0.0099 0.0099 1249.5 0.0099 0.0099 1412.0 0.0099 0.0099 1590.5 0.0099 0.0099 1787.0 0.0099 0.0099 1944.5 0.0099 0.0099 -1.8 2.0 117 9.0 0.0099 0.0099 11.0 0.0099 0.0099 13.5 0.0099 0.0099 16.5 0.0099 0.0099 19.5 0.0099 0.0099 22.5 0.0099 0.0099 26.0 0.0099 0.0099 30.0 0.0099 0.0099 34.5 0.0099 0.0099 40.0 0.0099 0.0099 46.0 0.0099 0.0099 52.5 0.0099 0.0099 60.0 0.0099 0.0099 69.0 0.0099 0.0099 79.0 0.0099 0.0099 90.5 0.0099 0.0099 105.5 0.0099 0.0099 123.5 0.0099 0.0099 143.0 0.0099 0.0099 163.5 0.0099 0.0099 185.0 0.0099 0.0099 208.0 0.0099 0.0099 232.5 0.0099 0.0099 258.5 0.0099 0.0099 286.0 0.0099 0.0099 331.0 0.0099 0.0099 396.0 0.0099 0.0099 468.5 0.0099 0.0099 549.5 0.0099 0.0099 639.0 0.0099 0.0099 738.0 0.0099 0.0099 847.5 0.0099 0.0099 968.5 0.0099 0.0099 1102.0 0.0099 0.0099 1249.5 0.0099 0.0099 1412.0 0.0099 0.0099 1590.5 0.0099 0.0099 1787.0 0.0099 0.0099 1944.5 0.0099 0.0099 -2.0 2.2 117 9.0 0.0146 0.0146 11.0 0.0146 0.0146 13.5 0.0146 0.0146 16.5 0.0146 0.0146 19.5 0.0146 0.0146 22.5 0.0146 0.0146 26.0 0.0146 0.0146 30.0 0.0146 0.0146 34.5 0.0146 0.0146 40.0 0.0146 0.0146 46.0 0.0146 0.0146 52.5 0.0146 0.0146 60.0 0.0146 0.0146 69.0 0.0146 0.0146 79.0 0.0146 0.0146 90.5 0.0146 0.0146 105.5 0.0146 0.0146 123.5 0.0146 0.0146 143.0 0.0146 0.0146 163.5 0.0146 0.0146 185.0 0.0146 0.0146 208.0 0.0146 0.0146 232.5 0.0146 0.0146 258.5 0.0146 0.0146 286.0 0.0146 0.0146 331.0 0.0146 0.0146 396.0 0.0146 0.0146 468.5 0.0146 0.0146 549.5 0.0146 0.0146 639.0 0.0146 0.0146 738.0 0.0146 0.0146 847.5 0.0146 0.0146 968.5 0.0146 0.0146 1102.0 0.0146 0.0146 1249.5 0.0146 0.0146 1412.0 0.0146 0.0146 1590.5 0.0146 0.0146 1787.0 0.0146 0.0146 1944.5 0.0146 0.0146 -2.2 2.4 117 9.0 0.0146 0.0146 11.0 0.0146 0.0146 13.5 0.0146 0.0146 16.5 0.0146 0.0146 19.5 0.0146 0.0146 22.5 0.0146 0.0146 26.0 0.0146 0.0146 30.0 0.0146 0.0146 34.5 0.0146 0.0146 40.0 0.0146 0.0146 46.0 0.0146 0.0146 52.5 0.0146 0.0146 60.0 0.0146 0.0146 69.0 0.0146 0.0146 79.0 0.0146 0.0146 90.5 0.0146 0.0146 105.5 0.0146 0.0146 123.5 0.0146 0.0146 143.0 0.0146 0.0146 163.5 0.0146 0.0146 185.0 0.0146 0.0146 208.0 0.0146 0.0146 232.5 0.0146 0.0146 258.5 0.0146 0.0146 286.0 0.0146 0.0146 331.0 0.0146 0.0146 396.0 0.0146 0.0146 468.5 0.0146 0.0146 549.5 0.0146 0.0146 639.0 0.0146 0.0146 738.0 0.0146 0.0146 847.5 0.0146 0.0146 968.5 0.0146 0.0146 1102.0 0.0146 0.0146 1249.5 0.0146 0.0146 1412.0 0.0146 0.0146 1590.5 0.0146 0.0146 1787.0 0.0146 0.0146 1944.5 0.0146 0.0146 -2.4 2.6 117 9.0 0.0461 0.0461 11.0 0.0461 0.0461 13.5 0.0461 0.0461 16.5 0.0461 0.0461 19.5 0.0461 0.0461 22.5 0.0461 0.0461 26.0 0.0461 0.0461 30.0 0.0461 0.0461 34.5 0.0461 0.0461 40.0 0.0461 0.0461 46.0 0.0461 0.0461 52.5 0.0461 0.0461 60.0 0.0461 0.0461 69.0 0.0461 0.0461 79.0 0.0461 0.0461 90.5 0.0461 0.0461 105.5 0.0461 0.0461 123.5 0.0461 0.0461 143.0 0.0461 0.0461 163.5 0.0461 0.0461 185.0 0.0461 0.0461 208.0 0.0461 0.0461 232.5 0.0461 0.0461 258.5 0.0461 0.0461 286.0 0.0461 0.0461 331.0 0.0461 0.0461 396.0 0.0461 0.0461 468.5 0.0461 0.0461 549.5 0.0461 0.0461 639.0 0.0461 0.0461 738.0 0.0461 0.0461 847.5 0.0461 0.0461 968.5 0.0461 0.0461 1102.0 0.0461 0.0461 1249.5 0.0461 0.0461 1412.0 0.0461 0.0461 1590.5 0.0461 0.0461 1787.0 0.0461 0.0461 1944.5 0.0461 0.0461 -2.6 2.8 117 9.0 0.0461 0.0461 11.0 0.0461 0.0461 13.5 0.0461 0.0461 16.5 0.0461 0.0461 19.5 0.0461 0.0461 22.5 0.0461 0.0461 26.0 0.0461 0.0461 30.0 0.0461 0.0461 34.5 0.0461 0.0461 40.0 0.0461 0.0461 46.0 0.0461 0.0461 52.5 0.0461 0.0461 60.0 0.0461 0.0461 69.0 0.0461 0.0461 79.0 0.0461 0.0461 90.5 0.0461 0.0461 105.5 0.0461 0.0461 123.5 0.0461 0.0461 143.0 0.0461 0.0461 163.5 0.0461 0.0461 185.0 0.0461 0.0461 208.0 0.0461 0.0461 232.5 0.0461 0.0461 258.5 0.0461 0.0461 286.0 0.0461 0.0461 331.0 0.0461 0.0461 396.0 0.0461 0.0461 468.5 0.0461 0.0461 549.5 0.0461 0.0461 639.0 0.0461 0.0461 738.0 0.0461 0.0461 847.5 0.0461 0.0461 968.5 0.0461 0.0461 1102.0 0.0461 0.0461 1249.5 0.0461 0.0461 1412.0 0.0461 0.0461 1590.5 0.0461 0.0461 1787.0 0.0461 0.0461 1944.5 0.0461 0.0461 -2.8 3.0 117 9.0 0.0451 0.0451 11.0 0.0451 0.0451 13.5 0.0451 0.0451 16.5 0.0451 0.0451 19.5 0.0451 0.0451 22.5 0.0451 0.0451 26.0 0.0451 0.0451 30.0 0.0451 0.0451 34.5 0.0451 0.0451 40.0 0.0451 0.0451 46.0 0.0451 0.0451 52.5 0.0451 0.0451 60.0 0.0451 0.0451 69.0 0.0451 0.0451 79.0 0.0451 0.0451 90.5 0.0451 0.0451 105.5 0.0451 0.0451 123.5 0.0451 0.0451 143.0 0.0451 0.0451 163.5 0.0451 0.0451 185.0 0.0451 0.0451 208.0 0.0451 0.0451 232.5 0.0451 0.0451 258.5 0.0451 0.0451 286.0 0.0451 0.0451 331.0 0.0451 0.0451 396.0 0.0451 0.0451 468.5 0.0451 0.0451 549.5 0.0451 0.0451 639.0 0.0451 0.0451 738.0 0.0451 0.0451 847.5 0.0451 0.0451 968.5 0.0451 0.0451 1102.0 0.0451 0.0451 1249.5 0.0451 0.0451 1412.0 0.0451 0.0451 1590.5 0.0451 0.0451 1787.0 0.0451 0.0451 1944.5 0.0451 0.0451 -3.0 3.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -3.5 4.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -4.0 4.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -4.5 5.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -[RelativeJEREC1] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --4.5 -4.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --4.0 -3.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --3.5 -3.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --3.0 -2.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.8 -2.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.6 -2.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.4 -2.2 117 9.0 0.0044 0.0044 11.0 0.0044 0.0044 13.5 0.0044 0.0044 16.5 0.0044 0.0044 19.5 0.0044 0.0044 22.5 0.0044 0.0044 26.0 0.0044 0.0044 30.0 0.0044 0.0044 34.5 0.0044 0.0044 40.0 0.0044 0.0044 46.0 0.0044 0.0044 52.5 0.0044 0.0044 60.0 0.0044 0.0044 69.0 0.0044 0.0044 79.0 0.0044 0.0044 90.5 0.0044 0.0044 105.5 0.0044 0.0044 123.5 0.0044 0.0044 143.0 0.0044 0.0044 163.5 0.0044 0.0044 185.0 0.0044 0.0044 208.0 0.0044 0.0044 232.5 0.0044 0.0044 258.5 0.0044 0.0044 286.0 0.0044 0.0044 331.0 0.0044 0.0044 396.0 0.0044 0.0044 468.5 0.0044 0.0044 549.5 0.0044 0.0044 639.0 0.0044 0.0044 738.0 0.0044 0.0044 847.5 0.0044 0.0044 968.5 0.0044 0.0044 1102.0 0.0044 0.0044 1249.5 0.0044 0.0044 1412.0 0.0044 0.0044 1590.5 0.0044 0.0044 1787.0 0.0044 0.0044 1944.5 0.0044 0.0044 --2.2 -2.0 117 9.0 0.0038 0.0038 11.0 0.0038 0.0038 13.5 0.0038 0.0038 16.5 0.0038 0.0038 19.5 0.0038 0.0038 22.5 0.0038 0.0038 26.0 0.0038 0.0038 30.0 0.0038 0.0038 34.5 0.0038 0.0038 40.0 0.0038 0.0038 46.0 0.0038 0.0038 52.5 0.0038 0.0038 60.0 0.0038 0.0038 69.0 0.0038 0.0038 79.0 0.0038 0.0038 90.5 0.0038 0.0038 105.5 0.0038 0.0038 123.5 0.0038 0.0038 143.0 0.0038 0.0038 163.5 0.0038 0.0038 185.0 0.0038 0.0038 208.0 0.0038 0.0038 232.5 0.0038 0.0038 258.5 0.0038 0.0038 286.0 0.0038 0.0038 331.0 0.0038 0.0038 396.0 0.0038 0.0038 468.5 0.0038 0.0038 549.5 0.0038 0.0038 639.0 0.0038 0.0038 738.0 0.0038 0.0038 847.5 0.0038 0.0038 968.5 0.0038 0.0038 1102.0 0.0038 0.0038 1249.5 0.0038 0.0038 1412.0 0.0038 0.0038 1590.5 0.0038 0.0038 1787.0 0.0038 0.0038 1944.5 0.0038 0.0038 --2.0 -1.8 117 9.0 0.0032 0.0032 11.0 0.0032 0.0032 13.5 0.0032 0.0032 16.5 0.0032 0.0032 19.5 0.0032 0.0032 22.5 0.0032 0.0032 26.0 0.0032 0.0032 30.0 0.0032 0.0032 34.5 0.0032 0.0032 40.0 0.0032 0.0032 46.0 0.0032 0.0032 52.5 0.0032 0.0032 60.0 0.0032 0.0032 69.0 0.0032 0.0032 79.0 0.0032 0.0032 90.5 0.0032 0.0032 105.5 0.0032 0.0032 123.5 0.0032 0.0032 143.0 0.0032 0.0032 163.5 0.0032 0.0032 185.0 0.0032 0.0032 208.0 0.0032 0.0032 232.5 0.0032 0.0032 258.5 0.0032 0.0032 286.0 0.0032 0.0032 331.0 0.0032 0.0032 396.0 0.0032 0.0032 468.5 0.0032 0.0032 549.5 0.0032 0.0032 639.0 0.0032 0.0032 738.0 0.0032 0.0032 847.5 0.0032 0.0032 968.5 0.0032 0.0032 1102.0 0.0032 0.0032 1249.5 0.0032 0.0032 1412.0 0.0032 0.0032 1590.5 0.0032 0.0032 1787.0 0.0032 0.0032 1944.5 0.0032 0.0032 --1.8 -1.6 117 9.0 0.0026 0.0026 11.0 0.0026 0.0026 13.5 0.0026 0.0026 16.5 0.0026 0.0026 19.5 0.0026 0.0026 22.5 0.0026 0.0026 26.0 0.0026 0.0026 30.0 0.0026 0.0026 34.5 0.0026 0.0026 40.0 0.0026 0.0026 46.0 0.0026 0.0026 52.5 0.0026 0.0026 60.0 0.0026 0.0026 69.0 0.0026 0.0026 79.0 0.0026 0.0026 90.5 0.0026 0.0026 105.5 0.0026 0.0026 123.5 0.0026 0.0026 143.0 0.0026 0.0026 163.5 0.0026 0.0026 185.0 0.0026 0.0026 208.0 0.0026 0.0026 232.5 0.0026 0.0026 258.5 0.0026 0.0026 286.0 0.0026 0.0026 331.0 0.0026 0.0026 396.0 0.0026 0.0026 468.5 0.0026 0.0026 549.5 0.0026 0.0026 639.0 0.0026 0.0026 738.0 0.0026 0.0026 847.5 0.0026 0.0026 968.5 0.0026 0.0026 1102.0 0.0026 0.0026 1249.5 0.0026 0.0026 1412.0 0.0026 0.0026 1590.5 0.0026 0.0026 1787.0 0.0026 0.0026 1944.5 0.0026 0.0026 --1.6 -1.4 117 9.0 0.0020 0.0020 11.0 0.0020 0.0020 13.5 0.0020 0.0020 16.5 0.0020 0.0020 19.5 0.0020 0.0020 22.5 0.0020 0.0020 26.0 0.0020 0.0020 30.0 0.0020 0.0020 34.5 0.0020 0.0020 40.0 0.0020 0.0020 46.0 0.0020 0.0020 52.5 0.0020 0.0020 60.0 0.0020 0.0020 69.0 0.0020 0.0020 79.0 0.0020 0.0020 90.5 0.0020 0.0020 105.5 0.0020 0.0020 123.5 0.0020 0.0020 143.0 0.0020 0.0020 163.5 0.0020 0.0020 185.0 0.0020 0.0020 208.0 0.0020 0.0020 232.5 0.0020 0.0020 258.5 0.0020 0.0020 286.0 0.0020 0.0020 331.0 0.0020 0.0020 396.0 0.0020 0.0020 468.5 0.0020 0.0020 549.5 0.0020 0.0020 639.0 0.0020 0.0020 738.0 0.0020 0.0020 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --1.4 -1.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.2 -1.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.0 -0.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.8 -0.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.6 -0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.4 -0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.2 0.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.0 0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.2 0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.4 0.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.6 0.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.8 1.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.0 1.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.2 1.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.4 1.6 117 9.0 0.0020 0.0020 11.0 0.0020 0.0020 13.5 0.0020 0.0020 16.5 0.0020 0.0020 19.5 0.0020 0.0020 22.5 0.0020 0.0020 26.0 0.0020 0.0020 30.0 0.0020 0.0020 34.5 0.0020 0.0020 40.0 0.0020 0.0020 46.0 0.0020 0.0020 52.5 0.0020 0.0020 60.0 0.0020 0.0020 69.0 0.0020 0.0020 79.0 0.0020 0.0020 90.5 0.0020 0.0020 105.5 0.0020 0.0020 123.5 0.0020 0.0020 143.0 0.0020 0.0020 163.5 0.0020 0.0020 185.0 0.0020 0.0020 208.0 0.0020 0.0020 232.5 0.0020 0.0020 258.5 0.0020 0.0020 286.0 0.0020 0.0020 331.0 0.0020 0.0020 396.0 0.0020 0.0020 468.5 0.0020 0.0020 549.5 0.0020 0.0020 639.0 0.0020 0.0020 738.0 0.0020 0.0020 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -1.6 1.8 117 9.0 0.0026 0.0026 11.0 0.0026 0.0026 13.5 0.0026 0.0026 16.5 0.0026 0.0026 19.5 0.0026 0.0026 22.5 0.0026 0.0026 26.0 0.0026 0.0026 30.0 0.0026 0.0026 34.5 0.0026 0.0026 40.0 0.0026 0.0026 46.0 0.0026 0.0026 52.5 0.0026 0.0026 60.0 0.0026 0.0026 69.0 0.0026 0.0026 79.0 0.0026 0.0026 90.5 0.0026 0.0026 105.5 0.0026 0.0026 123.5 0.0026 0.0026 143.0 0.0026 0.0026 163.5 0.0026 0.0026 185.0 0.0026 0.0026 208.0 0.0026 0.0026 232.5 0.0026 0.0026 258.5 0.0026 0.0026 286.0 0.0026 0.0026 331.0 0.0026 0.0026 396.0 0.0026 0.0026 468.5 0.0026 0.0026 549.5 0.0026 0.0026 639.0 0.0026 0.0026 738.0 0.0026 0.0026 847.5 0.0026 0.0026 968.5 0.0026 0.0026 1102.0 0.0026 0.0026 1249.5 0.0026 0.0026 1412.0 0.0026 0.0026 1590.5 0.0026 0.0026 1787.0 0.0026 0.0026 1944.5 0.0026 0.0026 -1.8 2.0 117 9.0 0.0032 0.0032 11.0 0.0032 0.0032 13.5 0.0032 0.0032 16.5 0.0032 0.0032 19.5 0.0032 0.0032 22.5 0.0032 0.0032 26.0 0.0032 0.0032 30.0 0.0032 0.0032 34.5 0.0032 0.0032 40.0 0.0032 0.0032 46.0 0.0032 0.0032 52.5 0.0032 0.0032 60.0 0.0032 0.0032 69.0 0.0032 0.0032 79.0 0.0032 0.0032 90.5 0.0032 0.0032 105.5 0.0032 0.0032 123.5 0.0032 0.0032 143.0 0.0032 0.0032 163.5 0.0032 0.0032 185.0 0.0032 0.0032 208.0 0.0032 0.0032 232.5 0.0032 0.0032 258.5 0.0032 0.0032 286.0 0.0032 0.0032 331.0 0.0032 0.0032 396.0 0.0032 0.0032 468.5 0.0032 0.0032 549.5 0.0032 0.0032 639.0 0.0032 0.0032 738.0 0.0032 0.0032 847.5 0.0032 0.0032 968.5 0.0032 0.0032 1102.0 0.0032 0.0032 1249.5 0.0032 0.0032 1412.0 0.0032 0.0032 1590.5 0.0032 0.0032 1787.0 0.0032 0.0032 1944.5 0.0032 0.0032 -2.0 2.2 117 9.0 0.0038 0.0038 11.0 0.0038 0.0038 13.5 0.0038 0.0038 16.5 0.0038 0.0038 19.5 0.0038 0.0038 22.5 0.0038 0.0038 26.0 0.0038 0.0038 30.0 0.0038 0.0038 34.5 0.0038 0.0038 40.0 0.0038 0.0038 46.0 0.0038 0.0038 52.5 0.0038 0.0038 60.0 0.0038 0.0038 69.0 0.0038 0.0038 79.0 0.0038 0.0038 90.5 0.0038 0.0038 105.5 0.0038 0.0038 123.5 0.0038 0.0038 143.0 0.0038 0.0038 163.5 0.0038 0.0038 185.0 0.0038 0.0038 208.0 0.0038 0.0038 232.5 0.0038 0.0038 258.5 0.0038 0.0038 286.0 0.0038 0.0038 331.0 0.0038 0.0038 396.0 0.0038 0.0038 468.5 0.0038 0.0038 549.5 0.0038 0.0038 639.0 0.0038 0.0038 738.0 0.0038 0.0038 847.5 0.0038 0.0038 968.5 0.0038 0.0038 1102.0 0.0038 0.0038 1249.5 0.0038 0.0038 1412.0 0.0038 0.0038 1590.5 0.0038 0.0038 1787.0 0.0038 0.0038 1944.5 0.0038 0.0038 -2.2 2.4 117 9.0 0.0044 0.0044 11.0 0.0044 0.0044 13.5 0.0044 0.0044 16.5 0.0044 0.0044 19.5 0.0044 0.0044 22.5 0.0044 0.0044 26.0 0.0044 0.0044 30.0 0.0044 0.0044 34.5 0.0044 0.0044 40.0 0.0044 0.0044 46.0 0.0044 0.0044 52.5 0.0044 0.0044 60.0 0.0044 0.0044 69.0 0.0044 0.0044 79.0 0.0044 0.0044 90.5 0.0044 0.0044 105.5 0.0044 0.0044 123.5 0.0044 0.0044 143.0 0.0044 0.0044 163.5 0.0044 0.0044 185.0 0.0044 0.0044 208.0 0.0044 0.0044 232.5 0.0044 0.0044 258.5 0.0044 0.0044 286.0 0.0044 0.0044 331.0 0.0044 0.0044 396.0 0.0044 0.0044 468.5 0.0044 0.0044 549.5 0.0044 0.0044 639.0 0.0044 0.0044 738.0 0.0044 0.0044 847.5 0.0044 0.0044 968.5 0.0044 0.0044 1102.0 0.0044 0.0044 1249.5 0.0044 0.0044 1412.0 0.0044 0.0044 1590.5 0.0044 0.0044 1787.0 0.0044 0.0044 1944.5 0.0044 0.0044 -2.4 2.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.6 2.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.8 3.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -3.0 3.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -3.5 4.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -4.0 4.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -4.5 5.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -[RelativeJEREC2] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --4.5 -4.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --4.0 -3.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --3.5 -3.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --3.0 -2.8 117 9.0 0.0130 0.0130 11.0 0.0130 0.0130 13.5 0.0130 0.0130 16.5 0.0130 0.0130 19.5 0.0130 0.0130 22.5 0.0130 0.0130 26.0 0.0130 0.0130 30.0 0.0130 0.0130 34.5 0.0130 0.0130 40.0 0.0130 0.0130 46.0 0.0130 0.0130 52.5 0.0130 0.0130 60.0 0.0130 0.0130 69.0 0.0130 0.0130 79.0 0.0130 0.0130 90.5 0.0130 0.0130 105.5 0.0130 0.0130 123.5 0.0130 0.0130 143.0 0.0130 0.0130 163.5 0.0130 0.0130 185.0 0.0130 0.0130 208.0 0.0130 0.0130 232.5 0.0130 0.0130 258.5 0.0130 0.0130 286.0 0.0130 0.0130 331.0 0.0130 0.0130 396.0 0.0130 0.0130 468.5 0.0130 0.0130 549.5 0.0130 0.0130 639.0 0.0130 0.0130 738.0 0.0130 0.0130 847.5 0.0130 0.0130 968.5 0.0130 0.0130 1102.0 0.0130 0.0130 1249.5 0.0130 0.0130 1412.0 0.0130 0.0130 1590.5 0.0130 0.0130 1787.0 0.0130 0.0130 1944.5 0.0130 0.0130 --2.8 -2.6 117 9.0 0.0090 0.0090 11.0 0.0090 0.0090 13.5 0.0090 0.0090 16.5 0.0090 0.0090 19.5 0.0090 0.0090 22.5 0.0090 0.0090 26.0 0.0090 0.0090 30.0 0.0090 0.0090 34.5 0.0090 0.0090 40.0 0.0090 0.0090 46.0 0.0090 0.0090 52.5 0.0090 0.0090 60.0 0.0090 0.0090 69.0 0.0090 0.0090 79.0 0.0090 0.0090 90.5 0.0090 0.0090 105.5 0.0090 0.0090 123.5 0.0090 0.0090 143.0 0.0090 0.0090 163.5 0.0090 0.0090 185.0 0.0090 0.0090 208.0 0.0090 0.0090 232.5 0.0090 0.0090 258.5 0.0090 0.0090 286.0 0.0090 0.0090 331.0 0.0090 0.0090 396.0 0.0090 0.0090 468.5 0.0090 0.0090 549.5 0.0090 0.0090 639.0 0.0090 0.0090 738.0 0.0090 0.0090 847.5 0.0090 0.0090 968.5 0.0090 0.0090 1102.0 0.0090 0.0090 1249.5 0.0090 0.0090 1412.0 0.0090 0.0090 1590.5 0.0090 0.0090 1787.0 0.0090 0.0090 1944.5 0.0090 0.0090 --2.6 -2.4 117 9.0 0.0050 0.0050 11.0 0.0050 0.0050 13.5 0.0050 0.0050 16.5 0.0050 0.0050 19.5 0.0050 0.0050 22.5 0.0050 0.0050 26.0 0.0050 0.0050 30.0 0.0050 0.0050 34.5 0.0050 0.0050 40.0 0.0050 0.0050 46.0 0.0050 0.0050 52.5 0.0050 0.0050 60.0 0.0050 0.0050 69.0 0.0050 0.0050 79.0 0.0050 0.0050 90.5 0.0050 0.0050 105.5 0.0050 0.0050 123.5 0.0050 0.0050 143.0 0.0050 0.0050 163.5 0.0050 0.0050 185.0 0.0050 0.0050 208.0 0.0050 0.0050 232.5 0.0050 0.0050 258.5 0.0050 0.0050 286.0 0.0050 0.0050 331.0 0.0050 0.0050 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0050 0.0050 639.0 0.0050 0.0050 738.0 0.0050 0.0050 847.5 0.0050 0.0050 968.5 0.0050 0.0050 1102.0 0.0050 0.0050 1249.5 0.0050 0.0050 1412.0 0.0050 0.0050 1590.5 0.0050 0.0050 1787.0 0.0050 0.0050 1944.5 0.0050 0.0050 --2.4 -2.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.2 -2.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.0 -1.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.8 -1.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.6 -1.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.4 -1.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.2 -1.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.0 -0.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.8 -0.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.6 -0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.4 -0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.2 0.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.0 0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.2 0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.4 0.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.6 0.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.8 1.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.0 1.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.2 1.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.4 1.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.6 1.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.8 2.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.0 2.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.2 2.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.4 2.6 117 9.0 0.0050 0.0050 11.0 0.0050 0.0050 13.5 0.0050 0.0050 16.5 0.0050 0.0050 19.5 0.0050 0.0050 22.5 0.0050 0.0050 26.0 0.0050 0.0050 30.0 0.0050 0.0050 34.5 0.0050 0.0050 40.0 0.0050 0.0050 46.0 0.0050 0.0050 52.5 0.0050 0.0050 60.0 0.0050 0.0050 69.0 0.0050 0.0050 79.0 0.0050 0.0050 90.5 0.0050 0.0050 105.5 0.0050 0.0050 123.5 0.0050 0.0050 143.0 0.0050 0.0050 163.5 0.0050 0.0050 185.0 0.0050 0.0050 208.0 0.0050 0.0050 232.5 0.0050 0.0050 258.5 0.0050 0.0050 286.0 0.0050 0.0050 331.0 0.0050 0.0050 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0050 0.0050 639.0 0.0050 0.0050 738.0 0.0050 0.0050 847.5 0.0050 0.0050 968.5 0.0050 0.0050 1102.0 0.0050 0.0050 1249.5 0.0050 0.0050 1412.0 0.0050 0.0050 1590.5 0.0050 0.0050 1787.0 0.0050 0.0050 1944.5 0.0050 0.0050 -2.6 2.8 117 9.0 0.0090 0.0090 11.0 0.0090 0.0090 13.5 0.0090 0.0090 16.5 0.0090 0.0090 19.5 0.0090 0.0090 22.5 0.0090 0.0090 26.0 0.0090 0.0090 30.0 0.0090 0.0090 34.5 0.0090 0.0090 40.0 0.0090 0.0090 46.0 0.0090 0.0090 52.5 0.0090 0.0090 60.0 0.0090 0.0090 69.0 0.0090 0.0090 79.0 0.0090 0.0090 90.5 0.0090 0.0090 105.5 0.0090 0.0090 123.5 0.0090 0.0090 143.0 0.0090 0.0090 163.5 0.0090 0.0090 185.0 0.0090 0.0090 208.0 0.0090 0.0090 232.5 0.0090 0.0090 258.5 0.0090 0.0090 286.0 0.0090 0.0090 331.0 0.0090 0.0090 396.0 0.0090 0.0090 468.5 0.0090 0.0090 549.5 0.0090 0.0090 639.0 0.0090 0.0090 738.0 0.0090 0.0090 847.5 0.0090 0.0090 968.5 0.0090 0.0090 1102.0 0.0090 0.0090 1249.5 0.0090 0.0090 1412.0 0.0090 0.0090 1590.5 0.0090 0.0090 1787.0 0.0090 0.0090 1944.5 0.0090 0.0090 -2.8 3.0 117 9.0 0.0130 0.0130 11.0 0.0130 0.0130 13.5 0.0130 0.0130 16.5 0.0130 0.0130 19.5 0.0130 0.0130 22.5 0.0130 0.0130 26.0 0.0130 0.0130 30.0 0.0130 0.0130 34.5 0.0130 0.0130 40.0 0.0130 0.0130 46.0 0.0130 0.0130 52.5 0.0130 0.0130 60.0 0.0130 0.0130 69.0 0.0130 0.0130 79.0 0.0130 0.0130 90.5 0.0130 0.0130 105.5 0.0130 0.0130 123.5 0.0130 0.0130 143.0 0.0130 0.0130 163.5 0.0130 0.0130 185.0 0.0130 0.0130 208.0 0.0130 0.0130 232.5 0.0130 0.0130 258.5 0.0130 0.0130 286.0 0.0130 0.0130 331.0 0.0130 0.0130 396.0 0.0130 0.0130 468.5 0.0130 0.0130 549.5 0.0130 0.0130 639.0 0.0130 0.0130 738.0 0.0130 0.0130 847.5 0.0130 0.0130 968.5 0.0130 0.0130 1102.0 0.0130 0.0130 1249.5 0.0130 0.0130 1412.0 0.0130 0.0130 1590.5 0.0130 0.0130 1787.0 0.0130 0.0130 1944.5 0.0130 0.0130 -3.0 3.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -3.5 4.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -4.0 4.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -4.5 5.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -[RelativeJERHF] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1944.5 0.0150 0.0150 --4.5 -4.0 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1944.5 0.0150 0.0150 --4.0 -3.5 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1944.5 0.0150 0.0150 --3.5 -3.0 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1944.5 0.0150 0.0150 --3.0 -2.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.8 -2.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.6 -2.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.4 -2.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.2 -2.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.0 -1.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.8 -1.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.6 -1.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.4 -1.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.2 -1.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.0 -0.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.8 -0.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.6 -0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.4 -0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.2 0.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.0 0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.2 0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.4 0.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.6 0.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.8 1.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.0 1.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.2 1.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.4 1.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.6 1.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.8 2.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.0 2.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.2 2.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.4 2.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.6 2.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.8 3.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -3.0 3.5 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1944.5 0.0150 0.0150 -3.5 4.0 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1944.5 0.0150 0.0150 -4.0 4.5 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1944.5 0.0150 0.0150 -4.5 5.2 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1944.5 0.0150 0.0150 -[RelativeFSR] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0179 0.0179 11.0 0.0179 0.0179 13.5 0.0179 0.0179 16.5 0.0179 0.0179 19.5 0.0179 0.0179 22.5 0.0179 0.0179 26.0 0.0179 0.0179 30.0 0.0179 0.0179 34.5 0.0179 0.0179 40.0 0.0179 0.0179 46.0 0.0179 0.0179 52.5 0.0179 0.0179 60.0 0.0179 0.0179 69.0 0.0179 0.0179 79.0 0.0179 0.0179 90.5 0.0179 0.0179 105.5 0.0179 0.0179 123.5 0.0179 0.0179 143.0 0.0179 0.0179 163.5 0.0179 0.0179 185.0 0.0179 0.0179 208.0 0.0179 0.0179 232.5 0.0179 0.0179 258.5 0.0179 0.0179 286.0 0.0179 0.0179 331.0 0.0179 0.0179 396.0 0.0179 0.0179 468.5 0.0179 0.0179 549.5 0.0179 0.0179 639.0 0.0179 0.0179 738.0 0.0179 0.0179 847.5 0.0179 0.0179 968.5 0.0179 0.0179 1102.0 0.0179 0.0179 1249.5 0.0179 0.0179 1412.0 0.0179 0.0179 1590.5 0.0179 0.0179 1787.0 0.0179 0.0179 1944.5 0.0179 0.0179 --4.5 -4.0 117 9.0 0.0179 0.0179 11.0 0.0179 0.0179 13.5 0.0179 0.0179 16.5 0.0179 0.0179 19.5 0.0179 0.0179 22.5 0.0179 0.0179 26.0 0.0179 0.0179 30.0 0.0179 0.0179 34.5 0.0179 0.0179 40.0 0.0179 0.0179 46.0 0.0179 0.0179 52.5 0.0179 0.0179 60.0 0.0179 0.0179 69.0 0.0179 0.0179 79.0 0.0179 0.0179 90.5 0.0179 0.0179 105.5 0.0179 0.0179 123.5 0.0179 0.0179 143.0 0.0179 0.0179 163.5 0.0179 0.0179 185.0 0.0179 0.0179 208.0 0.0179 0.0179 232.5 0.0179 0.0179 258.5 0.0179 0.0179 286.0 0.0179 0.0179 331.0 0.0179 0.0179 396.0 0.0179 0.0179 468.5 0.0179 0.0179 549.5 0.0179 0.0179 639.0 0.0179 0.0179 738.0 0.0179 0.0179 847.5 0.0179 0.0179 968.5 0.0179 0.0179 1102.0 0.0179 0.0179 1249.5 0.0179 0.0179 1412.0 0.0179 0.0179 1590.5 0.0179 0.0179 1787.0 0.0179 0.0179 1944.5 0.0179 0.0179 --4.0 -3.5 117 9.0 0.0179 0.0179 11.0 0.0179 0.0179 13.5 0.0179 0.0179 16.5 0.0179 0.0179 19.5 0.0179 0.0179 22.5 0.0179 0.0179 26.0 0.0179 0.0179 30.0 0.0179 0.0179 34.5 0.0179 0.0179 40.0 0.0179 0.0179 46.0 0.0179 0.0179 52.5 0.0179 0.0179 60.0 0.0179 0.0179 69.0 0.0179 0.0179 79.0 0.0179 0.0179 90.5 0.0179 0.0179 105.5 0.0179 0.0179 123.5 0.0179 0.0179 143.0 0.0179 0.0179 163.5 0.0179 0.0179 185.0 0.0179 0.0179 208.0 0.0179 0.0179 232.5 0.0179 0.0179 258.5 0.0179 0.0179 286.0 0.0179 0.0179 331.0 0.0179 0.0179 396.0 0.0179 0.0179 468.5 0.0179 0.0179 549.5 0.0179 0.0179 639.0 0.0179 0.0179 738.0 0.0179 0.0179 847.5 0.0179 0.0179 968.5 0.0179 0.0179 1102.0 0.0179 0.0179 1249.5 0.0179 0.0179 1412.0 0.0179 0.0179 1590.5 0.0179 0.0179 1787.0 0.0179 0.0179 1944.5 0.0179 0.0179 --3.5 -3.0 117 9.0 0.0063 0.0063 11.0 0.0063 0.0063 13.5 0.0063 0.0063 16.5 0.0063 0.0063 19.5 0.0063 0.0063 22.5 0.0063 0.0063 26.0 0.0063 0.0063 30.0 0.0063 0.0063 34.5 0.0063 0.0063 40.0 0.0063 0.0063 46.0 0.0063 0.0063 52.5 0.0063 0.0063 60.0 0.0063 0.0063 69.0 0.0063 0.0063 79.0 0.0063 0.0063 90.5 0.0063 0.0063 105.5 0.0063 0.0063 123.5 0.0063 0.0063 143.0 0.0063 0.0063 163.5 0.0063 0.0063 185.0 0.0063 0.0063 208.0 0.0063 0.0063 232.5 0.0063 0.0063 258.5 0.0063 0.0063 286.0 0.0063 0.0063 331.0 0.0063 0.0063 396.0 0.0063 0.0063 468.5 0.0063 0.0063 549.5 0.0063 0.0063 639.0 0.0063 0.0063 738.0 0.0063 0.0063 847.5 0.0063 0.0063 968.5 0.0063 0.0063 1102.0 0.0063 0.0063 1249.5 0.0063 0.0063 1412.0 0.0063 0.0063 1590.5 0.0063 0.0063 1787.0 0.0063 0.0063 1944.5 0.0063 0.0063 --3.0 -2.8 117 9.0 0.0041 0.0041 11.0 0.0041 0.0041 13.5 0.0041 0.0041 16.5 0.0041 0.0041 19.5 0.0041 0.0041 22.5 0.0041 0.0041 26.0 0.0041 0.0041 30.0 0.0041 0.0041 34.5 0.0041 0.0041 40.0 0.0041 0.0041 46.0 0.0041 0.0041 52.5 0.0041 0.0041 60.0 0.0041 0.0041 69.0 0.0041 0.0041 79.0 0.0041 0.0041 90.5 0.0041 0.0041 105.5 0.0041 0.0041 123.5 0.0041 0.0041 143.0 0.0041 0.0041 163.5 0.0041 0.0041 185.0 0.0041 0.0041 208.0 0.0041 0.0041 232.5 0.0041 0.0041 258.5 0.0041 0.0041 286.0 0.0041 0.0041 331.0 0.0041 0.0041 396.0 0.0041 0.0041 468.5 0.0041 0.0041 549.5 0.0041 0.0041 639.0 0.0041 0.0041 738.0 0.0041 0.0041 847.5 0.0041 0.0041 968.5 0.0041 0.0041 1102.0 0.0041 0.0041 1249.5 0.0041 0.0041 1412.0 0.0041 0.0041 1590.5 0.0041 0.0041 1787.0 0.0041 0.0041 1944.5 0.0041 0.0041 --2.8 -2.6 117 9.0 0.0032 0.0032 11.0 0.0032 0.0032 13.5 0.0032 0.0032 16.5 0.0032 0.0032 19.5 0.0032 0.0032 22.5 0.0032 0.0032 26.0 0.0032 0.0032 30.0 0.0032 0.0032 34.5 0.0032 0.0032 40.0 0.0032 0.0032 46.0 0.0032 0.0032 52.5 0.0032 0.0032 60.0 0.0032 0.0032 69.0 0.0032 0.0032 79.0 0.0032 0.0032 90.5 0.0032 0.0032 105.5 0.0032 0.0032 123.5 0.0032 0.0032 143.0 0.0032 0.0032 163.5 0.0032 0.0032 185.0 0.0032 0.0032 208.0 0.0032 0.0032 232.5 0.0032 0.0032 258.5 0.0032 0.0032 286.0 0.0032 0.0032 331.0 0.0032 0.0032 396.0 0.0032 0.0032 468.5 0.0032 0.0032 549.5 0.0032 0.0032 639.0 0.0032 0.0032 738.0 0.0032 0.0032 847.5 0.0032 0.0032 968.5 0.0032 0.0032 1102.0 0.0032 0.0032 1249.5 0.0032 0.0032 1412.0 0.0032 0.0032 1590.5 0.0032 0.0032 1787.0 0.0032 0.0032 1944.5 0.0032 0.0032 --2.6 -2.4 117 9.0 0.0026 0.0026 11.0 0.0026 0.0026 13.5 0.0026 0.0026 16.5 0.0026 0.0026 19.5 0.0026 0.0026 22.5 0.0026 0.0026 26.0 0.0026 0.0026 30.0 0.0026 0.0026 34.5 0.0026 0.0026 40.0 0.0026 0.0026 46.0 0.0026 0.0026 52.5 0.0026 0.0026 60.0 0.0026 0.0026 69.0 0.0026 0.0026 79.0 0.0026 0.0026 90.5 0.0026 0.0026 105.5 0.0026 0.0026 123.5 0.0026 0.0026 143.0 0.0026 0.0026 163.5 0.0026 0.0026 185.0 0.0026 0.0026 208.0 0.0026 0.0026 232.5 0.0026 0.0026 258.5 0.0026 0.0026 286.0 0.0026 0.0026 331.0 0.0026 0.0026 396.0 0.0026 0.0026 468.5 0.0026 0.0026 549.5 0.0026 0.0026 639.0 0.0026 0.0026 738.0 0.0026 0.0026 847.5 0.0026 0.0026 968.5 0.0026 0.0026 1102.0 0.0026 0.0026 1249.5 0.0026 0.0026 1412.0 0.0026 0.0026 1590.5 0.0026 0.0026 1787.0 0.0026 0.0026 1944.5 0.0026 0.0026 --2.4 -2.2 117 9.0 0.0020 0.0020 11.0 0.0020 0.0020 13.5 0.0020 0.0020 16.5 0.0020 0.0020 19.5 0.0020 0.0020 22.5 0.0020 0.0020 26.0 0.0020 0.0020 30.0 0.0020 0.0020 34.5 0.0020 0.0020 40.0 0.0020 0.0020 46.0 0.0020 0.0020 52.5 0.0020 0.0020 60.0 0.0020 0.0020 69.0 0.0020 0.0020 79.0 0.0020 0.0020 90.5 0.0020 0.0020 105.5 0.0020 0.0020 123.5 0.0020 0.0020 143.0 0.0020 0.0020 163.5 0.0020 0.0020 185.0 0.0020 0.0020 208.0 0.0020 0.0020 232.5 0.0020 0.0020 258.5 0.0020 0.0020 286.0 0.0020 0.0020 331.0 0.0020 0.0020 396.0 0.0020 0.0020 468.5 0.0020 0.0020 549.5 0.0020 0.0020 639.0 0.0020 0.0020 738.0 0.0020 0.0020 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --2.2 -2.0 117 9.0 0.0016 0.0016 11.0 0.0016 0.0016 13.5 0.0016 0.0016 16.5 0.0016 0.0016 19.5 0.0016 0.0016 22.5 0.0016 0.0016 26.0 0.0016 0.0016 30.0 0.0016 0.0016 34.5 0.0016 0.0016 40.0 0.0016 0.0016 46.0 0.0016 0.0016 52.5 0.0016 0.0016 60.0 0.0016 0.0016 69.0 0.0016 0.0016 79.0 0.0016 0.0016 90.5 0.0016 0.0016 105.5 0.0016 0.0016 123.5 0.0016 0.0016 143.0 0.0016 0.0016 163.5 0.0016 0.0016 185.0 0.0016 0.0016 208.0 0.0016 0.0016 232.5 0.0016 0.0016 258.5 0.0016 0.0016 286.0 0.0016 0.0016 331.0 0.0016 0.0016 396.0 0.0016 0.0016 468.5 0.0016 0.0016 549.5 0.0016 0.0016 639.0 0.0016 0.0016 738.0 0.0016 0.0016 847.5 0.0016 0.0016 968.5 0.0016 0.0016 1102.0 0.0016 0.0016 1249.5 0.0016 0.0016 1412.0 0.0016 0.0016 1590.5 0.0016 0.0016 1787.0 0.0016 0.0016 1944.5 0.0016 0.0016 --2.0 -1.8 117 9.0 0.0012 0.0012 11.0 0.0012 0.0012 13.5 0.0012 0.0012 16.5 0.0012 0.0012 19.5 0.0012 0.0012 22.5 0.0012 0.0012 26.0 0.0012 0.0012 30.0 0.0012 0.0012 34.5 0.0012 0.0012 40.0 0.0012 0.0012 46.0 0.0012 0.0012 52.5 0.0012 0.0012 60.0 0.0012 0.0012 69.0 0.0012 0.0012 79.0 0.0012 0.0012 90.5 0.0012 0.0012 105.5 0.0012 0.0012 123.5 0.0012 0.0012 143.0 0.0012 0.0012 163.5 0.0012 0.0012 185.0 0.0012 0.0012 208.0 0.0012 0.0012 232.5 0.0012 0.0012 258.5 0.0012 0.0012 286.0 0.0012 0.0012 331.0 0.0012 0.0012 396.0 0.0012 0.0012 468.5 0.0012 0.0012 549.5 0.0012 0.0012 639.0 0.0012 0.0012 738.0 0.0012 0.0012 847.5 0.0012 0.0012 968.5 0.0012 0.0012 1102.0 0.0012 0.0012 1249.5 0.0012 0.0012 1412.0 0.0012 0.0012 1590.5 0.0012 0.0012 1787.0 0.0012 0.0012 1944.5 0.0012 0.0012 --1.8 -1.6 117 9.0 0.0009 0.0009 11.0 0.0009 0.0009 13.5 0.0009 0.0009 16.5 0.0009 0.0009 19.5 0.0009 0.0009 22.5 0.0009 0.0009 26.0 0.0009 0.0009 30.0 0.0009 0.0009 34.5 0.0009 0.0009 40.0 0.0009 0.0009 46.0 0.0009 0.0009 52.5 0.0009 0.0009 60.0 0.0009 0.0009 69.0 0.0009 0.0009 79.0 0.0009 0.0009 90.5 0.0009 0.0009 105.5 0.0009 0.0009 123.5 0.0009 0.0009 143.0 0.0009 0.0009 163.5 0.0009 0.0009 185.0 0.0009 0.0009 208.0 0.0009 0.0009 232.5 0.0009 0.0009 258.5 0.0009 0.0009 286.0 0.0009 0.0009 331.0 0.0009 0.0009 396.0 0.0009 0.0009 468.5 0.0009 0.0009 549.5 0.0009 0.0009 639.0 0.0009 0.0009 738.0 0.0009 0.0009 847.5 0.0009 0.0009 968.5 0.0009 0.0009 1102.0 0.0009 0.0009 1249.5 0.0009 0.0009 1412.0 0.0009 0.0009 1590.5 0.0009 0.0009 1787.0 0.0009 0.0009 1944.5 0.0009 0.0009 --1.6 -1.4 117 9.0 0.0007 0.0007 11.0 0.0007 0.0007 13.5 0.0007 0.0007 16.5 0.0007 0.0007 19.5 0.0007 0.0007 22.5 0.0007 0.0007 26.0 0.0007 0.0007 30.0 0.0007 0.0007 34.5 0.0007 0.0007 40.0 0.0007 0.0007 46.0 0.0007 0.0007 52.5 0.0007 0.0007 60.0 0.0007 0.0007 69.0 0.0007 0.0007 79.0 0.0007 0.0007 90.5 0.0007 0.0007 105.5 0.0007 0.0007 123.5 0.0007 0.0007 143.0 0.0007 0.0007 163.5 0.0007 0.0007 185.0 0.0007 0.0007 208.0 0.0007 0.0007 232.5 0.0007 0.0007 258.5 0.0007 0.0007 286.0 0.0007 0.0007 331.0 0.0007 0.0007 396.0 0.0007 0.0007 468.5 0.0007 0.0007 549.5 0.0007 0.0007 639.0 0.0007 0.0007 738.0 0.0007 0.0007 847.5 0.0007 0.0007 968.5 0.0007 0.0007 1102.0 0.0007 0.0007 1249.5 0.0007 0.0007 1412.0 0.0007 0.0007 1590.5 0.0007 0.0007 1787.0 0.0007 0.0007 1944.5 0.0007 0.0007 --1.4 -1.2 117 9.0 0.0005 0.0005 11.0 0.0005 0.0005 13.5 0.0005 0.0005 16.5 0.0005 0.0005 19.5 0.0005 0.0005 22.5 0.0005 0.0005 26.0 0.0005 0.0005 30.0 0.0005 0.0005 34.5 0.0005 0.0005 40.0 0.0005 0.0005 46.0 0.0005 0.0005 52.5 0.0005 0.0005 60.0 0.0005 0.0005 69.0 0.0005 0.0005 79.0 0.0005 0.0005 90.5 0.0005 0.0005 105.5 0.0005 0.0005 123.5 0.0005 0.0005 143.0 0.0005 0.0005 163.5 0.0005 0.0005 185.0 0.0005 0.0005 208.0 0.0005 0.0005 232.5 0.0005 0.0005 258.5 0.0005 0.0005 286.0 0.0005 0.0005 331.0 0.0005 0.0005 396.0 0.0005 0.0005 468.5 0.0005 0.0005 549.5 0.0005 0.0005 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1944.5 0.0005 0.0005 --1.2 -1.0 117 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --1.0 -0.8 117 9.0 0.0002 0.0002 11.0 0.0002 0.0002 13.5 0.0002 0.0002 16.5 0.0002 0.0002 19.5 0.0002 0.0002 22.5 0.0002 0.0002 26.0 0.0002 0.0002 30.0 0.0002 0.0002 34.5 0.0002 0.0002 40.0 0.0002 0.0002 46.0 0.0002 0.0002 52.5 0.0002 0.0002 60.0 0.0002 0.0002 69.0 0.0002 0.0002 79.0 0.0002 0.0002 90.5 0.0002 0.0002 105.5 0.0002 0.0002 123.5 0.0002 0.0002 143.0 0.0002 0.0002 163.5 0.0002 0.0002 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0002 0.0002 258.5 0.0002 0.0002 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0002 0.0002 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0002 0.0002 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 --0.8 -0.6 117 9.0 0.0001 0.0001 11.0 0.0001 0.0001 13.5 0.0001 0.0001 16.5 0.0001 0.0001 19.5 0.0001 0.0001 22.5 0.0001 0.0001 26.0 0.0001 0.0001 30.0 0.0001 0.0001 34.5 0.0001 0.0001 40.0 0.0001 0.0001 46.0 0.0001 0.0001 52.5 0.0001 0.0001 60.0 0.0001 0.0001 69.0 0.0001 0.0001 79.0 0.0001 0.0001 90.5 0.0001 0.0001 105.5 0.0001 0.0001 123.5 0.0001 0.0001 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --0.6 -0.4 117 9.0 0.0001 0.0001 11.0 0.0001 0.0001 13.5 0.0001 0.0001 16.5 0.0001 0.0001 19.5 0.0001 0.0001 22.5 0.0001 0.0001 26.0 0.0001 0.0001 30.0 0.0001 0.0001 34.5 0.0001 0.0001 40.0 0.0001 0.0001 46.0 0.0001 0.0001 52.5 0.0001 0.0001 60.0 0.0001 0.0001 69.0 0.0001 0.0001 79.0 0.0001 0.0001 90.5 0.0001 0.0001 105.5 0.0001 0.0001 123.5 0.0001 0.0001 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --0.4 -0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.2 0.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.0 0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.2 0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.4 0.6 117 9.0 0.0001 0.0001 11.0 0.0001 0.0001 13.5 0.0001 0.0001 16.5 0.0001 0.0001 19.5 0.0001 0.0001 22.5 0.0001 0.0001 26.0 0.0001 0.0001 30.0 0.0001 0.0001 34.5 0.0001 0.0001 40.0 0.0001 0.0001 46.0 0.0001 0.0001 52.5 0.0001 0.0001 60.0 0.0001 0.0001 69.0 0.0001 0.0001 79.0 0.0001 0.0001 90.5 0.0001 0.0001 105.5 0.0001 0.0001 123.5 0.0001 0.0001 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -0.6 0.8 117 9.0 0.0001 0.0001 11.0 0.0001 0.0001 13.5 0.0001 0.0001 16.5 0.0001 0.0001 19.5 0.0001 0.0001 22.5 0.0001 0.0001 26.0 0.0001 0.0001 30.0 0.0001 0.0001 34.5 0.0001 0.0001 40.0 0.0001 0.0001 46.0 0.0001 0.0001 52.5 0.0001 0.0001 60.0 0.0001 0.0001 69.0 0.0001 0.0001 79.0 0.0001 0.0001 90.5 0.0001 0.0001 105.5 0.0001 0.0001 123.5 0.0001 0.0001 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -0.8 1.0 117 9.0 0.0002 0.0002 11.0 0.0002 0.0002 13.5 0.0002 0.0002 16.5 0.0002 0.0002 19.5 0.0002 0.0002 22.5 0.0002 0.0002 26.0 0.0002 0.0002 30.0 0.0002 0.0002 34.5 0.0002 0.0002 40.0 0.0002 0.0002 46.0 0.0002 0.0002 52.5 0.0002 0.0002 60.0 0.0002 0.0002 69.0 0.0002 0.0002 79.0 0.0002 0.0002 90.5 0.0002 0.0002 105.5 0.0002 0.0002 123.5 0.0002 0.0002 143.0 0.0002 0.0002 163.5 0.0002 0.0002 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0002 0.0002 258.5 0.0002 0.0002 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0002 0.0002 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0002 0.0002 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 -1.0 1.2 117 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -1.2 1.4 117 9.0 0.0005 0.0005 11.0 0.0005 0.0005 13.5 0.0005 0.0005 16.5 0.0005 0.0005 19.5 0.0005 0.0005 22.5 0.0005 0.0005 26.0 0.0005 0.0005 30.0 0.0005 0.0005 34.5 0.0005 0.0005 40.0 0.0005 0.0005 46.0 0.0005 0.0005 52.5 0.0005 0.0005 60.0 0.0005 0.0005 69.0 0.0005 0.0005 79.0 0.0005 0.0005 90.5 0.0005 0.0005 105.5 0.0005 0.0005 123.5 0.0005 0.0005 143.0 0.0005 0.0005 163.5 0.0005 0.0005 185.0 0.0005 0.0005 208.0 0.0005 0.0005 232.5 0.0005 0.0005 258.5 0.0005 0.0005 286.0 0.0005 0.0005 331.0 0.0005 0.0005 396.0 0.0005 0.0005 468.5 0.0005 0.0005 549.5 0.0005 0.0005 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1944.5 0.0005 0.0005 -1.4 1.6 117 9.0 0.0007 0.0007 11.0 0.0007 0.0007 13.5 0.0007 0.0007 16.5 0.0007 0.0007 19.5 0.0007 0.0007 22.5 0.0007 0.0007 26.0 0.0007 0.0007 30.0 0.0007 0.0007 34.5 0.0007 0.0007 40.0 0.0007 0.0007 46.0 0.0007 0.0007 52.5 0.0007 0.0007 60.0 0.0007 0.0007 69.0 0.0007 0.0007 79.0 0.0007 0.0007 90.5 0.0007 0.0007 105.5 0.0007 0.0007 123.5 0.0007 0.0007 143.0 0.0007 0.0007 163.5 0.0007 0.0007 185.0 0.0007 0.0007 208.0 0.0007 0.0007 232.5 0.0007 0.0007 258.5 0.0007 0.0007 286.0 0.0007 0.0007 331.0 0.0007 0.0007 396.0 0.0007 0.0007 468.5 0.0007 0.0007 549.5 0.0007 0.0007 639.0 0.0007 0.0007 738.0 0.0007 0.0007 847.5 0.0007 0.0007 968.5 0.0007 0.0007 1102.0 0.0007 0.0007 1249.5 0.0007 0.0007 1412.0 0.0007 0.0007 1590.5 0.0007 0.0007 1787.0 0.0007 0.0007 1944.5 0.0007 0.0007 -1.6 1.8 117 9.0 0.0009 0.0009 11.0 0.0009 0.0009 13.5 0.0009 0.0009 16.5 0.0009 0.0009 19.5 0.0009 0.0009 22.5 0.0009 0.0009 26.0 0.0009 0.0009 30.0 0.0009 0.0009 34.5 0.0009 0.0009 40.0 0.0009 0.0009 46.0 0.0009 0.0009 52.5 0.0009 0.0009 60.0 0.0009 0.0009 69.0 0.0009 0.0009 79.0 0.0009 0.0009 90.5 0.0009 0.0009 105.5 0.0009 0.0009 123.5 0.0009 0.0009 143.0 0.0009 0.0009 163.5 0.0009 0.0009 185.0 0.0009 0.0009 208.0 0.0009 0.0009 232.5 0.0009 0.0009 258.5 0.0009 0.0009 286.0 0.0009 0.0009 331.0 0.0009 0.0009 396.0 0.0009 0.0009 468.5 0.0009 0.0009 549.5 0.0009 0.0009 639.0 0.0009 0.0009 738.0 0.0009 0.0009 847.5 0.0009 0.0009 968.5 0.0009 0.0009 1102.0 0.0009 0.0009 1249.5 0.0009 0.0009 1412.0 0.0009 0.0009 1590.5 0.0009 0.0009 1787.0 0.0009 0.0009 1944.5 0.0009 0.0009 -1.8 2.0 117 9.0 0.0012 0.0012 11.0 0.0012 0.0012 13.5 0.0012 0.0012 16.5 0.0012 0.0012 19.5 0.0012 0.0012 22.5 0.0012 0.0012 26.0 0.0012 0.0012 30.0 0.0012 0.0012 34.5 0.0012 0.0012 40.0 0.0012 0.0012 46.0 0.0012 0.0012 52.5 0.0012 0.0012 60.0 0.0012 0.0012 69.0 0.0012 0.0012 79.0 0.0012 0.0012 90.5 0.0012 0.0012 105.5 0.0012 0.0012 123.5 0.0012 0.0012 143.0 0.0012 0.0012 163.5 0.0012 0.0012 185.0 0.0012 0.0012 208.0 0.0012 0.0012 232.5 0.0012 0.0012 258.5 0.0012 0.0012 286.0 0.0012 0.0012 331.0 0.0012 0.0012 396.0 0.0012 0.0012 468.5 0.0012 0.0012 549.5 0.0012 0.0012 639.0 0.0012 0.0012 738.0 0.0012 0.0012 847.5 0.0012 0.0012 968.5 0.0012 0.0012 1102.0 0.0012 0.0012 1249.5 0.0012 0.0012 1412.0 0.0012 0.0012 1590.5 0.0012 0.0012 1787.0 0.0012 0.0012 1944.5 0.0012 0.0012 -2.0 2.2 117 9.0 0.0016 0.0016 11.0 0.0016 0.0016 13.5 0.0016 0.0016 16.5 0.0016 0.0016 19.5 0.0016 0.0016 22.5 0.0016 0.0016 26.0 0.0016 0.0016 30.0 0.0016 0.0016 34.5 0.0016 0.0016 40.0 0.0016 0.0016 46.0 0.0016 0.0016 52.5 0.0016 0.0016 60.0 0.0016 0.0016 69.0 0.0016 0.0016 79.0 0.0016 0.0016 90.5 0.0016 0.0016 105.5 0.0016 0.0016 123.5 0.0016 0.0016 143.0 0.0016 0.0016 163.5 0.0016 0.0016 185.0 0.0016 0.0016 208.0 0.0016 0.0016 232.5 0.0016 0.0016 258.5 0.0016 0.0016 286.0 0.0016 0.0016 331.0 0.0016 0.0016 396.0 0.0016 0.0016 468.5 0.0016 0.0016 549.5 0.0016 0.0016 639.0 0.0016 0.0016 738.0 0.0016 0.0016 847.5 0.0016 0.0016 968.5 0.0016 0.0016 1102.0 0.0016 0.0016 1249.5 0.0016 0.0016 1412.0 0.0016 0.0016 1590.5 0.0016 0.0016 1787.0 0.0016 0.0016 1944.5 0.0016 0.0016 -2.2 2.4 117 9.0 0.0020 0.0020 11.0 0.0020 0.0020 13.5 0.0020 0.0020 16.5 0.0020 0.0020 19.5 0.0020 0.0020 22.5 0.0020 0.0020 26.0 0.0020 0.0020 30.0 0.0020 0.0020 34.5 0.0020 0.0020 40.0 0.0020 0.0020 46.0 0.0020 0.0020 52.5 0.0020 0.0020 60.0 0.0020 0.0020 69.0 0.0020 0.0020 79.0 0.0020 0.0020 90.5 0.0020 0.0020 105.5 0.0020 0.0020 123.5 0.0020 0.0020 143.0 0.0020 0.0020 163.5 0.0020 0.0020 185.0 0.0020 0.0020 208.0 0.0020 0.0020 232.5 0.0020 0.0020 258.5 0.0020 0.0020 286.0 0.0020 0.0020 331.0 0.0020 0.0020 396.0 0.0020 0.0020 468.5 0.0020 0.0020 549.5 0.0020 0.0020 639.0 0.0020 0.0020 738.0 0.0020 0.0020 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -2.4 2.6 117 9.0 0.0026 0.0026 11.0 0.0026 0.0026 13.5 0.0026 0.0026 16.5 0.0026 0.0026 19.5 0.0026 0.0026 22.5 0.0026 0.0026 26.0 0.0026 0.0026 30.0 0.0026 0.0026 34.5 0.0026 0.0026 40.0 0.0026 0.0026 46.0 0.0026 0.0026 52.5 0.0026 0.0026 60.0 0.0026 0.0026 69.0 0.0026 0.0026 79.0 0.0026 0.0026 90.5 0.0026 0.0026 105.5 0.0026 0.0026 123.5 0.0026 0.0026 143.0 0.0026 0.0026 163.5 0.0026 0.0026 185.0 0.0026 0.0026 208.0 0.0026 0.0026 232.5 0.0026 0.0026 258.5 0.0026 0.0026 286.0 0.0026 0.0026 331.0 0.0026 0.0026 396.0 0.0026 0.0026 468.5 0.0026 0.0026 549.5 0.0026 0.0026 639.0 0.0026 0.0026 738.0 0.0026 0.0026 847.5 0.0026 0.0026 968.5 0.0026 0.0026 1102.0 0.0026 0.0026 1249.5 0.0026 0.0026 1412.0 0.0026 0.0026 1590.5 0.0026 0.0026 1787.0 0.0026 0.0026 1944.5 0.0026 0.0026 -2.6 2.8 117 9.0 0.0032 0.0032 11.0 0.0032 0.0032 13.5 0.0032 0.0032 16.5 0.0032 0.0032 19.5 0.0032 0.0032 22.5 0.0032 0.0032 26.0 0.0032 0.0032 30.0 0.0032 0.0032 34.5 0.0032 0.0032 40.0 0.0032 0.0032 46.0 0.0032 0.0032 52.5 0.0032 0.0032 60.0 0.0032 0.0032 69.0 0.0032 0.0032 79.0 0.0032 0.0032 90.5 0.0032 0.0032 105.5 0.0032 0.0032 123.5 0.0032 0.0032 143.0 0.0032 0.0032 163.5 0.0032 0.0032 185.0 0.0032 0.0032 208.0 0.0032 0.0032 232.5 0.0032 0.0032 258.5 0.0032 0.0032 286.0 0.0032 0.0032 331.0 0.0032 0.0032 396.0 0.0032 0.0032 468.5 0.0032 0.0032 549.5 0.0032 0.0032 639.0 0.0032 0.0032 738.0 0.0032 0.0032 847.5 0.0032 0.0032 968.5 0.0032 0.0032 1102.0 0.0032 0.0032 1249.5 0.0032 0.0032 1412.0 0.0032 0.0032 1590.5 0.0032 0.0032 1787.0 0.0032 0.0032 1944.5 0.0032 0.0032 -2.8 3.0 117 9.0 0.0041 0.0041 11.0 0.0041 0.0041 13.5 0.0041 0.0041 16.5 0.0041 0.0041 19.5 0.0041 0.0041 22.5 0.0041 0.0041 26.0 0.0041 0.0041 30.0 0.0041 0.0041 34.5 0.0041 0.0041 40.0 0.0041 0.0041 46.0 0.0041 0.0041 52.5 0.0041 0.0041 60.0 0.0041 0.0041 69.0 0.0041 0.0041 79.0 0.0041 0.0041 90.5 0.0041 0.0041 105.5 0.0041 0.0041 123.5 0.0041 0.0041 143.0 0.0041 0.0041 163.5 0.0041 0.0041 185.0 0.0041 0.0041 208.0 0.0041 0.0041 232.5 0.0041 0.0041 258.5 0.0041 0.0041 286.0 0.0041 0.0041 331.0 0.0041 0.0041 396.0 0.0041 0.0041 468.5 0.0041 0.0041 549.5 0.0041 0.0041 639.0 0.0041 0.0041 738.0 0.0041 0.0041 847.5 0.0041 0.0041 968.5 0.0041 0.0041 1102.0 0.0041 0.0041 1249.5 0.0041 0.0041 1412.0 0.0041 0.0041 1590.5 0.0041 0.0041 1787.0 0.0041 0.0041 1944.5 0.0041 0.0041 -3.0 3.5 117 9.0 0.0063 0.0063 11.0 0.0063 0.0063 13.5 0.0063 0.0063 16.5 0.0063 0.0063 19.5 0.0063 0.0063 22.5 0.0063 0.0063 26.0 0.0063 0.0063 30.0 0.0063 0.0063 34.5 0.0063 0.0063 40.0 0.0063 0.0063 46.0 0.0063 0.0063 52.5 0.0063 0.0063 60.0 0.0063 0.0063 69.0 0.0063 0.0063 79.0 0.0063 0.0063 90.5 0.0063 0.0063 105.5 0.0063 0.0063 123.5 0.0063 0.0063 143.0 0.0063 0.0063 163.5 0.0063 0.0063 185.0 0.0063 0.0063 208.0 0.0063 0.0063 232.5 0.0063 0.0063 258.5 0.0063 0.0063 286.0 0.0063 0.0063 331.0 0.0063 0.0063 396.0 0.0063 0.0063 468.5 0.0063 0.0063 549.5 0.0063 0.0063 639.0 0.0063 0.0063 738.0 0.0063 0.0063 847.5 0.0063 0.0063 968.5 0.0063 0.0063 1102.0 0.0063 0.0063 1249.5 0.0063 0.0063 1412.0 0.0063 0.0063 1590.5 0.0063 0.0063 1787.0 0.0063 0.0063 1944.5 0.0063 0.0063 -3.5 4.0 117 9.0 0.0179 0.0179 11.0 0.0179 0.0179 13.5 0.0179 0.0179 16.5 0.0179 0.0179 19.5 0.0179 0.0179 22.5 0.0179 0.0179 26.0 0.0179 0.0179 30.0 0.0179 0.0179 34.5 0.0179 0.0179 40.0 0.0179 0.0179 46.0 0.0179 0.0179 52.5 0.0179 0.0179 60.0 0.0179 0.0179 69.0 0.0179 0.0179 79.0 0.0179 0.0179 90.5 0.0179 0.0179 105.5 0.0179 0.0179 123.5 0.0179 0.0179 143.0 0.0179 0.0179 163.5 0.0179 0.0179 185.0 0.0179 0.0179 208.0 0.0179 0.0179 232.5 0.0179 0.0179 258.5 0.0179 0.0179 286.0 0.0179 0.0179 331.0 0.0179 0.0179 396.0 0.0179 0.0179 468.5 0.0179 0.0179 549.5 0.0179 0.0179 639.0 0.0179 0.0179 738.0 0.0179 0.0179 847.5 0.0179 0.0179 968.5 0.0179 0.0179 1102.0 0.0179 0.0179 1249.5 0.0179 0.0179 1412.0 0.0179 0.0179 1590.5 0.0179 0.0179 1787.0 0.0179 0.0179 1944.5 0.0179 0.0179 -4.0 4.5 117 9.0 0.0179 0.0179 11.0 0.0179 0.0179 13.5 0.0179 0.0179 16.5 0.0179 0.0179 19.5 0.0179 0.0179 22.5 0.0179 0.0179 26.0 0.0179 0.0179 30.0 0.0179 0.0179 34.5 0.0179 0.0179 40.0 0.0179 0.0179 46.0 0.0179 0.0179 52.5 0.0179 0.0179 60.0 0.0179 0.0179 69.0 0.0179 0.0179 79.0 0.0179 0.0179 90.5 0.0179 0.0179 105.5 0.0179 0.0179 123.5 0.0179 0.0179 143.0 0.0179 0.0179 163.5 0.0179 0.0179 185.0 0.0179 0.0179 208.0 0.0179 0.0179 232.5 0.0179 0.0179 258.5 0.0179 0.0179 286.0 0.0179 0.0179 331.0 0.0179 0.0179 396.0 0.0179 0.0179 468.5 0.0179 0.0179 549.5 0.0179 0.0179 639.0 0.0179 0.0179 738.0 0.0179 0.0179 847.5 0.0179 0.0179 968.5 0.0179 0.0179 1102.0 0.0179 0.0179 1249.5 0.0179 0.0179 1412.0 0.0179 0.0179 1590.5 0.0179 0.0179 1787.0 0.0179 0.0179 1944.5 0.0179 0.0179 -4.5 5.2 117 9.0 0.0179 0.0179 11.0 0.0179 0.0179 13.5 0.0179 0.0179 16.5 0.0179 0.0179 19.5 0.0179 0.0179 22.5 0.0179 0.0179 26.0 0.0179 0.0179 30.0 0.0179 0.0179 34.5 0.0179 0.0179 40.0 0.0179 0.0179 46.0 0.0179 0.0179 52.5 0.0179 0.0179 60.0 0.0179 0.0179 69.0 0.0179 0.0179 79.0 0.0179 0.0179 90.5 0.0179 0.0179 105.5 0.0179 0.0179 123.5 0.0179 0.0179 143.0 0.0179 0.0179 163.5 0.0179 0.0179 185.0 0.0179 0.0179 208.0 0.0179 0.0179 232.5 0.0179 0.0179 258.5 0.0179 0.0179 286.0 0.0179 0.0179 331.0 0.0179 0.0179 396.0 0.0179 0.0179 468.5 0.0179 0.0179 549.5 0.0179 0.0179 639.0 0.0179 0.0179 738.0 0.0179 0.0179 847.5 0.0179 0.0179 968.5 0.0179 0.0179 1102.0 0.0179 0.0179 1249.5 0.0179 0.0179 1412.0 0.0179 0.0179 1590.5 0.0179 0.0179 1787.0 0.0179 0.0179 1944.5 0.0179 0.0179 -[RelativeStatEC2] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --4.5 -4.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --4.0 -3.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --3.5 -3.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --3.0 -2.8 117 9.0 0.0030 0.0030 11.0 0.0030 0.0030 13.5 0.0030 0.0030 16.5 0.0030 0.0030 19.5 0.0030 0.0030 22.5 0.0030 0.0030 26.0 0.0030 0.0030 30.0 0.0030 0.0030 34.5 0.0030 0.0030 40.0 0.0030 0.0030 46.0 0.0030 0.0030 52.5 0.0030 0.0030 60.0 0.0030 0.0030 69.0 0.0030 0.0030 79.0 0.0030 0.0030 90.5 0.0030 0.0030 105.5 0.0030 0.0030 123.5 0.0030 0.0030 143.0 0.0030 0.0030 163.5 0.0030 0.0030 185.0 0.0030 0.0030 208.0 0.0030 0.0030 232.5 0.0030 0.0030 258.5 0.0030 0.0030 286.0 0.0030 0.0030 331.0 0.0030 0.0030 396.0 0.0030 0.0030 468.5 0.0030 0.0030 549.5 0.0030 0.0030 639.0 0.0030 0.0030 738.0 0.0030 0.0030 847.5 0.0030 0.0030 968.5 0.0030 0.0030 1102.0 0.0030 0.0030 1249.5 0.0030 0.0030 1412.0 0.0030 0.0030 1590.5 0.0030 0.0030 1787.0 0.0030 0.0030 1944.5 0.0030 0.0030 --2.8 -2.6 117 9.0 0.0050 0.0050 11.0 0.0050 0.0050 13.5 0.0050 0.0050 16.5 0.0050 0.0050 19.5 0.0050 0.0050 22.5 0.0050 0.0050 26.0 0.0050 0.0050 30.0 0.0050 0.0050 34.5 0.0050 0.0050 40.0 0.0050 0.0050 46.0 0.0050 0.0050 52.5 0.0050 0.0050 60.0 0.0050 0.0050 69.0 0.0050 0.0050 79.0 0.0050 0.0050 90.5 0.0050 0.0050 105.5 0.0050 0.0050 123.5 0.0050 0.0050 143.0 0.0050 0.0050 163.5 0.0050 0.0050 185.0 0.0050 0.0050 208.0 0.0050 0.0050 232.5 0.0050 0.0050 258.5 0.0050 0.0050 286.0 0.0050 0.0050 331.0 0.0050 0.0050 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0050 0.0050 639.0 0.0050 0.0050 738.0 0.0050 0.0050 847.5 0.0050 0.0050 968.5 0.0050 0.0050 1102.0 0.0050 0.0050 1249.5 0.0050 0.0050 1412.0 0.0050 0.0050 1590.5 0.0050 0.0050 1787.0 0.0050 0.0050 1944.5 0.0050 0.0050 --2.6 -2.4 117 9.0 0.0050 0.0050 11.0 0.0050 0.0050 13.5 0.0050 0.0050 16.5 0.0050 0.0050 19.5 0.0050 0.0050 22.5 0.0050 0.0050 26.0 0.0050 0.0050 30.0 0.0050 0.0050 34.5 0.0050 0.0050 40.0 0.0050 0.0050 46.0 0.0050 0.0050 52.5 0.0050 0.0050 60.0 0.0050 0.0050 69.0 0.0050 0.0050 79.0 0.0050 0.0050 90.5 0.0050 0.0050 105.5 0.0050 0.0050 123.5 0.0050 0.0050 143.0 0.0050 0.0050 163.5 0.0050 0.0050 185.0 0.0050 0.0050 208.0 0.0050 0.0050 232.5 0.0050 0.0050 258.5 0.0050 0.0050 286.0 0.0050 0.0050 331.0 0.0050 0.0050 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0050 0.0050 639.0 0.0050 0.0050 738.0 0.0050 0.0050 847.5 0.0050 0.0050 968.5 0.0050 0.0050 1102.0 0.0050 0.0050 1249.5 0.0050 0.0050 1412.0 0.0050 0.0050 1590.5 0.0050 0.0050 1787.0 0.0050 0.0050 1944.5 0.0050 0.0050 --2.4 -2.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.2 -2.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.0 -1.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.8 -1.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.6 -1.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.4 -1.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.2 -1.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.0 -0.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.8 -0.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.6 -0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.4 -0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.2 0.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.0 0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.2 0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.4 0.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.6 0.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.8 1.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.0 1.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.2 1.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.4 1.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.6 1.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.8 2.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.0 2.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.2 2.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.4 2.6 117 9.0 0.0050 0.0050 11.0 0.0050 0.0050 13.5 0.0050 0.0050 16.5 0.0050 0.0050 19.5 0.0050 0.0050 22.5 0.0050 0.0050 26.0 0.0050 0.0050 30.0 0.0050 0.0050 34.5 0.0050 0.0050 40.0 0.0050 0.0050 46.0 0.0050 0.0050 52.5 0.0050 0.0050 60.0 0.0050 0.0050 69.0 0.0050 0.0050 79.0 0.0050 0.0050 90.5 0.0050 0.0050 105.5 0.0050 0.0050 123.5 0.0050 0.0050 143.0 0.0050 0.0050 163.5 0.0050 0.0050 185.0 0.0050 0.0050 208.0 0.0050 0.0050 232.5 0.0050 0.0050 258.5 0.0050 0.0050 286.0 0.0050 0.0050 331.0 0.0050 0.0050 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0050 0.0050 639.0 0.0050 0.0050 738.0 0.0050 0.0050 847.5 0.0050 0.0050 968.5 0.0050 0.0050 1102.0 0.0050 0.0050 1249.5 0.0050 0.0050 1412.0 0.0050 0.0050 1590.5 0.0050 0.0050 1787.0 0.0050 0.0050 1944.5 0.0050 0.0050 -2.6 2.8 117 9.0 0.0050 0.0050 11.0 0.0050 0.0050 13.5 0.0050 0.0050 16.5 0.0050 0.0050 19.5 0.0050 0.0050 22.5 0.0050 0.0050 26.0 0.0050 0.0050 30.0 0.0050 0.0050 34.5 0.0050 0.0050 40.0 0.0050 0.0050 46.0 0.0050 0.0050 52.5 0.0050 0.0050 60.0 0.0050 0.0050 69.0 0.0050 0.0050 79.0 0.0050 0.0050 90.5 0.0050 0.0050 105.5 0.0050 0.0050 123.5 0.0050 0.0050 143.0 0.0050 0.0050 163.5 0.0050 0.0050 185.0 0.0050 0.0050 208.0 0.0050 0.0050 232.5 0.0050 0.0050 258.5 0.0050 0.0050 286.0 0.0050 0.0050 331.0 0.0050 0.0050 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0050 0.0050 639.0 0.0050 0.0050 738.0 0.0050 0.0050 847.5 0.0050 0.0050 968.5 0.0050 0.0050 1102.0 0.0050 0.0050 1249.5 0.0050 0.0050 1412.0 0.0050 0.0050 1590.5 0.0050 0.0050 1787.0 0.0050 0.0050 1944.5 0.0050 0.0050 -2.8 3.0 117 9.0 0.0030 0.0030 11.0 0.0030 0.0030 13.5 0.0030 0.0030 16.5 0.0030 0.0030 19.5 0.0030 0.0030 22.5 0.0030 0.0030 26.0 0.0030 0.0030 30.0 0.0030 0.0030 34.5 0.0030 0.0030 40.0 0.0030 0.0030 46.0 0.0030 0.0030 52.5 0.0030 0.0030 60.0 0.0030 0.0030 69.0 0.0030 0.0030 79.0 0.0030 0.0030 90.5 0.0030 0.0030 105.5 0.0030 0.0030 123.5 0.0030 0.0030 143.0 0.0030 0.0030 163.5 0.0030 0.0030 185.0 0.0030 0.0030 208.0 0.0030 0.0030 232.5 0.0030 0.0030 258.5 0.0030 0.0030 286.0 0.0030 0.0030 331.0 0.0030 0.0030 396.0 0.0030 0.0030 468.5 0.0030 0.0030 549.5 0.0030 0.0030 639.0 0.0030 0.0030 738.0 0.0030 0.0030 847.5 0.0030 0.0030 968.5 0.0030 0.0030 1102.0 0.0030 0.0030 1249.5 0.0030 0.0030 1412.0 0.0030 0.0030 1590.5 0.0030 0.0030 1787.0 0.0030 0.0030 1944.5 0.0030 0.0030 -3.0 3.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -3.5 4.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -4.0 4.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -4.5 5.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -[RelativeStatHF] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0200 0.0200 11.0 0.0200 0.0200 13.5 0.0200 0.0200 16.5 0.0200 0.0200 19.5 0.0200 0.0200 22.5 0.0200 0.0200 26.0 0.0200 0.0200 30.0 0.0200 0.0200 34.5 0.0200 0.0200 40.0 0.0200 0.0200 46.0 0.0200 0.0200 52.5 0.0200 0.0200 60.0 0.0200 0.0200 69.0 0.0200 0.0200 79.0 0.0200 0.0200 90.5 0.0200 0.0200 105.5 0.0200 0.0200 123.5 0.0200 0.0200 143.0 0.0200 0.0200 163.5 0.0200 0.0200 185.0 0.0200 0.0200 208.0 0.0200 0.0200 232.5 0.0200 0.0200 258.5 0.0200 0.0200 286.0 0.0200 0.0200 331.0 0.0200 0.0200 396.0 0.0200 0.0200 468.5 0.0200 0.0200 549.5 0.0200 0.0200 639.0 0.0200 0.0200 738.0 0.0200 0.0200 847.5 0.0200 0.0200 968.5 0.0200 0.0200 1102.0 0.0200 0.0200 1249.5 0.0200 0.0200 1412.0 0.0200 0.0200 1590.5 0.0200 0.0200 1787.0 0.0200 0.0200 1944.5 0.0200 0.0200 --4.5 -4.0 117 9.0 0.0200 0.0200 11.0 0.0200 0.0200 13.5 0.0200 0.0200 16.5 0.0200 0.0200 19.5 0.0200 0.0200 22.5 0.0200 0.0200 26.0 0.0200 0.0200 30.0 0.0200 0.0200 34.5 0.0200 0.0200 40.0 0.0200 0.0200 46.0 0.0200 0.0200 52.5 0.0200 0.0200 60.0 0.0200 0.0200 69.0 0.0200 0.0200 79.0 0.0200 0.0200 90.5 0.0200 0.0200 105.5 0.0200 0.0200 123.5 0.0200 0.0200 143.0 0.0200 0.0200 163.5 0.0200 0.0200 185.0 0.0200 0.0200 208.0 0.0200 0.0200 232.5 0.0200 0.0200 258.5 0.0200 0.0200 286.0 0.0200 0.0200 331.0 0.0200 0.0200 396.0 0.0200 0.0200 468.5 0.0200 0.0200 549.5 0.0200 0.0200 639.0 0.0200 0.0200 738.0 0.0200 0.0200 847.5 0.0200 0.0200 968.5 0.0200 0.0200 1102.0 0.0200 0.0200 1249.5 0.0200 0.0200 1412.0 0.0200 0.0200 1590.5 0.0200 0.0200 1787.0 0.0200 0.0200 1944.5 0.0200 0.0200 --4.0 -3.5 117 9.0 0.0200 0.0200 11.0 0.0200 0.0200 13.5 0.0200 0.0200 16.5 0.0200 0.0200 19.5 0.0200 0.0200 22.5 0.0200 0.0200 26.0 0.0200 0.0200 30.0 0.0200 0.0200 34.5 0.0200 0.0200 40.0 0.0200 0.0200 46.0 0.0200 0.0200 52.5 0.0200 0.0200 60.0 0.0200 0.0200 69.0 0.0200 0.0200 79.0 0.0200 0.0200 90.5 0.0200 0.0200 105.5 0.0200 0.0200 123.5 0.0200 0.0200 143.0 0.0200 0.0200 163.5 0.0200 0.0200 185.0 0.0200 0.0200 208.0 0.0200 0.0200 232.5 0.0200 0.0200 258.5 0.0200 0.0200 286.0 0.0200 0.0200 331.0 0.0200 0.0200 396.0 0.0200 0.0200 468.5 0.0200 0.0200 549.5 0.0200 0.0200 639.0 0.0200 0.0200 738.0 0.0200 0.0200 847.5 0.0200 0.0200 968.5 0.0200 0.0200 1102.0 0.0200 0.0200 1249.5 0.0200 0.0200 1412.0 0.0200 0.0200 1590.5 0.0200 0.0200 1787.0 0.0200 0.0200 1944.5 0.0200 0.0200 --3.5 -3.0 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1944.5 0.0150 0.0150 --3.0 -2.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.8 -2.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.6 -2.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.4 -2.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.2 -2.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.0 -1.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.8 -1.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.6 -1.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.4 -1.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.2 -1.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.0 -0.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.8 -0.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.6 -0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.4 -0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.2 0.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.0 0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.2 0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.4 0.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.6 0.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.8 1.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.0 1.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.2 1.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.4 1.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.6 1.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.8 2.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.0 2.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.2 2.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.4 2.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.6 2.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.8 3.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -3.0 3.5 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1944.5 0.0150 0.0150 -3.5 4.0 117 9.0 0.0200 0.0200 11.0 0.0200 0.0200 13.5 0.0200 0.0200 16.5 0.0200 0.0200 19.5 0.0200 0.0200 22.5 0.0200 0.0200 26.0 0.0200 0.0200 30.0 0.0200 0.0200 34.5 0.0200 0.0200 40.0 0.0200 0.0200 46.0 0.0200 0.0200 52.5 0.0200 0.0200 60.0 0.0200 0.0200 69.0 0.0200 0.0200 79.0 0.0200 0.0200 90.5 0.0200 0.0200 105.5 0.0200 0.0200 123.5 0.0200 0.0200 143.0 0.0200 0.0200 163.5 0.0200 0.0200 185.0 0.0200 0.0200 208.0 0.0200 0.0200 232.5 0.0200 0.0200 258.5 0.0200 0.0200 286.0 0.0200 0.0200 331.0 0.0200 0.0200 396.0 0.0200 0.0200 468.5 0.0200 0.0200 549.5 0.0200 0.0200 639.0 0.0200 0.0200 738.0 0.0200 0.0200 847.5 0.0200 0.0200 968.5 0.0200 0.0200 1102.0 0.0200 0.0200 1249.5 0.0200 0.0200 1412.0 0.0200 0.0200 1590.5 0.0200 0.0200 1787.0 0.0200 0.0200 1944.5 0.0200 0.0200 -4.0 4.5 117 9.0 0.0200 0.0200 11.0 0.0200 0.0200 13.5 0.0200 0.0200 16.5 0.0200 0.0200 19.5 0.0200 0.0200 22.5 0.0200 0.0200 26.0 0.0200 0.0200 30.0 0.0200 0.0200 34.5 0.0200 0.0200 40.0 0.0200 0.0200 46.0 0.0200 0.0200 52.5 0.0200 0.0200 60.0 0.0200 0.0200 69.0 0.0200 0.0200 79.0 0.0200 0.0200 90.5 0.0200 0.0200 105.5 0.0200 0.0200 123.5 0.0200 0.0200 143.0 0.0200 0.0200 163.5 0.0200 0.0200 185.0 0.0200 0.0200 208.0 0.0200 0.0200 232.5 0.0200 0.0200 258.5 0.0200 0.0200 286.0 0.0200 0.0200 331.0 0.0200 0.0200 396.0 0.0200 0.0200 468.5 0.0200 0.0200 549.5 0.0200 0.0200 639.0 0.0200 0.0200 738.0 0.0200 0.0200 847.5 0.0200 0.0200 968.5 0.0200 0.0200 1102.0 0.0200 0.0200 1249.5 0.0200 0.0200 1412.0 0.0200 0.0200 1590.5 0.0200 0.0200 1787.0 0.0200 0.0200 1944.5 0.0200 0.0200 -4.5 5.2 117 9.0 0.0200 0.0200 11.0 0.0200 0.0200 13.5 0.0200 0.0200 16.5 0.0200 0.0200 19.5 0.0200 0.0200 22.5 0.0200 0.0200 26.0 0.0200 0.0200 30.0 0.0200 0.0200 34.5 0.0200 0.0200 40.0 0.0200 0.0200 46.0 0.0200 0.0200 52.5 0.0200 0.0200 60.0 0.0200 0.0200 69.0 0.0200 0.0200 79.0 0.0200 0.0200 90.5 0.0200 0.0200 105.5 0.0200 0.0200 123.5 0.0200 0.0200 143.0 0.0200 0.0200 163.5 0.0200 0.0200 185.0 0.0200 0.0200 208.0 0.0200 0.0200 232.5 0.0200 0.0200 258.5 0.0200 0.0200 286.0 0.0200 0.0200 331.0 0.0200 0.0200 396.0 0.0200 0.0200 468.5 0.0200 0.0200 549.5 0.0200 0.0200 639.0 0.0200 0.0200 738.0 0.0200 0.0200 847.5 0.0200 0.0200 968.5 0.0200 0.0200 1102.0 0.0200 0.0200 1249.5 0.0200 0.0200 1412.0 0.0200 0.0200 1590.5 0.0200 0.0200 1787.0 0.0200 0.0200 1944.5 0.0200 0.0200 -[PileUpDataMC] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 -0.0641 -0.0641 11.0 -0.0504 -0.0504 13.5 -0.0398 -0.0398 16.5 -0.0318 -0.0318 19.5 -0.0264 -0.0264 22.5 -0.0226 -0.0226 26.0 -0.0194 -0.0194 30.0 -0.0167 -0.0167 34.5 -0.0144 -0.0144 40.0 -0.0123 -0.0123 46.0 -0.0106 -0.0106 52.5 -0.0093 -0.0093 60.0 -0.0081 -0.0081 69.0 -0.0070 -0.0070 79.0 -0.0061 -0.0061 90.5 -0.0053 -0.0053 105.5 -0.0045 -0.0045 123.5 -0.0039 -0.0039 143.0 -0.0033 -0.0033 163.5 -0.0029 -0.0029 185.0 -0.0026 -0.0026 208.0 -0.0023 -0.0023 232.5 -0.0020 -0.0020 258.5 -0.0018 -0.0018 286.0 -0.0017 -0.0017 331.0 -0.0014 -0.0014 396.0 -0.0012 -0.0012 468.5 -0.0010 -0.0010 549.5 -0.0009 -0.0009 639.0 -0.0007 -0.0007 738.0 -0.0006 -0.0006 847.5 -0.0006 -0.0006 968.5 -0.0006 -0.0006 1102.0 -0.0006 -0.0006 1249.5 -0.0006 -0.0006 1412.0 -0.0006 -0.0006 1590.5 -0.0006 -0.0006 1787.0 -0.0006 -0.0006 1944.5 -0.0006 -0.0006 --4.5 -4.0 117 9.0 0.0247 0.0247 11.0 0.0184 0.0184 13.5 0.0140 0.0140 16.5 0.0109 0.0109 19.5 0.0089 0.0089 22.5 0.0075 0.0075 26.0 0.0064 0.0064 30.0 0.0054 0.0054 34.5 0.0047 0.0047 40.0 0.0040 0.0040 46.0 0.0034 0.0034 52.5 0.0030 0.0030 60.0 0.0026 0.0026 69.0 0.0022 0.0022 79.0 0.0019 0.0019 90.5 0.0017 0.0017 105.5 0.0014 0.0014 123.5 0.0012 0.0012 143.0 0.0010 0.0010 163.5 0.0009 0.0009 185.0 0.0008 0.0008 208.0 0.0007 0.0007 232.5 0.0006 0.0006 258.5 0.0006 0.0006 286.0 0.0005 0.0005 331.0 0.0004 0.0004 396.0 0.0004 0.0004 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --4.0 -3.5 117 9.0 0.0866 0.0866 11.0 0.0630 0.0630 13.5 0.0470 0.0470 16.5 0.0360 0.0360 19.5 0.0292 0.0292 22.5 0.0245 0.0245 26.0 0.0207 0.0207 30.0 0.0175 0.0175 34.5 0.0150 0.0150 40.0 0.0127 0.0127 46.0 0.0109 0.0109 52.5 0.0095 0.0095 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0061 0.0061 90.5 0.0053 0.0053 105.5 0.0045 0.0045 123.5 0.0039 0.0039 143.0 0.0033 0.0033 163.5 0.0029 0.0029 185.0 0.0025 0.0025 208.0 0.0023 0.0023 232.5 0.0020 0.0020 258.5 0.0018 0.0018 286.0 0.0016 0.0016 331.0 0.0014 0.0014 396.0 0.0012 0.0012 468.5 0.0010 0.0010 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0005 0.0005 968.5 0.0005 0.0005 1102.0 0.0004 0.0004 1249.5 0.0004 0.0004 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0002 0.0002 --3.5 -3.0 117 9.0 0.2043 0.2043 11.0 0.1410 0.1410 13.5 0.1016 0.1016 16.5 0.0761 0.0761 19.5 0.0608 0.0608 22.5 0.0507 0.0507 26.0 0.0424 0.0424 30.0 0.0357 0.0357 34.5 0.0304 0.0304 40.0 0.0257 0.0257 46.0 0.0219 0.0219 52.5 0.0190 0.0190 60.0 0.0164 0.0164 69.0 0.0141 0.0141 79.0 0.0122 0.0122 90.5 0.0106 0.0106 105.5 0.0090 0.0090 123.5 0.0076 0.0076 143.0 0.0066 0.0066 163.5 0.0057 0.0057 185.0 0.0050 0.0050 208.0 0.0045 0.0045 232.5 0.0040 0.0040 258.5 0.0036 0.0036 286.0 0.0032 0.0032 331.0 0.0028 0.0028 396.0 0.0023 0.0023 468.5 0.0020 0.0020 549.5 0.0017 0.0017 639.0 0.0014 0.0014 738.0 0.0012 0.0012 847.5 0.0011 0.0011 968.5 0.0009 0.0009 1102.0 0.0008 0.0008 1249.5 0.0007 0.0007 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0005 0.0005 1944.5 0.0005 0.0005 --3.0 -2.8 117 9.0 0.2063 0.2063 11.0 0.1263 0.1263 13.5 0.0850 0.0850 16.5 0.0611 0.0611 19.5 0.0477 0.0477 22.5 0.0391 0.0391 26.0 0.0323 0.0323 30.0 0.0269 0.0269 34.5 0.0227 0.0227 40.0 0.0191 0.0191 46.0 0.0162 0.0162 52.5 0.0140 0.0140 60.0 0.0120 0.0120 69.0 0.0103 0.0103 79.0 0.0089 0.0089 90.5 0.0077 0.0077 105.5 0.0065 0.0065 123.5 0.0055 0.0055 143.0 0.0047 0.0047 163.5 0.0041 0.0041 185.0 0.0036 0.0036 208.0 0.0032 0.0032 232.5 0.0029 0.0029 258.5 0.0026 0.0026 286.0 0.0023 0.0023 331.0 0.0020 0.0020 396.0 0.0017 0.0017 468.5 0.0014 0.0014 549.5 0.0012 0.0012 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0003 0.0003 --2.8 -2.6 117 9.0 0.1737 0.1737 11.0 0.0976 0.0976 13.5 0.0630 0.0630 16.5 0.0442 0.0442 19.5 0.0341 0.0341 22.5 0.0277 0.0277 26.0 0.0228 0.0228 30.0 0.0189 0.0189 34.5 0.0159 0.0159 40.0 0.0133 0.0133 46.0 0.0113 0.0113 52.5 0.0097 0.0097 60.0 0.0083 0.0083 69.0 0.0071 0.0071 79.0 0.0061 0.0061 90.5 0.0053 0.0053 105.5 0.0045 0.0045 123.5 0.0038 0.0038 143.0 0.0033 0.0033 163.5 0.0028 0.0028 185.0 0.0025 0.0025 208.0 0.0022 0.0022 232.5 0.0020 0.0020 258.5 0.0018 0.0018 286.0 0.0016 0.0016 331.0 0.0014 0.0014 396.0 0.0011 0.0011 468.5 0.0010 0.0010 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0005 0.0005 968.5 0.0005 0.0005 1102.0 0.0004 0.0004 1249.5 0.0004 0.0004 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 --2.6 -2.4 117 9.0 0.0189 0.0189 11.0 0.0111 0.0111 13.5 0.0073 0.0073 16.5 0.0052 0.0052 19.5 0.0040 0.0040 22.5 0.0033 0.0033 26.0 0.0027 0.0027 30.0 0.0022 0.0022 34.5 0.0019 0.0019 40.0 0.0016 0.0016 46.0 0.0013 0.0013 52.5 0.0011 0.0011 60.0 0.0010 0.0010 69.0 0.0008 0.0008 79.0 0.0007 0.0007 90.5 0.0006 0.0006 105.5 0.0005 0.0005 123.5 0.0005 0.0005 143.0 0.0004 0.0004 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0002 0.0002 258.5 0.0002 0.0002 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.4 -2.2 117 9.0 -0.0222 -0.0222 11.0 -0.0150 -0.0150 13.5 -0.0107 -0.0107 16.5 -0.0080 -0.0080 19.5 -0.0063 -0.0063 22.5 -0.0053 -0.0053 26.0 -0.0044 -0.0044 30.0 -0.0037 -0.0037 34.5 -0.0031 -0.0031 40.0 -0.0026 -0.0026 46.0 -0.0023 -0.0023 52.5 -0.0020 -0.0020 60.0 -0.0017 -0.0017 69.0 -0.0014 -0.0014 79.0 -0.0013 -0.0013 90.5 -0.0011 -0.0011 105.5 -0.0009 -0.0009 123.5 -0.0008 -0.0008 143.0 -0.0007 -0.0007 163.5 -0.0006 -0.0006 185.0 -0.0005 -0.0005 208.0 -0.0005 -0.0005 232.5 -0.0004 -0.0004 258.5 -0.0004 -0.0004 286.0 -0.0003 -0.0003 331.0 -0.0003 -0.0003 396.0 -0.0002 -0.0002 468.5 -0.0002 -0.0002 549.5 -0.0002 -0.0002 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0000 -0.0000 --2.2 -2.0 117 9.0 0.0208 0.0208 11.0 0.0136 0.0136 13.5 0.0095 0.0095 16.5 0.0070 0.0070 19.5 0.0055 0.0055 22.5 0.0046 0.0046 26.0 0.0038 0.0038 30.0 0.0032 0.0032 34.5 0.0027 0.0027 40.0 0.0023 0.0023 46.0 0.0019 0.0019 52.5 0.0017 0.0017 60.0 0.0014 0.0014 69.0 0.0012 0.0012 79.0 0.0011 0.0011 90.5 0.0009 0.0009 105.5 0.0008 0.0008 123.5 0.0007 0.0007 143.0 0.0006 0.0006 163.5 0.0005 0.0005 185.0 0.0004 0.0004 208.0 0.0004 0.0004 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0002 0.0002 396.0 0.0002 0.0002 468.5 0.0002 0.0002 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.0 -1.8 117 9.0 0.0296 0.0296 11.0 0.0193 0.0193 13.5 0.0135 0.0135 16.5 0.0099 0.0099 19.5 0.0078 0.0078 22.5 0.0064 0.0064 26.0 0.0054 0.0054 30.0 0.0045 0.0045 34.5 0.0038 0.0038 40.0 0.0032 0.0032 46.0 0.0027 0.0027 52.5 0.0024 0.0024 60.0 0.0020 0.0020 69.0 0.0017 0.0017 79.0 0.0015 0.0015 90.5 0.0013 0.0013 105.5 0.0011 0.0011 123.5 0.0009 0.0009 143.0 0.0008 0.0008 163.5 0.0007 0.0007 185.0 0.0006 0.0006 208.0 0.0005 0.0005 232.5 0.0005 0.0005 258.5 0.0004 0.0004 286.0 0.0004 0.0004 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --1.8 -1.6 117 9.0 0.0215 0.0215 11.0 0.0140 0.0140 13.5 0.0097 0.0097 16.5 0.0071 0.0071 19.5 0.0056 0.0056 22.5 0.0047 0.0047 26.0 0.0039 0.0039 30.0 0.0032 0.0032 34.5 0.0027 0.0027 40.0 0.0023 0.0023 46.0 0.0020 0.0020 52.5 0.0017 0.0017 60.0 0.0015 0.0015 69.0 0.0013 0.0013 79.0 0.0011 0.0011 90.5 0.0009 0.0009 105.5 0.0008 0.0008 123.5 0.0007 0.0007 143.0 0.0006 0.0006 163.5 0.0005 0.0005 185.0 0.0004 0.0004 208.0 0.0004 0.0004 232.5 0.0004 0.0004 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0002 0.0002 396.0 0.0002 0.0002 468.5 0.0002 0.0002 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.6 -1.4 117 9.0 0.0067 0.0067 11.0 0.0044 0.0044 13.5 0.0030 0.0030 16.5 0.0022 0.0022 19.5 0.0018 0.0018 22.5 0.0015 0.0015 26.0 0.0012 0.0012 30.0 0.0010 0.0010 34.5 0.0009 0.0009 40.0 0.0007 0.0007 46.0 0.0006 0.0006 52.5 0.0005 0.0005 60.0 0.0005 0.0005 69.0 0.0004 0.0004 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0002 0.0002 143.0 0.0002 0.0002 163.5 0.0002 0.0002 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.4 -1.2 117 9.0 -0.0032 -0.0032 11.0 -0.0021 -0.0021 13.5 -0.0015 -0.0015 16.5 -0.0011 -0.0011 19.5 -0.0009 -0.0009 22.5 -0.0007 -0.0007 26.0 -0.0006 -0.0006 30.0 -0.0005 -0.0005 34.5 -0.0004 -0.0004 40.0 -0.0003 -0.0003 46.0 -0.0003 -0.0003 52.5 -0.0003 -0.0003 60.0 -0.0002 -0.0002 69.0 -0.0002 -0.0002 79.0 -0.0002 -0.0002 90.5 -0.0001 -0.0001 105.5 -0.0001 -0.0001 123.5 -0.0001 -0.0001 143.0 -0.0001 -0.0001 163.5 -0.0001 -0.0001 185.0 -0.0001 -0.0001 208.0 -0.0001 -0.0001 232.5 -0.0001 -0.0001 258.5 -0.0000 -0.0000 286.0 -0.0000 -0.0000 331.0 -0.0000 -0.0000 396.0 -0.0000 -0.0000 468.5 -0.0000 -0.0000 549.5 -0.0000 -0.0000 639.0 -0.0000 -0.0000 738.0 -0.0000 -0.0000 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 --1.2 -1.0 117 9.0 -0.0054 -0.0054 11.0 -0.0035 -0.0035 13.5 -0.0025 -0.0025 16.5 -0.0018 -0.0018 19.5 -0.0014 -0.0014 22.5 -0.0012 -0.0012 26.0 -0.0010 -0.0010 30.0 -0.0008 -0.0008 34.5 -0.0007 -0.0007 40.0 -0.0006 -0.0006 46.0 -0.0005 -0.0005 52.5 -0.0004 -0.0004 60.0 -0.0004 -0.0004 69.0 -0.0003 -0.0003 79.0 -0.0003 -0.0003 90.5 -0.0002 -0.0002 105.5 -0.0002 -0.0002 123.5 -0.0002 -0.0002 143.0 -0.0001 -0.0001 163.5 -0.0001 -0.0001 185.0 -0.0001 -0.0001 208.0 -0.0001 -0.0001 232.5 -0.0001 -0.0001 258.5 -0.0001 -0.0001 286.0 -0.0001 -0.0001 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0000 -0.0000 549.5 -0.0000 -0.0000 639.0 -0.0000 -0.0000 738.0 -0.0000 -0.0000 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 --1.0 -0.8 117 9.0 -0.0047 -0.0047 11.0 -0.0031 -0.0031 13.5 -0.0022 -0.0022 16.5 -0.0016 -0.0016 19.5 -0.0012 -0.0012 22.5 -0.0010 -0.0010 26.0 -0.0009 -0.0009 30.0 -0.0007 -0.0007 34.5 -0.0006 -0.0006 40.0 -0.0005 -0.0005 46.0 -0.0004 -0.0004 52.5 -0.0004 -0.0004 60.0 -0.0003 -0.0003 69.0 -0.0003 -0.0003 79.0 -0.0002 -0.0002 90.5 -0.0002 -0.0002 105.5 -0.0002 -0.0002 123.5 -0.0002 -0.0002 143.0 -0.0001 -0.0001 163.5 -0.0001 -0.0001 185.0 -0.0001 -0.0001 208.0 -0.0001 -0.0001 232.5 -0.0001 -0.0001 258.5 -0.0001 -0.0001 286.0 -0.0001 -0.0001 331.0 -0.0001 -0.0001 396.0 -0.0000 -0.0000 468.5 -0.0000 -0.0000 549.5 -0.0000 -0.0000 639.0 -0.0000 -0.0000 738.0 -0.0000 -0.0000 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 --0.8 -0.6 117 9.0 -0.0002 -0.0002 11.0 -0.0002 -0.0002 13.5 -0.0001 -0.0001 16.5 -0.0001 -0.0001 19.5 -0.0001 -0.0001 22.5 -0.0001 -0.0001 26.0 -0.0000 -0.0000 30.0 -0.0000 -0.0000 34.5 -0.0000 -0.0000 40.0 -0.0000 -0.0000 46.0 -0.0000 -0.0000 52.5 -0.0000 -0.0000 60.0 -0.0000 -0.0000 69.0 -0.0000 -0.0000 79.0 -0.0000 -0.0000 90.5 -0.0000 -0.0000 105.5 -0.0000 -0.0000 123.5 -0.0000 -0.0000 143.0 -0.0000 -0.0000 163.5 -0.0000 -0.0000 185.0 -0.0000 -0.0000 208.0 -0.0000 -0.0000 232.5 -0.0000 -0.0000 258.5 -0.0000 -0.0000 286.0 -0.0000 -0.0000 331.0 -0.0000 -0.0000 396.0 -0.0000 -0.0000 468.5 -0.0000 -0.0000 549.5 -0.0000 -0.0000 639.0 -0.0000 -0.0000 738.0 -0.0000 -0.0000 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 --0.6 -0.4 117 9.0 0.0053 0.0053 11.0 0.0034 0.0034 13.5 0.0023 0.0023 16.5 0.0017 0.0017 19.5 0.0013 0.0013 22.5 0.0011 0.0011 26.0 0.0009 0.0009 30.0 0.0008 0.0008 34.5 0.0006 0.0006 40.0 0.0005 0.0005 46.0 0.0005 0.0005 52.5 0.0004 0.0004 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0002 0.0002 105.5 0.0002 0.0002 123.5 0.0002 0.0002 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.4 -0.2 117 9.0 0.0082 0.0082 11.0 0.0052 0.0052 13.5 0.0035 0.0035 16.5 0.0026 0.0026 19.5 0.0020 0.0020 22.5 0.0016 0.0016 26.0 0.0014 0.0014 30.0 0.0011 0.0011 34.5 0.0010 0.0010 40.0 0.0008 0.0008 46.0 0.0007 0.0007 52.5 0.0006 0.0006 60.0 0.0005 0.0005 69.0 0.0004 0.0004 79.0 0.0004 0.0004 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0002 0.0002 143.0 0.0002 0.0002 163.5 0.0002 0.0002 185.0 0.0002 0.0002 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.2 0.0 117 9.0 0.0114 0.0114 11.0 0.0071 0.0071 13.5 0.0048 0.0048 16.5 0.0035 0.0035 19.5 0.0027 0.0027 22.5 0.0022 0.0022 26.0 0.0018 0.0018 30.0 0.0015 0.0015 34.5 0.0013 0.0013 40.0 0.0011 0.0011 46.0 0.0009 0.0009 52.5 0.0008 0.0008 60.0 0.0007 0.0007 69.0 0.0006 0.0006 79.0 0.0005 0.0005 90.5 0.0004 0.0004 105.5 0.0004 0.0004 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0002 0.0002 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0002 0.0002 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.0 0.2 117 9.0 0.0109 0.0109 11.0 0.0067 0.0067 13.5 0.0046 0.0046 16.5 0.0033 0.0033 19.5 0.0026 0.0026 22.5 0.0021 0.0021 26.0 0.0017 0.0017 30.0 0.0015 0.0015 34.5 0.0012 0.0012 40.0 0.0010 0.0010 46.0 0.0009 0.0009 52.5 0.0008 0.0008 60.0 0.0006 0.0006 69.0 0.0006 0.0006 79.0 0.0005 0.0005 90.5 0.0004 0.0004 105.5 0.0004 0.0004 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0002 0.0002 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0002 0.0002 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.2 0.4 117 9.0 0.0063 0.0063 11.0 0.0039 0.0039 13.5 0.0027 0.0027 16.5 0.0019 0.0019 19.5 0.0015 0.0015 22.5 0.0012 0.0012 26.0 0.0010 0.0010 30.0 0.0009 0.0009 34.5 0.0007 0.0007 40.0 0.0006 0.0006 46.0 0.0005 0.0005 52.5 0.0004 0.0004 60.0 0.0004 0.0004 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0002 0.0002 105.5 0.0002 0.0002 123.5 0.0002 0.0002 143.0 0.0002 0.0002 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.4 0.6 117 9.0 0.0031 0.0031 11.0 0.0019 0.0019 13.5 0.0013 0.0013 16.5 0.0010 0.0010 19.5 0.0008 0.0008 22.5 0.0006 0.0006 26.0 0.0005 0.0005 30.0 0.0004 0.0004 34.5 0.0004 0.0004 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0002 0.0002 60.0 0.0002 0.0002 69.0 0.0002 0.0002 79.0 0.0001 0.0001 90.5 0.0001 0.0001 105.5 0.0001 0.0001 123.5 0.0001 0.0001 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.6 0.8 117 9.0 -0.0034 -0.0034 11.0 -0.0022 -0.0022 13.5 -0.0015 -0.0015 16.5 -0.0011 -0.0011 19.5 -0.0008 -0.0008 22.5 -0.0007 -0.0007 26.0 -0.0006 -0.0006 30.0 -0.0005 -0.0005 34.5 -0.0004 -0.0004 40.0 -0.0003 -0.0003 46.0 -0.0003 -0.0003 52.5 -0.0003 -0.0003 60.0 -0.0002 -0.0002 69.0 -0.0002 -0.0002 79.0 -0.0002 -0.0002 90.5 -0.0001 -0.0001 105.5 -0.0001 -0.0001 123.5 -0.0001 -0.0001 143.0 -0.0001 -0.0001 163.5 -0.0001 -0.0001 185.0 -0.0001 -0.0001 208.0 -0.0001 -0.0001 232.5 -0.0001 -0.0001 258.5 -0.0000 -0.0000 286.0 -0.0000 -0.0000 331.0 -0.0000 -0.0000 396.0 -0.0000 -0.0000 468.5 -0.0000 -0.0000 549.5 -0.0000 -0.0000 639.0 -0.0000 -0.0000 738.0 -0.0000 -0.0000 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 -0.8 1.0 117 9.0 -0.0038 -0.0038 11.0 -0.0024 -0.0024 13.5 -0.0016 -0.0016 16.5 -0.0012 -0.0012 19.5 -0.0009 -0.0009 22.5 -0.0008 -0.0008 26.0 -0.0006 -0.0006 30.0 -0.0005 -0.0005 34.5 -0.0004 -0.0004 40.0 -0.0004 -0.0004 46.0 -0.0003 -0.0003 52.5 -0.0003 -0.0003 60.0 -0.0002 -0.0002 69.0 -0.0002 -0.0002 79.0 -0.0002 -0.0002 90.5 -0.0002 -0.0002 105.5 -0.0001 -0.0001 123.5 -0.0001 -0.0001 143.0 -0.0001 -0.0001 163.5 -0.0001 -0.0001 185.0 -0.0001 -0.0001 208.0 -0.0001 -0.0001 232.5 -0.0001 -0.0001 258.5 -0.0001 -0.0001 286.0 -0.0000 -0.0000 331.0 -0.0000 -0.0000 396.0 -0.0000 -0.0000 468.5 -0.0000 -0.0000 549.5 -0.0000 -0.0000 639.0 -0.0000 -0.0000 738.0 -0.0000 -0.0000 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 -1.0 1.2 117 9.0 -0.0058 -0.0058 11.0 -0.0036 -0.0036 13.5 -0.0025 -0.0025 16.5 -0.0018 -0.0018 19.5 -0.0014 -0.0014 22.5 -0.0011 -0.0011 26.0 -0.0009 -0.0009 30.0 -0.0008 -0.0008 34.5 -0.0007 -0.0007 40.0 -0.0006 -0.0006 46.0 -0.0005 -0.0005 52.5 -0.0004 -0.0004 60.0 -0.0004 -0.0004 69.0 -0.0003 -0.0003 79.0 -0.0003 -0.0003 90.5 -0.0002 -0.0002 105.5 -0.0002 -0.0002 123.5 -0.0002 -0.0002 143.0 -0.0001 -0.0001 163.5 -0.0001 -0.0001 185.0 -0.0001 -0.0001 208.0 -0.0001 -0.0001 232.5 -0.0001 -0.0001 258.5 -0.0001 -0.0001 286.0 -0.0001 -0.0001 331.0 -0.0001 -0.0001 396.0 -0.0000 -0.0000 468.5 -0.0000 -0.0000 549.5 -0.0000 -0.0000 639.0 -0.0000 -0.0000 738.0 -0.0000 -0.0000 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 -1.2 1.4 117 9.0 -0.0006 -0.0006 11.0 -0.0004 -0.0004 13.5 -0.0003 -0.0003 16.5 -0.0002 -0.0002 19.5 -0.0001 -0.0001 22.5 -0.0001 -0.0001 26.0 -0.0001 -0.0001 30.0 -0.0001 -0.0001 34.5 -0.0001 -0.0001 40.0 -0.0001 -0.0001 46.0 -0.0001 -0.0001 52.5 -0.0000 -0.0000 60.0 -0.0000 -0.0000 69.0 -0.0000 -0.0000 79.0 -0.0000 -0.0000 90.5 -0.0000 -0.0000 105.5 -0.0000 -0.0000 123.5 -0.0000 -0.0000 143.0 -0.0000 -0.0000 163.5 -0.0000 -0.0000 185.0 -0.0000 -0.0000 208.0 -0.0000 -0.0000 232.5 -0.0000 -0.0000 258.5 -0.0000 -0.0000 286.0 -0.0000 -0.0000 331.0 -0.0000 -0.0000 396.0 -0.0000 -0.0000 468.5 -0.0000 -0.0000 549.5 -0.0000 -0.0000 639.0 -0.0000 -0.0000 738.0 -0.0000 -0.0000 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 -1.4 1.6 117 9.0 0.0185 0.0185 11.0 0.0114 0.0114 13.5 0.0078 0.0078 16.5 0.0056 0.0056 19.5 0.0044 0.0044 22.5 0.0036 0.0036 26.0 0.0030 0.0030 30.0 0.0025 0.0025 34.5 0.0021 0.0021 40.0 0.0018 0.0018 46.0 0.0015 0.0015 52.5 0.0013 0.0013 60.0 0.0011 0.0011 69.0 0.0010 0.0010 79.0 0.0008 0.0008 90.5 0.0007 0.0007 105.5 0.0006 0.0006 123.5 0.0005 0.0005 143.0 0.0004 0.0004 163.5 0.0004 0.0004 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0002 0.0002 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0002 0.0002 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.6 1.8 117 9.0 0.0369 0.0369 11.0 0.0228 0.0228 13.5 0.0154 0.0154 16.5 0.0111 0.0111 19.5 0.0087 0.0087 22.5 0.0071 0.0071 26.0 0.0059 0.0059 30.0 0.0049 0.0049 34.5 0.0042 0.0042 40.0 0.0035 0.0035 46.0 0.0030 0.0030 52.5 0.0026 0.0026 60.0 0.0022 0.0022 69.0 0.0019 0.0019 79.0 0.0016 0.0016 90.5 0.0014 0.0014 105.5 0.0012 0.0012 123.5 0.0010 0.0010 143.0 0.0009 0.0009 163.5 0.0008 0.0008 185.0 0.0007 0.0007 208.0 0.0006 0.0006 232.5 0.0005 0.0005 258.5 0.0005 0.0005 286.0 0.0004 0.0004 331.0 0.0004 0.0004 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -1.8 2.0 117 9.0 0.0387 0.0387 11.0 0.0237 0.0237 13.5 0.0160 0.0160 16.5 0.0115 0.0115 19.5 0.0090 0.0090 22.5 0.0073 0.0073 26.0 0.0061 0.0061 30.0 0.0051 0.0051 34.5 0.0043 0.0043 40.0 0.0036 0.0036 46.0 0.0030 0.0030 52.5 0.0026 0.0026 60.0 0.0023 0.0023 69.0 0.0019 0.0019 79.0 0.0017 0.0017 90.5 0.0014 0.0014 105.5 0.0012 0.0012 123.5 0.0010 0.0010 143.0 0.0009 0.0009 163.5 0.0008 0.0008 185.0 0.0007 0.0007 208.0 0.0006 0.0006 232.5 0.0005 0.0005 258.5 0.0005 0.0005 286.0 0.0004 0.0004 331.0 0.0004 0.0004 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -2.0 2.2 117 9.0 0.0077 0.0077 11.0 0.0049 0.0049 13.5 0.0033 0.0033 16.5 0.0024 0.0024 19.5 0.0019 0.0019 22.5 0.0016 0.0016 26.0 0.0013 0.0013 30.0 0.0011 0.0011 34.5 0.0009 0.0009 40.0 0.0008 0.0008 46.0 0.0007 0.0007 52.5 0.0006 0.0006 60.0 0.0005 0.0005 69.0 0.0004 0.0004 79.0 0.0004 0.0004 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0002 0.0002 143.0 0.0002 0.0002 163.5 0.0002 0.0002 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.2 2.4 117 9.0 -0.0753 -0.0753 11.0 -0.0469 -0.0469 13.5 -0.0319 -0.0319 16.5 -0.0231 -0.0231 19.5 -0.0181 -0.0181 22.5 -0.0148 -0.0148 26.0 -0.0123 -0.0123 30.0 -0.0103 -0.0103 34.5 -0.0087 -0.0087 40.0 -0.0073 -0.0073 46.0 -0.0062 -0.0062 52.5 -0.0053 -0.0053 60.0 -0.0046 -0.0046 69.0 -0.0039 -0.0039 79.0 -0.0034 -0.0034 90.5 -0.0029 -0.0029 105.5 -0.0025 -0.0025 123.5 -0.0021 -0.0021 143.0 -0.0018 -0.0018 163.5 -0.0016 -0.0016 185.0 -0.0014 -0.0014 208.0 -0.0012 -0.0012 232.5 -0.0011 -0.0011 258.5 -0.0010 -0.0010 286.0 -0.0009 -0.0009 331.0 -0.0008 -0.0008 396.0 -0.0006 -0.0006 468.5 -0.0005 -0.0005 549.5 -0.0005 -0.0005 639.0 -0.0004 -0.0004 738.0 -0.0003 -0.0003 847.5 -0.0003 -0.0003 968.5 -0.0003 -0.0003 1102.0 -0.0002 -0.0002 1249.5 -0.0002 -0.0002 1412.0 -0.0002 -0.0002 1590.5 -0.0002 -0.0002 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 -2.4 2.6 117 9.0 0.1581 0.1581 11.0 0.0765 0.0765 13.5 0.0465 0.0465 16.5 0.0316 0.0316 19.5 0.0239 0.0239 22.5 0.0193 0.0193 26.0 0.0157 0.0157 30.0 0.0129 0.0129 34.5 0.0108 0.0108 40.0 0.0090 0.0090 46.0 0.0076 0.0076 52.5 0.0065 0.0065 60.0 0.0056 0.0056 69.0 0.0048 0.0048 79.0 0.0041 0.0041 90.5 0.0036 0.0036 105.5 0.0030 0.0030 123.5 0.0025 0.0025 143.0 0.0022 0.0022 163.5 0.0019 0.0019 185.0 0.0017 0.0017 208.0 0.0015 0.0015 232.5 0.0013 0.0013 258.5 0.0012 0.0012 286.0 0.0011 0.0011 331.0 0.0009 0.0009 396.0 0.0008 0.0008 468.5 0.0006 0.0006 549.5 0.0005 0.0005 639.0 0.0005 0.0005 738.0 0.0004 0.0004 847.5 0.0004 0.0004 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0002 0.0002 1412.0 0.0002 0.0002 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 -2.6 2.8 117 9.0 0.2502 0.2502 11.0 0.1351 0.1351 13.5 0.0858 0.0858 16.5 0.0597 0.0597 19.5 0.0457 0.0457 22.5 0.0371 0.0371 26.0 0.0304 0.0304 30.0 0.0252 0.0252 34.5 0.0211 0.0211 40.0 0.0176 0.0176 46.0 0.0149 0.0149 52.5 0.0128 0.0128 60.0 0.0110 0.0110 69.0 0.0094 0.0094 79.0 0.0081 0.0081 90.5 0.0070 0.0070 105.5 0.0059 0.0059 123.5 0.0050 0.0050 143.0 0.0043 0.0043 163.5 0.0037 0.0037 185.0 0.0033 0.0033 208.0 0.0029 0.0029 232.5 0.0026 0.0026 258.5 0.0023 0.0023 286.0 0.0021 0.0021 331.0 0.0018 0.0018 396.0 0.0015 0.0015 468.5 0.0013 0.0013 549.5 0.0011 0.0011 639.0 0.0009 0.0009 738.0 0.0008 0.0008 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -2.8 3.0 117 9.0 0.2827 0.2827 11.0 0.1671 0.1671 13.5 0.1105 0.1105 16.5 0.0786 0.0786 19.5 0.0610 0.0610 22.5 0.0498 0.0498 26.0 0.0411 0.0411 30.0 0.0342 0.0342 34.5 0.0288 0.0288 40.0 0.0241 0.0241 46.0 0.0205 0.0205 52.5 0.0176 0.0176 60.0 0.0152 0.0152 69.0 0.0130 0.0130 79.0 0.0112 0.0112 90.5 0.0097 0.0097 105.5 0.0082 0.0082 123.5 0.0070 0.0070 143.0 0.0060 0.0060 163.5 0.0052 0.0052 185.0 0.0046 0.0046 208.0 0.0040 0.0040 232.5 0.0036 0.0036 258.5 0.0032 0.0032 286.0 0.0029 0.0029 331.0 0.0025 0.0025 396.0 0.0021 0.0021 468.5 0.0018 0.0018 549.5 0.0015 0.0015 639.0 0.0013 0.0013 738.0 0.0011 0.0011 847.5 0.0010 0.0010 968.5 0.0008 0.0008 1102.0 0.0007 0.0007 1249.5 0.0007 0.0007 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1944.5 0.0004 0.0004 -3.0 3.5 117 9.0 0.2043 0.2043 11.0 0.1410 0.1410 13.5 0.1016 0.1016 16.5 0.0761 0.0761 19.5 0.0608 0.0608 22.5 0.0507 0.0507 26.0 0.0424 0.0424 30.0 0.0357 0.0357 34.5 0.0304 0.0304 40.0 0.0257 0.0257 46.0 0.0219 0.0219 52.5 0.0190 0.0190 60.0 0.0164 0.0164 69.0 0.0141 0.0141 79.0 0.0122 0.0122 90.5 0.0106 0.0106 105.5 0.0090 0.0090 123.5 0.0076 0.0076 143.0 0.0066 0.0066 163.5 0.0057 0.0057 185.0 0.0050 0.0050 208.0 0.0045 0.0045 232.5 0.0040 0.0040 258.5 0.0036 0.0036 286.0 0.0032 0.0032 331.0 0.0028 0.0028 396.0 0.0023 0.0023 468.5 0.0020 0.0020 549.5 0.0017 0.0017 639.0 0.0014 0.0014 738.0 0.0012 0.0012 847.5 0.0011 0.0011 968.5 0.0009 0.0009 1102.0 0.0008 0.0008 1249.5 0.0007 0.0007 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0005 0.0005 1944.5 0.0005 0.0005 -3.5 4.0 117 9.0 0.0866 0.0866 11.0 0.0630 0.0630 13.5 0.0470 0.0470 16.5 0.0360 0.0360 19.5 0.0292 0.0292 22.5 0.0245 0.0245 26.0 0.0207 0.0207 30.0 0.0175 0.0175 34.5 0.0150 0.0150 40.0 0.0127 0.0127 46.0 0.0109 0.0109 52.5 0.0095 0.0095 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0061 0.0061 90.5 0.0053 0.0053 105.5 0.0045 0.0045 123.5 0.0039 0.0039 143.0 0.0033 0.0033 163.5 0.0029 0.0029 185.0 0.0025 0.0025 208.0 0.0023 0.0023 232.5 0.0020 0.0020 258.5 0.0018 0.0018 286.0 0.0016 0.0016 331.0 0.0014 0.0014 396.0 0.0012 0.0012 468.5 0.0010 0.0010 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0005 0.0005 968.5 0.0005 0.0005 1102.0 0.0004 0.0004 1249.5 0.0004 0.0004 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0002 0.0002 -4.0 4.5 117 9.0 0.0247 0.0247 11.0 0.0184 0.0184 13.5 0.0140 0.0140 16.5 0.0109 0.0109 19.5 0.0089 0.0089 22.5 0.0075 0.0075 26.0 0.0064 0.0064 30.0 0.0054 0.0054 34.5 0.0047 0.0047 40.0 0.0040 0.0040 46.0 0.0034 0.0034 52.5 0.0030 0.0030 60.0 0.0026 0.0026 69.0 0.0022 0.0022 79.0 0.0019 0.0019 90.5 0.0017 0.0017 105.5 0.0014 0.0014 123.5 0.0012 0.0012 143.0 0.0010 0.0010 163.5 0.0009 0.0009 185.0 0.0008 0.0008 208.0 0.0007 0.0007 232.5 0.0006 0.0006 258.5 0.0006 0.0006 286.0 0.0005 0.0005 331.0 0.0004 0.0004 396.0 0.0004 0.0004 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -4.5 5.2 117 9.0 -0.0641 -0.0641 11.0 -0.0504 -0.0504 13.5 -0.0398 -0.0398 16.5 -0.0318 -0.0318 19.5 -0.0264 -0.0264 22.5 -0.0226 -0.0226 26.0 -0.0194 -0.0194 30.0 -0.0167 -0.0167 34.5 -0.0144 -0.0144 40.0 -0.0123 -0.0123 46.0 -0.0106 -0.0106 52.5 -0.0093 -0.0093 60.0 -0.0081 -0.0081 69.0 -0.0070 -0.0070 79.0 -0.0061 -0.0061 90.5 -0.0053 -0.0053 105.5 -0.0045 -0.0045 123.5 -0.0039 -0.0039 143.0 -0.0033 -0.0033 163.5 -0.0029 -0.0029 185.0 -0.0026 -0.0026 208.0 -0.0023 -0.0023 232.5 -0.0020 -0.0020 258.5 -0.0018 -0.0018 286.0 -0.0017 -0.0017 331.0 -0.0014 -0.0014 396.0 -0.0012 -0.0012 468.5 -0.0010 -0.0010 549.5 -0.0009 -0.0009 639.0 -0.0007 -0.0007 738.0 -0.0006 -0.0006 847.5 -0.0006 -0.0006 968.5 -0.0006 -0.0006 1102.0 -0.0006 -0.0006 1249.5 -0.0006 -0.0006 1412.0 -0.0006 -0.0006 1590.5 -0.0006 -0.0006 1787.0 -0.0006 -0.0006 1944.5 -0.0006 -0.0006 -[PileUpOOT] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0020 0.0020 11.0 0.0016 0.0016 13.5 0.0013 0.0013 16.5 0.0011 0.0011 19.5 0.0009 0.0009 22.5 0.0008 0.0008 26.0 0.0007 0.0007 30.0 0.0006 0.0006 34.5 0.0005 0.0005 40.0 0.0005 0.0005 46.0 0.0004 0.0004 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0002 0.0002 90.5 0.0002 0.0002 105.5 0.0002 0.0002 123.5 0.0001 0.0001 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --4.5 -4.0 117 9.0 0.0032 0.0032 11.0 0.0027 0.0027 13.5 0.0022 0.0022 16.5 0.0018 0.0018 19.5 0.0015 0.0015 22.5 0.0013 0.0013 26.0 0.0011 0.0011 30.0 0.0010 0.0010 34.5 0.0008 0.0008 40.0 0.0007 0.0007 46.0 0.0006 0.0006 52.5 0.0006 0.0006 60.0 0.0005 0.0005 69.0 0.0004 0.0004 79.0 0.0004 0.0004 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0002 0.0002 143.0 0.0002 0.0002 163.5 0.0002 0.0002 185.0 0.0002 0.0002 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --4.0 -3.5 117 9.0 0.0039 0.0039 11.0 0.0032 0.0032 13.5 0.0026 0.0026 16.5 0.0022 0.0022 19.5 0.0018 0.0018 22.5 0.0016 0.0016 26.0 0.0014 0.0014 30.0 0.0012 0.0012 34.5 0.0010 0.0010 40.0 0.0009 0.0009 46.0 0.0008 0.0008 52.5 0.0007 0.0007 60.0 0.0006 0.0006 69.0 0.0005 0.0005 79.0 0.0004 0.0004 90.5 0.0004 0.0004 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0002 0.0002 163.5 0.0002 0.0002 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0002 0.0002 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --3.5 -3.0 117 9.0 0.0116 0.0116 11.0 0.0095 0.0095 13.5 0.0077 0.0077 16.5 0.0063 0.0063 19.5 0.0053 0.0053 22.5 0.0046 0.0046 26.0 0.0040 0.0040 30.0 0.0035 0.0035 34.5 0.0030 0.0030 40.0 0.0026 0.0026 46.0 0.0023 0.0023 52.5 0.0020 0.0020 60.0 0.0017 0.0017 69.0 0.0015 0.0015 79.0 0.0013 0.0013 90.5 0.0012 0.0012 105.5 0.0010 0.0010 123.5 0.0008 0.0008 143.0 0.0007 0.0007 163.5 0.0006 0.0006 185.0 0.0006 0.0006 208.0 0.0005 0.0005 232.5 0.0004 0.0004 258.5 0.0004 0.0004 286.0 0.0004 0.0004 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --3.0 -2.8 117 9.0 0.0277 0.0277 11.0 0.0227 0.0227 13.5 0.0185 0.0185 16.5 0.0151 0.0151 19.5 0.0128 0.0128 22.5 0.0111 0.0111 26.0 0.0096 0.0096 30.0 0.0083 0.0083 34.5 0.0072 0.0072 40.0 0.0062 0.0062 46.0 0.0054 0.0054 52.5 0.0047 0.0047 60.0 0.0042 0.0042 69.0 0.0036 0.0036 79.0 0.0032 0.0032 90.5 0.0028 0.0028 105.5 0.0024 0.0024 123.5 0.0020 0.0020 143.0 0.0017 0.0017 163.5 0.0015 0.0015 185.0 0.0013 0.0013 208.0 0.0012 0.0012 232.5 0.0011 0.0011 258.5 0.0010 0.0010 286.0 0.0009 0.0009 331.0 0.0008 0.0008 396.0 0.0006 0.0006 468.5 0.0005 0.0005 549.5 0.0005 0.0005 639.0 0.0004 0.0004 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0002 0.0002 1590.5 0.0002 0.0002 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --2.8 -2.6 117 9.0 0.0331 0.0331 11.0 0.0271 0.0271 13.5 0.0221 0.0221 16.5 0.0180 0.0180 19.5 0.0153 0.0153 22.5 0.0132 0.0132 26.0 0.0115 0.0115 30.0 0.0099 0.0099 34.5 0.0086 0.0086 40.0 0.0074 0.0074 46.0 0.0065 0.0065 52.5 0.0057 0.0057 60.0 0.0050 0.0050 69.0 0.0043 0.0043 79.0 0.0038 0.0038 90.5 0.0033 0.0033 105.5 0.0028 0.0028 123.5 0.0024 0.0024 143.0 0.0021 0.0021 163.5 0.0018 0.0018 185.0 0.0016 0.0016 208.0 0.0014 0.0014 232.5 0.0013 0.0013 258.5 0.0012 0.0012 286.0 0.0010 0.0010 331.0 0.0009 0.0009 396.0 0.0008 0.0008 468.5 0.0006 0.0006 549.5 0.0005 0.0005 639.0 0.0005 0.0005 738.0 0.0004 0.0004 847.5 0.0004 0.0004 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0002 0.0002 1412.0 0.0002 0.0002 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 --2.6 -2.4 117 9.0 0.0304 0.0304 11.0 0.0249 0.0249 13.5 0.0203 0.0203 16.5 0.0166 0.0166 19.5 0.0141 0.0141 22.5 0.0122 0.0122 26.0 0.0105 0.0105 30.0 0.0091 0.0091 34.5 0.0079 0.0079 40.0 0.0068 0.0068 46.0 0.0060 0.0060 52.5 0.0052 0.0052 60.0 0.0046 0.0046 69.0 0.0040 0.0040 79.0 0.0035 0.0035 90.5 0.0030 0.0030 105.5 0.0026 0.0026 123.5 0.0022 0.0022 143.0 0.0019 0.0019 163.5 0.0017 0.0017 185.0 0.0015 0.0015 208.0 0.0013 0.0013 232.5 0.0012 0.0012 258.5 0.0011 0.0011 286.0 0.0010 0.0010 331.0 0.0008 0.0008 396.0 0.0007 0.0007 468.5 0.0006 0.0006 549.5 0.0005 0.0005 639.0 0.0004 0.0004 738.0 0.0004 0.0004 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0002 0.0002 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0001 0.0001 --2.4 -2.2 117 9.0 0.0215 0.0215 11.0 0.0176 0.0176 13.5 0.0143 0.0143 16.5 0.0117 0.0117 19.5 0.0099 0.0099 22.5 0.0086 0.0086 26.0 0.0074 0.0074 30.0 0.0065 0.0065 34.5 0.0056 0.0056 40.0 0.0048 0.0048 46.0 0.0042 0.0042 52.5 0.0037 0.0037 60.0 0.0032 0.0032 69.0 0.0028 0.0028 79.0 0.0025 0.0025 90.5 0.0021 0.0021 105.5 0.0018 0.0018 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0010 0.0010 208.0 0.0009 0.0009 232.5 0.0008 0.0008 258.5 0.0007 0.0007 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --2.2 -2.0 117 9.0 0.0192 0.0192 11.0 0.0157 0.0157 13.5 0.0128 0.0128 16.5 0.0105 0.0105 19.5 0.0088 0.0088 22.5 0.0077 0.0077 26.0 0.0066 0.0066 30.0 0.0057 0.0057 34.5 0.0050 0.0050 40.0 0.0043 0.0043 46.0 0.0037 0.0037 52.5 0.0033 0.0033 60.0 0.0029 0.0029 69.0 0.0025 0.0025 79.0 0.0022 0.0022 90.5 0.0019 0.0019 105.5 0.0016 0.0016 123.5 0.0014 0.0014 143.0 0.0012 0.0012 163.5 0.0011 0.0011 185.0 0.0009 0.0009 208.0 0.0008 0.0008 232.5 0.0007 0.0007 258.5 0.0007 0.0007 286.0 0.0006 0.0006 331.0 0.0005 0.0005 396.0 0.0004 0.0004 468.5 0.0004 0.0004 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0002 0.0002 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --2.0 -1.8 117 9.0 0.0161 0.0161 11.0 0.0131 0.0131 13.5 0.0107 0.0107 16.5 0.0088 0.0088 19.5 0.0074 0.0074 22.5 0.0064 0.0064 26.0 0.0056 0.0056 30.0 0.0048 0.0048 34.5 0.0042 0.0042 40.0 0.0036 0.0036 46.0 0.0031 0.0031 52.5 0.0028 0.0028 60.0 0.0024 0.0024 69.0 0.0021 0.0021 79.0 0.0018 0.0018 90.5 0.0016 0.0016 105.5 0.0014 0.0014 123.5 0.0012 0.0012 143.0 0.0010 0.0010 163.5 0.0009 0.0009 185.0 0.0008 0.0008 208.0 0.0007 0.0007 232.5 0.0006 0.0006 258.5 0.0006 0.0006 286.0 0.0005 0.0005 331.0 0.0004 0.0004 396.0 0.0004 0.0004 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0002 0.0002 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --1.8 -1.6 117 9.0 0.0142 0.0142 11.0 0.0116 0.0116 13.5 0.0095 0.0095 16.5 0.0078 0.0078 19.5 0.0066 0.0066 22.5 0.0057 0.0057 26.0 0.0049 0.0049 30.0 0.0043 0.0043 34.5 0.0037 0.0037 40.0 0.0032 0.0032 46.0 0.0028 0.0028 52.5 0.0024 0.0024 60.0 0.0021 0.0021 69.0 0.0019 0.0019 79.0 0.0016 0.0016 90.5 0.0014 0.0014 105.5 0.0012 0.0012 123.5 0.0010 0.0010 143.0 0.0009 0.0009 163.5 0.0008 0.0008 185.0 0.0007 0.0007 208.0 0.0006 0.0006 232.5 0.0006 0.0006 258.5 0.0005 0.0005 286.0 0.0004 0.0004 331.0 0.0004 0.0004 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0002 0.0002 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --1.6 -1.4 117 9.0 0.0120 0.0120 11.0 0.0098 0.0098 13.5 0.0080 0.0080 16.5 0.0065 0.0065 19.5 0.0055 0.0055 22.5 0.0048 0.0048 26.0 0.0041 0.0041 30.0 0.0036 0.0036 34.5 0.0031 0.0031 40.0 0.0027 0.0027 46.0 0.0023 0.0023 52.5 0.0021 0.0021 60.0 0.0018 0.0018 69.0 0.0016 0.0016 79.0 0.0014 0.0014 90.5 0.0012 0.0012 105.5 0.0010 0.0010 123.5 0.0009 0.0009 143.0 0.0008 0.0008 163.5 0.0007 0.0007 185.0 0.0006 0.0006 208.0 0.0005 0.0005 232.5 0.0005 0.0005 258.5 0.0004 0.0004 286.0 0.0004 0.0004 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --1.4 -1.2 117 9.0 0.0108 0.0108 11.0 0.0088 0.0088 13.5 0.0072 0.0072 16.5 0.0059 0.0059 19.5 0.0050 0.0050 22.5 0.0043 0.0043 26.0 0.0037 0.0037 30.0 0.0032 0.0032 34.5 0.0028 0.0028 40.0 0.0024 0.0024 46.0 0.0021 0.0021 52.5 0.0018 0.0018 60.0 0.0016 0.0016 69.0 0.0014 0.0014 79.0 0.0012 0.0012 90.5 0.0011 0.0011 105.5 0.0009 0.0009 123.5 0.0008 0.0008 143.0 0.0007 0.0007 163.5 0.0006 0.0006 185.0 0.0005 0.0005 208.0 0.0005 0.0005 232.5 0.0004 0.0004 258.5 0.0004 0.0004 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0002 0.0002 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0000 0.0000 --1.2 -1.0 117 9.0 0.0102 0.0102 11.0 0.0083 0.0083 13.5 0.0068 0.0068 16.5 0.0055 0.0055 19.5 0.0047 0.0047 22.5 0.0041 0.0041 26.0 0.0035 0.0035 30.0 0.0030 0.0030 34.5 0.0027 0.0027 40.0 0.0023 0.0023 46.0 0.0020 0.0020 52.5 0.0017 0.0017 60.0 0.0015 0.0015 69.0 0.0013 0.0013 79.0 0.0012 0.0012 90.5 0.0010 0.0010 105.5 0.0009 0.0009 123.5 0.0007 0.0007 143.0 0.0006 0.0006 163.5 0.0006 0.0006 185.0 0.0005 0.0005 208.0 0.0004 0.0004 232.5 0.0004 0.0004 258.5 0.0004 0.0004 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0002 0.0002 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0000 0.0000 --1.0 -0.8 117 9.0 0.0096 0.0096 11.0 0.0078 0.0078 13.5 0.0064 0.0064 16.5 0.0052 0.0052 19.5 0.0044 0.0044 22.5 0.0038 0.0038 26.0 0.0033 0.0033 30.0 0.0029 0.0029 34.5 0.0025 0.0025 40.0 0.0022 0.0022 46.0 0.0019 0.0019 52.5 0.0016 0.0016 60.0 0.0014 0.0014 69.0 0.0012 0.0012 79.0 0.0011 0.0011 90.5 0.0010 0.0010 105.5 0.0008 0.0008 123.5 0.0007 0.0007 143.0 0.0006 0.0006 163.5 0.0005 0.0005 185.0 0.0005 0.0005 208.0 0.0004 0.0004 232.5 0.0004 0.0004 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0002 0.0002 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.8 -0.6 117 9.0 0.0095 0.0095 11.0 0.0078 0.0078 13.5 0.0064 0.0064 16.5 0.0052 0.0052 19.5 0.0044 0.0044 22.5 0.0038 0.0038 26.0 0.0033 0.0033 30.0 0.0029 0.0029 34.5 0.0025 0.0025 40.0 0.0021 0.0021 46.0 0.0019 0.0019 52.5 0.0016 0.0016 60.0 0.0014 0.0014 69.0 0.0012 0.0012 79.0 0.0011 0.0011 90.5 0.0009 0.0009 105.5 0.0008 0.0008 123.5 0.0007 0.0007 143.0 0.0006 0.0006 163.5 0.0005 0.0005 185.0 0.0005 0.0005 208.0 0.0004 0.0004 232.5 0.0004 0.0004 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0002 0.0002 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.6 -0.4 117 9.0 0.0103 0.0103 11.0 0.0085 0.0085 13.5 0.0069 0.0069 16.5 0.0056 0.0056 19.5 0.0048 0.0048 22.5 0.0041 0.0041 26.0 0.0036 0.0036 30.0 0.0031 0.0031 34.5 0.0027 0.0027 40.0 0.0023 0.0023 46.0 0.0020 0.0020 52.5 0.0018 0.0018 60.0 0.0016 0.0016 69.0 0.0013 0.0013 79.0 0.0012 0.0012 90.5 0.0010 0.0010 105.5 0.0009 0.0009 123.5 0.0008 0.0008 143.0 0.0007 0.0007 163.5 0.0006 0.0006 185.0 0.0005 0.0005 208.0 0.0004 0.0004 232.5 0.0004 0.0004 258.5 0.0004 0.0004 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0002 0.0002 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0000 0.0000 --0.4 -0.2 117 9.0 0.0114 0.0114 11.0 0.0094 0.0094 13.5 0.0076 0.0076 16.5 0.0062 0.0062 19.5 0.0053 0.0053 22.5 0.0046 0.0046 26.0 0.0040 0.0040 30.0 0.0034 0.0034 34.5 0.0030 0.0030 40.0 0.0026 0.0026 46.0 0.0022 0.0022 52.5 0.0020 0.0020 60.0 0.0017 0.0017 69.0 0.0015 0.0015 79.0 0.0013 0.0013 90.5 0.0011 0.0011 105.5 0.0010 0.0010 123.5 0.0008 0.0008 143.0 0.0007 0.0007 163.5 0.0006 0.0006 185.0 0.0006 0.0006 208.0 0.0005 0.0005 232.5 0.0004 0.0004 258.5 0.0004 0.0004 286.0 0.0004 0.0004 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --0.2 0.0 117 9.0 0.0121 0.0121 11.0 0.0099 0.0099 13.5 0.0081 0.0081 16.5 0.0066 0.0066 19.5 0.0056 0.0056 22.5 0.0048 0.0048 26.0 0.0042 0.0042 30.0 0.0036 0.0036 34.5 0.0032 0.0032 40.0 0.0027 0.0027 46.0 0.0024 0.0024 52.5 0.0021 0.0021 60.0 0.0018 0.0018 69.0 0.0016 0.0016 79.0 0.0014 0.0014 90.5 0.0012 0.0012 105.5 0.0010 0.0010 123.5 0.0009 0.0009 143.0 0.0008 0.0008 163.5 0.0007 0.0007 185.0 0.0006 0.0006 208.0 0.0005 0.0005 232.5 0.0005 0.0005 258.5 0.0004 0.0004 286.0 0.0004 0.0004 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -0.0 0.2 117 9.0 0.0120 0.0120 11.0 0.0099 0.0099 13.5 0.0080 0.0080 16.5 0.0066 0.0066 19.5 0.0056 0.0056 22.5 0.0048 0.0048 26.0 0.0042 0.0042 30.0 0.0036 0.0036 34.5 0.0031 0.0031 40.0 0.0027 0.0027 46.0 0.0024 0.0024 52.5 0.0021 0.0021 60.0 0.0018 0.0018 69.0 0.0016 0.0016 79.0 0.0014 0.0014 90.5 0.0012 0.0012 105.5 0.0010 0.0010 123.5 0.0009 0.0009 143.0 0.0008 0.0008 163.5 0.0007 0.0007 185.0 0.0006 0.0006 208.0 0.0005 0.0005 232.5 0.0005 0.0005 258.5 0.0004 0.0004 286.0 0.0004 0.0004 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -0.2 0.4 117 9.0 0.0113 0.0113 11.0 0.0093 0.0093 13.5 0.0075 0.0075 16.5 0.0062 0.0062 19.5 0.0052 0.0052 22.5 0.0045 0.0045 26.0 0.0039 0.0039 30.0 0.0034 0.0034 34.5 0.0030 0.0030 40.0 0.0025 0.0025 46.0 0.0022 0.0022 52.5 0.0019 0.0019 60.0 0.0017 0.0017 69.0 0.0015 0.0015 79.0 0.0013 0.0013 90.5 0.0011 0.0011 105.5 0.0010 0.0010 123.5 0.0008 0.0008 143.0 0.0007 0.0007 163.5 0.0006 0.0006 185.0 0.0006 0.0006 208.0 0.0005 0.0005 232.5 0.0004 0.0004 258.5 0.0004 0.0004 286.0 0.0004 0.0004 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -0.4 0.6 117 9.0 0.0103 0.0103 11.0 0.0084 0.0084 13.5 0.0069 0.0069 16.5 0.0056 0.0056 19.5 0.0047 0.0047 22.5 0.0041 0.0041 26.0 0.0036 0.0036 30.0 0.0031 0.0031 34.5 0.0027 0.0027 40.0 0.0023 0.0023 46.0 0.0020 0.0020 52.5 0.0018 0.0018 60.0 0.0015 0.0015 69.0 0.0013 0.0013 79.0 0.0012 0.0012 90.5 0.0010 0.0010 105.5 0.0009 0.0009 123.5 0.0007 0.0007 143.0 0.0006 0.0006 163.5 0.0006 0.0006 185.0 0.0005 0.0005 208.0 0.0004 0.0004 232.5 0.0004 0.0004 258.5 0.0004 0.0004 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0002 0.0002 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0000 0.0000 -0.6 0.8 117 9.0 0.0100 0.0100 11.0 0.0082 0.0082 13.5 0.0067 0.0067 16.5 0.0055 0.0055 19.5 0.0046 0.0046 22.5 0.0040 0.0040 26.0 0.0035 0.0035 30.0 0.0030 0.0030 34.5 0.0026 0.0026 40.0 0.0023 0.0023 46.0 0.0020 0.0020 52.5 0.0017 0.0017 60.0 0.0015 0.0015 69.0 0.0013 0.0013 79.0 0.0011 0.0011 90.5 0.0010 0.0010 105.5 0.0009 0.0009 123.5 0.0007 0.0007 143.0 0.0006 0.0006 163.5 0.0006 0.0006 185.0 0.0005 0.0005 208.0 0.0004 0.0004 232.5 0.0004 0.0004 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0002 0.0002 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0000 0.0000 -0.8 1.0 117 9.0 0.0107 0.0107 11.0 0.0088 0.0088 13.5 0.0071 0.0071 16.5 0.0058 0.0058 19.5 0.0049 0.0049 22.5 0.0043 0.0043 26.0 0.0037 0.0037 30.0 0.0032 0.0032 34.5 0.0028 0.0028 40.0 0.0024 0.0024 46.0 0.0021 0.0021 52.5 0.0018 0.0018 60.0 0.0016 0.0016 69.0 0.0014 0.0014 79.0 0.0012 0.0012 90.5 0.0011 0.0011 105.5 0.0009 0.0009 123.5 0.0008 0.0008 143.0 0.0007 0.0007 163.5 0.0006 0.0006 185.0 0.0005 0.0005 208.0 0.0005 0.0005 232.5 0.0004 0.0004 258.5 0.0004 0.0004 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0002 0.0002 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0000 0.0000 -1.0 1.2 117 9.0 0.0113 0.0113 11.0 0.0093 0.0093 13.5 0.0076 0.0076 16.5 0.0062 0.0062 19.5 0.0052 0.0052 22.5 0.0045 0.0045 26.0 0.0039 0.0039 30.0 0.0034 0.0034 34.5 0.0030 0.0030 40.0 0.0026 0.0026 46.0 0.0022 0.0022 52.5 0.0019 0.0019 60.0 0.0017 0.0017 69.0 0.0015 0.0015 79.0 0.0013 0.0013 90.5 0.0011 0.0011 105.5 0.0010 0.0010 123.5 0.0008 0.0008 143.0 0.0007 0.0007 163.5 0.0006 0.0006 185.0 0.0006 0.0006 208.0 0.0005 0.0005 232.5 0.0004 0.0004 258.5 0.0004 0.0004 286.0 0.0004 0.0004 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -1.2 1.4 117 9.0 0.0122 0.0122 11.0 0.0100 0.0100 13.5 0.0081 0.0081 16.5 0.0067 0.0067 19.5 0.0056 0.0056 22.5 0.0049 0.0049 26.0 0.0042 0.0042 30.0 0.0037 0.0037 34.5 0.0032 0.0032 40.0 0.0028 0.0028 46.0 0.0024 0.0024 52.5 0.0021 0.0021 60.0 0.0018 0.0018 69.0 0.0016 0.0016 79.0 0.0014 0.0014 90.5 0.0012 0.0012 105.5 0.0010 0.0010 123.5 0.0009 0.0009 143.0 0.0008 0.0008 163.5 0.0007 0.0007 185.0 0.0006 0.0006 208.0 0.0005 0.0005 232.5 0.0005 0.0005 258.5 0.0004 0.0004 286.0 0.0004 0.0004 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -1.4 1.6 117 9.0 0.0143 0.0143 11.0 0.0117 0.0117 13.5 0.0095 0.0095 16.5 0.0078 0.0078 19.5 0.0066 0.0066 22.5 0.0057 0.0057 26.0 0.0049 0.0049 30.0 0.0043 0.0043 34.5 0.0037 0.0037 40.0 0.0032 0.0032 46.0 0.0028 0.0028 52.5 0.0024 0.0024 60.0 0.0021 0.0021 69.0 0.0019 0.0019 79.0 0.0016 0.0016 90.5 0.0014 0.0014 105.5 0.0012 0.0012 123.5 0.0010 0.0010 143.0 0.0009 0.0009 163.5 0.0008 0.0008 185.0 0.0007 0.0007 208.0 0.0006 0.0006 232.5 0.0006 0.0006 258.5 0.0005 0.0005 286.0 0.0004 0.0004 331.0 0.0004 0.0004 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0002 0.0002 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -1.6 1.8 117 9.0 0.0165 0.0165 11.0 0.0135 0.0135 13.5 0.0110 0.0110 16.5 0.0090 0.0090 19.5 0.0076 0.0076 22.5 0.0066 0.0066 26.0 0.0057 0.0057 30.0 0.0049 0.0049 34.5 0.0043 0.0043 40.0 0.0037 0.0037 46.0 0.0032 0.0032 52.5 0.0028 0.0028 60.0 0.0025 0.0025 69.0 0.0021 0.0021 79.0 0.0019 0.0019 90.5 0.0016 0.0016 105.5 0.0014 0.0014 123.5 0.0012 0.0012 143.0 0.0010 0.0010 163.5 0.0009 0.0009 185.0 0.0008 0.0008 208.0 0.0007 0.0007 232.5 0.0006 0.0006 258.5 0.0006 0.0006 286.0 0.0005 0.0005 331.0 0.0004 0.0004 396.0 0.0004 0.0004 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -1.8 2.0 117 9.0 0.0196 0.0196 11.0 0.0160 0.0160 13.5 0.0130 0.0130 16.5 0.0107 0.0107 19.5 0.0090 0.0090 22.5 0.0078 0.0078 26.0 0.0068 0.0068 30.0 0.0059 0.0059 34.5 0.0051 0.0051 40.0 0.0044 0.0044 46.0 0.0038 0.0038 52.5 0.0034 0.0034 60.0 0.0029 0.0029 69.0 0.0026 0.0026 79.0 0.0022 0.0022 90.5 0.0019 0.0019 105.5 0.0017 0.0017 123.5 0.0014 0.0014 143.0 0.0012 0.0012 163.5 0.0011 0.0011 185.0 0.0010 0.0010 208.0 0.0008 0.0008 232.5 0.0008 0.0008 258.5 0.0007 0.0007 286.0 0.0006 0.0006 331.0 0.0005 0.0005 396.0 0.0004 0.0004 468.5 0.0004 0.0004 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0002 0.0002 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -2.0 2.2 117 9.0 0.0231 0.0231 11.0 0.0189 0.0189 13.5 0.0154 0.0154 16.5 0.0126 0.0126 19.5 0.0107 0.0107 22.5 0.0092 0.0092 26.0 0.0080 0.0080 30.0 0.0069 0.0069 34.5 0.0060 0.0060 40.0 0.0052 0.0052 46.0 0.0045 0.0045 52.5 0.0040 0.0040 60.0 0.0035 0.0035 69.0 0.0030 0.0030 79.0 0.0026 0.0026 90.5 0.0023 0.0023 105.5 0.0020 0.0020 123.5 0.0017 0.0017 143.0 0.0015 0.0015 163.5 0.0013 0.0013 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -2.2 2.4 117 9.0 0.0280 0.0280 11.0 0.0229 0.0229 13.5 0.0187 0.0187 16.5 0.0153 0.0153 19.5 0.0129 0.0129 22.5 0.0112 0.0112 26.0 0.0097 0.0097 30.0 0.0084 0.0084 34.5 0.0073 0.0073 40.0 0.0063 0.0063 46.0 0.0055 0.0055 52.5 0.0048 0.0048 60.0 0.0042 0.0042 69.0 0.0037 0.0037 79.0 0.0032 0.0032 90.5 0.0028 0.0028 105.5 0.0024 0.0024 123.5 0.0020 0.0020 143.0 0.0018 0.0018 163.5 0.0015 0.0015 185.0 0.0014 0.0014 208.0 0.0012 0.0012 232.5 0.0011 0.0011 258.5 0.0010 0.0010 286.0 0.0009 0.0009 331.0 0.0008 0.0008 396.0 0.0006 0.0006 468.5 0.0005 0.0005 549.5 0.0005 0.0005 639.0 0.0004 0.0004 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0002 0.0002 1590.5 0.0002 0.0002 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -2.4 2.6 117 9.0 0.0369 0.0369 11.0 0.0302 0.0302 13.5 0.0246 0.0246 16.5 0.0201 0.0201 19.5 0.0170 0.0170 22.5 0.0148 0.0148 26.0 0.0128 0.0128 30.0 0.0111 0.0111 34.5 0.0096 0.0096 40.0 0.0083 0.0083 46.0 0.0072 0.0072 52.5 0.0063 0.0063 60.0 0.0055 0.0055 69.0 0.0048 0.0048 79.0 0.0042 0.0042 90.5 0.0037 0.0037 105.5 0.0031 0.0031 123.5 0.0027 0.0027 143.0 0.0023 0.0023 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0016 0.0016 232.5 0.0014 0.0014 258.5 0.0013 0.0013 286.0 0.0012 0.0012 331.0 0.0010 0.0010 396.0 0.0008 0.0008 468.5 0.0007 0.0007 549.5 0.0006 0.0006 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0004 0.0004 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0002 0.0002 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 -2.6 2.8 117 9.0 0.0338 0.0338 11.0 0.0277 0.0277 13.5 0.0225 0.0225 16.5 0.0184 0.0184 19.5 0.0156 0.0156 22.5 0.0135 0.0135 26.0 0.0117 0.0117 30.0 0.0101 0.0101 34.5 0.0088 0.0088 40.0 0.0076 0.0076 46.0 0.0066 0.0066 52.5 0.0058 0.0058 60.0 0.0051 0.0051 69.0 0.0044 0.0044 79.0 0.0039 0.0039 90.5 0.0034 0.0034 105.5 0.0029 0.0029 123.5 0.0025 0.0025 143.0 0.0021 0.0021 163.5 0.0019 0.0019 185.0 0.0016 0.0016 208.0 0.0015 0.0015 232.5 0.0013 0.0013 258.5 0.0012 0.0012 286.0 0.0011 0.0011 331.0 0.0009 0.0009 396.0 0.0008 0.0008 468.5 0.0006 0.0006 549.5 0.0006 0.0006 639.0 0.0005 0.0005 738.0 0.0004 0.0004 847.5 0.0004 0.0004 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0002 0.0002 1412.0 0.0002 0.0002 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 -2.8 3.0 117 9.0 0.0259 0.0259 11.0 0.0212 0.0212 13.5 0.0173 0.0173 16.5 0.0141 0.0141 19.5 0.0120 0.0120 22.5 0.0104 0.0104 26.0 0.0090 0.0090 30.0 0.0078 0.0078 34.5 0.0068 0.0068 40.0 0.0058 0.0058 46.0 0.0051 0.0051 52.5 0.0044 0.0044 60.0 0.0039 0.0039 69.0 0.0034 0.0034 79.0 0.0030 0.0030 90.5 0.0026 0.0026 105.5 0.0022 0.0022 123.5 0.0019 0.0019 143.0 0.0016 0.0016 163.5 0.0014 0.0014 185.0 0.0013 0.0013 208.0 0.0011 0.0011 232.5 0.0010 0.0010 258.5 0.0009 0.0009 286.0 0.0008 0.0008 331.0 0.0007 0.0007 396.0 0.0006 0.0006 468.5 0.0005 0.0005 549.5 0.0004 0.0004 639.0 0.0004 0.0004 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0002 0.0002 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -3.0 3.5 117 9.0 0.0116 0.0116 11.0 0.0095 0.0095 13.5 0.0077 0.0077 16.5 0.0063 0.0063 19.5 0.0053 0.0053 22.5 0.0046 0.0046 26.0 0.0040 0.0040 30.0 0.0035 0.0035 34.5 0.0030 0.0030 40.0 0.0026 0.0026 46.0 0.0023 0.0023 52.5 0.0020 0.0020 60.0 0.0017 0.0017 69.0 0.0015 0.0015 79.0 0.0013 0.0013 90.5 0.0012 0.0012 105.5 0.0010 0.0010 123.5 0.0008 0.0008 143.0 0.0007 0.0007 163.5 0.0006 0.0006 185.0 0.0006 0.0006 208.0 0.0005 0.0005 232.5 0.0004 0.0004 258.5 0.0004 0.0004 286.0 0.0004 0.0004 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -3.5 4.0 117 9.0 0.0039 0.0039 11.0 0.0032 0.0032 13.5 0.0026 0.0026 16.5 0.0022 0.0022 19.5 0.0018 0.0018 22.5 0.0016 0.0016 26.0 0.0014 0.0014 30.0 0.0012 0.0012 34.5 0.0010 0.0010 40.0 0.0009 0.0009 46.0 0.0008 0.0008 52.5 0.0007 0.0007 60.0 0.0006 0.0006 69.0 0.0005 0.0005 79.0 0.0004 0.0004 90.5 0.0004 0.0004 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0002 0.0002 163.5 0.0002 0.0002 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0002 0.0002 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -4.0 4.5 117 9.0 0.0032 0.0032 11.0 0.0027 0.0027 13.5 0.0022 0.0022 16.5 0.0018 0.0018 19.5 0.0015 0.0015 22.5 0.0013 0.0013 26.0 0.0011 0.0011 30.0 0.0010 0.0010 34.5 0.0008 0.0008 40.0 0.0007 0.0007 46.0 0.0006 0.0006 52.5 0.0006 0.0006 60.0 0.0005 0.0005 69.0 0.0004 0.0004 79.0 0.0004 0.0004 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0002 0.0002 143.0 0.0002 0.0002 163.5 0.0002 0.0002 185.0 0.0002 0.0002 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -4.5 5.2 117 9.0 0.0020 0.0020 11.0 0.0016 0.0016 13.5 0.0013 0.0013 16.5 0.0011 0.0011 19.5 0.0009 0.0009 22.5 0.0008 0.0008 26.0 0.0007 0.0007 30.0 0.0006 0.0006 34.5 0.0005 0.0005 40.0 0.0005 0.0005 46.0 0.0004 0.0004 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0002 0.0002 90.5 0.0002 0.0002 105.5 0.0002 0.0002 123.5 0.0001 0.0001 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -[PileUpPt] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0132 0.0132 11.0 0.0108 0.0108 13.5 0.0088 0.0088 16.5 0.0072 0.0072 19.5 0.0061 0.0061 22.5 0.0053 0.0053 26.0 0.0046 0.0046 30.0 0.0039 0.0039 34.5 0.0034 0.0034 40.0 0.0030 0.0030 46.0 0.0026 0.0026 52.5 0.0023 0.0023 60.0 0.0020 0.0020 69.0 0.0017 0.0017 79.0 0.0015 0.0015 90.5 0.0013 0.0013 105.5 0.0011 0.0011 123.5 0.0010 0.0010 143.0 0.0008 0.0008 163.5 0.0007 0.0007 185.0 0.0006 0.0006 208.0 0.0006 0.0006 232.5 0.0005 0.0005 258.5 0.0005 0.0005 286.0 0.0004 0.0004 331.0 0.0004 0.0004 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0002 0.0002 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 --4.5 -4.0 117 9.0 0.0247 0.0247 11.0 0.0202 0.0202 13.5 0.0165 0.0165 16.5 0.0135 0.0135 19.5 0.0114 0.0114 22.5 0.0099 0.0099 26.0 0.0086 0.0086 30.0 0.0074 0.0074 34.5 0.0064 0.0064 40.0 0.0056 0.0056 46.0 0.0048 0.0048 52.5 0.0042 0.0042 60.0 0.0037 0.0037 69.0 0.0032 0.0032 79.0 0.0028 0.0028 90.5 0.0025 0.0025 105.5 0.0021 0.0021 123.5 0.0018 0.0018 143.0 0.0016 0.0016 163.5 0.0014 0.0014 185.0 0.0012 0.0012 208.0 0.0011 0.0011 232.5 0.0010 0.0010 258.5 0.0009 0.0009 286.0 0.0008 0.0008 331.0 0.0007 0.0007 396.0 0.0006 0.0006 468.5 0.0005 0.0005 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0002 0.0002 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 --4.0 -3.5 117 9.0 0.0303 0.0303 11.0 0.0248 0.0248 13.5 0.0202 0.0202 16.5 0.0165 0.0165 19.5 0.0140 0.0140 22.5 0.0121 0.0121 26.0 0.0105 0.0105 30.0 0.0091 0.0091 34.5 0.0079 0.0079 40.0 0.0068 0.0068 46.0 0.0059 0.0059 52.5 0.0052 0.0052 60.0 0.0045 0.0045 69.0 0.0040 0.0040 79.0 0.0035 0.0035 90.5 0.0030 0.0030 105.5 0.0026 0.0026 123.5 0.0022 0.0022 143.0 0.0019 0.0019 163.5 0.0017 0.0017 185.0 0.0015 0.0015 208.0 0.0013 0.0013 232.5 0.0012 0.0012 258.5 0.0011 0.0011 286.0 0.0010 0.0010 331.0 0.0008 0.0008 396.0 0.0007 0.0007 468.5 0.0006 0.0006 549.5 0.0005 0.0005 639.0 0.0004 0.0004 738.0 0.0004 0.0004 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0002 0.0002 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0001 0.0001 --3.5 -3.0 117 9.0 0.0450 0.0450 11.0 0.0368 0.0368 13.5 0.0300 0.0300 16.5 0.0245 0.0245 19.5 0.0208 0.0208 22.5 0.0180 0.0180 26.0 0.0156 0.0156 30.0 0.0135 0.0135 34.5 0.0117 0.0117 40.0 0.0101 0.0101 46.0 0.0088 0.0088 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0059 0.0059 79.0 0.0051 0.0051 90.5 0.0045 0.0045 105.5 0.0038 0.0038 123.5 0.0033 0.0033 143.0 0.0028 0.0028 163.5 0.0025 0.0025 185.0 0.0022 0.0022 208.0 0.0019 0.0019 232.5 0.0017 0.0017 258.5 0.0016 0.0016 286.0 0.0014 0.0014 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0007 0.0007 639.0 0.0006 0.0006 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0004 0.0004 1102.0 0.0004 0.0004 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 --3.0 -2.8 117 9.0 0.0624 0.0624 11.0 0.0510 0.0510 13.5 0.0416 0.0416 16.5 0.0340 0.0340 19.5 0.0288 0.0288 22.5 0.0250 0.0250 26.0 0.0216 0.0216 30.0 0.0187 0.0187 34.5 0.0163 0.0163 40.0 0.0140 0.0140 46.0 0.0122 0.0122 52.5 0.0107 0.0107 60.0 0.0094 0.0094 69.0 0.0081 0.0081 79.0 0.0071 0.0071 90.5 0.0062 0.0062 105.5 0.0053 0.0053 123.5 0.0045 0.0045 143.0 0.0039 0.0039 163.5 0.0034 0.0034 185.0 0.0030 0.0030 208.0 0.0027 0.0027 232.5 0.0024 0.0024 258.5 0.0022 0.0022 286.0 0.0020 0.0020 331.0 0.0017 0.0017 396.0 0.0014 0.0014 468.5 0.0012 0.0012 549.5 0.0010 0.0010 639.0 0.0009 0.0009 738.0 0.0008 0.0008 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --2.8 -2.6 117 9.0 0.0658 0.0658 11.0 0.0538 0.0538 13.5 0.0438 0.0438 16.5 0.0359 0.0359 19.5 0.0304 0.0304 22.5 0.0263 0.0263 26.0 0.0228 0.0228 30.0 0.0197 0.0197 34.5 0.0172 0.0172 40.0 0.0148 0.0148 46.0 0.0129 0.0129 52.5 0.0113 0.0113 60.0 0.0099 0.0099 69.0 0.0086 0.0086 79.0 0.0075 0.0075 90.5 0.0065 0.0065 105.5 0.0056 0.0056 123.5 0.0048 0.0048 143.0 0.0041 0.0041 163.5 0.0036 0.0036 185.0 0.0032 0.0032 208.0 0.0028 0.0028 232.5 0.0025 0.0025 258.5 0.0023 0.0023 286.0 0.0021 0.0021 331.0 0.0018 0.0018 396.0 0.0015 0.0015 468.5 0.0013 0.0013 549.5 0.0011 0.0011 639.0 0.0009 0.0009 738.0 0.0008 0.0008 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --2.6 -2.4 117 9.0 0.0584 0.0584 11.0 0.0478 0.0478 13.5 0.0389 0.0389 16.5 0.0319 0.0319 19.5 0.0270 0.0270 22.5 0.0234 0.0234 26.0 0.0202 0.0202 30.0 0.0175 0.0175 34.5 0.0152 0.0152 40.0 0.0131 0.0131 46.0 0.0114 0.0114 52.5 0.0100 0.0100 60.0 0.0088 0.0088 69.0 0.0076 0.0076 79.0 0.0067 0.0067 90.5 0.0058 0.0058 105.5 0.0050 0.0050 123.5 0.0043 0.0043 143.0 0.0037 0.0037 163.5 0.0032 0.0032 185.0 0.0028 0.0028 208.0 0.0025 0.0025 232.5 0.0023 0.0023 258.5 0.0020 0.0020 286.0 0.0018 0.0018 331.0 0.0016 0.0016 396.0 0.0013 0.0013 468.5 0.0011 0.0011 549.5 0.0010 0.0010 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --2.4 -2.2 117 9.0 0.0418 0.0418 11.0 0.0342 0.0342 13.5 0.0279 0.0279 16.5 0.0228 0.0228 19.5 0.0193 0.0193 22.5 0.0167 0.0167 26.0 0.0145 0.0145 30.0 0.0125 0.0125 34.5 0.0109 0.0109 40.0 0.0094 0.0094 46.0 0.0082 0.0082 52.5 0.0072 0.0072 60.0 0.0063 0.0063 69.0 0.0055 0.0055 79.0 0.0048 0.0048 90.5 0.0042 0.0042 105.5 0.0036 0.0036 123.5 0.0030 0.0030 143.0 0.0026 0.0026 163.5 0.0023 0.0023 185.0 0.0020 0.0020 208.0 0.0018 0.0018 232.5 0.0016 0.0016 258.5 0.0015 0.0015 286.0 0.0013 0.0013 331.0 0.0011 0.0011 396.0 0.0009 0.0009 468.5 0.0008 0.0008 549.5 0.0007 0.0007 639.0 0.0006 0.0006 738.0 0.0005 0.0005 847.5 0.0004 0.0004 968.5 0.0004 0.0004 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 --2.2 -2.0 117 9.0 0.0427 0.0427 11.0 0.0349 0.0349 13.5 0.0285 0.0285 16.5 0.0233 0.0233 19.5 0.0197 0.0197 22.5 0.0171 0.0171 26.0 0.0148 0.0148 30.0 0.0128 0.0128 34.5 0.0111 0.0111 40.0 0.0096 0.0096 46.0 0.0084 0.0084 52.5 0.0073 0.0073 60.0 0.0064 0.0064 69.0 0.0056 0.0056 79.0 0.0049 0.0049 90.5 0.0042 0.0042 105.5 0.0036 0.0036 123.5 0.0031 0.0031 143.0 0.0027 0.0027 163.5 0.0024 0.0024 185.0 0.0021 0.0021 208.0 0.0018 0.0018 232.5 0.0017 0.0017 258.5 0.0015 0.0015 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0008 0.0008 549.5 0.0007 0.0007 639.0 0.0006 0.0006 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0004 0.0004 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 --2.0 -1.8 117 9.0 0.0416 0.0416 11.0 0.0340 0.0340 13.5 0.0277 0.0277 16.5 0.0227 0.0227 19.5 0.0192 0.0192 22.5 0.0166 0.0166 26.0 0.0144 0.0144 30.0 0.0125 0.0125 34.5 0.0108 0.0108 40.0 0.0094 0.0094 46.0 0.0081 0.0081 52.5 0.0071 0.0071 60.0 0.0062 0.0062 69.0 0.0054 0.0054 79.0 0.0047 0.0047 90.5 0.0041 0.0041 105.5 0.0035 0.0035 123.5 0.0030 0.0030 143.0 0.0026 0.0026 163.5 0.0023 0.0023 185.0 0.0020 0.0020 208.0 0.0018 0.0018 232.5 0.0016 0.0016 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0011 0.0011 396.0 0.0009 0.0009 468.5 0.0008 0.0008 549.5 0.0007 0.0007 639.0 0.0006 0.0006 738.0 0.0005 0.0005 847.5 0.0004 0.0004 968.5 0.0004 0.0004 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 --1.8 -1.6 117 9.0 0.0418 0.0418 11.0 0.0342 0.0342 13.5 0.0279 0.0279 16.5 0.0228 0.0228 19.5 0.0193 0.0193 22.5 0.0167 0.0167 26.0 0.0145 0.0145 30.0 0.0125 0.0125 34.5 0.0109 0.0109 40.0 0.0094 0.0094 46.0 0.0082 0.0082 52.5 0.0072 0.0072 60.0 0.0063 0.0063 69.0 0.0055 0.0055 79.0 0.0048 0.0048 90.5 0.0042 0.0042 105.5 0.0036 0.0036 123.5 0.0030 0.0030 143.0 0.0026 0.0026 163.5 0.0023 0.0023 185.0 0.0020 0.0020 208.0 0.0018 0.0018 232.5 0.0016 0.0016 258.5 0.0015 0.0015 286.0 0.0013 0.0013 331.0 0.0011 0.0011 396.0 0.0010 0.0010 468.5 0.0008 0.0008 549.5 0.0007 0.0007 639.0 0.0006 0.0006 738.0 0.0005 0.0005 847.5 0.0004 0.0004 968.5 0.0004 0.0004 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 --1.6 -1.4 117 9.0 0.0416 0.0416 11.0 0.0340 0.0340 13.5 0.0277 0.0277 16.5 0.0227 0.0227 19.5 0.0192 0.0192 22.5 0.0166 0.0166 26.0 0.0144 0.0144 30.0 0.0125 0.0125 34.5 0.0108 0.0108 40.0 0.0093 0.0093 46.0 0.0081 0.0081 52.5 0.0071 0.0071 60.0 0.0062 0.0062 69.0 0.0054 0.0054 79.0 0.0047 0.0047 90.5 0.0041 0.0041 105.5 0.0035 0.0035 123.5 0.0030 0.0030 143.0 0.0026 0.0026 163.5 0.0023 0.0023 185.0 0.0020 0.0020 208.0 0.0018 0.0018 232.5 0.0016 0.0016 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0011 0.0011 396.0 0.0009 0.0009 468.5 0.0008 0.0008 549.5 0.0007 0.0007 639.0 0.0006 0.0006 738.0 0.0005 0.0005 847.5 0.0004 0.0004 968.5 0.0004 0.0004 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 --1.4 -1.2 117 9.0 0.0418 0.0418 11.0 0.0342 0.0342 13.5 0.0279 0.0279 16.5 0.0228 0.0228 19.5 0.0193 0.0193 22.5 0.0167 0.0167 26.0 0.0145 0.0145 30.0 0.0126 0.0126 34.5 0.0109 0.0109 40.0 0.0094 0.0094 46.0 0.0082 0.0082 52.5 0.0072 0.0072 60.0 0.0063 0.0063 69.0 0.0055 0.0055 79.0 0.0048 0.0048 90.5 0.0042 0.0042 105.5 0.0036 0.0036 123.5 0.0030 0.0030 143.0 0.0026 0.0026 163.5 0.0023 0.0023 185.0 0.0020 0.0020 208.0 0.0018 0.0018 232.5 0.0016 0.0016 258.5 0.0015 0.0015 286.0 0.0013 0.0013 331.0 0.0011 0.0011 396.0 0.0010 0.0010 468.5 0.0008 0.0008 549.5 0.0007 0.0007 639.0 0.0006 0.0006 738.0 0.0005 0.0005 847.5 0.0004 0.0004 968.5 0.0004 0.0004 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 --1.2 -1.0 117 9.0 0.0422 0.0422 11.0 0.0346 0.0346 13.5 0.0282 0.0282 16.5 0.0230 0.0230 19.5 0.0195 0.0195 22.5 0.0169 0.0169 26.0 0.0146 0.0146 30.0 0.0127 0.0127 34.5 0.0110 0.0110 40.0 0.0095 0.0095 46.0 0.0083 0.0083 52.5 0.0072 0.0072 60.0 0.0063 0.0063 69.0 0.0055 0.0055 79.0 0.0048 0.0048 90.5 0.0042 0.0042 105.5 0.0036 0.0036 123.5 0.0031 0.0031 143.0 0.0027 0.0027 163.5 0.0023 0.0023 185.0 0.0021 0.0021 208.0 0.0018 0.0018 232.5 0.0016 0.0016 258.5 0.0015 0.0015 286.0 0.0013 0.0013 331.0 0.0011 0.0011 396.0 0.0010 0.0010 468.5 0.0008 0.0008 549.5 0.0007 0.0007 639.0 0.0006 0.0006 738.0 0.0005 0.0005 847.5 0.0004 0.0004 968.5 0.0004 0.0004 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 --1.0 -0.8 117 9.0 0.0422 0.0422 11.0 0.0345 0.0345 13.5 0.0281 0.0281 16.5 0.0230 0.0230 19.5 0.0195 0.0195 22.5 0.0169 0.0169 26.0 0.0146 0.0146 30.0 0.0127 0.0127 34.5 0.0110 0.0110 40.0 0.0095 0.0095 46.0 0.0083 0.0083 52.5 0.0072 0.0072 60.0 0.0063 0.0063 69.0 0.0055 0.0055 79.0 0.0048 0.0048 90.5 0.0042 0.0042 105.5 0.0036 0.0036 123.5 0.0031 0.0031 143.0 0.0027 0.0027 163.5 0.0023 0.0023 185.0 0.0021 0.0021 208.0 0.0018 0.0018 232.5 0.0016 0.0016 258.5 0.0015 0.0015 286.0 0.0013 0.0013 331.0 0.0011 0.0011 396.0 0.0010 0.0010 468.5 0.0008 0.0008 549.5 0.0007 0.0007 639.0 0.0006 0.0006 738.0 0.0005 0.0005 847.5 0.0004 0.0004 968.5 0.0004 0.0004 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 --0.8 -0.6 117 9.0 0.0427 0.0427 11.0 0.0349 0.0349 13.5 0.0285 0.0285 16.5 0.0233 0.0233 19.5 0.0197 0.0197 22.5 0.0171 0.0171 26.0 0.0148 0.0148 30.0 0.0128 0.0128 34.5 0.0111 0.0111 40.0 0.0096 0.0096 46.0 0.0084 0.0084 52.5 0.0073 0.0073 60.0 0.0064 0.0064 69.0 0.0056 0.0056 79.0 0.0049 0.0049 90.5 0.0042 0.0042 105.5 0.0036 0.0036 123.5 0.0031 0.0031 143.0 0.0027 0.0027 163.5 0.0024 0.0024 185.0 0.0021 0.0021 208.0 0.0018 0.0018 232.5 0.0017 0.0017 258.5 0.0015 0.0015 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0008 0.0008 549.5 0.0007 0.0007 639.0 0.0006 0.0006 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0004 0.0004 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 --0.6 -0.4 117 9.0 0.0442 0.0442 11.0 0.0361 0.0361 13.5 0.0294 0.0294 16.5 0.0241 0.0241 19.5 0.0204 0.0204 22.5 0.0177 0.0177 26.0 0.0153 0.0153 30.0 0.0132 0.0132 34.5 0.0115 0.0115 40.0 0.0099 0.0099 46.0 0.0086 0.0086 52.5 0.0076 0.0076 60.0 0.0066 0.0066 69.0 0.0058 0.0058 79.0 0.0050 0.0050 90.5 0.0044 0.0044 105.5 0.0038 0.0038 123.5 0.0032 0.0032 143.0 0.0028 0.0028 163.5 0.0024 0.0024 185.0 0.0021 0.0021 208.0 0.0019 0.0019 232.5 0.0017 0.0017 258.5 0.0015 0.0015 286.0 0.0014 0.0014 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0008 0.0008 549.5 0.0007 0.0007 639.0 0.0006 0.0006 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0004 0.0004 1102.0 0.0004 0.0004 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 --0.4 -0.2 117 9.0 0.0457 0.0457 11.0 0.0374 0.0374 13.5 0.0305 0.0305 16.5 0.0249 0.0249 19.5 0.0211 0.0211 22.5 0.0183 0.0183 26.0 0.0158 0.0158 30.0 0.0137 0.0137 34.5 0.0119 0.0119 40.0 0.0103 0.0103 46.0 0.0089 0.0089 52.5 0.0078 0.0078 60.0 0.0069 0.0069 69.0 0.0060 0.0060 79.0 0.0052 0.0052 90.5 0.0045 0.0045 105.5 0.0039 0.0039 123.5 0.0033 0.0033 143.0 0.0029 0.0029 163.5 0.0025 0.0025 185.0 0.0022 0.0022 208.0 0.0020 0.0020 232.5 0.0018 0.0018 258.5 0.0016 0.0016 286.0 0.0014 0.0014 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0007 0.0007 639.0 0.0006 0.0006 738.0 0.0006 0.0006 847.5 0.0005 0.0005 968.5 0.0004 0.0004 1102.0 0.0004 0.0004 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 --0.2 0.0 117 9.0 0.0467 0.0467 11.0 0.0382 0.0382 13.5 0.0311 0.0311 16.5 0.0255 0.0255 19.5 0.0216 0.0216 22.5 0.0187 0.0187 26.0 0.0162 0.0162 30.0 0.0140 0.0140 34.5 0.0122 0.0122 40.0 0.0105 0.0105 46.0 0.0091 0.0091 52.5 0.0080 0.0080 60.0 0.0070 0.0070 69.0 0.0061 0.0061 79.0 0.0053 0.0053 90.5 0.0046 0.0046 105.5 0.0040 0.0040 123.5 0.0034 0.0034 143.0 0.0029 0.0029 163.5 0.0026 0.0026 185.0 0.0023 0.0023 208.0 0.0020 0.0020 232.5 0.0018 0.0018 258.5 0.0016 0.0016 286.0 0.0015 0.0015 331.0 0.0013 0.0013 396.0 0.0011 0.0011 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0005 0.0005 968.5 0.0004 0.0004 1102.0 0.0004 0.0004 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 -0.0 0.2 117 9.0 0.0470 0.0470 11.0 0.0384 0.0384 13.5 0.0313 0.0313 16.5 0.0256 0.0256 19.5 0.0217 0.0217 22.5 0.0188 0.0188 26.0 0.0163 0.0163 30.0 0.0141 0.0141 34.5 0.0123 0.0123 40.0 0.0106 0.0106 46.0 0.0092 0.0092 52.5 0.0081 0.0081 60.0 0.0070 0.0070 69.0 0.0061 0.0061 79.0 0.0054 0.0054 90.5 0.0047 0.0047 105.5 0.0040 0.0040 123.5 0.0034 0.0034 143.0 0.0030 0.0030 163.5 0.0026 0.0026 185.0 0.0023 0.0023 208.0 0.0020 0.0020 232.5 0.0018 0.0018 258.5 0.0016 0.0016 286.0 0.0015 0.0015 331.0 0.0013 0.0013 396.0 0.0011 0.0011 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0005 0.0005 968.5 0.0004 0.0004 1102.0 0.0004 0.0004 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 -0.2 0.4 117 9.0 0.0466 0.0466 11.0 0.0381 0.0381 13.5 0.0311 0.0311 16.5 0.0254 0.0254 19.5 0.0215 0.0215 22.5 0.0186 0.0186 26.0 0.0161 0.0161 30.0 0.0140 0.0140 34.5 0.0122 0.0122 40.0 0.0105 0.0105 46.0 0.0091 0.0091 52.5 0.0080 0.0080 60.0 0.0070 0.0070 69.0 0.0061 0.0061 79.0 0.0053 0.0053 90.5 0.0046 0.0046 105.5 0.0040 0.0040 123.5 0.0034 0.0034 143.0 0.0029 0.0029 163.5 0.0026 0.0026 185.0 0.0023 0.0023 208.0 0.0020 0.0020 232.5 0.0018 0.0018 258.5 0.0016 0.0016 286.0 0.0015 0.0015 331.0 0.0013 0.0013 396.0 0.0011 0.0011 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0005 0.0005 968.5 0.0004 0.0004 1102.0 0.0004 0.0004 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 -0.4 0.6 117 9.0 0.0455 0.0455 11.0 0.0372 0.0372 13.5 0.0303 0.0303 16.5 0.0248 0.0248 19.5 0.0210 0.0210 22.5 0.0182 0.0182 26.0 0.0157 0.0157 30.0 0.0136 0.0136 34.5 0.0119 0.0119 40.0 0.0102 0.0102 46.0 0.0089 0.0089 52.5 0.0078 0.0078 60.0 0.0068 0.0068 69.0 0.0059 0.0059 79.0 0.0052 0.0052 90.5 0.0045 0.0045 105.5 0.0039 0.0039 123.5 0.0033 0.0033 143.0 0.0029 0.0029 163.5 0.0025 0.0025 185.0 0.0022 0.0022 208.0 0.0020 0.0020 232.5 0.0018 0.0018 258.5 0.0016 0.0016 286.0 0.0014 0.0014 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0007 0.0007 639.0 0.0006 0.0006 738.0 0.0006 0.0006 847.5 0.0005 0.0005 968.5 0.0004 0.0004 1102.0 0.0004 0.0004 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 -0.6 0.8 117 9.0 0.0450 0.0450 11.0 0.0368 0.0368 13.5 0.0300 0.0300 16.5 0.0246 0.0246 19.5 0.0208 0.0208 22.5 0.0180 0.0180 26.0 0.0156 0.0156 30.0 0.0135 0.0135 34.5 0.0117 0.0117 40.0 0.0101 0.0101 46.0 0.0088 0.0088 52.5 0.0077 0.0077 60.0 0.0068 0.0068 69.0 0.0059 0.0059 79.0 0.0051 0.0051 90.5 0.0045 0.0045 105.5 0.0038 0.0038 123.5 0.0033 0.0033 143.0 0.0028 0.0028 163.5 0.0025 0.0025 185.0 0.0022 0.0022 208.0 0.0019 0.0019 232.5 0.0017 0.0017 258.5 0.0016 0.0016 286.0 0.0014 0.0014 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0007 0.0007 639.0 0.0006 0.0006 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0004 0.0004 1102.0 0.0004 0.0004 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 -0.8 1.0 117 9.0 0.0456 0.0456 11.0 0.0373 0.0373 13.5 0.0304 0.0304 16.5 0.0249 0.0249 19.5 0.0211 0.0211 22.5 0.0182 0.0182 26.0 0.0158 0.0158 30.0 0.0137 0.0137 34.5 0.0119 0.0119 40.0 0.0103 0.0103 46.0 0.0089 0.0089 52.5 0.0078 0.0078 60.0 0.0068 0.0068 69.0 0.0060 0.0060 79.0 0.0052 0.0052 90.5 0.0045 0.0045 105.5 0.0039 0.0039 123.5 0.0033 0.0033 143.0 0.0029 0.0029 163.5 0.0025 0.0025 185.0 0.0022 0.0022 208.0 0.0020 0.0020 232.5 0.0018 0.0018 258.5 0.0016 0.0016 286.0 0.0014 0.0014 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0007 0.0007 639.0 0.0006 0.0006 738.0 0.0006 0.0006 847.5 0.0005 0.0005 968.5 0.0004 0.0004 1102.0 0.0004 0.0004 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 -1.0 1.2 117 9.0 0.0457 0.0457 11.0 0.0374 0.0374 13.5 0.0304 0.0304 16.5 0.0249 0.0249 19.5 0.0211 0.0211 22.5 0.0183 0.0183 26.0 0.0158 0.0158 30.0 0.0137 0.0137 34.5 0.0119 0.0119 40.0 0.0103 0.0103 46.0 0.0089 0.0089 52.5 0.0078 0.0078 60.0 0.0068 0.0068 69.0 0.0060 0.0060 79.0 0.0052 0.0052 90.5 0.0045 0.0045 105.5 0.0039 0.0039 123.5 0.0033 0.0033 143.0 0.0029 0.0029 163.5 0.0025 0.0025 185.0 0.0022 0.0022 208.0 0.0020 0.0020 232.5 0.0018 0.0018 258.5 0.0016 0.0016 286.0 0.0014 0.0014 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0007 0.0007 639.0 0.0006 0.0006 738.0 0.0006 0.0006 847.5 0.0005 0.0005 968.5 0.0004 0.0004 1102.0 0.0004 0.0004 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 -1.2 1.4 117 9.0 0.0454 0.0454 11.0 0.0371 0.0371 13.5 0.0303 0.0303 16.5 0.0248 0.0248 19.5 0.0209 0.0209 22.5 0.0182 0.0182 26.0 0.0157 0.0157 30.0 0.0136 0.0136 34.5 0.0118 0.0118 40.0 0.0102 0.0102 46.0 0.0089 0.0089 52.5 0.0078 0.0078 60.0 0.0068 0.0068 69.0 0.0059 0.0059 79.0 0.0052 0.0052 90.5 0.0045 0.0045 105.5 0.0039 0.0039 123.5 0.0033 0.0033 143.0 0.0029 0.0029 163.5 0.0025 0.0025 185.0 0.0022 0.0022 208.0 0.0020 0.0020 232.5 0.0018 0.0018 258.5 0.0016 0.0016 286.0 0.0014 0.0014 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0007 0.0007 639.0 0.0006 0.0006 738.0 0.0006 0.0006 847.5 0.0005 0.0005 968.5 0.0004 0.0004 1102.0 0.0004 0.0004 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 -1.4 1.6 117 9.0 0.0456 0.0456 11.0 0.0373 0.0373 13.5 0.0304 0.0304 16.5 0.0249 0.0249 19.5 0.0211 0.0211 22.5 0.0183 0.0183 26.0 0.0158 0.0158 30.0 0.0137 0.0137 34.5 0.0119 0.0119 40.0 0.0103 0.0103 46.0 0.0089 0.0089 52.5 0.0078 0.0078 60.0 0.0068 0.0068 69.0 0.0060 0.0060 79.0 0.0052 0.0052 90.5 0.0045 0.0045 105.5 0.0039 0.0039 123.5 0.0033 0.0033 143.0 0.0029 0.0029 163.5 0.0025 0.0025 185.0 0.0022 0.0022 208.0 0.0020 0.0020 232.5 0.0018 0.0018 258.5 0.0016 0.0016 286.0 0.0014 0.0014 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0007 0.0007 639.0 0.0006 0.0006 738.0 0.0006 0.0006 847.5 0.0005 0.0005 968.5 0.0004 0.0004 1102.0 0.0004 0.0004 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 -1.6 1.8 117 9.0 0.0458 0.0458 11.0 0.0374 0.0374 13.5 0.0305 0.0305 16.5 0.0250 0.0250 19.5 0.0211 0.0211 22.5 0.0183 0.0183 26.0 0.0158 0.0158 30.0 0.0137 0.0137 34.5 0.0119 0.0119 40.0 0.0103 0.0103 46.0 0.0090 0.0090 52.5 0.0078 0.0078 60.0 0.0069 0.0069 69.0 0.0060 0.0060 79.0 0.0052 0.0052 90.5 0.0046 0.0046 105.5 0.0039 0.0039 123.5 0.0033 0.0033 143.0 0.0029 0.0029 163.5 0.0025 0.0025 185.0 0.0022 0.0022 208.0 0.0020 0.0020 232.5 0.0018 0.0018 258.5 0.0016 0.0016 286.0 0.0014 0.0014 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0007 0.0007 639.0 0.0006 0.0006 738.0 0.0006 0.0006 847.5 0.0005 0.0005 968.5 0.0004 0.0004 1102.0 0.0004 0.0004 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 -1.8 2.0 117 9.0 0.0461 0.0461 11.0 0.0377 0.0377 13.5 0.0308 0.0308 16.5 0.0252 0.0252 19.5 0.0213 0.0213 22.5 0.0185 0.0185 26.0 0.0160 0.0160 30.0 0.0138 0.0138 34.5 0.0120 0.0120 40.0 0.0104 0.0104 46.0 0.0090 0.0090 52.5 0.0079 0.0079 60.0 0.0069 0.0069 69.0 0.0060 0.0060 79.0 0.0053 0.0053 90.5 0.0046 0.0046 105.5 0.0039 0.0039 123.5 0.0034 0.0034 143.0 0.0029 0.0029 163.5 0.0025 0.0025 185.0 0.0022 0.0022 208.0 0.0020 0.0020 232.5 0.0018 0.0018 258.5 0.0016 0.0016 286.0 0.0015 0.0015 331.0 0.0013 0.0013 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0006 0.0006 738.0 0.0006 0.0006 847.5 0.0005 0.0005 968.5 0.0004 0.0004 1102.0 0.0004 0.0004 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 -2.0 2.2 117 9.0 0.0470 0.0470 11.0 0.0385 0.0385 13.5 0.0314 0.0314 16.5 0.0257 0.0257 19.5 0.0217 0.0217 22.5 0.0188 0.0188 26.0 0.0163 0.0163 30.0 0.0141 0.0141 34.5 0.0123 0.0123 40.0 0.0106 0.0106 46.0 0.0092 0.0092 52.5 0.0081 0.0081 60.0 0.0071 0.0071 69.0 0.0061 0.0061 79.0 0.0054 0.0054 90.5 0.0047 0.0047 105.5 0.0040 0.0040 123.5 0.0034 0.0034 143.0 0.0030 0.0030 163.5 0.0026 0.0026 185.0 0.0023 0.0023 208.0 0.0020 0.0020 232.5 0.0018 0.0018 258.5 0.0016 0.0016 286.0 0.0015 0.0015 331.0 0.0013 0.0013 396.0 0.0011 0.0011 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0005 0.0005 968.5 0.0004 0.0004 1102.0 0.0004 0.0004 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 -2.2 2.4 117 9.0 0.0514 0.0514 11.0 0.0421 0.0421 13.5 0.0343 0.0343 16.5 0.0280 0.0280 19.5 0.0237 0.0237 22.5 0.0206 0.0206 26.0 0.0178 0.0178 30.0 0.0154 0.0154 34.5 0.0134 0.0134 40.0 0.0116 0.0116 46.0 0.0101 0.0101 52.5 0.0088 0.0088 60.0 0.0077 0.0077 69.0 0.0067 0.0067 79.0 0.0059 0.0059 90.5 0.0051 0.0051 105.5 0.0044 0.0044 123.5 0.0037 0.0037 143.0 0.0032 0.0032 163.5 0.0028 0.0028 185.0 0.0025 0.0025 208.0 0.0022 0.0022 232.5 0.0020 0.0020 258.5 0.0018 0.0018 286.0 0.0016 0.0016 331.0 0.0014 0.0014 396.0 0.0012 0.0012 468.5 0.0010 0.0010 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0005 0.0005 968.5 0.0005 0.0005 1102.0 0.0004 0.0004 1249.5 0.0004 0.0004 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0002 0.0002 -2.4 2.6 117 9.0 0.0701 0.0701 11.0 0.0574 0.0574 13.5 0.0467 0.0467 16.5 0.0382 0.0382 19.5 0.0324 0.0324 22.5 0.0280 0.0280 26.0 0.0243 0.0243 30.0 0.0210 0.0210 34.5 0.0183 0.0183 40.0 0.0158 0.0158 46.0 0.0137 0.0137 52.5 0.0120 0.0120 60.0 0.0105 0.0105 69.0 0.0091 0.0091 79.0 0.0080 0.0080 90.5 0.0070 0.0070 105.5 0.0060 0.0060 123.5 0.0051 0.0051 143.0 0.0044 0.0044 163.5 0.0039 0.0039 185.0 0.0034 0.0034 208.0 0.0030 0.0030 232.5 0.0027 0.0027 258.5 0.0024 0.0024 286.0 0.0022 0.0022 331.0 0.0019 0.0019 396.0 0.0016 0.0016 468.5 0.0013 0.0013 549.5 0.0011 0.0011 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0007 0.0007 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0003 0.0003 -2.6 2.8 117 9.0 0.0699 0.0699 11.0 0.0572 0.0572 13.5 0.0466 0.0466 16.5 0.0381 0.0381 19.5 0.0323 0.0323 22.5 0.0280 0.0280 26.0 0.0242 0.0242 30.0 0.0210 0.0210 34.5 0.0182 0.0182 40.0 0.0157 0.0157 46.0 0.0137 0.0137 52.5 0.0120 0.0120 60.0 0.0105 0.0105 69.0 0.0091 0.0091 79.0 0.0080 0.0080 90.5 0.0070 0.0070 105.5 0.0060 0.0060 123.5 0.0051 0.0051 143.0 0.0044 0.0044 163.5 0.0038 0.0038 185.0 0.0034 0.0034 208.0 0.0030 0.0030 232.5 0.0027 0.0027 258.5 0.0024 0.0024 286.0 0.0022 0.0022 331.0 0.0019 0.0019 396.0 0.0016 0.0016 468.5 0.0013 0.0013 549.5 0.0011 0.0011 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0003 0.0003 -2.8 3.0 117 9.0 0.0653 0.0653 11.0 0.0534 0.0534 13.5 0.0435 0.0435 16.5 0.0356 0.0356 19.5 0.0301 0.0301 22.5 0.0261 0.0261 26.0 0.0226 0.0226 30.0 0.0196 0.0196 34.5 0.0170 0.0170 40.0 0.0147 0.0147 46.0 0.0128 0.0128 52.5 0.0112 0.0112 60.0 0.0098 0.0098 69.0 0.0085 0.0085 79.0 0.0074 0.0074 90.5 0.0065 0.0065 105.5 0.0056 0.0056 123.5 0.0048 0.0048 143.0 0.0041 0.0041 163.5 0.0036 0.0036 185.0 0.0032 0.0032 208.0 0.0028 0.0028 232.5 0.0025 0.0025 258.5 0.0023 0.0023 286.0 0.0021 0.0021 331.0 0.0018 0.0018 396.0 0.0015 0.0015 468.5 0.0013 0.0013 549.5 0.0011 0.0011 639.0 0.0009 0.0009 738.0 0.0008 0.0008 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -3.0 3.5 117 9.0 0.0450 0.0450 11.0 0.0368 0.0368 13.5 0.0300 0.0300 16.5 0.0245 0.0245 19.5 0.0208 0.0208 22.5 0.0180 0.0180 26.0 0.0156 0.0156 30.0 0.0135 0.0135 34.5 0.0117 0.0117 40.0 0.0101 0.0101 46.0 0.0088 0.0088 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0059 0.0059 79.0 0.0051 0.0051 90.5 0.0045 0.0045 105.5 0.0038 0.0038 123.5 0.0033 0.0033 143.0 0.0028 0.0028 163.5 0.0025 0.0025 185.0 0.0022 0.0022 208.0 0.0019 0.0019 232.5 0.0017 0.0017 258.5 0.0016 0.0016 286.0 0.0014 0.0014 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0007 0.0007 639.0 0.0006 0.0006 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0004 0.0004 1102.0 0.0004 0.0004 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 -3.5 4.0 117 9.0 0.0303 0.0303 11.0 0.0248 0.0248 13.5 0.0202 0.0202 16.5 0.0165 0.0165 19.5 0.0140 0.0140 22.5 0.0121 0.0121 26.0 0.0105 0.0105 30.0 0.0091 0.0091 34.5 0.0079 0.0079 40.0 0.0068 0.0068 46.0 0.0059 0.0059 52.5 0.0052 0.0052 60.0 0.0045 0.0045 69.0 0.0040 0.0040 79.0 0.0035 0.0035 90.5 0.0030 0.0030 105.5 0.0026 0.0026 123.5 0.0022 0.0022 143.0 0.0019 0.0019 163.5 0.0017 0.0017 185.0 0.0015 0.0015 208.0 0.0013 0.0013 232.5 0.0012 0.0012 258.5 0.0011 0.0011 286.0 0.0010 0.0010 331.0 0.0008 0.0008 396.0 0.0007 0.0007 468.5 0.0006 0.0006 549.5 0.0005 0.0005 639.0 0.0004 0.0004 738.0 0.0004 0.0004 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0002 0.0002 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0001 0.0001 -4.0 4.5 117 9.0 0.0247 0.0247 11.0 0.0202 0.0202 13.5 0.0165 0.0165 16.5 0.0135 0.0135 19.5 0.0114 0.0114 22.5 0.0099 0.0099 26.0 0.0086 0.0086 30.0 0.0074 0.0074 34.5 0.0064 0.0064 40.0 0.0056 0.0056 46.0 0.0048 0.0048 52.5 0.0042 0.0042 60.0 0.0037 0.0037 69.0 0.0032 0.0032 79.0 0.0028 0.0028 90.5 0.0025 0.0025 105.5 0.0021 0.0021 123.5 0.0018 0.0018 143.0 0.0016 0.0016 163.5 0.0014 0.0014 185.0 0.0012 0.0012 208.0 0.0011 0.0011 232.5 0.0010 0.0010 258.5 0.0009 0.0009 286.0 0.0008 0.0008 331.0 0.0007 0.0007 396.0 0.0006 0.0006 468.5 0.0005 0.0005 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0002 0.0002 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 -4.5 5.2 117 9.0 0.0132 0.0132 11.0 0.0108 0.0108 13.5 0.0088 0.0088 16.5 0.0072 0.0072 19.5 0.0061 0.0061 22.5 0.0053 0.0053 26.0 0.0046 0.0046 30.0 0.0039 0.0039 34.5 0.0034 0.0034 40.0 0.0030 0.0030 46.0 0.0026 0.0026 52.5 0.0023 0.0023 60.0 0.0020 0.0020 69.0 0.0017 0.0017 79.0 0.0015 0.0015 90.5 0.0013 0.0013 105.5 0.0011 0.0011 123.5 0.0010 0.0010 143.0 0.0008 0.0008 163.5 0.0007 0.0007 185.0 0.0006 0.0006 208.0 0.0006 0.0006 232.5 0.0005 0.0005 258.5 0.0005 0.0005 286.0 0.0004 0.0004 331.0 0.0004 0.0004 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0002 0.0002 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 -[PileUpBias] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 -0.0074 -0.0074 11.0 -0.0058 -0.0058 13.5 -0.0046 -0.0046 16.5 -0.0037 -0.0037 19.5 -0.0031 -0.0031 22.5 -0.0026 -0.0026 26.0 -0.0022 -0.0022 30.0 -0.0019 -0.0019 34.5 -0.0017 -0.0017 40.0 -0.0014 -0.0014 46.0 -0.0012 -0.0012 52.5 -0.0011 -0.0011 60.0 -0.0009 -0.0009 69.0 -0.0008 -0.0008 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0004 -0.0004 143.0 -0.0004 -0.0004 163.5 -0.0003 -0.0003 185.0 -0.0003 -0.0003 208.0 -0.0003 -0.0003 232.5 -0.0002 -0.0002 258.5 -0.0002 -0.0002 286.0 -0.0002 -0.0002 331.0 -0.0002 -0.0002 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 --4.5 -4.0 117 9.0 -0.0171 -0.0171 11.0 -0.0128 -0.0128 13.5 -0.0098 -0.0098 16.5 -0.0076 -0.0076 19.5 -0.0062 -0.0062 22.5 -0.0053 -0.0053 26.0 -0.0045 -0.0045 30.0 -0.0038 -0.0038 34.5 -0.0033 -0.0033 40.0 -0.0028 -0.0028 46.0 -0.0024 -0.0024 52.5 -0.0021 -0.0021 60.0 -0.0018 -0.0018 69.0 -0.0016 -0.0016 79.0 -0.0014 -0.0014 90.5 -0.0012 -0.0012 105.5 -0.0010 -0.0010 123.5 -0.0009 -0.0009 143.0 -0.0007 -0.0007 163.5 -0.0006 -0.0006 185.0 -0.0006 -0.0006 208.0 -0.0005 -0.0005 232.5 -0.0004 -0.0004 258.5 -0.0004 -0.0004 286.0 -0.0004 -0.0004 331.0 -0.0003 -0.0003 396.0 -0.0003 -0.0003 468.5 -0.0002 -0.0002 549.5 -0.0002 -0.0002 639.0 -0.0002 -0.0002 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 --4.0 -3.5 117 9.0 -0.0068 -0.0068 11.0 -0.0049 -0.0049 13.5 -0.0037 -0.0037 16.5 -0.0028 -0.0028 19.5 -0.0023 -0.0023 22.5 -0.0019 -0.0019 26.0 -0.0016 -0.0016 30.0 -0.0014 -0.0014 34.5 -0.0012 -0.0012 40.0 -0.0010 -0.0010 46.0 -0.0009 -0.0009 52.5 -0.0007 -0.0007 60.0 -0.0006 -0.0006 69.0 -0.0006 -0.0006 79.0 -0.0005 -0.0005 90.5 -0.0004 -0.0004 105.5 -0.0004 -0.0004 123.5 -0.0003 -0.0003 143.0 -0.0003 -0.0003 163.5 -0.0002 -0.0002 185.0 -0.0002 -0.0002 208.0 -0.0002 -0.0002 232.5 -0.0002 -0.0002 258.5 -0.0001 -0.0001 286.0 -0.0001 -0.0001 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0000 -0.0000 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 --3.5 -3.0 117 9.0 0.2355 0.2355 11.0 0.1515 0.1515 13.5 0.1047 0.1047 16.5 0.0764 0.0764 19.5 0.0602 0.0602 22.5 0.0496 0.0496 26.0 0.0412 0.0412 30.0 0.0345 0.0345 34.5 0.0292 0.0292 40.0 0.0245 0.0245 46.0 0.0209 0.0209 52.5 0.0180 0.0180 60.0 0.0155 0.0155 69.0 0.0133 0.0133 79.0 0.0115 0.0115 90.5 0.0100 0.0100 105.5 0.0085 0.0085 123.5 0.0072 0.0072 143.0 0.0062 0.0062 163.5 0.0054 0.0054 185.0 0.0047 0.0047 208.0 0.0042 0.0042 232.5 0.0037 0.0037 258.5 0.0034 0.0034 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0018 0.0018 549.5 0.0016 0.0016 639.0 0.0013 0.0013 738.0 0.0012 0.0012 847.5 0.0010 0.0010 968.5 0.0009 0.0009 1102.0 0.0008 0.0008 1249.5 0.0007 0.0007 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1944.5 0.0004 0.0004 --3.0 -2.8 117 9.0 1.0855 1.0855 11.0 0.4675 0.4675 13.5 0.2731 0.2731 16.5 0.1822 0.1822 19.5 0.1367 0.1367 22.5 0.1094 0.1094 26.0 0.0887 0.0887 30.0 0.0729 0.0729 34.5 0.0608 0.0608 40.0 0.0505 0.0505 46.0 0.0426 0.0426 52.5 0.0365 0.0365 60.0 0.0313 0.0313 69.0 0.0267 0.0267 79.0 0.0230 0.0230 90.5 0.0198 0.0198 105.5 0.0168 0.0168 123.5 0.0142 0.0142 143.0 0.0121 0.0121 163.5 0.0105 0.0105 185.0 0.0093 0.0093 208.0 0.0082 0.0082 232.5 0.0073 0.0073 258.5 0.0065 0.0065 286.0 0.0059 0.0059 331.0 0.0051 0.0051 396.0 0.0042 0.0042 468.5 0.0036 0.0036 549.5 0.0030 0.0030 639.0 0.0026 0.0026 738.0 0.0022 0.0022 847.5 0.0020 0.0020 968.5 0.0017 0.0017 1102.0 0.0015 0.0015 1249.5 0.0013 0.0013 1412.0 0.0012 0.0012 1590.5 0.0010 0.0010 1787.0 0.0009 0.0009 1944.5 0.0008 0.0008 --2.8 -2.6 117 9.0 1.3138 1.3138 11.0 0.4682 0.4682 13.5 0.2595 0.2595 16.5 0.1690 0.1690 19.5 0.1253 0.1253 22.5 0.0996 0.0996 26.0 0.0803 0.0803 30.0 0.0658 0.0658 34.5 0.0547 0.0547 40.0 0.0453 0.0453 46.0 0.0382 0.0382 52.5 0.0326 0.0326 60.0 0.0279 0.0279 69.0 0.0238 0.0238 79.0 0.0205 0.0205 90.5 0.0176 0.0176 105.5 0.0149 0.0149 123.5 0.0126 0.0126 143.0 0.0108 0.0108 163.5 0.0093 0.0093 185.0 0.0082 0.0082 208.0 0.0073 0.0073 232.5 0.0065 0.0065 258.5 0.0058 0.0058 286.0 0.0052 0.0052 331.0 0.0045 0.0045 396.0 0.0037 0.0037 468.5 0.0032 0.0032 549.5 0.0027 0.0027 639.0 0.0023 0.0023 738.0 0.0020 0.0020 847.5 0.0017 0.0017 968.5 0.0015 0.0015 1102.0 0.0013 0.0013 1249.5 0.0012 0.0012 1412.0 0.0010 0.0010 1590.5 0.0009 0.0009 1787.0 0.0008 0.0008 1944.5 0.0008 0.0008 --2.6 -2.4 117 9.0 0.4106 0.4106 11.0 0.2049 0.2049 13.5 0.1260 0.1260 16.5 0.0861 0.0861 19.5 0.0655 0.0655 22.5 0.0528 0.0528 26.0 0.0431 0.0431 30.0 0.0356 0.0356 34.5 0.0297 0.0297 40.0 0.0248 0.0248 46.0 0.0210 0.0210 52.5 0.0180 0.0180 60.0 0.0154 0.0154 69.0 0.0132 0.0132 79.0 0.0114 0.0114 90.5 0.0098 0.0098 105.5 0.0083 0.0083 123.5 0.0070 0.0070 143.0 0.0060 0.0060 163.5 0.0052 0.0052 185.0 0.0046 0.0046 208.0 0.0041 0.0041 232.5 0.0036 0.0036 258.5 0.0033 0.0033 286.0 0.0029 0.0029 331.0 0.0025 0.0025 396.0 0.0021 0.0021 468.5 0.0018 0.0018 549.5 0.0015 0.0015 639.0 0.0013 0.0013 738.0 0.0011 0.0011 847.5 0.0010 0.0010 968.5 0.0009 0.0009 1102.0 0.0007 0.0007 1249.5 0.0007 0.0007 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1944.5 0.0004 0.0004 --2.4 -2.2 117 9.0 0.0536 0.0536 11.0 0.0357 0.0357 13.5 0.0252 0.0252 16.5 0.0186 0.0186 19.5 0.0147 0.0147 22.5 0.0122 0.0122 26.0 0.0102 0.0102 30.0 0.0085 0.0085 34.5 0.0072 0.0072 40.0 0.0061 0.0061 46.0 0.0052 0.0052 52.5 0.0045 0.0045 60.0 0.0039 0.0039 69.0 0.0033 0.0033 79.0 0.0029 0.0029 90.5 0.0025 0.0025 105.5 0.0021 0.0021 123.5 0.0018 0.0018 143.0 0.0015 0.0015 163.5 0.0013 0.0013 185.0 0.0012 0.0012 208.0 0.0011 0.0011 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0008 0.0008 331.0 0.0007 0.0007 396.0 0.0005 0.0005 468.5 0.0005 0.0005 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0002 0.0002 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --2.2 -2.0 117 9.0 -0.0165 -0.0165 11.0 -0.0109 -0.0109 13.5 -0.0076 -0.0076 16.5 -0.0056 -0.0056 19.5 -0.0045 -0.0045 22.5 -0.0037 -0.0037 26.0 -0.0031 -0.0031 30.0 -0.0026 -0.0026 34.5 -0.0022 -0.0022 40.0 -0.0018 -0.0018 46.0 -0.0016 -0.0016 52.5 -0.0014 -0.0014 60.0 -0.0012 -0.0012 69.0 -0.0010 -0.0010 79.0 -0.0009 -0.0009 90.5 -0.0007 -0.0007 105.5 -0.0006 -0.0006 123.5 -0.0005 -0.0005 143.0 -0.0005 -0.0005 163.5 -0.0004 -0.0004 185.0 -0.0004 -0.0004 208.0 -0.0003 -0.0003 232.5 -0.0003 -0.0003 258.5 -0.0003 -0.0003 286.0 -0.0002 -0.0002 331.0 -0.0002 -0.0002 396.0 -0.0002 -0.0002 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 --2.0 -1.8 117 9.0 -0.0662 -0.0662 11.0 -0.0442 -0.0442 13.5 -0.0312 -0.0312 16.5 -0.0231 -0.0231 19.5 -0.0183 -0.0183 22.5 -0.0152 -0.0152 26.0 -0.0126 -0.0126 30.0 -0.0106 -0.0106 34.5 -0.0090 -0.0090 40.0 -0.0076 -0.0076 46.0 -0.0065 -0.0065 52.5 -0.0056 -0.0056 60.0 -0.0048 -0.0048 69.0 -0.0042 -0.0042 79.0 -0.0036 -0.0036 90.5 -0.0031 -0.0031 105.5 -0.0026 -0.0026 123.5 -0.0022 -0.0022 143.0 -0.0019 -0.0019 163.5 -0.0017 -0.0017 185.0 -0.0015 -0.0015 208.0 -0.0013 -0.0013 232.5 -0.0012 -0.0012 258.5 -0.0010 -0.0010 286.0 -0.0009 -0.0009 331.0 -0.0008 -0.0008 396.0 -0.0007 -0.0007 468.5 -0.0006 -0.0006 549.5 -0.0005 -0.0005 639.0 -0.0004 -0.0004 738.0 -0.0004 -0.0004 847.5 -0.0003 -0.0003 968.5 -0.0003 -0.0003 1102.0 -0.0002 -0.0002 1249.5 -0.0002 -0.0002 1412.0 -0.0002 -0.0002 1590.5 -0.0002 -0.0002 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 --1.8 -1.6 117 9.0 -0.0623 -0.0623 11.0 -0.0415 -0.0415 13.5 -0.0292 -0.0292 16.5 -0.0216 -0.0216 19.5 -0.0171 -0.0171 22.5 -0.0142 -0.0142 26.0 -0.0118 -0.0118 30.0 -0.0099 -0.0099 34.5 -0.0084 -0.0084 40.0 -0.0071 -0.0071 46.0 -0.0061 -0.0061 52.5 -0.0052 -0.0052 60.0 -0.0045 -0.0045 69.0 -0.0039 -0.0039 79.0 -0.0034 -0.0034 90.5 -0.0029 -0.0029 105.5 -0.0025 -0.0025 123.5 -0.0021 -0.0021 143.0 -0.0018 -0.0018 163.5 -0.0016 -0.0016 185.0 -0.0014 -0.0014 208.0 -0.0012 -0.0012 232.5 -0.0011 -0.0011 258.5 -0.0010 -0.0010 286.0 -0.0009 -0.0009 331.0 -0.0008 -0.0008 396.0 -0.0006 -0.0006 468.5 -0.0005 -0.0005 549.5 -0.0005 -0.0005 639.0 -0.0004 -0.0004 738.0 -0.0003 -0.0003 847.5 -0.0003 -0.0003 968.5 -0.0003 -0.0003 1102.0 -0.0002 -0.0002 1249.5 -0.0002 -0.0002 1412.0 -0.0002 -0.0002 1590.5 -0.0002 -0.0002 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 --1.6 -1.4 117 9.0 -0.0567 -0.0567 11.0 -0.0378 -0.0378 13.5 -0.0267 -0.0267 16.5 -0.0198 -0.0198 19.5 -0.0157 -0.0157 22.5 -0.0130 -0.0130 26.0 -0.0108 -0.0108 30.0 -0.0091 -0.0091 34.5 -0.0077 -0.0077 40.0 -0.0065 -0.0065 46.0 -0.0055 -0.0055 52.5 -0.0048 -0.0048 60.0 -0.0041 -0.0041 69.0 -0.0036 -0.0036 79.0 -0.0031 -0.0031 90.5 -0.0027 -0.0027 105.5 -0.0023 -0.0023 123.5 -0.0019 -0.0019 143.0 -0.0016 -0.0016 163.5 -0.0014 -0.0014 185.0 -0.0013 -0.0013 208.0 -0.0011 -0.0011 232.5 -0.0010 -0.0010 258.5 -0.0009 -0.0009 286.0 -0.0008 -0.0008 331.0 -0.0007 -0.0007 396.0 -0.0006 -0.0006 468.5 -0.0005 -0.0005 549.5 -0.0004 -0.0004 639.0 -0.0004 -0.0004 738.0 -0.0003 -0.0003 847.5 -0.0003 -0.0003 968.5 -0.0002 -0.0002 1102.0 -0.0002 -0.0002 1249.5 -0.0002 -0.0002 1412.0 -0.0002 -0.0002 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 --1.4 -1.2 117 9.0 -0.0528 -0.0528 11.0 -0.0352 -0.0352 13.5 -0.0248 -0.0248 16.5 -0.0183 -0.0183 19.5 -0.0145 -0.0145 22.5 -0.0120 -0.0120 26.0 -0.0100 -0.0100 30.0 -0.0084 -0.0084 34.5 -0.0071 -0.0071 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0044 -0.0044 60.0 -0.0038 -0.0038 69.0 -0.0033 -0.0033 79.0 -0.0028 -0.0028 90.5 -0.0025 -0.0025 105.5 -0.0021 -0.0021 123.5 -0.0018 -0.0018 143.0 -0.0015 -0.0015 163.5 -0.0013 -0.0013 185.0 -0.0012 -0.0012 208.0 -0.0010 -0.0010 232.5 -0.0009 -0.0009 258.5 -0.0008 -0.0008 286.0 -0.0007 -0.0007 331.0 -0.0006 -0.0006 396.0 -0.0005 -0.0005 468.5 -0.0005 -0.0005 549.5 -0.0004 -0.0004 639.0 -0.0003 -0.0003 738.0 -0.0003 -0.0003 847.5 -0.0002 -0.0002 968.5 -0.0002 -0.0002 1102.0 -0.0002 -0.0002 1249.5 -0.0002 -0.0002 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 --1.2 -1.0 117 9.0 -0.0491 -0.0491 11.0 -0.0326 -0.0326 13.5 -0.0229 -0.0229 16.5 -0.0169 -0.0169 19.5 -0.0134 -0.0134 22.5 -0.0111 -0.0111 26.0 -0.0092 -0.0092 30.0 -0.0077 -0.0077 34.5 -0.0066 -0.0066 40.0 -0.0055 -0.0055 46.0 -0.0047 -0.0047 52.5 -0.0041 -0.0041 60.0 -0.0035 -0.0035 69.0 -0.0030 -0.0030 79.0 -0.0026 -0.0026 90.5 -0.0023 -0.0023 105.5 -0.0019 -0.0019 123.5 -0.0016 -0.0016 143.0 -0.0014 -0.0014 163.5 -0.0012 -0.0012 185.0 -0.0011 -0.0011 208.0 -0.0010 -0.0010 232.5 -0.0008 -0.0008 258.5 -0.0008 -0.0008 286.0 -0.0007 -0.0007 331.0 -0.0006 -0.0006 396.0 -0.0005 -0.0005 468.5 -0.0004 -0.0004 549.5 -0.0004 -0.0004 639.0 -0.0003 -0.0003 738.0 -0.0003 -0.0003 847.5 -0.0002 -0.0002 968.5 -0.0002 -0.0002 1102.0 -0.0002 -0.0002 1249.5 -0.0002 -0.0002 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 --1.0 -0.8 117 9.0 -0.0441 -0.0441 11.0 -0.0293 -0.0293 13.5 -0.0206 -0.0206 16.5 -0.0152 -0.0152 19.5 -0.0120 -0.0120 22.5 -0.0100 -0.0100 26.0 -0.0083 -0.0083 30.0 -0.0070 -0.0070 34.5 -0.0059 -0.0059 40.0 -0.0050 -0.0050 46.0 -0.0042 -0.0042 52.5 -0.0037 -0.0037 60.0 -0.0032 -0.0032 69.0 -0.0027 -0.0027 79.0 -0.0023 -0.0023 90.5 -0.0020 -0.0020 105.5 -0.0017 -0.0017 123.5 -0.0015 -0.0015 143.0 -0.0013 -0.0013 163.5 -0.0011 -0.0011 185.0 -0.0010 -0.0010 208.0 -0.0009 -0.0009 232.5 -0.0008 -0.0008 258.5 -0.0007 -0.0007 286.0 -0.0006 -0.0006 331.0 -0.0005 -0.0005 396.0 -0.0004 -0.0004 468.5 -0.0004 -0.0004 549.5 -0.0003 -0.0003 639.0 -0.0003 -0.0003 738.0 -0.0002 -0.0002 847.5 -0.0002 -0.0002 968.5 -0.0002 -0.0002 1102.0 -0.0002 -0.0002 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 --0.8 -0.6 117 9.0 -0.0405 -0.0405 11.0 -0.0267 -0.0267 13.5 -0.0187 -0.0187 16.5 -0.0138 -0.0138 19.5 -0.0109 -0.0109 22.5 -0.0090 -0.0090 26.0 -0.0075 -0.0075 30.0 -0.0063 -0.0063 34.5 -0.0053 -0.0053 40.0 -0.0045 -0.0045 46.0 -0.0038 -0.0038 52.5 -0.0033 -0.0033 60.0 -0.0029 -0.0029 69.0 -0.0025 -0.0025 79.0 -0.0021 -0.0021 90.5 -0.0018 -0.0018 105.5 -0.0016 -0.0016 123.5 -0.0013 -0.0013 143.0 -0.0011 -0.0011 163.5 -0.0010 -0.0010 185.0 -0.0009 -0.0009 208.0 -0.0008 -0.0008 232.5 -0.0007 -0.0007 258.5 -0.0006 -0.0006 286.0 -0.0006 -0.0006 331.0 -0.0005 -0.0005 396.0 -0.0004 -0.0004 468.5 -0.0003 -0.0003 549.5 -0.0003 -0.0003 639.0 -0.0002 -0.0002 738.0 -0.0002 -0.0002 847.5 -0.0002 -0.0002 968.5 -0.0002 -0.0002 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 --0.6 -0.4 117 9.0 -0.0386 -0.0386 11.0 -0.0250 -0.0250 13.5 -0.0174 -0.0174 16.5 -0.0127 -0.0127 19.5 -0.0101 -0.0101 22.5 -0.0083 -0.0083 26.0 -0.0069 -0.0069 30.0 -0.0058 -0.0058 34.5 -0.0049 -0.0049 40.0 -0.0041 -0.0041 46.0 -0.0035 -0.0035 52.5 -0.0030 -0.0030 60.0 -0.0026 -0.0026 69.0 -0.0022 -0.0022 79.0 -0.0019 -0.0019 90.5 -0.0017 -0.0017 105.5 -0.0014 -0.0014 123.5 -0.0012 -0.0012 143.0 -0.0010 -0.0010 163.5 -0.0009 -0.0009 185.0 -0.0008 -0.0008 208.0 -0.0007 -0.0007 232.5 -0.0006 -0.0006 258.5 -0.0006 -0.0006 286.0 -0.0005 -0.0005 331.0 -0.0004 -0.0004 396.0 -0.0004 -0.0004 468.5 -0.0003 -0.0003 549.5 -0.0003 -0.0003 639.0 -0.0002 -0.0002 738.0 -0.0002 -0.0002 847.5 -0.0002 -0.0002 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 --0.4 -0.2 117 9.0 -0.0364 -0.0364 11.0 -0.0232 -0.0232 13.5 -0.0160 -0.0160 16.5 -0.0116 -0.0116 19.5 -0.0091 -0.0091 22.5 -0.0075 -0.0075 26.0 -0.0062 -0.0062 30.0 -0.0052 -0.0052 34.5 -0.0044 -0.0044 40.0 -0.0037 -0.0037 46.0 -0.0032 -0.0032 52.5 -0.0027 -0.0027 60.0 -0.0023 -0.0023 69.0 -0.0020 -0.0020 79.0 -0.0017 -0.0017 90.5 -0.0015 -0.0015 105.5 -0.0013 -0.0013 123.5 -0.0011 -0.0011 143.0 -0.0009 -0.0009 163.5 -0.0008 -0.0008 185.0 -0.0007 -0.0007 208.0 -0.0006 -0.0006 232.5 -0.0006 -0.0006 258.5 -0.0005 -0.0005 286.0 -0.0005 -0.0005 331.0 -0.0004 -0.0004 396.0 -0.0003 -0.0003 468.5 -0.0003 -0.0003 549.5 -0.0002 -0.0002 639.0 -0.0002 -0.0002 738.0 -0.0002 -0.0002 847.5 -0.0002 -0.0002 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 --0.2 0.0 117 9.0 -0.0324 -0.0324 11.0 -0.0204 -0.0204 13.5 -0.0140 -0.0140 16.5 -0.0101 -0.0101 19.5 -0.0079 -0.0079 22.5 -0.0065 -0.0065 26.0 -0.0054 -0.0054 30.0 -0.0045 -0.0045 34.5 -0.0038 -0.0038 40.0 -0.0032 -0.0032 46.0 -0.0027 -0.0027 52.5 -0.0023 -0.0023 60.0 -0.0020 -0.0020 69.0 -0.0017 -0.0017 79.0 -0.0015 -0.0015 90.5 -0.0013 -0.0013 105.5 -0.0011 -0.0011 123.5 -0.0009 -0.0009 143.0 -0.0008 -0.0008 163.5 -0.0007 -0.0007 185.0 -0.0006 -0.0006 208.0 -0.0005 -0.0005 232.5 -0.0005 -0.0005 258.5 -0.0004 -0.0004 286.0 -0.0004 -0.0004 331.0 -0.0003 -0.0003 396.0 -0.0003 -0.0003 468.5 -0.0002 -0.0002 549.5 -0.0002 -0.0002 639.0 -0.0002 -0.0002 738.0 -0.0002 -0.0002 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 -0.0 0.2 117 9.0 -0.0360 -0.0360 11.0 -0.0226 -0.0226 13.5 -0.0154 -0.0154 16.5 -0.0111 -0.0111 19.5 -0.0087 -0.0087 22.5 -0.0072 -0.0072 26.0 -0.0059 -0.0059 30.0 -0.0050 -0.0050 34.5 -0.0042 -0.0042 40.0 -0.0035 -0.0035 46.0 -0.0030 -0.0030 52.5 -0.0026 -0.0026 60.0 -0.0022 -0.0022 69.0 -0.0019 -0.0019 79.0 -0.0016 -0.0016 90.5 -0.0014 -0.0014 105.5 -0.0012 -0.0012 123.5 -0.0010 -0.0010 143.0 -0.0009 -0.0009 163.5 -0.0008 -0.0008 185.0 -0.0007 -0.0007 208.0 -0.0006 -0.0006 232.5 -0.0005 -0.0005 258.5 -0.0005 -0.0005 286.0 -0.0004 -0.0004 331.0 -0.0004 -0.0004 396.0 -0.0003 -0.0003 468.5 -0.0003 -0.0003 549.5 -0.0002 -0.0002 639.0 -0.0002 -0.0002 738.0 -0.0002 -0.0002 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 -0.2 0.4 117 9.0 -0.0411 -0.0411 11.0 -0.0259 -0.0259 13.5 -0.0177 -0.0177 16.5 -0.0129 -0.0129 19.5 -0.0101 -0.0101 22.5 -0.0083 -0.0083 26.0 -0.0069 -0.0069 30.0 -0.0057 -0.0057 34.5 -0.0049 -0.0049 40.0 -0.0041 -0.0041 46.0 -0.0035 -0.0035 52.5 -0.0030 -0.0030 60.0 -0.0026 -0.0026 69.0 -0.0022 -0.0022 79.0 -0.0019 -0.0019 90.5 -0.0017 -0.0017 105.5 -0.0014 -0.0014 123.5 -0.0012 -0.0012 143.0 -0.0010 -0.0010 163.5 -0.0009 -0.0009 185.0 -0.0008 -0.0008 208.0 -0.0007 -0.0007 232.5 -0.0006 -0.0006 258.5 -0.0006 -0.0006 286.0 -0.0005 -0.0005 331.0 -0.0004 -0.0004 396.0 -0.0004 -0.0004 468.5 -0.0003 -0.0003 549.5 -0.0003 -0.0003 639.0 -0.0002 -0.0002 738.0 -0.0002 -0.0002 847.5 -0.0002 -0.0002 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 -0.4 0.6 117 9.0 -0.0444 -0.0444 11.0 -0.0284 -0.0284 13.5 -0.0195 -0.0195 16.5 -0.0142 -0.0142 19.5 -0.0112 -0.0112 22.5 -0.0092 -0.0092 26.0 -0.0076 -0.0076 30.0 -0.0064 -0.0064 34.5 -0.0054 -0.0054 40.0 -0.0045 -0.0045 46.0 -0.0039 -0.0039 52.5 -0.0033 -0.0033 60.0 -0.0029 -0.0029 69.0 -0.0025 -0.0025 79.0 -0.0021 -0.0021 90.5 -0.0018 -0.0018 105.5 -0.0016 -0.0016 123.5 -0.0013 -0.0013 143.0 -0.0011 -0.0011 163.5 -0.0010 -0.0010 185.0 -0.0009 -0.0009 208.0 -0.0008 -0.0008 232.5 -0.0007 -0.0007 258.5 -0.0006 -0.0006 286.0 -0.0006 -0.0006 331.0 -0.0005 -0.0005 396.0 -0.0004 -0.0004 468.5 -0.0003 -0.0003 549.5 -0.0003 -0.0003 639.0 -0.0002 -0.0002 738.0 -0.0002 -0.0002 847.5 -0.0002 -0.0002 968.5 -0.0002 -0.0002 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 -0.6 0.8 117 9.0 -0.0488 -0.0488 11.0 -0.0314 -0.0314 13.5 -0.0217 -0.0217 16.5 -0.0158 -0.0158 19.5 -0.0124 -0.0124 22.5 -0.0103 -0.0103 26.0 -0.0085 -0.0085 30.0 -0.0071 -0.0071 34.5 -0.0060 -0.0060 40.0 -0.0051 -0.0051 46.0 -0.0043 -0.0043 52.5 -0.0037 -0.0037 60.0 -0.0032 -0.0032 69.0 -0.0028 -0.0028 79.0 -0.0024 -0.0024 90.5 -0.0021 -0.0021 105.5 -0.0018 -0.0018 123.5 -0.0015 -0.0015 143.0 -0.0013 -0.0013 163.5 -0.0011 -0.0011 185.0 -0.0010 -0.0010 208.0 -0.0009 -0.0009 232.5 -0.0008 -0.0008 258.5 -0.0007 -0.0007 286.0 -0.0006 -0.0006 331.0 -0.0005 -0.0005 396.0 -0.0004 -0.0004 468.5 -0.0004 -0.0004 549.5 -0.0003 -0.0003 639.0 -0.0003 -0.0003 738.0 -0.0002 -0.0002 847.5 -0.0002 -0.0002 968.5 -0.0002 -0.0002 1102.0 -0.0002 -0.0002 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 -0.8 1.0 117 9.0 -0.0562 -0.0562 11.0 -0.0359 -0.0359 13.5 -0.0247 -0.0247 16.5 -0.0180 -0.0180 19.5 -0.0141 -0.0141 22.5 -0.0116 -0.0116 26.0 -0.0097 -0.0097 30.0 -0.0081 -0.0081 34.5 -0.0068 -0.0068 40.0 -0.0057 -0.0057 46.0 -0.0049 -0.0049 52.5 -0.0042 -0.0042 60.0 -0.0036 -0.0036 69.0 -0.0031 -0.0031 79.0 -0.0027 -0.0027 90.5 -0.0023 -0.0023 105.5 -0.0020 -0.0020 123.5 -0.0017 -0.0017 143.0 -0.0014 -0.0014 163.5 -0.0013 -0.0013 185.0 -0.0011 -0.0011 208.0 -0.0010 -0.0010 232.5 -0.0009 -0.0009 258.5 -0.0008 -0.0008 286.0 -0.0007 -0.0007 331.0 -0.0006 -0.0006 396.0 -0.0005 -0.0005 468.5 -0.0004 -0.0004 549.5 -0.0004 -0.0004 639.0 -0.0003 -0.0003 738.0 -0.0003 -0.0003 847.5 -0.0002 -0.0002 968.5 -0.0002 -0.0002 1102.0 -0.0002 -0.0002 1249.5 -0.0002 -0.0002 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 -1.0 1.2 117 9.0 -0.0622 -0.0622 11.0 -0.0397 -0.0397 13.5 -0.0273 -0.0273 16.5 -0.0199 -0.0199 19.5 -0.0156 -0.0156 22.5 -0.0129 -0.0129 26.0 -0.0107 -0.0107 30.0 -0.0089 -0.0089 34.5 -0.0075 -0.0075 40.0 -0.0063 -0.0063 46.0 -0.0054 -0.0054 52.5 -0.0047 -0.0047 60.0 -0.0040 -0.0040 69.0 -0.0034 -0.0034 79.0 -0.0030 -0.0030 90.5 -0.0026 -0.0026 105.5 -0.0022 -0.0022 123.5 -0.0019 -0.0019 143.0 -0.0016 -0.0016 163.5 -0.0014 -0.0014 185.0 -0.0012 -0.0012 208.0 -0.0011 -0.0011 232.5 -0.0010 -0.0010 258.5 -0.0009 -0.0009 286.0 -0.0008 -0.0008 331.0 -0.0007 -0.0007 396.0 -0.0006 -0.0006 468.5 -0.0005 -0.0005 549.5 -0.0004 -0.0004 639.0 -0.0003 -0.0003 738.0 -0.0003 -0.0003 847.5 -0.0003 -0.0003 968.5 -0.0002 -0.0002 1102.0 -0.0002 -0.0002 1249.5 -0.0002 -0.0002 1412.0 -0.0002 -0.0002 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 -1.2 1.4 117 9.0 -0.0669 -0.0669 11.0 -0.0428 -0.0428 13.5 -0.0295 -0.0295 16.5 -0.0215 -0.0215 19.5 -0.0169 -0.0169 22.5 -0.0139 -0.0139 26.0 -0.0116 -0.0116 30.0 -0.0097 -0.0097 34.5 -0.0082 -0.0082 40.0 -0.0069 -0.0069 46.0 -0.0059 -0.0059 52.5 -0.0051 -0.0051 60.0 -0.0044 -0.0044 69.0 -0.0037 -0.0037 79.0 -0.0032 -0.0032 90.5 -0.0028 -0.0028 105.5 -0.0024 -0.0024 123.5 -0.0020 -0.0020 143.0 -0.0017 -0.0017 163.5 -0.0015 -0.0015 185.0 -0.0013 -0.0013 208.0 -0.0012 -0.0012 232.5 -0.0010 -0.0010 258.5 -0.0009 -0.0009 286.0 -0.0008 -0.0008 331.0 -0.0007 -0.0007 396.0 -0.0006 -0.0006 468.5 -0.0005 -0.0005 549.5 -0.0004 -0.0004 639.0 -0.0004 -0.0004 738.0 -0.0003 -0.0003 847.5 -0.0003 -0.0003 968.5 -0.0002 -0.0002 1102.0 -0.0002 -0.0002 1249.5 -0.0002 -0.0002 1412.0 -0.0002 -0.0002 1590.5 -0.0002 -0.0002 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 -1.4 1.6 117 9.0 -0.0738 -0.0738 11.0 -0.0471 -0.0471 13.5 -0.0324 -0.0324 16.5 -0.0236 -0.0236 19.5 -0.0185 -0.0185 22.5 -0.0153 -0.0153 26.0 -0.0127 -0.0127 30.0 -0.0106 -0.0106 34.5 -0.0090 -0.0090 40.0 -0.0075 -0.0075 46.0 -0.0064 -0.0064 52.5 -0.0055 -0.0055 60.0 -0.0048 -0.0048 69.0 -0.0041 -0.0041 79.0 -0.0035 -0.0035 90.5 -0.0031 -0.0031 105.5 -0.0026 -0.0026 123.5 -0.0022 -0.0022 143.0 -0.0019 -0.0019 163.5 -0.0016 -0.0016 185.0 -0.0014 -0.0014 208.0 -0.0013 -0.0013 232.5 -0.0011 -0.0011 258.5 -0.0010 -0.0010 286.0 -0.0009 -0.0009 331.0 -0.0008 -0.0008 396.0 -0.0007 -0.0007 468.5 -0.0006 -0.0006 549.5 -0.0005 -0.0005 639.0 -0.0004 -0.0004 738.0 -0.0004 -0.0004 847.5 -0.0003 -0.0003 968.5 -0.0003 -0.0003 1102.0 -0.0002 -0.0002 1249.5 -0.0002 -0.0002 1412.0 -0.0002 -0.0002 1590.5 -0.0002 -0.0002 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 -1.6 1.8 117 9.0 -0.0803 -0.0803 11.0 -0.0511 -0.0511 13.5 -0.0352 -0.0352 16.5 -0.0256 -0.0256 19.5 -0.0201 -0.0201 22.5 -0.0166 -0.0166 26.0 -0.0137 -0.0137 30.0 -0.0115 -0.0115 34.5 -0.0097 -0.0097 40.0 -0.0082 -0.0082 46.0 -0.0070 -0.0070 52.5 -0.0060 -0.0060 60.0 -0.0052 -0.0052 69.0 -0.0044 -0.0044 79.0 -0.0038 -0.0038 90.5 -0.0033 -0.0033 105.5 -0.0028 -0.0028 123.5 -0.0024 -0.0024 143.0 -0.0020 -0.0020 163.5 -0.0018 -0.0018 185.0 -0.0016 -0.0016 208.0 -0.0014 -0.0014 232.5 -0.0012 -0.0012 258.5 -0.0011 -0.0011 286.0 -0.0010 -0.0010 331.0 -0.0009 -0.0009 396.0 -0.0007 -0.0007 468.5 -0.0006 -0.0006 549.5 -0.0005 -0.0005 639.0 -0.0004 -0.0004 738.0 -0.0004 -0.0004 847.5 -0.0003 -0.0003 968.5 -0.0003 -0.0003 1102.0 -0.0003 -0.0003 1249.5 -0.0002 -0.0002 1412.0 -0.0002 -0.0002 1590.5 -0.0002 -0.0002 1787.0 -0.0002 -0.0002 1944.5 -0.0001 -0.0001 -1.8 2.0 117 9.0 -0.0883 -0.0883 11.0 -0.0560 -0.0560 13.5 -0.0384 -0.0384 16.5 -0.0279 -0.0279 19.5 -0.0219 -0.0219 22.5 -0.0180 -0.0180 26.0 -0.0149 -0.0149 30.0 -0.0125 -0.0125 34.5 -0.0106 -0.0106 40.0 -0.0089 -0.0089 46.0 -0.0076 -0.0076 52.5 -0.0065 -0.0065 60.0 -0.0056 -0.0056 69.0 -0.0048 -0.0048 79.0 -0.0042 -0.0042 90.5 -0.0036 -0.0036 105.5 -0.0031 -0.0031 123.5 -0.0026 -0.0026 143.0 -0.0022 -0.0022 163.5 -0.0019 -0.0019 185.0 -0.0017 -0.0017 208.0 -0.0015 -0.0015 232.5 -0.0013 -0.0013 258.5 -0.0012 -0.0012 286.0 -0.0011 -0.0011 331.0 -0.0009 -0.0009 396.0 -0.0008 -0.0008 468.5 -0.0007 -0.0007 549.5 -0.0006 -0.0006 639.0 -0.0005 -0.0005 738.0 -0.0004 -0.0004 847.5 -0.0004 -0.0004 968.5 -0.0003 -0.0003 1102.0 -0.0003 -0.0003 1249.5 -0.0002 -0.0002 1412.0 -0.0002 -0.0002 1590.5 -0.0002 -0.0002 1787.0 -0.0002 -0.0002 1944.5 -0.0002 -0.0002 -2.0 2.2 117 9.0 0.0196 0.0196 11.0 0.0123 0.0123 13.5 0.0084 0.0084 16.5 0.0061 0.0061 19.5 0.0048 0.0048 22.5 0.0039 0.0039 26.0 0.0032 0.0032 30.0 0.0027 0.0027 34.5 0.0023 0.0023 40.0 0.0019 0.0019 46.0 0.0016 0.0016 52.5 0.0014 0.0014 60.0 0.0012 0.0012 69.0 0.0010 0.0010 79.0 0.0009 0.0009 90.5 0.0008 0.0008 105.5 0.0007 0.0007 123.5 0.0006 0.0006 143.0 0.0005 0.0005 163.5 0.0004 0.0004 185.0 0.0004 0.0004 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0002 0.0002 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.2 2.4 117 9.0 0.1710 0.1710 11.0 0.1002 0.1002 13.5 0.0661 0.0661 16.5 0.0469 0.0469 19.5 0.0363 0.0363 22.5 0.0297 0.0297 26.0 0.0244 0.0244 30.0 0.0203 0.0203 34.5 0.0171 0.0171 40.0 0.0143 0.0143 46.0 0.0122 0.0122 52.5 0.0105 0.0105 60.0 0.0090 0.0090 69.0 0.0077 0.0077 79.0 0.0066 0.0066 90.5 0.0057 0.0057 105.5 0.0049 0.0049 123.5 0.0041 0.0041 143.0 0.0035 0.0035 163.5 0.0031 0.0031 185.0 0.0027 0.0027 208.0 0.0024 0.0024 232.5 0.0021 0.0021 258.5 0.0019 0.0019 286.0 0.0017 0.0017 331.0 0.0015 0.0015 396.0 0.0012 0.0012 468.5 0.0010 0.0010 549.5 0.0009 0.0009 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0004 0.0004 1249.5 0.0004 0.0004 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0002 0.0002 -2.4 2.6 117 9.0 2.2030 2.2030 11.0 0.4986 0.4986 13.5 0.2535 0.2535 16.5 0.1594 0.1594 19.5 0.1163 0.1163 22.5 0.0915 0.0915 26.0 0.0733 0.0733 30.0 0.0597 0.0597 34.5 0.0494 0.0494 40.0 0.0408 0.0408 46.0 0.0343 0.0343 52.5 0.0292 0.0292 60.0 0.0250 0.0250 69.0 0.0213 0.0213 79.0 0.0183 0.0183 90.5 0.0157 0.0157 105.5 0.0133 0.0133 123.5 0.0112 0.0112 143.0 0.0096 0.0096 163.5 0.0083 0.0083 185.0 0.0073 0.0073 208.0 0.0065 0.0065 232.5 0.0058 0.0058 258.5 0.0052 0.0052 286.0 0.0046 0.0046 331.0 0.0040 0.0040 396.0 0.0033 0.0033 468.5 0.0028 0.0028 549.5 0.0024 0.0024 639.0 0.0020 0.0020 738.0 0.0018 0.0018 847.5 0.0015 0.0015 968.5 0.0013 0.0013 1102.0 0.0012 0.0012 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0007 0.0007 1944.5 0.0007 0.0007 -2.6 2.8 117 9.0 2.8423 2.8423 11.0 0.6653 0.6653 13.5 0.3399 0.3399 16.5 0.2142 0.2142 19.5 0.1563 0.1563 22.5 0.1231 0.1231 26.0 0.0986 0.0986 30.0 0.0804 0.0804 34.5 0.0665 0.0665 40.0 0.0550 0.0550 46.0 0.0462 0.0462 52.5 0.0394 0.0394 60.0 0.0337 0.0337 69.0 0.0287 0.0287 79.0 0.0246 0.0246 90.5 0.0212 0.0212 105.5 0.0179 0.0179 123.5 0.0151 0.0151 143.0 0.0129 0.0129 163.5 0.0112 0.0112 185.0 0.0098 0.0098 208.0 0.0087 0.0087 232.5 0.0078 0.0078 258.5 0.0069 0.0069 286.0 0.0063 0.0063 331.0 0.0054 0.0054 396.0 0.0045 0.0045 468.5 0.0038 0.0038 549.5 0.0032 0.0032 639.0 0.0028 0.0028 738.0 0.0024 0.0024 847.5 0.0021 0.0021 968.5 0.0018 0.0018 1102.0 0.0016 0.0016 1249.5 0.0014 0.0014 1412.0 0.0012 0.0012 1590.5 0.0011 0.0011 1787.0 0.0010 0.0010 1944.5 0.0009 0.0009 -2.8 3.0 117 9.0 1.4803 1.4803 11.0 0.5448 0.5448 13.5 0.3044 0.3044 16.5 0.1990 0.1990 19.5 0.1478 0.1478 22.5 0.1176 0.1176 26.0 0.0949 0.0949 30.0 0.0778 0.0778 34.5 0.0647 0.0647 40.0 0.0536 0.0536 46.0 0.0452 0.0452 52.5 0.0386 0.0386 60.0 0.0331 0.0331 69.0 0.0282 0.0282 79.0 0.0242 0.0242 90.5 0.0209 0.0209 105.5 0.0177 0.0177 123.5 0.0149 0.0149 143.0 0.0128 0.0128 163.5 0.0111 0.0111 185.0 0.0097 0.0097 208.0 0.0086 0.0086 232.5 0.0077 0.0077 258.5 0.0069 0.0069 286.0 0.0062 0.0062 331.0 0.0053 0.0053 396.0 0.0044 0.0044 468.5 0.0037 0.0037 549.5 0.0032 0.0032 639.0 0.0027 0.0027 738.0 0.0024 0.0024 847.5 0.0021 0.0021 968.5 0.0018 0.0018 1102.0 0.0016 0.0016 1249.5 0.0014 0.0014 1412.0 0.0012 0.0012 1590.5 0.0011 0.0011 1787.0 0.0010 0.0010 1944.5 0.0009 0.0009 -3.0 3.5 117 9.0 0.2355 0.2355 11.0 0.1515 0.1515 13.5 0.1047 0.1047 16.5 0.0764 0.0764 19.5 0.0602 0.0602 22.5 0.0496 0.0496 26.0 0.0412 0.0412 30.0 0.0345 0.0345 34.5 0.0292 0.0292 40.0 0.0245 0.0245 46.0 0.0209 0.0209 52.5 0.0180 0.0180 60.0 0.0155 0.0155 69.0 0.0133 0.0133 79.0 0.0115 0.0115 90.5 0.0100 0.0100 105.5 0.0085 0.0085 123.5 0.0072 0.0072 143.0 0.0062 0.0062 163.5 0.0054 0.0054 185.0 0.0047 0.0047 208.0 0.0042 0.0042 232.5 0.0037 0.0037 258.5 0.0034 0.0034 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0018 0.0018 549.5 0.0016 0.0016 639.0 0.0013 0.0013 738.0 0.0012 0.0012 847.5 0.0010 0.0010 968.5 0.0009 0.0009 1102.0 0.0008 0.0008 1249.5 0.0007 0.0007 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1944.5 0.0004 0.0004 -3.5 4.0 117 9.0 -0.0068 -0.0068 11.0 -0.0049 -0.0049 13.5 -0.0037 -0.0037 16.5 -0.0028 -0.0028 19.5 -0.0023 -0.0023 22.5 -0.0019 -0.0019 26.0 -0.0016 -0.0016 30.0 -0.0014 -0.0014 34.5 -0.0012 -0.0012 40.0 -0.0010 -0.0010 46.0 -0.0009 -0.0009 52.5 -0.0007 -0.0007 60.0 -0.0006 -0.0006 69.0 -0.0006 -0.0006 79.0 -0.0005 -0.0005 90.5 -0.0004 -0.0004 105.5 -0.0004 -0.0004 123.5 -0.0003 -0.0003 143.0 -0.0003 -0.0003 163.5 -0.0002 -0.0002 185.0 -0.0002 -0.0002 208.0 -0.0002 -0.0002 232.5 -0.0002 -0.0002 258.5 -0.0001 -0.0001 286.0 -0.0001 -0.0001 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0000 -0.0000 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 -4.0 4.5 117 9.0 -0.0171 -0.0171 11.0 -0.0128 -0.0128 13.5 -0.0098 -0.0098 16.5 -0.0076 -0.0076 19.5 -0.0062 -0.0062 22.5 -0.0053 -0.0053 26.0 -0.0045 -0.0045 30.0 -0.0038 -0.0038 34.5 -0.0033 -0.0033 40.0 -0.0028 -0.0028 46.0 -0.0024 -0.0024 52.5 -0.0021 -0.0021 60.0 -0.0018 -0.0018 69.0 -0.0016 -0.0016 79.0 -0.0014 -0.0014 90.5 -0.0012 -0.0012 105.5 -0.0010 -0.0010 123.5 -0.0009 -0.0009 143.0 -0.0007 -0.0007 163.5 -0.0006 -0.0006 185.0 -0.0006 -0.0006 208.0 -0.0005 -0.0005 232.5 -0.0004 -0.0004 258.5 -0.0004 -0.0004 286.0 -0.0004 -0.0004 331.0 -0.0003 -0.0003 396.0 -0.0003 -0.0003 468.5 -0.0002 -0.0002 549.5 -0.0002 -0.0002 639.0 -0.0002 -0.0002 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 -4.5 5.2 117 9.0 -0.0074 -0.0074 11.0 -0.0058 -0.0058 13.5 -0.0046 -0.0046 16.5 -0.0037 -0.0037 19.5 -0.0031 -0.0031 22.5 -0.0026 -0.0026 26.0 -0.0022 -0.0022 30.0 -0.0019 -0.0019 34.5 -0.0017 -0.0017 40.0 -0.0014 -0.0014 46.0 -0.0012 -0.0012 52.5 -0.0011 -0.0011 60.0 -0.0009 -0.0009 69.0 -0.0008 -0.0008 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0004 -0.0004 143.0 -0.0004 -0.0004 163.5 -0.0003 -0.0003 185.0 -0.0003 -0.0003 208.0 -0.0003 -0.0003 232.5 -0.0002 -0.0002 258.5 -0.0002 -0.0002 286.0 -0.0002 -0.0002 331.0 -0.0002 -0.0002 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 -[PileUpJetRate] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --4.5 -4.0 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --4.0 -3.5 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --3.5 -3.0 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --3.0 -2.8 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --2.8 -2.6 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --2.6 -2.4 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --2.4 -2.2 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --2.2 -2.0 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --2.0 -1.8 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --1.8 -1.6 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --1.6 -1.4 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --1.4 -1.2 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --1.2 -1.0 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --1.0 -0.8 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --0.8 -0.6 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --0.6 -0.4 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --0.4 -0.2 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --0.2 0.0 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -0.0 0.2 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -0.2 0.4 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -0.4 0.6 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -0.6 0.8 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -0.8 1.0 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -1.0 1.2 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -1.2 1.4 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -1.4 1.6 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -1.6 1.8 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -1.8 2.0 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -2.0 2.2 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -2.2 2.4 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -2.4 2.6 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -2.6 2.8 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -2.8 3.0 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -3.0 3.5 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -3.5 4.0 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -4.0 4.5 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -4.5 5.2 117 9.0 0.0062 0.0062 11.0 0.0067 0.0067 13.5 0.0069 0.0069 16.5 0.0068 0.0068 19.5 0.0065 0.0065 22.5 0.0063 0.0063 26.0 0.0059 0.0059 30.0 0.0056 0.0056 34.5 0.0052 0.0052 40.0 0.0049 0.0049 46.0 0.0045 0.0045 52.5 0.0042 0.0042 60.0 0.0039 0.0039 69.0 0.0036 0.0036 79.0 0.0033 0.0033 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0022 0.0022 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0012 0.0012 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -[SubTotalPileUp] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0662 0.0662 11.0 0.0523 0.0523 13.5 0.0416 0.0416 16.5 0.0335 0.0335 19.5 0.0281 0.0281 22.5 0.0242 0.0242 26.0 0.0209 0.0209 30.0 0.0181 0.0181 34.5 0.0158 0.0158 40.0 0.0136 0.0136 46.0 0.0119 0.0119 52.5 0.0105 0.0105 60.0 0.0092 0.0092 69.0 0.0081 0.0081 79.0 0.0071 0.0071 90.5 0.0063 0.0063 105.5 0.0054 0.0054 123.5 0.0047 0.0047 143.0 0.0041 0.0041 163.5 0.0036 0.0036 185.0 0.0032 0.0032 208.0 0.0029 0.0029 232.5 0.0026 0.0026 258.5 0.0024 0.0024 286.0 0.0022 0.0022 331.0 0.0019 0.0019 396.0 0.0016 0.0016 468.5 0.0014 0.0014 549.5 0.0012 0.0012 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0008 0.0008 1102.0 0.0008 0.0008 1249.5 0.0008 0.0008 1412.0 0.0007 0.0007 1590.5 0.0007 0.0007 1787.0 0.0007 0.0007 1944.5 0.0007 0.0007 --4.5 -4.0 117 9.0 0.0395 0.0395 11.0 0.0311 0.0311 13.5 0.0248 0.0248 16.5 0.0202 0.0202 19.5 0.0171 0.0171 22.5 0.0149 0.0149 26.0 0.0131 0.0131 30.0 0.0115 0.0115 34.5 0.0101 0.0101 40.0 0.0089 0.0089 46.0 0.0078 0.0078 52.5 0.0070 0.0070 60.0 0.0062 0.0062 69.0 0.0055 0.0055 79.0 0.0049 0.0049 90.5 0.0044 0.0044 105.5 0.0039 0.0039 123.5 0.0034 0.0034 143.0 0.0030 0.0030 163.5 0.0027 0.0027 185.0 0.0024 0.0024 208.0 0.0022 0.0022 232.5 0.0020 0.0020 258.5 0.0018 0.0018 286.0 0.0017 0.0017 331.0 0.0015 0.0015 396.0 0.0013 0.0013 468.5 0.0011 0.0011 549.5 0.0010 0.0010 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 --4.0 -3.5 117 9.0 0.0923 0.0923 11.0 0.0683 0.0683 13.5 0.0518 0.0518 16.5 0.0403 0.0403 19.5 0.0331 0.0331 22.5 0.0282 0.0282 26.0 0.0240 0.0240 30.0 0.0206 0.0206 34.5 0.0178 0.0178 40.0 0.0153 0.0153 46.0 0.0133 0.0133 52.5 0.0116 0.0116 60.0 0.0102 0.0102 69.0 0.0089 0.0089 79.0 0.0078 0.0078 90.5 0.0068 0.0068 105.5 0.0059 0.0059 123.5 0.0051 0.0051 143.0 0.0044 0.0044 163.5 0.0039 0.0039 185.0 0.0035 0.0035 208.0 0.0031 0.0031 232.5 0.0028 0.0028 258.5 0.0025 0.0025 286.0 0.0023 0.0023 331.0 0.0020 0.0020 396.0 0.0017 0.0017 468.5 0.0015 0.0015 549.5 0.0013 0.0013 639.0 0.0011 0.0011 738.0 0.0010 0.0010 847.5 0.0009 0.0009 968.5 0.0008 0.0008 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 --3.5 -3.0 117 9.0 0.3153 0.3153 11.0 0.2105 0.2105 13.5 0.1493 0.1493 16.5 0.1110 0.1110 19.5 0.0885 0.0885 22.5 0.0736 0.0736 26.0 0.0616 0.0616 30.0 0.0519 0.0519 34.5 0.0441 0.0441 40.0 0.0373 0.0373 46.0 0.0320 0.0320 52.5 0.0277 0.0277 60.0 0.0240 0.0240 69.0 0.0207 0.0207 79.0 0.0179 0.0179 90.5 0.0155 0.0155 105.5 0.0133 0.0133 123.5 0.0113 0.0113 143.0 0.0097 0.0097 163.5 0.0085 0.0085 185.0 0.0075 0.0075 208.0 0.0067 0.0067 232.5 0.0060 0.0060 258.5 0.0054 0.0054 286.0 0.0048 0.0048 331.0 0.0042 0.0042 396.0 0.0035 0.0035 468.5 0.0030 0.0030 549.5 0.0025 0.0025 639.0 0.0022 0.0022 738.0 0.0019 0.0019 847.5 0.0017 0.0017 968.5 0.0015 0.0015 1102.0 0.0013 0.0013 1249.5 0.0011 0.0011 1412.0 0.0010 0.0010 1590.5 0.0009 0.0009 1787.0 0.0008 0.0008 1944.5 0.0007 0.0007 --3.0 -2.8 117 9.0 1.1070 1.1070 11.0 0.4875 0.4875 13.5 0.2897 0.2897 16.5 0.1959 0.1959 19.5 0.1483 0.1483 22.5 0.1195 0.1195 26.0 0.0975 0.0975 30.0 0.0806 0.0806 34.5 0.0675 0.0675 40.0 0.0563 0.0563 46.0 0.0477 0.0477 52.5 0.0410 0.0410 60.0 0.0352 0.0352 69.0 0.0302 0.0302 79.0 0.0260 0.0260 90.5 0.0225 0.0225 105.5 0.0191 0.0191 123.5 0.0162 0.0162 143.0 0.0139 0.0139 163.5 0.0121 0.0121 185.0 0.0106 0.0106 208.0 0.0094 0.0094 232.5 0.0084 0.0084 258.5 0.0076 0.0076 286.0 0.0068 0.0068 331.0 0.0059 0.0059 396.0 0.0049 0.0049 468.5 0.0041 0.0041 549.5 0.0035 0.0035 639.0 0.0030 0.0030 738.0 0.0026 0.0026 847.5 0.0023 0.0023 968.5 0.0020 0.0020 1102.0 0.0018 0.0018 1249.5 0.0016 0.0016 1412.0 0.0014 0.0014 1590.5 0.0012 0.0012 1787.0 0.0011 0.0011 1944.5 0.0010 0.0010 --2.8 -2.6 117 9.0 1.3273 1.3273 11.0 0.4821 0.4821 13.5 0.2716 0.2716 16.5 0.1794 0.1794 19.5 0.1344 0.1344 22.5 0.1077 0.1077 26.0 0.0875 0.0875 30.0 0.0722 0.0722 34.5 0.0603 0.0603 40.0 0.0503 0.0503 46.0 0.0426 0.0426 52.5 0.0365 0.0365 60.0 0.0314 0.0314 69.0 0.0269 0.0269 79.0 0.0232 0.0232 90.5 0.0200 0.0200 105.5 0.0170 0.0170 123.5 0.0144 0.0144 143.0 0.0124 0.0124 163.5 0.0108 0.0108 185.0 0.0095 0.0095 208.0 0.0084 0.0084 232.5 0.0075 0.0075 258.5 0.0067 0.0067 286.0 0.0061 0.0061 331.0 0.0053 0.0053 396.0 0.0044 0.0044 468.5 0.0037 0.0037 549.5 0.0032 0.0032 639.0 0.0027 0.0027 738.0 0.0024 0.0024 847.5 0.0021 0.0021 968.5 0.0018 0.0018 1102.0 0.0016 0.0016 1249.5 0.0014 0.0014 1412.0 0.0012 0.0012 1590.5 0.0011 0.0011 1787.0 0.0010 0.0010 1944.5 0.0009 0.0009 --2.6 -2.4 117 9.0 0.4163 0.4163 11.0 0.2122 0.2122 13.5 0.1338 0.1338 16.5 0.0937 0.0937 19.5 0.0726 0.0726 22.5 0.0594 0.0594 26.0 0.0492 0.0492 30.0 0.0411 0.0411 34.5 0.0348 0.0348 40.0 0.0293 0.0293 46.0 0.0251 0.0251 52.5 0.0217 0.0217 60.0 0.0188 0.0188 69.0 0.0162 0.0162 79.0 0.0140 0.0140 90.5 0.0122 0.0122 105.5 0.0104 0.0104 123.5 0.0089 0.0089 143.0 0.0076 0.0076 163.5 0.0067 0.0067 185.0 0.0059 0.0059 208.0 0.0052 0.0052 232.5 0.0047 0.0047 258.5 0.0042 0.0042 286.0 0.0038 0.0038 331.0 0.0033 0.0033 396.0 0.0028 0.0028 468.5 0.0024 0.0024 549.5 0.0020 0.0020 639.0 0.0017 0.0017 738.0 0.0015 0.0015 847.5 0.0013 0.0013 968.5 0.0012 0.0012 1102.0 0.0010 0.0010 1249.5 0.0009 0.0009 1412.0 0.0008 0.0008 1590.5 0.0007 0.0007 1787.0 0.0006 0.0006 1944.5 0.0006 0.0006 --2.4 -2.2 117 9.0 0.0749 0.0749 11.0 0.0550 0.0550 13.5 0.0422 0.0422 16.5 0.0334 0.0334 19.5 0.0278 0.0278 22.5 0.0239 0.0239 26.0 0.0206 0.0206 30.0 0.0178 0.0178 34.5 0.0155 0.0155 40.0 0.0134 0.0134 46.0 0.0117 0.0117 52.5 0.0103 0.0103 60.0 0.0091 0.0091 69.0 0.0080 0.0080 79.0 0.0070 0.0070 90.5 0.0062 0.0062 105.5 0.0054 0.0054 123.5 0.0046 0.0046 143.0 0.0041 0.0041 163.5 0.0036 0.0036 185.0 0.0032 0.0032 208.0 0.0029 0.0029 232.5 0.0026 0.0026 258.5 0.0024 0.0024 286.0 0.0022 0.0022 331.0 0.0019 0.0019 396.0 0.0016 0.0016 468.5 0.0014 0.0014 549.5 0.0012 0.0012 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 --2.2 -2.0 117 9.0 0.0542 0.0542 11.0 0.0426 0.0426 13.5 0.0342 0.0342 16.5 0.0279 0.0279 19.5 0.0237 0.0237 22.5 0.0206 0.0206 26.0 0.0179 0.0179 30.0 0.0157 0.0157 34.5 0.0137 0.0137 40.0 0.0120 0.0120 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0072 0.0072 79.0 0.0064 0.0064 90.5 0.0057 0.0057 105.5 0.0049 0.0049 123.5 0.0043 0.0043 143.0 0.0037 0.0037 163.5 0.0033 0.0033 185.0 0.0030 0.0030 208.0 0.0027 0.0027 232.5 0.0024 0.0024 258.5 0.0022 0.0022 286.0 0.0020 0.0020 331.0 0.0018 0.0018 396.0 0.0015 0.0015 468.5 0.0013 0.0013 549.5 0.0011 0.0011 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 --2.0 -1.8 117 9.0 0.0854 0.0854 11.0 0.0608 0.0608 13.5 0.0457 0.0457 16.5 0.0356 0.0356 19.5 0.0294 0.0294 22.5 0.0251 0.0251 26.0 0.0215 0.0215 30.0 0.0185 0.0185 34.5 0.0161 0.0161 40.0 0.0139 0.0139 46.0 0.0121 0.0121 52.5 0.0106 0.0106 60.0 0.0093 0.0093 69.0 0.0082 0.0082 79.0 0.0072 0.0072 90.5 0.0063 0.0063 105.5 0.0055 0.0055 123.5 0.0047 0.0047 143.0 0.0041 0.0041 163.5 0.0036 0.0036 185.0 0.0033 0.0033 208.0 0.0029 0.0029 232.5 0.0026 0.0026 258.5 0.0024 0.0024 286.0 0.0022 0.0022 331.0 0.0019 0.0019 396.0 0.0016 0.0016 468.5 0.0014 0.0014 549.5 0.0012 0.0012 639.0 0.0011 0.0011 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 --1.8 -1.6 117 9.0 0.0795 0.0795 11.0 0.0571 0.0571 13.5 0.0432 0.0432 16.5 0.0338 0.0338 19.5 0.0280 0.0280 22.5 0.0240 0.0240 26.0 0.0206 0.0206 30.0 0.0178 0.0178 34.5 0.0154 0.0154 40.0 0.0133 0.0133 46.0 0.0116 0.0116 52.5 0.0103 0.0103 60.0 0.0090 0.0090 69.0 0.0079 0.0079 79.0 0.0070 0.0070 90.5 0.0061 0.0061 105.5 0.0053 0.0053 123.5 0.0046 0.0046 143.0 0.0040 0.0040 163.5 0.0036 0.0036 185.0 0.0032 0.0032 208.0 0.0028 0.0028 232.5 0.0026 0.0026 258.5 0.0023 0.0023 286.0 0.0021 0.0021 331.0 0.0019 0.0019 396.0 0.0016 0.0016 468.5 0.0014 0.0014 549.5 0.0012 0.0012 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 --1.6 -1.4 117 9.0 0.0719 0.0719 11.0 0.0524 0.0524 13.5 0.0400 0.0400 16.5 0.0316 0.0316 19.5 0.0263 0.0263 22.5 0.0226 0.0226 26.0 0.0194 0.0194 30.0 0.0168 0.0168 34.5 0.0147 0.0147 40.0 0.0127 0.0127 46.0 0.0111 0.0111 52.5 0.0098 0.0098 60.0 0.0086 0.0086 69.0 0.0076 0.0076 79.0 0.0067 0.0067 90.5 0.0059 0.0059 105.5 0.0051 0.0051 123.5 0.0044 0.0044 143.0 0.0039 0.0039 163.5 0.0034 0.0034 185.0 0.0031 0.0031 208.0 0.0028 0.0028 232.5 0.0025 0.0025 258.5 0.0023 0.0023 286.0 0.0021 0.0021 331.0 0.0018 0.0018 396.0 0.0015 0.0015 468.5 0.0013 0.0013 549.5 0.0011 0.0011 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 --1.4 -1.2 117 9.0 0.0686 0.0686 11.0 0.0504 0.0504 13.5 0.0387 0.0387 16.5 0.0306 0.0306 19.5 0.0255 0.0255 22.5 0.0220 0.0220 26.0 0.0190 0.0190 30.0 0.0164 0.0164 34.5 0.0143 0.0143 40.0 0.0124 0.0124 46.0 0.0109 0.0109 52.5 0.0096 0.0096 60.0 0.0085 0.0085 69.0 0.0074 0.0074 79.0 0.0066 0.0066 90.5 0.0058 0.0058 105.5 0.0050 0.0050 123.5 0.0044 0.0044 143.0 0.0038 0.0038 163.5 0.0034 0.0034 185.0 0.0030 0.0030 208.0 0.0027 0.0027 232.5 0.0025 0.0025 258.5 0.0022 0.0022 286.0 0.0020 0.0020 331.0 0.0018 0.0018 396.0 0.0015 0.0015 468.5 0.0013 0.0013 549.5 0.0011 0.0011 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 --1.2 -1.0 117 9.0 0.0661 0.0661 11.0 0.0488 0.0488 13.5 0.0377 0.0377 16.5 0.0299 0.0299 19.5 0.0250 0.0250 22.5 0.0216 0.0216 26.0 0.0186 0.0186 30.0 0.0162 0.0162 34.5 0.0141 0.0141 40.0 0.0123 0.0123 46.0 0.0107 0.0107 52.5 0.0095 0.0095 60.0 0.0084 0.0084 69.0 0.0074 0.0074 79.0 0.0065 0.0065 90.5 0.0057 0.0057 105.5 0.0050 0.0050 123.5 0.0043 0.0043 143.0 0.0038 0.0038 163.5 0.0033 0.0033 185.0 0.0030 0.0030 208.0 0.0027 0.0027 232.5 0.0024 0.0024 258.5 0.0022 0.0022 286.0 0.0020 0.0020 331.0 0.0018 0.0018 396.0 0.0015 0.0015 468.5 0.0013 0.0013 549.5 0.0011 0.0011 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 --1.0 -0.8 117 9.0 0.0623 0.0623 11.0 0.0465 0.0465 13.5 0.0362 0.0362 16.5 0.0289 0.0289 19.5 0.0242 0.0242 22.5 0.0210 0.0210 26.0 0.0181 0.0181 30.0 0.0158 0.0158 34.5 0.0138 0.0138 40.0 0.0120 0.0120 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0072 0.0072 79.0 0.0064 0.0064 90.5 0.0056 0.0056 105.5 0.0049 0.0049 123.5 0.0042 0.0042 143.0 0.0037 0.0037 163.5 0.0033 0.0033 185.0 0.0030 0.0030 208.0 0.0027 0.0027 232.5 0.0024 0.0024 258.5 0.0022 0.0022 286.0 0.0020 0.0020 331.0 0.0018 0.0018 396.0 0.0015 0.0015 468.5 0.0013 0.0013 549.5 0.0011 0.0011 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 --0.8 -0.6 117 9.0 0.0600 0.0600 11.0 0.0452 0.0452 13.5 0.0354 0.0354 16.5 0.0284 0.0284 19.5 0.0239 0.0239 22.5 0.0207 0.0207 26.0 0.0179 0.0179 30.0 0.0156 0.0156 34.5 0.0137 0.0137 40.0 0.0119 0.0119 46.0 0.0104 0.0104 52.5 0.0092 0.0092 60.0 0.0081 0.0081 69.0 0.0072 0.0072 79.0 0.0063 0.0063 90.5 0.0056 0.0056 105.5 0.0049 0.0049 123.5 0.0042 0.0042 143.0 0.0037 0.0037 163.5 0.0033 0.0033 185.0 0.0029 0.0029 208.0 0.0026 0.0026 232.5 0.0024 0.0024 258.5 0.0022 0.0022 286.0 0.0020 0.0020 331.0 0.0017 0.0017 396.0 0.0015 0.0015 468.5 0.0013 0.0013 549.5 0.0011 0.0011 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 --0.6 -0.4 117 9.0 0.0601 0.0601 11.0 0.0454 0.0454 13.5 0.0356 0.0356 16.5 0.0287 0.0287 19.5 0.0242 0.0242 22.5 0.0209 0.0209 26.0 0.0182 0.0182 30.0 0.0158 0.0158 34.5 0.0139 0.0139 40.0 0.0120 0.0120 46.0 0.0106 0.0106 52.5 0.0093 0.0093 60.0 0.0083 0.0083 69.0 0.0073 0.0073 79.0 0.0064 0.0064 90.5 0.0057 0.0057 105.5 0.0049 0.0049 123.5 0.0043 0.0043 143.0 0.0038 0.0038 163.5 0.0033 0.0033 185.0 0.0030 0.0030 208.0 0.0027 0.0027 232.5 0.0024 0.0024 258.5 0.0022 0.0022 286.0 0.0020 0.0020 331.0 0.0018 0.0018 396.0 0.0015 0.0015 468.5 0.0013 0.0013 549.5 0.0011 0.0011 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 --0.4 -0.2 117 9.0 0.0604 0.0604 11.0 0.0458 0.0458 13.5 0.0361 0.0361 16.5 0.0291 0.0291 19.5 0.0246 0.0246 22.5 0.0213 0.0213 26.0 0.0185 0.0185 30.0 0.0161 0.0161 34.5 0.0141 0.0141 40.0 0.0123 0.0123 46.0 0.0108 0.0108 52.5 0.0095 0.0095 60.0 0.0084 0.0084 69.0 0.0074 0.0074 79.0 0.0065 0.0065 90.5 0.0058 0.0058 105.5 0.0050 0.0050 123.5 0.0044 0.0044 143.0 0.0038 0.0038 163.5 0.0034 0.0034 185.0 0.0030 0.0030 208.0 0.0027 0.0027 232.5 0.0025 0.0025 258.5 0.0022 0.0022 286.0 0.0020 0.0020 331.0 0.0018 0.0018 396.0 0.0015 0.0015 468.5 0.0013 0.0013 549.5 0.0011 0.0011 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 --0.2 0.0 117 9.0 0.0596 0.0596 11.0 0.0455 0.0455 13.5 0.0361 0.0361 16.5 0.0292 0.0292 19.5 0.0247 0.0247 22.5 0.0214 0.0214 26.0 0.0186 0.0186 30.0 0.0162 0.0162 34.5 0.0142 0.0142 40.0 0.0124 0.0124 46.0 0.0109 0.0109 52.5 0.0096 0.0096 60.0 0.0085 0.0085 69.0 0.0075 0.0075 79.0 0.0066 0.0066 90.5 0.0058 0.0058 105.5 0.0051 0.0051 123.5 0.0044 0.0044 143.0 0.0038 0.0038 163.5 0.0034 0.0034 185.0 0.0030 0.0030 208.0 0.0027 0.0027 232.5 0.0025 0.0025 258.5 0.0023 0.0023 286.0 0.0021 0.0021 331.0 0.0018 0.0018 396.0 0.0015 0.0015 468.5 0.0013 0.0013 549.5 0.0011 0.0011 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 -0.0 0.2 117 9.0 0.0617 0.0617 11.0 0.0466 0.0466 13.5 0.0368 0.0368 16.5 0.0297 0.0297 19.5 0.0250 0.0250 22.5 0.0217 0.0217 26.0 0.0189 0.0189 30.0 0.0164 0.0164 34.5 0.0144 0.0144 40.0 0.0125 0.0125 46.0 0.0110 0.0110 52.5 0.0097 0.0097 60.0 0.0086 0.0086 69.0 0.0075 0.0075 79.0 0.0066 0.0066 90.5 0.0059 0.0059 105.5 0.0051 0.0051 123.5 0.0044 0.0044 143.0 0.0039 0.0039 163.5 0.0034 0.0034 185.0 0.0031 0.0031 208.0 0.0028 0.0028 232.5 0.0025 0.0025 258.5 0.0023 0.0023 286.0 0.0021 0.0021 331.0 0.0018 0.0018 396.0 0.0015 0.0015 468.5 0.0013 0.0013 549.5 0.0012 0.0012 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 -0.2 0.4 117 9.0 0.0638 0.0638 11.0 0.0477 0.0477 13.5 0.0373 0.0373 16.5 0.0300 0.0300 19.5 0.0252 0.0252 22.5 0.0218 0.0218 26.0 0.0189 0.0189 30.0 0.0165 0.0165 34.5 0.0144 0.0144 40.0 0.0125 0.0125 46.0 0.0110 0.0110 52.5 0.0097 0.0097 60.0 0.0086 0.0086 69.0 0.0075 0.0075 79.0 0.0067 0.0067 90.5 0.0059 0.0059 105.5 0.0051 0.0051 123.5 0.0044 0.0044 143.0 0.0039 0.0039 163.5 0.0034 0.0034 185.0 0.0031 0.0031 208.0 0.0028 0.0028 232.5 0.0025 0.0025 258.5 0.0023 0.0023 286.0 0.0021 0.0021 331.0 0.0018 0.0018 396.0 0.0015 0.0015 468.5 0.0013 0.0013 549.5 0.0012 0.0012 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 -0.4 0.6 117 9.0 0.0647 0.0647 11.0 0.0481 0.0481 13.5 0.0374 0.0374 16.5 0.0299 0.0299 19.5 0.0251 0.0251 22.5 0.0217 0.0217 26.0 0.0188 0.0188 30.0 0.0164 0.0164 34.5 0.0143 0.0143 40.0 0.0124 0.0124 46.0 0.0109 0.0109 52.5 0.0096 0.0096 60.0 0.0085 0.0085 69.0 0.0075 0.0075 79.0 0.0066 0.0066 90.5 0.0058 0.0058 105.5 0.0051 0.0051 123.5 0.0044 0.0044 143.0 0.0038 0.0038 163.5 0.0034 0.0034 185.0 0.0030 0.0030 208.0 0.0027 0.0027 232.5 0.0025 0.0025 258.5 0.0023 0.0023 286.0 0.0021 0.0021 331.0 0.0018 0.0018 396.0 0.0015 0.0015 468.5 0.0013 0.0013 549.5 0.0011 0.0011 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 -0.6 0.8 117 9.0 0.0675 0.0675 11.0 0.0496 0.0496 13.5 0.0383 0.0383 16.5 0.0305 0.0305 19.5 0.0255 0.0255 22.5 0.0220 0.0220 26.0 0.0191 0.0191 30.0 0.0166 0.0166 34.5 0.0145 0.0145 40.0 0.0125 0.0125 46.0 0.0110 0.0110 52.5 0.0097 0.0097 60.0 0.0086 0.0086 69.0 0.0075 0.0075 79.0 0.0066 0.0066 90.5 0.0059 0.0059 105.5 0.0051 0.0051 123.5 0.0044 0.0044 143.0 0.0039 0.0039 163.5 0.0034 0.0034 185.0 0.0031 0.0031 208.0 0.0027 0.0027 232.5 0.0025 0.0025 258.5 0.0023 0.0023 286.0 0.0021 0.0021 331.0 0.0018 0.0018 396.0 0.0015 0.0015 468.5 0.0013 0.0013 549.5 0.0011 0.0011 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 -0.8 1.0 117 9.0 0.0735 0.0735 11.0 0.0530 0.0530 13.5 0.0404 0.0404 16.5 0.0320 0.0320 19.5 0.0267 0.0267 22.5 0.0229 0.0229 26.0 0.0198 0.0198 30.0 0.0172 0.0172 34.5 0.0150 0.0150 40.0 0.0130 0.0130 46.0 0.0113 0.0113 52.5 0.0100 0.0100 60.0 0.0088 0.0088 69.0 0.0077 0.0077 79.0 0.0068 0.0068 90.5 0.0060 0.0060 105.5 0.0052 0.0052 123.5 0.0045 0.0045 143.0 0.0039 0.0039 163.5 0.0035 0.0035 185.0 0.0031 0.0031 208.0 0.0028 0.0028 232.5 0.0025 0.0025 258.5 0.0023 0.0023 286.0 0.0021 0.0021 331.0 0.0018 0.0018 396.0 0.0016 0.0016 468.5 0.0013 0.0013 549.5 0.0012 0.0012 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 -1.0 1.2 117 9.0 0.0784 0.0784 11.0 0.0558 0.0558 13.5 0.0422 0.0422 16.5 0.0332 0.0332 19.5 0.0276 0.0276 22.5 0.0237 0.0237 26.0 0.0204 0.0204 30.0 0.0176 0.0176 34.5 0.0153 0.0153 40.0 0.0133 0.0133 46.0 0.0116 0.0116 52.5 0.0102 0.0102 60.0 0.0090 0.0090 69.0 0.0079 0.0079 79.0 0.0070 0.0070 90.5 0.0061 0.0061 105.5 0.0053 0.0053 123.5 0.0046 0.0046 143.0 0.0040 0.0040 163.5 0.0036 0.0036 185.0 0.0032 0.0032 208.0 0.0029 0.0029 232.5 0.0026 0.0026 258.5 0.0023 0.0023 286.0 0.0021 0.0021 331.0 0.0019 0.0019 396.0 0.0016 0.0016 468.5 0.0014 0.0014 549.5 0.0012 0.0012 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 -1.2 1.4 117 9.0 0.0820 0.0820 11.0 0.0580 0.0580 13.5 0.0436 0.0436 16.5 0.0342 0.0342 19.5 0.0283 0.0283 22.5 0.0242 0.0242 26.0 0.0208 0.0208 30.0 0.0180 0.0180 34.5 0.0156 0.0156 40.0 0.0135 0.0135 46.0 0.0118 0.0118 52.5 0.0104 0.0104 60.0 0.0092 0.0092 69.0 0.0080 0.0080 79.0 0.0071 0.0071 90.5 0.0062 0.0062 105.5 0.0054 0.0054 123.5 0.0047 0.0047 143.0 0.0041 0.0041 163.5 0.0036 0.0036 185.0 0.0032 0.0032 208.0 0.0029 0.0029 232.5 0.0026 0.0026 258.5 0.0024 0.0024 286.0 0.0022 0.0022 331.0 0.0019 0.0019 396.0 0.0016 0.0016 468.5 0.0014 0.0014 549.5 0.0012 0.0012 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 -1.4 1.6 117 9.0 0.0901 0.0901 11.0 0.0626 0.0626 13.5 0.0466 0.0466 16.5 0.0363 0.0363 19.5 0.0299 0.0299 22.5 0.0255 0.0255 26.0 0.0219 0.0219 30.0 0.0189 0.0189 34.5 0.0164 0.0164 40.0 0.0141 0.0141 46.0 0.0123 0.0123 52.5 0.0108 0.0108 60.0 0.0095 0.0095 69.0 0.0083 0.0083 79.0 0.0073 0.0073 90.5 0.0064 0.0064 105.5 0.0056 0.0056 123.5 0.0048 0.0048 143.0 0.0042 0.0042 163.5 0.0037 0.0037 185.0 0.0033 0.0033 208.0 0.0030 0.0030 232.5 0.0027 0.0027 258.5 0.0024 0.0024 286.0 0.0022 0.0022 331.0 0.0019 0.0019 396.0 0.0016 0.0016 468.5 0.0014 0.0014 549.5 0.0012 0.0012 639.0 0.0011 0.0011 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 -1.6 1.8 117 9.0 0.1011 0.1011 11.0 0.0690 0.0690 13.5 0.0507 0.0507 16.5 0.0391 0.0391 19.5 0.0320 0.0320 22.5 0.0273 0.0273 26.0 0.0233 0.0233 30.0 0.0200 0.0200 34.5 0.0173 0.0173 40.0 0.0149 0.0149 46.0 0.0130 0.0130 52.5 0.0114 0.0114 60.0 0.0100 0.0100 69.0 0.0087 0.0087 79.0 0.0077 0.0077 90.5 0.0067 0.0067 105.5 0.0058 0.0058 123.5 0.0050 0.0050 143.0 0.0044 0.0044 163.5 0.0039 0.0039 185.0 0.0034 0.0034 208.0 0.0031 0.0031 232.5 0.0028 0.0028 258.5 0.0025 0.0025 286.0 0.0023 0.0023 331.0 0.0020 0.0020 396.0 0.0017 0.0017 468.5 0.0015 0.0015 549.5 0.0013 0.0013 639.0 0.0011 0.0011 738.0 0.0010 0.0010 847.5 0.0008 0.0008 968.5 0.0008 0.0008 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 -1.8 2.0 117 9.0 0.1088 0.1088 11.0 0.0736 0.0736 13.5 0.0538 0.0538 16.5 0.0413 0.0413 19.5 0.0337 0.0337 22.5 0.0286 0.0286 26.0 0.0244 0.0244 30.0 0.0210 0.0210 34.5 0.0181 0.0181 40.0 0.0156 0.0156 46.0 0.0135 0.0135 52.5 0.0119 0.0119 60.0 0.0104 0.0104 69.0 0.0091 0.0091 79.0 0.0080 0.0080 90.5 0.0070 0.0070 105.5 0.0060 0.0060 123.5 0.0052 0.0052 143.0 0.0045 0.0045 163.5 0.0040 0.0040 185.0 0.0036 0.0036 208.0 0.0032 0.0032 232.5 0.0029 0.0029 258.5 0.0026 0.0026 286.0 0.0024 0.0024 331.0 0.0021 0.0021 396.0 0.0018 0.0018 468.5 0.0015 0.0015 549.5 0.0013 0.0013 639.0 0.0011 0.0011 738.0 0.0010 0.0010 847.5 0.0009 0.0009 968.5 0.0008 0.0008 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 -2.0 2.2 117 9.0 0.0568 0.0568 11.0 0.0454 0.0454 13.5 0.0367 0.0367 16.5 0.0301 0.0301 19.5 0.0256 0.0256 22.5 0.0223 0.0223 26.0 0.0194 0.0194 30.0 0.0169 0.0169 34.5 0.0149 0.0149 40.0 0.0129 0.0129 46.0 0.0113 0.0113 52.5 0.0100 0.0100 60.0 0.0089 0.0089 69.0 0.0078 0.0078 79.0 0.0069 0.0069 90.5 0.0061 0.0061 105.5 0.0053 0.0053 123.5 0.0046 0.0046 143.0 0.0040 0.0040 163.5 0.0035 0.0035 185.0 0.0032 0.0032 208.0 0.0028 0.0028 232.5 0.0026 0.0026 258.5 0.0023 0.0023 286.0 0.0021 0.0021 331.0 0.0019 0.0019 396.0 0.0016 0.0016 468.5 0.0014 0.0014 549.5 0.0012 0.0012 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 -2.2 2.4 117 9.0 0.1959 0.1959 11.0 0.1208 0.1208 13.5 0.0834 0.0834 16.5 0.0616 0.0616 19.5 0.0492 0.0492 22.5 0.0411 0.0411 26.0 0.0345 0.0345 30.0 0.0293 0.0293 34.5 0.0251 0.0251 40.0 0.0213 0.0213 46.0 0.0184 0.0184 52.5 0.0160 0.0160 60.0 0.0139 0.0139 69.0 0.0121 0.0121 79.0 0.0105 0.0105 90.5 0.0092 0.0092 105.5 0.0079 0.0079 123.5 0.0068 0.0068 143.0 0.0058 0.0058 163.5 0.0051 0.0051 185.0 0.0046 0.0046 208.0 0.0041 0.0041 232.5 0.0036 0.0036 258.5 0.0033 0.0033 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0019 0.0019 549.5 0.0016 0.0016 639.0 0.0014 0.0014 738.0 0.0012 0.0012 847.5 0.0011 0.0011 968.5 0.0009 0.0009 1102.0 0.0008 0.0008 1249.5 0.0007 0.0007 1412.0 0.0007 0.0007 1590.5 0.0006 0.0006 1787.0 0.0005 0.0005 1944.5 0.0005 0.0005 -2.4 2.6 117 9.0 2.2101 2.2101 11.0 0.5086 0.5086 13.5 0.2631 0.2631 16.5 0.1683 0.1683 19.5 0.1244 0.1244 22.5 0.0989 0.0989 26.0 0.0800 0.0800 30.0 0.0658 0.0658 34.5 0.0549 0.0549 40.0 0.0457 0.0457 46.0 0.0387 0.0387 52.5 0.0332 0.0332 60.0 0.0285 0.0285 69.0 0.0244 0.0244 79.0 0.0210 0.0210 90.5 0.0182 0.0182 105.5 0.0154 0.0154 123.5 0.0131 0.0131 143.0 0.0112 0.0112 163.5 0.0098 0.0098 185.0 0.0086 0.0086 208.0 0.0076 0.0076 232.5 0.0068 0.0068 258.5 0.0061 0.0061 286.0 0.0055 0.0055 331.0 0.0048 0.0048 396.0 0.0040 0.0040 468.5 0.0034 0.0034 549.5 0.0029 0.0029 639.0 0.0025 0.0025 738.0 0.0021 0.0021 847.5 0.0019 0.0019 968.5 0.0016 0.0016 1102.0 0.0014 0.0014 1249.5 0.0013 0.0013 1412.0 0.0011 0.0011 1590.5 0.0010 0.0010 1787.0 0.0009 0.0009 1944.5 0.0008 0.0008 -2.6 2.8 117 9.0 2.8544 2.8544 11.0 0.6819 0.6819 13.5 0.3544 0.3544 16.5 0.2264 0.2264 19.5 0.1669 0.1669 22.5 0.1324 0.1324 26.0 0.1068 0.1068 30.0 0.0876 0.0876 34.5 0.0729 0.0729 40.0 0.0605 0.0605 46.0 0.0511 0.0511 52.5 0.0437 0.0437 60.0 0.0375 0.0375 69.0 0.0320 0.0320 79.0 0.0276 0.0276 90.5 0.0238 0.0238 105.5 0.0202 0.0202 123.5 0.0171 0.0171 143.0 0.0146 0.0146 163.5 0.0127 0.0127 185.0 0.0112 0.0112 208.0 0.0099 0.0099 232.5 0.0088 0.0088 258.5 0.0079 0.0079 286.0 0.0072 0.0072 331.0 0.0062 0.0062 396.0 0.0052 0.0052 468.5 0.0043 0.0043 549.5 0.0037 0.0037 639.0 0.0032 0.0032 738.0 0.0028 0.0028 847.5 0.0024 0.0024 968.5 0.0021 0.0021 1102.0 0.0019 0.0019 1249.5 0.0016 0.0016 1412.0 0.0014 0.0014 1590.5 0.0013 0.0013 1787.0 0.0011 0.0011 1944.5 0.0011 0.0011 -2.8 3.0 117 9.0 1.5087 1.5087 11.0 0.5728 0.5728 13.5 0.3273 0.3273 16.5 0.2175 0.2175 19.5 0.1633 0.1633 22.5 0.1309 0.1309 26.0 0.1064 0.1064 30.0 0.0877 0.0877 34.5 0.0733 0.0733 40.0 0.0611 0.0611 46.0 0.0517 0.0517 52.5 0.0443 0.0443 60.0 0.0381 0.0381 69.0 0.0326 0.0326 79.0 0.0281 0.0281 90.5 0.0242 0.0242 105.5 0.0206 0.0206 123.5 0.0174 0.0174 143.0 0.0149 0.0149 163.5 0.0130 0.0130 185.0 0.0114 0.0114 208.0 0.0101 0.0101 232.5 0.0090 0.0090 258.5 0.0081 0.0081 286.0 0.0073 0.0073 331.0 0.0063 0.0063 396.0 0.0053 0.0053 468.5 0.0044 0.0044 549.5 0.0038 0.0038 639.0 0.0033 0.0033 738.0 0.0028 0.0028 847.5 0.0025 0.0025 968.5 0.0022 0.0022 1102.0 0.0019 0.0019 1249.5 0.0017 0.0017 1412.0 0.0015 0.0015 1590.5 0.0013 0.0013 1787.0 0.0012 0.0012 1944.5 0.0011 0.0011 -3.0 3.5 117 9.0 0.3153 0.3153 11.0 0.2105 0.2105 13.5 0.1493 0.1493 16.5 0.1110 0.1110 19.5 0.0885 0.0885 22.5 0.0736 0.0736 26.0 0.0616 0.0616 30.0 0.0519 0.0519 34.5 0.0441 0.0441 40.0 0.0373 0.0373 46.0 0.0320 0.0320 52.5 0.0277 0.0277 60.0 0.0240 0.0240 69.0 0.0207 0.0207 79.0 0.0179 0.0179 90.5 0.0155 0.0155 105.5 0.0133 0.0133 123.5 0.0113 0.0113 143.0 0.0097 0.0097 163.5 0.0085 0.0085 185.0 0.0075 0.0075 208.0 0.0067 0.0067 232.5 0.0060 0.0060 258.5 0.0054 0.0054 286.0 0.0048 0.0048 331.0 0.0042 0.0042 396.0 0.0035 0.0035 468.5 0.0030 0.0030 549.5 0.0025 0.0025 639.0 0.0022 0.0022 738.0 0.0019 0.0019 847.5 0.0017 0.0017 968.5 0.0015 0.0015 1102.0 0.0013 0.0013 1249.5 0.0011 0.0011 1412.0 0.0010 0.0010 1590.5 0.0009 0.0009 1787.0 0.0008 0.0008 1944.5 0.0007 0.0007 -3.5 4.0 117 9.0 0.0923 0.0923 11.0 0.0683 0.0683 13.5 0.0518 0.0518 16.5 0.0403 0.0403 19.5 0.0331 0.0331 22.5 0.0282 0.0282 26.0 0.0240 0.0240 30.0 0.0206 0.0206 34.5 0.0178 0.0178 40.0 0.0153 0.0153 46.0 0.0133 0.0133 52.5 0.0116 0.0116 60.0 0.0102 0.0102 69.0 0.0089 0.0089 79.0 0.0078 0.0078 90.5 0.0068 0.0068 105.5 0.0059 0.0059 123.5 0.0051 0.0051 143.0 0.0044 0.0044 163.5 0.0039 0.0039 185.0 0.0035 0.0035 208.0 0.0031 0.0031 232.5 0.0028 0.0028 258.5 0.0025 0.0025 286.0 0.0023 0.0023 331.0 0.0020 0.0020 396.0 0.0017 0.0017 468.5 0.0015 0.0015 549.5 0.0013 0.0013 639.0 0.0011 0.0011 738.0 0.0010 0.0010 847.5 0.0009 0.0009 968.5 0.0008 0.0008 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 -4.0 4.5 117 9.0 0.0395 0.0395 11.0 0.0311 0.0311 13.5 0.0248 0.0248 16.5 0.0202 0.0202 19.5 0.0171 0.0171 22.5 0.0149 0.0149 26.0 0.0131 0.0131 30.0 0.0115 0.0115 34.5 0.0101 0.0101 40.0 0.0089 0.0089 46.0 0.0078 0.0078 52.5 0.0070 0.0070 60.0 0.0062 0.0062 69.0 0.0055 0.0055 79.0 0.0049 0.0049 90.5 0.0044 0.0044 105.5 0.0039 0.0039 123.5 0.0034 0.0034 143.0 0.0030 0.0030 163.5 0.0027 0.0027 185.0 0.0024 0.0024 208.0 0.0022 0.0022 232.5 0.0020 0.0020 258.5 0.0018 0.0018 286.0 0.0017 0.0017 331.0 0.0015 0.0015 396.0 0.0013 0.0013 468.5 0.0011 0.0011 549.5 0.0010 0.0010 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 -4.5 5.2 117 9.0 0.0662 0.0662 11.0 0.0523 0.0523 13.5 0.0416 0.0416 16.5 0.0335 0.0335 19.5 0.0281 0.0281 22.5 0.0242 0.0242 26.0 0.0209 0.0209 30.0 0.0181 0.0181 34.5 0.0158 0.0158 40.0 0.0136 0.0136 46.0 0.0119 0.0119 52.5 0.0105 0.0105 60.0 0.0092 0.0092 69.0 0.0081 0.0081 79.0 0.0071 0.0071 90.5 0.0063 0.0063 105.5 0.0054 0.0054 123.5 0.0047 0.0047 143.0 0.0041 0.0041 163.5 0.0036 0.0036 185.0 0.0032 0.0032 208.0 0.0029 0.0029 232.5 0.0026 0.0026 258.5 0.0024 0.0024 286.0 0.0022 0.0022 331.0 0.0019 0.0019 396.0 0.0016 0.0016 468.5 0.0014 0.0014 549.5 0.0012 0.0012 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0008 0.0008 1102.0 0.0008 0.0008 1249.5 0.0008 0.0008 1412.0 0.0007 0.0007 1590.5 0.0007 0.0007 1787.0 0.0007 0.0007 1944.5 0.0007 0.0007 -[SubTotalRelative] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0308 0.0308 11.0 0.0308 0.0308 13.5 0.0308 0.0308 16.5 0.0308 0.0308 19.5 0.0308 0.0308 22.5 0.0308 0.0308 26.0 0.0308 0.0308 30.0 0.0308 0.0308 34.5 0.0308 0.0308 40.0 0.0308 0.0308 46.0 0.0308 0.0308 52.5 0.0308 0.0308 60.0 0.0308 0.0308 69.0 0.0308 0.0308 79.0 0.0308 0.0308 90.5 0.0308 0.0308 105.5 0.0308 0.0308 123.5 0.0308 0.0308 143.0 0.0308 0.0308 163.5 0.0308 0.0308 185.0 0.0308 0.0308 208.0 0.0308 0.0308 232.5 0.0308 0.0308 258.5 0.0308 0.0308 286.0 0.0308 0.0308 331.0 0.0308 0.0308 396.0 0.0308 0.0308 468.5 0.0308 0.0308 549.5 0.0308 0.0308 639.0 0.0308 0.0308 738.0 0.0308 0.0308 847.5 0.0308 0.0308 968.5 0.0308 0.0308 1102.0 0.0308 0.0308 1249.5 0.0308 0.0308 1412.0 0.0308 0.0308 1590.5 0.0308 0.0308 1787.0 0.0308 0.0308 1944.5 0.0308 0.0308 --4.5 -4.0 117 9.0 0.0308 0.0308 11.0 0.0308 0.0308 13.5 0.0308 0.0308 16.5 0.0308 0.0308 19.5 0.0308 0.0308 22.5 0.0308 0.0308 26.0 0.0308 0.0308 30.0 0.0308 0.0308 34.5 0.0308 0.0308 40.0 0.0308 0.0308 46.0 0.0308 0.0308 52.5 0.0308 0.0308 60.0 0.0308 0.0308 69.0 0.0308 0.0308 79.0 0.0308 0.0308 90.5 0.0308 0.0308 105.5 0.0308 0.0308 123.5 0.0308 0.0308 143.0 0.0308 0.0308 163.5 0.0308 0.0308 185.0 0.0308 0.0308 208.0 0.0308 0.0308 232.5 0.0308 0.0308 258.5 0.0308 0.0308 286.0 0.0308 0.0308 331.0 0.0308 0.0308 396.0 0.0308 0.0308 468.5 0.0308 0.0308 549.5 0.0308 0.0308 639.0 0.0308 0.0308 738.0 0.0308 0.0308 847.5 0.0308 0.0308 968.5 0.0308 0.0308 1102.0 0.0308 0.0308 1249.5 0.0308 0.0308 1412.0 0.0308 0.0308 1590.5 0.0308 0.0308 1787.0 0.0308 0.0308 1944.5 0.0308 0.0308 --4.0 -3.5 117 9.0 0.0308 0.0308 11.0 0.0308 0.0308 13.5 0.0308 0.0308 16.5 0.0308 0.0308 19.5 0.0308 0.0308 22.5 0.0308 0.0308 26.0 0.0308 0.0308 30.0 0.0308 0.0308 34.5 0.0308 0.0308 40.0 0.0308 0.0308 46.0 0.0308 0.0308 52.5 0.0308 0.0308 60.0 0.0308 0.0308 69.0 0.0308 0.0308 79.0 0.0308 0.0308 90.5 0.0308 0.0308 105.5 0.0308 0.0308 123.5 0.0308 0.0308 143.0 0.0308 0.0308 163.5 0.0308 0.0308 185.0 0.0308 0.0308 208.0 0.0308 0.0308 232.5 0.0308 0.0308 258.5 0.0308 0.0308 286.0 0.0308 0.0308 331.0 0.0308 0.0308 396.0 0.0308 0.0308 468.5 0.0308 0.0308 549.5 0.0308 0.0308 639.0 0.0308 0.0308 738.0 0.0308 0.0308 847.5 0.0308 0.0308 968.5 0.0308 0.0308 1102.0 0.0308 0.0308 1249.5 0.0308 0.0308 1412.0 0.0308 0.0308 1590.5 0.0308 0.0308 1787.0 0.0308 0.0308 1944.5 0.0308 0.0308 --3.5 -3.0 117 9.0 0.0221 0.0221 11.0 0.0221 0.0221 13.5 0.0221 0.0221 16.5 0.0221 0.0221 19.5 0.0221 0.0221 22.5 0.0221 0.0221 26.0 0.0221 0.0221 30.0 0.0221 0.0221 34.5 0.0221 0.0221 40.0 0.0221 0.0221 46.0 0.0221 0.0221 52.5 0.0221 0.0221 60.0 0.0221 0.0221 69.0 0.0221 0.0221 79.0 0.0221 0.0221 90.5 0.0221 0.0221 105.5 0.0221 0.0221 123.5 0.0221 0.0221 143.0 0.0221 0.0221 163.5 0.0221 0.0221 185.0 0.0221 0.0221 208.0 0.0221 0.0221 232.5 0.0221 0.0221 258.5 0.0221 0.0221 286.0 0.0221 0.0221 331.0 0.0221 0.0221 396.0 0.0221 0.0221 468.5 0.0221 0.0221 549.5 0.0221 0.0221 639.0 0.0221 0.0221 738.0 0.0221 0.0221 847.5 0.0221 0.0221 968.5 0.0221 0.0221 1102.0 0.0221 0.0221 1249.5 0.0221 0.0221 1412.0 0.0221 0.0221 1590.5 0.0221 0.0221 1787.0 0.0221 0.0221 1944.5 0.0221 0.0221 --3.0 -2.8 117 9.0 0.0139 0.0139 11.0 0.0139 0.0139 13.5 0.0139 0.0139 16.5 0.0139 0.0139 19.5 0.0139 0.0139 22.5 0.0139 0.0139 26.0 0.0139 0.0139 30.0 0.0139 0.0139 34.5 0.0139 0.0139 40.0 0.0139 0.0139 46.0 0.0139 0.0139 52.5 0.0139 0.0139 60.0 0.0139 0.0139 69.0 0.0139 0.0139 79.0 0.0139 0.0139 90.5 0.0139 0.0139 105.5 0.0139 0.0139 123.5 0.0139 0.0139 143.0 0.0139 0.0139 163.5 0.0139 0.0139 185.0 0.0139 0.0139 208.0 0.0139 0.0139 232.5 0.0139 0.0139 258.5 0.0139 0.0139 286.0 0.0139 0.0139 331.0 0.0139 0.0139 396.0 0.0139 0.0139 468.5 0.0139 0.0139 549.5 0.0139 0.0139 639.0 0.0139 0.0139 738.0 0.0139 0.0139 847.5 0.0139 0.0139 968.5 0.0139 0.0139 1102.0 0.0139 0.0139 1249.5 0.0139 0.0139 1412.0 0.0139 0.0139 1590.5 0.0139 0.0139 1787.0 0.0139 0.0139 1944.5 0.0139 0.0139 --2.8 -2.6 117 9.0 0.0108 0.0108 11.0 0.0108 0.0108 13.5 0.0108 0.0108 16.5 0.0108 0.0108 19.5 0.0108 0.0108 22.5 0.0108 0.0108 26.0 0.0108 0.0108 30.0 0.0108 0.0108 34.5 0.0108 0.0108 40.0 0.0108 0.0108 46.0 0.0108 0.0108 52.5 0.0108 0.0108 60.0 0.0108 0.0108 69.0 0.0108 0.0108 79.0 0.0108 0.0108 90.5 0.0108 0.0108 105.5 0.0108 0.0108 123.5 0.0108 0.0108 143.0 0.0108 0.0108 163.5 0.0108 0.0108 185.0 0.0108 0.0108 208.0 0.0108 0.0108 232.5 0.0108 0.0108 258.5 0.0108 0.0108 286.0 0.0108 0.0108 331.0 0.0108 0.0108 396.0 0.0108 0.0108 468.5 0.0108 0.0108 549.5 0.0108 0.0108 639.0 0.0108 0.0108 738.0 0.0108 0.0108 847.5 0.0108 0.0108 968.5 0.0108 0.0108 1102.0 0.0108 0.0108 1249.5 0.0108 0.0108 1412.0 0.0108 0.0108 1590.5 0.0108 0.0108 1787.0 0.0108 0.0108 1944.5 0.0108 0.0108 --2.6 -2.4 117 9.0 0.0075 0.0075 11.0 0.0075 0.0075 13.5 0.0075 0.0075 16.5 0.0075 0.0075 19.5 0.0075 0.0075 22.5 0.0075 0.0075 26.0 0.0075 0.0075 30.0 0.0075 0.0075 34.5 0.0075 0.0075 40.0 0.0075 0.0075 46.0 0.0075 0.0075 52.5 0.0075 0.0075 60.0 0.0075 0.0075 69.0 0.0075 0.0075 79.0 0.0075 0.0075 90.5 0.0075 0.0075 105.5 0.0075 0.0075 123.5 0.0075 0.0075 143.0 0.0075 0.0075 163.5 0.0075 0.0075 185.0 0.0075 0.0075 208.0 0.0075 0.0075 232.5 0.0075 0.0075 258.5 0.0075 0.0075 286.0 0.0075 0.0075 331.0 0.0075 0.0075 396.0 0.0075 0.0075 468.5 0.0075 0.0075 549.5 0.0075 0.0075 639.0 0.0075 0.0075 738.0 0.0075 0.0075 847.5 0.0075 0.0075 968.5 0.0075 0.0075 1102.0 0.0075 0.0075 1249.5 0.0075 0.0075 1412.0 0.0075 0.0075 1590.5 0.0075 0.0075 1787.0 0.0075 0.0075 1944.5 0.0075 0.0075 --2.4 -2.2 117 9.0 0.0048 0.0048 11.0 0.0048 0.0048 13.5 0.0048 0.0048 16.5 0.0048 0.0048 19.5 0.0048 0.0048 22.5 0.0048 0.0048 26.0 0.0048 0.0048 30.0 0.0048 0.0048 34.5 0.0048 0.0048 40.0 0.0048 0.0048 46.0 0.0048 0.0048 52.5 0.0048 0.0048 60.0 0.0048 0.0048 69.0 0.0048 0.0048 79.0 0.0048 0.0048 90.5 0.0048 0.0048 105.5 0.0048 0.0048 123.5 0.0048 0.0048 143.0 0.0048 0.0048 163.5 0.0048 0.0048 185.0 0.0048 0.0048 208.0 0.0048 0.0048 232.5 0.0048 0.0048 258.5 0.0048 0.0048 286.0 0.0048 0.0048 331.0 0.0048 0.0048 396.0 0.0048 0.0048 468.5 0.0048 0.0048 549.5 0.0048 0.0048 639.0 0.0048 0.0048 738.0 0.0048 0.0048 847.5 0.0048 0.0048 968.5 0.0048 0.0048 1102.0 0.0048 0.0048 1249.5 0.0048 0.0048 1412.0 0.0048 0.0048 1590.5 0.0048 0.0048 1787.0 0.0048 0.0048 1944.5 0.0048 0.0048 --2.2 -2.0 117 9.0 0.0041 0.0041 11.0 0.0041 0.0041 13.5 0.0041 0.0041 16.5 0.0041 0.0041 19.5 0.0041 0.0041 22.5 0.0041 0.0041 26.0 0.0041 0.0041 30.0 0.0041 0.0041 34.5 0.0041 0.0041 40.0 0.0041 0.0041 46.0 0.0041 0.0041 52.5 0.0041 0.0041 60.0 0.0041 0.0041 69.0 0.0041 0.0041 79.0 0.0041 0.0041 90.5 0.0041 0.0041 105.5 0.0041 0.0041 123.5 0.0041 0.0041 143.0 0.0041 0.0041 163.5 0.0041 0.0041 185.0 0.0041 0.0041 208.0 0.0041 0.0041 232.5 0.0041 0.0041 258.5 0.0041 0.0041 286.0 0.0041 0.0041 331.0 0.0041 0.0041 396.0 0.0041 0.0041 468.5 0.0041 0.0041 549.5 0.0041 0.0041 639.0 0.0041 0.0041 738.0 0.0041 0.0041 847.5 0.0041 0.0041 968.5 0.0041 0.0041 1102.0 0.0041 0.0041 1249.5 0.0041 0.0041 1412.0 0.0041 0.0041 1590.5 0.0041 0.0041 1787.0 0.0041 0.0041 1944.5 0.0041 0.0041 --2.0 -1.8 117 9.0 0.0034 0.0034 11.0 0.0034 0.0034 13.5 0.0034 0.0034 16.5 0.0034 0.0034 19.5 0.0034 0.0034 22.5 0.0034 0.0034 26.0 0.0034 0.0034 30.0 0.0034 0.0034 34.5 0.0034 0.0034 40.0 0.0034 0.0034 46.0 0.0034 0.0034 52.5 0.0034 0.0034 60.0 0.0034 0.0034 69.0 0.0034 0.0034 79.0 0.0034 0.0034 90.5 0.0034 0.0034 105.5 0.0034 0.0034 123.5 0.0034 0.0034 143.0 0.0034 0.0034 163.5 0.0034 0.0034 185.0 0.0034 0.0034 208.0 0.0034 0.0034 232.5 0.0034 0.0034 258.5 0.0034 0.0034 286.0 0.0034 0.0034 331.0 0.0034 0.0034 396.0 0.0034 0.0034 468.5 0.0034 0.0034 549.5 0.0034 0.0034 639.0 0.0034 0.0034 738.0 0.0034 0.0034 847.5 0.0034 0.0034 968.5 0.0034 0.0034 1102.0 0.0034 0.0034 1249.5 0.0034 0.0034 1412.0 0.0034 0.0034 1590.5 0.0034 0.0034 1787.0 0.0034 0.0034 1944.5 0.0034 0.0034 --1.8 -1.6 117 9.0 0.0028 0.0028 11.0 0.0028 0.0028 13.5 0.0028 0.0028 16.5 0.0028 0.0028 19.5 0.0028 0.0028 22.5 0.0028 0.0028 26.0 0.0028 0.0028 30.0 0.0028 0.0028 34.5 0.0028 0.0028 40.0 0.0028 0.0028 46.0 0.0028 0.0028 52.5 0.0028 0.0028 60.0 0.0028 0.0028 69.0 0.0028 0.0028 79.0 0.0028 0.0028 90.5 0.0028 0.0028 105.5 0.0028 0.0028 123.5 0.0028 0.0028 143.0 0.0028 0.0028 163.5 0.0028 0.0028 185.0 0.0028 0.0028 208.0 0.0028 0.0028 232.5 0.0028 0.0028 258.5 0.0028 0.0028 286.0 0.0028 0.0028 331.0 0.0028 0.0028 396.0 0.0028 0.0028 468.5 0.0028 0.0028 549.5 0.0028 0.0028 639.0 0.0028 0.0028 738.0 0.0028 0.0028 847.5 0.0028 0.0028 968.5 0.0028 0.0028 1102.0 0.0028 0.0028 1249.5 0.0028 0.0028 1412.0 0.0028 0.0028 1590.5 0.0028 0.0028 1787.0 0.0028 0.0028 1944.5 0.0028 0.0028 --1.6 -1.4 117 9.0 0.0021 0.0021 11.0 0.0021 0.0021 13.5 0.0021 0.0021 16.5 0.0021 0.0021 19.5 0.0021 0.0021 22.5 0.0021 0.0021 26.0 0.0021 0.0021 30.0 0.0021 0.0021 34.5 0.0021 0.0021 40.0 0.0021 0.0021 46.0 0.0021 0.0021 52.5 0.0021 0.0021 60.0 0.0021 0.0021 69.0 0.0021 0.0021 79.0 0.0021 0.0021 90.5 0.0021 0.0021 105.5 0.0021 0.0021 123.5 0.0021 0.0021 143.0 0.0021 0.0021 163.5 0.0021 0.0021 185.0 0.0021 0.0021 208.0 0.0021 0.0021 232.5 0.0021 0.0021 258.5 0.0021 0.0021 286.0 0.0021 0.0021 331.0 0.0021 0.0021 396.0 0.0021 0.0021 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0021 0.0021 968.5 0.0021 0.0021 1102.0 0.0021 0.0021 1249.5 0.0021 0.0021 1412.0 0.0021 0.0021 1590.5 0.0021 0.0021 1787.0 0.0021 0.0021 1944.5 0.0021 0.0021 --1.4 -1.2 117 9.0 0.0005 0.0005 11.0 0.0005 0.0005 13.5 0.0005 0.0005 16.5 0.0005 0.0005 19.5 0.0005 0.0005 22.5 0.0005 0.0005 26.0 0.0005 0.0005 30.0 0.0005 0.0005 34.5 0.0005 0.0005 40.0 0.0005 0.0005 46.0 0.0005 0.0005 52.5 0.0005 0.0005 60.0 0.0005 0.0005 69.0 0.0005 0.0005 79.0 0.0005 0.0005 90.5 0.0005 0.0005 105.5 0.0005 0.0005 123.5 0.0005 0.0005 143.0 0.0005 0.0005 163.5 0.0005 0.0005 185.0 0.0005 0.0005 208.0 0.0005 0.0005 232.5 0.0005 0.0005 258.5 0.0005 0.0005 286.0 0.0005 0.0005 331.0 0.0005 0.0005 396.0 0.0005 0.0005 468.5 0.0005 0.0005 549.5 0.0005 0.0005 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1944.5 0.0005 0.0005 --1.2 -1.0 117 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --1.0 -0.8 117 9.0 0.0002 0.0002 11.0 0.0002 0.0002 13.5 0.0002 0.0002 16.5 0.0002 0.0002 19.5 0.0002 0.0002 22.5 0.0002 0.0002 26.0 0.0002 0.0002 30.0 0.0002 0.0002 34.5 0.0002 0.0002 40.0 0.0002 0.0002 46.0 0.0002 0.0002 52.5 0.0002 0.0002 60.0 0.0002 0.0002 69.0 0.0002 0.0002 79.0 0.0002 0.0002 90.5 0.0002 0.0002 105.5 0.0002 0.0002 123.5 0.0002 0.0002 143.0 0.0002 0.0002 163.5 0.0002 0.0002 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0002 0.0002 258.5 0.0002 0.0002 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0002 0.0002 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0002 0.0002 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 --0.8 -0.6 117 9.0 0.0001 0.0001 11.0 0.0001 0.0001 13.5 0.0001 0.0001 16.5 0.0001 0.0001 19.5 0.0001 0.0001 22.5 0.0001 0.0001 26.0 0.0001 0.0001 30.0 0.0001 0.0001 34.5 0.0001 0.0001 40.0 0.0001 0.0001 46.0 0.0001 0.0001 52.5 0.0001 0.0001 60.0 0.0001 0.0001 69.0 0.0001 0.0001 79.0 0.0001 0.0001 90.5 0.0001 0.0001 105.5 0.0001 0.0001 123.5 0.0001 0.0001 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --0.6 -0.4 117 9.0 0.0001 0.0001 11.0 0.0001 0.0001 13.5 0.0001 0.0001 16.5 0.0001 0.0001 19.5 0.0001 0.0001 22.5 0.0001 0.0001 26.0 0.0001 0.0001 30.0 0.0001 0.0001 34.5 0.0001 0.0001 40.0 0.0001 0.0001 46.0 0.0001 0.0001 52.5 0.0001 0.0001 60.0 0.0001 0.0001 69.0 0.0001 0.0001 79.0 0.0001 0.0001 90.5 0.0001 0.0001 105.5 0.0001 0.0001 123.5 0.0001 0.0001 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --0.4 -0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.2 0.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.0 0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.2 0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.4 0.6 117 9.0 0.0001 0.0001 11.0 0.0001 0.0001 13.5 0.0001 0.0001 16.5 0.0001 0.0001 19.5 0.0001 0.0001 22.5 0.0001 0.0001 26.0 0.0001 0.0001 30.0 0.0001 0.0001 34.5 0.0001 0.0001 40.0 0.0001 0.0001 46.0 0.0001 0.0001 52.5 0.0001 0.0001 60.0 0.0001 0.0001 69.0 0.0001 0.0001 79.0 0.0001 0.0001 90.5 0.0001 0.0001 105.5 0.0001 0.0001 123.5 0.0001 0.0001 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -0.6 0.8 117 9.0 0.0001 0.0001 11.0 0.0001 0.0001 13.5 0.0001 0.0001 16.5 0.0001 0.0001 19.5 0.0001 0.0001 22.5 0.0001 0.0001 26.0 0.0001 0.0001 30.0 0.0001 0.0001 34.5 0.0001 0.0001 40.0 0.0001 0.0001 46.0 0.0001 0.0001 52.5 0.0001 0.0001 60.0 0.0001 0.0001 69.0 0.0001 0.0001 79.0 0.0001 0.0001 90.5 0.0001 0.0001 105.5 0.0001 0.0001 123.5 0.0001 0.0001 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -0.8 1.0 117 9.0 0.0002 0.0002 11.0 0.0002 0.0002 13.5 0.0002 0.0002 16.5 0.0002 0.0002 19.5 0.0002 0.0002 22.5 0.0002 0.0002 26.0 0.0002 0.0002 30.0 0.0002 0.0002 34.5 0.0002 0.0002 40.0 0.0002 0.0002 46.0 0.0002 0.0002 52.5 0.0002 0.0002 60.0 0.0002 0.0002 69.0 0.0002 0.0002 79.0 0.0002 0.0002 90.5 0.0002 0.0002 105.5 0.0002 0.0002 123.5 0.0002 0.0002 143.0 0.0002 0.0002 163.5 0.0002 0.0002 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0002 0.0002 258.5 0.0002 0.0002 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0002 0.0002 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0002 0.0002 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 -1.0 1.2 117 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -1.2 1.4 117 9.0 0.0005 0.0005 11.0 0.0005 0.0005 13.5 0.0005 0.0005 16.5 0.0005 0.0005 19.5 0.0005 0.0005 22.5 0.0005 0.0005 26.0 0.0005 0.0005 30.0 0.0005 0.0005 34.5 0.0005 0.0005 40.0 0.0005 0.0005 46.0 0.0005 0.0005 52.5 0.0005 0.0005 60.0 0.0005 0.0005 69.0 0.0005 0.0005 79.0 0.0005 0.0005 90.5 0.0005 0.0005 105.5 0.0005 0.0005 123.5 0.0005 0.0005 143.0 0.0005 0.0005 163.5 0.0005 0.0005 185.0 0.0005 0.0005 208.0 0.0005 0.0005 232.5 0.0005 0.0005 258.5 0.0005 0.0005 286.0 0.0005 0.0005 331.0 0.0005 0.0005 396.0 0.0005 0.0005 468.5 0.0005 0.0005 549.5 0.0005 0.0005 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1944.5 0.0005 0.0005 -1.4 1.6 117 9.0 0.0021 0.0021 11.0 0.0021 0.0021 13.5 0.0021 0.0021 16.5 0.0021 0.0021 19.5 0.0021 0.0021 22.5 0.0021 0.0021 26.0 0.0021 0.0021 30.0 0.0021 0.0021 34.5 0.0021 0.0021 40.0 0.0021 0.0021 46.0 0.0021 0.0021 52.5 0.0021 0.0021 60.0 0.0021 0.0021 69.0 0.0021 0.0021 79.0 0.0021 0.0021 90.5 0.0021 0.0021 105.5 0.0021 0.0021 123.5 0.0021 0.0021 143.0 0.0021 0.0021 163.5 0.0021 0.0021 185.0 0.0021 0.0021 208.0 0.0021 0.0021 232.5 0.0021 0.0021 258.5 0.0021 0.0021 286.0 0.0021 0.0021 331.0 0.0021 0.0021 396.0 0.0021 0.0021 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0021 0.0021 968.5 0.0021 0.0021 1102.0 0.0021 0.0021 1249.5 0.0021 0.0021 1412.0 0.0021 0.0021 1590.5 0.0021 0.0021 1787.0 0.0021 0.0021 1944.5 0.0021 0.0021 -1.6 1.8 117 9.0 0.0028 0.0028 11.0 0.0028 0.0028 13.5 0.0028 0.0028 16.5 0.0028 0.0028 19.5 0.0028 0.0028 22.5 0.0028 0.0028 26.0 0.0028 0.0028 30.0 0.0028 0.0028 34.5 0.0028 0.0028 40.0 0.0028 0.0028 46.0 0.0028 0.0028 52.5 0.0028 0.0028 60.0 0.0028 0.0028 69.0 0.0028 0.0028 79.0 0.0028 0.0028 90.5 0.0028 0.0028 105.5 0.0028 0.0028 123.5 0.0028 0.0028 143.0 0.0028 0.0028 163.5 0.0028 0.0028 185.0 0.0028 0.0028 208.0 0.0028 0.0028 232.5 0.0028 0.0028 258.5 0.0028 0.0028 286.0 0.0028 0.0028 331.0 0.0028 0.0028 396.0 0.0028 0.0028 468.5 0.0028 0.0028 549.5 0.0028 0.0028 639.0 0.0028 0.0028 738.0 0.0028 0.0028 847.5 0.0028 0.0028 968.5 0.0028 0.0028 1102.0 0.0028 0.0028 1249.5 0.0028 0.0028 1412.0 0.0028 0.0028 1590.5 0.0028 0.0028 1787.0 0.0028 0.0028 1944.5 0.0028 0.0028 -1.8 2.0 117 9.0 0.0034 0.0034 11.0 0.0034 0.0034 13.5 0.0034 0.0034 16.5 0.0034 0.0034 19.5 0.0034 0.0034 22.5 0.0034 0.0034 26.0 0.0034 0.0034 30.0 0.0034 0.0034 34.5 0.0034 0.0034 40.0 0.0034 0.0034 46.0 0.0034 0.0034 52.5 0.0034 0.0034 60.0 0.0034 0.0034 69.0 0.0034 0.0034 79.0 0.0034 0.0034 90.5 0.0034 0.0034 105.5 0.0034 0.0034 123.5 0.0034 0.0034 143.0 0.0034 0.0034 163.5 0.0034 0.0034 185.0 0.0034 0.0034 208.0 0.0034 0.0034 232.5 0.0034 0.0034 258.5 0.0034 0.0034 286.0 0.0034 0.0034 331.0 0.0034 0.0034 396.0 0.0034 0.0034 468.5 0.0034 0.0034 549.5 0.0034 0.0034 639.0 0.0034 0.0034 738.0 0.0034 0.0034 847.5 0.0034 0.0034 968.5 0.0034 0.0034 1102.0 0.0034 0.0034 1249.5 0.0034 0.0034 1412.0 0.0034 0.0034 1590.5 0.0034 0.0034 1787.0 0.0034 0.0034 1944.5 0.0034 0.0034 -2.0 2.2 117 9.0 0.0041 0.0041 11.0 0.0041 0.0041 13.5 0.0041 0.0041 16.5 0.0041 0.0041 19.5 0.0041 0.0041 22.5 0.0041 0.0041 26.0 0.0041 0.0041 30.0 0.0041 0.0041 34.5 0.0041 0.0041 40.0 0.0041 0.0041 46.0 0.0041 0.0041 52.5 0.0041 0.0041 60.0 0.0041 0.0041 69.0 0.0041 0.0041 79.0 0.0041 0.0041 90.5 0.0041 0.0041 105.5 0.0041 0.0041 123.5 0.0041 0.0041 143.0 0.0041 0.0041 163.5 0.0041 0.0041 185.0 0.0041 0.0041 208.0 0.0041 0.0041 232.5 0.0041 0.0041 258.5 0.0041 0.0041 286.0 0.0041 0.0041 331.0 0.0041 0.0041 396.0 0.0041 0.0041 468.5 0.0041 0.0041 549.5 0.0041 0.0041 639.0 0.0041 0.0041 738.0 0.0041 0.0041 847.5 0.0041 0.0041 968.5 0.0041 0.0041 1102.0 0.0041 0.0041 1249.5 0.0041 0.0041 1412.0 0.0041 0.0041 1590.5 0.0041 0.0041 1787.0 0.0041 0.0041 1944.5 0.0041 0.0041 -2.2 2.4 117 9.0 0.0048 0.0048 11.0 0.0048 0.0048 13.5 0.0048 0.0048 16.5 0.0048 0.0048 19.5 0.0048 0.0048 22.5 0.0048 0.0048 26.0 0.0048 0.0048 30.0 0.0048 0.0048 34.5 0.0048 0.0048 40.0 0.0048 0.0048 46.0 0.0048 0.0048 52.5 0.0048 0.0048 60.0 0.0048 0.0048 69.0 0.0048 0.0048 79.0 0.0048 0.0048 90.5 0.0048 0.0048 105.5 0.0048 0.0048 123.5 0.0048 0.0048 143.0 0.0048 0.0048 163.5 0.0048 0.0048 185.0 0.0048 0.0048 208.0 0.0048 0.0048 232.5 0.0048 0.0048 258.5 0.0048 0.0048 286.0 0.0048 0.0048 331.0 0.0048 0.0048 396.0 0.0048 0.0048 468.5 0.0048 0.0048 549.5 0.0048 0.0048 639.0 0.0048 0.0048 738.0 0.0048 0.0048 847.5 0.0048 0.0048 968.5 0.0048 0.0048 1102.0 0.0048 0.0048 1249.5 0.0048 0.0048 1412.0 0.0048 0.0048 1590.5 0.0048 0.0048 1787.0 0.0048 0.0048 1944.5 0.0048 0.0048 -2.4 2.6 117 9.0 0.0075 0.0075 11.0 0.0075 0.0075 13.5 0.0075 0.0075 16.5 0.0075 0.0075 19.5 0.0075 0.0075 22.5 0.0075 0.0075 26.0 0.0075 0.0075 30.0 0.0075 0.0075 34.5 0.0075 0.0075 40.0 0.0075 0.0075 46.0 0.0075 0.0075 52.5 0.0075 0.0075 60.0 0.0075 0.0075 69.0 0.0075 0.0075 79.0 0.0075 0.0075 90.5 0.0075 0.0075 105.5 0.0075 0.0075 123.5 0.0075 0.0075 143.0 0.0075 0.0075 163.5 0.0075 0.0075 185.0 0.0075 0.0075 208.0 0.0075 0.0075 232.5 0.0075 0.0075 258.5 0.0075 0.0075 286.0 0.0075 0.0075 331.0 0.0075 0.0075 396.0 0.0075 0.0075 468.5 0.0075 0.0075 549.5 0.0075 0.0075 639.0 0.0075 0.0075 738.0 0.0075 0.0075 847.5 0.0075 0.0075 968.5 0.0075 0.0075 1102.0 0.0075 0.0075 1249.5 0.0075 0.0075 1412.0 0.0075 0.0075 1590.5 0.0075 0.0075 1787.0 0.0075 0.0075 1944.5 0.0075 0.0075 -2.6 2.8 117 9.0 0.0108 0.0108 11.0 0.0108 0.0108 13.5 0.0108 0.0108 16.5 0.0108 0.0108 19.5 0.0108 0.0108 22.5 0.0108 0.0108 26.0 0.0108 0.0108 30.0 0.0108 0.0108 34.5 0.0108 0.0108 40.0 0.0108 0.0108 46.0 0.0108 0.0108 52.5 0.0108 0.0108 60.0 0.0108 0.0108 69.0 0.0108 0.0108 79.0 0.0108 0.0108 90.5 0.0108 0.0108 105.5 0.0108 0.0108 123.5 0.0108 0.0108 143.0 0.0108 0.0108 163.5 0.0108 0.0108 185.0 0.0108 0.0108 208.0 0.0108 0.0108 232.5 0.0108 0.0108 258.5 0.0108 0.0108 286.0 0.0108 0.0108 331.0 0.0108 0.0108 396.0 0.0108 0.0108 468.5 0.0108 0.0108 549.5 0.0108 0.0108 639.0 0.0108 0.0108 738.0 0.0108 0.0108 847.5 0.0108 0.0108 968.5 0.0108 0.0108 1102.0 0.0108 0.0108 1249.5 0.0108 0.0108 1412.0 0.0108 0.0108 1590.5 0.0108 0.0108 1787.0 0.0108 0.0108 1944.5 0.0108 0.0108 -2.8 3.0 117 9.0 0.0139 0.0139 11.0 0.0139 0.0139 13.5 0.0139 0.0139 16.5 0.0139 0.0139 19.5 0.0139 0.0139 22.5 0.0139 0.0139 26.0 0.0139 0.0139 30.0 0.0139 0.0139 34.5 0.0139 0.0139 40.0 0.0139 0.0139 46.0 0.0139 0.0139 52.5 0.0139 0.0139 60.0 0.0139 0.0139 69.0 0.0139 0.0139 79.0 0.0139 0.0139 90.5 0.0139 0.0139 105.5 0.0139 0.0139 123.5 0.0139 0.0139 143.0 0.0139 0.0139 163.5 0.0139 0.0139 185.0 0.0139 0.0139 208.0 0.0139 0.0139 232.5 0.0139 0.0139 258.5 0.0139 0.0139 286.0 0.0139 0.0139 331.0 0.0139 0.0139 396.0 0.0139 0.0139 468.5 0.0139 0.0139 549.5 0.0139 0.0139 639.0 0.0139 0.0139 738.0 0.0139 0.0139 847.5 0.0139 0.0139 968.5 0.0139 0.0139 1102.0 0.0139 0.0139 1249.5 0.0139 0.0139 1412.0 0.0139 0.0139 1590.5 0.0139 0.0139 1787.0 0.0139 0.0139 1944.5 0.0139 0.0139 -3.0 3.5 117 9.0 0.0221 0.0221 11.0 0.0221 0.0221 13.5 0.0221 0.0221 16.5 0.0221 0.0221 19.5 0.0221 0.0221 22.5 0.0221 0.0221 26.0 0.0221 0.0221 30.0 0.0221 0.0221 34.5 0.0221 0.0221 40.0 0.0221 0.0221 46.0 0.0221 0.0221 52.5 0.0221 0.0221 60.0 0.0221 0.0221 69.0 0.0221 0.0221 79.0 0.0221 0.0221 90.5 0.0221 0.0221 105.5 0.0221 0.0221 123.5 0.0221 0.0221 143.0 0.0221 0.0221 163.5 0.0221 0.0221 185.0 0.0221 0.0221 208.0 0.0221 0.0221 232.5 0.0221 0.0221 258.5 0.0221 0.0221 286.0 0.0221 0.0221 331.0 0.0221 0.0221 396.0 0.0221 0.0221 468.5 0.0221 0.0221 549.5 0.0221 0.0221 639.0 0.0221 0.0221 738.0 0.0221 0.0221 847.5 0.0221 0.0221 968.5 0.0221 0.0221 1102.0 0.0221 0.0221 1249.5 0.0221 0.0221 1412.0 0.0221 0.0221 1590.5 0.0221 0.0221 1787.0 0.0221 0.0221 1944.5 0.0221 0.0221 -3.5 4.0 117 9.0 0.0308 0.0308 11.0 0.0308 0.0308 13.5 0.0308 0.0308 16.5 0.0308 0.0308 19.5 0.0308 0.0308 22.5 0.0308 0.0308 26.0 0.0308 0.0308 30.0 0.0308 0.0308 34.5 0.0308 0.0308 40.0 0.0308 0.0308 46.0 0.0308 0.0308 52.5 0.0308 0.0308 60.0 0.0308 0.0308 69.0 0.0308 0.0308 79.0 0.0308 0.0308 90.5 0.0308 0.0308 105.5 0.0308 0.0308 123.5 0.0308 0.0308 143.0 0.0308 0.0308 163.5 0.0308 0.0308 185.0 0.0308 0.0308 208.0 0.0308 0.0308 232.5 0.0308 0.0308 258.5 0.0308 0.0308 286.0 0.0308 0.0308 331.0 0.0308 0.0308 396.0 0.0308 0.0308 468.5 0.0308 0.0308 549.5 0.0308 0.0308 639.0 0.0308 0.0308 738.0 0.0308 0.0308 847.5 0.0308 0.0308 968.5 0.0308 0.0308 1102.0 0.0308 0.0308 1249.5 0.0308 0.0308 1412.0 0.0308 0.0308 1590.5 0.0308 0.0308 1787.0 0.0308 0.0308 1944.5 0.0308 0.0308 -4.0 4.5 117 9.0 0.0308 0.0308 11.0 0.0308 0.0308 13.5 0.0308 0.0308 16.5 0.0308 0.0308 19.5 0.0308 0.0308 22.5 0.0308 0.0308 26.0 0.0308 0.0308 30.0 0.0308 0.0308 34.5 0.0308 0.0308 40.0 0.0308 0.0308 46.0 0.0308 0.0308 52.5 0.0308 0.0308 60.0 0.0308 0.0308 69.0 0.0308 0.0308 79.0 0.0308 0.0308 90.5 0.0308 0.0308 105.5 0.0308 0.0308 123.5 0.0308 0.0308 143.0 0.0308 0.0308 163.5 0.0308 0.0308 185.0 0.0308 0.0308 208.0 0.0308 0.0308 232.5 0.0308 0.0308 258.5 0.0308 0.0308 286.0 0.0308 0.0308 331.0 0.0308 0.0308 396.0 0.0308 0.0308 468.5 0.0308 0.0308 549.5 0.0308 0.0308 639.0 0.0308 0.0308 738.0 0.0308 0.0308 847.5 0.0308 0.0308 968.5 0.0308 0.0308 1102.0 0.0308 0.0308 1249.5 0.0308 0.0308 1412.0 0.0308 0.0308 1590.5 0.0308 0.0308 1787.0 0.0308 0.0308 1944.5 0.0308 0.0308 -4.5 5.2 117 9.0 0.0308 0.0308 11.0 0.0308 0.0308 13.5 0.0308 0.0308 16.5 0.0308 0.0308 19.5 0.0308 0.0308 22.5 0.0308 0.0308 26.0 0.0308 0.0308 30.0 0.0308 0.0308 34.5 0.0308 0.0308 40.0 0.0308 0.0308 46.0 0.0308 0.0308 52.5 0.0308 0.0308 60.0 0.0308 0.0308 69.0 0.0308 0.0308 79.0 0.0308 0.0308 90.5 0.0308 0.0308 105.5 0.0308 0.0308 123.5 0.0308 0.0308 143.0 0.0308 0.0308 163.5 0.0308 0.0308 185.0 0.0308 0.0308 208.0 0.0308 0.0308 232.5 0.0308 0.0308 258.5 0.0308 0.0308 286.0 0.0308 0.0308 331.0 0.0308 0.0308 396.0 0.0308 0.0308 468.5 0.0308 0.0308 549.5 0.0308 0.0308 639.0 0.0308 0.0308 738.0 0.0308 0.0308 847.5 0.0308 0.0308 968.5 0.0308 0.0308 1102.0 0.0308 0.0308 1249.5 0.0308 0.0308 1412.0 0.0308 0.0308 1590.5 0.0308 0.0308 1787.0 0.0308 0.0308 1944.5 0.0308 0.0308 -[SubTotalPt] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --4.5 -4.0 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --4.0 -3.5 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --3.5 -3.0 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --3.0 -2.8 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --2.8 -2.6 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --2.6 -2.4 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --2.4 -2.2 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --2.2 -2.0 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --2.0 -1.8 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --1.8 -1.6 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --1.6 -1.4 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --1.4 -1.2 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --1.2 -1.0 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --1.0 -0.8 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --0.8 -0.6 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --0.6 -0.4 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --0.4 -0.2 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --0.2 0.0 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.0 0.2 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.2 0.4 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.4 0.6 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.6 0.8 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.8 1.0 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -1.0 1.2 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -1.2 1.4 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -1.4 1.6 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -1.6 1.8 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -1.8 2.0 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -2.0 2.2 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -2.2 2.4 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -2.4 2.6 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -2.6 2.8 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -2.8 3.0 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -3.0 3.5 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -3.5 4.0 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -4.0 4.5 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -4.5 5.2 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -[SubTotalDataMC] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0785 0.0785 11.0 0.0666 0.0666 13.5 0.0579 0.0579 16.5 0.0516 0.0516 19.5 0.0475 0.0475 22.5 0.0448 0.0448 26.0 0.0423 0.0423 30.0 0.0402 0.0402 34.5 0.0385 0.0385 40.0 0.0369 0.0369 46.0 0.0356 0.0356 52.5 0.0347 0.0347 60.0 0.0340 0.0340 69.0 0.0334 0.0334 79.0 0.0330 0.0330 90.5 0.0327 0.0327 105.5 0.0325 0.0325 123.5 0.0323 0.0323 143.0 0.0322 0.0322 163.5 0.0321 0.0321 185.0 0.0321 0.0321 208.0 0.0320 0.0320 232.5 0.0320 0.0320 258.5 0.0320 0.0320 286.0 0.0320 0.0320 331.0 0.0321 0.0321 396.0 0.0321 0.0321 468.5 0.0321 0.0321 549.5 0.0322 0.0322 639.0 0.0323 0.0323 738.0 0.0323 0.0323 847.5 0.0324 0.0324 968.5 0.0325 0.0325 1102.0 0.0327 0.0327 1249.5 0.0328 0.0328 1412.0 0.0329 0.0329 1590.5 0.0330 0.0330 1787.0 0.0331 0.0331 1944.5 0.0332 0.0332 --4.5 -4.0 117 9.0 0.0516 0.0516 11.0 0.0473 0.0473 13.5 0.0444 0.0444 16.5 0.0421 0.0421 19.5 0.0405 0.0405 22.5 0.0394 0.0394 26.0 0.0382 0.0382 30.0 0.0370 0.0370 34.5 0.0360 0.0360 40.0 0.0350 0.0350 46.0 0.0342 0.0342 52.5 0.0336 0.0336 60.0 0.0331 0.0331 69.0 0.0327 0.0327 79.0 0.0325 0.0325 90.5 0.0323 0.0323 105.5 0.0322 0.0322 123.5 0.0321 0.0321 143.0 0.0320 0.0320 163.5 0.0320 0.0320 185.0 0.0320 0.0320 208.0 0.0320 0.0320 232.5 0.0320 0.0320 258.5 0.0320 0.0320 286.0 0.0320 0.0320 331.0 0.0320 0.0320 396.0 0.0320 0.0320 468.5 0.0321 0.0321 549.5 0.0322 0.0322 639.0 0.0323 0.0323 738.0 0.0323 0.0323 847.5 0.0324 0.0324 968.5 0.0325 0.0325 1102.0 0.0326 0.0326 1249.5 0.0328 0.0328 1412.0 0.0329 0.0329 1590.5 0.0330 0.0330 1787.0 0.0331 0.0331 1944.5 0.0332 0.0332 --4.0 -3.5 117 9.0 0.0978 0.0978 11.0 0.0766 0.0766 13.5 0.0631 0.0631 16.5 0.0543 0.0543 19.5 0.0491 0.0491 22.5 0.0458 0.0458 26.0 0.0429 0.0429 30.0 0.0406 0.0406 34.5 0.0387 0.0387 40.0 0.0370 0.0370 46.0 0.0357 0.0357 52.5 0.0347 0.0347 60.0 0.0340 0.0340 69.0 0.0334 0.0334 79.0 0.0330 0.0330 90.5 0.0327 0.0327 105.5 0.0325 0.0325 123.5 0.0323 0.0323 143.0 0.0322 0.0322 163.5 0.0321 0.0321 185.0 0.0321 0.0321 208.0 0.0320 0.0320 232.5 0.0320 0.0320 258.5 0.0320 0.0320 286.0 0.0320 0.0320 331.0 0.0321 0.0321 396.0 0.0321 0.0321 468.5 0.0321 0.0321 549.5 0.0322 0.0322 639.0 0.0323 0.0323 738.0 0.0323 0.0323 847.5 0.0324 0.0324 968.5 0.0325 0.0325 1102.0 0.0327 0.0327 1249.5 0.0328 0.0328 1412.0 0.0329 0.0329 1590.5 0.0330 0.0330 1787.0 0.0331 0.0331 1944.5 0.0332 0.0332 --3.5 -3.0 117 9.0 0.2085 0.2085 11.0 0.1463 0.1463 13.5 0.1082 0.1082 16.5 0.0838 0.0838 19.5 0.0695 0.0695 22.5 0.0602 0.0602 26.0 0.0527 0.0527 30.0 0.0466 0.0466 34.5 0.0418 0.0418 40.0 0.0376 0.0376 46.0 0.0345 0.0345 52.5 0.0320 0.0320 60.0 0.0301 0.0301 69.0 0.0285 0.0285 79.0 0.0273 0.0273 90.5 0.0264 0.0264 105.5 0.0257 0.0257 123.5 0.0251 0.0251 143.0 0.0247 0.0247 163.5 0.0245 0.0245 185.0 0.0243 0.0243 208.0 0.0242 0.0242 232.5 0.0241 0.0241 258.5 0.0241 0.0241 286.0 0.0240 0.0240 331.0 0.0240 0.0240 396.0 0.0240 0.0240 468.5 0.0240 0.0240 549.5 0.0241 0.0241 639.0 0.0242 0.0242 738.0 0.0243 0.0243 847.5 0.0244 0.0244 968.5 0.0245 0.0245 1102.0 0.0247 0.0247 1249.5 0.0248 0.0248 1412.0 0.0250 0.0250 1590.5 0.0251 0.0251 1787.0 0.0253 0.0253 1944.5 0.0254 0.0254 --3.0 -2.8 117 9.0 0.2112 0.2112 11.0 0.1326 0.1326 13.5 0.0926 0.0926 16.5 0.0697 0.0697 19.5 0.0570 0.0570 22.5 0.0489 0.0489 26.0 0.0424 0.0424 30.0 0.0372 0.0372 34.5 0.0330 0.0330 40.0 0.0293 0.0293 46.0 0.0264 0.0264 52.5 0.0241 0.0241 60.0 0.0223 0.0223 69.0 0.0208 0.0208 79.0 0.0197 0.0197 90.5 0.0189 0.0189 105.5 0.0181 0.0181 123.5 0.0176 0.0176 143.0 0.0173 0.0173 163.5 0.0170 0.0170 185.0 0.0169 0.0169 208.0 0.0168 0.0168 232.5 0.0167 0.0167 258.5 0.0167 0.0167 286.0 0.0167 0.0167 331.0 0.0167 0.0167 396.0 0.0167 0.0167 468.5 0.0167 0.0167 549.5 0.0169 0.0169 639.0 0.0170 0.0170 738.0 0.0172 0.0172 847.5 0.0173 0.0173 968.5 0.0175 0.0175 1102.0 0.0177 0.0177 1249.5 0.0179 0.0179 1412.0 0.0181 0.0181 1590.5 0.0183 0.0183 1787.0 0.0186 0.0186 1944.5 0.0187 0.0187 --2.8 -2.6 117 9.0 0.1802 0.1802 11.0 0.1064 0.1064 13.5 0.0734 0.0734 16.5 0.0557 0.0557 19.5 0.0461 0.0461 22.5 0.0400 0.0400 26.0 0.0351 0.0351 30.0 0.0311 0.0311 34.5 0.0277 0.0277 40.0 0.0247 0.0247 46.0 0.0223 0.0223 52.5 0.0203 0.0203 60.0 0.0188 0.0188 69.0 0.0175 0.0175 79.0 0.0165 0.0165 90.5 0.0158 0.0158 105.5 0.0152 0.0152 123.5 0.0148 0.0148 143.0 0.0145 0.0145 163.5 0.0143 0.0143 185.0 0.0142 0.0142 208.0 0.0141 0.0141 232.5 0.0140 0.0140 258.5 0.0140 0.0140 286.0 0.0140 0.0140 331.0 0.0141 0.0141 396.0 0.0141 0.0141 468.5 0.0142 0.0142 549.5 0.0143 0.0143 639.0 0.0145 0.0145 738.0 0.0147 0.0147 847.5 0.0149 0.0149 968.5 0.0151 0.0151 1102.0 0.0154 0.0154 1249.5 0.0156 0.0156 1412.0 0.0158 0.0158 1590.5 0.0161 0.0161 1787.0 0.0163 0.0163 1944.5 0.0165 0.0165 --2.6 -2.4 117 9.0 0.0494 0.0494 11.0 0.0418 0.0418 13.5 0.0366 0.0366 16.5 0.0326 0.0326 19.5 0.0297 0.0297 22.5 0.0276 0.0276 26.0 0.0254 0.0254 30.0 0.0232 0.0232 34.5 0.0212 0.0212 40.0 0.0191 0.0191 46.0 0.0174 0.0174 52.5 0.0160 0.0160 60.0 0.0148 0.0148 69.0 0.0139 0.0139 79.0 0.0132 0.0132 90.5 0.0127 0.0127 105.5 0.0122 0.0122 123.5 0.0120 0.0120 143.0 0.0118 0.0118 163.5 0.0117 0.0117 185.0 0.0116 0.0116 208.0 0.0116 0.0116 232.5 0.0115 0.0115 258.5 0.0116 0.0116 286.0 0.0116 0.0116 331.0 0.0117 0.0117 396.0 0.0117 0.0117 468.5 0.0118 0.0118 549.5 0.0120 0.0120 639.0 0.0123 0.0123 738.0 0.0125 0.0125 847.5 0.0127 0.0127 968.5 0.0130 0.0130 1102.0 0.0133 0.0133 1249.5 0.0135 0.0135 1412.0 0.0138 0.0138 1590.5 0.0141 0.0141 1787.0 0.0144 0.0144 1944.5 0.0146 0.0146 --2.4 -2.2 117 9.0 0.0455 0.0455 11.0 0.0388 0.0388 13.5 0.0341 0.0341 16.5 0.0304 0.0304 19.5 0.0279 0.0279 22.5 0.0259 0.0259 26.0 0.0238 0.0238 30.0 0.0217 0.0217 34.5 0.0198 0.0198 40.0 0.0177 0.0177 46.0 0.0160 0.0160 52.5 0.0146 0.0146 60.0 0.0133 0.0133 69.0 0.0124 0.0124 79.0 0.0117 0.0117 90.5 0.0111 0.0111 105.5 0.0107 0.0107 123.5 0.0104 0.0104 143.0 0.0102 0.0102 163.5 0.0101 0.0101 185.0 0.0100 0.0100 208.0 0.0100 0.0100 232.5 0.0100 0.0100 258.5 0.0100 0.0100 286.0 0.0100 0.0100 331.0 0.0101 0.0101 396.0 0.0102 0.0102 468.5 0.0103 0.0103 549.5 0.0106 0.0106 639.0 0.0108 0.0108 738.0 0.0111 0.0111 847.5 0.0113 0.0113 968.5 0.0116 0.0116 1102.0 0.0120 0.0120 1249.5 0.0123 0.0123 1412.0 0.0125 0.0125 1590.5 0.0128 0.0128 1787.0 0.0132 0.0132 1944.5 0.0134 0.0134 --2.2 -2.0 117 9.0 0.0437 0.0437 11.0 0.0373 0.0373 13.5 0.0330 0.0330 16.5 0.0296 0.0296 19.5 0.0272 0.0272 22.5 0.0253 0.0253 26.0 0.0233 0.0233 30.0 0.0213 0.0213 34.5 0.0194 0.0194 40.0 0.0173 0.0173 46.0 0.0157 0.0157 52.5 0.0142 0.0142 60.0 0.0130 0.0130 69.0 0.0120 0.0120 79.0 0.0113 0.0113 90.5 0.0108 0.0108 105.5 0.0103 0.0103 123.5 0.0100 0.0100 143.0 0.0099 0.0099 163.5 0.0098 0.0098 185.0 0.0097 0.0097 208.0 0.0096 0.0096 232.5 0.0096 0.0096 258.5 0.0097 0.0097 286.0 0.0097 0.0097 331.0 0.0098 0.0098 396.0 0.0099 0.0099 468.5 0.0100 0.0100 549.5 0.0103 0.0103 639.0 0.0105 0.0105 738.0 0.0108 0.0108 847.5 0.0110 0.0110 968.5 0.0113 0.0113 1102.0 0.0117 0.0117 1249.5 0.0120 0.0120 1412.0 0.0123 0.0123 1590.5 0.0126 0.0126 1787.0 0.0129 0.0129 1944.5 0.0132 0.0132 --2.0 -1.8 117 9.0 0.0474 0.0474 11.0 0.0388 0.0388 13.5 0.0336 0.0336 16.5 0.0298 0.0298 19.5 0.0272 0.0272 22.5 0.0253 0.0253 26.0 0.0232 0.0232 30.0 0.0212 0.0212 34.5 0.0192 0.0192 40.0 0.0172 0.0172 46.0 0.0155 0.0155 52.5 0.0140 0.0140 60.0 0.0128 0.0128 69.0 0.0118 0.0118 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0101 0.0101 123.5 0.0098 0.0098 143.0 0.0096 0.0096 163.5 0.0095 0.0095 185.0 0.0094 0.0094 208.0 0.0094 0.0094 232.5 0.0094 0.0094 258.5 0.0094 0.0094 286.0 0.0094 0.0094 331.0 0.0095 0.0095 396.0 0.0096 0.0096 468.5 0.0097 0.0097 549.5 0.0100 0.0100 639.0 0.0103 0.0103 738.0 0.0105 0.0105 847.5 0.0108 0.0108 968.5 0.0111 0.0111 1102.0 0.0115 0.0115 1249.5 0.0118 0.0118 1412.0 0.0121 0.0121 1590.5 0.0124 0.0124 1787.0 0.0127 0.0127 1944.5 0.0130 0.0130 --1.8 -1.6 117 9.0 0.0420 0.0420 11.0 0.0359 0.0359 13.5 0.0318 0.0318 16.5 0.0287 0.0287 19.5 0.0264 0.0264 22.5 0.0246 0.0246 26.0 0.0227 0.0227 30.0 0.0207 0.0207 34.5 0.0188 0.0188 40.0 0.0168 0.0168 46.0 0.0152 0.0152 52.5 0.0137 0.0137 60.0 0.0125 0.0125 69.0 0.0115 0.0115 79.0 0.0108 0.0108 90.5 0.0103 0.0103 105.5 0.0098 0.0098 123.5 0.0095 0.0095 143.0 0.0094 0.0094 163.5 0.0092 0.0092 185.0 0.0092 0.0092 208.0 0.0091 0.0091 232.5 0.0091 0.0091 258.5 0.0092 0.0092 286.0 0.0092 0.0092 331.0 0.0093 0.0093 396.0 0.0094 0.0094 468.5 0.0095 0.0095 549.5 0.0098 0.0098 639.0 0.0101 0.0101 738.0 0.0103 0.0103 847.5 0.0106 0.0106 968.5 0.0109 0.0109 1102.0 0.0113 0.0113 1249.5 0.0116 0.0116 1412.0 0.0119 0.0119 1590.5 0.0122 0.0122 1787.0 0.0125 0.0125 1944.5 0.0128 0.0128 --1.6 -1.4 117 9.0 0.0359 0.0359 11.0 0.0327 0.0327 13.5 0.0299 0.0299 16.5 0.0275 0.0275 19.5 0.0255 0.0255 22.5 0.0240 0.0240 26.0 0.0222 0.0222 30.0 0.0203 0.0203 34.5 0.0185 0.0185 40.0 0.0165 0.0165 46.0 0.0149 0.0149 52.5 0.0134 0.0134 60.0 0.0122 0.0122 69.0 0.0113 0.0113 79.0 0.0106 0.0106 90.5 0.0100 0.0100 105.5 0.0096 0.0096 123.5 0.0093 0.0093 143.0 0.0092 0.0092 163.5 0.0090 0.0090 185.0 0.0090 0.0090 208.0 0.0089 0.0089 232.5 0.0089 0.0089 258.5 0.0090 0.0090 286.0 0.0090 0.0090 331.0 0.0091 0.0091 396.0 0.0092 0.0092 468.5 0.0094 0.0094 549.5 0.0096 0.0096 639.0 0.0099 0.0099 738.0 0.0102 0.0102 847.5 0.0104 0.0104 968.5 0.0108 0.0108 1102.0 0.0111 0.0111 1249.5 0.0115 0.0115 1412.0 0.0118 0.0118 1590.5 0.0121 0.0121 1787.0 0.0124 0.0124 1944.5 0.0127 0.0127 --1.4 -1.2 117 9.0 0.0349 0.0349 11.0 0.0321 0.0321 13.5 0.0295 0.0295 16.5 0.0272 0.0272 19.5 0.0253 0.0253 22.5 0.0237 0.0237 26.0 0.0220 0.0220 30.0 0.0201 0.0201 34.5 0.0183 0.0183 40.0 0.0163 0.0163 46.0 0.0147 0.0147 52.5 0.0132 0.0132 60.0 0.0120 0.0120 69.0 0.0110 0.0110 79.0 0.0103 0.0103 90.5 0.0098 0.0098 105.5 0.0093 0.0093 123.5 0.0091 0.0091 143.0 0.0089 0.0089 163.5 0.0088 0.0088 185.0 0.0087 0.0087 208.0 0.0087 0.0087 232.5 0.0087 0.0087 258.5 0.0087 0.0087 286.0 0.0088 0.0088 331.0 0.0089 0.0089 396.0 0.0090 0.0090 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0123 0.0123 1944.5 0.0125 0.0125 --1.2 -1.0 117 9.0 0.0350 0.0350 11.0 0.0321 0.0321 13.5 0.0295 0.0295 16.5 0.0271 0.0271 19.5 0.0253 0.0253 22.5 0.0237 0.0237 26.0 0.0219 0.0219 30.0 0.0201 0.0201 34.5 0.0183 0.0183 40.0 0.0163 0.0163 46.0 0.0147 0.0147 52.5 0.0132 0.0132 60.0 0.0120 0.0120 69.0 0.0110 0.0110 79.0 0.0103 0.0103 90.5 0.0098 0.0098 105.5 0.0093 0.0093 123.5 0.0091 0.0091 143.0 0.0089 0.0089 163.5 0.0088 0.0088 185.0 0.0087 0.0087 208.0 0.0087 0.0087 232.5 0.0087 0.0087 258.5 0.0087 0.0087 286.0 0.0088 0.0088 331.0 0.0089 0.0089 396.0 0.0090 0.0090 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --1.0 -0.8 117 9.0 0.0348 0.0348 11.0 0.0319 0.0319 13.5 0.0294 0.0294 16.5 0.0271 0.0271 19.5 0.0252 0.0252 22.5 0.0237 0.0237 26.0 0.0219 0.0219 30.0 0.0201 0.0201 34.5 0.0182 0.0182 40.0 0.0163 0.0163 46.0 0.0146 0.0146 52.5 0.0132 0.0132 60.0 0.0120 0.0120 69.0 0.0110 0.0110 79.0 0.0103 0.0103 90.5 0.0098 0.0098 105.5 0.0093 0.0093 123.5 0.0091 0.0091 143.0 0.0089 0.0089 163.5 0.0088 0.0088 185.0 0.0087 0.0087 208.0 0.0087 0.0087 232.5 0.0087 0.0087 258.5 0.0087 0.0087 286.0 0.0088 0.0088 331.0 0.0089 0.0089 396.0 0.0090 0.0090 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --0.8 -0.6 117 9.0 0.0344 0.0344 11.0 0.0317 0.0317 13.5 0.0293 0.0293 16.5 0.0270 0.0270 19.5 0.0252 0.0252 22.5 0.0236 0.0236 26.0 0.0219 0.0219 30.0 0.0200 0.0200 34.5 0.0182 0.0182 40.0 0.0163 0.0163 46.0 0.0146 0.0146 52.5 0.0132 0.0132 60.0 0.0120 0.0120 69.0 0.0110 0.0110 79.0 0.0103 0.0103 90.5 0.0098 0.0098 105.5 0.0093 0.0093 123.5 0.0091 0.0091 143.0 0.0089 0.0089 163.5 0.0088 0.0088 185.0 0.0087 0.0087 208.0 0.0087 0.0087 232.5 0.0087 0.0087 258.5 0.0087 0.0087 286.0 0.0088 0.0088 331.0 0.0089 0.0089 396.0 0.0090 0.0090 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --0.6 -0.4 117 9.0 0.0351 0.0351 11.0 0.0321 0.0321 13.5 0.0295 0.0295 16.5 0.0272 0.0272 19.5 0.0253 0.0253 22.5 0.0237 0.0237 26.0 0.0219 0.0219 30.0 0.0201 0.0201 34.5 0.0183 0.0183 40.0 0.0163 0.0163 46.0 0.0147 0.0147 52.5 0.0132 0.0132 60.0 0.0120 0.0120 69.0 0.0110 0.0110 79.0 0.0103 0.0103 90.5 0.0098 0.0098 105.5 0.0093 0.0093 123.5 0.0091 0.0091 143.0 0.0089 0.0089 163.5 0.0088 0.0088 185.0 0.0087 0.0087 208.0 0.0087 0.0087 232.5 0.0087 0.0087 258.5 0.0087 0.0087 286.0 0.0088 0.0088 331.0 0.0089 0.0089 396.0 0.0090 0.0090 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --0.4 -0.2 117 9.0 0.0360 0.0360 11.0 0.0326 0.0326 13.5 0.0298 0.0298 16.5 0.0273 0.0273 19.5 0.0254 0.0254 22.5 0.0238 0.0238 26.0 0.0220 0.0220 30.0 0.0202 0.0202 34.5 0.0183 0.0183 40.0 0.0164 0.0164 46.0 0.0147 0.0147 52.5 0.0132 0.0132 60.0 0.0120 0.0120 69.0 0.0111 0.0111 79.0 0.0103 0.0103 90.5 0.0098 0.0098 105.5 0.0093 0.0093 123.5 0.0091 0.0091 143.0 0.0089 0.0089 163.5 0.0088 0.0088 185.0 0.0087 0.0087 208.0 0.0087 0.0087 232.5 0.0087 0.0087 258.5 0.0087 0.0087 286.0 0.0088 0.0088 331.0 0.0089 0.0089 396.0 0.0090 0.0090 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --0.2 0.0 117 9.0 0.0370 0.0370 11.0 0.0331 0.0331 13.5 0.0301 0.0301 16.5 0.0275 0.0275 19.5 0.0255 0.0255 22.5 0.0239 0.0239 26.0 0.0221 0.0221 30.0 0.0202 0.0202 34.5 0.0184 0.0184 40.0 0.0164 0.0164 46.0 0.0147 0.0147 52.5 0.0133 0.0133 60.0 0.0121 0.0121 69.0 0.0111 0.0111 79.0 0.0104 0.0104 90.5 0.0098 0.0098 105.5 0.0093 0.0093 123.5 0.0091 0.0091 143.0 0.0089 0.0089 163.5 0.0088 0.0088 185.0 0.0087 0.0087 208.0 0.0087 0.0087 232.5 0.0087 0.0087 258.5 0.0087 0.0087 286.0 0.0088 0.0088 331.0 0.0089 0.0089 396.0 0.0090 0.0090 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.0 0.2 117 9.0 0.0368 0.0368 11.0 0.0330 0.0330 13.5 0.0301 0.0301 16.5 0.0275 0.0275 19.5 0.0255 0.0255 22.5 0.0239 0.0239 26.0 0.0221 0.0221 30.0 0.0202 0.0202 34.5 0.0184 0.0184 40.0 0.0164 0.0164 46.0 0.0147 0.0147 52.5 0.0133 0.0133 60.0 0.0120 0.0120 69.0 0.0111 0.0111 79.0 0.0104 0.0104 90.5 0.0098 0.0098 105.5 0.0093 0.0093 123.5 0.0091 0.0091 143.0 0.0089 0.0089 163.5 0.0088 0.0088 185.0 0.0087 0.0087 208.0 0.0087 0.0087 232.5 0.0087 0.0087 258.5 0.0087 0.0087 286.0 0.0088 0.0088 331.0 0.0089 0.0089 396.0 0.0090 0.0090 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.2 0.4 117 9.0 0.0355 0.0355 11.0 0.0324 0.0324 13.5 0.0297 0.0297 16.5 0.0273 0.0273 19.5 0.0254 0.0254 22.5 0.0238 0.0238 26.0 0.0220 0.0220 30.0 0.0201 0.0201 34.5 0.0183 0.0183 40.0 0.0163 0.0163 46.0 0.0147 0.0147 52.5 0.0132 0.0132 60.0 0.0120 0.0120 69.0 0.0110 0.0110 79.0 0.0103 0.0103 90.5 0.0098 0.0098 105.5 0.0093 0.0093 123.5 0.0091 0.0091 143.0 0.0089 0.0089 163.5 0.0088 0.0088 185.0 0.0087 0.0087 208.0 0.0087 0.0087 232.5 0.0087 0.0087 258.5 0.0087 0.0087 286.0 0.0088 0.0088 331.0 0.0089 0.0089 396.0 0.0090 0.0090 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.4 0.6 117 9.0 0.0348 0.0348 11.0 0.0320 0.0320 13.5 0.0295 0.0295 16.5 0.0271 0.0271 19.5 0.0252 0.0252 22.5 0.0237 0.0237 26.0 0.0219 0.0219 30.0 0.0201 0.0201 34.5 0.0182 0.0182 40.0 0.0163 0.0163 46.0 0.0147 0.0147 52.5 0.0132 0.0132 60.0 0.0120 0.0120 69.0 0.0110 0.0110 79.0 0.0103 0.0103 90.5 0.0098 0.0098 105.5 0.0093 0.0093 123.5 0.0091 0.0091 143.0 0.0089 0.0089 163.5 0.0088 0.0088 185.0 0.0087 0.0087 208.0 0.0087 0.0087 232.5 0.0087 0.0087 258.5 0.0087 0.0087 286.0 0.0088 0.0088 331.0 0.0089 0.0089 396.0 0.0090 0.0090 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.6 0.8 117 9.0 0.0347 0.0347 11.0 0.0319 0.0319 13.5 0.0294 0.0294 16.5 0.0271 0.0271 19.5 0.0252 0.0252 22.5 0.0237 0.0237 26.0 0.0219 0.0219 30.0 0.0201 0.0201 34.5 0.0182 0.0182 40.0 0.0163 0.0163 46.0 0.0146 0.0146 52.5 0.0132 0.0132 60.0 0.0120 0.0120 69.0 0.0110 0.0110 79.0 0.0103 0.0103 90.5 0.0098 0.0098 105.5 0.0093 0.0093 123.5 0.0091 0.0091 143.0 0.0089 0.0089 163.5 0.0088 0.0088 185.0 0.0087 0.0087 208.0 0.0087 0.0087 232.5 0.0087 0.0087 258.5 0.0087 0.0087 286.0 0.0088 0.0088 331.0 0.0089 0.0089 396.0 0.0090 0.0090 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.8 1.0 117 9.0 0.0350 0.0350 11.0 0.0321 0.0321 13.5 0.0295 0.0295 16.5 0.0272 0.0272 19.5 0.0253 0.0253 22.5 0.0237 0.0237 26.0 0.0220 0.0220 30.0 0.0201 0.0201 34.5 0.0183 0.0183 40.0 0.0163 0.0163 46.0 0.0147 0.0147 52.5 0.0132 0.0132 60.0 0.0120 0.0120 69.0 0.0110 0.0110 79.0 0.0103 0.0103 90.5 0.0098 0.0098 105.5 0.0093 0.0093 123.5 0.0091 0.0091 143.0 0.0089 0.0089 163.5 0.0088 0.0088 185.0 0.0087 0.0087 208.0 0.0087 0.0087 232.5 0.0087 0.0087 258.5 0.0087 0.0087 286.0 0.0088 0.0088 331.0 0.0089 0.0089 396.0 0.0090 0.0090 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -1.0 1.2 117 9.0 0.0355 0.0355 11.0 0.0323 0.0323 13.5 0.0297 0.0297 16.5 0.0273 0.0273 19.5 0.0254 0.0254 22.5 0.0238 0.0238 26.0 0.0220 0.0220 30.0 0.0201 0.0201 34.5 0.0183 0.0183 40.0 0.0163 0.0163 46.0 0.0147 0.0147 52.5 0.0132 0.0132 60.0 0.0120 0.0120 69.0 0.0111 0.0111 79.0 0.0103 0.0103 90.5 0.0098 0.0098 105.5 0.0093 0.0093 123.5 0.0091 0.0091 143.0 0.0089 0.0089 163.5 0.0088 0.0088 185.0 0.0087 0.0087 208.0 0.0087 0.0087 232.5 0.0087 0.0087 258.5 0.0087 0.0087 286.0 0.0088 0.0088 331.0 0.0089 0.0089 396.0 0.0090 0.0090 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -1.2 1.4 117 9.0 0.0353 0.0353 11.0 0.0324 0.0324 13.5 0.0298 0.0298 16.5 0.0273 0.0273 19.5 0.0254 0.0254 22.5 0.0238 0.0238 26.0 0.0220 0.0220 30.0 0.0202 0.0202 34.5 0.0183 0.0183 40.0 0.0164 0.0164 46.0 0.0147 0.0147 52.5 0.0133 0.0133 60.0 0.0120 0.0120 69.0 0.0111 0.0111 79.0 0.0104 0.0104 90.5 0.0098 0.0098 105.5 0.0094 0.0094 123.5 0.0091 0.0091 143.0 0.0089 0.0089 163.5 0.0088 0.0088 185.0 0.0087 0.0087 208.0 0.0087 0.0087 232.5 0.0087 0.0087 258.5 0.0087 0.0087 286.0 0.0088 0.0088 331.0 0.0089 0.0089 396.0 0.0090 0.0090 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0123 0.0123 1944.5 0.0125 0.0125 -1.4 1.6 117 9.0 0.0405 0.0405 11.0 0.0349 0.0349 13.5 0.0312 0.0312 16.5 0.0283 0.0283 19.5 0.0261 0.0261 22.5 0.0244 0.0244 26.0 0.0225 0.0225 30.0 0.0206 0.0206 34.5 0.0187 0.0187 40.0 0.0167 0.0167 46.0 0.0150 0.0150 52.5 0.0135 0.0135 60.0 0.0123 0.0123 69.0 0.0113 0.0113 79.0 0.0106 0.0106 90.5 0.0101 0.0101 105.5 0.0096 0.0096 123.5 0.0093 0.0093 143.0 0.0092 0.0092 163.5 0.0091 0.0091 185.0 0.0090 0.0090 208.0 0.0089 0.0089 232.5 0.0090 0.0090 258.5 0.0090 0.0090 286.0 0.0090 0.0090 331.0 0.0091 0.0091 396.0 0.0092 0.0092 468.5 0.0094 0.0094 549.5 0.0096 0.0096 639.0 0.0099 0.0099 738.0 0.0102 0.0102 847.5 0.0104 0.0104 968.5 0.0108 0.0108 1102.0 0.0111 0.0111 1249.5 0.0115 0.0115 1412.0 0.0118 0.0118 1590.5 0.0121 0.0121 1787.0 0.0124 0.0124 1944.5 0.0127 0.0127 -1.6 1.8 117 9.0 0.0523 0.0523 11.0 0.0407 0.0407 13.5 0.0344 0.0344 16.5 0.0302 0.0302 19.5 0.0275 0.0275 22.5 0.0254 0.0254 26.0 0.0233 0.0233 30.0 0.0212 0.0212 34.5 0.0192 0.0192 40.0 0.0171 0.0171 46.0 0.0154 0.0154 52.5 0.0139 0.0139 60.0 0.0126 0.0126 69.0 0.0116 0.0116 79.0 0.0109 0.0109 90.5 0.0103 0.0103 105.5 0.0099 0.0099 123.5 0.0096 0.0096 143.0 0.0094 0.0094 163.5 0.0093 0.0093 185.0 0.0092 0.0092 208.0 0.0091 0.0091 232.5 0.0091 0.0091 258.5 0.0092 0.0092 286.0 0.0092 0.0092 331.0 0.0093 0.0093 396.0 0.0094 0.0094 468.5 0.0095 0.0095 549.5 0.0098 0.0098 639.0 0.0101 0.0101 738.0 0.0103 0.0103 847.5 0.0106 0.0106 968.5 0.0109 0.0109 1102.0 0.0113 0.0113 1249.5 0.0116 0.0116 1412.0 0.0119 0.0119 1590.5 0.0122 0.0122 1787.0 0.0125 0.0125 1944.5 0.0128 0.0128 -1.8 2.0 117 9.0 0.0547 0.0547 11.0 0.0421 0.0421 13.5 0.0354 0.0354 16.5 0.0310 0.0310 19.5 0.0281 0.0281 22.5 0.0259 0.0259 26.0 0.0237 0.0237 30.0 0.0216 0.0216 34.5 0.0195 0.0195 40.0 0.0174 0.0174 46.0 0.0157 0.0157 52.5 0.0142 0.0142 60.0 0.0129 0.0129 69.0 0.0119 0.0119 79.0 0.0112 0.0112 90.5 0.0106 0.0106 105.5 0.0101 0.0101 123.5 0.0098 0.0098 143.0 0.0096 0.0096 163.5 0.0095 0.0095 185.0 0.0094 0.0094 208.0 0.0094 0.0094 232.5 0.0094 0.0094 258.5 0.0094 0.0094 286.0 0.0094 0.0094 331.0 0.0095 0.0095 396.0 0.0096 0.0096 468.5 0.0098 0.0098 549.5 0.0100 0.0100 639.0 0.0103 0.0103 738.0 0.0105 0.0105 847.5 0.0108 0.0108 968.5 0.0111 0.0111 1102.0 0.0115 0.0115 1249.5 0.0118 0.0118 1412.0 0.0121 0.0121 1590.5 0.0124 0.0124 1787.0 0.0127 0.0127 1944.5 0.0130 0.0130 -2.0 2.2 117 9.0 0.0413 0.0413 11.0 0.0367 0.0367 13.5 0.0329 0.0329 16.5 0.0297 0.0297 19.5 0.0274 0.0274 22.5 0.0255 0.0255 26.0 0.0235 0.0235 30.0 0.0214 0.0214 34.5 0.0195 0.0195 40.0 0.0175 0.0175 46.0 0.0158 0.0158 52.5 0.0143 0.0143 60.0 0.0131 0.0131 69.0 0.0121 0.0121 79.0 0.0114 0.0114 90.5 0.0108 0.0108 105.5 0.0103 0.0103 123.5 0.0101 0.0101 143.0 0.0099 0.0099 163.5 0.0098 0.0098 185.0 0.0097 0.0097 208.0 0.0096 0.0096 232.5 0.0096 0.0096 258.5 0.0097 0.0097 286.0 0.0097 0.0097 331.0 0.0098 0.0098 396.0 0.0099 0.0099 468.5 0.0100 0.0100 549.5 0.0103 0.0103 639.0 0.0105 0.0105 738.0 0.0108 0.0108 847.5 0.0110 0.0110 968.5 0.0113 0.0113 1102.0 0.0117 0.0117 1249.5 0.0120 0.0120 1412.0 0.0123 0.0123 1590.5 0.0126 0.0126 1787.0 0.0129 0.0129 1944.5 0.0132 0.0132 -2.2 2.4 117 9.0 0.0870 0.0870 11.0 0.0608 0.0608 13.5 0.0470 0.0470 16.5 0.0386 0.0386 19.5 0.0336 0.0336 22.5 0.0302 0.0302 26.0 0.0271 0.0271 30.0 0.0243 0.0243 34.5 0.0218 0.0218 40.0 0.0194 0.0194 46.0 0.0174 0.0174 52.5 0.0157 0.0157 60.0 0.0143 0.0143 69.0 0.0131 0.0131 79.0 0.0123 0.0123 90.5 0.0116 0.0116 105.5 0.0110 0.0110 123.5 0.0107 0.0107 143.0 0.0104 0.0104 163.5 0.0103 0.0103 185.0 0.0101 0.0101 208.0 0.0101 0.0101 232.5 0.0101 0.0101 258.5 0.0101 0.0101 286.0 0.0101 0.0101 331.0 0.0102 0.0102 396.0 0.0102 0.0102 468.5 0.0104 0.0104 549.5 0.0106 0.0106 639.0 0.0108 0.0108 738.0 0.0111 0.0111 847.5 0.0113 0.0113 968.5 0.0116 0.0116 1102.0 0.0120 0.0120 1249.5 0.0123 0.0123 1412.0 0.0125 0.0125 1590.5 0.0128 0.0128 1787.0 0.0132 0.0132 1944.5 0.0134 0.0134 -2.4 2.6 117 9.0 0.1658 0.1658 11.0 0.0881 0.0881 13.5 0.0603 0.0603 16.5 0.0465 0.0465 19.5 0.0392 0.0392 22.5 0.0345 0.0345 26.0 0.0306 0.0306 30.0 0.0272 0.0272 34.5 0.0243 0.0243 40.0 0.0216 0.0216 46.0 0.0194 0.0194 52.5 0.0176 0.0176 60.0 0.0161 0.0161 69.0 0.0149 0.0149 79.0 0.0140 0.0140 90.5 0.0133 0.0133 105.5 0.0127 0.0127 123.5 0.0123 0.0123 143.0 0.0121 0.0121 163.5 0.0119 0.0119 185.0 0.0118 0.0118 208.0 0.0117 0.0117 232.5 0.0116 0.0116 258.5 0.0116 0.0116 286.0 0.0117 0.0117 331.0 0.0117 0.0117 396.0 0.0118 0.0118 468.5 0.0119 0.0119 549.5 0.0121 0.0121 639.0 0.0123 0.0123 738.0 0.0125 0.0125 847.5 0.0127 0.0127 968.5 0.0130 0.0130 1102.0 0.0133 0.0133 1249.5 0.0135 0.0135 1412.0 0.0138 0.0138 1590.5 0.0141 0.0141 1787.0 0.0144 0.0144 1944.5 0.0146 0.0146 -2.6 2.8 117 9.0 0.2549 0.2549 11.0 0.1417 0.1417 13.5 0.0938 0.0938 16.5 0.0687 0.0687 19.5 0.0554 0.0554 22.5 0.0471 0.0471 26.0 0.0405 0.0405 30.0 0.0353 0.0353 34.5 0.0311 0.0311 40.0 0.0273 0.0273 46.0 0.0244 0.0244 52.5 0.0220 0.0220 60.0 0.0201 0.0201 69.0 0.0186 0.0186 79.0 0.0174 0.0174 90.5 0.0165 0.0165 105.5 0.0157 0.0157 123.5 0.0151 0.0151 143.0 0.0148 0.0148 163.5 0.0145 0.0145 185.0 0.0143 0.0143 208.0 0.0142 0.0142 232.5 0.0142 0.0142 258.5 0.0141 0.0141 286.0 0.0141 0.0141 331.0 0.0141 0.0141 396.0 0.0141 0.0141 468.5 0.0142 0.0142 549.5 0.0144 0.0144 639.0 0.0145 0.0145 738.0 0.0147 0.0147 847.5 0.0149 0.0149 968.5 0.0151 0.0151 1102.0 0.0154 0.0154 1249.5 0.0156 0.0156 1412.0 0.0158 0.0158 1590.5 0.0161 0.0161 1787.0 0.0163 0.0163 1944.5 0.0165 0.0165 -2.8 3.0 117 9.0 0.2862 0.2862 11.0 0.1718 0.1718 13.5 0.1163 0.1163 16.5 0.0853 0.0853 19.5 0.0684 0.0684 22.5 0.0577 0.0577 26.0 0.0493 0.0493 30.0 0.0426 0.0426 34.5 0.0373 0.0373 40.0 0.0327 0.0327 46.0 0.0292 0.0292 52.5 0.0264 0.0264 60.0 0.0241 0.0241 69.0 0.0222 0.0222 79.0 0.0208 0.0208 90.5 0.0197 0.0197 105.5 0.0188 0.0188 123.5 0.0181 0.0181 143.0 0.0177 0.0177 163.5 0.0173 0.0173 185.0 0.0171 0.0171 208.0 0.0169 0.0169 232.5 0.0168 0.0168 258.5 0.0168 0.0168 286.0 0.0167 0.0167 331.0 0.0167 0.0167 396.0 0.0167 0.0167 468.5 0.0168 0.0168 549.5 0.0169 0.0169 639.0 0.0170 0.0170 738.0 0.0172 0.0172 847.5 0.0173 0.0173 968.5 0.0175 0.0175 1102.0 0.0177 0.0177 1249.5 0.0179 0.0179 1412.0 0.0181 0.0181 1590.5 0.0183 0.0183 1787.0 0.0186 0.0186 1944.5 0.0187 0.0187 -3.0 3.5 117 9.0 0.2085 0.2085 11.0 0.1463 0.1463 13.5 0.1082 0.1082 16.5 0.0838 0.0838 19.5 0.0695 0.0695 22.5 0.0602 0.0602 26.0 0.0527 0.0527 30.0 0.0466 0.0466 34.5 0.0418 0.0418 40.0 0.0376 0.0376 46.0 0.0345 0.0345 52.5 0.0320 0.0320 60.0 0.0301 0.0301 69.0 0.0285 0.0285 79.0 0.0273 0.0273 90.5 0.0264 0.0264 105.5 0.0257 0.0257 123.5 0.0251 0.0251 143.0 0.0247 0.0247 163.5 0.0245 0.0245 185.0 0.0243 0.0243 208.0 0.0242 0.0242 232.5 0.0241 0.0241 258.5 0.0241 0.0241 286.0 0.0240 0.0240 331.0 0.0240 0.0240 396.0 0.0240 0.0240 468.5 0.0240 0.0240 549.5 0.0241 0.0241 639.0 0.0242 0.0242 738.0 0.0243 0.0243 847.5 0.0244 0.0244 968.5 0.0245 0.0245 1102.0 0.0247 0.0247 1249.5 0.0248 0.0248 1412.0 0.0250 0.0250 1590.5 0.0251 0.0251 1787.0 0.0253 0.0253 1944.5 0.0254 0.0254 -3.5 4.0 117 9.0 0.0978 0.0978 11.0 0.0766 0.0766 13.5 0.0631 0.0631 16.5 0.0543 0.0543 19.5 0.0491 0.0491 22.5 0.0458 0.0458 26.0 0.0429 0.0429 30.0 0.0406 0.0406 34.5 0.0387 0.0387 40.0 0.0370 0.0370 46.0 0.0357 0.0357 52.5 0.0347 0.0347 60.0 0.0340 0.0340 69.0 0.0334 0.0334 79.0 0.0330 0.0330 90.5 0.0327 0.0327 105.5 0.0325 0.0325 123.5 0.0323 0.0323 143.0 0.0322 0.0322 163.5 0.0321 0.0321 185.0 0.0321 0.0321 208.0 0.0320 0.0320 232.5 0.0320 0.0320 258.5 0.0320 0.0320 286.0 0.0320 0.0320 331.0 0.0321 0.0321 396.0 0.0321 0.0321 468.5 0.0321 0.0321 549.5 0.0322 0.0322 639.0 0.0323 0.0323 738.0 0.0323 0.0323 847.5 0.0324 0.0324 968.5 0.0325 0.0325 1102.0 0.0327 0.0327 1249.5 0.0328 0.0328 1412.0 0.0329 0.0329 1590.5 0.0330 0.0330 1787.0 0.0331 0.0331 1944.5 0.0332 0.0332 -4.0 4.5 117 9.0 0.0516 0.0516 11.0 0.0473 0.0473 13.5 0.0444 0.0444 16.5 0.0421 0.0421 19.5 0.0405 0.0405 22.5 0.0394 0.0394 26.0 0.0382 0.0382 30.0 0.0370 0.0370 34.5 0.0360 0.0360 40.0 0.0350 0.0350 46.0 0.0342 0.0342 52.5 0.0336 0.0336 60.0 0.0331 0.0331 69.0 0.0327 0.0327 79.0 0.0325 0.0325 90.5 0.0323 0.0323 105.5 0.0322 0.0322 123.5 0.0321 0.0321 143.0 0.0320 0.0320 163.5 0.0320 0.0320 185.0 0.0320 0.0320 208.0 0.0320 0.0320 232.5 0.0320 0.0320 258.5 0.0320 0.0320 286.0 0.0320 0.0320 331.0 0.0320 0.0320 396.0 0.0320 0.0320 468.5 0.0321 0.0321 549.5 0.0322 0.0322 639.0 0.0323 0.0323 738.0 0.0323 0.0323 847.5 0.0324 0.0324 968.5 0.0325 0.0325 1102.0 0.0326 0.0326 1249.5 0.0328 0.0328 1412.0 0.0329 0.0329 1590.5 0.0330 0.0330 1787.0 0.0331 0.0331 1944.5 0.0332 0.0332 -4.5 5.2 117 9.0 0.0785 0.0785 11.0 0.0666 0.0666 13.5 0.0579 0.0579 16.5 0.0516 0.0516 19.5 0.0475 0.0475 22.5 0.0448 0.0448 26.0 0.0423 0.0423 30.0 0.0402 0.0402 34.5 0.0385 0.0385 40.0 0.0369 0.0369 46.0 0.0356 0.0356 52.5 0.0347 0.0347 60.0 0.0340 0.0340 69.0 0.0334 0.0334 79.0 0.0330 0.0330 90.5 0.0327 0.0327 105.5 0.0325 0.0325 123.5 0.0323 0.0323 143.0 0.0322 0.0322 163.5 0.0321 0.0321 185.0 0.0321 0.0321 208.0 0.0320 0.0320 232.5 0.0320 0.0320 258.5 0.0320 0.0320 286.0 0.0320 0.0320 331.0 0.0321 0.0321 396.0 0.0321 0.0321 468.5 0.0321 0.0321 549.5 0.0322 0.0322 639.0 0.0323 0.0323 738.0 0.0323 0.0323 847.5 0.0324 0.0324 968.5 0.0325 0.0325 1102.0 0.0327 0.0327 1249.5 0.0328 0.0328 1412.0 0.0329 0.0329 1590.5 0.0330 0.0330 1787.0 0.0331 0.0331 1944.5 0.0332 0.0332 -[Total] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0799 0.0799 11.0 0.0677 0.0677 13.5 0.0587 0.0587 16.5 0.0522 0.0522 19.5 0.0480 0.0480 22.5 0.0451 0.0451 26.0 0.0426 0.0426 30.0 0.0405 0.0405 34.5 0.0386 0.0386 40.0 0.0370 0.0370 46.0 0.0358 0.0358 52.5 0.0348 0.0348 60.0 0.0340 0.0340 69.0 0.0335 0.0335 79.0 0.0330 0.0330 90.5 0.0327 0.0327 105.5 0.0325 0.0325 123.5 0.0323 0.0323 143.0 0.0322 0.0322 163.5 0.0321 0.0321 185.0 0.0321 0.0321 208.0 0.0320 0.0320 232.5 0.0320 0.0320 258.5 0.0320 0.0320 286.0 0.0320 0.0320 331.0 0.0321 0.0321 396.0 0.0321 0.0321 468.5 0.0321 0.0321 549.5 0.0322 0.0322 639.0 0.0323 0.0323 738.0 0.0323 0.0323 847.5 0.0324 0.0324 968.5 0.0325 0.0325 1102.0 0.0327 0.0327 1249.5 0.0328 0.0328 1412.0 0.0329 0.0329 1590.5 0.0330 0.0330 1787.0 0.0331 0.0331 1944.5 0.0332 0.0332 --4.5 -4.0 117 9.0 0.0597 0.0597 11.0 0.0530 0.0530 13.5 0.0483 0.0483 16.5 0.0448 0.0448 19.5 0.0426 0.0426 22.5 0.0409 0.0409 26.0 0.0394 0.0394 30.0 0.0379 0.0379 34.5 0.0367 0.0367 40.0 0.0355 0.0355 46.0 0.0346 0.0346 52.5 0.0339 0.0339 60.0 0.0333 0.0333 69.0 0.0329 0.0329 79.0 0.0326 0.0326 90.5 0.0324 0.0324 105.5 0.0323 0.0323 123.5 0.0321 0.0321 143.0 0.0321 0.0321 163.5 0.0320 0.0320 185.0 0.0320 0.0320 208.0 0.0320 0.0320 232.5 0.0320 0.0320 258.5 0.0320 0.0320 286.0 0.0320 0.0320 331.0 0.0320 0.0320 396.0 0.0321 0.0321 468.5 0.0321 0.0321 549.5 0.0322 0.0322 639.0 0.0323 0.0323 738.0 0.0323 0.0323 847.5 0.0324 0.0324 968.5 0.0325 0.0325 1102.0 0.0327 0.0327 1249.5 0.0328 0.0328 1412.0 0.0329 0.0329 1590.5 0.0330 0.0330 1787.0 0.0331 0.0331 1944.5 0.0332 0.0332 --4.0 -3.5 117 9.0 0.1026 0.1026 11.0 0.0807 0.0807 13.5 0.0663 0.0663 16.5 0.0568 0.0568 19.5 0.0511 0.0511 22.5 0.0474 0.0474 26.0 0.0442 0.0442 30.0 0.0416 0.0416 34.5 0.0395 0.0395 40.0 0.0376 0.0376 46.0 0.0362 0.0362 52.5 0.0351 0.0351 60.0 0.0343 0.0343 69.0 0.0336 0.0336 79.0 0.0332 0.0332 90.5 0.0328 0.0328 105.5 0.0326 0.0326 123.5 0.0324 0.0324 143.0 0.0322 0.0322 163.5 0.0322 0.0322 185.0 0.0321 0.0321 208.0 0.0321 0.0321 232.5 0.0321 0.0321 258.5 0.0320 0.0320 286.0 0.0320 0.0320 331.0 0.0321 0.0321 396.0 0.0321 0.0321 468.5 0.0321 0.0321 549.5 0.0322 0.0322 639.0 0.0323 0.0323 738.0 0.0323 0.0323 847.5 0.0324 0.0324 968.5 0.0325 0.0325 1102.0 0.0327 0.0327 1249.5 0.0328 0.0328 1412.0 0.0329 0.0329 1590.5 0.0330 0.0330 1787.0 0.0331 0.0331 1944.5 0.0332 0.0332 --3.5 -3.0 117 9.0 0.3177 0.3177 11.0 0.2138 0.2138 13.5 0.1535 0.1535 16.5 0.1161 0.1161 19.5 0.0943 0.0943 22.5 0.0801 0.0801 26.0 0.0686 0.0686 30.0 0.0595 0.0595 34.5 0.0523 0.0523 40.0 0.0460 0.0460 46.0 0.0412 0.0412 52.5 0.0375 0.0375 60.0 0.0345 0.0345 69.0 0.0320 0.0320 79.0 0.0301 0.0301 90.5 0.0286 0.0286 105.5 0.0273 0.0273 123.5 0.0263 0.0263 143.0 0.0257 0.0257 163.5 0.0252 0.0252 185.0 0.0249 0.0249 208.0 0.0246 0.0246 232.5 0.0245 0.0245 258.5 0.0243 0.0243 286.0 0.0243 0.0243 331.0 0.0242 0.0242 396.0 0.0241 0.0241 468.5 0.0241 0.0241 549.5 0.0242 0.0242 639.0 0.0242 0.0242 738.0 0.0243 0.0243 847.5 0.0244 0.0244 968.5 0.0246 0.0246 1102.0 0.0247 0.0247 1249.5 0.0248 0.0248 1412.0 0.0250 0.0250 1590.5 0.0251 0.0251 1787.0 0.0253 0.0253 1944.5 0.0254 0.0254 --3.0 -2.8 117 9.0 1.1085 1.1085 11.0 0.4907 0.4907 13.5 0.2949 0.2949 16.5 0.2031 0.2031 19.5 0.1575 0.1575 22.5 0.1304 0.1304 26.0 0.1103 0.1103 30.0 0.0953 0.0953 34.5 0.0842 0.0842 40.0 0.0751 0.0751 46.0 0.0686 0.0686 52.5 0.0637 0.0637 60.0 0.0600 0.0600 69.0 0.0570 0.0570 79.0 0.0548 0.0548 90.5 0.0531 0.0531 105.5 0.0517 0.0517 123.5 0.0507 0.0507 143.0 0.0500 0.0500 163.5 0.0495 0.0495 185.0 0.0491 0.0491 208.0 0.0489 0.0489 232.5 0.0487 0.0487 258.5 0.0486 0.0486 286.0 0.0485 0.0485 331.0 0.0484 0.0484 396.0 0.0483 0.0483 468.5 0.0483 0.0483 549.5 0.0483 0.0483 639.0 0.0483 0.0483 738.0 0.0483 0.0483 847.5 0.0484 0.0484 968.5 0.0484 0.0484 1102.0 0.0485 0.0485 1249.5 0.0486 0.0486 1412.0 0.0486 0.0486 1590.5 0.0487 0.0487 1787.0 0.0488 0.0488 1944.5 0.0489 0.0489 --2.8 -2.6 117 9.0 1.3285 1.3285 11.0 0.4853 0.4853 13.5 0.2771 0.2771 16.5 0.1873 0.1873 19.5 0.1445 0.1445 22.5 0.1198 0.1198 26.0 0.1017 0.1017 30.0 0.0884 0.0884 34.5 0.0786 0.0786 40.0 0.0708 0.0708 46.0 0.0652 0.0652 52.5 0.0611 0.0611 60.0 0.0579 0.0579 69.0 0.0555 0.0555 79.0 0.0536 0.0536 90.5 0.0523 0.0523 105.5 0.0511 0.0511 123.5 0.0503 0.0503 143.0 0.0497 0.0497 163.5 0.0493 0.0493 185.0 0.0491 0.0491 208.0 0.0489 0.0489 232.5 0.0487 0.0487 258.5 0.0486 0.0486 286.0 0.0486 0.0486 331.0 0.0485 0.0485 396.0 0.0484 0.0484 468.5 0.0484 0.0484 549.5 0.0484 0.0484 639.0 0.0484 0.0484 738.0 0.0485 0.0485 847.5 0.0485 0.0485 968.5 0.0486 0.0486 1102.0 0.0487 0.0487 1249.5 0.0487 0.0487 1412.0 0.0488 0.0488 1590.5 0.0489 0.0489 1787.0 0.0490 0.0490 1944.5 0.0490 0.0490 --2.6 -2.4 117 9.0 0.4202 0.4202 11.0 0.2194 0.2194 13.5 0.1444 0.1444 16.5 0.1078 0.1078 19.5 0.0896 0.0896 22.5 0.0789 0.0789 26.0 0.0710 0.0710 30.0 0.0651 0.0651 34.5 0.0608 0.0608 40.0 0.0573 0.0573 46.0 0.0548 0.0548 52.5 0.0530 0.0530 60.0 0.0516 0.0516 69.0 0.0505 0.0505 79.0 0.0498 0.0498 90.5 0.0492 0.0492 105.5 0.0487 0.0487 123.5 0.0484 0.0484 143.0 0.0481 0.0481 163.5 0.0480 0.0480 185.0 0.0479 0.0479 208.0 0.0478 0.0478 232.5 0.0478 0.0478 258.5 0.0477 0.0477 286.0 0.0477 0.0477 331.0 0.0477 0.0477 396.0 0.0477 0.0477 468.5 0.0477 0.0477 549.5 0.0477 0.0477 639.0 0.0478 0.0478 738.0 0.0478 0.0478 847.5 0.0479 0.0479 968.5 0.0479 0.0479 1102.0 0.0480 0.0480 1249.5 0.0481 0.0481 1412.0 0.0482 0.0482 1590.5 0.0482 0.0482 1787.0 0.0483 0.0483 1944.5 0.0484 0.0484 --2.4 -2.2 117 9.0 0.0831 0.0831 11.0 0.0645 0.0645 13.5 0.0528 0.0528 16.5 0.0448 0.0448 19.5 0.0397 0.0397 22.5 0.0362 0.0362 26.0 0.0331 0.0331 30.0 0.0303 0.0303 34.5 0.0278 0.0278 40.0 0.0256 0.0256 46.0 0.0238 0.0238 52.5 0.0223 0.0223 60.0 0.0211 0.0211 69.0 0.0202 0.0202 79.0 0.0195 0.0195 90.5 0.0190 0.0190 105.5 0.0186 0.0186 123.5 0.0183 0.0183 143.0 0.0181 0.0181 163.5 0.0180 0.0180 185.0 0.0179 0.0179 208.0 0.0178 0.0178 232.5 0.0178 0.0178 258.5 0.0178 0.0178 286.0 0.0178 0.0178 331.0 0.0178 0.0178 396.0 0.0179 0.0179 468.5 0.0179 0.0179 549.5 0.0181 0.0181 639.0 0.0182 0.0182 738.0 0.0183 0.0183 847.5 0.0185 0.0185 968.5 0.0187 0.0187 1102.0 0.0189 0.0189 1249.5 0.0191 0.0191 1412.0 0.0193 0.0193 1590.5 0.0195 0.0195 1787.0 0.0197 0.0197 1944.5 0.0198 0.0198 --2.2 -2.0 117 9.0 0.0650 0.0650 11.0 0.0543 0.0543 13.5 0.0466 0.0466 16.5 0.0408 0.0408 19.5 0.0369 0.0369 22.5 0.0341 0.0341 26.0 0.0314 0.0314 30.0 0.0290 0.0290 34.5 0.0268 0.0268 40.0 0.0247 0.0247 46.0 0.0231 0.0231 52.5 0.0217 0.0217 60.0 0.0206 0.0206 69.0 0.0198 0.0198 79.0 0.0191 0.0191 90.5 0.0187 0.0187 105.5 0.0183 0.0183 123.5 0.0180 0.0180 143.0 0.0179 0.0179 163.5 0.0177 0.0177 185.0 0.0177 0.0177 208.0 0.0176 0.0176 232.5 0.0176 0.0176 258.5 0.0176 0.0176 286.0 0.0176 0.0176 331.0 0.0177 0.0177 396.0 0.0177 0.0177 468.5 0.0177 0.0177 549.5 0.0179 0.0179 639.0 0.0180 0.0180 738.0 0.0182 0.0182 847.5 0.0183 0.0183 968.5 0.0185 0.0185 1102.0 0.0187 0.0187 1249.5 0.0189 0.0189 1412.0 0.0191 0.0191 1590.5 0.0193 0.0193 1787.0 0.0195 0.0195 1944.5 0.0197 0.0197 --2.0 -1.8 117 9.0 0.0920 0.0920 11.0 0.0687 0.0687 13.5 0.0545 0.0545 16.5 0.0451 0.0451 19.5 0.0393 0.0393 22.5 0.0353 0.0353 26.0 0.0317 0.0317 30.0 0.0286 0.0286 34.5 0.0258 0.0258 40.0 0.0232 0.0232 46.0 0.0211 0.0211 52.5 0.0194 0.0194 60.0 0.0180 0.0180 69.0 0.0169 0.0169 79.0 0.0160 0.0160 90.5 0.0154 0.0154 105.5 0.0148 0.0148 123.5 0.0144 0.0144 143.0 0.0142 0.0142 163.5 0.0140 0.0140 185.0 0.0139 0.0139 208.0 0.0138 0.0138 232.5 0.0138 0.0138 258.5 0.0138 0.0138 286.0 0.0138 0.0138 331.0 0.0139 0.0139 396.0 0.0139 0.0139 468.5 0.0140 0.0140 549.5 0.0141 0.0141 639.0 0.0143 0.0143 738.0 0.0145 0.0145 847.5 0.0147 0.0147 968.5 0.0149 0.0149 1102.0 0.0152 0.0152 1249.5 0.0154 0.0154 1412.0 0.0156 0.0156 1590.5 0.0159 0.0159 1787.0 0.0161 0.0161 1944.5 0.0163 0.0163 --1.8 -1.6 117 9.0 0.0866 0.0866 11.0 0.0654 0.0654 13.5 0.0524 0.0524 16.5 0.0437 0.0437 19.5 0.0382 0.0382 22.5 0.0344 0.0344 26.0 0.0310 0.0310 30.0 0.0280 0.0280 34.5 0.0254 0.0254 40.0 0.0228 0.0228 46.0 0.0208 0.0208 52.5 0.0191 0.0191 60.0 0.0177 0.0177 69.0 0.0166 0.0166 79.0 0.0158 0.0158 90.5 0.0152 0.0152 105.5 0.0146 0.0146 123.5 0.0143 0.0143 143.0 0.0140 0.0140 163.5 0.0139 0.0139 185.0 0.0137 0.0137 208.0 0.0137 0.0137 232.5 0.0136 0.0136 258.5 0.0136 0.0136 286.0 0.0136 0.0136 331.0 0.0137 0.0137 396.0 0.0137 0.0137 468.5 0.0138 0.0138 549.5 0.0140 0.0140 639.0 0.0142 0.0142 738.0 0.0143 0.0143 847.5 0.0145 0.0145 968.5 0.0148 0.0148 1102.0 0.0150 0.0150 1249.5 0.0153 0.0153 1412.0 0.0155 0.0155 1590.5 0.0158 0.0158 1787.0 0.0160 0.0160 1944.5 0.0162 0.0162 --1.6 -1.4 117 9.0 0.0795 0.0795 11.0 0.0613 0.0613 13.5 0.0498 0.0498 16.5 0.0419 0.0419 19.5 0.0369 0.0369 22.5 0.0334 0.0334 26.0 0.0302 0.0302 30.0 0.0274 0.0274 34.5 0.0248 0.0248 40.0 0.0224 0.0224 46.0 0.0204 0.0204 52.5 0.0188 0.0188 60.0 0.0174 0.0174 69.0 0.0164 0.0164 79.0 0.0156 0.0156 90.5 0.0150 0.0150 105.5 0.0144 0.0144 123.5 0.0141 0.0141 143.0 0.0139 0.0139 163.5 0.0137 0.0137 185.0 0.0136 0.0136 208.0 0.0135 0.0135 232.5 0.0135 0.0135 258.5 0.0135 0.0135 286.0 0.0135 0.0135 331.0 0.0136 0.0136 396.0 0.0136 0.0136 468.5 0.0137 0.0137 549.5 0.0139 0.0139 639.0 0.0141 0.0141 738.0 0.0142 0.0142 847.5 0.0144 0.0144 968.5 0.0147 0.0147 1102.0 0.0149 0.0149 1249.5 0.0152 0.0152 1412.0 0.0154 0.0154 1590.5 0.0157 0.0157 1787.0 0.0159 0.0159 1944.5 0.0161 0.0161 --1.4 -1.2 117 9.0 0.0759 0.0759 11.0 0.0587 0.0587 13.5 0.0476 0.0476 16.5 0.0400 0.0400 19.5 0.0350 0.0350 22.5 0.0315 0.0315 26.0 0.0282 0.0282 30.0 0.0252 0.0252 34.5 0.0225 0.0225 40.0 0.0199 0.0199 46.0 0.0177 0.0177 52.5 0.0158 0.0158 60.0 0.0142 0.0142 69.0 0.0129 0.0129 79.0 0.0119 0.0119 90.5 0.0111 0.0111 105.5 0.0104 0.0104 123.5 0.0099 0.0099 143.0 0.0096 0.0096 163.5 0.0094 0.0094 185.0 0.0093 0.0093 208.0 0.0092 0.0092 232.5 0.0091 0.0091 258.5 0.0091 0.0091 286.0 0.0092 0.0092 331.0 0.0092 0.0092 396.0 0.0093 0.0093 468.5 0.0094 0.0094 549.5 0.0097 0.0097 639.0 0.0099 0.0099 738.0 0.0102 0.0102 847.5 0.0104 0.0104 968.5 0.0108 0.0108 1102.0 0.0111 0.0111 1249.5 0.0115 0.0115 1412.0 0.0118 0.0118 1590.5 0.0121 0.0121 1787.0 0.0124 0.0124 1944.5 0.0127 0.0127 --1.2 -1.0 117 9.0 0.0737 0.0737 11.0 0.0573 0.0573 13.5 0.0468 0.0468 16.5 0.0394 0.0394 19.5 0.0346 0.0346 22.5 0.0312 0.0312 26.0 0.0279 0.0279 30.0 0.0250 0.0250 34.5 0.0223 0.0223 40.0 0.0197 0.0197 46.0 0.0175 0.0175 52.5 0.0156 0.0156 60.0 0.0140 0.0140 69.0 0.0127 0.0127 79.0 0.0117 0.0117 90.5 0.0109 0.0109 105.5 0.0102 0.0102 123.5 0.0097 0.0097 143.0 0.0094 0.0094 163.5 0.0092 0.0092 185.0 0.0090 0.0090 208.0 0.0089 0.0089 232.5 0.0089 0.0089 258.5 0.0089 0.0089 286.0 0.0089 0.0089 331.0 0.0090 0.0090 396.0 0.0090 0.0090 468.5 0.0092 0.0092 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --1.0 -0.8 117 9.0 0.0703 0.0703 11.0 0.0554 0.0554 13.5 0.0456 0.0456 16.5 0.0386 0.0386 19.5 0.0340 0.0340 22.5 0.0307 0.0307 26.0 0.0276 0.0276 30.0 0.0247 0.0247 34.5 0.0221 0.0221 40.0 0.0195 0.0195 46.0 0.0173 0.0173 52.5 0.0155 0.0155 60.0 0.0139 0.0139 69.0 0.0126 0.0126 79.0 0.0116 0.0116 90.5 0.0108 0.0108 105.5 0.0101 0.0101 123.5 0.0097 0.0097 143.0 0.0094 0.0094 163.5 0.0092 0.0092 185.0 0.0090 0.0090 208.0 0.0089 0.0089 232.5 0.0089 0.0089 258.5 0.0089 0.0089 286.0 0.0089 0.0089 331.0 0.0090 0.0090 396.0 0.0090 0.0090 468.5 0.0092 0.0092 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --0.8 -0.6 117 9.0 0.0682 0.0682 11.0 0.0542 0.0542 13.5 0.0450 0.0450 16.5 0.0382 0.0382 19.5 0.0338 0.0338 22.5 0.0305 0.0305 26.0 0.0275 0.0275 30.0 0.0246 0.0246 34.5 0.0220 0.0220 40.0 0.0194 0.0194 46.0 0.0173 0.0173 52.5 0.0154 0.0154 60.0 0.0139 0.0139 69.0 0.0126 0.0126 79.0 0.0116 0.0116 90.5 0.0108 0.0108 105.5 0.0101 0.0101 123.5 0.0097 0.0097 143.0 0.0094 0.0094 163.5 0.0091 0.0091 185.0 0.0090 0.0090 208.0 0.0089 0.0089 232.5 0.0089 0.0089 258.5 0.0089 0.0089 286.0 0.0089 0.0089 331.0 0.0090 0.0090 396.0 0.0090 0.0090 468.5 0.0092 0.0092 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --0.6 -0.4 117 9.0 0.0683 0.0683 11.0 0.0544 0.0544 13.5 0.0452 0.0452 16.5 0.0385 0.0385 19.5 0.0340 0.0340 22.5 0.0307 0.0307 26.0 0.0276 0.0276 30.0 0.0248 0.0248 34.5 0.0221 0.0221 40.0 0.0195 0.0195 46.0 0.0174 0.0174 52.5 0.0155 0.0155 60.0 0.0140 0.0140 69.0 0.0126 0.0126 79.0 0.0116 0.0116 90.5 0.0109 0.0109 105.5 0.0102 0.0102 123.5 0.0097 0.0097 143.0 0.0094 0.0094 163.5 0.0092 0.0092 185.0 0.0090 0.0090 208.0 0.0089 0.0089 232.5 0.0089 0.0089 258.5 0.0089 0.0089 286.0 0.0089 0.0089 331.0 0.0090 0.0090 396.0 0.0090 0.0090 468.5 0.0092 0.0092 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --0.4 -0.2 117 9.0 0.0686 0.0686 11.0 0.0548 0.0548 13.5 0.0455 0.0455 16.5 0.0388 0.0388 19.5 0.0343 0.0343 22.5 0.0310 0.0310 26.0 0.0278 0.0278 30.0 0.0249 0.0249 34.5 0.0223 0.0223 40.0 0.0197 0.0197 46.0 0.0175 0.0175 52.5 0.0156 0.0156 60.0 0.0140 0.0140 69.0 0.0127 0.0127 79.0 0.0117 0.0117 90.5 0.0109 0.0109 105.5 0.0102 0.0102 123.5 0.0097 0.0097 143.0 0.0094 0.0094 163.5 0.0092 0.0092 185.0 0.0090 0.0090 208.0 0.0089 0.0089 232.5 0.0089 0.0089 258.5 0.0089 0.0089 286.0 0.0089 0.0089 331.0 0.0090 0.0090 396.0 0.0090 0.0090 468.5 0.0092 0.0092 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --0.2 0.0 117 9.0 0.0678 0.0678 11.0 0.0545 0.0545 13.5 0.0455 0.0455 16.5 0.0388 0.0388 19.5 0.0344 0.0344 22.5 0.0310 0.0310 26.0 0.0279 0.0279 30.0 0.0250 0.0250 34.5 0.0224 0.0224 40.0 0.0197 0.0197 46.0 0.0175 0.0175 52.5 0.0157 0.0157 60.0 0.0141 0.0141 69.0 0.0128 0.0128 79.0 0.0117 0.0117 90.5 0.0109 0.0109 105.5 0.0102 0.0102 123.5 0.0097 0.0097 143.0 0.0094 0.0094 163.5 0.0092 0.0092 185.0 0.0090 0.0090 208.0 0.0089 0.0089 232.5 0.0089 0.0089 258.5 0.0089 0.0089 286.0 0.0089 0.0089 331.0 0.0090 0.0090 396.0 0.0090 0.0090 468.5 0.0092 0.0092 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.0 0.2 117 9.0 0.0697 0.0697 11.0 0.0555 0.0555 13.5 0.0461 0.0461 16.5 0.0392 0.0392 19.5 0.0346 0.0346 22.5 0.0312 0.0312 26.0 0.0281 0.0281 30.0 0.0251 0.0251 34.5 0.0225 0.0225 40.0 0.0198 0.0198 46.0 0.0176 0.0176 52.5 0.0157 0.0157 60.0 0.0141 0.0141 69.0 0.0128 0.0128 79.0 0.0118 0.0118 90.5 0.0110 0.0110 105.5 0.0102 0.0102 123.5 0.0098 0.0098 143.0 0.0094 0.0094 163.5 0.0092 0.0092 185.0 0.0090 0.0090 208.0 0.0089 0.0089 232.5 0.0089 0.0089 258.5 0.0089 0.0089 286.0 0.0089 0.0089 331.0 0.0090 0.0090 396.0 0.0090 0.0090 468.5 0.0092 0.0092 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.2 0.4 117 9.0 0.0716 0.0716 11.0 0.0563 0.0563 13.5 0.0465 0.0465 16.5 0.0394 0.0394 19.5 0.0348 0.0348 22.5 0.0313 0.0313 26.0 0.0281 0.0281 30.0 0.0252 0.0252 34.5 0.0225 0.0225 40.0 0.0198 0.0198 46.0 0.0176 0.0176 52.5 0.0157 0.0157 60.0 0.0141 0.0141 69.0 0.0128 0.0128 79.0 0.0118 0.0118 90.5 0.0110 0.0110 105.5 0.0102 0.0102 123.5 0.0098 0.0098 143.0 0.0094 0.0094 163.5 0.0092 0.0092 185.0 0.0090 0.0090 208.0 0.0089 0.0089 232.5 0.0089 0.0089 258.5 0.0089 0.0089 286.0 0.0089 0.0089 331.0 0.0090 0.0090 396.0 0.0090 0.0090 468.5 0.0092 0.0092 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.4 0.6 117 9.0 0.0724 0.0724 11.0 0.0567 0.0567 13.5 0.0466 0.0466 16.5 0.0394 0.0394 19.5 0.0347 0.0347 22.5 0.0313 0.0313 26.0 0.0281 0.0281 30.0 0.0251 0.0251 34.5 0.0224 0.0224 40.0 0.0198 0.0198 46.0 0.0176 0.0176 52.5 0.0157 0.0157 60.0 0.0141 0.0141 69.0 0.0128 0.0128 79.0 0.0117 0.0117 90.5 0.0109 0.0109 105.5 0.0102 0.0102 123.5 0.0097 0.0097 143.0 0.0094 0.0094 163.5 0.0092 0.0092 185.0 0.0090 0.0090 208.0 0.0089 0.0089 232.5 0.0089 0.0089 258.5 0.0089 0.0089 286.0 0.0089 0.0089 331.0 0.0090 0.0090 396.0 0.0090 0.0090 468.5 0.0092 0.0092 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.6 0.8 117 9.0 0.0749 0.0749 11.0 0.0580 0.0580 13.5 0.0473 0.0473 16.5 0.0398 0.0398 19.5 0.0350 0.0350 22.5 0.0315 0.0315 26.0 0.0282 0.0282 30.0 0.0252 0.0252 34.5 0.0225 0.0225 40.0 0.0198 0.0198 46.0 0.0176 0.0176 52.5 0.0157 0.0157 60.0 0.0141 0.0141 69.0 0.0128 0.0128 79.0 0.0118 0.0118 90.5 0.0110 0.0110 105.5 0.0102 0.0102 123.5 0.0097 0.0097 143.0 0.0094 0.0094 163.5 0.0092 0.0092 185.0 0.0090 0.0090 208.0 0.0089 0.0089 232.5 0.0089 0.0089 258.5 0.0089 0.0089 286.0 0.0089 0.0089 331.0 0.0090 0.0090 396.0 0.0090 0.0090 468.5 0.0092 0.0092 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.8 1.0 117 9.0 0.0804 0.0804 11.0 0.0609 0.0609 13.5 0.0491 0.0491 16.5 0.0410 0.0410 19.5 0.0358 0.0358 22.5 0.0321 0.0321 26.0 0.0287 0.0287 30.0 0.0256 0.0256 34.5 0.0228 0.0228 40.0 0.0201 0.0201 46.0 0.0178 0.0178 52.5 0.0159 0.0159 60.0 0.0143 0.0143 69.0 0.0129 0.0129 79.0 0.0119 0.0119 90.5 0.0110 0.0110 105.5 0.0103 0.0103 123.5 0.0098 0.0098 143.0 0.0095 0.0095 163.5 0.0092 0.0092 185.0 0.0091 0.0091 208.0 0.0090 0.0090 232.5 0.0089 0.0089 258.5 0.0089 0.0089 286.0 0.0089 0.0089 331.0 0.0090 0.0090 396.0 0.0091 0.0091 468.5 0.0092 0.0092 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -1.0 1.2 117 9.0 0.0849 0.0849 11.0 0.0634 0.0634 13.5 0.0505 0.0505 16.5 0.0419 0.0419 19.5 0.0365 0.0365 22.5 0.0326 0.0326 26.0 0.0291 0.0291 30.0 0.0259 0.0259 34.5 0.0231 0.0231 40.0 0.0203 0.0203 46.0 0.0180 0.0180 52.5 0.0161 0.0161 60.0 0.0144 0.0144 69.0 0.0130 0.0130 79.0 0.0120 0.0120 90.5 0.0111 0.0111 105.5 0.0104 0.0104 123.5 0.0098 0.0098 143.0 0.0095 0.0095 163.5 0.0092 0.0092 185.0 0.0091 0.0091 208.0 0.0090 0.0090 232.5 0.0089 0.0089 258.5 0.0089 0.0089 286.0 0.0089 0.0089 331.0 0.0090 0.0090 396.0 0.0091 0.0091 468.5 0.0092 0.0092 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -1.2 1.4 117 9.0 0.0882 0.0882 11.0 0.0653 0.0653 13.5 0.0517 0.0517 16.5 0.0427 0.0427 19.5 0.0371 0.0371 22.5 0.0331 0.0331 26.0 0.0295 0.0295 30.0 0.0263 0.0263 34.5 0.0234 0.0234 40.0 0.0206 0.0206 46.0 0.0183 0.0183 52.5 0.0163 0.0163 60.0 0.0146 0.0146 69.0 0.0133 0.0133 79.0 0.0122 0.0122 90.5 0.0114 0.0114 105.5 0.0106 0.0106 123.5 0.0101 0.0101 143.0 0.0097 0.0097 163.5 0.0095 0.0095 185.0 0.0093 0.0093 208.0 0.0092 0.0092 232.5 0.0092 0.0092 258.5 0.0092 0.0092 286.0 0.0092 0.0092 331.0 0.0093 0.0093 396.0 0.0093 0.0093 468.5 0.0094 0.0094 549.5 0.0097 0.0097 639.0 0.0099 0.0099 738.0 0.0102 0.0102 847.5 0.0104 0.0104 968.5 0.0108 0.0108 1102.0 0.0111 0.0111 1249.5 0.0115 0.0115 1412.0 0.0118 0.0118 1590.5 0.0121 0.0121 1787.0 0.0124 0.0124 1944.5 0.0127 0.0127 -1.4 1.6 117 9.0 0.0963 0.0963 11.0 0.0702 0.0702 13.5 0.0552 0.0552 16.5 0.0455 0.0455 19.5 0.0396 0.0396 22.5 0.0355 0.0355 26.0 0.0319 0.0319 30.0 0.0287 0.0287 34.5 0.0259 0.0259 40.0 0.0232 0.0232 46.0 0.0211 0.0211 52.5 0.0193 0.0193 60.0 0.0179 0.0179 69.0 0.0167 0.0167 79.0 0.0159 0.0159 90.5 0.0152 0.0152 105.5 0.0146 0.0146 123.5 0.0142 0.0142 143.0 0.0140 0.0140 163.5 0.0138 0.0138 185.0 0.0137 0.0137 208.0 0.0136 0.0136 232.5 0.0135 0.0135 258.5 0.0135 0.0135 286.0 0.0135 0.0135 331.0 0.0136 0.0136 396.0 0.0136 0.0136 468.5 0.0137 0.0137 549.5 0.0139 0.0139 639.0 0.0141 0.0141 738.0 0.0142 0.0142 847.5 0.0144 0.0144 968.5 0.0147 0.0147 1102.0 0.0149 0.0149 1249.5 0.0152 0.0152 1412.0 0.0154 0.0154 1590.5 0.0157 0.0157 1787.0 0.0159 0.0159 1944.5 0.0161 0.0161 -1.6 1.8 117 9.0 0.1067 0.1067 11.0 0.0760 0.0760 13.5 0.0588 0.0588 16.5 0.0479 0.0479 19.5 0.0413 0.0413 22.5 0.0368 0.0368 26.0 0.0329 0.0329 30.0 0.0295 0.0295 34.5 0.0265 0.0265 40.0 0.0238 0.0238 46.0 0.0216 0.0216 52.5 0.0197 0.0197 60.0 0.0182 0.0182 69.0 0.0170 0.0170 79.0 0.0161 0.0161 90.5 0.0154 0.0154 105.5 0.0148 0.0148 123.5 0.0144 0.0144 143.0 0.0141 0.0141 163.5 0.0139 0.0139 185.0 0.0138 0.0138 208.0 0.0137 0.0137 232.5 0.0137 0.0137 258.5 0.0137 0.0137 286.0 0.0137 0.0137 331.0 0.0137 0.0137 396.0 0.0137 0.0137 468.5 0.0138 0.0138 549.5 0.0140 0.0140 639.0 0.0142 0.0142 738.0 0.0144 0.0144 847.5 0.0145 0.0145 968.5 0.0148 0.0148 1102.0 0.0150 0.0150 1249.5 0.0153 0.0153 1412.0 0.0155 0.0155 1590.5 0.0158 0.0158 1787.0 0.0160 0.0160 1944.5 0.0162 0.0162 -1.8 2.0 117 9.0 0.1140 0.1140 11.0 0.0802 0.0802 13.5 0.0614 0.0614 16.5 0.0497 0.0497 19.5 0.0427 0.0427 22.5 0.0379 0.0379 26.0 0.0338 0.0338 30.0 0.0302 0.0302 34.5 0.0271 0.0271 40.0 0.0243 0.0243 46.0 0.0220 0.0220 52.5 0.0201 0.0201 60.0 0.0186 0.0186 69.0 0.0173 0.0173 79.0 0.0164 0.0164 90.5 0.0157 0.0157 105.5 0.0150 0.0150 123.5 0.0146 0.0146 143.0 0.0143 0.0143 163.5 0.0141 0.0141 185.0 0.0140 0.0140 208.0 0.0139 0.0139 232.5 0.0139 0.0139 258.5 0.0138 0.0138 286.0 0.0138 0.0138 331.0 0.0139 0.0139 396.0 0.0139 0.0139 468.5 0.0140 0.0140 549.5 0.0141 0.0141 639.0 0.0143 0.0143 738.0 0.0145 0.0145 847.5 0.0147 0.0147 968.5 0.0149 0.0149 1102.0 0.0152 0.0152 1249.5 0.0154 0.0154 1412.0 0.0156 0.0156 1590.5 0.0159 0.0159 1787.0 0.0161 0.0161 1944.5 0.0163 0.0163 -2.0 2.2 117 9.0 0.0672 0.0672 11.0 0.0565 0.0565 13.5 0.0485 0.0485 16.5 0.0423 0.0423 19.5 0.0382 0.0382 22.5 0.0351 0.0351 26.0 0.0323 0.0323 30.0 0.0297 0.0297 34.5 0.0274 0.0274 40.0 0.0252 0.0252 46.0 0.0234 0.0234 52.5 0.0220 0.0220 60.0 0.0209 0.0209 69.0 0.0200 0.0200 79.0 0.0193 0.0193 90.5 0.0188 0.0188 105.5 0.0184 0.0184 123.5 0.0181 0.0181 143.0 0.0179 0.0179 163.5 0.0178 0.0178 185.0 0.0177 0.0177 208.0 0.0176 0.0176 232.5 0.0176 0.0176 258.5 0.0176 0.0176 286.0 0.0176 0.0176 331.0 0.0177 0.0177 396.0 0.0177 0.0177 468.5 0.0177 0.0177 549.5 0.0179 0.0179 639.0 0.0180 0.0180 738.0 0.0182 0.0182 847.5 0.0183 0.0183 968.5 0.0185 0.0185 1102.0 0.0187 0.0187 1249.5 0.0189 0.0189 1412.0 0.0191 0.0191 1590.5 0.0193 0.0193 1787.0 0.0195 0.0195 1944.5 0.0197 0.0197 -2.2 2.4 117 9.0 0.1992 0.1992 11.0 0.1254 0.1254 13.5 0.0892 0.0892 16.5 0.0685 0.0685 19.5 0.0568 0.0568 22.5 0.0493 0.0493 26.0 0.0432 0.0432 30.0 0.0382 0.0382 34.5 0.0341 0.0341 40.0 0.0305 0.0305 46.0 0.0277 0.0277 52.5 0.0254 0.0254 60.0 0.0236 0.0236 69.0 0.0221 0.0221 79.0 0.0210 0.0210 90.5 0.0202 0.0202 105.5 0.0195 0.0195 123.5 0.0189 0.0189 143.0 0.0186 0.0186 163.5 0.0183 0.0183 185.0 0.0182 0.0182 208.0 0.0181 0.0181 232.5 0.0180 0.0180 258.5 0.0179 0.0179 286.0 0.0179 0.0179 331.0 0.0179 0.0179 396.0 0.0179 0.0179 468.5 0.0180 0.0180 549.5 0.0181 0.0181 639.0 0.0182 0.0182 738.0 0.0184 0.0184 847.5 0.0185 0.0185 968.5 0.0187 0.0187 1102.0 0.0189 0.0189 1249.5 0.0191 0.0191 1412.0 0.0193 0.0193 1590.5 0.0195 0.0195 1787.0 0.0197 0.0197 1944.5 0.0198 0.0198 -2.4 2.6 117 9.0 2.2108 2.2108 11.0 0.5116 0.5116 13.5 0.2687 0.2687 16.5 0.1765 0.1765 19.5 0.1350 0.1350 22.5 0.1117 0.1117 26.0 0.0950 0.0950 30.0 0.0829 0.0829 34.5 0.0741 0.0741 40.0 0.0672 0.0672 46.0 0.0622 0.0622 52.5 0.0586 0.0586 60.0 0.0559 0.0559 69.0 0.0537 0.0537 79.0 0.0522 0.0522 90.5 0.0510 0.0510 105.5 0.0500 0.0500 123.5 0.0493 0.0493 143.0 0.0488 0.0488 163.5 0.0485 0.0485 185.0 0.0483 0.0483 208.0 0.0481 0.0481 232.5 0.0480 0.0480 258.5 0.0479 0.0479 286.0 0.0479 0.0479 331.0 0.0478 0.0478 396.0 0.0478 0.0478 468.5 0.0477 0.0477 549.5 0.0478 0.0478 639.0 0.0478 0.0478 738.0 0.0478 0.0478 847.5 0.0479 0.0479 968.5 0.0480 0.0480 1102.0 0.0480 0.0480 1249.5 0.0481 0.0481 1412.0 0.0482 0.0482 1590.5 0.0483 0.0483 1787.0 0.0483 0.0483 1944.5 0.0484 0.0484 -2.6 2.8 117 9.0 2.8549 2.8549 11.0 0.6842 0.6842 13.5 0.3586 0.3586 16.5 0.2327 0.2327 19.5 0.1752 0.1752 22.5 0.1424 0.1424 26.0 0.1187 0.1187 30.0 0.1014 0.1014 34.5 0.0886 0.0886 40.0 0.0784 0.0784 46.0 0.0710 0.0710 52.5 0.0656 0.0656 60.0 0.0615 0.0615 69.0 0.0581 0.0581 79.0 0.0557 0.0557 90.5 0.0538 0.0538 105.5 0.0523 0.0523 123.5 0.0511 0.0511 143.0 0.0503 0.0503 163.5 0.0498 0.0498 185.0 0.0494 0.0494 208.0 0.0492 0.0492 232.5 0.0490 0.0490 258.5 0.0488 0.0488 286.0 0.0487 0.0487 331.0 0.0486 0.0486 396.0 0.0485 0.0485 468.5 0.0484 0.0484 549.5 0.0484 0.0484 639.0 0.0485 0.0485 738.0 0.0485 0.0485 847.5 0.0485 0.0485 968.5 0.0486 0.0486 1102.0 0.0487 0.0487 1249.5 0.0487 0.0487 1412.0 0.0488 0.0488 1590.5 0.0489 0.0489 1787.0 0.0490 0.0490 1944.5 0.0490 0.0490 -2.8 3.0 117 9.0 1.5098 1.5098 11.0 0.5755 0.5755 13.5 0.3318 0.3318 16.5 0.2240 0.2240 19.5 0.1716 0.1716 22.5 0.1410 0.1410 26.0 0.1183 0.1183 30.0 0.1014 0.1014 34.5 0.0889 0.0889 40.0 0.0787 0.0787 46.0 0.0713 0.0713 52.5 0.0659 0.0659 60.0 0.0617 0.0617 69.0 0.0583 0.0583 79.0 0.0558 0.0558 90.5 0.0539 0.0539 105.5 0.0523 0.0523 123.5 0.0511 0.0511 143.0 0.0503 0.0503 163.5 0.0497 0.0497 185.0 0.0493 0.0493 208.0 0.0490 0.0490 232.5 0.0488 0.0488 258.5 0.0487 0.0487 286.0 0.0486 0.0486 331.0 0.0485 0.0485 396.0 0.0483 0.0483 468.5 0.0483 0.0483 549.5 0.0483 0.0483 639.0 0.0483 0.0483 738.0 0.0483 0.0483 847.5 0.0484 0.0484 968.5 0.0484 0.0484 1102.0 0.0485 0.0485 1249.5 0.0486 0.0486 1412.0 0.0486 0.0486 1590.5 0.0487 0.0487 1787.0 0.0488 0.0488 1944.5 0.0489 0.0489 -3.0 3.5 117 9.0 0.3177 0.3177 11.0 0.2138 0.2138 13.5 0.1535 0.1535 16.5 0.1161 0.1161 19.5 0.0943 0.0943 22.5 0.0801 0.0801 26.0 0.0686 0.0686 30.0 0.0595 0.0595 34.5 0.0523 0.0523 40.0 0.0460 0.0460 46.0 0.0412 0.0412 52.5 0.0375 0.0375 60.0 0.0345 0.0345 69.0 0.0320 0.0320 79.0 0.0301 0.0301 90.5 0.0286 0.0286 105.5 0.0273 0.0273 123.5 0.0263 0.0263 143.0 0.0257 0.0257 163.5 0.0252 0.0252 185.0 0.0249 0.0249 208.0 0.0246 0.0246 232.5 0.0245 0.0245 258.5 0.0243 0.0243 286.0 0.0243 0.0243 331.0 0.0242 0.0242 396.0 0.0241 0.0241 468.5 0.0241 0.0241 549.5 0.0242 0.0242 639.0 0.0242 0.0242 738.0 0.0243 0.0243 847.5 0.0244 0.0244 968.5 0.0246 0.0246 1102.0 0.0247 0.0247 1249.5 0.0248 0.0248 1412.0 0.0250 0.0250 1590.5 0.0251 0.0251 1787.0 0.0253 0.0253 1944.5 0.0254 0.0254 -3.5 4.0 117 9.0 0.1026 0.1026 11.0 0.0807 0.0807 13.5 0.0663 0.0663 16.5 0.0568 0.0568 19.5 0.0511 0.0511 22.5 0.0474 0.0474 26.0 0.0442 0.0442 30.0 0.0416 0.0416 34.5 0.0395 0.0395 40.0 0.0376 0.0376 46.0 0.0362 0.0362 52.5 0.0351 0.0351 60.0 0.0343 0.0343 69.0 0.0336 0.0336 79.0 0.0332 0.0332 90.5 0.0328 0.0328 105.5 0.0326 0.0326 123.5 0.0324 0.0324 143.0 0.0322 0.0322 163.5 0.0322 0.0322 185.0 0.0321 0.0321 208.0 0.0321 0.0321 232.5 0.0321 0.0321 258.5 0.0320 0.0320 286.0 0.0320 0.0320 331.0 0.0321 0.0321 396.0 0.0321 0.0321 468.5 0.0321 0.0321 549.5 0.0322 0.0322 639.0 0.0323 0.0323 738.0 0.0323 0.0323 847.5 0.0324 0.0324 968.5 0.0325 0.0325 1102.0 0.0327 0.0327 1249.5 0.0328 0.0328 1412.0 0.0329 0.0329 1590.5 0.0330 0.0330 1787.0 0.0331 0.0331 1944.5 0.0332 0.0332 -4.0 4.5 117 9.0 0.0597 0.0597 11.0 0.0530 0.0530 13.5 0.0483 0.0483 16.5 0.0448 0.0448 19.5 0.0426 0.0426 22.5 0.0409 0.0409 26.0 0.0394 0.0394 30.0 0.0379 0.0379 34.5 0.0367 0.0367 40.0 0.0355 0.0355 46.0 0.0346 0.0346 52.5 0.0339 0.0339 60.0 0.0333 0.0333 69.0 0.0329 0.0329 79.0 0.0326 0.0326 90.5 0.0324 0.0324 105.5 0.0323 0.0323 123.5 0.0321 0.0321 143.0 0.0321 0.0321 163.5 0.0320 0.0320 185.0 0.0320 0.0320 208.0 0.0320 0.0320 232.5 0.0320 0.0320 258.5 0.0320 0.0320 286.0 0.0320 0.0320 331.0 0.0320 0.0320 396.0 0.0321 0.0321 468.5 0.0321 0.0321 549.5 0.0322 0.0322 639.0 0.0323 0.0323 738.0 0.0323 0.0323 847.5 0.0324 0.0324 968.5 0.0325 0.0325 1102.0 0.0327 0.0327 1249.5 0.0328 0.0328 1412.0 0.0329 0.0329 1590.5 0.0330 0.0330 1787.0 0.0331 0.0331 1944.5 0.0332 0.0332 -4.5 5.2 117 9.0 0.0799 0.0799 11.0 0.0677 0.0677 13.5 0.0587 0.0587 16.5 0.0522 0.0522 19.5 0.0480 0.0480 22.5 0.0451 0.0451 26.0 0.0426 0.0426 30.0 0.0405 0.0405 34.5 0.0386 0.0386 40.0 0.0370 0.0370 46.0 0.0358 0.0358 52.5 0.0348 0.0348 60.0 0.0340 0.0340 69.0 0.0335 0.0335 79.0 0.0330 0.0330 90.5 0.0327 0.0327 105.5 0.0325 0.0325 123.5 0.0323 0.0323 143.0 0.0322 0.0322 163.5 0.0321 0.0321 185.0 0.0321 0.0321 208.0 0.0320 0.0320 232.5 0.0320 0.0320 258.5 0.0320 0.0320 286.0 0.0320 0.0320 331.0 0.0321 0.0321 396.0 0.0321 0.0321 468.5 0.0321 0.0321 549.5 0.0322 0.0322 639.0 0.0323 0.0323 738.0 0.0323 0.0323 847.5 0.0324 0.0324 968.5 0.0325 0.0325 1102.0 0.0327 0.0327 1249.5 0.0328 0.0328 1412.0 0.0329 0.0329 1590.5 0.0330 0.0330 1787.0 0.0331 0.0331 1944.5 0.0332 0.0332 diff --git a/PhysicsTools/PatUtils/data/Summer12_V2_DATA_AK5PF_UncertaintySources.txt b/PhysicsTools/PatUtils/data/Summer12_V2_DATA_AK5PF_UncertaintySources.txt deleted file mode 100644 index f3d3c1b01be79..0000000000000 --- a/PhysicsTools/PatUtils/data/Summer12_V2_DATA_AK5PF_UncertaintySources.txt +++ /dev/null @@ -1,841 +0,0 @@ -#Uncertainty sources for Summer12_V2_DATA_AK5PF -[Absolute] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --4.5 -4.0 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --4.0 -3.5 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --3.5 -3.0 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --3.0 -2.8 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --2.8 -2.6 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --2.6 -2.4 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --2.4 -2.2 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --2.2 -2.0 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --2.0 -1.8 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --1.8 -1.6 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --1.6 -1.4 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --1.4 -1.2 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --1.2 -1.0 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --1.0 -0.8 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --0.8 -0.6 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --0.6 -0.4 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --0.4 -0.2 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --0.2 0.0 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -0.0 0.2 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -0.2 0.4 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -0.4 0.6 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -0.6 0.8 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -0.8 1.0 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -1.0 1.2 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -1.2 1.4 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -1.4 1.6 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -1.6 1.8 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -1.8 2.0 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -2.0 2.2 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -2.2 2.4 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -2.4 2.6 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -2.6 2.8 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -2.8 3.0 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -3.0 3.5 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -3.5 4.0 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -4.0 4.5 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -4.5 5.2 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -[HighPtExtra] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --4.5 -4.0 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --4.0 -3.5 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --3.5 -3.0 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --3.0 -2.8 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --2.8 -2.6 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --2.6 -2.4 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --2.4 -2.2 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --2.2 -2.0 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --2.0 -1.8 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --1.8 -1.6 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --1.6 -1.4 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --1.4 -1.2 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --1.2 -1.0 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --1.0 -0.8 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --0.8 -0.6 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --0.6 -0.4 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --0.4 -0.2 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 --0.2 0.0 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -0.0 0.2 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -0.2 0.4 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -0.4 0.6 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -0.6 0.8 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -0.8 1.0 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -1.0 1.2 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -1.2 1.4 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -1.4 1.6 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -1.6 1.8 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -1.8 2.0 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -2.0 2.2 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -2.2 2.4 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -2.4 2.6 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -2.6 2.8 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -2.8 3.0 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -3.0 3.5 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -3.5 4.0 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -4.0 4.5 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -4.5 5.2 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0146 0.0146 19.5 0.0142 0.0142 22.5 0.0137 0.0137 26.0 0.0126 0.0126 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0079 0.0079 46.0 0.0063 0.0063 52.5 0.0047 0.0047 60.0 0.0033 0.0033 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0022 0.0022 105.5 0.0025 0.0025 123.5 0.0031 0.0031 143.0 0.0036 0.0036 163.5 0.0039 0.0039 185.0 0.0041 0.0041 208.0 0.0042 0.0042 232.5 0.0044 0.0044 258.5 0.0046 0.0046 286.0 0.0047 0.0047 331.0 0.0049 0.0049 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0052 0.0052 639.0 0.0055 0.0055 738.0 0.0057 0.0057 847.5 0.0060 0.0060 968.5 0.0064 0.0064 1102.0 0.0068 0.0068 1249.5 0.0072 0.0072 1412.0 0.0075 0.0075 1590.5 0.0079 0.0079 1787.0 0.0083 0.0083 1944.5 0.0086 0.0086 -[SinglePion] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --4.5 -4.0 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --4.0 -3.5 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --3.5 -3.0 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --3.0 -2.8 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --2.8 -2.6 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --2.6 -2.4 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --2.4 -2.2 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --2.2 -2.0 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --2.0 -1.8 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --1.8 -1.6 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --1.6 -1.4 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --1.4 -1.2 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --1.2 -1.0 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --1.0 -0.8 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --0.8 -0.6 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --0.6 -0.4 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --0.4 -0.2 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 --0.2 0.0 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -0.0 0.2 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -0.2 0.4 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -0.4 0.6 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -0.6 0.8 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -0.8 1.0 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -1.0 1.2 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -1.2 1.4 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -1.4 1.6 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -1.6 1.8 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -1.8 2.0 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -2.0 2.2 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -2.2 2.4 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -2.4 2.6 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -2.6 2.8 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -2.8 3.0 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -3.0 3.5 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -3.5 4.0 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -4.0 4.5 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -4.5 5.2 117 9.0 -0.0204 -0.0204 11.0 -0.0178 -0.0178 13.5 -0.0155 -0.0155 16.5 -0.0134 -0.0134 19.5 -0.0117 -0.0117 22.5 -0.0104 -0.0104 26.0 -0.0092 -0.0092 30.0 -0.0081 -0.0081 34.5 -0.0070 -0.0070 40.0 -0.0060 -0.0060 46.0 -0.0051 -0.0051 52.5 -0.0042 -0.0042 60.0 -0.0035 -0.0035 69.0 -0.0027 -0.0027 79.0 -0.0020 -0.0020 90.5 -0.0013 -0.0013 105.5 -0.0006 -0.0006 123.5 0.0000 0.0000 143.0 0.0006 0.0006 163.5 0.0011 0.0011 185.0 0.0015 0.0015 208.0 0.0019 0.0019 232.5 0.0023 0.0023 258.5 0.0026 0.0026 286.0 0.0029 0.0029 331.0 0.0033 0.0033 396.0 0.0037 0.0037 468.5 0.0041 0.0041 549.5 0.0045 0.0045 639.0 0.0048 0.0048 738.0 0.0050 0.0050 847.5 0.0053 0.0053 968.5 0.0055 0.0055 1102.0 0.0057 0.0057 1249.5 0.0059 0.0059 1412.0 0.0061 0.0061 1590.5 0.0062 0.0062 1787.0 0.0064 0.0064 1944.5 0.0065 0.0065 -[Flavor] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --4.5 -4.0 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --4.0 -3.5 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --3.5 -3.0 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --3.0 -2.8 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --2.8 -2.6 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --2.6 -2.4 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --2.4 -2.2 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --2.2 -2.0 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --2.0 -1.8 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --1.8 -1.6 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --1.6 -1.4 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --1.4 -1.2 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --1.2 -1.0 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --1.0 -0.8 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --0.8 -0.6 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --0.6 -0.4 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --0.4 -0.2 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --0.2 0.0 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -0.0 0.2 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -0.2 0.4 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -0.4 0.6 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -0.6 0.8 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -0.8 1.0 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -1.0 1.2 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -1.2 1.4 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -1.4 1.6 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -1.6 1.8 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -1.8 2.0 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -2.0 2.2 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -2.2 2.4 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -2.4 2.6 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -2.6 2.8 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -2.8 3.0 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -3.0 3.5 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -3.5 4.0 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -4.0 4.5 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -4.5 5.2 117 9.0 0.0195 0.0195 11.0 0.0179 0.0179 13.5 0.0165 0.0165 16.5 0.0151 0.0151 19.5 0.0140 0.0140 22.5 0.0132 0.0132 26.0 0.0123 0.0123 30.0 0.0116 0.0116 34.5 0.0108 0.0108 40.0 0.0101 0.0101 46.0 0.0094 0.0094 52.5 0.0088 0.0088 60.0 0.0082 0.0082 69.0 0.0076 0.0076 79.0 0.0071 0.0071 90.5 0.0066 0.0066 105.5 0.0060 0.0060 123.5 0.0055 0.0055 143.0 0.0050 0.0050 163.5 0.0045 0.0045 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0035 0.0035 258.5 0.0032 0.0032 286.0 0.0030 0.0030 331.0 0.0026 0.0026 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -[Time] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --4.5 -4.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --4.0 -3.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --3.5 -3.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --3.0 -2.8 117 9.0 0.0100 0.0100 11.0 0.0100 0.0100 13.5 0.0100 0.0100 16.5 0.0100 0.0100 19.5 0.0100 0.0100 22.5 0.0100 0.0100 26.0 0.0100 0.0100 30.0 0.0100 0.0100 34.5 0.0100 0.0100 40.0 0.0100 0.0100 46.0 0.0100 0.0100 52.5 0.0100 0.0100 60.0 0.0100 0.0100 69.0 0.0100 0.0100 79.0 0.0100 0.0100 90.5 0.0100 0.0100 105.5 0.0100 0.0100 123.5 0.0100 0.0100 143.0 0.0100 0.0100 163.5 0.0100 0.0100 185.0 0.0100 0.0100 208.0 0.0100 0.0100 232.5 0.0100 0.0100 258.5 0.0100 0.0100 286.0 0.0100 0.0100 331.0 0.0100 0.0100 396.0 0.0100 0.0100 468.5 0.0100 0.0100 549.5 0.0100 0.0100 639.0 0.0100 0.0100 738.0 0.0100 0.0100 847.5 0.0100 0.0100 968.5 0.0100 0.0100 1102.0 0.0100 0.0100 1249.5 0.0100 0.0100 1412.0 0.0100 0.0100 1590.5 0.0100 0.0100 1787.0 0.0100 0.0100 1944.5 0.0100 0.0100 --2.8 -2.6 117 9.0 0.0100 0.0100 11.0 0.0100 0.0100 13.5 0.0100 0.0100 16.5 0.0100 0.0100 19.5 0.0100 0.0100 22.5 0.0100 0.0100 26.0 0.0100 0.0100 30.0 0.0100 0.0100 34.5 0.0100 0.0100 40.0 0.0100 0.0100 46.0 0.0100 0.0100 52.5 0.0100 0.0100 60.0 0.0100 0.0100 69.0 0.0100 0.0100 79.0 0.0100 0.0100 90.5 0.0100 0.0100 105.5 0.0100 0.0100 123.5 0.0100 0.0100 143.0 0.0100 0.0100 163.5 0.0100 0.0100 185.0 0.0100 0.0100 208.0 0.0100 0.0100 232.5 0.0100 0.0100 258.5 0.0100 0.0100 286.0 0.0100 0.0100 331.0 0.0100 0.0100 396.0 0.0100 0.0100 468.5 0.0100 0.0100 549.5 0.0100 0.0100 639.0 0.0100 0.0100 738.0 0.0100 0.0100 847.5 0.0100 0.0100 968.5 0.0100 0.0100 1102.0 0.0100 0.0100 1249.5 0.0100 0.0100 1412.0 0.0100 0.0100 1590.5 0.0100 0.0100 1787.0 0.0100 0.0100 1944.5 0.0100 0.0100 --2.6 -2.4 117 9.0 0.0100 0.0100 11.0 0.0100 0.0100 13.5 0.0100 0.0100 16.5 0.0100 0.0100 19.5 0.0100 0.0100 22.5 0.0100 0.0100 26.0 0.0100 0.0100 30.0 0.0100 0.0100 34.5 0.0100 0.0100 40.0 0.0100 0.0100 46.0 0.0100 0.0100 52.5 0.0100 0.0100 60.0 0.0100 0.0100 69.0 0.0100 0.0100 79.0 0.0100 0.0100 90.5 0.0100 0.0100 105.5 0.0100 0.0100 123.5 0.0100 0.0100 143.0 0.0100 0.0100 163.5 0.0100 0.0100 185.0 0.0100 0.0100 208.0 0.0100 0.0100 232.5 0.0100 0.0100 258.5 0.0100 0.0100 286.0 0.0100 0.0100 331.0 0.0100 0.0100 396.0 0.0100 0.0100 468.5 0.0100 0.0100 549.5 0.0100 0.0100 639.0 0.0100 0.0100 738.0 0.0100 0.0100 847.5 0.0100 0.0100 968.5 0.0100 0.0100 1102.0 0.0100 0.0100 1249.5 0.0100 0.0100 1412.0 0.0100 0.0100 1590.5 0.0100 0.0100 1787.0 0.0100 0.0100 1944.5 0.0100 0.0100 --2.4 -2.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.2 -2.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.0 -1.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.8 -1.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.6 -1.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.4 -1.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.2 -1.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.0 -0.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.8 -0.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.6 -0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.4 -0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.2 0.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.0 0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.2 0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.4 0.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.6 0.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.8 1.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.0 1.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.2 1.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.4 1.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.6 1.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.8 2.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.0 2.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.2 2.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.4 2.6 117 9.0 0.0100 0.0100 11.0 0.0100 0.0100 13.5 0.0100 0.0100 16.5 0.0100 0.0100 19.5 0.0100 0.0100 22.5 0.0100 0.0100 26.0 0.0100 0.0100 30.0 0.0100 0.0100 34.5 0.0100 0.0100 40.0 0.0100 0.0100 46.0 0.0100 0.0100 52.5 0.0100 0.0100 60.0 0.0100 0.0100 69.0 0.0100 0.0100 79.0 0.0100 0.0100 90.5 0.0100 0.0100 105.5 0.0100 0.0100 123.5 0.0100 0.0100 143.0 0.0100 0.0100 163.5 0.0100 0.0100 185.0 0.0100 0.0100 208.0 0.0100 0.0100 232.5 0.0100 0.0100 258.5 0.0100 0.0100 286.0 0.0100 0.0100 331.0 0.0100 0.0100 396.0 0.0100 0.0100 468.5 0.0100 0.0100 549.5 0.0100 0.0100 639.0 0.0100 0.0100 738.0 0.0100 0.0100 847.5 0.0100 0.0100 968.5 0.0100 0.0100 1102.0 0.0100 0.0100 1249.5 0.0100 0.0100 1412.0 0.0100 0.0100 1590.5 0.0100 0.0100 1787.0 0.0100 0.0100 1944.5 0.0100 0.0100 -2.6 2.8 117 9.0 0.0100 0.0100 11.0 0.0100 0.0100 13.5 0.0100 0.0100 16.5 0.0100 0.0100 19.5 0.0100 0.0100 22.5 0.0100 0.0100 26.0 0.0100 0.0100 30.0 0.0100 0.0100 34.5 0.0100 0.0100 40.0 0.0100 0.0100 46.0 0.0100 0.0100 52.5 0.0100 0.0100 60.0 0.0100 0.0100 69.0 0.0100 0.0100 79.0 0.0100 0.0100 90.5 0.0100 0.0100 105.5 0.0100 0.0100 123.5 0.0100 0.0100 143.0 0.0100 0.0100 163.5 0.0100 0.0100 185.0 0.0100 0.0100 208.0 0.0100 0.0100 232.5 0.0100 0.0100 258.5 0.0100 0.0100 286.0 0.0100 0.0100 331.0 0.0100 0.0100 396.0 0.0100 0.0100 468.5 0.0100 0.0100 549.5 0.0100 0.0100 639.0 0.0100 0.0100 738.0 0.0100 0.0100 847.5 0.0100 0.0100 968.5 0.0100 0.0100 1102.0 0.0100 0.0100 1249.5 0.0100 0.0100 1412.0 0.0100 0.0100 1590.5 0.0100 0.0100 1787.0 0.0100 0.0100 1944.5 0.0100 0.0100 -2.8 3.0 117 9.0 0.0100 0.0100 11.0 0.0100 0.0100 13.5 0.0100 0.0100 16.5 0.0100 0.0100 19.5 0.0100 0.0100 22.5 0.0100 0.0100 26.0 0.0100 0.0100 30.0 0.0100 0.0100 34.5 0.0100 0.0100 40.0 0.0100 0.0100 46.0 0.0100 0.0100 52.5 0.0100 0.0100 60.0 0.0100 0.0100 69.0 0.0100 0.0100 79.0 0.0100 0.0100 90.5 0.0100 0.0100 105.5 0.0100 0.0100 123.5 0.0100 0.0100 143.0 0.0100 0.0100 163.5 0.0100 0.0100 185.0 0.0100 0.0100 208.0 0.0100 0.0100 232.5 0.0100 0.0100 258.5 0.0100 0.0100 286.0 0.0100 0.0100 331.0 0.0100 0.0100 396.0 0.0100 0.0100 468.5 0.0100 0.0100 549.5 0.0100 0.0100 639.0 0.0100 0.0100 738.0 0.0100 0.0100 847.5 0.0100 0.0100 968.5 0.0100 0.0100 1102.0 0.0100 0.0100 1249.5 0.0100 0.0100 1412.0 0.0100 0.0100 1590.5 0.0100 0.0100 1787.0 0.0100 0.0100 1944.5 0.0100 0.0100 -3.0 3.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -3.5 4.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -4.0 4.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -4.5 5.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -[RelativeJEREC1] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --4.5 -4.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --4.0 -3.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --3.5 -3.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --3.0 -2.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.8 -2.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.6 -2.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.4 -2.2 117 9.0 0.0044 0.0044 11.0 0.0044 0.0044 13.5 0.0044 0.0044 16.5 0.0044 0.0044 19.5 0.0044 0.0044 22.5 0.0044 0.0044 26.0 0.0044 0.0044 30.0 0.0044 0.0044 34.5 0.0044 0.0044 40.0 0.0044 0.0044 46.0 0.0044 0.0044 52.5 0.0044 0.0044 60.0 0.0044 0.0044 69.0 0.0044 0.0044 79.0 0.0044 0.0044 90.5 0.0044 0.0044 105.5 0.0044 0.0044 123.5 0.0044 0.0044 143.0 0.0044 0.0044 163.5 0.0044 0.0044 185.0 0.0044 0.0044 208.0 0.0044 0.0044 232.5 0.0044 0.0044 258.5 0.0044 0.0044 286.0 0.0044 0.0044 331.0 0.0044 0.0044 396.0 0.0044 0.0044 468.5 0.0044 0.0044 549.5 0.0044 0.0044 639.0 0.0044 0.0044 738.0 0.0044 0.0044 847.5 0.0044 0.0044 968.5 0.0044 0.0044 1102.0 0.0044 0.0044 1249.5 0.0044 0.0044 1412.0 0.0044 0.0044 1590.5 0.0044 0.0044 1787.0 0.0044 0.0044 1944.5 0.0044 0.0044 --2.2 -2.0 117 9.0 0.0038 0.0038 11.0 0.0038 0.0038 13.5 0.0038 0.0038 16.5 0.0038 0.0038 19.5 0.0038 0.0038 22.5 0.0038 0.0038 26.0 0.0038 0.0038 30.0 0.0038 0.0038 34.5 0.0038 0.0038 40.0 0.0038 0.0038 46.0 0.0038 0.0038 52.5 0.0038 0.0038 60.0 0.0038 0.0038 69.0 0.0038 0.0038 79.0 0.0038 0.0038 90.5 0.0038 0.0038 105.5 0.0038 0.0038 123.5 0.0038 0.0038 143.0 0.0038 0.0038 163.5 0.0038 0.0038 185.0 0.0038 0.0038 208.0 0.0038 0.0038 232.5 0.0038 0.0038 258.5 0.0038 0.0038 286.0 0.0038 0.0038 331.0 0.0038 0.0038 396.0 0.0038 0.0038 468.5 0.0038 0.0038 549.5 0.0038 0.0038 639.0 0.0038 0.0038 738.0 0.0038 0.0038 847.5 0.0038 0.0038 968.5 0.0038 0.0038 1102.0 0.0038 0.0038 1249.5 0.0038 0.0038 1412.0 0.0038 0.0038 1590.5 0.0038 0.0038 1787.0 0.0038 0.0038 1944.5 0.0038 0.0038 --2.0 -1.8 117 9.0 0.0032 0.0032 11.0 0.0032 0.0032 13.5 0.0032 0.0032 16.5 0.0032 0.0032 19.5 0.0032 0.0032 22.5 0.0032 0.0032 26.0 0.0032 0.0032 30.0 0.0032 0.0032 34.5 0.0032 0.0032 40.0 0.0032 0.0032 46.0 0.0032 0.0032 52.5 0.0032 0.0032 60.0 0.0032 0.0032 69.0 0.0032 0.0032 79.0 0.0032 0.0032 90.5 0.0032 0.0032 105.5 0.0032 0.0032 123.5 0.0032 0.0032 143.0 0.0032 0.0032 163.5 0.0032 0.0032 185.0 0.0032 0.0032 208.0 0.0032 0.0032 232.5 0.0032 0.0032 258.5 0.0032 0.0032 286.0 0.0032 0.0032 331.0 0.0032 0.0032 396.0 0.0032 0.0032 468.5 0.0032 0.0032 549.5 0.0032 0.0032 639.0 0.0032 0.0032 738.0 0.0032 0.0032 847.5 0.0032 0.0032 968.5 0.0032 0.0032 1102.0 0.0032 0.0032 1249.5 0.0032 0.0032 1412.0 0.0032 0.0032 1590.5 0.0032 0.0032 1787.0 0.0032 0.0032 1944.5 0.0032 0.0032 --1.8 -1.6 117 9.0 0.0026 0.0026 11.0 0.0026 0.0026 13.5 0.0026 0.0026 16.5 0.0026 0.0026 19.5 0.0026 0.0026 22.5 0.0026 0.0026 26.0 0.0026 0.0026 30.0 0.0026 0.0026 34.5 0.0026 0.0026 40.0 0.0026 0.0026 46.0 0.0026 0.0026 52.5 0.0026 0.0026 60.0 0.0026 0.0026 69.0 0.0026 0.0026 79.0 0.0026 0.0026 90.5 0.0026 0.0026 105.5 0.0026 0.0026 123.5 0.0026 0.0026 143.0 0.0026 0.0026 163.5 0.0026 0.0026 185.0 0.0026 0.0026 208.0 0.0026 0.0026 232.5 0.0026 0.0026 258.5 0.0026 0.0026 286.0 0.0026 0.0026 331.0 0.0026 0.0026 396.0 0.0026 0.0026 468.5 0.0026 0.0026 549.5 0.0026 0.0026 639.0 0.0026 0.0026 738.0 0.0026 0.0026 847.5 0.0026 0.0026 968.5 0.0026 0.0026 1102.0 0.0026 0.0026 1249.5 0.0026 0.0026 1412.0 0.0026 0.0026 1590.5 0.0026 0.0026 1787.0 0.0026 0.0026 1944.5 0.0026 0.0026 --1.6 -1.4 117 9.0 0.0020 0.0020 11.0 0.0020 0.0020 13.5 0.0020 0.0020 16.5 0.0020 0.0020 19.5 0.0020 0.0020 22.5 0.0020 0.0020 26.0 0.0020 0.0020 30.0 0.0020 0.0020 34.5 0.0020 0.0020 40.0 0.0020 0.0020 46.0 0.0020 0.0020 52.5 0.0020 0.0020 60.0 0.0020 0.0020 69.0 0.0020 0.0020 79.0 0.0020 0.0020 90.5 0.0020 0.0020 105.5 0.0020 0.0020 123.5 0.0020 0.0020 143.0 0.0020 0.0020 163.5 0.0020 0.0020 185.0 0.0020 0.0020 208.0 0.0020 0.0020 232.5 0.0020 0.0020 258.5 0.0020 0.0020 286.0 0.0020 0.0020 331.0 0.0020 0.0020 396.0 0.0020 0.0020 468.5 0.0020 0.0020 549.5 0.0020 0.0020 639.0 0.0020 0.0020 738.0 0.0020 0.0020 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --1.4 -1.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.2 -1.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.0 -0.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.8 -0.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.6 -0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.4 -0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.2 0.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.0 0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.2 0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.4 0.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.6 0.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.8 1.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.0 1.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.2 1.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.4 1.6 117 9.0 0.0020 0.0020 11.0 0.0020 0.0020 13.5 0.0020 0.0020 16.5 0.0020 0.0020 19.5 0.0020 0.0020 22.5 0.0020 0.0020 26.0 0.0020 0.0020 30.0 0.0020 0.0020 34.5 0.0020 0.0020 40.0 0.0020 0.0020 46.0 0.0020 0.0020 52.5 0.0020 0.0020 60.0 0.0020 0.0020 69.0 0.0020 0.0020 79.0 0.0020 0.0020 90.5 0.0020 0.0020 105.5 0.0020 0.0020 123.5 0.0020 0.0020 143.0 0.0020 0.0020 163.5 0.0020 0.0020 185.0 0.0020 0.0020 208.0 0.0020 0.0020 232.5 0.0020 0.0020 258.5 0.0020 0.0020 286.0 0.0020 0.0020 331.0 0.0020 0.0020 396.0 0.0020 0.0020 468.5 0.0020 0.0020 549.5 0.0020 0.0020 639.0 0.0020 0.0020 738.0 0.0020 0.0020 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -1.6 1.8 117 9.0 0.0026 0.0026 11.0 0.0026 0.0026 13.5 0.0026 0.0026 16.5 0.0026 0.0026 19.5 0.0026 0.0026 22.5 0.0026 0.0026 26.0 0.0026 0.0026 30.0 0.0026 0.0026 34.5 0.0026 0.0026 40.0 0.0026 0.0026 46.0 0.0026 0.0026 52.5 0.0026 0.0026 60.0 0.0026 0.0026 69.0 0.0026 0.0026 79.0 0.0026 0.0026 90.5 0.0026 0.0026 105.5 0.0026 0.0026 123.5 0.0026 0.0026 143.0 0.0026 0.0026 163.5 0.0026 0.0026 185.0 0.0026 0.0026 208.0 0.0026 0.0026 232.5 0.0026 0.0026 258.5 0.0026 0.0026 286.0 0.0026 0.0026 331.0 0.0026 0.0026 396.0 0.0026 0.0026 468.5 0.0026 0.0026 549.5 0.0026 0.0026 639.0 0.0026 0.0026 738.0 0.0026 0.0026 847.5 0.0026 0.0026 968.5 0.0026 0.0026 1102.0 0.0026 0.0026 1249.5 0.0026 0.0026 1412.0 0.0026 0.0026 1590.5 0.0026 0.0026 1787.0 0.0026 0.0026 1944.5 0.0026 0.0026 -1.8 2.0 117 9.0 0.0032 0.0032 11.0 0.0032 0.0032 13.5 0.0032 0.0032 16.5 0.0032 0.0032 19.5 0.0032 0.0032 22.5 0.0032 0.0032 26.0 0.0032 0.0032 30.0 0.0032 0.0032 34.5 0.0032 0.0032 40.0 0.0032 0.0032 46.0 0.0032 0.0032 52.5 0.0032 0.0032 60.0 0.0032 0.0032 69.0 0.0032 0.0032 79.0 0.0032 0.0032 90.5 0.0032 0.0032 105.5 0.0032 0.0032 123.5 0.0032 0.0032 143.0 0.0032 0.0032 163.5 0.0032 0.0032 185.0 0.0032 0.0032 208.0 0.0032 0.0032 232.5 0.0032 0.0032 258.5 0.0032 0.0032 286.0 0.0032 0.0032 331.0 0.0032 0.0032 396.0 0.0032 0.0032 468.5 0.0032 0.0032 549.5 0.0032 0.0032 639.0 0.0032 0.0032 738.0 0.0032 0.0032 847.5 0.0032 0.0032 968.5 0.0032 0.0032 1102.0 0.0032 0.0032 1249.5 0.0032 0.0032 1412.0 0.0032 0.0032 1590.5 0.0032 0.0032 1787.0 0.0032 0.0032 1944.5 0.0032 0.0032 -2.0 2.2 117 9.0 0.0038 0.0038 11.0 0.0038 0.0038 13.5 0.0038 0.0038 16.5 0.0038 0.0038 19.5 0.0038 0.0038 22.5 0.0038 0.0038 26.0 0.0038 0.0038 30.0 0.0038 0.0038 34.5 0.0038 0.0038 40.0 0.0038 0.0038 46.0 0.0038 0.0038 52.5 0.0038 0.0038 60.0 0.0038 0.0038 69.0 0.0038 0.0038 79.0 0.0038 0.0038 90.5 0.0038 0.0038 105.5 0.0038 0.0038 123.5 0.0038 0.0038 143.0 0.0038 0.0038 163.5 0.0038 0.0038 185.0 0.0038 0.0038 208.0 0.0038 0.0038 232.5 0.0038 0.0038 258.5 0.0038 0.0038 286.0 0.0038 0.0038 331.0 0.0038 0.0038 396.0 0.0038 0.0038 468.5 0.0038 0.0038 549.5 0.0038 0.0038 639.0 0.0038 0.0038 738.0 0.0038 0.0038 847.5 0.0038 0.0038 968.5 0.0038 0.0038 1102.0 0.0038 0.0038 1249.5 0.0038 0.0038 1412.0 0.0038 0.0038 1590.5 0.0038 0.0038 1787.0 0.0038 0.0038 1944.5 0.0038 0.0038 -2.2 2.4 117 9.0 0.0044 0.0044 11.0 0.0044 0.0044 13.5 0.0044 0.0044 16.5 0.0044 0.0044 19.5 0.0044 0.0044 22.5 0.0044 0.0044 26.0 0.0044 0.0044 30.0 0.0044 0.0044 34.5 0.0044 0.0044 40.0 0.0044 0.0044 46.0 0.0044 0.0044 52.5 0.0044 0.0044 60.0 0.0044 0.0044 69.0 0.0044 0.0044 79.0 0.0044 0.0044 90.5 0.0044 0.0044 105.5 0.0044 0.0044 123.5 0.0044 0.0044 143.0 0.0044 0.0044 163.5 0.0044 0.0044 185.0 0.0044 0.0044 208.0 0.0044 0.0044 232.5 0.0044 0.0044 258.5 0.0044 0.0044 286.0 0.0044 0.0044 331.0 0.0044 0.0044 396.0 0.0044 0.0044 468.5 0.0044 0.0044 549.5 0.0044 0.0044 639.0 0.0044 0.0044 738.0 0.0044 0.0044 847.5 0.0044 0.0044 968.5 0.0044 0.0044 1102.0 0.0044 0.0044 1249.5 0.0044 0.0044 1412.0 0.0044 0.0044 1590.5 0.0044 0.0044 1787.0 0.0044 0.0044 1944.5 0.0044 0.0044 -2.4 2.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.6 2.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.8 3.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -3.0 3.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -3.5 4.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -4.0 4.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -4.5 5.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -[RelativeJEREC2] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --4.5 -4.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --4.0 -3.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --3.5 -3.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --3.0 -2.8 117 9.0 0.0130 0.0130 11.0 0.0130 0.0130 13.5 0.0130 0.0130 16.5 0.0130 0.0130 19.5 0.0130 0.0130 22.5 0.0130 0.0130 26.0 0.0130 0.0130 30.0 0.0130 0.0130 34.5 0.0130 0.0130 40.0 0.0130 0.0130 46.0 0.0130 0.0130 52.5 0.0130 0.0130 60.0 0.0130 0.0130 69.0 0.0130 0.0130 79.0 0.0130 0.0130 90.5 0.0130 0.0130 105.5 0.0130 0.0130 123.5 0.0130 0.0130 143.0 0.0130 0.0130 163.5 0.0130 0.0130 185.0 0.0130 0.0130 208.0 0.0130 0.0130 232.5 0.0130 0.0130 258.5 0.0130 0.0130 286.0 0.0130 0.0130 331.0 0.0130 0.0130 396.0 0.0130 0.0130 468.5 0.0130 0.0130 549.5 0.0130 0.0130 639.0 0.0130 0.0130 738.0 0.0130 0.0130 847.5 0.0130 0.0130 968.5 0.0130 0.0130 1102.0 0.0130 0.0130 1249.5 0.0130 0.0130 1412.0 0.0130 0.0130 1590.5 0.0130 0.0130 1787.0 0.0130 0.0130 1944.5 0.0130 0.0130 --2.8 -2.6 117 9.0 0.0090 0.0090 11.0 0.0090 0.0090 13.5 0.0090 0.0090 16.5 0.0090 0.0090 19.5 0.0090 0.0090 22.5 0.0090 0.0090 26.0 0.0090 0.0090 30.0 0.0090 0.0090 34.5 0.0090 0.0090 40.0 0.0090 0.0090 46.0 0.0090 0.0090 52.5 0.0090 0.0090 60.0 0.0090 0.0090 69.0 0.0090 0.0090 79.0 0.0090 0.0090 90.5 0.0090 0.0090 105.5 0.0090 0.0090 123.5 0.0090 0.0090 143.0 0.0090 0.0090 163.5 0.0090 0.0090 185.0 0.0090 0.0090 208.0 0.0090 0.0090 232.5 0.0090 0.0090 258.5 0.0090 0.0090 286.0 0.0090 0.0090 331.0 0.0090 0.0090 396.0 0.0090 0.0090 468.5 0.0090 0.0090 549.5 0.0090 0.0090 639.0 0.0090 0.0090 738.0 0.0090 0.0090 847.5 0.0090 0.0090 968.5 0.0090 0.0090 1102.0 0.0090 0.0090 1249.5 0.0090 0.0090 1412.0 0.0090 0.0090 1590.5 0.0090 0.0090 1787.0 0.0090 0.0090 1944.5 0.0090 0.0090 --2.6 -2.4 117 9.0 0.0050 0.0050 11.0 0.0050 0.0050 13.5 0.0050 0.0050 16.5 0.0050 0.0050 19.5 0.0050 0.0050 22.5 0.0050 0.0050 26.0 0.0050 0.0050 30.0 0.0050 0.0050 34.5 0.0050 0.0050 40.0 0.0050 0.0050 46.0 0.0050 0.0050 52.5 0.0050 0.0050 60.0 0.0050 0.0050 69.0 0.0050 0.0050 79.0 0.0050 0.0050 90.5 0.0050 0.0050 105.5 0.0050 0.0050 123.5 0.0050 0.0050 143.0 0.0050 0.0050 163.5 0.0050 0.0050 185.0 0.0050 0.0050 208.0 0.0050 0.0050 232.5 0.0050 0.0050 258.5 0.0050 0.0050 286.0 0.0050 0.0050 331.0 0.0050 0.0050 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0050 0.0050 639.0 0.0050 0.0050 738.0 0.0050 0.0050 847.5 0.0050 0.0050 968.5 0.0050 0.0050 1102.0 0.0050 0.0050 1249.5 0.0050 0.0050 1412.0 0.0050 0.0050 1590.5 0.0050 0.0050 1787.0 0.0050 0.0050 1944.5 0.0050 0.0050 --2.4 -2.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.2 -2.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.0 -1.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.8 -1.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.6 -1.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.4 -1.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.2 -1.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.0 -0.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.8 -0.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.6 -0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.4 -0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.2 0.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.0 0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.2 0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.4 0.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.6 0.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.8 1.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.0 1.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.2 1.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.4 1.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.6 1.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.8 2.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.0 2.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.2 2.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.4 2.6 117 9.0 0.0050 0.0050 11.0 0.0050 0.0050 13.5 0.0050 0.0050 16.5 0.0050 0.0050 19.5 0.0050 0.0050 22.5 0.0050 0.0050 26.0 0.0050 0.0050 30.0 0.0050 0.0050 34.5 0.0050 0.0050 40.0 0.0050 0.0050 46.0 0.0050 0.0050 52.5 0.0050 0.0050 60.0 0.0050 0.0050 69.0 0.0050 0.0050 79.0 0.0050 0.0050 90.5 0.0050 0.0050 105.5 0.0050 0.0050 123.5 0.0050 0.0050 143.0 0.0050 0.0050 163.5 0.0050 0.0050 185.0 0.0050 0.0050 208.0 0.0050 0.0050 232.5 0.0050 0.0050 258.5 0.0050 0.0050 286.0 0.0050 0.0050 331.0 0.0050 0.0050 396.0 0.0050 0.0050 468.5 0.0050 0.0050 549.5 0.0050 0.0050 639.0 0.0050 0.0050 738.0 0.0050 0.0050 847.5 0.0050 0.0050 968.5 0.0050 0.0050 1102.0 0.0050 0.0050 1249.5 0.0050 0.0050 1412.0 0.0050 0.0050 1590.5 0.0050 0.0050 1787.0 0.0050 0.0050 1944.5 0.0050 0.0050 -2.6 2.8 117 9.0 0.0090 0.0090 11.0 0.0090 0.0090 13.5 0.0090 0.0090 16.5 0.0090 0.0090 19.5 0.0090 0.0090 22.5 0.0090 0.0090 26.0 0.0090 0.0090 30.0 0.0090 0.0090 34.5 0.0090 0.0090 40.0 0.0090 0.0090 46.0 0.0090 0.0090 52.5 0.0090 0.0090 60.0 0.0090 0.0090 69.0 0.0090 0.0090 79.0 0.0090 0.0090 90.5 0.0090 0.0090 105.5 0.0090 0.0090 123.5 0.0090 0.0090 143.0 0.0090 0.0090 163.5 0.0090 0.0090 185.0 0.0090 0.0090 208.0 0.0090 0.0090 232.5 0.0090 0.0090 258.5 0.0090 0.0090 286.0 0.0090 0.0090 331.0 0.0090 0.0090 396.0 0.0090 0.0090 468.5 0.0090 0.0090 549.5 0.0090 0.0090 639.0 0.0090 0.0090 738.0 0.0090 0.0090 847.5 0.0090 0.0090 968.5 0.0090 0.0090 1102.0 0.0090 0.0090 1249.5 0.0090 0.0090 1412.0 0.0090 0.0090 1590.5 0.0090 0.0090 1787.0 0.0090 0.0090 1944.5 0.0090 0.0090 -2.8 3.0 117 9.0 0.0130 0.0130 11.0 0.0130 0.0130 13.5 0.0130 0.0130 16.5 0.0130 0.0130 19.5 0.0130 0.0130 22.5 0.0130 0.0130 26.0 0.0130 0.0130 30.0 0.0130 0.0130 34.5 0.0130 0.0130 40.0 0.0130 0.0130 46.0 0.0130 0.0130 52.5 0.0130 0.0130 60.0 0.0130 0.0130 69.0 0.0130 0.0130 79.0 0.0130 0.0130 90.5 0.0130 0.0130 105.5 0.0130 0.0130 123.5 0.0130 0.0130 143.0 0.0130 0.0130 163.5 0.0130 0.0130 185.0 0.0130 0.0130 208.0 0.0130 0.0130 232.5 0.0130 0.0130 258.5 0.0130 0.0130 286.0 0.0130 0.0130 331.0 0.0130 0.0130 396.0 0.0130 0.0130 468.5 0.0130 0.0130 549.5 0.0130 0.0130 639.0 0.0130 0.0130 738.0 0.0130 0.0130 847.5 0.0130 0.0130 968.5 0.0130 0.0130 1102.0 0.0130 0.0130 1249.5 0.0130 0.0130 1412.0 0.0130 0.0130 1590.5 0.0130 0.0130 1787.0 0.0130 0.0130 1944.5 0.0130 0.0130 -3.0 3.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -3.5 4.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -4.0 4.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -4.5 5.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -[RelativeJERHF] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1944.5 0.0150 0.0150 --4.5 -4.0 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1944.5 0.0150 0.0150 --4.0 -3.5 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1944.5 0.0150 0.0150 --3.5 -3.0 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1944.5 0.0150 0.0150 --3.0 -2.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.8 -2.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.6 -2.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.4 -2.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.2 -2.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.0 -1.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.8 -1.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.6 -1.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.4 -1.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.2 -1.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.0 -0.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.8 -0.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.6 -0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.4 -0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.2 0.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.0 0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.2 0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.4 0.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.6 0.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.8 1.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.0 1.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.2 1.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.4 1.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.6 1.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.8 2.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.0 2.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.2 2.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.4 2.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.6 2.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.8 3.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -3.0 3.5 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1944.5 0.0150 0.0150 -3.5 4.0 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1944.5 0.0150 0.0150 -4.0 4.5 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1944.5 0.0150 0.0150 -4.5 5.2 117 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1944.5 0.0150 0.0150 -[RelativeFSR] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0179 0.0179 11.0 0.0179 0.0179 13.5 0.0179 0.0179 16.5 0.0179 0.0179 19.5 0.0179 0.0179 22.5 0.0179 0.0179 26.0 0.0179 0.0179 30.0 0.0179 0.0179 34.5 0.0179 0.0179 40.0 0.0179 0.0179 46.0 0.0179 0.0179 52.5 0.0179 0.0179 60.0 0.0179 0.0179 69.0 0.0179 0.0179 79.0 0.0179 0.0179 90.5 0.0179 0.0179 105.5 0.0179 0.0179 123.5 0.0179 0.0179 143.0 0.0179 0.0179 163.5 0.0179 0.0179 185.0 0.0179 0.0179 208.0 0.0179 0.0179 232.5 0.0179 0.0179 258.5 0.0179 0.0179 286.0 0.0179 0.0179 331.0 0.0179 0.0179 396.0 0.0179 0.0179 468.5 0.0179 0.0179 549.5 0.0179 0.0179 639.0 0.0179 0.0179 738.0 0.0179 0.0179 847.5 0.0179 0.0179 968.5 0.0179 0.0179 1102.0 0.0179 0.0179 1249.5 0.0179 0.0179 1412.0 0.0179 0.0179 1590.5 0.0179 0.0179 1787.0 0.0179 0.0179 1944.5 0.0179 0.0179 --4.5 -4.0 117 9.0 0.0179 0.0179 11.0 0.0179 0.0179 13.5 0.0179 0.0179 16.5 0.0179 0.0179 19.5 0.0179 0.0179 22.5 0.0179 0.0179 26.0 0.0179 0.0179 30.0 0.0179 0.0179 34.5 0.0179 0.0179 40.0 0.0179 0.0179 46.0 0.0179 0.0179 52.5 0.0179 0.0179 60.0 0.0179 0.0179 69.0 0.0179 0.0179 79.0 0.0179 0.0179 90.5 0.0179 0.0179 105.5 0.0179 0.0179 123.5 0.0179 0.0179 143.0 0.0179 0.0179 163.5 0.0179 0.0179 185.0 0.0179 0.0179 208.0 0.0179 0.0179 232.5 0.0179 0.0179 258.5 0.0179 0.0179 286.0 0.0179 0.0179 331.0 0.0179 0.0179 396.0 0.0179 0.0179 468.5 0.0179 0.0179 549.5 0.0179 0.0179 639.0 0.0179 0.0179 738.0 0.0179 0.0179 847.5 0.0179 0.0179 968.5 0.0179 0.0179 1102.0 0.0179 0.0179 1249.5 0.0179 0.0179 1412.0 0.0179 0.0179 1590.5 0.0179 0.0179 1787.0 0.0179 0.0179 1944.5 0.0179 0.0179 --4.0 -3.5 117 9.0 0.0179 0.0179 11.0 0.0179 0.0179 13.5 0.0179 0.0179 16.5 0.0179 0.0179 19.5 0.0179 0.0179 22.5 0.0179 0.0179 26.0 0.0179 0.0179 30.0 0.0179 0.0179 34.5 0.0179 0.0179 40.0 0.0179 0.0179 46.0 0.0179 0.0179 52.5 0.0179 0.0179 60.0 0.0179 0.0179 69.0 0.0179 0.0179 79.0 0.0179 0.0179 90.5 0.0179 0.0179 105.5 0.0179 0.0179 123.5 0.0179 0.0179 143.0 0.0179 0.0179 163.5 0.0179 0.0179 185.0 0.0179 0.0179 208.0 0.0179 0.0179 232.5 0.0179 0.0179 258.5 0.0179 0.0179 286.0 0.0179 0.0179 331.0 0.0179 0.0179 396.0 0.0179 0.0179 468.5 0.0179 0.0179 549.5 0.0179 0.0179 639.0 0.0179 0.0179 738.0 0.0179 0.0179 847.5 0.0179 0.0179 968.5 0.0179 0.0179 1102.0 0.0179 0.0179 1249.5 0.0179 0.0179 1412.0 0.0179 0.0179 1590.5 0.0179 0.0179 1787.0 0.0179 0.0179 1944.5 0.0179 0.0179 --3.5 -3.0 117 9.0 0.0063 0.0063 11.0 0.0063 0.0063 13.5 0.0063 0.0063 16.5 0.0063 0.0063 19.5 0.0063 0.0063 22.5 0.0063 0.0063 26.0 0.0063 0.0063 30.0 0.0063 0.0063 34.5 0.0063 0.0063 40.0 0.0063 0.0063 46.0 0.0063 0.0063 52.5 0.0063 0.0063 60.0 0.0063 0.0063 69.0 0.0063 0.0063 79.0 0.0063 0.0063 90.5 0.0063 0.0063 105.5 0.0063 0.0063 123.5 0.0063 0.0063 143.0 0.0063 0.0063 163.5 0.0063 0.0063 185.0 0.0063 0.0063 208.0 0.0063 0.0063 232.5 0.0063 0.0063 258.5 0.0063 0.0063 286.0 0.0063 0.0063 331.0 0.0063 0.0063 396.0 0.0063 0.0063 468.5 0.0063 0.0063 549.5 0.0063 0.0063 639.0 0.0063 0.0063 738.0 0.0063 0.0063 847.5 0.0063 0.0063 968.5 0.0063 0.0063 1102.0 0.0063 0.0063 1249.5 0.0063 0.0063 1412.0 0.0063 0.0063 1590.5 0.0063 0.0063 1787.0 0.0063 0.0063 1944.5 0.0063 0.0063 --3.0 -2.8 117 9.0 0.0041 0.0041 11.0 0.0041 0.0041 13.5 0.0041 0.0041 16.5 0.0041 0.0041 19.5 0.0041 0.0041 22.5 0.0041 0.0041 26.0 0.0041 0.0041 30.0 0.0041 0.0041 34.5 0.0041 0.0041 40.0 0.0041 0.0041 46.0 0.0041 0.0041 52.5 0.0041 0.0041 60.0 0.0041 0.0041 69.0 0.0041 0.0041 79.0 0.0041 0.0041 90.5 0.0041 0.0041 105.5 0.0041 0.0041 123.5 0.0041 0.0041 143.0 0.0041 0.0041 163.5 0.0041 0.0041 185.0 0.0041 0.0041 208.0 0.0041 0.0041 232.5 0.0041 0.0041 258.5 0.0041 0.0041 286.0 0.0041 0.0041 331.0 0.0041 0.0041 396.0 0.0041 0.0041 468.5 0.0041 0.0041 549.5 0.0041 0.0041 639.0 0.0041 0.0041 738.0 0.0041 0.0041 847.5 0.0041 0.0041 968.5 0.0041 0.0041 1102.0 0.0041 0.0041 1249.5 0.0041 0.0041 1412.0 0.0041 0.0041 1590.5 0.0041 0.0041 1787.0 0.0041 0.0041 1944.5 0.0041 0.0041 --2.8 -2.6 117 9.0 0.0032 0.0032 11.0 0.0032 0.0032 13.5 0.0032 0.0032 16.5 0.0032 0.0032 19.5 0.0032 0.0032 22.5 0.0032 0.0032 26.0 0.0032 0.0032 30.0 0.0032 0.0032 34.5 0.0032 0.0032 40.0 0.0032 0.0032 46.0 0.0032 0.0032 52.5 0.0032 0.0032 60.0 0.0032 0.0032 69.0 0.0032 0.0032 79.0 0.0032 0.0032 90.5 0.0032 0.0032 105.5 0.0032 0.0032 123.5 0.0032 0.0032 143.0 0.0032 0.0032 163.5 0.0032 0.0032 185.0 0.0032 0.0032 208.0 0.0032 0.0032 232.5 0.0032 0.0032 258.5 0.0032 0.0032 286.0 0.0032 0.0032 331.0 0.0032 0.0032 396.0 0.0032 0.0032 468.5 0.0032 0.0032 549.5 0.0032 0.0032 639.0 0.0032 0.0032 738.0 0.0032 0.0032 847.5 0.0032 0.0032 968.5 0.0032 0.0032 1102.0 0.0032 0.0032 1249.5 0.0032 0.0032 1412.0 0.0032 0.0032 1590.5 0.0032 0.0032 1787.0 0.0032 0.0032 1944.5 0.0032 0.0032 --2.6 -2.4 117 9.0 0.0026 0.0026 11.0 0.0026 0.0026 13.5 0.0026 0.0026 16.5 0.0026 0.0026 19.5 0.0026 0.0026 22.5 0.0026 0.0026 26.0 0.0026 0.0026 30.0 0.0026 0.0026 34.5 0.0026 0.0026 40.0 0.0026 0.0026 46.0 0.0026 0.0026 52.5 0.0026 0.0026 60.0 0.0026 0.0026 69.0 0.0026 0.0026 79.0 0.0026 0.0026 90.5 0.0026 0.0026 105.5 0.0026 0.0026 123.5 0.0026 0.0026 143.0 0.0026 0.0026 163.5 0.0026 0.0026 185.0 0.0026 0.0026 208.0 0.0026 0.0026 232.5 0.0026 0.0026 258.5 0.0026 0.0026 286.0 0.0026 0.0026 331.0 0.0026 0.0026 396.0 0.0026 0.0026 468.5 0.0026 0.0026 549.5 0.0026 0.0026 639.0 0.0026 0.0026 738.0 0.0026 0.0026 847.5 0.0026 0.0026 968.5 0.0026 0.0026 1102.0 0.0026 0.0026 1249.5 0.0026 0.0026 1412.0 0.0026 0.0026 1590.5 0.0026 0.0026 1787.0 0.0026 0.0026 1944.5 0.0026 0.0026 --2.4 -2.2 117 9.0 0.0020 0.0020 11.0 0.0020 0.0020 13.5 0.0020 0.0020 16.5 0.0020 0.0020 19.5 0.0020 0.0020 22.5 0.0020 0.0020 26.0 0.0020 0.0020 30.0 0.0020 0.0020 34.5 0.0020 0.0020 40.0 0.0020 0.0020 46.0 0.0020 0.0020 52.5 0.0020 0.0020 60.0 0.0020 0.0020 69.0 0.0020 0.0020 79.0 0.0020 0.0020 90.5 0.0020 0.0020 105.5 0.0020 0.0020 123.5 0.0020 0.0020 143.0 0.0020 0.0020 163.5 0.0020 0.0020 185.0 0.0020 0.0020 208.0 0.0020 0.0020 232.5 0.0020 0.0020 258.5 0.0020 0.0020 286.0 0.0020 0.0020 331.0 0.0020 0.0020 396.0 0.0020 0.0020 468.5 0.0020 0.0020 549.5 0.0020 0.0020 639.0 0.0020 0.0020 738.0 0.0020 0.0020 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 --2.2 -2.0 117 9.0 0.0016 0.0016 11.0 0.0016 0.0016 13.5 0.0016 0.0016 16.5 0.0016 0.0016 19.5 0.0016 0.0016 22.5 0.0016 0.0016 26.0 0.0016 0.0016 30.0 0.0016 0.0016 34.5 0.0016 0.0016 40.0 0.0016 0.0016 46.0 0.0016 0.0016 52.5 0.0016 0.0016 60.0 0.0016 0.0016 69.0 0.0016 0.0016 79.0 0.0016 0.0016 90.5 0.0016 0.0016 105.5 0.0016 0.0016 123.5 0.0016 0.0016 143.0 0.0016 0.0016 163.5 0.0016 0.0016 185.0 0.0016 0.0016 208.0 0.0016 0.0016 232.5 0.0016 0.0016 258.5 0.0016 0.0016 286.0 0.0016 0.0016 331.0 0.0016 0.0016 396.0 0.0016 0.0016 468.5 0.0016 0.0016 549.5 0.0016 0.0016 639.0 0.0016 0.0016 738.0 0.0016 0.0016 847.5 0.0016 0.0016 968.5 0.0016 0.0016 1102.0 0.0016 0.0016 1249.5 0.0016 0.0016 1412.0 0.0016 0.0016 1590.5 0.0016 0.0016 1787.0 0.0016 0.0016 1944.5 0.0016 0.0016 --2.0 -1.8 117 9.0 0.0012 0.0012 11.0 0.0012 0.0012 13.5 0.0012 0.0012 16.5 0.0012 0.0012 19.5 0.0012 0.0012 22.5 0.0012 0.0012 26.0 0.0012 0.0012 30.0 0.0012 0.0012 34.5 0.0012 0.0012 40.0 0.0012 0.0012 46.0 0.0012 0.0012 52.5 0.0012 0.0012 60.0 0.0012 0.0012 69.0 0.0012 0.0012 79.0 0.0012 0.0012 90.5 0.0012 0.0012 105.5 0.0012 0.0012 123.5 0.0012 0.0012 143.0 0.0012 0.0012 163.5 0.0012 0.0012 185.0 0.0012 0.0012 208.0 0.0012 0.0012 232.5 0.0012 0.0012 258.5 0.0012 0.0012 286.0 0.0012 0.0012 331.0 0.0012 0.0012 396.0 0.0012 0.0012 468.5 0.0012 0.0012 549.5 0.0012 0.0012 639.0 0.0012 0.0012 738.0 0.0012 0.0012 847.5 0.0012 0.0012 968.5 0.0012 0.0012 1102.0 0.0012 0.0012 1249.5 0.0012 0.0012 1412.0 0.0012 0.0012 1590.5 0.0012 0.0012 1787.0 0.0012 0.0012 1944.5 0.0012 0.0012 --1.8 -1.6 117 9.0 0.0009 0.0009 11.0 0.0009 0.0009 13.5 0.0009 0.0009 16.5 0.0009 0.0009 19.5 0.0009 0.0009 22.5 0.0009 0.0009 26.0 0.0009 0.0009 30.0 0.0009 0.0009 34.5 0.0009 0.0009 40.0 0.0009 0.0009 46.0 0.0009 0.0009 52.5 0.0009 0.0009 60.0 0.0009 0.0009 69.0 0.0009 0.0009 79.0 0.0009 0.0009 90.5 0.0009 0.0009 105.5 0.0009 0.0009 123.5 0.0009 0.0009 143.0 0.0009 0.0009 163.5 0.0009 0.0009 185.0 0.0009 0.0009 208.0 0.0009 0.0009 232.5 0.0009 0.0009 258.5 0.0009 0.0009 286.0 0.0009 0.0009 331.0 0.0009 0.0009 396.0 0.0009 0.0009 468.5 0.0009 0.0009 549.5 0.0009 0.0009 639.0 0.0009 0.0009 738.0 0.0009 0.0009 847.5 0.0009 0.0009 968.5 0.0009 0.0009 1102.0 0.0009 0.0009 1249.5 0.0009 0.0009 1412.0 0.0009 0.0009 1590.5 0.0009 0.0009 1787.0 0.0009 0.0009 1944.5 0.0009 0.0009 --1.6 -1.4 117 9.0 0.0007 0.0007 11.0 0.0007 0.0007 13.5 0.0007 0.0007 16.5 0.0007 0.0007 19.5 0.0007 0.0007 22.5 0.0007 0.0007 26.0 0.0007 0.0007 30.0 0.0007 0.0007 34.5 0.0007 0.0007 40.0 0.0007 0.0007 46.0 0.0007 0.0007 52.5 0.0007 0.0007 60.0 0.0007 0.0007 69.0 0.0007 0.0007 79.0 0.0007 0.0007 90.5 0.0007 0.0007 105.5 0.0007 0.0007 123.5 0.0007 0.0007 143.0 0.0007 0.0007 163.5 0.0007 0.0007 185.0 0.0007 0.0007 208.0 0.0007 0.0007 232.5 0.0007 0.0007 258.5 0.0007 0.0007 286.0 0.0007 0.0007 331.0 0.0007 0.0007 396.0 0.0007 0.0007 468.5 0.0007 0.0007 549.5 0.0007 0.0007 639.0 0.0007 0.0007 738.0 0.0007 0.0007 847.5 0.0007 0.0007 968.5 0.0007 0.0007 1102.0 0.0007 0.0007 1249.5 0.0007 0.0007 1412.0 0.0007 0.0007 1590.5 0.0007 0.0007 1787.0 0.0007 0.0007 1944.5 0.0007 0.0007 --1.4 -1.2 117 9.0 0.0005 0.0005 11.0 0.0005 0.0005 13.5 0.0005 0.0005 16.5 0.0005 0.0005 19.5 0.0005 0.0005 22.5 0.0005 0.0005 26.0 0.0005 0.0005 30.0 0.0005 0.0005 34.5 0.0005 0.0005 40.0 0.0005 0.0005 46.0 0.0005 0.0005 52.5 0.0005 0.0005 60.0 0.0005 0.0005 69.0 0.0005 0.0005 79.0 0.0005 0.0005 90.5 0.0005 0.0005 105.5 0.0005 0.0005 123.5 0.0005 0.0005 143.0 0.0005 0.0005 163.5 0.0005 0.0005 185.0 0.0005 0.0005 208.0 0.0005 0.0005 232.5 0.0005 0.0005 258.5 0.0005 0.0005 286.0 0.0005 0.0005 331.0 0.0005 0.0005 396.0 0.0005 0.0005 468.5 0.0005 0.0005 549.5 0.0005 0.0005 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1944.5 0.0005 0.0005 --1.2 -1.0 117 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --1.0 -0.8 117 9.0 0.0002 0.0002 11.0 0.0002 0.0002 13.5 0.0002 0.0002 16.5 0.0002 0.0002 19.5 0.0002 0.0002 22.5 0.0002 0.0002 26.0 0.0002 0.0002 30.0 0.0002 0.0002 34.5 0.0002 0.0002 40.0 0.0002 0.0002 46.0 0.0002 0.0002 52.5 0.0002 0.0002 60.0 0.0002 0.0002 69.0 0.0002 0.0002 79.0 0.0002 0.0002 90.5 0.0002 0.0002 105.5 0.0002 0.0002 123.5 0.0002 0.0002 143.0 0.0002 0.0002 163.5 0.0002 0.0002 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0002 0.0002 258.5 0.0002 0.0002 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0002 0.0002 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0002 0.0002 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 --0.8 -0.6 117 9.0 0.0001 0.0001 11.0 0.0001 0.0001 13.5 0.0001 0.0001 16.5 0.0001 0.0001 19.5 0.0001 0.0001 22.5 0.0001 0.0001 26.0 0.0001 0.0001 30.0 0.0001 0.0001 34.5 0.0001 0.0001 40.0 0.0001 0.0001 46.0 0.0001 0.0001 52.5 0.0001 0.0001 60.0 0.0001 0.0001 69.0 0.0001 0.0001 79.0 0.0001 0.0001 90.5 0.0001 0.0001 105.5 0.0001 0.0001 123.5 0.0001 0.0001 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --0.6 -0.4 117 9.0 0.0001 0.0001 11.0 0.0001 0.0001 13.5 0.0001 0.0001 16.5 0.0001 0.0001 19.5 0.0001 0.0001 22.5 0.0001 0.0001 26.0 0.0001 0.0001 30.0 0.0001 0.0001 34.5 0.0001 0.0001 40.0 0.0001 0.0001 46.0 0.0001 0.0001 52.5 0.0001 0.0001 60.0 0.0001 0.0001 69.0 0.0001 0.0001 79.0 0.0001 0.0001 90.5 0.0001 0.0001 105.5 0.0001 0.0001 123.5 0.0001 0.0001 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --0.4 -0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.2 0.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.0 0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.2 0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.4 0.6 117 9.0 0.0001 0.0001 11.0 0.0001 0.0001 13.5 0.0001 0.0001 16.5 0.0001 0.0001 19.5 0.0001 0.0001 22.5 0.0001 0.0001 26.0 0.0001 0.0001 30.0 0.0001 0.0001 34.5 0.0001 0.0001 40.0 0.0001 0.0001 46.0 0.0001 0.0001 52.5 0.0001 0.0001 60.0 0.0001 0.0001 69.0 0.0001 0.0001 79.0 0.0001 0.0001 90.5 0.0001 0.0001 105.5 0.0001 0.0001 123.5 0.0001 0.0001 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -0.6 0.8 117 9.0 0.0001 0.0001 11.0 0.0001 0.0001 13.5 0.0001 0.0001 16.5 0.0001 0.0001 19.5 0.0001 0.0001 22.5 0.0001 0.0001 26.0 0.0001 0.0001 30.0 0.0001 0.0001 34.5 0.0001 0.0001 40.0 0.0001 0.0001 46.0 0.0001 0.0001 52.5 0.0001 0.0001 60.0 0.0001 0.0001 69.0 0.0001 0.0001 79.0 0.0001 0.0001 90.5 0.0001 0.0001 105.5 0.0001 0.0001 123.5 0.0001 0.0001 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -0.8 1.0 117 9.0 0.0002 0.0002 11.0 0.0002 0.0002 13.5 0.0002 0.0002 16.5 0.0002 0.0002 19.5 0.0002 0.0002 22.5 0.0002 0.0002 26.0 0.0002 0.0002 30.0 0.0002 0.0002 34.5 0.0002 0.0002 40.0 0.0002 0.0002 46.0 0.0002 0.0002 52.5 0.0002 0.0002 60.0 0.0002 0.0002 69.0 0.0002 0.0002 79.0 0.0002 0.0002 90.5 0.0002 0.0002 105.5 0.0002 0.0002 123.5 0.0002 0.0002 143.0 0.0002 0.0002 163.5 0.0002 0.0002 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0002 0.0002 258.5 0.0002 0.0002 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0002 0.0002 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0002 0.0002 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 -1.0 1.2 117 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -1.2 1.4 117 9.0 0.0005 0.0005 11.0 0.0005 0.0005 13.5 0.0005 0.0005 16.5 0.0005 0.0005 19.5 0.0005 0.0005 22.5 0.0005 0.0005 26.0 0.0005 0.0005 30.0 0.0005 0.0005 34.5 0.0005 0.0005 40.0 0.0005 0.0005 46.0 0.0005 0.0005 52.5 0.0005 0.0005 60.0 0.0005 0.0005 69.0 0.0005 0.0005 79.0 0.0005 0.0005 90.5 0.0005 0.0005 105.5 0.0005 0.0005 123.5 0.0005 0.0005 143.0 0.0005 0.0005 163.5 0.0005 0.0005 185.0 0.0005 0.0005 208.0 0.0005 0.0005 232.5 0.0005 0.0005 258.5 0.0005 0.0005 286.0 0.0005 0.0005 331.0 0.0005 0.0005 396.0 0.0005 0.0005 468.5 0.0005 0.0005 549.5 0.0005 0.0005 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1944.5 0.0005 0.0005 -1.4 1.6 117 9.0 0.0007 0.0007 11.0 0.0007 0.0007 13.5 0.0007 0.0007 16.5 0.0007 0.0007 19.5 0.0007 0.0007 22.5 0.0007 0.0007 26.0 0.0007 0.0007 30.0 0.0007 0.0007 34.5 0.0007 0.0007 40.0 0.0007 0.0007 46.0 0.0007 0.0007 52.5 0.0007 0.0007 60.0 0.0007 0.0007 69.0 0.0007 0.0007 79.0 0.0007 0.0007 90.5 0.0007 0.0007 105.5 0.0007 0.0007 123.5 0.0007 0.0007 143.0 0.0007 0.0007 163.5 0.0007 0.0007 185.0 0.0007 0.0007 208.0 0.0007 0.0007 232.5 0.0007 0.0007 258.5 0.0007 0.0007 286.0 0.0007 0.0007 331.0 0.0007 0.0007 396.0 0.0007 0.0007 468.5 0.0007 0.0007 549.5 0.0007 0.0007 639.0 0.0007 0.0007 738.0 0.0007 0.0007 847.5 0.0007 0.0007 968.5 0.0007 0.0007 1102.0 0.0007 0.0007 1249.5 0.0007 0.0007 1412.0 0.0007 0.0007 1590.5 0.0007 0.0007 1787.0 0.0007 0.0007 1944.5 0.0007 0.0007 -1.6 1.8 117 9.0 0.0009 0.0009 11.0 0.0009 0.0009 13.5 0.0009 0.0009 16.5 0.0009 0.0009 19.5 0.0009 0.0009 22.5 0.0009 0.0009 26.0 0.0009 0.0009 30.0 0.0009 0.0009 34.5 0.0009 0.0009 40.0 0.0009 0.0009 46.0 0.0009 0.0009 52.5 0.0009 0.0009 60.0 0.0009 0.0009 69.0 0.0009 0.0009 79.0 0.0009 0.0009 90.5 0.0009 0.0009 105.5 0.0009 0.0009 123.5 0.0009 0.0009 143.0 0.0009 0.0009 163.5 0.0009 0.0009 185.0 0.0009 0.0009 208.0 0.0009 0.0009 232.5 0.0009 0.0009 258.5 0.0009 0.0009 286.0 0.0009 0.0009 331.0 0.0009 0.0009 396.0 0.0009 0.0009 468.5 0.0009 0.0009 549.5 0.0009 0.0009 639.0 0.0009 0.0009 738.0 0.0009 0.0009 847.5 0.0009 0.0009 968.5 0.0009 0.0009 1102.0 0.0009 0.0009 1249.5 0.0009 0.0009 1412.0 0.0009 0.0009 1590.5 0.0009 0.0009 1787.0 0.0009 0.0009 1944.5 0.0009 0.0009 -1.8 2.0 117 9.0 0.0012 0.0012 11.0 0.0012 0.0012 13.5 0.0012 0.0012 16.5 0.0012 0.0012 19.5 0.0012 0.0012 22.5 0.0012 0.0012 26.0 0.0012 0.0012 30.0 0.0012 0.0012 34.5 0.0012 0.0012 40.0 0.0012 0.0012 46.0 0.0012 0.0012 52.5 0.0012 0.0012 60.0 0.0012 0.0012 69.0 0.0012 0.0012 79.0 0.0012 0.0012 90.5 0.0012 0.0012 105.5 0.0012 0.0012 123.5 0.0012 0.0012 143.0 0.0012 0.0012 163.5 0.0012 0.0012 185.0 0.0012 0.0012 208.0 0.0012 0.0012 232.5 0.0012 0.0012 258.5 0.0012 0.0012 286.0 0.0012 0.0012 331.0 0.0012 0.0012 396.0 0.0012 0.0012 468.5 0.0012 0.0012 549.5 0.0012 0.0012 639.0 0.0012 0.0012 738.0 0.0012 0.0012 847.5 0.0012 0.0012 968.5 0.0012 0.0012 1102.0 0.0012 0.0012 1249.5 0.0012 0.0012 1412.0 0.0012 0.0012 1590.5 0.0012 0.0012 1787.0 0.0012 0.0012 1944.5 0.0012 0.0012 -2.0 2.2 117 9.0 0.0016 0.0016 11.0 0.0016 0.0016 13.5 0.0016 0.0016 16.5 0.0016 0.0016 19.5 0.0016 0.0016 22.5 0.0016 0.0016 26.0 0.0016 0.0016 30.0 0.0016 0.0016 34.5 0.0016 0.0016 40.0 0.0016 0.0016 46.0 0.0016 0.0016 52.5 0.0016 0.0016 60.0 0.0016 0.0016 69.0 0.0016 0.0016 79.0 0.0016 0.0016 90.5 0.0016 0.0016 105.5 0.0016 0.0016 123.5 0.0016 0.0016 143.0 0.0016 0.0016 163.5 0.0016 0.0016 185.0 0.0016 0.0016 208.0 0.0016 0.0016 232.5 0.0016 0.0016 258.5 0.0016 0.0016 286.0 0.0016 0.0016 331.0 0.0016 0.0016 396.0 0.0016 0.0016 468.5 0.0016 0.0016 549.5 0.0016 0.0016 639.0 0.0016 0.0016 738.0 0.0016 0.0016 847.5 0.0016 0.0016 968.5 0.0016 0.0016 1102.0 0.0016 0.0016 1249.5 0.0016 0.0016 1412.0 0.0016 0.0016 1590.5 0.0016 0.0016 1787.0 0.0016 0.0016 1944.5 0.0016 0.0016 -2.2 2.4 117 9.0 0.0020 0.0020 11.0 0.0020 0.0020 13.5 0.0020 0.0020 16.5 0.0020 0.0020 19.5 0.0020 0.0020 22.5 0.0020 0.0020 26.0 0.0020 0.0020 30.0 0.0020 0.0020 34.5 0.0020 0.0020 40.0 0.0020 0.0020 46.0 0.0020 0.0020 52.5 0.0020 0.0020 60.0 0.0020 0.0020 69.0 0.0020 0.0020 79.0 0.0020 0.0020 90.5 0.0020 0.0020 105.5 0.0020 0.0020 123.5 0.0020 0.0020 143.0 0.0020 0.0020 163.5 0.0020 0.0020 185.0 0.0020 0.0020 208.0 0.0020 0.0020 232.5 0.0020 0.0020 258.5 0.0020 0.0020 286.0 0.0020 0.0020 331.0 0.0020 0.0020 396.0 0.0020 0.0020 468.5 0.0020 0.0020 549.5 0.0020 0.0020 639.0 0.0020 0.0020 738.0 0.0020 0.0020 847.5 0.0020 0.0020 968.5 0.0020 0.0020 1102.0 0.0020 0.0020 1249.5 0.0020 0.0020 1412.0 0.0020 0.0020 1590.5 0.0020 0.0020 1787.0 0.0020 0.0020 1944.5 0.0020 0.0020 -2.4 2.6 117 9.0 0.0026 0.0026 11.0 0.0026 0.0026 13.5 0.0026 0.0026 16.5 0.0026 0.0026 19.5 0.0026 0.0026 22.5 0.0026 0.0026 26.0 0.0026 0.0026 30.0 0.0026 0.0026 34.5 0.0026 0.0026 40.0 0.0026 0.0026 46.0 0.0026 0.0026 52.5 0.0026 0.0026 60.0 0.0026 0.0026 69.0 0.0026 0.0026 79.0 0.0026 0.0026 90.5 0.0026 0.0026 105.5 0.0026 0.0026 123.5 0.0026 0.0026 143.0 0.0026 0.0026 163.5 0.0026 0.0026 185.0 0.0026 0.0026 208.0 0.0026 0.0026 232.5 0.0026 0.0026 258.5 0.0026 0.0026 286.0 0.0026 0.0026 331.0 0.0026 0.0026 396.0 0.0026 0.0026 468.5 0.0026 0.0026 549.5 0.0026 0.0026 639.0 0.0026 0.0026 738.0 0.0026 0.0026 847.5 0.0026 0.0026 968.5 0.0026 0.0026 1102.0 0.0026 0.0026 1249.5 0.0026 0.0026 1412.0 0.0026 0.0026 1590.5 0.0026 0.0026 1787.0 0.0026 0.0026 1944.5 0.0026 0.0026 -2.6 2.8 117 9.0 0.0032 0.0032 11.0 0.0032 0.0032 13.5 0.0032 0.0032 16.5 0.0032 0.0032 19.5 0.0032 0.0032 22.5 0.0032 0.0032 26.0 0.0032 0.0032 30.0 0.0032 0.0032 34.5 0.0032 0.0032 40.0 0.0032 0.0032 46.0 0.0032 0.0032 52.5 0.0032 0.0032 60.0 0.0032 0.0032 69.0 0.0032 0.0032 79.0 0.0032 0.0032 90.5 0.0032 0.0032 105.5 0.0032 0.0032 123.5 0.0032 0.0032 143.0 0.0032 0.0032 163.5 0.0032 0.0032 185.0 0.0032 0.0032 208.0 0.0032 0.0032 232.5 0.0032 0.0032 258.5 0.0032 0.0032 286.0 0.0032 0.0032 331.0 0.0032 0.0032 396.0 0.0032 0.0032 468.5 0.0032 0.0032 549.5 0.0032 0.0032 639.0 0.0032 0.0032 738.0 0.0032 0.0032 847.5 0.0032 0.0032 968.5 0.0032 0.0032 1102.0 0.0032 0.0032 1249.5 0.0032 0.0032 1412.0 0.0032 0.0032 1590.5 0.0032 0.0032 1787.0 0.0032 0.0032 1944.5 0.0032 0.0032 -2.8 3.0 117 9.0 0.0041 0.0041 11.0 0.0041 0.0041 13.5 0.0041 0.0041 16.5 0.0041 0.0041 19.5 0.0041 0.0041 22.5 0.0041 0.0041 26.0 0.0041 0.0041 30.0 0.0041 0.0041 34.5 0.0041 0.0041 40.0 0.0041 0.0041 46.0 0.0041 0.0041 52.5 0.0041 0.0041 60.0 0.0041 0.0041 69.0 0.0041 0.0041 79.0 0.0041 0.0041 90.5 0.0041 0.0041 105.5 0.0041 0.0041 123.5 0.0041 0.0041 143.0 0.0041 0.0041 163.5 0.0041 0.0041 185.0 0.0041 0.0041 208.0 0.0041 0.0041 232.5 0.0041 0.0041 258.5 0.0041 0.0041 286.0 0.0041 0.0041 331.0 0.0041 0.0041 396.0 0.0041 0.0041 468.5 0.0041 0.0041 549.5 0.0041 0.0041 639.0 0.0041 0.0041 738.0 0.0041 0.0041 847.5 0.0041 0.0041 968.5 0.0041 0.0041 1102.0 0.0041 0.0041 1249.5 0.0041 0.0041 1412.0 0.0041 0.0041 1590.5 0.0041 0.0041 1787.0 0.0041 0.0041 1944.5 0.0041 0.0041 -3.0 3.5 117 9.0 0.0063 0.0063 11.0 0.0063 0.0063 13.5 0.0063 0.0063 16.5 0.0063 0.0063 19.5 0.0063 0.0063 22.5 0.0063 0.0063 26.0 0.0063 0.0063 30.0 0.0063 0.0063 34.5 0.0063 0.0063 40.0 0.0063 0.0063 46.0 0.0063 0.0063 52.5 0.0063 0.0063 60.0 0.0063 0.0063 69.0 0.0063 0.0063 79.0 0.0063 0.0063 90.5 0.0063 0.0063 105.5 0.0063 0.0063 123.5 0.0063 0.0063 143.0 0.0063 0.0063 163.5 0.0063 0.0063 185.0 0.0063 0.0063 208.0 0.0063 0.0063 232.5 0.0063 0.0063 258.5 0.0063 0.0063 286.0 0.0063 0.0063 331.0 0.0063 0.0063 396.0 0.0063 0.0063 468.5 0.0063 0.0063 549.5 0.0063 0.0063 639.0 0.0063 0.0063 738.0 0.0063 0.0063 847.5 0.0063 0.0063 968.5 0.0063 0.0063 1102.0 0.0063 0.0063 1249.5 0.0063 0.0063 1412.0 0.0063 0.0063 1590.5 0.0063 0.0063 1787.0 0.0063 0.0063 1944.5 0.0063 0.0063 -3.5 4.0 117 9.0 0.0179 0.0179 11.0 0.0179 0.0179 13.5 0.0179 0.0179 16.5 0.0179 0.0179 19.5 0.0179 0.0179 22.5 0.0179 0.0179 26.0 0.0179 0.0179 30.0 0.0179 0.0179 34.5 0.0179 0.0179 40.0 0.0179 0.0179 46.0 0.0179 0.0179 52.5 0.0179 0.0179 60.0 0.0179 0.0179 69.0 0.0179 0.0179 79.0 0.0179 0.0179 90.5 0.0179 0.0179 105.5 0.0179 0.0179 123.5 0.0179 0.0179 143.0 0.0179 0.0179 163.5 0.0179 0.0179 185.0 0.0179 0.0179 208.0 0.0179 0.0179 232.5 0.0179 0.0179 258.5 0.0179 0.0179 286.0 0.0179 0.0179 331.0 0.0179 0.0179 396.0 0.0179 0.0179 468.5 0.0179 0.0179 549.5 0.0179 0.0179 639.0 0.0179 0.0179 738.0 0.0179 0.0179 847.5 0.0179 0.0179 968.5 0.0179 0.0179 1102.0 0.0179 0.0179 1249.5 0.0179 0.0179 1412.0 0.0179 0.0179 1590.5 0.0179 0.0179 1787.0 0.0179 0.0179 1944.5 0.0179 0.0179 -4.0 4.5 117 9.0 0.0179 0.0179 11.0 0.0179 0.0179 13.5 0.0179 0.0179 16.5 0.0179 0.0179 19.5 0.0179 0.0179 22.5 0.0179 0.0179 26.0 0.0179 0.0179 30.0 0.0179 0.0179 34.5 0.0179 0.0179 40.0 0.0179 0.0179 46.0 0.0179 0.0179 52.5 0.0179 0.0179 60.0 0.0179 0.0179 69.0 0.0179 0.0179 79.0 0.0179 0.0179 90.5 0.0179 0.0179 105.5 0.0179 0.0179 123.5 0.0179 0.0179 143.0 0.0179 0.0179 163.5 0.0179 0.0179 185.0 0.0179 0.0179 208.0 0.0179 0.0179 232.5 0.0179 0.0179 258.5 0.0179 0.0179 286.0 0.0179 0.0179 331.0 0.0179 0.0179 396.0 0.0179 0.0179 468.5 0.0179 0.0179 549.5 0.0179 0.0179 639.0 0.0179 0.0179 738.0 0.0179 0.0179 847.5 0.0179 0.0179 968.5 0.0179 0.0179 1102.0 0.0179 0.0179 1249.5 0.0179 0.0179 1412.0 0.0179 0.0179 1590.5 0.0179 0.0179 1787.0 0.0179 0.0179 1944.5 0.0179 0.0179 -4.5 5.2 117 9.0 0.0179 0.0179 11.0 0.0179 0.0179 13.5 0.0179 0.0179 16.5 0.0179 0.0179 19.5 0.0179 0.0179 22.5 0.0179 0.0179 26.0 0.0179 0.0179 30.0 0.0179 0.0179 34.5 0.0179 0.0179 40.0 0.0179 0.0179 46.0 0.0179 0.0179 52.5 0.0179 0.0179 60.0 0.0179 0.0179 69.0 0.0179 0.0179 79.0 0.0179 0.0179 90.5 0.0179 0.0179 105.5 0.0179 0.0179 123.5 0.0179 0.0179 143.0 0.0179 0.0179 163.5 0.0179 0.0179 185.0 0.0179 0.0179 208.0 0.0179 0.0179 232.5 0.0179 0.0179 258.5 0.0179 0.0179 286.0 0.0179 0.0179 331.0 0.0179 0.0179 396.0 0.0179 0.0179 468.5 0.0179 0.0179 549.5 0.0179 0.0179 639.0 0.0179 0.0179 738.0 0.0179 0.0179 847.5 0.0179 0.0179 968.5 0.0179 0.0179 1102.0 0.0179 0.0179 1249.5 0.0179 0.0179 1412.0 0.0179 0.0179 1590.5 0.0179 0.0179 1787.0 0.0179 0.0179 1944.5 0.0179 0.0179 -[RelativeStatEC2] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --4.5 -4.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --4.0 -3.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --3.5 -3.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --3.0 -2.8 117 9.0 0.0193 0.0193 11.0 0.0193 0.0193 13.5 0.0193 0.0193 16.5 0.0193 0.0193 19.5 0.0193 0.0193 22.5 0.0193 0.0193 26.0 0.0193 0.0193 30.0 0.0193 0.0193 34.5 0.0193 0.0193 40.0 0.0193 0.0193 46.0 0.0193 0.0193 52.5 0.0193 0.0193 60.0 0.0193 0.0193 69.0 0.0193 0.0193 79.0 0.0193 0.0193 90.5 0.0193 0.0193 105.5 0.0193 0.0193 123.5 0.0193 0.0193 143.0 0.0193 0.0193 163.5 0.0193 0.0193 185.0 0.0193 0.0193 208.0 0.0193 0.0193 232.5 0.0193 0.0193 258.5 0.0193 0.0193 286.0 0.0193 0.0193 331.0 0.0193 0.0193 396.0 0.0193 0.0193 468.5 0.0193 0.0193 549.5 0.0193 0.0193 639.0 0.0193 0.0193 738.0 0.0193 0.0193 847.5 0.0193 0.0193 968.5 0.0193 0.0193 1102.0 0.0193 0.0193 1249.5 0.0193 0.0193 1412.0 0.0193 0.0193 1590.5 0.0193 0.0193 1787.0 0.0193 0.0193 1944.5 0.0193 0.0193 --2.8 -2.6 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --2.6 -2.4 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 --2.4 -2.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.2 -2.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.0 -1.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.8 -1.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.6 -1.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.4 -1.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.2 -1.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.0 -0.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.8 -0.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.6 -0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.4 -0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.2 0.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.0 0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.2 0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.4 0.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.6 0.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.8 1.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.0 1.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.2 1.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.4 1.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.6 1.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.8 2.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.0 2.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.2 2.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.4 2.6 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -2.6 2.8 117 9.0 0.0060 0.0060 11.0 0.0060 0.0060 13.5 0.0060 0.0060 16.5 0.0060 0.0060 19.5 0.0060 0.0060 22.5 0.0060 0.0060 26.0 0.0060 0.0060 30.0 0.0060 0.0060 34.5 0.0060 0.0060 40.0 0.0060 0.0060 46.0 0.0060 0.0060 52.5 0.0060 0.0060 60.0 0.0060 0.0060 69.0 0.0060 0.0060 79.0 0.0060 0.0060 90.5 0.0060 0.0060 105.5 0.0060 0.0060 123.5 0.0060 0.0060 143.0 0.0060 0.0060 163.5 0.0060 0.0060 185.0 0.0060 0.0060 208.0 0.0060 0.0060 232.5 0.0060 0.0060 258.5 0.0060 0.0060 286.0 0.0060 0.0060 331.0 0.0060 0.0060 396.0 0.0060 0.0060 468.5 0.0060 0.0060 549.5 0.0060 0.0060 639.0 0.0060 0.0060 738.0 0.0060 0.0060 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1944.5 0.0060 0.0060 -2.8 3.0 117 9.0 0.0193 0.0193 11.0 0.0193 0.0193 13.5 0.0193 0.0193 16.5 0.0193 0.0193 19.5 0.0193 0.0193 22.5 0.0193 0.0193 26.0 0.0193 0.0193 30.0 0.0193 0.0193 34.5 0.0193 0.0193 40.0 0.0193 0.0193 46.0 0.0193 0.0193 52.5 0.0193 0.0193 60.0 0.0193 0.0193 69.0 0.0193 0.0193 79.0 0.0193 0.0193 90.5 0.0193 0.0193 105.5 0.0193 0.0193 123.5 0.0193 0.0193 143.0 0.0193 0.0193 163.5 0.0193 0.0193 185.0 0.0193 0.0193 208.0 0.0193 0.0193 232.5 0.0193 0.0193 258.5 0.0193 0.0193 286.0 0.0193 0.0193 331.0 0.0193 0.0193 396.0 0.0193 0.0193 468.5 0.0193 0.0193 549.5 0.0193 0.0193 639.0 0.0193 0.0193 738.0 0.0193 0.0193 847.5 0.0193 0.0193 968.5 0.0193 0.0193 1102.0 0.0193 0.0193 1249.5 0.0193 0.0193 1412.0 0.0193 0.0193 1590.5 0.0193 0.0193 1787.0 0.0193 0.0193 1944.5 0.0193 0.0193 -3.0 3.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -3.5 4.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -4.0 4.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -4.5 5.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -[RelativeStatHF] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0154 0.0154 11.0 0.0154 0.0154 13.5 0.0154 0.0154 16.5 0.0154 0.0154 19.5 0.0154 0.0154 22.5 0.0154 0.0154 26.0 0.0154 0.0154 30.0 0.0154 0.0154 34.5 0.0154 0.0154 40.0 0.0154 0.0154 46.0 0.0154 0.0154 52.5 0.0154 0.0154 60.0 0.0154 0.0154 69.0 0.0154 0.0154 79.0 0.0154 0.0154 90.5 0.0154 0.0154 105.5 0.0154 0.0154 123.5 0.0154 0.0154 143.0 0.0154 0.0154 163.5 0.0154 0.0154 185.0 0.0154 0.0154 208.0 0.0154 0.0154 232.5 0.0154 0.0154 258.5 0.0154 0.0154 286.0 0.0154 0.0154 331.0 0.0154 0.0154 396.0 0.0154 0.0154 468.5 0.0154 0.0154 549.5 0.0154 0.0154 639.0 0.0154 0.0154 738.0 0.0154 0.0154 847.5 0.0154 0.0154 968.5 0.0154 0.0154 1102.0 0.0154 0.0154 1249.5 0.0154 0.0154 1412.0 0.0154 0.0154 1590.5 0.0154 0.0154 1787.0 0.0154 0.0154 1944.5 0.0154 0.0154 --4.5 -4.0 117 9.0 0.0154 0.0154 11.0 0.0154 0.0154 13.5 0.0154 0.0154 16.5 0.0154 0.0154 19.5 0.0154 0.0154 22.5 0.0154 0.0154 26.0 0.0154 0.0154 30.0 0.0154 0.0154 34.5 0.0154 0.0154 40.0 0.0154 0.0154 46.0 0.0154 0.0154 52.5 0.0154 0.0154 60.0 0.0154 0.0154 69.0 0.0154 0.0154 79.0 0.0154 0.0154 90.5 0.0154 0.0154 105.5 0.0154 0.0154 123.5 0.0154 0.0154 143.0 0.0154 0.0154 163.5 0.0154 0.0154 185.0 0.0154 0.0154 208.0 0.0154 0.0154 232.5 0.0154 0.0154 258.5 0.0154 0.0154 286.0 0.0154 0.0154 331.0 0.0154 0.0154 396.0 0.0154 0.0154 468.5 0.0154 0.0154 549.5 0.0154 0.0154 639.0 0.0154 0.0154 738.0 0.0154 0.0154 847.5 0.0154 0.0154 968.5 0.0154 0.0154 1102.0 0.0154 0.0154 1249.5 0.0154 0.0154 1412.0 0.0154 0.0154 1590.5 0.0154 0.0154 1787.0 0.0154 0.0154 1944.5 0.0154 0.0154 --4.0 -3.5 117 9.0 0.0154 0.0154 11.0 0.0154 0.0154 13.5 0.0154 0.0154 16.5 0.0154 0.0154 19.5 0.0154 0.0154 22.5 0.0154 0.0154 26.0 0.0154 0.0154 30.0 0.0154 0.0154 34.5 0.0154 0.0154 40.0 0.0154 0.0154 46.0 0.0154 0.0154 52.5 0.0154 0.0154 60.0 0.0154 0.0154 69.0 0.0154 0.0154 79.0 0.0154 0.0154 90.5 0.0154 0.0154 105.5 0.0154 0.0154 123.5 0.0154 0.0154 143.0 0.0154 0.0154 163.5 0.0154 0.0154 185.0 0.0154 0.0154 208.0 0.0154 0.0154 232.5 0.0154 0.0154 258.5 0.0154 0.0154 286.0 0.0154 0.0154 331.0 0.0154 0.0154 396.0 0.0154 0.0154 468.5 0.0154 0.0154 549.5 0.0154 0.0154 639.0 0.0154 0.0154 738.0 0.0154 0.0154 847.5 0.0154 0.0154 968.5 0.0154 0.0154 1102.0 0.0154 0.0154 1249.5 0.0154 0.0154 1412.0 0.0154 0.0154 1590.5 0.0154 0.0154 1787.0 0.0154 0.0154 1944.5 0.0154 0.0154 --3.5 -3.0 117 9.0 0.0154 0.0154 11.0 0.0154 0.0154 13.5 0.0154 0.0154 16.5 0.0154 0.0154 19.5 0.0154 0.0154 22.5 0.0154 0.0154 26.0 0.0154 0.0154 30.0 0.0154 0.0154 34.5 0.0154 0.0154 40.0 0.0154 0.0154 46.0 0.0154 0.0154 52.5 0.0154 0.0154 60.0 0.0154 0.0154 69.0 0.0154 0.0154 79.0 0.0154 0.0154 90.5 0.0154 0.0154 105.5 0.0154 0.0154 123.5 0.0154 0.0154 143.0 0.0154 0.0154 163.5 0.0154 0.0154 185.0 0.0154 0.0154 208.0 0.0154 0.0154 232.5 0.0154 0.0154 258.5 0.0154 0.0154 286.0 0.0154 0.0154 331.0 0.0154 0.0154 396.0 0.0154 0.0154 468.5 0.0154 0.0154 549.5 0.0154 0.0154 639.0 0.0154 0.0154 738.0 0.0154 0.0154 847.5 0.0154 0.0154 968.5 0.0154 0.0154 1102.0 0.0154 0.0154 1249.5 0.0154 0.0154 1412.0 0.0154 0.0154 1590.5 0.0154 0.0154 1787.0 0.0154 0.0154 1944.5 0.0154 0.0154 --3.0 -2.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.8 -2.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.6 -2.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.4 -2.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.2 -2.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.0 -1.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.8 -1.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.6 -1.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.4 -1.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.2 -1.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.0 -0.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.8 -0.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.6 -0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.4 -0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.2 0.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.0 0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.2 0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.4 0.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.6 0.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.8 1.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.0 1.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.2 1.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.4 1.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.6 1.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.8 2.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.0 2.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.2 2.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.4 2.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.6 2.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.8 3.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -3.0 3.5 117 9.0 0.0154 0.0154 11.0 0.0154 0.0154 13.5 0.0154 0.0154 16.5 0.0154 0.0154 19.5 0.0154 0.0154 22.5 0.0154 0.0154 26.0 0.0154 0.0154 30.0 0.0154 0.0154 34.5 0.0154 0.0154 40.0 0.0154 0.0154 46.0 0.0154 0.0154 52.5 0.0154 0.0154 60.0 0.0154 0.0154 69.0 0.0154 0.0154 79.0 0.0154 0.0154 90.5 0.0154 0.0154 105.5 0.0154 0.0154 123.5 0.0154 0.0154 143.0 0.0154 0.0154 163.5 0.0154 0.0154 185.0 0.0154 0.0154 208.0 0.0154 0.0154 232.5 0.0154 0.0154 258.5 0.0154 0.0154 286.0 0.0154 0.0154 331.0 0.0154 0.0154 396.0 0.0154 0.0154 468.5 0.0154 0.0154 549.5 0.0154 0.0154 639.0 0.0154 0.0154 738.0 0.0154 0.0154 847.5 0.0154 0.0154 968.5 0.0154 0.0154 1102.0 0.0154 0.0154 1249.5 0.0154 0.0154 1412.0 0.0154 0.0154 1590.5 0.0154 0.0154 1787.0 0.0154 0.0154 1944.5 0.0154 0.0154 -3.5 4.0 117 9.0 0.0154 0.0154 11.0 0.0154 0.0154 13.5 0.0154 0.0154 16.5 0.0154 0.0154 19.5 0.0154 0.0154 22.5 0.0154 0.0154 26.0 0.0154 0.0154 30.0 0.0154 0.0154 34.5 0.0154 0.0154 40.0 0.0154 0.0154 46.0 0.0154 0.0154 52.5 0.0154 0.0154 60.0 0.0154 0.0154 69.0 0.0154 0.0154 79.0 0.0154 0.0154 90.5 0.0154 0.0154 105.5 0.0154 0.0154 123.5 0.0154 0.0154 143.0 0.0154 0.0154 163.5 0.0154 0.0154 185.0 0.0154 0.0154 208.0 0.0154 0.0154 232.5 0.0154 0.0154 258.5 0.0154 0.0154 286.0 0.0154 0.0154 331.0 0.0154 0.0154 396.0 0.0154 0.0154 468.5 0.0154 0.0154 549.5 0.0154 0.0154 639.0 0.0154 0.0154 738.0 0.0154 0.0154 847.5 0.0154 0.0154 968.5 0.0154 0.0154 1102.0 0.0154 0.0154 1249.5 0.0154 0.0154 1412.0 0.0154 0.0154 1590.5 0.0154 0.0154 1787.0 0.0154 0.0154 1944.5 0.0154 0.0154 -4.0 4.5 117 9.0 0.0154 0.0154 11.0 0.0154 0.0154 13.5 0.0154 0.0154 16.5 0.0154 0.0154 19.5 0.0154 0.0154 22.5 0.0154 0.0154 26.0 0.0154 0.0154 30.0 0.0154 0.0154 34.5 0.0154 0.0154 40.0 0.0154 0.0154 46.0 0.0154 0.0154 52.5 0.0154 0.0154 60.0 0.0154 0.0154 69.0 0.0154 0.0154 79.0 0.0154 0.0154 90.5 0.0154 0.0154 105.5 0.0154 0.0154 123.5 0.0154 0.0154 143.0 0.0154 0.0154 163.5 0.0154 0.0154 185.0 0.0154 0.0154 208.0 0.0154 0.0154 232.5 0.0154 0.0154 258.5 0.0154 0.0154 286.0 0.0154 0.0154 331.0 0.0154 0.0154 396.0 0.0154 0.0154 468.5 0.0154 0.0154 549.5 0.0154 0.0154 639.0 0.0154 0.0154 738.0 0.0154 0.0154 847.5 0.0154 0.0154 968.5 0.0154 0.0154 1102.0 0.0154 0.0154 1249.5 0.0154 0.0154 1412.0 0.0154 0.0154 1590.5 0.0154 0.0154 1787.0 0.0154 0.0154 1944.5 0.0154 0.0154 -4.5 5.2 117 9.0 0.0154 0.0154 11.0 0.0154 0.0154 13.5 0.0154 0.0154 16.5 0.0154 0.0154 19.5 0.0154 0.0154 22.5 0.0154 0.0154 26.0 0.0154 0.0154 30.0 0.0154 0.0154 34.5 0.0154 0.0154 40.0 0.0154 0.0154 46.0 0.0154 0.0154 52.5 0.0154 0.0154 60.0 0.0154 0.0154 69.0 0.0154 0.0154 79.0 0.0154 0.0154 90.5 0.0154 0.0154 105.5 0.0154 0.0154 123.5 0.0154 0.0154 143.0 0.0154 0.0154 163.5 0.0154 0.0154 185.0 0.0154 0.0154 208.0 0.0154 0.0154 232.5 0.0154 0.0154 258.5 0.0154 0.0154 286.0 0.0154 0.0154 331.0 0.0154 0.0154 396.0 0.0154 0.0154 468.5 0.0154 0.0154 549.5 0.0154 0.0154 639.0 0.0154 0.0154 738.0 0.0154 0.0154 847.5 0.0154 0.0154 968.5 0.0154 0.0154 1102.0 0.0154 0.0154 1249.5 0.0154 0.0154 1412.0 0.0154 0.0154 1590.5 0.0154 0.0154 1787.0 0.0154 0.0154 1944.5 0.0154 0.0154 -[PileUpDataMC] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 -0.0028 -0.0028 11.0 -0.0021 -0.0021 13.5 -0.0016 -0.0016 16.5 -0.0013 -0.0013 19.5 -0.0010 -0.0010 22.5 -0.0009 -0.0009 26.0 -0.0008 -0.0008 30.0 -0.0006 -0.0006 34.5 -0.0006 -0.0006 40.0 -0.0005 -0.0005 46.0 -0.0004 -0.0004 52.5 -0.0004 -0.0004 60.0 -0.0003 -0.0003 69.0 -0.0003 -0.0003 79.0 -0.0002 -0.0002 90.5 -0.0002 -0.0002 105.5 -0.0002 -0.0002 123.5 -0.0001 -0.0001 143.0 -0.0001 -0.0001 163.5 -0.0001 -0.0001 185.0 -0.0001 -0.0001 208.0 -0.0001 -0.0001 232.5 -0.0001 -0.0001 258.5 -0.0001 -0.0001 286.0 -0.0001 -0.0001 331.0 -0.0001 -0.0001 396.0 -0.0000 -0.0000 468.5 -0.0000 -0.0000 549.5 -0.0000 -0.0000 639.0 -0.0000 -0.0000 738.0 -0.0000 -0.0000 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 --4.5 -4.0 117 9.0 0.0114 0.0114 11.0 0.0075 0.0075 13.5 0.0053 0.0053 16.5 0.0039 0.0039 19.5 0.0031 0.0031 22.5 0.0026 0.0026 26.0 0.0021 0.0021 30.0 0.0018 0.0018 34.5 0.0015 0.0015 40.0 0.0013 0.0013 46.0 0.0011 0.0011 52.5 0.0009 0.0009 60.0 0.0008 0.0008 69.0 0.0007 0.0007 79.0 0.0006 0.0006 90.5 0.0005 0.0005 105.5 0.0004 0.0004 123.5 0.0004 0.0004 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0002 0.0002 258.5 0.0002 0.0002 286.0 0.0002 0.0002 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --4.0 -3.5 117 9.0 0.0512 0.0512 11.0 0.0308 0.0308 13.5 0.0205 0.0205 16.5 0.0147 0.0147 19.5 0.0114 0.0114 22.5 0.0093 0.0093 26.0 0.0077 0.0077 30.0 0.0064 0.0064 34.5 0.0054 0.0054 40.0 0.0045 0.0045 46.0 0.0039 0.0039 52.5 0.0033 0.0033 60.0 0.0029 0.0029 69.0 0.0024 0.0024 79.0 0.0021 0.0021 90.5 0.0018 0.0018 105.5 0.0016 0.0016 123.5 0.0013 0.0013 143.0 0.0011 0.0011 163.5 0.0010 0.0010 185.0 0.0009 0.0009 208.0 0.0008 0.0008 232.5 0.0007 0.0007 258.5 0.0006 0.0006 286.0 0.0006 0.0006 331.0 0.0005 0.0005 396.0 0.0004 0.0004 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --3.5 -3.0 117 9.0 0.1071 0.1071 11.0 0.0544 0.0544 13.5 0.0337 0.0337 16.5 0.0231 0.0231 19.5 0.0176 0.0176 22.5 0.0142 0.0142 26.0 0.0116 0.0116 30.0 0.0096 0.0096 34.5 0.0080 0.0080 40.0 0.0067 0.0067 46.0 0.0057 0.0057 52.5 0.0049 0.0049 60.0 0.0042 0.0042 69.0 0.0036 0.0036 79.0 0.0031 0.0031 90.5 0.0026 0.0026 105.5 0.0022 0.0022 123.5 0.0019 0.0019 143.0 0.0016 0.0016 163.5 0.0014 0.0014 185.0 0.0012 0.0012 208.0 0.0011 0.0011 232.5 0.0010 0.0010 258.5 0.0009 0.0009 286.0 0.0008 0.0008 331.0 0.0007 0.0007 396.0 0.0006 0.0006 468.5 0.0005 0.0005 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0002 0.0002 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --3.0 -2.8 117 9.0 -0.0100 -0.0100 11.0 -0.0046 -0.0046 13.5 -0.0027 -0.0027 16.5 -0.0018 -0.0018 19.5 -0.0014 -0.0014 22.5 -0.0011 -0.0011 26.0 -0.0009 -0.0009 30.0 -0.0007 -0.0007 34.5 -0.0006 -0.0006 40.0 -0.0005 -0.0005 46.0 -0.0004 -0.0004 52.5 -0.0004 -0.0004 60.0 -0.0003 -0.0003 69.0 -0.0003 -0.0003 79.0 -0.0002 -0.0002 90.5 -0.0002 -0.0002 105.5 -0.0002 -0.0002 123.5 -0.0001 -0.0001 143.0 -0.0001 -0.0001 163.5 -0.0001 -0.0001 185.0 -0.0001 -0.0001 208.0 -0.0001 -0.0001 232.5 -0.0001 -0.0001 258.5 -0.0001 -0.0001 286.0 -0.0001 -0.0001 331.0 -0.0001 -0.0001 396.0 -0.0000 -0.0000 468.5 -0.0000 -0.0000 549.5 -0.0000 -0.0000 639.0 -0.0000 -0.0000 738.0 -0.0000 -0.0000 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 --2.8 -2.6 117 9.0 -0.0629 -0.0629 11.0 -0.0288 -0.0288 13.5 -0.0172 -0.0172 16.5 -0.0116 -0.0116 19.5 -0.0087 -0.0087 22.5 -0.0070 -0.0070 26.0 -0.0057 -0.0057 30.0 -0.0047 -0.0047 34.5 -0.0039 -0.0039 40.0 -0.0033 -0.0033 46.0 -0.0028 -0.0028 52.5 -0.0024 -0.0024 60.0 -0.0020 -0.0020 69.0 -0.0017 -0.0017 79.0 -0.0015 -0.0015 90.5 -0.0013 -0.0013 105.5 -0.0011 -0.0011 123.5 -0.0009 -0.0009 143.0 -0.0008 -0.0008 163.5 -0.0007 -0.0007 185.0 -0.0006 -0.0006 208.0 -0.0005 -0.0005 232.5 -0.0005 -0.0005 258.5 -0.0004 -0.0004 286.0 -0.0004 -0.0004 331.0 -0.0003 -0.0003 396.0 -0.0003 -0.0003 468.5 -0.0002 -0.0002 549.5 -0.0002 -0.0002 639.0 -0.0002 -0.0002 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 --2.6 -2.4 117 9.0 -0.0859 -0.0859 11.0 -0.0438 -0.0438 13.5 -0.0271 -0.0271 16.5 -0.0186 -0.0186 19.5 -0.0142 -0.0142 22.5 -0.0115 -0.0115 26.0 -0.0094 -0.0094 30.0 -0.0077 -0.0077 34.5 -0.0065 -0.0065 40.0 -0.0054 -0.0054 46.0 -0.0046 -0.0046 52.5 -0.0039 -0.0039 60.0 -0.0034 -0.0034 69.0 -0.0029 -0.0029 79.0 -0.0025 -0.0025 90.5 -0.0021 -0.0021 105.5 -0.0018 -0.0018 123.5 -0.0015 -0.0015 143.0 -0.0013 -0.0013 163.5 -0.0011 -0.0011 185.0 -0.0010 -0.0010 208.0 -0.0009 -0.0009 232.5 -0.0008 -0.0008 258.5 -0.0007 -0.0007 286.0 -0.0006 -0.0006 331.0 -0.0006 -0.0006 396.0 -0.0005 -0.0005 468.5 -0.0004 -0.0004 549.5 -0.0003 -0.0003 639.0 -0.0003 -0.0003 738.0 -0.0002 -0.0002 847.5 -0.0002 -0.0002 968.5 -0.0002 -0.0002 1102.0 -0.0002 -0.0002 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 --2.4 -2.2 117 9.0 -0.0504 -0.0504 11.0 -0.0291 -0.0291 13.5 -0.0191 -0.0191 16.5 -0.0135 -0.0135 19.5 -0.0104 -0.0104 22.5 -0.0085 -0.0085 26.0 -0.0070 -0.0070 30.0 -0.0058 -0.0058 34.5 -0.0049 -0.0049 40.0 -0.0041 -0.0041 46.0 -0.0035 -0.0035 52.5 -0.0030 -0.0030 60.0 -0.0026 -0.0026 69.0 -0.0022 -0.0022 79.0 -0.0019 -0.0019 90.5 -0.0016 -0.0016 105.5 -0.0014 -0.0014 123.5 -0.0012 -0.0012 143.0 -0.0010 -0.0010 163.5 -0.0009 -0.0009 185.0 -0.0008 -0.0008 208.0 -0.0007 -0.0007 232.5 -0.0006 -0.0006 258.5 -0.0005 -0.0005 286.0 -0.0005 -0.0005 331.0 -0.0004 -0.0004 396.0 -0.0004 -0.0004 468.5 -0.0003 -0.0003 549.5 -0.0003 -0.0003 639.0 -0.0002 -0.0002 738.0 -0.0002 -0.0002 847.5 -0.0002 -0.0002 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 --2.2 -2.0 117 9.0 -0.0389 -0.0389 11.0 -0.0202 -0.0202 13.5 -0.0127 -0.0127 16.5 -0.0087 -0.0087 19.5 -0.0067 -0.0067 22.5 -0.0054 -0.0054 26.0 -0.0044 -0.0044 30.0 -0.0036 -0.0036 34.5 -0.0031 -0.0031 40.0 -0.0025 -0.0025 46.0 -0.0022 -0.0022 52.5 -0.0018 -0.0018 60.0 -0.0016 -0.0016 69.0 -0.0014 -0.0014 79.0 -0.0012 -0.0012 90.5 -0.0010 -0.0010 105.5 -0.0009 -0.0009 123.5 -0.0007 -0.0007 143.0 -0.0006 -0.0006 163.5 -0.0005 -0.0005 185.0 -0.0005 -0.0005 208.0 -0.0004 -0.0004 232.5 -0.0004 -0.0004 258.5 -0.0003 -0.0003 286.0 -0.0003 -0.0003 331.0 -0.0003 -0.0003 396.0 -0.0002 -0.0002 468.5 -0.0002 -0.0002 549.5 -0.0002 -0.0002 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 --2.0 -1.8 117 9.0 -0.0320 -0.0320 11.0 -0.0153 -0.0153 13.5 -0.0092 -0.0092 16.5 -0.0063 -0.0063 19.5 -0.0047 -0.0047 22.5 -0.0038 -0.0038 26.0 -0.0031 -0.0031 30.0 -0.0026 -0.0026 34.5 -0.0021 -0.0021 40.0 -0.0018 -0.0018 46.0 -0.0015 -0.0015 52.5 -0.0013 -0.0013 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0008 -0.0008 90.5 -0.0007 -0.0007 105.5 -0.0006 -0.0006 123.5 -0.0005 -0.0005 143.0 -0.0004 -0.0004 163.5 -0.0004 -0.0004 185.0 -0.0003 -0.0003 208.0 -0.0003 -0.0003 232.5 -0.0003 -0.0003 258.5 -0.0002 -0.0002 286.0 -0.0002 -0.0002 331.0 -0.0002 -0.0002 396.0 -0.0002 -0.0002 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 --1.8 -1.6 117 9.0 -0.0279 -0.0279 11.0 -0.0119 -0.0119 13.5 -0.0069 -0.0069 16.5 -0.0046 -0.0046 19.5 -0.0035 -0.0035 22.5 -0.0028 -0.0028 26.0 -0.0022 -0.0022 30.0 -0.0018 -0.0018 34.5 -0.0015 -0.0015 40.0 -0.0013 -0.0013 46.0 -0.0011 -0.0011 52.5 -0.0009 -0.0009 60.0 -0.0008 -0.0008 69.0 -0.0007 -0.0007 79.0 -0.0006 -0.0006 90.5 -0.0005 -0.0005 105.5 -0.0004 -0.0004 123.5 -0.0004 -0.0004 143.0 -0.0003 -0.0003 163.5 -0.0003 -0.0003 185.0 -0.0002 -0.0002 208.0 -0.0002 -0.0002 232.5 -0.0002 -0.0002 258.5 -0.0002 -0.0002 286.0 -0.0001 -0.0001 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 --1.6 -1.4 117 9.0 -0.0260 -0.0260 11.0 -0.0099 -0.0099 13.5 -0.0056 -0.0056 16.5 -0.0037 -0.0037 19.5 -0.0027 -0.0027 22.5 -0.0022 -0.0022 26.0 -0.0018 -0.0018 30.0 -0.0014 -0.0014 34.5 -0.0012 -0.0012 40.0 -0.0010 -0.0010 46.0 -0.0008 -0.0008 52.5 -0.0007 -0.0007 60.0 -0.0006 -0.0006 69.0 -0.0005 -0.0005 79.0 -0.0005 -0.0005 90.5 -0.0004 -0.0004 105.5 -0.0003 -0.0003 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0002 -0.0002 185.0 -0.0002 -0.0002 208.0 -0.0002 -0.0002 232.5 -0.0001 -0.0001 258.5 -0.0001 -0.0001 286.0 -0.0001 -0.0001 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0000 -0.0000 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 --1.4 -1.2 117 9.0 -0.0283 -0.0283 11.0 -0.0096 -0.0096 13.5 -0.0053 -0.0053 16.5 -0.0034 -0.0034 19.5 -0.0025 -0.0025 22.5 -0.0020 -0.0020 26.0 -0.0016 -0.0016 30.0 -0.0013 -0.0013 34.5 -0.0011 -0.0011 40.0 -0.0009 -0.0009 46.0 -0.0008 -0.0008 52.5 -0.0007 -0.0007 60.0 -0.0006 -0.0006 69.0 -0.0005 -0.0005 79.0 -0.0004 -0.0004 90.5 -0.0004 -0.0004 105.5 -0.0003 -0.0003 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0002 -0.0002 185.0 -0.0002 -0.0002 208.0 -0.0001 -0.0001 232.5 -0.0001 -0.0001 258.5 -0.0001 -0.0001 286.0 -0.0001 -0.0001 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0000 -0.0000 738.0 -0.0000 -0.0000 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 --1.2 -1.0 117 9.0 -0.0341 -0.0341 11.0 -0.0107 -0.0107 13.5 -0.0058 -0.0058 16.5 -0.0037 -0.0037 19.5 -0.0027 -0.0027 22.5 -0.0022 -0.0022 26.0 -0.0017 -0.0017 30.0 -0.0014 -0.0014 34.5 -0.0012 -0.0012 40.0 -0.0010 -0.0010 46.0 -0.0008 -0.0008 52.5 -0.0007 -0.0007 60.0 -0.0006 -0.0006 69.0 -0.0005 -0.0005 79.0 -0.0004 -0.0004 90.5 -0.0004 -0.0004 105.5 -0.0003 -0.0003 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0002 -0.0002 185.0 -0.0002 -0.0002 208.0 -0.0002 -0.0002 232.5 -0.0001 -0.0001 258.5 -0.0001 -0.0001 286.0 -0.0001 -0.0001 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0000 -0.0000 738.0 -0.0000 -0.0000 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 --1.0 -0.8 117 9.0 -0.0420 -0.0420 11.0 -0.0135 -0.0135 13.5 -0.0073 -0.0073 16.5 -0.0047 -0.0047 19.5 -0.0035 -0.0035 22.5 -0.0028 -0.0028 26.0 -0.0022 -0.0022 30.0 -0.0018 -0.0018 34.5 -0.0015 -0.0015 40.0 -0.0012 -0.0012 46.0 -0.0010 -0.0010 52.5 -0.0009 -0.0009 60.0 -0.0008 -0.0008 69.0 -0.0007 -0.0007 79.0 -0.0006 -0.0006 90.5 -0.0005 -0.0005 105.5 -0.0004 -0.0004 123.5 -0.0003 -0.0003 143.0 -0.0003 -0.0003 163.5 -0.0003 -0.0003 185.0 -0.0002 -0.0002 208.0 -0.0002 -0.0002 232.5 -0.0002 -0.0002 258.5 -0.0002 -0.0002 286.0 -0.0001 -0.0001 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 --0.8 -0.6 117 9.0 -0.0455 -0.0455 11.0 -0.0144 -0.0144 13.5 -0.0078 -0.0078 16.5 -0.0050 -0.0050 19.5 -0.0037 -0.0037 22.5 -0.0029 -0.0029 26.0 -0.0023 -0.0023 30.0 -0.0019 -0.0019 34.5 -0.0016 -0.0016 40.0 -0.0013 -0.0013 46.0 -0.0011 -0.0011 52.5 -0.0009 -0.0009 60.0 -0.0008 -0.0008 69.0 -0.0007 -0.0007 79.0 -0.0006 -0.0006 90.5 -0.0005 -0.0005 105.5 -0.0004 -0.0004 123.5 -0.0004 -0.0004 143.0 -0.0003 -0.0003 163.5 -0.0003 -0.0003 185.0 -0.0002 -0.0002 208.0 -0.0002 -0.0002 232.5 -0.0002 -0.0002 258.5 -0.0002 -0.0002 286.0 -0.0002 -0.0002 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 --0.6 -0.4 117 9.0 -0.0501 -0.0501 11.0 -0.0143 -0.0143 13.5 -0.0075 -0.0075 16.5 -0.0048 -0.0048 19.5 -0.0035 -0.0035 22.5 -0.0028 -0.0028 26.0 -0.0022 -0.0022 30.0 -0.0018 -0.0018 34.5 -0.0015 -0.0015 40.0 -0.0013 -0.0013 46.0 -0.0011 -0.0011 52.5 -0.0009 -0.0009 60.0 -0.0008 -0.0008 69.0 -0.0007 -0.0007 79.0 -0.0006 -0.0006 90.5 -0.0005 -0.0005 105.5 -0.0004 -0.0004 123.5 -0.0003 -0.0003 143.0 -0.0003 -0.0003 163.5 -0.0003 -0.0003 185.0 -0.0002 -0.0002 208.0 -0.0002 -0.0002 232.5 -0.0002 -0.0002 258.5 -0.0002 -0.0002 286.0 -0.0001 -0.0001 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 --0.4 -0.2 117 9.0 -0.0575 -0.0575 11.0 -0.0147 -0.0147 13.5 -0.0076 -0.0076 16.5 -0.0048 -0.0048 19.5 -0.0035 -0.0035 22.5 -0.0028 -0.0028 26.0 -0.0022 -0.0022 30.0 -0.0018 -0.0018 34.5 -0.0015 -0.0015 40.0 -0.0012 -0.0012 46.0 -0.0010 -0.0010 52.5 -0.0009 -0.0009 60.0 -0.0008 -0.0008 69.0 -0.0007 -0.0007 79.0 -0.0006 -0.0006 90.5 -0.0005 -0.0005 105.5 -0.0004 -0.0004 123.5 -0.0003 -0.0003 143.0 -0.0003 -0.0003 163.5 -0.0003 -0.0003 185.0 -0.0002 -0.0002 208.0 -0.0002 -0.0002 232.5 -0.0002 -0.0002 258.5 -0.0002 -0.0002 286.0 -0.0001 -0.0001 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 --0.2 0.0 117 9.0 -0.0591 -0.0591 11.0 -0.0148 -0.0148 13.5 -0.0077 -0.0077 16.5 -0.0049 -0.0049 19.5 -0.0035 -0.0035 22.5 -0.0028 -0.0028 26.0 -0.0022 -0.0022 30.0 -0.0018 -0.0018 34.5 -0.0015 -0.0015 40.0 -0.0013 -0.0013 46.0 -0.0011 -0.0011 52.5 -0.0009 -0.0009 60.0 -0.0008 -0.0008 69.0 -0.0007 -0.0007 79.0 -0.0006 -0.0006 90.5 -0.0005 -0.0005 105.5 -0.0004 -0.0004 123.5 -0.0003 -0.0003 143.0 -0.0003 -0.0003 163.5 -0.0003 -0.0003 185.0 -0.0002 -0.0002 208.0 -0.0002 -0.0002 232.5 -0.0002 -0.0002 258.5 -0.0002 -0.0002 286.0 -0.0001 -0.0001 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 -0.0 0.2 117 9.0 -0.0606 -0.0606 11.0 -0.0154 -0.0154 13.5 -0.0080 -0.0080 16.5 -0.0050 -0.0050 19.5 -0.0037 -0.0037 22.5 -0.0029 -0.0029 26.0 -0.0023 -0.0023 30.0 -0.0019 -0.0019 34.5 -0.0016 -0.0016 40.0 -0.0013 -0.0013 46.0 -0.0011 -0.0011 52.5 -0.0009 -0.0009 60.0 -0.0008 -0.0008 69.0 -0.0007 -0.0007 79.0 -0.0006 -0.0006 90.5 -0.0005 -0.0005 105.5 -0.0004 -0.0004 123.5 -0.0004 -0.0004 143.0 -0.0003 -0.0003 163.5 -0.0003 -0.0003 185.0 -0.0002 -0.0002 208.0 -0.0002 -0.0002 232.5 -0.0002 -0.0002 258.5 -0.0002 -0.0002 286.0 -0.0001 -0.0001 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 -0.2 0.4 117 9.0 -0.0583 -0.0583 11.0 -0.0159 -0.0159 13.5 -0.0083 -0.0083 16.5 -0.0053 -0.0053 19.5 -0.0039 -0.0039 22.5 -0.0031 -0.0031 26.0 -0.0025 -0.0025 30.0 -0.0020 -0.0020 34.5 -0.0017 -0.0017 40.0 -0.0014 -0.0014 46.0 -0.0012 -0.0012 52.5 -0.0010 -0.0010 60.0 -0.0008 -0.0008 69.0 -0.0007 -0.0007 79.0 -0.0006 -0.0006 90.5 -0.0005 -0.0005 105.5 -0.0005 -0.0005 123.5 -0.0004 -0.0004 143.0 -0.0003 -0.0003 163.5 -0.0003 -0.0003 185.0 -0.0002 -0.0002 208.0 -0.0002 -0.0002 232.5 -0.0002 -0.0002 258.5 -0.0002 -0.0002 286.0 -0.0002 -0.0002 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 -0.4 0.6 117 9.0 -0.0494 -0.0494 11.0 -0.0156 -0.0156 13.5 -0.0084 -0.0084 16.5 -0.0054 -0.0054 19.5 -0.0040 -0.0040 22.5 -0.0032 -0.0032 26.0 -0.0025 -0.0025 30.0 -0.0021 -0.0021 34.5 -0.0017 -0.0017 40.0 -0.0014 -0.0014 46.0 -0.0012 -0.0012 52.5 -0.0010 -0.0010 60.0 -0.0009 -0.0009 69.0 -0.0007 -0.0007 79.0 -0.0006 -0.0006 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0004 -0.0004 143.0 -0.0003 -0.0003 163.5 -0.0003 -0.0003 185.0 -0.0003 -0.0003 208.0 -0.0002 -0.0002 232.5 -0.0002 -0.0002 258.5 -0.0002 -0.0002 286.0 -0.0002 -0.0002 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 -0.6 0.8 117 9.0 -0.0456 -0.0456 11.0 -0.0153 -0.0153 13.5 -0.0084 -0.0084 16.5 -0.0054 -0.0054 19.5 -0.0040 -0.0040 22.5 -0.0032 -0.0032 26.0 -0.0026 -0.0026 30.0 -0.0021 -0.0021 34.5 -0.0017 -0.0017 40.0 -0.0014 -0.0014 46.0 -0.0012 -0.0012 52.5 -0.0010 -0.0010 60.0 -0.0009 -0.0009 69.0 -0.0008 -0.0008 79.0 -0.0006 -0.0006 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0004 -0.0004 143.0 -0.0003 -0.0003 163.5 -0.0003 -0.0003 185.0 -0.0003 -0.0003 208.0 -0.0002 -0.0002 232.5 -0.0002 -0.0002 258.5 -0.0002 -0.0002 286.0 -0.0002 -0.0002 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 -0.8 1.0 117 9.0 -0.0435 -0.0435 11.0 -0.0146 -0.0146 13.5 -0.0079 -0.0079 16.5 -0.0051 -0.0051 19.5 -0.0038 -0.0038 22.5 -0.0030 -0.0030 26.0 -0.0024 -0.0024 30.0 -0.0020 -0.0020 34.5 -0.0017 -0.0017 40.0 -0.0014 -0.0014 46.0 -0.0012 -0.0012 52.5 -0.0010 -0.0010 60.0 -0.0008 -0.0008 69.0 -0.0007 -0.0007 79.0 -0.0006 -0.0006 90.5 -0.0005 -0.0005 105.5 -0.0004 -0.0004 123.5 -0.0004 -0.0004 143.0 -0.0003 -0.0003 163.5 -0.0003 -0.0003 185.0 -0.0002 -0.0002 208.0 -0.0002 -0.0002 232.5 -0.0002 -0.0002 258.5 -0.0002 -0.0002 286.0 -0.0002 -0.0002 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 -1.0 1.2 117 9.0 -0.0395 -0.0395 11.0 -0.0138 -0.0138 13.5 -0.0076 -0.0076 16.5 -0.0049 -0.0049 19.5 -0.0037 -0.0037 22.5 -0.0029 -0.0029 26.0 -0.0023 -0.0023 30.0 -0.0019 -0.0019 34.5 -0.0016 -0.0016 40.0 -0.0013 -0.0013 46.0 -0.0011 -0.0011 52.5 -0.0010 -0.0010 60.0 -0.0008 -0.0008 69.0 -0.0007 -0.0007 79.0 -0.0006 -0.0006 90.5 -0.0005 -0.0005 105.5 -0.0004 -0.0004 123.5 -0.0004 -0.0004 143.0 -0.0003 -0.0003 163.5 -0.0003 -0.0003 185.0 -0.0002 -0.0002 208.0 -0.0002 -0.0002 232.5 -0.0002 -0.0002 258.5 -0.0002 -0.0002 286.0 -0.0002 -0.0002 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 -1.2 1.4 117 9.0 -0.0326 -0.0326 11.0 -0.0123 -0.0123 13.5 -0.0069 -0.0069 16.5 -0.0045 -0.0045 19.5 -0.0034 -0.0034 22.5 -0.0027 -0.0027 26.0 -0.0022 -0.0022 30.0 -0.0018 -0.0018 34.5 -0.0015 -0.0015 40.0 -0.0012 -0.0012 46.0 -0.0010 -0.0010 52.5 -0.0009 -0.0009 60.0 -0.0008 -0.0008 69.0 -0.0006 -0.0006 79.0 -0.0006 -0.0006 90.5 -0.0005 -0.0005 105.5 -0.0004 -0.0004 123.5 -0.0003 -0.0003 143.0 -0.0003 -0.0003 163.5 -0.0003 -0.0003 185.0 -0.0002 -0.0002 208.0 -0.0002 -0.0002 232.5 -0.0002 -0.0002 258.5 -0.0002 -0.0002 286.0 -0.0001 -0.0001 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 -1.4 1.6 117 9.0 -0.0285 -0.0285 11.0 -0.0117 -0.0117 13.5 -0.0068 -0.0068 16.5 -0.0045 -0.0045 19.5 -0.0034 -0.0034 22.5 -0.0027 -0.0027 26.0 -0.0022 -0.0022 30.0 -0.0018 -0.0018 34.5 -0.0015 -0.0015 40.0 -0.0012 -0.0012 46.0 -0.0010 -0.0010 52.5 -0.0009 -0.0009 60.0 -0.0008 -0.0008 69.0 -0.0007 -0.0007 79.0 -0.0006 -0.0006 90.5 -0.0005 -0.0005 105.5 -0.0004 -0.0004 123.5 -0.0003 -0.0003 143.0 -0.0003 -0.0003 163.5 -0.0003 -0.0003 185.0 -0.0002 -0.0002 208.0 -0.0002 -0.0002 232.5 -0.0002 -0.0002 258.5 -0.0002 -0.0002 286.0 -0.0001 -0.0001 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 -1.6 1.8 117 9.0 -0.0293 -0.0293 11.0 -0.0133 -0.0133 13.5 -0.0079 -0.0079 16.5 -0.0053 -0.0053 19.5 -0.0040 -0.0040 22.5 -0.0032 -0.0032 26.0 -0.0026 -0.0026 30.0 -0.0022 -0.0022 34.5 -0.0018 -0.0018 40.0 -0.0015 -0.0015 46.0 -0.0013 -0.0013 52.5 -0.0011 -0.0011 60.0 -0.0009 -0.0009 69.0 -0.0008 -0.0008 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0004 -0.0004 143.0 -0.0004 -0.0004 163.5 -0.0003 -0.0003 185.0 -0.0003 -0.0003 208.0 -0.0002 -0.0002 232.5 -0.0002 -0.0002 258.5 -0.0002 -0.0002 286.0 -0.0002 -0.0002 331.0 -0.0002 -0.0002 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 -1.8 2.0 117 9.0 -0.0359 -0.0359 11.0 -0.0179 -0.0179 13.5 -0.0110 -0.0110 16.5 -0.0075 -0.0075 19.5 -0.0057 -0.0057 22.5 -0.0046 -0.0046 26.0 -0.0038 -0.0038 30.0 -0.0031 -0.0031 34.5 -0.0026 -0.0026 40.0 -0.0022 -0.0022 46.0 -0.0018 -0.0018 52.5 -0.0016 -0.0016 60.0 -0.0013 -0.0013 69.0 -0.0012 -0.0012 79.0 -0.0010 -0.0010 90.5 -0.0009 -0.0009 105.5 -0.0007 -0.0007 123.5 -0.0006 -0.0006 143.0 -0.0005 -0.0005 163.5 -0.0005 -0.0005 185.0 -0.0004 -0.0004 208.0 -0.0004 -0.0004 232.5 -0.0003 -0.0003 258.5 -0.0003 -0.0003 286.0 -0.0003 -0.0003 331.0 -0.0002 -0.0002 396.0 -0.0002 -0.0002 468.5 -0.0002 -0.0002 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 -2.0 2.2 117 9.0 -0.0468 -0.0468 11.0 -0.0261 -0.0261 13.5 -0.0168 -0.0168 16.5 -0.0118 -0.0118 19.5 -0.0091 -0.0091 22.5 -0.0074 -0.0074 26.0 -0.0060 -0.0060 30.0 -0.0050 -0.0050 34.5 -0.0042 -0.0042 40.0 -0.0035 -0.0035 46.0 -0.0030 -0.0030 52.5 -0.0026 -0.0026 60.0 -0.0022 -0.0022 69.0 -0.0019 -0.0019 79.0 -0.0016 -0.0016 90.5 -0.0014 -0.0014 105.5 -0.0012 -0.0012 123.5 -0.0010 -0.0010 143.0 -0.0009 -0.0009 163.5 -0.0008 -0.0008 185.0 -0.0007 -0.0007 208.0 -0.0006 -0.0006 232.5 -0.0005 -0.0005 258.5 -0.0005 -0.0005 286.0 -0.0004 -0.0004 331.0 -0.0004 -0.0004 396.0 -0.0003 -0.0003 468.5 -0.0003 -0.0003 549.5 -0.0002 -0.0002 639.0 -0.0002 -0.0002 738.0 -0.0002 -0.0002 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 -2.2 2.4 117 9.0 -0.0702 -0.0702 11.0 -0.0413 -0.0413 13.5 -0.0272 -0.0272 16.5 -0.0194 -0.0194 19.5 -0.0150 -0.0150 22.5 -0.0123 -0.0123 26.0 -0.0101 -0.0101 30.0 -0.0084 -0.0084 34.5 -0.0071 -0.0071 40.0 -0.0059 -0.0059 46.0 -0.0050 -0.0050 52.5 -0.0043 -0.0043 60.0 -0.0037 -0.0037 69.0 -0.0032 -0.0032 79.0 -0.0028 -0.0028 90.5 -0.0024 -0.0024 105.5 -0.0020 -0.0020 123.5 -0.0017 -0.0017 143.0 -0.0015 -0.0015 163.5 -0.0013 -0.0013 185.0 -0.0011 -0.0011 208.0 -0.0010 -0.0010 232.5 -0.0009 -0.0009 258.5 -0.0008 -0.0008 286.0 -0.0007 -0.0007 331.0 -0.0006 -0.0006 396.0 -0.0005 -0.0005 468.5 -0.0004 -0.0004 549.5 -0.0004 -0.0004 639.0 -0.0003 -0.0003 738.0 -0.0003 -0.0003 847.5 -0.0002 -0.0002 968.5 -0.0002 -0.0002 1102.0 -0.0002 -0.0002 1249.5 -0.0002 -0.0002 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 -2.4 2.6 117 9.0 -0.0861 -0.0861 11.0 -0.0451 -0.0451 13.5 -0.0283 -0.0283 16.5 -0.0196 -0.0196 19.5 -0.0149 -0.0149 22.5 -0.0121 -0.0121 26.0 -0.0099 -0.0099 30.0 -0.0082 -0.0082 34.5 -0.0068 -0.0068 40.0 -0.0057 -0.0057 46.0 -0.0048 -0.0048 52.5 -0.0042 -0.0042 60.0 -0.0036 -0.0036 69.0 -0.0031 -0.0031 79.0 -0.0026 -0.0026 90.5 -0.0023 -0.0023 105.5 -0.0019 -0.0019 123.5 -0.0016 -0.0016 143.0 -0.0014 -0.0014 163.5 -0.0012 -0.0012 185.0 -0.0011 -0.0011 208.0 -0.0009 -0.0009 232.5 -0.0008 -0.0008 258.5 -0.0008 -0.0008 286.0 -0.0007 -0.0007 331.0 -0.0006 -0.0006 396.0 -0.0005 -0.0005 468.5 -0.0004 -0.0004 549.5 -0.0003 -0.0003 639.0 -0.0003 -0.0003 738.0 -0.0003 -0.0003 847.5 -0.0002 -0.0002 968.5 -0.0002 -0.0002 1102.0 -0.0002 -0.0002 1249.5 -0.0002 -0.0002 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 -2.6 2.8 117 9.0 -0.0543 -0.0543 11.0 -0.0287 -0.0287 13.5 -0.0180 -0.0180 16.5 -0.0125 -0.0125 19.5 -0.0095 -0.0095 22.5 -0.0077 -0.0077 26.0 -0.0063 -0.0063 30.0 -0.0052 -0.0052 34.5 -0.0044 -0.0044 40.0 -0.0037 -0.0037 46.0 -0.0031 -0.0031 52.5 -0.0027 -0.0027 60.0 -0.0023 -0.0023 69.0 -0.0020 -0.0020 79.0 -0.0017 -0.0017 90.5 -0.0015 -0.0015 105.5 -0.0012 -0.0012 123.5 -0.0010 -0.0010 143.0 -0.0009 -0.0009 163.5 -0.0008 -0.0008 185.0 -0.0007 -0.0007 208.0 -0.0006 -0.0006 232.5 -0.0005 -0.0005 258.5 -0.0005 -0.0005 286.0 -0.0004 -0.0004 331.0 -0.0004 -0.0004 396.0 -0.0003 -0.0003 468.5 -0.0003 -0.0003 549.5 -0.0002 -0.0002 639.0 -0.0002 -0.0002 738.0 -0.0002 -0.0002 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 -2.8 3.0 117 9.0 -0.0044 -0.0044 11.0 -0.0022 -0.0022 13.5 -0.0013 -0.0013 16.5 -0.0009 -0.0009 19.5 -0.0007 -0.0007 22.5 -0.0006 -0.0006 26.0 -0.0005 -0.0005 30.0 -0.0004 -0.0004 34.5 -0.0003 -0.0003 40.0 -0.0003 -0.0003 46.0 -0.0002 -0.0002 52.5 -0.0002 -0.0002 60.0 -0.0002 -0.0002 69.0 -0.0001 -0.0001 79.0 -0.0001 -0.0001 90.5 -0.0001 -0.0001 105.5 -0.0001 -0.0001 123.5 -0.0001 -0.0001 143.0 -0.0001 -0.0001 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 -0.0000 -0.0000 232.5 -0.0000 -0.0000 258.5 -0.0000 -0.0000 286.0 -0.0000 -0.0000 331.0 -0.0000 -0.0000 396.0 -0.0000 -0.0000 468.5 -0.0000 -0.0000 549.5 -0.0000 -0.0000 639.0 -0.0000 -0.0000 738.0 -0.0000 -0.0000 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 -3.0 3.5 117 9.0 0.0740 0.0740 11.0 0.0399 0.0399 13.5 0.0253 0.0253 16.5 0.0176 0.0176 19.5 0.0135 0.0135 22.5 0.0109 0.0109 26.0 0.0089 0.0089 30.0 0.0074 0.0074 34.5 0.0062 0.0062 40.0 0.0052 0.0052 46.0 0.0044 0.0044 52.5 0.0038 0.0038 60.0 0.0032 0.0032 69.0 0.0028 0.0028 79.0 0.0024 0.0024 90.5 0.0021 0.0021 105.5 0.0017 0.0017 123.5 0.0015 0.0015 143.0 0.0013 0.0013 163.5 0.0011 0.0011 185.0 0.0010 0.0010 208.0 0.0009 0.0009 232.5 0.0008 0.0008 258.5 0.0007 0.0007 286.0 0.0006 0.0006 331.0 0.0005 0.0005 396.0 0.0004 0.0004 468.5 0.0004 0.0004 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0002 0.0002 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -3.5 4.0 117 9.0 0.0533 0.0533 11.0 0.0320 0.0320 13.5 0.0213 0.0213 16.5 0.0152 0.0152 19.5 0.0118 0.0118 22.5 0.0097 0.0097 26.0 0.0080 0.0080 30.0 0.0067 0.0067 34.5 0.0056 0.0056 40.0 0.0047 0.0047 46.0 0.0040 0.0040 52.5 0.0034 0.0034 60.0 0.0030 0.0030 69.0 0.0025 0.0025 79.0 0.0022 0.0022 90.5 0.0019 0.0019 105.5 0.0016 0.0016 123.5 0.0014 0.0014 143.0 0.0012 0.0012 163.5 0.0010 0.0010 185.0 0.0009 0.0009 208.0 0.0008 0.0008 232.5 0.0007 0.0007 258.5 0.0006 0.0006 286.0 0.0006 0.0006 331.0 0.0005 0.0005 396.0 0.0004 0.0004 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0002 0.0002 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -4.0 4.5 117 9.0 0.0157 0.0157 11.0 0.0103 0.0103 13.5 0.0072 0.0072 16.5 0.0053 0.0053 19.5 0.0042 0.0042 22.5 0.0035 0.0035 26.0 0.0029 0.0029 30.0 0.0024 0.0024 34.5 0.0021 0.0021 40.0 0.0017 0.0017 46.0 0.0015 0.0015 52.5 0.0013 0.0013 60.0 0.0011 0.0011 69.0 0.0009 0.0009 79.0 0.0008 0.0008 90.5 0.0007 0.0007 105.5 0.0006 0.0006 123.5 0.0005 0.0005 143.0 0.0004 0.0004 163.5 0.0004 0.0004 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0002 0.0002 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0002 0.0002 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -4.5 5.2 117 9.0 -0.0002 -0.0002 11.0 -0.0002 -0.0002 13.5 -0.0001 -0.0001 16.5 -0.0001 -0.0001 19.5 -0.0001 -0.0001 22.5 -0.0001 -0.0001 26.0 -0.0001 -0.0001 30.0 -0.0001 -0.0001 34.5 -0.0000 -0.0000 40.0 -0.0000 -0.0000 46.0 -0.0000 -0.0000 52.5 -0.0000 -0.0000 60.0 -0.0000 -0.0000 69.0 -0.0000 -0.0000 79.0 -0.0000 -0.0000 90.5 -0.0000 -0.0000 105.5 -0.0000 -0.0000 123.5 -0.0000 -0.0000 143.0 -0.0000 -0.0000 163.5 -0.0000 -0.0000 185.0 -0.0000 -0.0000 208.0 -0.0000 -0.0000 232.5 -0.0000 -0.0000 258.5 -0.0000 -0.0000 286.0 -0.0000 -0.0000 331.0 -0.0000 -0.0000 396.0 -0.0000 -0.0000 468.5 -0.0000 -0.0000 549.5 -0.0000 -0.0000 639.0 -0.0000 -0.0000 738.0 -0.0000 -0.0000 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1944.5 -0.0000 -0.0000 -[PileUpOOT] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --4.5 -4.0 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --4.0 -3.5 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --3.5 -3.0 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --3.0 -2.8 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --2.8 -2.6 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --2.6 -2.4 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --2.4 -2.2 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --2.2 -2.0 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --2.0 -1.8 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --1.8 -1.6 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --1.6 -1.4 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --1.4 -1.2 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --1.2 -1.0 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --1.0 -0.8 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --0.8 -0.6 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --0.6 -0.4 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --0.4 -0.2 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --0.2 0.0 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -0.0 0.2 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -0.2 0.4 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -0.4 0.6 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -0.6 0.8 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -0.8 1.0 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -1.0 1.2 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -1.2 1.4 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -1.4 1.6 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -1.6 1.8 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -1.8 2.0 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -2.0 2.2 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -2.2 2.4 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -2.4 2.6 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -2.6 2.8 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -2.8 3.0 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -3.0 3.5 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -3.5 4.0 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -4.0 4.5 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -4.5 5.2 117 9.0 0.0222 0.0222 11.0 0.0182 0.0182 13.5 0.0148 0.0148 16.5 0.0121 0.0121 19.5 0.0103 0.0103 22.5 0.0089 0.0089 26.0 0.0077 0.0077 30.0 0.0067 0.0067 34.5 0.0058 0.0058 40.0 0.0050 0.0050 46.0 0.0043 0.0043 52.5 0.0038 0.0038 60.0 0.0033 0.0033 69.0 0.0029 0.0029 79.0 0.0025 0.0025 90.5 0.0022 0.0022 105.5 0.0019 0.0019 123.5 0.0016 0.0016 143.0 0.0014 0.0014 163.5 0.0012 0.0012 185.0 0.0011 0.0011 208.0 0.0010 0.0010 232.5 0.0009 0.0009 258.5 0.0008 0.0008 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -[PileUpPt] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0208 0.0208 11.0 0.0170 0.0170 13.5 0.0139 0.0139 16.5 0.0113 0.0113 19.5 0.0096 0.0096 22.5 0.0083 0.0083 26.0 0.0072 0.0072 30.0 0.0062 0.0062 34.5 0.0054 0.0054 40.0 0.0047 0.0047 46.0 0.0041 0.0041 52.5 0.0036 0.0036 60.0 0.0031 0.0031 69.0 0.0027 0.0027 79.0 0.0024 0.0024 90.5 0.0021 0.0021 105.5 0.0018 0.0018 123.5 0.0015 0.0015 143.0 0.0013 0.0013 163.5 0.0011 0.0011 185.0 0.0010 0.0010 208.0 0.0009 0.0009 232.5 0.0008 0.0008 258.5 0.0007 0.0007 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --4.5 -4.0 117 9.0 0.0397 0.0397 11.0 0.0325 0.0325 13.5 0.0264 0.0264 16.5 0.0216 0.0216 19.5 0.0183 0.0183 22.5 0.0159 0.0159 26.0 0.0137 0.0137 30.0 0.0119 0.0119 34.5 0.0103 0.0103 40.0 0.0089 0.0089 46.0 0.0078 0.0078 52.5 0.0068 0.0068 60.0 0.0059 0.0059 69.0 0.0052 0.0052 79.0 0.0045 0.0045 90.5 0.0039 0.0039 105.5 0.0034 0.0034 123.5 0.0029 0.0029 143.0 0.0025 0.0025 163.5 0.0022 0.0022 185.0 0.0019 0.0019 208.0 0.0017 0.0017 232.5 0.0015 0.0015 258.5 0.0014 0.0014 286.0 0.0012 0.0012 331.0 0.0011 0.0011 396.0 0.0009 0.0009 468.5 0.0008 0.0008 549.5 0.0006 0.0006 639.0 0.0006 0.0006 738.0 0.0005 0.0005 847.5 0.0004 0.0004 968.5 0.0004 0.0004 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 --4.0 -3.5 117 9.0 0.0467 0.0467 11.0 0.0382 0.0382 13.5 0.0312 0.0312 16.5 0.0255 0.0255 19.5 0.0216 0.0216 22.5 0.0187 0.0187 26.0 0.0162 0.0162 30.0 0.0140 0.0140 34.5 0.0122 0.0122 40.0 0.0105 0.0105 46.0 0.0091 0.0091 52.5 0.0080 0.0080 60.0 0.0070 0.0070 69.0 0.0061 0.0061 79.0 0.0053 0.0053 90.5 0.0046 0.0046 105.5 0.0040 0.0040 123.5 0.0034 0.0034 143.0 0.0029 0.0029 163.5 0.0026 0.0026 185.0 0.0023 0.0023 208.0 0.0020 0.0020 232.5 0.0018 0.0018 258.5 0.0016 0.0016 286.0 0.0015 0.0015 331.0 0.0013 0.0013 396.0 0.0011 0.0011 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0005 0.0005 968.5 0.0004 0.0004 1102.0 0.0004 0.0004 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 --3.5 -3.0 117 9.0 0.0543 0.0543 11.0 0.0444 0.0444 13.5 0.0362 0.0362 16.5 0.0296 0.0296 19.5 0.0251 0.0251 22.5 0.0217 0.0217 26.0 0.0188 0.0188 30.0 0.0163 0.0163 34.5 0.0142 0.0142 40.0 0.0122 0.0122 46.0 0.0106 0.0106 52.5 0.0093 0.0093 60.0 0.0081 0.0081 69.0 0.0071 0.0071 79.0 0.0062 0.0062 90.5 0.0054 0.0054 105.5 0.0046 0.0046 123.5 0.0040 0.0040 143.0 0.0034 0.0034 163.5 0.0030 0.0030 185.0 0.0026 0.0026 208.0 0.0023 0.0023 232.5 0.0021 0.0021 258.5 0.0019 0.0019 286.0 0.0017 0.0017 331.0 0.0015 0.0015 396.0 0.0012 0.0012 468.5 0.0010 0.0010 549.5 0.0009 0.0009 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0004 0.0004 1249.5 0.0004 0.0004 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --3.0 -2.8 117 9.0 0.0572 0.0572 11.0 0.0468 0.0468 13.5 0.0381 0.0381 16.5 0.0312 0.0312 19.5 0.0264 0.0264 22.5 0.0229 0.0229 26.0 0.0198 0.0198 30.0 0.0172 0.0172 34.5 0.0149 0.0149 40.0 0.0129 0.0129 46.0 0.0112 0.0112 52.5 0.0098 0.0098 60.0 0.0086 0.0086 69.0 0.0075 0.0075 79.0 0.0065 0.0065 90.5 0.0057 0.0057 105.5 0.0049 0.0049 123.5 0.0042 0.0042 143.0 0.0036 0.0036 163.5 0.0031 0.0031 185.0 0.0028 0.0028 208.0 0.0025 0.0025 232.5 0.0022 0.0022 258.5 0.0020 0.0020 286.0 0.0018 0.0018 331.0 0.0016 0.0016 396.0 0.0013 0.0013 468.5 0.0011 0.0011 549.5 0.0009 0.0009 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --2.8 -2.6 117 9.0 0.0573 0.0573 11.0 0.0469 0.0469 13.5 0.0382 0.0382 16.5 0.0312 0.0312 19.5 0.0264 0.0264 22.5 0.0229 0.0229 26.0 0.0198 0.0198 30.0 0.0172 0.0172 34.5 0.0149 0.0149 40.0 0.0129 0.0129 46.0 0.0112 0.0112 52.5 0.0098 0.0098 60.0 0.0086 0.0086 69.0 0.0075 0.0075 79.0 0.0065 0.0065 90.5 0.0057 0.0057 105.5 0.0049 0.0049 123.5 0.0042 0.0042 143.0 0.0036 0.0036 163.5 0.0032 0.0032 185.0 0.0028 0.0028 208.0 0.0025 0.0025 232.5 0.0022 0.0022 258.5 0.0020 0.0020 286.0 0.0018 0.0018 331.0 0.0016 0.0016 396.0 0.0013 0.0013 468.5 0.0011 0.0011 549.5 0.0009 0.0009 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --2.6 -2.4 117 9.0 0.0542 0.0542 11.0 0.0443 0.0443 13.5 0.0361 0.0361 16.5 0.0295 0.0295 19.5 0.0250 0.0250 22.5 0.0217 0.0217 26.0 0.0187 0.0187 30.0 0.0162 0.0162 34.5 0.0141 0.0141 40.0 0.0122 0.0122 46.0 0.0106 0.0106 52.5 0.0093 0.0093 60.0 0.0081 0.0081 69.0 0.0071 0.0071 79.0 0.0062 0.0062 90.5 0.0054 0.0054 105.5 0.0046 0.0046 123.5 0.0039 0.0039 143.0 0.0034 0.0034 163.5 0.0030 0.0030 185.0 0.0026 0.0026 208.0 0.0023 0.0023 232.5 0.0021 0.0021 258.5 0.0019 0.0019 286.0 0.0017 0.0017 331.0 0.0015 0.0015 396.0 0.0012 0.0012 468.5 0.0010 0.0010 549.5 0.0009 0.0009 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0004 0.0004 1249.5 0.0004 0.0004 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --2.4 -2.2 117 9.0 0.0489 0.0489 11.0 0.0400 0.0400 13.5 0.0326 0.0326 16.5 0.0266 0.0266 19.5 0.0225 0.0225 22.5 0.0195 0.0195 26.0 0.0169 0.0169 30.0 0.0147 0.0147 34.5 0.0127 0.0127 40.0 0.0110 0.0110 46.0 0.0096 0.0096 52.5 0.0084 0.0084 60.0 0.0073 0.0073 69.0 0.0064 0.0064 79.0 0.0056 0.0056 90.5 0.0049 0.0049 105.5 0.0042 0.0042 123.5 0.0036 0.0036 143.0 0.0031 0.0031 163.5 0.0027 0.0027 185.0 0.0024 0.0024 208.0 0.0021 0.0021 232.5 0.0019 0.0019 258.5 0.0017 0.0017 286.0 0.0015 0.0015 331.0 0.0013 0.0013 396.0 0.0011 0.0011 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0005 0.0005 968.5 0.0005 0.0005 1102.0 0.0004 0.0004 1249.5 0.0004 0.0004 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 --2.2 -2.0 117 9.0 0.0533 0.0533 11.0 0.0436 0.0436 13.5 0.0356 0.0356 16.5 0.0291 0.0291 19.5 0.0246 0.0246 22.5 0.0213 0.0213 26.0 0.0185 0.0185 30.0 0.0160 0.0160 34.5 0.0139 0.0139 40.0 0.0120 0.0120 46.0 0.0104 0.0104 52.5 0.0091 0.0091 60.0 0.0080 0.0080 69.0 0.0070 0.0070 79.0 0.0061 0.0061 90.5 0.0053 0.0053 105.5 0.0045 0.0045 123.5 0.0039 0.0039 143.0 0.0034 0.0034 163.5 0.0029 0.0029 185.0 0.0026 0.0026 208.0 0.0023 0.0023 232.5 0.0021 0.0021 258.5 0.0019 0.0019 286.0 0.0017 0.0017 331.0 0.0014 0.0014 396.0 0.0012 0.0012 468.5 0.0010 0.0010 549.5 0.0009 0.0009 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0004 0.0004 1249.5 0.0004 0.0004 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0002 0.0002 --2.0 -1.8 117 9.0 0.0560 0.0560 11.0 0.0458 0.0458 13.5 0.0373 0.0373 16.5 0.0306 0.0306 19.5 0.0259 0.0259 22.5 0.0224 0.0224 26.0 0.0194 0.0194 30.0 0.0168 0.0168 34.5 0.0146 0.0146 40.0 0.0126 0.0126 46.0 0.0110 0.0110 52.5 0.0096 0.0096 60.0 0.0084 0.0084 69.0 0.0073 0.0073 79.0 0.0064 0.0064 90.5 0.0056 0.0056 105.5 0.0048 0.0048 123.5 0.0041 0.0041 143.0 0.0035 0.0035 163.5 0.0031 0.0031 185.0 0.0027 0.0027 208.0 0.0024 0.0024 232.5 0.0022 0.0022 258.5 0.0020 0.0020 286.0 0.0018 0.0018 331.0 0.0015 0.0015 396.0 0.0013 0.0013 468.5 0.0011 0.0011 549.5 0.0009 0.0009 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --1.8 -1.6 117 9.0 0.0587 0.0587 11.0 0.0480 0.0480 13.5 0.0391 0.0391 16.5 0.0320 0.0320 19.5 0.0271 0.0271 22.5 0.0235 0.0235 26.0 0.0203 0.0203 30.0 0.0176 0.0176 34.5 0.0153 0.0153 40.0 0.0132 0.0132 46.0 0.0115 0.0115 52.5 0.0101 0.0101 60.0 0.0088 0.0088 69.0 0.0077 0.0077 79.0 0.0067 0.0067 90.5 0.0058 0.0058 105.5 0.0050 0.0050 123.5 0.0043 0.0043 143.0 0.0037 0.0037 163.5 0.0032 0.0032 185.0 0.0029 0.0029 208.0 0.0025 0.0025 232.5 0.0023 0.0023 258.5 0.0020 0.0020 286.0 0.0018 0.0018 331.0 0.0016 0.0016 396.0 0.0013 0.0013 468.5 0.0011 0.0011 549.5 0.0010 0.0010 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --1.6 -1.4 117 9.0 0.0607 0.0607 11.0 0.0497 0.0497 13.5 0.0405 0.0405 16.5 0.0331 0.0331 19.5 0.0280 0.0280 22.5 0.0243 0.0243 26.0 0.0210 0.0210 30.0 0.0182 0.0182 34.5 0.0158 0.0158 40.0 0.0137 0.0137 46.0 0.0119 0.0119 52.5 0.0104 0.0104 60.0 0.0091 0.0091 69.0 0.0079 0.0079 79.0 0.0069 0.0069 90.5 0.0060 0.0060 105.5 0.0052 0.0052 123.5 0.0044 0.0044 143.0 0.0038 0.0038 163.5 0.0033 0.0033 185.0 0.0030 0.0030 208.0 0.0026 0.0026 232.5 0.0024 0.0024 258.5 0.0021 0.0021 286.0 0.0019 0.0019 331.0 0.0017 0.0017 396.0 0.0014 0.0014 468.5 0.0012 0.0012 549.5 0.0010 0.0010 639.0 0.0009 0.0009 738.0 0.0007 0.0007 847.5 0.0006 0.0006 968.5 0.0006 0.0006 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --1.4 -1.2 117 9.0 0.0623 0.0623 11.0 0.0510 0.0510 13.5 0.0415 0.0415 16.5 0.0340 0.0340 19.5 0.0288 0.0288 22.5 0.0249 0.0249 26.0 0.0216 0.0216 30.0 0.0187 0.0187 34.5 0.0163 0.0163 40.0 0.0140 0.0140 46.0 0.0122 0.0122 52.5 0.0107 0.0107 60.0 0.0093 0.0093 69.0 0.0081 0.0081 79.0 0.0071 0.0071 90.5 0.0062 0.0062 105.5 0.0053 0.0053 123.5 0.0045 0.0045 143.0 0.0039 0.0039 163.5 0.0034 0.0034 185.0 0.0030 0.0030 208.0 0.0027 0.0027 232.5 0.0024 0.0024 258.5 0.0022 0.0022 286.0 0.0020 0.0020 331.0 0.0017 0.0017 396.0 0.0014 0.0014 468.5 0.0012 0.0012 549.5 0.0010 0.0010 639.0 0.0009 0.0009 738.0 0.0008 0.0008 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --1.2 -1.0 117 9.0 0.0632 0.0632 11.0 0.0517 0.0517 13.5 0.0421 0.0421 16.5 0.0345 0.0345 19.5 0.0292 0.0292 22.5 0.0253 0.0253 26.0 0.0219 0.0219 30.0 0.0190 0.0190 34.5 0.0165 0.0165 40.0 0.0142 0.0142 46.0 0.0124 0.0124 52.5 0.0108 0.0108 60.0 0.0095 0.0095 69.0 0.0082 0.0082 79.0 0.0072 0.0072 90.5 0.0063 0.0063 105.5 0.0054 0.0054 123.5 0.0046 0.0046 143.0 0.0040 0.0040 163.5 0.0035 0.0035 185.0 0.0031 0.0031 208.0 0.0027 0.0027 232.5 0.0024 0.0024 258.5 0.0022 0.0022 286.0 0.0020 0.0020 331.0 0.0017 0.0017 396.0 0.0014 0.0014 468.5 0.0012 0.0012 549.5 0.0010 0.0010 639.0 0.0009 0.0009 738.0 0.0008 0.0008 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --1.0 -0.8 117 9.0 0.0630 0.0630 11.0 0.0515 0.0515 13.5 0.0420 0.0420 16.5 0.0344 0.0344 19.5 0.0291 0.0291 22.5 0.0252 0.0252 26.0 0.0218 0.0218 30.0 0.0189 0.0189 34.5 0.0164 0.0164 40.0 0.0142 0.0142 46.0 0.0123 0.0123 52.5 0.0108 0.0108 60.0 0.0094 0.0094 69.0 0.0082 0.0082 79.0 0.0072 0.0072 90.5 0.0063 0.0063 105.5 0.0054 0.0054 123.5 0.0046 0.0046 143.0 0.0040 0.0040 163.5 0.0035 0.0035 185.0 0.0031 0.0031 208.0 0.0027 0.0027 232.5 0.0024 0.0024 258.5 0.0022 0.0022 286.0 0.0020 0.0020 331.0 0.0017 0.0017 396.0 0.0014 0.0014 468.5 0.0012 0.0012 549.5 0.0010 0.0010 639.0 0.0009 0.0009 738.0 0.0008 0.0008 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --0.8 -0.6 117 9.0 0.0632 0.0632 11.0 0.0517 0.0517 13.5 0.0421 0.0421 16.5 0.0345 0.0345 19.5 0.0292 0.0292 22.5 0.0253 0.0253 26.0 0.0219 0.0219 30.0 0.0189 0.0189 34.5 0.0165 0.0165 40.0 0.0142 0.0142 46.0 0.0124 0.0124 52.5 0.0108 0.0108 60.0 0.0095 0.0095 69.0 0.0082 0.0082 79.0 0.0072 0.0072 90.5 0.0063 0.0063 105.5 0.0054 0.0054 123.5 0.0046 0.0046 143.0 0.0040 0.0040 163.5 0.0035 0.0035 185.0 0.0031 0.0031 208.0 0.0027 0.0027 232.5 0.0024 0.0024 258.5 0.0022 0.0022 286.0 0.0020 0.0020 331.0 0.0017 0.0017 396.0 0.0014 0.0014 468.5 0.0012 0.0012 549.5 0.0010 0.0010 639.0 0.0009 0.0009 738.0 0.0008 0.0008 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --0.6 -0.4 117 9.0 0.0641 0.0641 11.0 0.0525 0.0525 13.5 0.0428 0.0428 16.5 0.0350 0.0350 19.5 0.0296 0.0296 22.5 0.0257 0.0257 26.0 0.0222 0.0222 30.0 0.0192 0.0192 34.5 0.0167 0.0167 40.0 0.0144 0.0144 46.0 0.0126 0.0126 52.5 0.0110 0.0110 60.0 0.0096 0.0096 69.0 0.0084 0.0084 79.0 0.0073 0.0073 90.5 0.0064 0.0064 105.5 0.0055 0.0055 123.5 0.0047 0.0047 143.0 0.0040 0.0040 163.5 0.0035 0.0035 185.0 0.0031 0.0031 208.0 0.0028 0.0028 232.5 0.0025 0.0025 258.5 0.0022 0.0022 286.0 0.0020 0.0020 331.0 0.0017 0.0017 396.0 0.0015 0.0015 468.5 0.0012 0.0012 549.5 0.0011 0.0011 639.0 0.0009 0.0009 738.0 0.0008 0.0008 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --0.4 -0.2 117 9.0 0.0650 0.0650 11.0 0.0532 0.0532 13.5 0.0434 0.0434 16.5 0.0355 0.0355 19.5 0.0300 0.0300 22.5 0.0260 0.0260 26.0 0.0225 0.0225 30.0 0.0195 0.0195 34.5 0.0170 0.0170 40.0 0.0146 0.0146 46.0 0.0127 0.0127 52.5 0.0111 0.0111 60.0 0.0098 0.0098 69.0 0.0085 0.0085 79.0 0.0074 0.0074 90.5 0.0065 0.0065 105.5 0.0055 0.0055 123.5 0.0047 0.0047 143.0 0.0041 0.0041 163.5 0.0036 0.0036 185.0 0.0032 0.0032 208.0 0.0028 0.0028 232.5 0.0025 0.0025 258.5 0.0023 0.0023 286.0 0.0020 0.0020 331.0 0.0018 0.0018 396.0 0.0015 0.0015 468.5 0.0012 0.0012 549.5 0.0011 0.0011 639.0 0.0009 0.0009 738.0 0.0008 0.0008 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --0.2 0.0 117 9.0 0.0652 0.0652 11.0 0.0533 0.0533 13.5 0.0434 0.0434 16.5 0.0355 0.0355 19.5 0.0301 0.0301 22.5 0.0261 0.0261 26.0 0.0226 0.0226 30.0 0.0196 0.0196 34.5 0.0170 0.0170 40.0 0.0147 0.0147 46.0 0.0128 0.0128 52.5 0.0112 0.0112 60.0 0.0098 0.0098 69.0 0.0085 0.0085 79.0 0.0074 0.0074 90.5 0.0065 0.0065 105.5 0.0056 0.0056 123.5 0.0047 0.0047 143.0 0.0041 0.0041 163.5 0.0036 0.0036 185.0 0.0032 0.0032 208.0 0.0028 0.0028 232.5 0.0025 0.0025 258.5 0.0023 0.0023 286.0 0.0021 0.0021 331.0 0.0018 0.0018 396.0 0.0015 0.0015 468.5 0.0013 0.0013 549.5 0.0011 0.0011 639.0 0.0009 0.0009 738.0 0.0008 0.0008 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -0.0 0.2 117 9.0 0.0651 0.0651 11.0 0.0532 0.0532 13.5 0.0434 0.0434 16.5 0.0355 0.0355 19.5 0.0300 0.0300 22.5 0.0260 0.0260 26.0 0.0225 0.0225 30.0 0.0195 0.0195 34.5 0.0170 0.0170 40.0 0.0146 0.0146 46.0 0.0127 0.0127 52.5 0.0112 0.0112 60.0 0.0098 0.0098 69.0 0.0085 0.0085 79.0 0.0074 0.0074 90.5 0.0065 0.0065 105.5 0.0056 0.0056 123.5 0.0047 0.0047 143.0 0.0041 0.0041 163.5 0.0036 0.0036 185.0 0.0032 0.0032 208.0 0.0028 0.0028 232.5 0.0025 0.0025 258.5 0.0023 0.0023 286.0 0.0020 0.0020 331.0 0.0018 0.0018 396.0 0.0015 0.0015 468.5 0.0013 0.0013 549.5 0.0011 0.0011 639.0 0.0009 0.0009 738.0 0.0008 0.0008 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -0.2 0.4 117 9.0 0.0645 0.0645 11.0 0.0528 0.0528 13.5 0.0430 0.0430 16.5 0.0352 0.0352 19.5 0.0298 0.0298 22.5 0.0258 0.0258 26.0 0.0223 0.0223 30.0 0.0194 0.0194 34.5 0.0168 0.0168 40.0 0.0145 0.0145 46.0 0.0126 0.0126 52.5 0.0111 0.0111 60.0 0.0097 0.0097 69.0 0.0084 0.0084 79.0 0.0073 0.0073 90.5 0.0064 0.0064 105.5 0.0055 0.0055 123.5 0.0047 0.0047 143.0 0.0041 0.0041 163.5 0.0036 0.0036 185.0 0.0031 0.0031 208.0 0.0028 0.0028 232.5 0.0025 0.0025 258.5 0.0022 0.0022 286.0 0.0020 0.0020 331.0 0.0018 0.0018 396.0 0.0015 0.0015 468.5 0.0012 0.0012 549.5 0.0011 0.0011 639.0 0.0009 0.0009 738.0 0.0008 0.0008 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -0.4 0.6 117 9.0 0.0632 0.0632 11.0 0.0517 0.0517 13.5 0.0421 0.0421 16.5 0.0344 0.0344 19.5 0.0291 0.0291 22.5 0.0253 0.0253 26.0 0.0219 0.0219 30.0 0.0189 0.0189 34.5 0.0165 0.0165 40.0 0.0142 0.0142 46.0 0.0124 0.0124 52.5 0.0108 0.0108 60.0 0.0095 0.0095 69.0 0.0082 0.0082 79.0 0.0072 0.0072 90.5 0.0063 0.0063 105.5 0.0054 0.0054 123.5 0.0046 0.0046 143.0 0.0040 0.0040 163.5 0.0035 0.0035 185.0 0.0031 0.0031 208.0 0.0027 0.0027 232.5 0.0024 0.0024 258.5 0.0022 0.0022 286.0 0.0020 0.0020 331.0 0.0017 0.0017 396.0 0.0014 0.0014 468.5 0.0012 0.0012 549.5 0.0010 0.0010 639.0 0.0009 0.0009 738.0 0.0008 0.0008 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -0.6 0.8 117 9.0 0.0625 0.0625 11.0 0.0511 0.0511 13.5 0.0416 0.0416 16.5 0.0341 0.0341 19.5 0.0288 0.0288 22.5 0.0250 0.0250 26.0 0.0216 0.0216 30.0 0.0187 0.0187 34.5 0.0163 0.0163 40.0 0.0141 0.0141 46.0 0.0122 0.0122 52.5 0.0107 0.0107 60.0 0.0094 0.0094 69.0 0.0081 0.0081 79.0 0.0071 0.0071 90.5 0.0062 0.0062 105.5 0.0053 0.0053 123.5 0.0046 0.0046 143.0 0.0039 0.0039 163.5 0.0034 0.0034 185.0 0.0030 0.0030 208.0 0.0027 0.0027 232.5 0.0024 0.0024 258.5 0.0022 0.0022 286.0 0.0020 0.0020 331.0 0.0017 0.0017 396.0 0.0014 0.0014 468.5 0.0012 0.0012 549.5 0.0010 0.0010 639.0 0.0009 0.0009 738.0 0.0008 0.0008 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -0.8 1.0 117 9.0 0.0625 0.0625 11.0 0.0511 0.0511 13.5 0.0417 0.0417 16.5 0.0341 0.0341 19.5 0.0289 0.0289 22.5 0.0250 0.0250 26.0 0.0216 0.0216 30.0 0.0188 0.0188 34.5 0.0163 0.0163 40.0 0.0141 0.0141 46.0 0.0122 0.0122 52.5 0.0107 0.0107 60.0 0.0094 0.0094 69.0 0.0082 0.0082 79.0 0.0071 0.0071 90.5 0.0062 0.0062 105.5 0.0053 0.0053 123.5 0.0046 0.0046 143.0 0.0039 0.0039 163.5 0.0034 0.0034 185.0 0.0030 0.0030 208.0 0.0027 0.0027 232.5 0.0024 0.0024 258.5 0.0022 0.0022 286.0 0.0020 0.0020 331.0 0.0017 0.0017 396.0 0.0014 0.0014 468.5 0.0012 0.0012 549.5 0.0010 0.0010 639.0 0.0009 0.0009 738.0 0.0008 0.0008 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -1.0 1.2 117 9.0 0.0620 0.0620 11.0 0.0507 0.0507 13.5 0.0413 0.0413 16.5 0.0338 0.0338 19.5 0.0286 0.0286 22.5 0.0248 0.0248 26.0 0.0215 0.0215 30.0 0.0186 0.0186 34.5 0.0162 0.0162 40.0 0.0140 0.0140 46.0 0.0121 0.0121 52.5 0.0106 0.0106 60.0 0.0093 0.0093 69.0 0.0081 0.0081 79.0 0.0071 0.0071 90.5 0.0062 0.0062 105.5 0.0053 0.0053 123.5 0.0045 0.0045 143.0 0.0039 0.0039 163.5 0.0034 0.0034 185.0 0.0030 0.0030 208.0 0.0027 0.0027 232.5 0.0024 0.0024 258.5 0.0022 0.0022 286.0 0.0020 0.0020 331.0 0.0017 0.0017 396.0 0.0014 0.0014 468.5 0.0012 0.0012 549.5 0.0010 0.0010 639.0 0.0009 0.0009 738.0 0.0008 0.0008 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -1.2 1.4 117 9.0 0.0609 0.0609 11.0 0.0498 0.0498 13.5 0.0406 0.0406 16.5 0.0332 0.0332 19.5 0.0281 0.0281 22.5 0.0244 0.0244 26.0 0.0211 0.0211 30.0 0.0183 0.0183 34.5 0.0159 0.0159 40.0 0.0137 0.0137 46.0 0.0119 0.0119 52.5 0.0104 0.0104 60.0 0.0091 0.0091 69.0 0.0079 0.0079 79.0 0.0069 0.0069 90.5 0.0061 0.0061 105.5 0.0052 0.0052 123.5 0.0044 0.0044 143.0 0.0038 0.0038 163.5 0.0034 0.0034 185.0 0.0030 0.0030 208.0 0.0026 0.0026 232.5 0.0024 0.0024 258.5 0.0021 0.0021 286.0 0.0019 0.0019 331.0 0.0017 0.0017 396.0 0.0014 0.0014 468.5 0.0012 0.0012 549.5 0.0010 0.0010 639.0 0.0009 0.0009 738.0 0.0007 0.0007 847.5 0.0006 0.0006 968.5 0.0006 0.0006 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -1.4 1.6 117 9.0 0.0594 0.0594 11.0 0.0486 0.0486 13.5 0.0396 0.0396 16.5 0.0324 0.0324 19.5 0.0274 0.0274 22.5 0.0238 0.0238 26.0 0.0206 0.0206 30.0 0.0178 0.0178 34.5 0.0155 0.0155 40.0 0.0134 0.0134 46.0 0.0116 0.0116 52.5 0.0102 0.0102 60.0 0.0089 0.0089 69.0 0.0077 0.0077 79.0 0.0068 0.0068 90.5 0.0059 0.0059 105.5 0.0051 0.0051 123.5 0.0043 0.0043 143.0 0.0037 0.0037 163.5 0.0033 0.0033 185.0 0.0029 0.0029 208.0 0.0026 0.0026 232.5 0.0023 0.0023 258.5 0.0021 0.0021 286.0 0.0019 0.0019 331.0 0.0016 0.0016 396.0 0.0014 0.0014 468.5 0.0011 0.0011 549.5 0.0010 0.0010 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0006 0.0006 968.5 0.0006 0.0006 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -1.6 1.8 117 9.0 0.0573 0.0573 11.0 0.0469 0.0469 13.5 0.0382 0.0382 16.5 0.0312 0.0312 19.5 0.0264 0.0264 22.5 0.0229 0.0229 26.0 0.0198 0.0198 30.0 0.0172 0.0172 34.5 0.0149 0.0149 40.0 0.0129 0.0129 46.0 0.0112 0.0112 52.5 0.0098 0.0098 60.0 0.0086 0.0086 69.0 0.0075 0.0075 79.0 0.0065 0.0065 90.5 0.0057 0.0057 105.5 0.0049 0.0049 123.5 0.0042 0.0042 143.0 0.0036 0.0036 163.5 0.0032 0.0032 185.0 0.0028 0.0028 208.0 0.0025 0.0025 232.5 0.0022 0.0022 258.5 0.0020 0.0020 286.0 0.0018 0.0018 331.0 0.0016 0.0016 396.0 0.0013 0.0013 468.5 0.0011 0.0011 549.5 0.0009 0.0009 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -1.8 2.0 117 9.0 0.0547 0.0547 11.0 0.0448 0.0448 13.5 0.0365 0.0365 16.5 0.0298 0.0298 19.5 0.0253 0.0253 22.5 0.0219 0.0219 26.0 0.0189 0.0189 30.0 0.0164 0.0164 34.5 0.0143 0.0143 40.0 0.0123 0.0123 46.0 0.0107 0.0107 52.5 0.0094 0.0094 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0062 0.0062 90.5 0.0054 0.0054 105.5 0.0047 0.0047 123.5 0.0040 0.0040 143.0 0.0034 0.0034 163.5 0.0030 0.0030 185.0 0.0027 0.0027 208.0 0.0024 0.0024 232.5 0.0021 0.0021 258.5 0.0019 0.0019 286.0 0.0017 0.0017 331.0 0.0015 0.0015 396.0 0.0012 0.0012 468.5 0.0011 0.0011 549.5 0.0009 0.0009 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0004 0.0004 1249.5 0.0004 0.0004 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -2.0 2.2 117 9.0 0.0506 0.0506 11.0 0.0414 0.0414 13.5 0.0337 0.0337 16.5 0.0276 0.0276 19.5 0.0234 0.0234 22.5 0.0202 0.0202 26.0 0.0175 0.0175 30.0 0.0152 0.0152 34.5 0.0132 0.0132 40.0 0.0114 0.0114 46.0 0.0099 0.0099 52.5 0.0087 0.0087 60.0 0.0076 0.0076 69.0 0.0066 0.0066 79.0 0.0058 0.0058 90.5 0.0050 0.0050 105.5 0.0043 0.0043 123.5 0.0037 0.0037 143.0 0.0032 0.0032 163.5 0.0028 0.0028 185.0 0.0025 0.0025 208.0 0.0022 0.0022 232.5 0.0020 0.0020 258.5 0.0018 0.0018 286.0 0.0016 0.0016 331.0 0.0014 0.0014 396.0 0.0011 0.0011 468.5 0.0010 0.0010 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0005 0.0005 968.5 0.0005 0.0005 1102.0 0.0004 0.0004 1249.5 0.0004 0.0004 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0002 0.0002 -2.2 2.4 117 9.0 0.0480 0.0480 11.0 0.0393 0.0393 13.5 0.0320 0.0320 16.5 0.0262 0.0262 19.5 0.0222 0.0222 22.5 0.0192 0.0192 26.0 0.0166 0.0166 30.0 0.0144 0.0144 34.5 0.0125 0.0125 40.0 0.0108 0.0108 46.0 0.0094 0.0094 52.5 0.0082 0.0082 60.0 0.0072 0.0072 69.0 0.0063 0.0063 79.0 0.0055 0.0055 90.5 0.0048 0.0048 105.5 0.0041 0.0041 123.5 0.0035 0.0035 143.0 0.0030 0.0030 163.5 0.0026 0.0026 185.0 0.0023 0.0023 208.0 0.0021 0.0021 232.5 0.0019 0.0019 258.5 0.0017 0.0017 286.0 0.0015 0.0015 331.0 0.0013 0.0013 396.0 0.0011 0.0011 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0005 0.0005 968.5 0.0004 0.0004 1102.0 0.0004 0.0004 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 -2.4 2.6 117 9.0 0.0532 0.0532 11.0 0.0436 0.0436 13.5 0.0355 0.0355 16.5 0.0290 0.0290 19.5 0.0246 0.0246 22.5 0.0213 0.0213 26.0 0.0184 0.0184 30.0 0.0160 0.0160 34.5 0.0139 0.0139 40.0 0.0120 0.0120 46.0 0.0104 0.0104 52.5 0.0091 0.0091 60.0 0.0080 0.0080 69.0 0.0069 0.0069 79.0 0.0061 0.0061 90.5 0.0053 0.0053 105.5 0.0045 0.0045 123.5 0.0039 0.0039 143.0 0.0034 0.0034 163.5 0.0029 0.0029 185.0 0.0026 0.0026 208.0 0.0023 0.0023 232.5 0.0021 0.0021 258.5 0.0019 0.0019 286.0 0.0017 0.0017 331.0 0.0014 0.0014 396.0 0.0012 0.0012 468.5 0.0010 0.0010 549.5 0.0009 0.0009 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0004 0.0004 1249.5 0.0004 0.0004 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0002 0.0002 -2.6 2.8 117 9.0 0.0530 0.0530 11.0 0.0434 0.0434 13.5 0.0353 0.0353 16.5 0.0289 0.0289 19.5 0.0245 0.0245 22.5 0.0212 0.0212 26.0 0.0183 0.0183 30.0 0.0159 0.0159 34.5 0.0138 0.0138 40.0 0.0119 0.0119 46.0 0.0104 0.0104 52.5 0.0091 0.0091 60.0 0.0080 0.0080 69.0 0.0069 0.0069 79.0 0.0060 0.0060 90.5 0.0053 0.0053 105.5 0.0045 0.0045 123.5 0.0039 0.0039 143.0 0.0033 0.0033 163.5 0.0029 0.0029 185.0 0.0026 0.0026 208.0 0.0023 0.0023 232.5 0.0021 0.0021 258.5 0.0018 0.0018 286.0 0.0017 0.0017 331.0 0.0014 0.0014 396.0 0.0012 0.0012 468.5 0.0010 0.0010 549.5 0.0009 0.0009 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0004 0.0004 1249.5 0.0004 0.0004 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0002 0.0002 -2.8 3.0 117 9.0 0.0548 0.0548 11.0 0.0449 0.0449 13.5 0.0366 0.0366 16.5 0.0299 0.0299 19.5 0.0253 0.0253 22.5 0.0219 0.0219 26.0 0.0190 0.0190 30.0 0.0164 0.0164 34.5 0.0143 0.0143 40.0 0.0123 0.0123 46.0 0.0107 0.0107 52.5 0.0094 0.0094 60.0 0.0082 0.0082 69.0 0.0072 0.0072 79.0 0.0062 0.0062 90.5 0.0055 0.0055 105.5 0.0047 0.0047 123.5 0.0040 0.0040 143.0 0.0035 0.0035 163.5 0.0030 0.0030 185.0 0.0027 0.0027 208.0 0.0024 0.0024 232.5 0.0021 0.0021 258.5 0.0019 0.0019 286.0 0.0017 0.0017 331.0 0.0015 0.0015 396.0 0.0012 0.0012 468.5 0.0011 0.0011 549.5 0.0009 0.0009 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0004 0.0004 1249.5 0.0004 0.0004 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -3.0 3.5 117 9.0 0.0522 0.0522 11.0 0.0427 0.0427 13.5 0.0348 0.0348 16.5 0.0285 0.0285 19.5 0.0241 0.0241 22.5 0.0209 0.0209 26.0 0.0181 0.0181 30.0 0.0157 0.0157 34.5 0.0136 0.0136 40.0 0.0117 0.0117 46.0 0.0102 0.0102 52.5 0.0090 0.0090 60.0 0.0078 0.0078 69.0 0.0068 0.0068 79.0 0.0059 0.0059 90.5 0.0052 0.0052 105.5 0.0045 0.0045 123.5 0.0038 0.0038 143.0 0.0033 0.0033 163.5 0.0029 0.0029 185.0 0.0025 0.0025 208.0 0.0023 0.0023 232.5 0.0020 0.0020 258.5 0.0018 0.0018 286.0 0.0016 0.0016 331.0 0.0014 0.0014 396.0 0.0012 0.0012 468.5 0.0010 0.0010 549.5 0.0009 0.0009 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0004 0.0004 1249.5 0.0004 0.0004 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0002 0.0002 -3.5 4.0 117 9.0 0.0469 0.0469 11.0 0.0384 0.0384 13.5 0.0313 0.0313 16.5 0.0256 0.0256 19.5 0.0216 0.0216 22.5 0.0188 0.0188 26.0 0.0162 0.0162 30.0 0.0141 0.0141 34.5 0.0122 0.0122 40.0 0.0105 0.0105 46.0 0.0092 0.0092 52.5 0.0080 0.0080 60.0 0.0070 0.0070 69.0 0.0061 0.0061 79.0 0.0053 0.0053 90.5 0.0047 0.0047 105.5 0.0040 0.0040 123.5 0.0034 0.0034 143.0 0.0030 0.0030 163.5 0.0026 0.0026 185.0 0.0023 0.0023 208.0 0.0020 0.0020 232.5 0.0018 0.0018 258.5 0.0016 0.0016 286.0 0.0015 0.0015 331.0 0.0013 0.0013 396.0 0.0011 0.0011 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0007 0.0007 738.0 0.0006 0.0006 847.5 0.0005 0.0005 968.5 0.0004 0.0004 1102.0 0.0004 0.0004 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 -4.0 4.5 117 9.0 0.0402 0.0402 11.0 0.0329 0.0329 13.5 0.0268 0.0268 16.5 0.0219 0.0219 19.5 0.0185 0.0185 22.5 0.0161 0.0161 26.0 0.0139 0.0139 30.0 0.0121 0.0121 34.5 0.0105 0.0105 40.0 0.0090 0.0090 46.0 0.0079 0.0079 52.5 0.0069 0.0069 60.0 0.0060 0.0060 69.0 0.0052 0.0052 79.0 0.0046 0.0046 90.5 0.0040 0.0040 105.5 0.0034 0.0034 123.5 0.0029 0.0029 143.0 0.0025 0.0025 163.5 0.0022 0.0022 185.0 0.0020 0.0020 208.0 0.0017 0.0017 232.5 0.0016 0.0016 258.5 0.0014 0.0014 286.0 0.0013 0.0013 331.0 0.0011 0.0011 396.0 0.0009 0.0009 468.5 0.0008 0.0008 549.5 0.0007 0.0007 639.0 0.0006 0.0006 738.0 0.0005 0.0005 847.5 0.0004 0.0004 968.5 0.0004 0.0004 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 -4.5 5.2 117 9.0 0.0213 0.0213 11.0 0.0174 0.0174 13.5 0.0142 0.0142 16.5 0.0116 0.0116 19.5 0.0098 0.0098 22.5 0.0085 0.0085 26.0 0.0074 0.0074 30.0 0.0064 0.0064 34.5 0.0056 0.0056 40.0 0.0048 0.0048 46.0 0.0042 0.0042 52.5 0.0037 0.0037 60.0 0.0032 0.0032 69.0 0.0028 0.0028 79.0 0.0024 0.0024 90.5 0.0021 0.0021 105.5 0.0018 0.0018 123.5 0.0016 0.0016 143.0 0.0013 0.0013 163.5 0.0012 0.0012 185.0 0.0010 0.0010 208.0 0.0009 0.0009 232.5 0.0008 0.0008 258.5 0.0007 0.0007 286.0 0.0007 0.0007 331.0 0.0006 0.0006 396.0 0.0005 0.0005 468.5 0.0004 0.0004 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -[PileUpBias] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 -0.0266 -0.0266 11.0 -0.0204 -0.0204 13.5 -0.0158 -0.0158 16.5 -0.0124 -0.0124 19.5 -0.0102 -0.0102 22.5 -0.0087 -0.0087 26.0 -0.0074 -0.0074 30.0 -0.0063 -0.0063 34.5 -0.0054 -0.0054 40.0 -0.0046 -0.0046 46.0 -0.0040 -0.0040 52.5 -0.0035 -0.0035 60.0 -0.0030 -0.0030 69.0 -0.0026 -0.0026 79.0 -0.0023 -0.0023 90.5 -0.0020 -0.0020 105.5 -0.0017 -0.0017 123.5 -0.0014 -0.0014 143.0 -0.0012 -0.0012 163.5 -0.0011 -0.0011 185.0 -0.0009 -0.0009 208.0 -0.0008 -0.0008 232.5 -0.0008 -0.0008 258.5 -0.0007 -0.0007 286.0 -0.0006 -0.0006 331.0 -0.0005 -0.0005 396.0 -0.0004 -0.0004 468.5 -0.0004 -0.0004 549.5 -0.0003 -0.0003 639.0 -0.0003 -0.0003 738.0 -0.0002 -0.0002 847.5 -0.0002 -0.0002 968.5 -0.0002 -0.0002 1102.0 -0.0002 -0.0002 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 --4.5 -4.0 117 9.0 -0.0753 -0.0753 11.0 -0.0511 -0.0511 13.5 -0.0365 -0.0365 16.5 -0.0272 -0.0272 19.5 -0.0216 -0.0216 22.5 -0.0180 -0.0180 26.0 -0.0150 -0.0150 30.0 -0.0126 -0.0126 34.5 -0.0107 -0.0107 40.0 -0.0091 -0.0091 46.0 -0.0077 -0.0077 52.5 -0.0067 -0.0067 60.0 -0.0058 -0.0058 69.0 -0.0050 -0.0050 79.0 -0.0043 -0.0043 90.5 -0.0037 -0.0037 105.5 -0.0032 -0.0032 123.5 -0.0027 -0.0027 143.0 -0.0023 -0.0023 163.5 -0.0020 -0.0020 185.0 -0.0018 -0.0018 208.0 -0.0016 -0.0016 232.5 -0.0014 -0.0014 258.5 -0.0013 -0.0013 286.0 -0.0011 -0.0011 331.0 -0.0010 -0.0010 396.0 -0.0008 -0.0008 468.5 -0.0007 -0.0007 549.5 -0.0006 -0.0006 639.0 -0.0005 -0.0005 738.0 -0.0004 -0.0004 847.5 -0.0004 -0.0004 968.5 -0.0003 -0.0003 1102.0 -0.0003 -0.0003 1249.5 -0.0003 -0.0003 1412.0 -0.0002 -0.0002 1590.5 -0.0002 -0.0002 1787.0 -0.0002 -0.0002 1944.5 -0.0002 -0.0002 --4.0 -3.5 117 9.0 -0.1107 -0.1107 11.0 -0.0697 -0.0697 13.5 -0.0476 -0.0476 16.5 -0.0345 -0.0345 19.5 -0.0270 -0.0270 22.5 -0.0222 -0.0222 26.0 -0.0184 -0.0184 30.0 -0.0154 -0.0154 34.5 -0.0130 -0.0130 40.0 -0.0109 -0.0109 46.0 -0.0093 -0.0093 52.5 -0.0080 -0.0080 60.0 -0.0069 -0.0069 69.0 -0.0059 -0.0059 79.0 -0.0051 -0.0051 90.5 -0.0044 -0.0044 105.5 -0.0038 -0.0038 123.5 -0.0032 -0.0032 143.0 -0.0027 -0.0027 163.5 -0.0024 -0.0024 185.0 -0.0021 -0.0021 208.0 -0.0019 -0.0019 232.5 -0.0017 -0.0017 258.5 -0.0015 -0.0015 286.0 -0.0013 -0.0013 331.0 -0.0012 -0.0012 396.0 -0.0010 -0.0010 468.5 -0.0008 -0.0008 549.5 -0.0007 -0.0007 639.0 -0.0006 -0.0006 738.0 -0.0005 -0.0005 847.5 -0.0004 -0.0004 968.5 -0.0004 -0.0004 1102.0 -0.0003 -0.0003 1249.5 -0.0003 -0.0003 1412.0 -0.0003 -0.0003 1590.5 -0.0002 -0.0002 1787.0 -0.0002 -0.0002 1944.5 -0.0002 -0.0002 --3.5 -3.0 117 9.0 -0.1688 -0.1688 11.0 -0.0935 -0.0935 13.5 -0.0600 -0.0600 16.5 -0.0420 -0.0420 19.5 -0.0323 -0.0323 22.5 -0.0262 -0.0262 26.0 -0.0215 -0.0215 30.0 -0.0179 -0.0179 34.5 -0.0150 -0.0150 40.0 -0.0125 -0.0125 46.0 -0.0106 -0.0106 52.5 -0.0091 -0.0091 60.0 -0.0078 -0.0078 69.0 -0.0067 -0.0067 79.0 -0.0058 -0.0058 90.5 -0.0050 -0.0050 105.5 -0.0042 -0.0042 123.5 -0.0036 -0.0036 143.0 -0.0031 -0.0031 163.5 -0.0027 -0.0027 185.0 -0.0023 -0.0023 208.0 -0.0021 -0.0021 232.5 -0.0019 -0.0019 258.5 -0.0017 -0.0017 286.0 -0.0015 -0.0015 331.0 -0.0013 -0.0013 396.0 -0.0011 -0.0011 468.5 -0.0009 -0.0009 549.5 -0.0008 -0.0008 639.0 -0.0007 -0.0007 738.0 -0.0006 -0.0006 847.5 -0.0005 -0.0005 968.5 -0.0004 -0.0004 1102.0 -0.0004 -0.0004 1249.5 -0.0003 -0.0003 1412.0 -0.0003 -0.0003 1590.5 -0.0003 -0.0003 1787.0 -0.0002 -0.0002 1944.5 -0.0002 -0.0002 --3.0 -2.8 117 9.0 -0.2022 -0.2022 11.0 -0.1045 -0.1045 13.5 -0.0651 -0.0651 16.5 -0.0449 -0.0449 19.5 -0.0342 -0.0342 22.5 -0.0276 -0.0276 26.0 -0.0226 -0.0226 30.0 -0.0187 -0.0187 34.5 -0.0156 -0.0156 40.0 -0.0130 -0.0130 46.0 -0.0110 -0.0110 52.5 -0.0095 -0.0095 60.0 -0.0081 -0.0081 69.0 -0.0070 -0.0070 79.0 -0.0060 -0.0060 90.5 -0.0052 -0.0052 105.5 -0.0044 -0.0044 123.5 -0.0037 -0.0037 143.0 -0.0032 -0.0032 163.5 -0.0028 -0.0028 185.0 -0.0024 -0.0024 208.0 -0.0021 -0.0021 232.5 -0.0019 -0.0019 258.5 -0.0017 -0.0017 286.0 -0.0015 -0.0015 331.0 -0.0013 -0.0013 396.0 -0.0011 -0.0011 468.5 -0.0009 -0.0009 549.5 -0.0008 -0.0008 639.0 -0.0007 -0.0007 738.0 -0.0006 -0.0006 847.5 -0.0005 -0.0005 968.5 -0.0004 -0.0004 1102.0 -0.0004 -0.0004 1249.5 -0.0003 -0.0003 1412.0 -0.0003 -0.0003 1590.5 -0.0003 -0.0003 1787.0 -0.0002 -0.0002 1944.5 -0.0002 -0.0002 --2.8 -2.6 117 9.0 -0.2050 -0.2050 11.0 -0.1057 -0.1057 13.5 -0.0658 -0.0658 16.5 -0.0453 -0.0453 19.5 -0.0345 -0.0345 22.5 -0.0279 -0.0279 26.0 -0.0228 -0.0228 30.0 -0.0189 -0.0189 34.5 -0.0158 -0.0158 40.0 -0.0132 -0.0132 46.0 -0.0111 -0.0111 52.5 -0.0096 -0.0096 60.0 -0.0082 -0.0082 69.0 -0.0070 -0.0070 79.0 -0.0060 -0.0060 90.5 -0.0052 -0.0052 105.5 -0.0044 -0.0044 123.5 -0.0037 -0.0037 143.0 -0.0032 -0.0032 163.5 -0.0028 -0.0028 185.0 -0.0024 -0.0024 208.0 -0.0022 -0.0022 232.5 -0.0019 -0.0019 258.5 -0.0017 -0.0017 286.0 -0.0016 -0.0016 331.0 -0.0013 -0.0013 396.0 -0.0011 -0.0011 468.5 -0.0009 -0.0009 549.5 -0.0008 -0.0008 639.0 -0.0007 -0.0007 738.0 -0.0006 -0.0006 847.5 -0.0005 -0.0005 968.5 -0.0005 -0.0005 1102.0 -0.0004 -0.0004 1249.5 -0.0004 -0.0004 1412.0 -0.0003 -0.0003 1590.5 -0.0003 -0.0003 1787.0 -0.0002 -0.0002 1944.5 -0.0002 -0.0002 --2.6 -2.4 117 9.0 -0.1682 -0.1682 11.0 -0.0934 -0.0934 13.5 -0.0601 -0.0601 16.5 -0.0421 -0.0421 19.5 -0.0324 -0.0324 22.5 -0.0263 -0.0263 26.0 -0.0216 -0.0216 30.0 -0.0179 -0.0179 34.5 -0.0150 -0.0150 40.0 -0.0126 -0.0126 46.0 -0.0106 -0.0106 52.5 -0.0091 -0.0091 60.0 -0.0079 -0.0079 69.0 -0.0067 -0.0067 79.0 -0.0058 -0.0058 90.5 -0.0050 -0.0050 105.5 -0.0042 -0.0042 123.5 -0.0036 -0.0036 143.0 -0.0031 -0.0031 163.5 -0.0027 -0.0027 185.0 -0.0024 -0.0024 208.0 -0.0021 -0.0021 232.5 -0.0019 -0.0019 258.5 -0.0017 -0.0017 286.0 -0.0015 -0.0015 331.0 -0.0013 -0.0013 396.0 -0.0011 -0.0011 468.5 -0.0009 -0.0009 549.5 -0.0008 -0.0008 639.0 -0.0007 -0.0007 738.0 -0.0006 -0.0006 847.5 -0.0005 -0.0005 968.5 -0.0004 -0.0004 1102.0 -0.0004 -0.0004 1249.5 -0.0003 -0.0003 1412.0 -0.0003 -0.0003 1590.5 -0.0003 -0.0003 1787.0 -0.0002 -0.0002 1944.5 -0.0002 -0.0002 --2.4 -2.2 117 9.0 -0.1253 -0.1253 11.0 -0.0765 -0.0765 13.5 -0.0515 -0.0515 16.5 -0.0370 -0.0370 19.5 -0.0288 -0.0288 22.5 -0.0236 -0.0236 26.0 -0.0195 -0.0195 30.0 -0.0163 -0.0163 34.5 -0.0137 -0.0137 40.0 -0.0115 -0.0115 46.0 -0.0098 -0.0098 52.5 -0.0084 -0.0084 60.0 -0.0073 -0.0073 69.0 -0.0062 -0.0062 79.0 -0.0054 -0.0054 90.5 -0.0046 -0.0046 105.5 -0.0039 -0.0039 123.5 -0.0033 -0.0033 143.0 -0.0029 -0.0029 163.5 -0.0025 -0.0025 185.0 -0.0022 -0.0022 208.0 -0.0019 -0.0019 232.5 -0.0017 -0.0017 258.5 -0.0016 -0.0016 286.0 -0.0014 -0.0014 331.0 -0.0012 -0.0012 396.0 -0.0010 -0.0010 468.5 -0.0008 -0.0008 549.5 -0.0007 -0.0007 639.0 -0.0006 -0.0006 738.0 -0.0005 -0.0005 847.5 -0.0005 -0.0005 968.5 -0.0004 -0.0004 1102.0 -0.0004 -0.0004 1249.5 -0.0003 -0.0003 1412.0 -0.0003 -0.0003 1590.5 -0.0002 -0.0002 1787.0 -0.0002 -0.0002 1944.5 -0.0002 -0.0002 --2.2 -2.0 117 9.0 -0.1651 -0.1651 11.0 -0.0933 -0.0933 13.5 -0.0605 -0.0605 16.5 -0.0425 -0.0425 19.5 -0.0328 -0.0328 22.5 -0.0267 -0.0267 26.0 -0.0219 -0.0219 30.0 -0.0182 -0.0182 34.5 -0.0153 -0.0153 40.0 -0.0128 -0.0128 46.0 -0.0108 -0.0108 52.5 -0.0093 -0.0093 60.0 -0.0080 -0.0080 69.0 -0.0069 -0.0069 79.0 -0.0059 -0.0059 90.5 -0.0051 -0.0051 105.5 -0.0043 -0.0043 123.5 -0.0037 -0.0037 143.0 -0.0031 -0.0031 163.5 -0.0027 -0.0027 185.0 -0.0024 -0.0024 208.0 -0.0021 -0.0021 232.5 -0.0019 -0.0019 258.5 -0.0017 -0.0017 286.0 -0.0015 -0.0015 331.0 -0.0013 -0.0013 396.0 -0.0011 -0.0011 468.5 -0.0009 -0.0009 549.5 -0.0008 -0.0008 639.0 -0.0007 -0.0007 738.0 -0.0006 -0.0006 847.5 -0.0005 -0.0005 968.5 -0.0004 -0.0004 1102.0 -0.0004 -0.0004 1249.5 -0.0003 -0.0003 1412.0 -0.0003 -0.0003 1590.5 -0.0003 -0.0003 1787.0 -0.0002 -0.0002 1944.5 -0.0002 -0.0002 --2.0 -1.8 117 9.0 -0.1974 -0.1974 11.0 -0.1051 -0.1051 13.5 -0.0663 -0.0663 16.5 -0.0460 -0.0460 19.5 -0.0352 -0.0352 22.5 -0.0285 -0.0285 26.0 -0.0233 -0.0233 30.0 -0.0193 -0.0193 34.5 -0.0162 -0.0162 40.0 -0.0135 -0.0135 46.0 -0.0114 -0.0114 52.5 -0.0098 -0.0098 60.0 -0.0084 -0.0084 69.0 -0.0072 -0.0072 79.0 -0.0062 -0.0062 90.5 -0.0054 -0.0054 105.5 -0.0046 -0.0046 123.5 -0.0039 -0.0039 143.0 -0.0033 -0.0033 163.5 -0.0029 -0.0029 185.0 -0.0025 -0.0025 208.0 -0.0022 -0.0022 232.5 -0.0020 -0.0020 258.5 -0.0018 -0.0018 286.0 -0.0016 -0.0016 331.0 -0.0014 -0.0014 396.0 -0.0012 -0.0012 468.5 -0.0010 -0.0010 549.5 -0.0008 -0.0008 639.0 -0.0007 -0.0007 738.0 -0.0006 -0.0006 847.5 -0.0005 -0.0005 968.5 -0.0005 -0.0005 1102.0 -0.0004 -0.0004 1249.5 -0.0004 -0.0004 1412.0 -0.0003 -0.0003 1590.5 -0.0003 -0.0003 1787.0 -0.0003 -0.0003 1944.5 -0.0002 -0.0002 --1.8 -1.6 117 9.0 -0.2390 -0.2390 11.0 -0.1181 -0.1181 13.5 -0.0724 -0.0724 16.5 -0.0494 -0.0494 19.5 -0.0375 -0.0375 22.5 -0.0302 -0.0302 26.0 -0.0246 -0.0246 30.0 -0.0203 -0.0203 34.5 -0.0170 -0.0170 40.0 -0.0142 -0.0142 46.0 -0.0120 -0.0120 52.5 -0.0103 -0.0103 60.0 -0.0088 -0.0088 69.0 -0.0075 -0.0075 79.0 -0.0065 -0.0065 90.5 -0.0056 -0.0056 105.5 -0.0047 -0.0047 123.5 -0.0040 -0.0040 143.0 -0.0034 -0.0034 163.5 -0.0030 -0.0030 185.0 -0.0026 -0.0026 208.0 -0.0023 -0.0023 232.5 -0.0021 -0.0021 258.5 -0.0019 -0.0019 286.0 -0.0017 -0.0017 331.0 -0.0014 -0.0014 396.0 -0.0012 -0.0012 468.5 -0.0010 -0.0010 549.5 -0.0009 -0.0009 639.0 -0.0007 -0.0007 738.0 -0.0006 -0.0006 847.5 -0.0006 -0.0006 968.5 -0.0005 -0.0005 1102.0 -0.0004 -0.0004 1249.5 -0.0004 -0.0004 1412.0 -0.0003 -0.0003 1590.5 -0.0003 -0.0003 1787.0 -0.0003 -0.0003 1944.5 -0.0002 -0.0002 --1.6 -1.4 117 9.0 -0.2795 -0.2795 11.0 -0.1289 -0.1289 13.5 -0.0770 -0.0770 16.5 -0.0519 -0.0519 19.5 -0.0392 -0.0392 22.5 -0.0315 -0.0315 26.0 -0.0256 -0.0256 30.0 -0.0211 -0.0211 34.5 -0.0176 -0.0176 40.0 -0.0146 -0.0146 46.0 -0.0124 -0.0124 52.5 -0.0106 -0.0106 60.0 -0.0091 -0.0091 69.0 -0.0078 -0.0078 79.0 -0.0067 -0.0067 90.5 -0.0058 -0.0058 105.5 -0.0049 -0.0049 123.5 -0.0041 -0.0041 143.0 -0.0035 -0.0035 163.5 -0.0031 -0.0031 185.0 -0.0027 -0.0027 208.0 -0.0024 -0.0024 232.5 -0.0021 -0.0021 258.5 -0.0019 -0.0019 286.0 -0.0017 -0.0017 331.0 -0.0015 -0.0015 396.0 -0.0012 -0.0012 468.5 -0.0010 -0.0010 549.5 -0.0009 -0.0009 639.0 -0.0008 -0.0008 738.0 -0.0007 -0.0007 847.5 -0.0006 -0.0006 968.5 -0.0005 -0.0005 1102.0 -0.0004 -0.0004 1249.5 -0.0004 -0.0004 1412.0 -0.0003 -0.0003 1590.5 -0.0003 -0.0003 1787.0 -0.0003 -0.0003 1944.5 -0.0002 -0.0002 --1.4 -1.2 117 9.0 -0.3216 -0.3216 11.0 -0.1390 -0.1390 13.5 -0.0813 -0.0813 16.5 -0.0543 -0.0543 19.5 -0.0407 -0.0407 22.5 -0.0326 -0.0326 26.0 -0.0264 -0.0264 30.0 -0.0217 -0.0217 34.5 -0.0181 -0.0181 40.0 -0.0151 -0.0151 46.0 -0.0127 -0.0127 52.5 -0.0109 -0.0109 60.0 -0.0093 -0.0093 69.0 -0.0080 -0.0080 79.0 -0.0068 -0.0068 90.5 -0.0059 -0.0059 105.5 -0.0050 -0.0050 123.5 -0.0042 -0.0042 143.0 -0.0036 -0.0036 163.5 -0.0031 -0.0031 185.0 -0.0028 -0.0028 208.0 -0.0024 -0.0024 232.5 -0.0022 -0.0022 258.5 -0.0020 -0.0020 286.0 -0.0018 -0.0018 331.0 -0.0015 -0.0015 396.0 -0.0013 -0.0013 468.5 -0.0011 -0.0011 549.5 -0.0009 -0.0009 639.0 -0.0008 -0.0008 738.0 -0.0007 -0.0007 847.5 -0.0006 -0.0006 968.5 -0.0005 -0.0005 1102.0 -0.0004 -0.0004 1249.5 -0.0004 -0.0004 1412.0 -0.0003 -0.0003 1590.5 -0.0003 -0.0003 1787.0 -0.0003 -0.0003 1944.5 -0.0003 -0.0003 --1.2 -1.0 117 9.0 -0.3515 -0.3515 11.0 -0.1455 -0.1455 13.5 -0.0840 -0.0840 16.5 -0.0557 -0.0557 19.5 -0.0417 -0.0417 22.5 -0.0333 -0.0333 26.0 -0.0270 -0.0270 30.0 -0.0222 -0.0222 34.5 -0.0185 -0.0185 40.0 -0.0153 -0.0153 46.0 -0.0129 -0.0129 52.5 -0.0111 -0.0111 60.0 -0.0095 -0.0095 69.0 -0.0081 -0.0081 79.0 -0.0070 -0.0070 90.5 -0.0060 -0.0060 105.5 -0.0051 -0.0051 123.5 -0.0043 -0.0043 143.0 -0.0037 -0.0037 163.5 -0.0032 -0.0032 185.0 -0.0028 -0.0028 208.0 -0.0025 -0.0025 232.5 -0.0022 -0.0022 258.5 -0.0020 -0.0020 286.0 -0.0018 -0.0018 331.0 -0.0015 -0.0015 396.0 -0.0013 -0.0013 468.5 -0.0011 -0.0011 549.5 -0.0009 -0.0009 639.0 -0.0008 -0.0008 738.0 -0.0007 -0.0007 847.5 -0.0006 -0.0006 968.5 -0.0005 -0.0005 1102.0 -0.0005 -0.0005 1249.5 -0.0004 -0.0004 1412.0 -0.0004 -0.0004 1590.5 -0.0003 -0.0003 1787.0 -0.0003 -0.0003 1944.5 -0.0003 -0.0003 --1.0 -0.8 117 9.0 -0.3433 -0.3433 11.0 -0.1439 -0.1439 13.5 -0.0833 -0.0833 16.5 -0.0554 -0.0554 19.5 -0.0415 -0.0415 22.5 -0.0331 -0.0331 26.0 -0.0269 -0.0269 30.0 -0.0221 -0.0221 34.5 -0.0184 -0.0184 40.0 -0.0153 -0.0153 46.0 -0.0129 -0.0129 52.5 -0.0110 -0.0110 60.0 -0.0094 -0.0094 69.0 -0.0081 -0.0081 79.0 -0.0069 -0.0069 90.5 -0.0060 -0.0060 105.5 -0.0051 -0.0051 123.5 -0.0043 -0.0043 143.0 -0.0037 -0.0037 163.5 -0.0032 -0.0032 185.0 -0.0028 -0.0028 208.0 -0.0025 -0.0025 232.5 -0.0022 -0.0022 258.5 -0.0020 -0.0020 286.0 -0.0018 -0.0018 331.0 -0.0015 -0.0015 396.0 -0.0013 -0.0013 468.5 -0.0011 -0.0011 549.5 -0.0009 -0.0009 639.0 -0.0008 -0.0008 738.0 -0.0007 -0.0007 847.5 -0.0006 -0.0006 968.5 -0.0005 -0.0005 1102.0 -0.0005 -0.0005 1249.5 -0.0004 -0.0004 1412.0 -0.0004 -0.0004 1590.5 -0.0003 -0.0003 1787.0 -0.0003 -0.0003 1944.5 -0.0003 -0.0003 --0.8 -0.6 117 9.0 -0.3498 -0.3498 11.0 -0.1453 -0.1453 13.5 -0.0839 -0.0839 16.5 -0.0557 -0.0557 19.5 -0.0417 -0.0417 22.5 -0.0333 -0.0333 26.0 -0.0270 -0.0270 30.0 -0.0222 -0.0222 34.5 -0.0185 -0.0185 40.0 -0.0153 -0.0153 46.0 -0.0129 -0.0129 52.5 -0.0111 -0.0111 60.0 -0.0095 -0.0095 69.0 -0.0081 -0.0081 79.0 -0.0070 -0.0070 90.5 -0.0060 -0.0060 105.5 -0.0051 -0.0051 123.5 -0.0043 -0.0043 143.0 -0.0037 -0.0037 163.5 -0.0032 -0.0032 185.0 -0.0028 -0.0028 208.0 -0.0025 -0.0025 232.5 -0.0022 -0.0022 258.5 -0.0020 -0.0020 286.0 -0.0018 -0.0018 331.0 -0.0015 -0.0015 396.0 -0.0013 -0.0013 468.5 -0.0011 -0.0011 549.5 -0.0009 -0.0009 639.0 -0.0008 -0.0008 738.0 -0.0007 -0.0007 847.5 -0.0006 -0.0006 968.5 -0.0005 -0.0005 1102.0 -0.0005 -0.0005 1249.5 -0.0004 -0.0004 1412.0 -0.0004 -0.0004 1590.5 -0.0003 -0.0003 1787.0 -0.0003 -0.0003 1944.5 -0.0003 -0.0003 --0.6 -0.4 117 9.0 -0.3869 -0.3869 11.0 -0.1526 -0.1526 13.5 -0.0868 -0.0868 16.5 -0.0572 -0.0572 19.5 -0.0427 -0.0427 22.5 -0.0340 -0.0340 26.0 -0.0275 -0.0275 30.0 -0.0226 -0.0226 34.5 -0.0188 -0.0188 40.0 -0.0156 -0.0156 46.0 -0.0132 -0.0132 52.5 -0.0112 -0.0112 60.0 -0.0096 -0.0096 69.0 -0.0082 -0.0082 79.0 -0.0071 -0.0071 90.5 -0.0061 -0.0061 105.5 -0.0052 -0.0052 123.5 -0.0044 -0.0044 143.0 -0.0037 -0.0037 163.5 -0.0032 -0.0032 185.0 -0.0028 -0.0028 208.0 -0.0025 -0.0025 232.5 -0.0022 -0.0022 258.5 -0.0020 -0.0020 286.0 -0.0018 -0.0018 331.0 -0.0016 -0.0016 396.0 -0.0013 -0.0013 468.5 -0.0011 -0.0011 549.5 -0.0009 -0.0009 639.0 -0.0008 -0.0008 738.0 -0.0007 -0.0007 847.5 -0.0006 -0.0006 968.5 -0.0005 -0.0005 1102.0 -0.0005 -0.0005 1249.5 -0.0004 -0.0004 1412.0 -0.0004 -0.0004 1590.5 -0.0003 -0.0003 1787.0 -0.0003 -0.0003 1944.5 -0.0003 -0.0003 --0.4 -0.2 117 9.0 -0.4255 -0.4255 11.0 -0.1592 -0.1592 13.5 -0.0894 -0.0894 16.5 -0.0585 -0.0585 19.5 -0.0435 -0.0435 22.5 -0.0346 -0.0346 26.0 -0.0280 -0.0280 30.0 -0.0229 -0.0229 34.5 -0.0191 -0.0191 40.0 -0.0158 -0.0158 46.0 -0.0133 -0.0133 52.5 -0.0114 -0.0114 60.0 -0.0098 -0.0098 69.0 -0.0083 -0.0083 79.0 -0.0071 -0.0071 90.5 -0.0062 -0.0062 105.5 -0.0052 -0.0052 123.5 -0.0044 -0.0044 143.0 -0.0038 -0.0038 163.5 -0.0033 -0.0033 185.0 -0.0029 -0.0029 208.0 -0.0025 -0.0025 232.5 -0.0023 -0.0023 258.5 -0.0020 -0.0020 286.0 -0.0018 -0.0018 331.0 -0.0016 -0.0016 396.0 -0.0013 -0.0013 468.5 -0.0011 -0.0011 549.5 -0.0009 -0.0009 639.0 -0.0008 -0.0008 738.0 -0.0007 -0.0007 847.5 -0.0006 -0.0006 968.5 -0.0005 -0.0005 1102.0 -0.0005 -0.0005 1249.5 -0.0004 -0.0004 1412.0 -0.0004 -0.0004 1590.5 -0.0003 -0.0003 1787.0 -0.0003 -0.0003 1944.5 -0.0003 -0.0003 --0.2 0.0 117 9.0 -0.4318 -0.4318 11.0 -0.1602 -0.1602 13.5 -0.0897 -0.0897 16.5 -0.0587 -0.0587 19.5 -0.0436 -0.0436 22.5 -0.0347 -0.0347 26.0 -0.0280 -0.0280 30.0 -0.0230 -0.0230 34.5 -0.0191 -0.0191 40.0 -0.0158 -0.0158 46.0 -0.0133 -0.0133 52.5 -0.0114 -0.0114 60.0 -0.0098 -0.0098 69.0 -0.0083 -0.0083 79.0 -0.0072 -0.0072 90.5 -0.0062 -0.0062 105.5 -0.0052 -0.0052 123.5 -0.0044 -0.0044 143.0 -0.0038 -0.0038 163.5 -0.0033 -0.0033 185.0 -0.0029 -0.0029 208.0 -0.0025 -0.0025 232.5 -0.0023 -0.0023 258.5 -0.0020 -0.0020 286.0 -0.0018 -0.0018 331.0 -0.0016 -0.0016 396.0 -0.0013 -0.0013 468.5 -0.0011 -0.0011 549.5 -0.0009 -0.0009 639.0 -0.0008 -0.0008 738.0 -0.0007 -0.0007 847.5 -0.0006 -0.0006 968.5 -0.0005 -0.0005 1102.0 -0.0005 -0.0005 1249.5 -0.0004 -0.0004 1412.0 -0.0004 -0.0004 1590.5 -0.0003 -0.0003 1787.0 -0.0003 -0.0003 1944.5 -0.0003 -0.0003 -0.0 0.2 117 9.0 -0.4281 -0.4281 11.0 -0.1598 -0.1598 13.5 -0.0896 -0.0896 16.5 -0.0587 -0.0587 19.5 -0.0436 -0.0436 22.5 -0.0347 -0.0347 26.0 -0.0280 -0.0280 30.0 -0.0230 -0.0230 34.5 -0.0191 -0.0191 40.0 -0.0158 -0.0158 46.0 -0.0133 -0.0133 52.5 -0.0114 -0.0114 60.0 -0.0098 -0.0098 69.0 -0.0083 -0.0083 79.0 -0.0072 -0.0072 90.5 -0.0062 -0.0062 105.5 -0.0052 -0.0052 123.5 -0.0044 -0.0044 143.0 -0.0038 -0.0038 163.5 -0.0033 -0.0033 185.0 -0.0029 -0.0029 208.0 -0.0025 -0.0025 232.5 -0.0023 -0.0023 258.5 -0.0020 -0.0020 286.0 -0.0018 -0.0018 331.0 -0.0016 -0.0016 396.0 -0.0013 -0.0013 468.5 -0.0011 -0.0011 549.5 -0.0009 -0.0009 639.0 -0.0008 -0.0008 738.0 -0.0007 -0.0007 847.5 -0.0006 -0.0006 968.5 -0.0005 -0.0005 1102.0 -0.0005 -0.0005 1249.5 -0.0004 -0.0004 1412.0 -0.0004 -0.0004 1590.5 -0.0003 -0.0003 1787.0 -0.0003 -0.0003 1944.5 -0.0003 -0.0003 -0.2 0.4 117 9.0 -0.4037 -0.4037 11.0 -0.1560 -0.1560 13.5 -0.0883 -0.0883 16.5 -0.0580 -0.0580 19.5 -0.0432 -0.0432 22.5 -0.0344 -0.0344 26.0 -0.0278 -0.0278 30.0 -0.0228 -0.0228 34.5 -0.0190 -0.0190 40.0 -0.0158 -0.0158 46.0 -0.0133 -0.0133 52.5 -0.0114 -0.0114 60.0 -0.0097 -0.0097 69.0 -0.0083 -0.0083 79.0 -0.0071 -0.0071 90.5 -0.0061 -0.0061 105.5 -0.0052 -0.0052 123.5 -0.0044 -0.0044 143.0 -0.0038 -0.0038 163.5 -0.0033 -0.0033 185.0 -0.0029 -0.0029 208.0 -0.0025 -0.0025 232.5 -0.0023 -0.0023 258.5 -0.0020 -0.0020 286.0 -0.0018 -0.0018 331.0 -0.0016 -0.0016 396.0 -0.0013 -0.0013 468.5 -0.0011 -0.0011 549.5 -0.0009 -0.0009 639.0 -0.0008 -0.0008 738.0 -0.0007 -0.0007 847.5 -0.0006 -0.0006 968.5 -0.0005 -0.0005 1102.0 -0.0005 -0.0005 1249.5 -0.0004 -0.0004 1412.0 -0.0004 -0.0004 1590.5 -0.0003 -0.0003 1787.0 -0.0003 -0.0003 1944.5 -0.0003 -0.0003 -0.4 0.6 117 9.0 -0.3511 -0.3511 11.0 -0.1458 -0.1458 13.5 -0.0843 -0.0843 16.5 -0.0559 -0.0559 19.5 -0.0419 -0.0419 22.5 -0.0334 -0.0334 26.0 -0.0271 -0.0271 30.0 -0.0223 -0.0223 34.5 -0.0185 -0.0185 40.0 -0.0154 -0.0154 46.0 -0.0130 -0.0130 52.5 -0.0111 -0.0111 60.0 -0.0095 -0.0095 69.0 -0.0081 -0.0081 79.0 -0.0070 -0.0070 90.5 -0.0060 -0.0060 105.5 -0.0051 -0.0051 123.5 -0.0043 -0.0043 143.0 -0.0037 -0.0037 163.5 -0.0032 -0.0032 185.0 -0.0028 -0.0028 208.0 -0.0025 -0.0025 232.5 -0.0022 -0.0022 258.5 -0.0020 -0.0020 286.0 -0.0018 -0.0018 331.0 -0.0015 -0.0015 396.0 -0.0013 -0.0013 468.5 -0.0011 -0.0011 549.5 -0.0009 -0.0009 639.0 -0.0008 -0.0008 738.0 -0.0007 -0.0007 847.5 -0.0006 -0.0006 968.5 -0.0005 -0.0005 1102.0 -0.0005 -0.0005 1249.5 -0.0004 -0.0004 1412.0 -0.0004 -0.0004 1590.5 -0.0003 -0.0003 1787.0 -0.0003 -0.0003 1944.5 -0.0003 -0.0003 -0.6 0.8 117 9.0 -0.3279 -0.3279 11.0 -0.1407 -0.1407 13.5 -0.0821 -0.0821 16.5 -0.0548 -0.0548 19.5 -0.0411 -0.0411 22.5 -0.0329 -0.0329 26.0 -0.0266 -0.0266 30.0 -0.0219 -0.0219 34.5 -0.0183 -0.0183 40.0 -0.0152 -0.0152 46.0 -0.0128 -0.0128 52.5 -0.0110 -0.0110 60.0 -0.0094 -0.0094 69.0 -0.0080 -0.0080 79.0 -0.0069 -0.0069 90.5 -0.0059 -0.0059 105.5 -0.0050 -0.0050 123.5 -0.0043 -0.0043 143.0 -0.0036 -0.0036 163.5 -0.0032 -0.0032 185.0 -0.0028 -0.0028 208.0 -0.0025 -0.0025 232.5 -0.0022 -0.0022 258.5 -0.0020 -0.0020 286.0 -0.0018 -0.0018 331.0 -0.0015 -0.0015 396.0 -0.0013 -0.0013 468.5 -0.0011 -0.0011 549.5 -0.0009 -0.0009 639.0 -0.0008 -0.0008 738.0 -0.0007 -0.0007 847.5 -0.0006 -0.0006 968.5 -0.0005 -0.0005 1102.0 -0.0005 -0.0005 1249.5 -0.0004 -0.0004 1412.0 -0.0004 -0.0004 1590.5 -0.0003 -0.0003 1787.0 -0.0003 -0.0003 1944.5 -0.0003 -0.0003 -0.8 1.0 117 9.0 -0.3281 -0.3281 11.0 -0.1405 -0.1405 13.5 -0.0819 -0.0819 16.5 -0.0546 -0.0546 19.5 -0.0410 -0.0410 22.5 -0.0328 -0.0328 26.0 -0.0266 -0.0266 30.0 -0.0218 -0.0218 34.5 -0.0182 -0.0182 40.0 -0.0151 -0.0151 46.0 -0.0128 -0.0128 52.5 -0.0109 -0.0109 60.0 -0.0094 -0.0094 69.0 -0.0080 -0.0080 79.0 -0.0069 -0.0069 90.5 -0.0059 -0.0059 105.5 -0.0050 -0.0050 123.5 -0.0042 -0.0042 143.0 -0.0036 -0.0036 163.5 -0.0032 -0.0032 185.0 -0.0028 -0.0028 208.0 -0.0025 -0.0025 232.5 -0.0022 -0.0022 258.5 -0.0020 -0.0020 286.0 -0.0018 -0.0018 331.0 -0.0015 -0.0015 396.0 -0.0013 -0.0013 468.5 -0.0011 -0.0011 549.5 -0.0009 -0.0009 639.0 -0.0008 -0.0008 738.0 -0.0007 -0.0007 847.5 -0.0006 -0.0006 968.5 -0.0005 -0.0005 1102.0 -0.0004 -0.0004 1249.5 -0.0004 -0.0004 1412.0 -0.0003 -0.0003 1590.5 -0.0003 -0.0003 1787.0 -0.0003 -0.0003 1944.5 -0.0003 -0.0003 -1.0 1.2 117 9.0 -0.3123 -0.3123 11.0 -0.1367 -0.1367 13.5 -0.0803 -0.0803 16.5 -0.0537 -0.0537 19.5 -0.0403 -0.0403 22.5 -0.0323 -0.0323 26.0 -0.0262 -0.0262 30.0 -0.0216 -0.0216 34.5 -0.0180 -0.0180 40.0 -0.0149 -0.0149 46.0 -0.0126 -0.0126 52.5 -0.0108 -0.0108 60.0 -0.0093 -0.0093 69.0 -0.0079 -0.0079 79.0 -0.0068 -0.0068 90.5 -0.0059 -0.0059 105.5 -0.0050 -0.0050 123.5 -0.0042 -0.0042 143.0 -0.0036 -0.0036 163.5 -0.0031 -0.0031 185.0 -0.0027 -0.0027 208.0 -0.0024 -0.0024 232.5 -0.0022 -0.0022 258.5 -0.0019 -0.0019 286.0 -0.0017 -0.0017 331.0 -0.0015 -0.0015 396.0 -0.0013 -0.0013 468.5 -0.0011 -0.0011 549.5 -0.0009 -0.0009 639.0 -0.0008 -0.0008 738.0 -0.0007 -0.0007 847.5 -0.0006 -0.0006 968.5 -0.0005 -0.0005 1102.0 -0.0004 -0.0004 1249.5 -0.0004 -0.0004 1412.0 -0.0003 -0.0003 1590.5 -0.0003 -0.0003 1787.0 -0.0003 -0.0003 1944.5 -0.0003 -0.0003 -1.2 1.4 117 9.0 -0.2826 -0.2826 11.0 -0.1296 -0.1296 13.5 -0.0773 -0.0773 16.5 -0.0521 -0.0521 19.5 -0.0392 -0.0392 22.5 -0.0315 -0.0315 26.0 -0.0256 -0.0256 30.0 -0.0211 -0.0211 34.5 -0.0176 -0.0176 40.0 -0.0146 -0.0146 46.0 -0.0124 -0.0124 52.5 -0.0106 -0.0106 60.0 -0.0091 -0.0091 69.0 -0.0078 -0.0078 79.0 -0.0067 -0.0067 90.5 -0.0058 -0.0058 105.5 -0.0049 -0.0049 123.5 -0.0041 -0.0041 143.0 -0.0035 -0.0035 163.5 -0.0031 -0.0031 185.0 -0.0027 -0.0027 208.0 -0.0024 -0.0024 232.5 -0.0021 -0.0021 258.5 -0.0019 -0.0019 286.0 -0.0017 -0.0017 331.0 -0.0015 -0.0015 396.0 -0.0012 -0.0012 468.5 -0.0010 -0.0010 549.5 -0.0009 -0.0009 639.0 -0.0008 -0.0008 738.0 -0.0007 -0.0007 847.5 -0.0006 -0.0006 968.5 -0.0005 -0.0005 1102.0 -0.0004 -0.0004 1249.5 -0.0004 -0.0004 1412.0 -0.0003 -0.0003 1590.5 -0.0003 -0.0003 1787.0 -0.0003 -0.0003 1944.5 -0.0002 -0.0002 -1.4 1.6 117 9.0 -0.2514 -0.2514 11.0 -0.1215 -0.1215 13.5 -0.0738 -0.0738 16.5 -0.0502 -0.0502 19.5 -0.0380 -0.0380 22.5 -0.0306 -0.0306 26.0 -0.0249 -0.0249 30.0 -0.0206 -0.0206 34.5 -0.0172 -0.0172 40.0 -0.0143 -0.0143 46.0 -0.0121 -0.0121 52.5 -0.0104 -0.0104 60.0 -0.0089 -0.0089 69.0 -0.0076 -0.0076 79.0 -0.0065 -0.0065 90.5 -0.0056 -0.0056 105.5 -0.0048 -0.0048 123.5 -0.0040 -0.0040 143.0 -0.0035 -0.0035 163.5 -0.0030 -0.0030 185.0 -0.0026 -0.0026 208.0 -0.0023 -0.0023 232.5 -0.0021 -0.0021 258.5 -0.0019 -0.0019 286.0 -0.0017 -0.0017 331.0 -0.0015 -0.0015 396.0 -0.0012 -0.0012 468.5 -0.0010 -0.0010 549.5 -0.0009 -0.0009 639.0 -0.0007 -0.0007 738.0 -0.0006 -0.0006 847.5 -0.0006 -0.0006 968.5 -0.0005 -0.0005 1102.0 -0.0004 -0.0004 1249.5 -0.0004 -0.0004 1412.0 -0.0003 -0.0003 1590.5 -0.0003 -0.0003 1787.0 -0.0003 -0.0003 1944.5 -0.0002 -0.0002 -1.6 1.8 117 9.0 -0.2150 -0.2150 11.0 -0.1108 -0.1108 13.5 -0.0690 -0.0690 16.5 -0.0475 -0.0475 19.5 -0.0362 -0.0362 22.5 -0.0293 -0.0293 26.0 -0.0239 -0.0239 30.0 -0.0198 -0.0198 34.5 -0.0166 -0.0166 40.0 -0.0138 -0.0138 46.0 -0.0117 -0.0117 52.5 -0.0100 -0.0100 60.0 -0.0086 -0.0086 69.0 -0.0074 -0.0074 79.0 -0.0063 -0.0063 90.5 -0.0055 -0.0055 105.5 -0.0046 -0.0046 123.5 -0.0039 -0.0039 143.0 -0.0034 -0.0034 163.5 -0.0029 -0.0029 185.0 -0.0026 -0.0026 208.0 -0.0023 -0.0023 232.5 -0.0020 -0.0020 258.5 -0.0018 -0.0018 286.0 -0.0016 -0.0016 331.0 -0.0014 -0.0014 396.0 -0.0012 -0.0012 468.5 -0.0010 -0.0010 549.5 -0.0008 -0.0008 639.0 -0.0007 -0.0007 738.0 -0.0006 -0.0006 847.5 -0.0005 -0.0005 968.5 -0.0005 -0.0005 1102.0 -0.0004 -0.0004 1249.5 -0.0004 -0.0004 1412.0 -0.0003 -0.0003 1590.5 -0.0003 -0.0003 1787.0 -0.0003 -0.0003 1944.5 -0.0002 -0.0002 -1.8 2.0 117 9.0 -0.1809 -0.1809 11.0 -0.0993 -0.0993 13.5 -0.0635 -0.0635 16.5 -0.0443 -0.0443 19.5 -0.0340 -0.0340 22.5 -0.0276 -0.0276 26.0 -0.0227 -0.0227 30.0 -0.0188 -0.0188 34.5 -0.0158 -0.0158 40.0 -0.0132 -0.0132 46.0 -0.0112 -0.0112 52.5 -0.0096 -0.0096 60.0 -0.0082 -0.0082 69.0 -0.0071 -0.0071 79.0 -0.0061 -0.0061 90.5 -0.0052 -0.0052 105.5 -0.0045 -0.0045 123.5 -0.0038 -0.0038 143.0 -0.0032 -0.0032 163.5 -0.0028 -0.0028 185.0 -0.0025 -0.0025 208.0 -0.0022 -0.0022 232.5 -0.0019 -0.0019 258.5 -0.0017 -0.0017 286.0 -0.0016 -0.0016 331.0 -0.0014 -0.0014 396.0 -0.0011 -0.0011 468.5 -0.0010 -0.0010 549.5 -0.0008 -0.0008 639.0 -0.0007 -0.0007 738.0 -0.0006 -0.0006 847.5 -0.0005 -0.0005 968.5 -0.0005 -0.0005 1102.0 -0.0004 -0.0004 1249.5 -0.0004 -0.0004 1412.0 -0.0003 -0.0003 1590.5 -0.0003 -0.0003 1787.0 -0.0002 -0.0002 1944.5 -0.0002 -0.0002 -2.0 2.2 117 9.0 -0.1391 -0.1391 11.0 -0.0826 -0.0826 13.5 -0.0548 -0.0548 16.5 -0.0391 -0.0391 19.5 -0.0303 -0.0303 22.5 -0.0248 -0.0248 26.0 -0.0204 -0.0204 30.0 -0.0170 -0.0170 34.5 -0.0143 -0.0143 40.0 -0.0120 -0.0120 46.0 -0.0102 -0.0102 52.5 -0.0088 -0.0088 60.0 -0.0076 -0.0076 69.0 -0.0065 -0.0065 79.0 -0.0056 -0.0056 90.5 -0.0048 -0.0048 105.5 -0.0041 -0.0041 123.5 -0.0035 -0.0035 143.0 -0.0030 -0.0030 163.5 -0.0026 -0.0026 185.0 -0.0023 -0.0023 208.0 -0.0020 -0.0020 232.5 -0.0018 -0.0018 258.5 -0.0016 -0.0016 286.0 -0.0015 -0.0015 331.0 -0.0013 -0.0013 396.0 -0.0010 -0.0010 468.5 -0.0009 -0.0009 549.5 -0.0007 -0.0007 639.0 -0.0006 -0.0006 738.0 -0.0006 -0.0006 847.5 -0.0005 -0.0005 968.5 -0.0004 -0.0004 1102.0 -0.0004 -0.0004 1249.5 -0.0003 -0.0003 1412.0 -0.0003 -0.0003 1590.5 -0.0003 -0.0003 1787.0 -0.0002 -0.0002 1944.5 -0.0002 -0.0002 -2.2 2.4 117 9.0 -0.1187 -0.1187 11.0 -0.0734 -0.0734 13.5 -0.0497 -0.0497 16.5 -0.0358 -0.0358 19.5 -0.0280 -0.0280 22.5 -0.0230 -0.0230 26.0 -0.0190 -0.0190 30.0 -0.0159 -0.0159 34.5 -0.0134 -0.0134 40.0 -0.0112 -0.0112 46.0 -0.0096 -0.0096 52.5 -0.0082 -0.0082 60.0 -0.0071 -0.0071 69.0 -0.0061 -0.0061 79.0 -0.0053 -0.0053 90.5 -0.0045 -0.0045 105.5 -0.0039 -0.0039 123.5 -0.0033 -0.0033 143.0 -0.0028 -0.0028 163.5 -0.0024 -0.0024 185.0 -0.0021 -0.0021 208.0 -0.0019 -0.0019 232.5 -0.0017 -0.0017 258.5 -0.0015 -0.0015 286.0 -0.0014 -0.0014 331.0 -0.0012 -0.0012 396.0 -0.0010 -0.0010 468.5 -0.0008 -0.0008 549.5 -0.0007 -0.0007 639.0 -0.0006 -0.0006 738.0 -0.0005 -0.0005 847.5 -0.0005 -0.0005 968.5 -0.0004 -0.0004 1102.0 -0.0004 -0.0004 1249.5 -0.0003 -0.0003 1412.0 -0.0003 -0.0003 1590.5 -0.0002 -0.0002 1787.0 -0.0002 -0.0002 1944.5 -0.0002 -0.0002 -2.4 2.6 117 9.0 -0.1556 -0.1556 11.0 -0.0881 -0.0881 13.5 -0.0571 -0.0571 16.5 -0.0402 -0.0402 19.5 -0.0310 -0.0310 22.5 -0.0252 -0.0252 26.0 -0.0207 -0.0207 30.0 -0.0172 -0.0172 34.5 -0.0144 -0.0144 40.0 -0.0121 -0.0121 46.0 -0.0103 -0.0103 52.5 -0.0088 -0.0088 60.0 -0.0076 -0.0076 69.0 -0.0065 -0.0065 79.0 -0.0056 -0.0056 90.5 -0.0048 -0.0048 105.5 -0.0041 -0.0041 123.5 -0.0035 -0.0035 143.0 -0.0030 -0.0030 163.5 -0.0026 -0.0026 185.0 -0.0023 -0.0023 208.0 -0.0020 -0.0020 232.5 -0.0018 -0.0018 258.5 -0.0016 -0.0016 286.0 -0.0015 -0.0015 331.0 -0.0013 -0.0013 396.0 -0.0010 -0.0010 468.5 -0.0009 -0.0009 549.5 -0.0007 -0.0007 639.0 -0.0006 -0.0006 738.0 -0.0006 -0.0006 847.5 -0.0005 -0.0005 968.5 -0.0004 -0.0004 1102.0 -0.0004 -0.0004 1249.5 -0.0003 -0.0003 1412.0 -0.0003 -0.0003 1590.5 -0.0003 -0.0003 1787.0 -0.0002 -0.0002 1944.5 -0.0002 -0.0002 -2.6 2.8 117 9.0 -0.1513 -0.1513 11.0 -0.0861 -0.0861 13.5 -0.0559 -0.0559 16.5 -0.0394 -0.0394 19.5 -0.0304 -0.0304 22.5 -0.0247 -0.0247 26.0 -0.0203 -0.0203 30.0 -0.0169 -0.0169 34.5 -0.0142 -0.0142 40.0 -0.0119 -0.0119 46.0 -0.0101 -0.0101 52.5 -0.0087 -0.0087 60.0 -0.0074 -0.0074 69.0 -0.0064 -0.0064 79.0 -0.0055 -0.0055 90.5 -0.0047 -0.0047 105.5 -0.0040 -0.0040 123.5 -0.0034 -0.0034 143.0 -0.0029 -0.0029 163.5 -0.0025 -0.0025 185.0 -0.0022 -0.0022 208.0 -0.0020 -0.0020 232.5 -0.0018 -0.0018 258.5 -0.0016 -0.0016 286.0 -0.0014 -0.0014 331.0 -0.0012 -0.0012 396.0 -0.0010 -0.0010 468.5 -0.0009 -0.0009 549.5 -0.0007 -0.0007 639.0 -0.0006 -0.0006 738.0 -0.0005 -0.0005 847.5 -0.0005 -0.0005 968.5 -0.0004 -0.0004 1102.0 -0.0004 -0.0004 1249.5 -0.0003 -0.0003 1412.0 -0.0003 -0.0003 1590.5 -0.0003 -0.0003 1787.0 -0.0002 -0.0002 1944.5 -0.0002 -0.0002 -2.8 3.0 117 9.0 -0.1710 -0.1710 11.0 -0.0936 -0.0936 13.5 -0.0598 -0.0598 16.5 -0.0417 -0.0417 19.5 -0.0320 -0.0320 22.5 -0.0260 -0.0260 26.0 -0.0213 -0.0213 30.0 -0.0177 -0.0177 34.5 -0.0148 -0.0148 40.0 -0.0124 -0.0124 46.0 -0.0105 -0.0105 52.5 -0.0090 -0.0090 60.0 -0.0077 -0.0077 69.0 -0.0066 -0.0066 79.0 -0.0057 -0.0057 90.5 -0.0049 -0.0049 105.5 -0.0042 -0.0042 123.5 -0.0035 -0.0035 143.0 -0.0030 -0.0030 163.5 -0.0026 -0.0026 185.0 -0.0023 -0.0023 208.0 -0.0021 -0.0021 232.5 -0.0018 -0.0018 258.5 -0.0016 -0.0016 286.0 -0.0015 -0.0015 331.0 -0.0013 -0.0013 396.0 -0.0011 -0.0011 468.5 -0.0009 -0.0009 549.5 -0.0008 -0.0008 639.0 -0.0007 -0.0007 738.0 -0.0006 -0.0006 847.5 -0.0005 -0.0005 968.5 -0.0004 -0.0004 1102.0 -0.0004 -0.0004 1249.5 -0.0003 -0.0003 1412.0 -0.0003 -0.0003 1590.5 -0.0003 -0.0003 1787.0 -0.0002 -0.0002 1944.5 -0.0002 -0.0002 -3.0 3.5 117 9.0 -0.1471 -0.1471 11.0 -0.0850 -0.0850 13.5 -0.0556 -0.0556 16.5 -0.0393 -0.0393 19.5 -0.0304 -0.0304 22.5 -0.0248 -0.0248 26.0 -0.0204 -0.0204 30.0 -0.0170 -0.0170 34.5 -0.0143 -0.0143 40.0 -0.0119 -0.0119 46.0 -0.0101 -0.0101 52.5 -0.0087 -0.0087 60.0 -0.0075 -0.0075 69.0 -0.0064 -0.0064 79.0 -0.0055 -0.0055 90.5 -0.0048 -0.0048 105.5 -0.0041 -0.0041 123.5 -0.0034 -0.0034 143.0 -0.0029 -0.0029 163.5 -0.0026 -0.0026 185.0 -0.0023 -0.0023 208.0 -0.0020 -0.0020 232.5 -0.0018 -0.0018 258.5 -0.0016 -0.0016 286.0 -0.0014 -0.0014 331.0 -0.0012 -0.0012 396.0 -0.0010 -0.0010 468.5 -0.0009 -0.0009 549.5 -0.0007 -0.0007 639.0 -0.0006 -0.0006 738.0 -0.0005 -0.0005 847.5 -0.0005 -0.0005 968.5 -0.0004 -0.0004 1102.0 -0.0004 -0.0004 1249.5 -0.0003 -0.0003 1412.0 -0.0003 -0.0003 1590.5 -0.0003 -0.0003 1787.0 -0.0002 -0.0002 1944.5 -0.0002 -0.0002 -3.5 4.0 117 9.0 -0.1115 -0.1115 11.0 -0.0700 -0.0700 13.5 -0.0478 -0.0478 16.5 -0.0346 -0.0346 19.5 -0.0271 -0.0271 22.5 -0.0223 -0.0223 26.0 -0.0185 -0.0185 30.0 -0.0154 -0.0154 34.5 -0.0130 -0.0130 40.0 -0.0109 -0.0109 46.0 -0.0093 -0.0093 52.5 -0.0080 -0.0080 60.0 -0.0069 -0.0069 69.0 -0.0059 -0.0059 79.0 -0.0051 -0.0051 90.5 -0.0044 -0.0044 105.5 -0.0038 -0.0038 123.5 -0.0032 -0.0032 143.0 -0.0027 -0.0027 163.5 -0.0024 -0.0024 185.0 -0.0021 -0.0021 208.0 -0.0019 -0.0019 232.5 -0.0017 -0.0017 258.5 -0.0015 -0.0015 286.0 -0.0013 -0.0013 331.0 -0.0012 -0.0012 396.0 -0.0010 -0.0010 468.5 -0.0008 -0.0008 549.5 -0.0007 -0.0007 639.0 -0.0006 -0.0006 738.0 -0.0005 -0.0005 847.5 -0.0004 -0.0004 968.5 -0.0004 -0.0004 1102.0 -0.0003 -0.0003 1249.5 -0.0003 -0.0003 1412.0 -0.0003 -0.0003 1590.5 -0.0002 -0.0002 1787.0 -0.0002 -0.0002 1944.5 -0.0002 -0.0002 -4.0 4.5 117 9.0 -0.0774 -0.0774 11.0 -0.0524 -0.0524 13.5 -0.0373 -0.0373 16.5 -0.0277 -0.0277 19.5 -0.0220 -0.0220 22.5 -0.0183 -0.0183 26.0 -0.0153 -0.0153 30.0 -0.0128 -0.0128 34.5 -0.0109 -0.0109 40.0 -0.0092 -0.0092 46.0 -0.0079 -0.0079 52.5 -0.0068 -0.0068 60.0 -0.0059 -0.0059 69.0 -0.0050 -0.0050 79.0 -0.0044 -0.0044 90.5 -0.0038 -0.0038 105.5 -0.0032 -0.0032 123.5 -0.0027 -0.0027 143.0 -0.0023 -0.0023 163.5 -0.0020 -0.0020 185.0 -0.0018 -0.0018 208.0 -0.0016 -0.0016 232.5 -0.0014 -0.0014 258.5 -0.0013 -0.0013 286.0 -0.0012 -0.0012 331.0 -0.0010 -0.0010 396.0 -0.0008 -0.0008 468.5 -0.0007 -0.0007 549.5 -0.0006 -0.0006 639.0 -0.0005 -0.0005 738.0 -0.0004 -0.0004 847.5 -0.0004 -0.0004 968.5 -0.0003 -0.0003 1102.0 -0.0003 -0.0003 1249.5 -0.0003 -0.0003 1412.0 -0.0002 -0.0002 1590.5 -0.0002 -0.0002 1787.0 -0.0002 -0.0002 1944.5 -0.0002 -0.0002 -4.5 5.2 117 9.0 -0.0278 -0.0278 11.0 -0.0212 -0.0212 13.5 -0.0164 -0.0164 16.5 -0.0128 -0.0128 19.5 -0.0106 -0.0106 22.5 -0.0090 -0.0090 26.0 -0.0076 -0.0076 30.0 -0.0065 -0.0065 34.5 -0.0056 -0.0056 40.0 -0.0048 -0.0048 46.0 -0.0041 -0.0041 52.5 -0.0036 -0.0036 60.0 -0.0031 -0.0031 69.0 -0.0027 -0.0027 79.0 -0.0023 -0.0023 90.5 -0.0020 -0.0020 105.5 -0.0017 -0.0017 123.5 -0.0015 -0.0015 143.0 -0.0013 -0.0013 163.5 -0.0011 -0.0011 185.0 -0.0010 -0.0010 208.0 -0.0009 -0.0009 232.5 -0.0008 -0.0008 258.5 -0.0007 -0.0007 286.0 -0.0006 -0.0006 331.0 -0.0005 -0.0005 396.0 -0.0005 -0.0005 468.5 -0.0004 -0.0004 549.5 -0.0003 -0.0003 639.0 -0.0003 -0.0003 738.0 -0.0002 -0.0002 847.5 -0.0002 -0.0002 968.5 -0.0002 -0.0002 1102.0 -0.0002 -0.0002 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1944.5 -0.0001 -0.0001 -[PileUpJetRate] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --4.5 -4.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --4.0 -3.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --3.5 -3.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --3.0 -2.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.8 -2.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.6 -2.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.4 -2.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.2 -2.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --2.0 -1.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.8 -1.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.6 -1.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.4 -1.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.2 -1.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --1.0 -0.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.8 -0.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.6 -0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.4 -0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.2 0.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.0 0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.2 0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.4 0.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.6 0.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.8 1.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.0 1.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.2 1.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.4 1.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.6 1.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -1.8 2.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.0 2.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.2 2.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.4 2.6 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.6 2.8 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -2.8 3.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -3.0 3.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -3.5 4.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -4.0 4.5 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -4.5 5.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -[SubTotalPileUp] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0405 0.0405 11.0 0.0322 0.0322 13.5 0.0257 0.0257 16.5 0.0207 0.0207 19.5 0.0174 0.0174 22.5 0.0150 0.0150 26.0 0.0129 0.0129 30.0 0.0111 0.0111 34.5 0.0096 0.0096 40.0 0.0083 0.0083 46.0 0.0072 0.0072 52.5 0.0063 0.0063 60.0 0.0055 0.0055 69.0 0.0048 0.0048 79.0 0.0041 0.0041 90.5 0.0036 0.0036 105.5 0.0031 0.0031 123.5 0.0026 0.0026 143.0 0.0023 0.0023 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0016 0.0016 232.5 0.0014 0.0014 258.5 0.0013 0.0013 286.0 0.0011 0.0011 331.0 0.0010 0.0010 396.0 0.0008 0.0008 468.5 0.0007 0.0007 549.5 0.0006 0.0006 639.0 0.0005 0.0005 738.0 0.0004 0.0004 847.5 0.0004 0.0004 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0002 0.0002 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 --4.5 -4.0 117 9.0 0.0887 0.0887 11.0 0.0637 0.0637 13.5 0.0477 0.0477 16.5 0.0370 0.0370 19.5 0.0303 0.0303 22.5 0.0257 0.0257 26.0 0.0219 0.0219 30.0 0.0187 0.0187 34.5 0.0161 0.0161 40.0 0.0137 0.0137 46.0 0.0118 0.0118 52.5 0.0103 0.0103 60.0 0.0090 0.0090 69.0 0.0078 0.0078 79.0 0.0068 0.0068 90.5 0.0059 0.0059 105.5 0.0050 0.0050 123.5 0.0043 0.0043 143.0 0.0037 0.0037 163.5 0.0032 0.0032 185.0 0.0028 0.0028 208.0 0.0025 0.0025 232.5 0.0023 0.0023 258.5 0.0020 0.0020 286.0 0.0018 0.0018 331.0 0.0016 0.0016 396.0 0.0013 0.0013 468.5 0.0011 0.0011 549.5 0.0010 0.0010 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --4.0 -3.5 117 9.0 0.1325 0.1325 11.0 0.0871 0.0871 13.5 0.0623 0.0623 16.5 0.0469 0.0469 19.5 0.0378 0.0378 22.5 0.0318 0.0318 26.0 0.0268 0.0268 30.0 0.0228 0.0228 34.5 0.0195 0.0195 40.0 0.0166 0.0166 46.0 0.0143 0.0143 52.5 0.0124 0.0124 60.0 0.0108 0.0108 69.0 0.0093 0.0093 79.0 0.0081 0.0081 90.5 0.0070 0.0070 105.5 0.0060 0.0060 123.5 0.0051 0.0051 143.0 0.0044 0.0044 163.5 0.0038 0.0038 185.0 0.0034 0.0034 208.0 0.0030 0.0030 232.5 0.0027 0.0027 258.5 0.0024 0.0024 286.0 0.0022 0.0022 331.0 0.0019 0.0019 396.0 0.0016 0.0016 468.5 0.0013 0.0013 549.5 0.0011 0.0011 639.0 0.0010 0.0010 738.0 0.0008 0.0008 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --3.5 -3.0 117 9.0 0.2083 0.2083 11.0 0.1183 0.1183 13.5 0.0792 0.0792 16.5 0.0576 0.0576 19.5 0.0457 0.0457 22.5 0.0380 0.0380 26.0 0.0318 0.0318 30.0 0.0268 0.0268 34.5 0.0229 0.0229 40.0 0.0194 0.0194 46.0 0.0166 0.0166 52.5 0.0144 0.0144 60.0 0.0125 0.0125 69.0 0.0108 0.0108 79.0 0.0094 0.0094 90.5 0.0081 0.0081 105.5 0.0069 0.0069 123.5 0.0059 0.0059 143.0 0.0051 0.0051 163.5 0.0044 0.0044 185.0 0.0039 0.0039 208.0 0.0035 0.0035 232.5 0.0031 0.0031 258.5 0.0028 0.0028 286.0 0.0025 0.0025 331.0 0.0022 0.0022 396.0 0.0018 0.0018 468.5 0.0015 0.0015 549.5 0.0013 0.0013 639.0 0.0011 0.0011 738.0 0.0010 0.0010 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 --3.0 -2.8 117 9.0 0.2115 0.2115 11.0 0.1160 0.1160 13.5 0.0770 0.0770 16.5 0.0560 0.0560 19.5 0.0444 0.0444 22.5 0.0370 0.0370 26.0 0.0310 0.0310 30.0 0.0262 0.0262 34.5 0.0224 0.0224 40.0 0.0190 0.0190 46.0 0.0163 0.0163 52.5 0.0142 0.0142 60.0 0.0123 0.0123 69.0 0.0106 0.0106 79.0 0.0092 0.0092 90.5 0.0080 0.0080 105.5 0.0068 0.0068 123.5 0.0058 0.0058 143.0 0.0050 0.0050 163.5 0.0044 0.0044 185.0 0.0038 0.0038 208.0 0.0034 0.0034 232.5 0.0031 0.0031 258.5 0.0027 0.0027 286.0 0.0025 0.0025 331.0 0.0021 0.0021 396.0 0.0018 0.0018 468.5 0.0015 0.0015 549.5 0.0013 0.0013 639.0 0.0011 0.0011 738.0 0.0010 0.0010 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 --2.8 -2.6 117 9.0 0.2230 0.2230 11.0 0.1205 0.1205 13.5 0.0794 0.0794 16.5 0.0575 0.0575 19.5 0.0455 0.0455 22.5 0.0378 0.0378 26.0 0.0317 0.0317 30.0 0.0268 0.0268 34.5 0.0228 0.0228 40.0 0.0194 0.0194 46.0 0.0166 0.0166 52.5 0.0144 0.0144 60.0 0.0125 0.0125 69.0 0.0108 0.0108 79.0 0.0094 0.0094 90.5 0.0081 0.0081 105.5 0.0069 0.0069 123.5 0.0059 0.0059 143.0 0.0051 0.0051 163.5 0.0044 0.0044 185.0 0.0039 0.0039 208.0 0.0035 0.0035 232.5 0.0031 0.0031 258.5 0.0028 0.0028 286.0 0.0025 0.0025 331.0 0.0022 0.0022 396.0 0.0018 0.0018 468.5 0.0015 0.0015 549.5 0.0013 0.0013 639.0 0.0011 0.0011 738.0 0.0010 0.0010 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 --2.6 -2.4 117 9.0 0.1977 0.1977 11.0 0.1138 0.1138 13.5 0.0766 0.0766 16.5 0.0560 0.0560 19.5 0.0445 0.0445 22.5 0.0370 0.0370 26.0 0.0310 0.0310 30.0 0.0262 0.0262 34.5 0.0224 0.0224 40.0 0.0190 0.0190 46.0 0.0163 0.0163 52.5 0.0141 0.0141 60.0 0.0123 0.0123 69.0 0.0106 0.0106 79.0 0.0092 0.0092 90.5 0.0080 0.0080 105.5 0.0068 0.0068 123.5 0.0058 0.0058 143.0 0.0050 0.0050 163.5 0.0043 0.0043 185.0 0.0038 0.0038 208.0 0.0034 0.0034 232.5 0.0030 0.0030 258.5 0.0027 0.0027 286.0 0.0025 0.0025 331.0 0.0021 0.0021 396.0 0.0018 0.0018 468.5 0.0015 0.0015 549.5 0.0013 0.0013 639.0 0.0011 0.0011 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 --2.4 -2.2 117 9.0 0.1453 0.1453 11.0 0.0929 0.0929 13.5 0.0655 0.0655 16.5 0.0490 0.0490 19.5 0.0394 0.0394 22.5 0.0330 0.0330 26.0 0.0278 0.0278 30.0 0.0236 0.0236 34.5 0.0202 0.0202 40.0 0.0172 0.0172 46.0 0.0148 0.0148 52.5 0.0128 0.0128 60.0 0.0111 0.0111 69.0 0.0096 0.0096 79.0 0.0084 0.0084 90.5 0.0073 0.0073 105.5 0.0062 0.0062 123.5 0.0053 0.0053 143.0 0.0045 0.0045 163.5 0.0040 0.0040 185.0 0.0035 0.0035 208.0 0.0031 0.0031 232.5 0.0028 0.0028 258.5 0.0025 0.0025 286.0 0.0023 0.0023 331.0 0.0019 0.0019 396.0 0.0016 0.0016 468.5 0.0014 0.0014 549.5 0.0012 0.0012 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0003 0.0003 --2.2 -2.0 117 9.0 0.1792 0.1792 11.0 0.1066 0.1066 13.5 0.0728 0.0728 16.5 0.0536 0.0536 19.5 0.0428 0.0428 22.5 0.0357 0.0357 26.0 0.0300 0.0300 30.0 0.0254 0.0254 34.5 0.0217 0.0217 40.0 0.0184 0.0184 46.0 0.0158 0.0158 52.5 0.0137 0.0137 60.0 0.0119 0.0119 69.0 0.0103 0.0103 79.0 0.0089 0.0089 90.5 0.0078 0.0078 105.5 0.0066 0.0066 123.5 0.0056 0.0056 143.0 0.0048 0.0048 163.5 0.0042 0.0042 185.0 0.0037 0.0037 208.0 0.0033 0.0033 232.5 0.0030 0.0030 258.5 0.0027 0.0027 286.0 0.0024 0.0024 331.0 0.0021 0.0021 396.0 0.0017 0.0017 468.5 0.0015 0.0015 549.5 0.0012 0.0012 639.0 0.0011 0.0011 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0003 0.0003 --2.0 -1.8 117 9.0 0.2089 0.2089 11.0 0.1171 0.1171 13.5 0.0781 0.0781 16.5 0.0569 0.0569 19.5 0.0451 0.0451 22.5 0.0375 0.0375 26.0 0.0314 0.0314 30.0 0.0266 0.0266 34.5 0.0227 0.0227 40.0 0.0192 0.0192 46.0 0.0165 0.0165 52.5 0.0143 0.0143 60.0 0.0124 0.0124 69.0 0.0107 0.0107 79.0 0.0093 0.0093 90.5 0.0081 0.0081 105.5 0.0069 0.0069 123.5 0.0059 0.0059 143.0 0.0050 0.0050 163.5 0.0044 0.0044 185.0 0.0039 0.0039 208.0 0.0034 0.0034 232.5 0.0031 0.0031 258.5 0.0028 0.0028 286.0 0.0025 0.0025 331.0 0.0022 0.0022 396.0 0.0018 0.0018 468.5 0.0015 0.0015 549.5 0.0013 0.0013 639.0 0.0011 0.0011 738.0 0.0010 0.0010 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 --1.8 -1.6 117 9.0 0.2487 0.2487 11.0 0.1293 0.1293 13.5 0.0839 0.0839 16.5 0.0603 0.0603 19.5 0.0475 0.0475 22.5 0.0394 0.0394 26.0 0.0329 0.0329 30.0 0.0278 0.0278 34.5 0.0237 0.0237 40.0 0.0200 0.0200 46.0 0.0172 0.0172 52.5 0.0149 0.0149 60.0 0.0129 0.0129 69.0 0.0112 0.0112 79.0 0.0097 0.0097 90.5 0.0084 0.0084 105.5 0.0072 0.0072 123.5 0.0061 0.0061 143.0 0.0052 0.0052 163.5 0.0046 0.0046 185.0 0.0040 0.0040 208.0 0.0036 0.0036 232.5 0.0032 0.0032 258.5 0.0029 0.0029 286.0 0.0026 0.0026 331.0 0.0022 0.0022 396.0 0.0019 0.0019 468.5 0.0016 0.0016 549.5 0.0013 0.0013 639.0 0.0012 0.0012 738.0 0.0010 0.0010 847.5 0.0009 0.0009 968.5 0.0008 0.0008 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 --1.6 -1.4 117 9.0 0.2880 0.2880 11.0 0.1397 0.1397 13.5 0.0884 0.0884 16.5 0.0629 0.0629 19.5 0.0493 0.0493 22.5 0.0408 0.0408 26.0 0.0340 0.0340 30.0 0.0287 0.0287 34.5 0.0244 0.0244 40.0 0.0207 0.0207 46.0 0.0177 0.0177 52.5 0.0153 0.0153 60.0 0.0133 0.0133 69.0 0.0115 0.0115 79.0 0.0100 0.0100 90.5 0.0086 0.0086 105.5 0.0074 0.0074 123.5 0.0063 0.0063 143.0 0.0054 0.0054 163.5 0.0047 0.0047 185.0 0.0041 0.0041 208.0 0.0037 0.0037 232.5 0.0033 0.0033 258.5 0.0030 0.0030 286.0 0.0027 0.0027 331.0 0.0023 0.0023 396.0 0.0019 0.0019 468.5 0.0016 0.0016 549.5 0.0014 0.0014 639.0 0.0012 0.0012 738.0 0.0010 0.0010 847.5 0.0009 0.0009 968.5 0.0008 0.0008 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 --1.4 -1.2 117 9.0 0.3296 0.3296 11.0 0.1495 0.1495 13.5 0.0926 0.0926 16.5 0.0653 0.0653 19.5 0.0510 0.0510 22.5 0.0420 0.0420 26.0 0.0350 0.0350 30.0 0.0295 0.0295 34.5 0.0250 0.0250 40.0 0.0212 0.0212 46.0 0.0182 0.0182 52.5 0.0157 0.0157 60.0 0.0136 0.0136 69.0 0.0117 0.0117 79.0 0.0102 0.0102 90.5 0.0088 0.0088 105.5 0.0075 0.0075 123.5 0.0064 0.0064 143.0 0.0055 0.0055 163.5 0.0048 0.0048 185.0 0.0042 0.0042 208.0 0.0038 0.0038 232.5 0.0034 0.0034 258.5 0.0030 0.0030 286.0 0.0027 0.0027 331.0 0.0024 0.0024 396.0 0.0020 0.0020 468.5 0.0017 0.0017 549.5 0.0014 0.0014 639.0 0.0012 0.0012 738.0 0.0010 0.0010 847.5 0.0009 0.0009 968.5 0.0008 0.0008 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 --1.2 -1.0 117 9.0 0.3594 0.3594 11.0 0.1559 0.1559 13.5 0.0953 0.0953 16.5 0.0667 0.0667 19.5 0.0520 0.0520 22.5 0.0428 0.0428 26.0 0.0356 0.0356 30.0 0.0300 0.0300 34.5 0.0254 0.0254 40.0 0.0215 0.0215 46.0 0.0184 0.0184 52.5 0.0160 0.0160 60.0 0.0138 0.0138 69.0 0.0119 0.0119 79.0 0.0103 0.0103 90.5 0.0090 0.0090 105.5 0.0076 0.0076 123.5 0.0065 0.0065 143.0 0.0056 0.0056 163.5 0.0049 0.0049 185.0 0.0043 0.0043 208.0 0.0038 0.0038 232.5 0.0034 0.0034 258.5 0.0031 0.0031 286.0 0.0028 0.0028 331.0 0.0024 0.0024 396.0 0.0020 0.0020 468.5 0.0017 0.0017 549.5 0.0014 0.0014 639.0 0.0012 0.0012 738.0 0.0011 0.0011 847.5 0.0009 0.0009 968.5 0.0008 0.0008 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 --1.0 -0.8 117 9.0 0.3523 0.3523 11.0 0.1545 0.1545 13.5 0.0948 0.0948 16.5 0.0665 0.0665 19.5 0.0518 0.0518 22.5 0.0427 0.0427 26.0 0.0355 0.0355 30.0 0.0299 0.0299 34.5 0.0254 0.0254 40.0 0.0215 0.0215 46.0 0.0184 0.0184 52.5 0.0159 0.0159 60.0 0.0138 0.0138 69.0 0.0119 0.0119 79.0 0.0103 0.0103 90.5 0.0089 0.0089 105.5 0.0076 0.0076 123.5 0.0065 0.0065 143.0 0.0056 0.0056 163.5 0.0049 0.0049 185.0 0.0043 0.0043 208.0 0.0038 0.0038 232.5 0.0034 0.0034 258.5 0.0031 0.0031 286.0 0.0028 0.0028 331.0 0.0024 0.0024 396.0 0.0020 0.0020 468.5 0.0017 0.0017 549.5 0.0014 0.0014 639.0 0.0012 0.0012 738.0 0.0011 0.0011 847.5 0.0009 0.0009 968.5 0.0008 0.0008 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 --0.8 -0.6 117 9.0 0.3590 0.3590 11.0 0.1559 0.1559 13.5 0.0954 0.0954 16.5 0.0668 0.0668 19.5 0.0520 0.0520 22.5 0.0428 0.0428 26.0 0.0356 0.0356 30.0 0.0300 0.0300 34.5 0.0255 0.0255 40.0 0.0215 0.0215 46.0 0.0184 0.0184 52.5 0.0160 0.0160 60.0 0.0138 0.0138 69.0 0.0119 0.0119 79.0 0.0103 0.0103 90.5 0.0090 0.0090 105.5 0.0077 0.0077 123.5 0.0065 0.0065 143.0 0.0056 0.0056 163.5 0.0049 0.0049 185.0 0.0043 0.0043 208.0 0.0038 0.0038 232.5 0.0034 0.0034 258.5 0.0031 0.0031 286.0 0.0028 0.0028 331.0 0.0024 0.0024 396.0 0.0020 0.0020 468.5 0.0017 0.0017 549.5 0.0014 0.0014 639.0 0.0012 0.0012 738.0 0.0011 0.0011 847.5 0.0009 0.0009 968.5 0.0008 0.0008 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 --0.6 -0.4 117 9.0 0.3959 0.3959 11.0 0.1630 0.1630 13.5 0.0982 0.0982 16.5 0.0683 0.0683 19.5 0.0531 0.0531 22.5 0.0436 0.0436 26.0 0.0363 0.0363 30.0 0.0305 0.0305 34.5 0.0259 0.0259 40.0 0.0219 0.0219 46.0 0.0187 0.0187 52.5 0.0162 0.0162 60.0 0.0140 0.0140 69.0 0.0121 0.0121 79.0 0.0105 0.0105 90.5 0.0091 0.0091 105.5 0.0078 0.0078 123.5 0.0066 0.0066 143.0 0.0057 0.0057 163.5 0.0049 0.0049 185.0 0.0044 0.0044 208.0 0.0039 0.0039 232.5 0.0035 0.0035 258.5 0.0031 0.0031 286.0 0.0028 0.0028 331.0 0.0024 0.0024 396.0 0.0020 0.0020 468.5 0.0017 0.0017 549.5 0.0015 0.0015 639.0 0.0012 0.0012 738.0 0.0011 0.0011 847.5 0.0009 0.0009 968.5 0.0008 0.0008 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 --0.4 -0.2 117 9.0 0.4348 0.4348 11.0 0.1695 0.1695 13.5 0.1007 0.1007 16.5 0.0697 0.0697 19.5 0.0540 0.0540 22.5 0.0443 0.0443 26.0 0.0368 0.0368 30.0 0.0309 0.0309 34.5 0.0262 0.0262 40.0 0.0221 0.0221 46.0 0.0190 0.0190 52.5 0.0164 0.0164 60.0 0.0142 0.0142 69.0 0.0122 0.0122 79.0 0.0106 0.0106 90.5 0.0092 0.0092 105.5 0.0079 0.0079 123.5 0.0067 0.0067 143.0 0.0057 0.0057 163.5 0.0050 0.0050 185.0 0.0044 0.0044 208.0 0.0039 0.0039 232.5 0.0035 0.0035 258.5 0.0031 0.0031 286.0 0.0028 0.0028 331.0 0.0024 0.0024 396.0 0.0020 0.0020 468.5 0.0017 0.0017 549.5 0.0015 0.0015 639.0 0.0013 0.0013 738.0 0.0011 0.0011 847.5 0.0009 0.0009 968.5 0.0008 0.0008 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 --0.2 0.0 117 9.0 0.4412 0.4412 11.0 0.1705 0.1705 13.5 0.1010 0.1010 16.5 0.0698 0.0698 19.5 0.0541 0.0541 22.5 0.0444 0.0444 26.0 0.0369 0.0369 30.0 0.0309 0.0309 34.5 0.0263 0.0263 40.0 0.0222 0.0222 46.0 0.0190 0.0190 52.5 0.0164 0.0164 60.0 0.0142 0.0142 69.0 0.0123 0.0123 79.0 0.0106 0.0106 90.5 0.0092 0.0092 105.5 0.0079 0.0079 123.5 0.0067 0.0067 143.0 0.0058 0.0058 163.5 0.0050 0.0050 185.0 0.0044 0.0044 208.0 0.0039 0.0039 232.5 0.0035 0.0035 258.5 0.0031 0.0031 286.0 0.0028 0.0028 331.0 0.0025 0.0025 396.0 0.0020 0.0020 468.5 0.0017 0.0017 549.5 0.0015 0.0015 639.0 0.0013 0.0013 738.0 0.0011 0.0011 847.5 0.0010 0.0010 968.5 0.0008 0.0008 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1944.5 0.0004 0.0004 -0.0 0.2 117 9.0 0.4378 0.4378 11.0 0.1701 0.1701 13.5 0.1009 0.1009 16.5 0.0698 0.0698 19.5 0.0541 0.0541 22.5 0.0444 0.0444 26.0 0.0368 0.0368 30.0 0.0309 0.0309 34.5 0.0262 0.0262 40.0 0.0222 0.0222 46.0 0.0190 0.0190 52.5 0.0164 0.0164 60.0 0.0142 0.0142 69.0 0.0123 0.0123 79.0 0.0106 0.0106 90.5 0.0092 0.0092 105.5 0.0079 0.0079 123.5 0.0067 0.0067 143.0 0.0057 0.0057 163.5 0.0050 0.0050 185.0 0.0044 0.0044 208.0 0.0039 0.0039 232.5 0.0035 0.0035 258.5 0.0031 0.0031 286.0 0.0028 0.0028 331.0 0.0024 0.0024 396.0 0.0020 0.0020 468.5 0.0017 0.0017 549.5 0.0015 0.0015 639.0 0.0013 0.0013 738.0 0.0011 0.0011 847.5 0.0010 0.0010 968.5 0.0008 0.0008 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1944.5 0.0004 0.0004 -0.2 0.4 117 9.0 0.4135 0.4135 11.0 0.1664 0.1664 13.5 0.0997 0.0997 16.5 0.0692 0.0692 19.5 0.0536 0.0536 22.5 0.0441 0.0441 26.0 0.0366 0.0366 30.0 0.0307 0.0307 34.5 0.0261 0.0261 40.0 0.0220 0.0220 46.0 0.0189 0.0189 52.5 0.0163 0.0163 60.0 0.0141 0.0141 69.0 0.0122 0.0122 79.0 0.0106 0.0106 90.5 0.0092 0.0092 105.5 0.0078 0.0078 123.5 0.0066 0.0066 143.0 0.0057 0.0057 163.5 0.0050 0.0050 185.0 0.0044 0.0044 208.0 0.0039 0.0039 232.5 0.0035 0.0035 258.5 0.0031 0.0031 286.0 0.0028 0.0028 331.0 0.0024 0.0024 396.0 0.0020 0.0020 468.5 0.0017 0.0017 549.5 0.0015 0.0015 639.0 0.0013 0.0013 738.0 0.0011 0.0011 847.5 0.0009 0.0009 968.5 0.0008 0.0008 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 -0.4 0.6 117 9.0 0.3608 0.3608 11.0 0.1566 0.1566 13.5 0.0957 0.0957 16.5 0.0670 0.0670 19.5 0.0522 0.0522 22.5 0.0430 0.0430 26.0 0.0357 0.0357 30.0 0.0300 0.0300 34.5 0.0255 0.0255 40.0 0.0216 0.0216 46.0 0.0185 0.0185 52.5 0.0160 0.0160 60.0 0.0139 0.0139 69.0 0.0120 0.0120 79.0 0.0104 0.0104 90.5 0.0090 0.0090 105.5 0.0077 0.0077 123.5 0.0065 0.0065 143.0 0.0056 0.0056 163.5 0.0049 0.0049 185.0 0.0043 0.0043 208.0 0.0038 0.0038 232.5 0.0034 0.0034 258.5 0.0031 0.0031 286.0 0.0028 0.0028 331.0 0.0024 0.0024 396.0 0.0020 0.0020 468.5 0.0017 0.0017 549.5 0.0014 0.0014 639.0 0.0012 0.0012 738.0 0.0011 0.0011 847.5 0.0009 0.0009 968.5 0.0008 0.0008 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 -0.6 0.8 117 9.0 0.3377 0.3377 11.0 0.1516 0.1516 13.5 0.0936 0.0936 16.5 0.0658 0.0658 19.5 0.0514 0.0514 22.5 0.0423 0.0423 26.0 0.0353 0.0353 30.0 0.0297 0.0297 34.5 0.0252 0.0252 40.0 0.0213 0.0213 46.0 0.0183 0.0183 52.5 0.0158 0.0158 60.0 0.0137 0.0137 69.0 0.0118 0.0118 79.0 0.0102 0.0102 90.5 0.0089 0.0089 105.5 0.0076 0.0076 123.5 0.0064 0.0064 143.0 0.0055 0.0055 163.5 0.0048 0.0048 185.0 0.0043 0.0043 208.0 0.0038 0.0038 232.5 0.0034 0.0034 258.5 0.0030 0.0030 286.0 0.0027 0.0027 331.0 0.0024 0.0024 396.0 0.0020 0.0020 468.5 0.0017 0.0017 549.5 0.0014 0.0014 639.0 0.0012 0.0012 738.0 0.0011 0.0011 847.5 0.0009 0.0009 968.5 0.0008 0.0008 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 -0.8 1.0 117 9.0 0.3375 0.3375 11.0 0.1513 0.1513 13.5 0.0935 0.0935 16.5 0.0657 0.0657 19.5 0.0513 0.0513 22.5 0.0423 0.0423 26.0 0.0352 0.0352 30.0 0.0296 0.0296 34.5 0.0252 0.0252 40.0 0.0213 0.0213 46.0 0.0182 0.0182 52.5 0.0158 0.0158 60.0 0.0137 0.0137 69.0 0.0118 0.0118 79.0 0.0102 0.0102 90.5 0.0089 0.0089 105.5 0.0076 0.0076 123.5 0.0064 0.0064 143.0 0.0055 0.0055 163.5 0.0048 0.0048 185.0 0.0043 0.0043 208.0 0.0038 0.0038 232.5 0.0034 0.0034 258.5 0.0030 0.0030 286.0 0.0027 0.0027 331.0 0.0024 0.0024 396.0 0.0020 0.0020 468.5 0.0017 0.0017 549.5 0.0014 0.0014 639.0 0.0012 0.0012 738.0 0.0011 0.0011 847.5 0.0009 0.0009 968.5 0.0008 0.0008 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 -1.0 1.2 117 9.0 0.3216 0.3216 11.0 0.1476 0.1476 13.5 0.0918 0.0918 16.5 0.0648 0.0648 19.5 0.0507 0.0507 22.5 0.0418 0.0418 26.0 0.0348 0.0348 30.0 0.0293 0.0293 34.5 0.0249 0.0249 40.0 0.0211 0.0211 46.0 0.0181 0.0181 52.5 0.0157 0.0157 60.0 0.0136 0.0136 69.0 0.0117 0.0117 79.0 0.0101 0.0101 90.5 0.0088 0.0088 105.5 0.0075 0.0075 123.5 0.0064 0.0064 143.0 0.0055 0.0055 163.5 0.0048 0.0048 185.0 0.0042 0.0042 208.0 0.0037 0.0037 232.5 0.0033 0.0033 258.5 0.0030 0.0030 286.0 0.0027 0.0027 331.0 0.0023 0.0023 396.0 0.0020 0.0020 468.5 0.0017 0.0017 549.5 0.0014 0.0014 639.0 0.0012 0.0012 738.0 0.0010 0.0010 847.5 0.0009 0.0009 968.5 0.0008 0.0008 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 -1.2 1.4 117 9.0 0.2918 0.2918 11.0 0.1405 0.1405 13.5 0.0888 0.0888 16.5 0.0631 0.0631 19.5 0.0495 0.0495 22.5 0.0409 0.0409 26.0 0.0341 0.0341 30.0 0.0287 0.0287 34.5 0.0244 0.0244 40.0 0.0207 0.0207 46.0 0.0177 0.0177 52.5 0.0154 0.0154 60.0 0.0133 0.0133 69.0 0.0115 0.0115 79.0 0.0100 0.0100 90.5 0.0087 0.0087 105.5 0.0074 0.0074 123.5 0.0063 0.0063 143.0 0.0054 0.0054 163.5 0.0047 0.0047 185.0 0.0042 0.0042 208.0 0.0037 0.0037 232.5 0.0033 0.0033 258.5 0.0030 0.0030 286.0 0.0027 0.0027 331.0 0.0023 0.0023 396.0 0.0019 0.0019 468.5 0.0016 0.0016 549.5 0.0014 0.0014 639.0 0.0012 0.0012 738.0 0.0010 0.0010 847.5 0.0009 0.0009 968.5 0.0008 0.0008 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 -1.4 1.6 117 9.0 0.2608 0.2608 11.0 0.1326 0.1326 13.5 0.0853 0.0853 16.5 0.0611 0.0611 19.5 0.0481 0.0481 22.5 0.0398 0.0398 26.0 0.0333 0.0333 30.0 0.0281 0.0281 34.5 0.0239 0.0239 40.0 0.0202 0.0202 46.0 0.0174 0.0174 52.5 0.0150 0.0150 60.0 0.0130 0.0130 69.0 0.0113 0.0113 79.0 0.0098 0.0098 90.5 0.0085 0.0085 105.5 0.0072 0.0072 123.5 0.0061 0.0061 143.0 0.0053 0.0053 163.5 0.0046 0.0046 185.0 0.0041 0.0041 208.0 0.0036 0.0036 232.5 0.0032 0.0032 258.5 0.0029 0.0029 286.0 0.0026 0.0026 331.0 0.0023 0.0023 396.0 0.0019 0.0019 468.5 0.0016 0.0016 549.5 0.0014 0.0014 639.0 0.0012 0.0012 738.0 0.0010 0.0010 847.5 0.0009 0.0009 968.5 0.0008 0.0008 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 -1.6 1.8 117 9.0 0.2255 0.2255 11.0 0.1224 0.1224 13.5 0.0807 0.0807 16.5 0.0584 0.0584 19.5 0.0462 0.0462 22.5 0.0384 0.0384 26.0 0.0321 0.0321 30.0 0.0271 0.0271 34.5 0.0231 0.0231 40.0 0.0196 0.0196 46.0 0.0168 0.0168 52.5 0.0146 0.0146 60.0 0.0126 0.0126 69.0 0.0109 0.0109 79.0 0.0095 0.0095 90.5 0.0082 0.0082 105.5 0.0070 0.0070 123.5 0.0060 0.0060 143.0 0.0051 0.0051 163.5 0.0045 0.0045 185.0 0.0040 0.0040 208.0 0.0035 0.0035 232.5 0.0031 0.0031 258.5 0.0028 0.0028 286.0 0.0025 0.0025 331.0 0.0022 0.0022 396.0 0.0018 0.0018 468.5 0.0015 0.0015 549.5 0.0013 0.0013 639.0 0.0011 0.0011 738.0 0.0010 0.0010 847.5 0.0009 0.0009 968.5 0.0007 0.0007 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 -1.8 2.0 117 9.0 0.1936 0.1936 11.0 0.1119 0.1119 13.5 0.0755 0.0755 16.5 0.0553 0.0553 19.5 0.0440 0.0440 22.5 0.0366 0.0366 26.0 0.0307 0.0307 30.0 0.0260 0.0260 34.5 0.0222 0.0222 40.0 0.0188 0.0188 46.0 0.0162 0.0162 52.5 0.0140 0.0140 60.0 0.0122 0.0122 69.0 0.0105 0.0105 79.0 0.0091 0.0091 90.5 0.0079 0.0079 105.5 0.0068 0.0068 123.5 0.0058 0.0058 143.0 0.0050 0.0050 163.5 0.0043 0.0043 185.0 0.0038 0.0038 208.0 0.0034 0.0034 232.5 0.0030 0.0030 258.5 0.0027 0.0027 286.0 0.0024 0.0024 331.0 0.0021 0.0021 396.0 0.0018 0.0018 468.5 0.0015 0.0015 549.5 0.0013 0.0013 639.0 0.0011 0.0011 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 -2.0 2.2 117 9.0 0.1568 0.1568 11.0 0.0977 0.0977 13.5 0.0682 0.0682 16.5 0.0507 0.0507 19.5 0.0407 0.0407 22.5 0.0340 0.0340 26.0 0.0286 0.0286 30.0 0.0243 0.0243 34.5 0.0208 0.0208 40.0 0.0176 0.0176 46.0 0.0152 0.0152 52.5 0.0132 0.0132 60.0 0.0114 0.0114 69.0 0.0099 0.0099 79.0 0.0086 0.0086 90.5 0.0074 0.0074 105.5 0.0064 0.0064 123.5 0.0054 0.0054 143.0 0.0047 0.0047 163.5 0.0041 0.0041 185.0 0.0036 0.0036 208.0 0.0032 0.0032 232.5 0.0028 0.0028 258.5 0.0026 0.0026 286.0 0.0023 0.0023 331.0 0.0020 0.0020 396.0 0.0017 0.0017 468.5 0.0014 0.0014 549.5 0.0012 0.0012 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0003 0.0003 -2.2 2.4 117 9.0 0.1477 0.1477 11.0 0.0947 0.0947 13.5 0.0668 0.0668 16.5 0.0499 0.0499 19.5 0.0401 0.0401 22.5 0.0336 0.0336 26.0 0.0283 0.0283 30.0 0.0240 0.0240 34.5 0.0205 0.0205 40.0 0.0174 0.0174 46.0 0.0150 0.0150 52.5 0.0130 0.0130 60.0 0.0113 0.0113 69.0 0.0097 0.0097 79.0 0.0085 0.0085 90.5 0.0073 0.0073 105.5 0.0063 0.0063 123.5 0.0053 0.0053 143.0 0.0046 0.0046 163.5 0.0040 0.0040 185.0 0.0035 0.0035 208.0 0.0031 0.0031 232.5 0.0028 0.0028 258.5 0.0025 0.0025 286.0 0.0023 0.0023 331.0 0.0020 0.0020 396.0 0.0016 0.0016 468.5 0.0014 0.0014 549.5 0.0012 0.0012 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0003 0.0003 -2.4 2.6 117 9.0 0.1870 0.1870 11.0 0.1097 0.1097 13.5 0.0745 0.0745 16.5 0.0546 0.0546 19.5 0.0435 0.0435 22.5 0.0363 0.0363 26.0 0.0304 0.0304 30.0 0.0257 0.0257 34.5 0.0220 0.0220 40.0 0.0186 0.0186 46.0 0.0160 0.0160 52.5 0.0139 0.0139 60.0 0.0120 0.0120 69.0 0.0104 0.0104 79.0 0.0090 0.0090 90.5 0.0078 0.0078 105.5 0.0067 0.0067 123.5 0.0057 0.0057 143.0 0.0049 0.0049 163.5 0.0043 0.0043 185.0 0.0038 0.0038 208.0 0.0033 0.0033 232.5 0.0030 0.0030 258.5 0.0027 0.0027 286.0 0.0024 0.0024 331.0 0.0021 0.0021 396.0 0.0017 0.0017 468.5 0.0015 0.0015 549.5 0.0013 0.0013 639.0 0.0011 0.0011 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0004 0.0004 -2.6 2.8 117 9.0 0.1707 0.1707 11.0 0.1022 0.1022 13.5 0.0702 0.0702 16.5 0.0519 0.0519 19.5 0.0415 0.0415 22.5 0.0346 0.0346 26.0 0.0291 0.0291 30.0 0.0247 0.0247 34.5 0.0211 0.0211 40.0 0.0179 0.0179 46.0 0.0154 0.0154 52.5 0.0134 0.0134 60.0 0.0116 0.0116 69.0 0.0100 0.0100 79.0 0.0087 0.0087 90.5 0.0076 0.0076 105.5 0.0065 0.0065 123.5 0.0055 0.0055 143.0 0.0047 0.0047 163.5 0.0041 0.0041 185.0 0.0036 0.0036 208.0 0.0032 0.0032 232.5 0.0029 0.0029 258.5 0.0026 0.0026 286.0 0.0023 0.0023 331.0 0.0020 0.0020 396.0 0.0017 0.0017 468.5 0.0014 0.0014 549.5 0.0012 0.0012 639.0 0.0010 0.0010 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0003 0.0003 -2.8 3.0 117 9.0 0.1810 0.1810 11.0 0.1054 0.1054 13.5 0.0716 0.0716 16.5 0.0527 0.0527 19.5 0.0421 0.0421 22.5 0.0352 0.0352 26.0 0.0296 0.0296 30.0 0.0250 0.0250 34.5 0.0214 0.0214 40.0 0.0182 0.0182 46.0 0.0156 0.0156 52.5 0.0136 0.0136 60.0 0.0118 0.0118 69.0 0.0102 0.0102 79.0 0.0088 0.0088 90.5 0.0077 0.0077 105.5 0.0066 0.0066 123.5 0.0056 0.0056 143.0 0.0048 0.0048 163.5 0.0042 0.0042 185.0 0.0037 0.0037 208.0 0.0033 0.0033 232.5 0.0029 0.0029 258.5 0.0026 0.0026 286.0 0.0024 0.0024 331.0 0.0021 0.0021 396.0 0.0017 0.0017 468.5 0.0014 0.0014 549.5 0.0012 0.0012 639.0 0.0011 0.0011 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0003 0.0003 -3.0 3.5 117 9.0 0.1742 0.1742 11.0 0.1047 0.1047 13.5 0.0719 0.0719 16.5 0.0530 0.0530 19.5 0.0423 0.0423 22.5 0.0353 0.0353 26.0 0.0297 0.0297 30.0 0.0251 0.0251 34.5 0.0215 0.0215 40.0 0.0182 0.0182 46.0 0.0157 0.0157 52.5 0.0136 0.0136 60.0 0.0118 0.0118 69.0 0.0102 0.0102 79.0 0.0088 0.0088 90.5 0.0077 0.0077 105.5 0.0066 0.0066 123.5 0.0056 0.0056 143.0 0.0048 0.0048 163.5 0.0042 0.0042 185.0 0.0037 0.0037 208.0 0.0033 0.0033 232.5 0.0029 0.0029 258.5 0.0026 0.0026 286.0 0.0024 0.0024 331.0 0.0020 0.0020 396.0 0.0017 0.0017 468.5 0.0014 0.0014 549.5 0.0012 0.0012 639.0 0.0011 0.0011 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1944.5 0.0003 0.0003 -3.5 4.0 117 9.0 0.1341 0.1341 11.0 0.0879 0.0879 13.5 0.0627 0.0627 16.5 0.0472 0.0472 19.5 0.0381 0.0381 22.5 0.0320 0.0320 26.0 0.0270 0.0270 30.0 0.0229 0.0229 34.5 0.0196 0.0196 40.0 0.0167 0.0167 46.0 0.0143 0.0143 52.5 0.0125 0.0125 60.0 0.0108 0.0108 69.0 0.0094 0.0094 79.0 0.0081 0.0081 90.5 0.0071 0.0071 105.5 0.0060 0.0060 123.5 0.0051 0.0051 143.0 0.0044 0.0044 163.5 0.0039 0.0039 185.0 0.0034 0.0034 208.0 0.0030 0.0030 232.5 0.0027 0.0027 258.5 0.0024 0.0024 286.0 0.0022 0.0022 331.0 0.0019 0.0019 396.0 0.0016 0.0016 468.5 0.0013 0.0013 549.5 0.0011 0.0011 639.0 0.0010 0.0010 738.0 0.0008 0.0008 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -4.0 4.5 117 9.0 0.0914 0.0914 11.0 0.0653 0.0653 13.5 0.0488 0.0488 16.5 0.0377 0.0377 19.5 0.0309 0.0309 22.5 0.0262 0.0262 26.0 0.0222 0.0222 30.0 0.0190 0.0190 34.5 0.0163 0.0163 40.0 0.0139 0.0139 46.0 0.0120 0.0120 52.5 0.0105 0.0105 60.0 0.0091 0.0091 69.0 0.0079 0.0079 79.0 0.0069 0.0069 90.5 0.0060 0.0060 105.5 0.0051 0.0051 123.5 0.0043 0.0043 143.0 0.0037 0.0037 163.5 0.0033 0.0033 185.0 0.0029 0.0029 208.0 0.0026 0.0026 232.5 0.0023 0.0023 258.5 0.0021 0.0021 286.0 0.0019 0.0019 331.0 0.0016 0.0016 396.0 0.0013 0.0013 468.5 0.0011 0.0011 549.5 0.0010 0.0010 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -4.5 5.2 117 9.0 0.0415 0.0415 11.0 0.0329 0.0329 13.5 0.0262 0.0262 16.5 0.0211 0.0211 19.5 0.0177 0.0177 22.5 0.0152 0.0152 26.0 0.0131 0.0131 30.0 0.0113 0.0113 34.5 0.0098 0.0098 40.0 0.0084 0.0084 46.0 0.0073 0.0073 52.5 0.0064 0.0064 60.0 0.0056 0.0056 69.0 0.0048 0.0048 79.0 0.0042 0.0042 90.5 0.0037 0.0037 105.5 0.0032 0.0032 123.5 0.0027 0.0027 143.0 0.0023 0.0023 163.5 0.0020 0.0020 185.0 0.0018 0.0018 208.0 0.0016 0.0016 232.5 0.0014 0.0014 258.5 0.0013 0.0013 286.0 0.0012 0.0012 331.0 0.0010 0.0010 396.0 0.0008 0.0008 468.5 0.0007 0.0007 549.5 0.0006 0.0006 639.0 0.0005 0.0005 738.0 0.0004 0.0004 847.5 0.0004 0.0004 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0002 0.0002 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 -[SubTotalRelative] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0280 0.0280 11.0 0.0280 0.0280 13.5 0.0280 0.0280 16.5 0.0280 0.0280 19.5 0.0280 0.0280 22.5 0.0280 0.0280 26.0 0.0280 0.0280 30.0 0.0280 0.0280 34.5 0.0280 0.0280 40.0 0.0280 0.0280 46.0 0.0280 0.0280 52.5 0.0280 0.0280 60.0 0.0280 0.0280 69.0 0.0280 0.0280 79.0 0.0280 0.0280 90.5 0.0280 0.0280 105.5 0.0280 0.0280 123.5 0.0280 0.0280 143.0 0.0280 0.0280 163.5 0.0280 0.0280 185.0 0.0280 0.0280 208.0 0.0280 0.0280 232.5 0.0280 0.0280 258.5 0.0280 0.0280 286.0 0.0280 0.0280 331.0 0.0280 0.0280 396.0 0.0280 0.0280 468.5 0.0280 0.0280 549.5 0.0280 0.0280 639.0 0.0280 0.0280 738.0 0.0280 0.0280 847.5 0.0280 0.0280 968.5 0.0280 0.0280 1102.0 0.0280 0.0280 1249.5 0.0280 0.0280 1412.0 0.0280 0.0280 1590.5 0.0280 0.0280 1787.0 0.0280 0.0280 1944.5 0.0280 0.0280 --4.5 -4.0 117 9.0 0.0280 0.0280 11.0 0.0280 0.0280 13.5 0.0280 0.0280 16.5 0.0280 0.0280 19.5 0.0280 0.0280 22.5 0.0280 0.0280 26.0 0.0280 0.0280 30.0 0.0280 0.0280 34.5 0.0280 0.0280 40.0 0.0280 0.0280 46.0 0.0280 0.0280 52.5 0.0280 0.0280 60.0 0.0280 0.0280 69.0 0.0280 0.0280 79.0 0.0280 0.0280 90.5 0.0280 0.0280 105.5 0.0280 0.0280 123.5 0.0280 0.0280 143.0 0.0280 0.0280 163.5 0.0280 0.0280 185.0 0.0280 0.0280 208.0 0.0280 0.0280 232.5 0.0280 0.0280 258.5 0.0280 0.0280 286.0 0.0280 0.0280 331.0 0.0280 0.0280 396.0 0.0280 0.0280 468.5 0.0280 0.0280 549.5 0.0280 0.0280 639.0 0.0280 0.0280 738.0 0.0280 0.0280 847.5 0.0280 0.0280 968.5 0.0280 0.0280 1102.0 0.0280 0.0280 1249.5 0.0280 0.0280 1412.0 0.0280 0.0280 1590.5 0.0280 0.0280 1787.0 0.0280 0.0280 1944.5 0.0280 0.0280 --4.0 -3.5 117 9.0 0.0280 0.0280 11.0 0.0280 0.0280 13.5 0.0280 0.0280 16.5 0.0280 0.0280 19.5 0.0280 0.0280 22.5 0.0280 0.0280 26.0 0.0280 0.0280 30.0 0.0280 0.0280 34.5 0.0280 0.0280 40.0 0.0280 0.0280 46.0 0.0280 0.0280 52.5 0.0280 0.0280 60.0 0.0280 0.0280 69.0 0.0280 0.0280 79.0 0.0280 0.0280 90.5 0.0280 0.0280 105.5 0.0280 0.0280 123.5 0.0280 0.0280 143.0 0.0280 0.0280 163.5 0.0280 0.0280 185.0 0.0280 0.0280 208.0 0.0280 0.0280 232.5 0.0280 0.0280 258.5 0.0280 0.0280 286.0 0.0280 0.0280 331.0 0.0280 0.0280 396.0 0.0280 0.0280 468.5 0.0280 0.0280 549.5 0.0280 0.0280 639.0 0.0280 0.0280 738.0 0.0280 0.0280 847.5 0.0280 0.0280 968.5 0.0280 0.0280 1102.0 0.0280 0.0280 1249.5 0.0280 0.0280 1412.0 0.0280 0.0280 1590.5 0.0280 0.0280 1787.0 0.0280 0.0280 1944.5 0.0280 0.0280 --3.5 -3.0 117 9.0 0.0224 0.0224 11.0 0.0224 0.0224 13.5 0.0224 0.0224 16.5 0.0224 0.0224 19.5 0.0224 0.0224 22.5 0.0224 0.0224 26.0 0.0224 0.0224 30.0 0.0224 0.0224 34.5 0.0224 0.0224 40.0 0.0224 0.0224 46.0 0.0224 0.0224 52.5 0.0224 0.0224 60.0 0.0224 0.0224 69.0 0.0224 0.0224 79.0 0.0224 0.0224 90.5 0.0224 0.0224 105.5 0.0224 0.0224 123.5 0.0224 0.0224 143.0 0.0224 0.0224 163.5 0.0224 0.0224 185.0 0.0224 0.0224 208.0 0.0224 0.0224 232.5 0.0224 0.0224 258.5 0.0224 0.0224 286.0 0.0224 0.0224 331.0 0.0224 0.0224 396.0 0.0224 0.0224 468.5 0.0224 0.0224 549.5 0.0224 0.0224 639.0 0.0224 0.0224 738.0 0.0224 0.0224 847.5 0.0224 0.0224 968.5 0.0224 0.0224 1102.0 0.0224 0.0224 1249.5 0.0224 0.0224 1412.0 0.0224 0.0224 1590.5 0.0224 0.0224 1787.0 0.0224 0.0224 1944.5 0.0224 0.0224 --3.0 -2.8 117 9.0 0.0236 0.0236 11.0 0.0236 0.0236 13.5 0.0236 0.0236 16.5 0.0236 0.0236 19.5 0.0236 0.0236 22.5 0.0236 0.0236 26.0 0.0236 0.0236 30.0 0.0236 0.0236 34.5 0.0236 0.0236 40.0 0.0236 0.0236 46.0 0.0236 0.0236 52.5 0.0236 0.0236 60.0 0.0236 0.0236 69.0 0.0236 0.0236 79.0 0.0236 0.0236 90.5 0.0236 0.0236 105.5 0.0236 0.0236 123.5 0.0236 0.0236 143.0 0.0236 0.0236 163.5 0.0236 0.0236 185.0 0.0236 0.0236 208.0 0.0236 0.0236 232.5 0.0236 0.0236 258.5 0.0236 0.0236 286.0 0.0236 0.0236 331.0 0.0236 0.0236 396.0 0.0236 0.0236 468.5 0.0236 0.0236 549.5 0.0236 0.0236 639.0 0.0236 0.0236 738.0 0.0236 0.0236 847.5 0.0236 0.0236 968.5 0.0236 0.0236 1102.0 0.0236 0.0236 1249.5 0.0236 0.0236 1412.0 0.0236 0.0236 1590.5 0.0236 0.0236 1787.0 0.0236 0.0236 1944.5 0.0236 0.0236 --2.8 -2.6 117 9.0 0.0113 0.0113 11.0 0.0113 0.0113 13.5 0.0113 0.0113 16.5 0.0113 0.0113 19.5 0.0113 0.0113 22.5 0.0113 0.0113 26.0 0.0113 0.0113 30.0 0.0113 0.0113 34.5 0.0113 0.0113 40.0 0.0113 0.0113 46.0 0.0113 0.0113 52.5 0.0113 0.0113 60.0 0.0113 0.0113 69.0 0.0113 0.0113 79.0 0.0113 0.0113 90.5 0.0113 0.0113 105.5 0.0113 0.0113 123.5 0.0113 0.0113 143.0 0.0113 0.0113 163.5 0.0113 0.0113 185.0 0.0113 0.0113 208.0 0.0113 0.0113 232.5 0.0113 0.0113 258.5 0.0113 0.0113 286.0 0.0113 0.0113 331.0 0.0113 0.0113 396.0 0.0113 0.0113 468.5 0.0113 0.0113 549.5 0.0113 0.0113 639.0 0.0113 0.0113 738.0 0.0113 0.0113 847.5 0.0113 0.0113 968.5 0.0113 0.0113 1102.0 0.0113 0.0113 1249.5 0.0113 0.0113 1412.0 0.0113 0.0113 1590.5 0.0113 0.0113 1787.0 0.0113 0.0113 1944.5 0.0113 0.0113 --2.6 -2.4 117 9.0 0.0082 0.0082 11.0 0.0082 0.0082 13.5 0.0082 0.0082 16.5 0.0082 0.0082 19.5 0.0082 0.0082 22.5 0.0082 0.0082 26.0 0.0082 0.0082 30.0 0.0082 0.0082 34.5 0.0082 0.0082 40.0 0.0082 0.0082 46.0 0.0082 0.0082 52.5 0.0082 0.0082 60.0 0.0082 0.0082 69.0 0.0082 0.0082 79.0 0.0082 0.0082 90.5 0.0082 0.0082 105.5 0.0082 0.0082 123.5 0.0082 0.0082 143.0 0.0082 0.0082 163.5 0.0082 0.0082 185.0 0.0082 0.0082 208.0 0.0082 0.0082 232.5 0.0082 0.0082 258.5 0.0082 0.0082 286.0 0.0082 0.0082 331.0 0.0082 0.0082 396.0 0.0082 0.0082 468.5 0.0082 0.0082 549.5 0.0082 0.0082 639.0 0.0082 0.0082 738.0 0.0082 0.0082 847.5 0.0082 0.0082 968.5 0.0082 0.0082 1102.0 0.0082 0.0082 1249.5 0.0082 0.0082 1412.0 0.0082 0.0082 1590.5 0.0082 0.0082 1787.0 0.0082 0.0082 1944.5 0.0082 0.0082 --2.4 -2.2 117 9.0 0.0048 0.0048 11.0 0.0048 0.0048 13.5 0.0048 0.0048 16.5 0.0048 0.0048 19.5 0.0048 0.0048 22.5 0.0048 0.0048 26.0 0.0048 0.0048 30.0 0.0048 0.0048 34.5 0.0048 0.0048 40.0 0.0048 0.0048 46.0 0.0048 0.0048 52.5 0.0048 0.0048 60.0 0.0048 0.0048 69.0 0.0048 0.0048 79.0 0.0048 0.0048 90.5 0.0048 0.0048 105.5 0.0048 0.0048 123.5 0.0048 0.0048 143.0 0.0048 0.0048 163.5 0.0048 0.0048 185.0 0.0048 0.0048 208.0 0.0048 0.0048 232.5 0.0048 0.0048 258.5 0.0048 0.0048 286.0 0.0048 0.0048 331.0 0.0048 0.0048 396.0 0.0048 0.0048 468.5 0.0048 0.0048 549.5 0.0048 0.0048 639.0 0.0048 0.0048 738.0 0.0048 0.0048 847.5 0.0048 0.0048 968.5 0.0048 0.0048 1102.0 0.0048 0.0048 1249.5 0.0048 0.0048 1412.0 0.0048 0.0048 1590.5 0.0048 0.0048 1787.0 0.0048 0.0048 1944.5 0.0048 0.0048 --2.2 -2.0 117 9.0 0.0041 0.0041 11.0 0.0041 0.0041 13.5 0.0041 0.0041 16.5 0.0041 0.0041 19.5 0.0041 0.0041 22.5 0.0041 0.0041 26.0 0.0041 0.0041 30.0 0.0041 0.0041 34.5 0.0041 0.0041 40.0 0.0041 0.0041 46.0 0.0041 0.0041 52.5 0.0041 0.0041 60.0 0.0041 0.0041 69.0 0.0041 0.0041 79.0 0.0041 0.0041 90.5 0.0041 0.0041 105.5 0.0041 0.0041 123.5 0.0041 0.0041 143.0 0.0041 0.0041 163.5 0.0041 0.0041 185.0 0.0041 0.0041 208.0 0.0041 0.0041 232.5 0.0041 0.0041 258.5 0.0041 0.0041 286.0 0.0041 0.0041 331.0 0.0041 0.0041 396.0 0.0041 0.0041 468.5 0.0041 0.0041 549.5 0.0041 0.0041 639.0 0.0041 0.0041 738.0 0.0041 0.0041 847.5 0.0041 0.0041 968.5 0.0041 0.0041 1102.0 0.0041 0.0041 1249.5 0.0041 0.0041 1412.0 0.0041 0.0041 1590.5 0.0041 0.0041 1787.0 0.0041 0.0041 1944.5 0.0041 0.0041 --2.0 -1.8 117 9.0 0.0034 0.0034 11.0 0.0034 0.0034 13.5 0.0034 0.0034 16.5 0.0034 0.0034 19.5 0.0034 0.0034 22.5 0.0034 0.0034 26.0 0.0034 0.0034 30.0 0.0034 0.0034 34.5 0.0034 0.0034 40.0 0.0034 0.0034 46.0 0.0034 0.0034 52.5 0.0034 0.0034 60.0 0.0034 0.0034 69.0 0.0034 0.0034 79.0 0.0034 0.0034 90.5 0.0034 0.0034 105.5 0.0034 0.0034 123.5 0.0034 0.0034 143.0 0.0034 0.0034 163.5 0.0034 0.0034 185.0 0.0034 0.0034 208.0 0.0034 0.0034 232.5 0.0034 0.0034 258.5 0.0034 0.0034 286.0 0.0034 0.0034 331.0 0.0034 0.0034 396.0 0.0034 0.0034 468.5 0.0034 0.0034 549.5 0.0034 0.0034 639.0 0.0034 0.0034 738.0 0.0034 0.0034 847.5 0.0034 0.0034 968.5 0.0034 0.0034 1102.0 0.0034 0.0034 1249.5 0.0034 0.0034 1412.0 0.0034 0.0034 1590.5 0.0034 0.0034 1787.0 0.0034 0.0034 1944.5 0.0034 0.0034 --1.8 -1.6 117 9.0 0.0028 0.0028 11.0 0.0028 0.0028 13.5 0.0028 0.0028 16.5 0.0028 0.0028 19.5 0.0028 0.0028 22.5 0.0028 0.0028 26.0 0.0028 0.0028 30.0 0.0028 0.0028 34.5 0.0028 0.0028 40.0 0.0028 0.0028 46.0 0.0028 0.0028 52.5 0.0028 0.0028 60.0 0.0028 0.0028 69.0 0.0028 0.0028 79.0 0.0028 0.0028 90.5 0.0028 0.0028 105.5 0.0028 0.0028 123.5 0.0028 0.0028 143.0 0.0028 0.0028 163.5 0.0028 0.0028 185.0 0.0028 0.0028 208.0 0.0028 0.0028 232.5 0.0028 0.0028 258.5 0.0028 0.0028 286.0 0.0028 0.0028 331.0 0.0028 0.0028 396.0 0.0028 0.0028 468.5 0.0028 0.0028 549.5 0.0028 0.0028 639.0 0.0028 0.0028 738.0 0.0028 0.0028 847.5 0.0028 0.0028 968.5 0.0028 0.0028 1102.0 0.0028 0.0028 1249.5 0.0028 0.0028 1412.0 0.0028 0.0028 1590.5 0.0028 0.0028 1787.0 0.0028 0.0028 1944.5 0.0028 0.0028 --1.6 -1.4 117 9.0 0.0021 0.0021 11.0 0.0021 0.0021 13.5 0.0021 0.0021 16.5 0.0021 0.0021 19.5 0.0021 0.0021 22.5 0.0021 0.0021 26.0 0.0021 0.0021 30.0 0.0021 0.0021 34.5 0.0021 0.0021 40.0 0.0021 0.0021 46.0 0.0021 0.0021 52.5 0.0021 0.0021 60.0 0.0021 0.0021 69.0 0.0021 0.0021 79.0 0.0021 0.0021 90.5 0.0021 0.0021 105.5 0.0021 0.0021 123.5 0.0021 0.0021 143.0 0.0021 0.0021 163.5 0.0021 0.0021 185.0 0.0021 0.0021 208.0 0.0021 0.0021 232.5 0.0021 0.0021 258.5 0.0021 0.0021 286.0 0.0021 0.0021 331.0 0.0021 0.0021 396.0 0.0021 0.0021 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0021 0.0021 968.5 0.0021 0.0021 1102.0 0.0021 0.0021 1249.5 0.0021 0.0021 1412.0 0.0021 0.0021 1590.5 0.0021 0.0021 1787.0 0.0021 0.0021 1944.5 0.0021 0.0021 --1.4 -1.2 117 9.0 0.0005 0.0005 11.0 0.0005 0.0005 13.5 0.0005 0.0005 16.5 0.0005 0.0005 19.5 0.0005 0.0005 22.5 0.0005 0.0005 26.0 0.0005 0.0005 30.0 0.0005 0.0005 34.5 0.0005 0.0005 40.0 0.0005 0.0005 46.0 0.0005 0.0005 52.5 0.0005 0.0005 60.0 0.0005 0.0005 69.0 0.0005 0.0005 79.0 0.0005 0.0005 90.5 0.0005 0.0005 105.5 0.0005 0.0005 123.5 0.0005 0.0005 143.0 0.0005 0.0005 163.5 0.0005 0.0005 185.0 0.0005 0.0005 208.0 0.0005 0.0005 232.5 0.0005 0.0005 258.5 0.0005 0.0005 286.0 0.0005 0.0005 331.0 0.0005 0.0005 396.0 0.0005 0.0005 468.5 0.0005 0.0005 549.5 0.0005 0.0005 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1944.5 0.0005 0.0005 --1.2 -1.0 117 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 --1.0 -0.8 117 9.0 0.0002 0.0002 11.0 0.0002 0.0002 13.5 0.0002 0.0002 16.5 0.0002 0.0002 19.5 0.0002 0.0002 22.5 0.0002 0.0002 26.0 0.0002 0.0002 30.0 0.0002 0.0002 34.5 0.0002 0.0002 40.0 0.0002 0.0002 46.0 0.0002 0.0002 52.5 0.0002 0.0002 60.0 0.0002 0.0002 69.0 0.0002 0.0002 79.0 0.0002 0.0002 90.5 0.0002 0.0002 105.5 0.0002 0.0002 123.5 0.0002 0.0002 143.0 0.0002 0.0002 163.5 0.0002 0.0002 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0002 0.0002 258.5 0.0002 0.0002 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0002 0.0002 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0002 0.0002 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 --0.8 -0.6 117 9.0 0.0001 0.0001 11.0 0.0001 0.0001 13.5 0.0001 0.0001 16.5 0.0001 0.0001 19.5 0.0001 0.0001 22.5 0.0001 0.0001 26.0 0.0001 0.0001 30.0 0.0001 0.0001 34.5 0.0001 0.0001 40.0 0.0001 0.0001 46.0 0.0001 0.0001 52.5 0.0001 0.0001 60.0 0.0001 0.0001 69.0 0.0001 0.0001 79.0 0.0001 0.0001 90.5 0.0001 0.0001 105.5 0.0001 0.0001 123.5 0.0001 0.0001 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --0.6 -0.4 117 9.0 0.0001 0.0001 11.0 0.0001 0.0001 13.5 0.0001 0.0001 16.5 0.0001 0.0001 19.5 0.0001 0.0001 22.5 0.0001 0.0001 26.0 0.0001 0.0001 30.0 0.0001 0.0001 34.5 0.0001 0.0001 40.0 0.0001 0.0001 46.0 0.0001 0.0001 52.5 0.0001 0.0001 60.0 0.0001 0.0001 69.0 0.0001 0.0001 79.0 0.0001 0.0001 90.5 0.0001 0.0001 105.5 0.0001 0.0001 123.5 0.0001 0.0001 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 --0.4 -0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 --0.2 0.0 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.0 0.2 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.2 0.4 117 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1944.5 0.0000 0.0000 -0.4 0.6 117 9.0 0.0001 0.0001 11.0 0.0001 0.0001 13.5 0.0001 0.0001 16.5 0.0001 0.0001 19.5 0.0001 0.0001 22.5 0.0001 0.0001 26.0 0.0001 0.0001 30.0 0.0001 0.0001 34.5 0.0001 0.0001 40.0 0.0001 0.0001 46.0 0.0001 0.0001 52.5 0.0001 0.0001 60.0 0.0001 0.0001 69.0 0.0001 0.0001 79.0 0.0001 0.0001 90.5 0.0001 0.0001 105.5 0.0001 0.0001 123.5 0.0001 0.0001 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -0.6 0.8 117 9.0 0.0001 0.0001 11.0 0.0001 0.0001 13.5 0.0001 0.0001 16.5 0.0001 0.0001 19.5 0.0001 0.0001 22.5 0.0001 0.0001 26.0 0.0001 0.0001 30.0 0.0001 0.0001 34.5 0.0001 0.0001 40.0 0.0001 0.0001 46.0 0.0001 0.0001 52.5 0.0001 0.0001 60.0 0.0001 0.0001 69.0 0.0001 0.0001 79.0 0.0001 0.0001 90.5 0.0001 0.0001 105.5 0.0001 0.0001 123.5 0.0001 0.0001 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1944.5 0.0001 0.0001 -0.8 1.0 117 9.0 0.0002 0.0002 11.0 0.0002 0.0002 13.5 0.0002 0.0002 16.5 0.0002 0.0002 19.5 0.0002 0.0002 22.5 0.0002 0.0002 26.0 0.0002 0.0002 30.0 0.0002 0.0002 34.5 0.0002 0.0002 40.0 0.0002 0.0002 46.0 0.0002 0.0002 52.5 0.0002 0.0002 60.0 0.0002 0.0002 69.0 0.0002 0.0002 79.0 0.0002 0.0002 90.5 0.0002 0.0002 105.5 0.0002 0.0002 123.5 0.0002 0.0002 143.0 0.0002 0.0002 163.5 0.0002 0.0002 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0002 0.0002 258.5 0.0002 0.0002 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0002 0.0002 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0002 0.0002 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1944.5 0.0002 0.0002 -1.0 1.2 117 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1944.5 0.0003 0.0003 -1.2 1.4 117 9.0 0.0005 0.0005 11.0 0.0005 0.0005 13.5 0.0005 0.0005 16.5 0.0005 0.0005 19.5 0.0005 0.0005 22.5 0.0005 0.0005 26.0 0.0005 0.0005 30.0 0.0005 0.0005 34.5 0.0005 0.0005 40.0 0.0005 0.0005 46.0 0.0005 0.0005 52.5 0.0005 0.0005 60.0 0.0005 0.0005 69.0 0.0005 0.0005 79.0 0.0005 0.0005 90.5 0.0005 0.0005 105.5 0.0005 0.0005 123.5 0.0005 0.0005 143.0 0.0005 0.0005 163.5 0.0005 0.0005 185.0 0.0005 0.0005 208.0 0.0005 0.0005 232.5 0.0005 0.0005 258.5 0.0005 0.0005 286.0 0.0005 0.0005 331.0 0.0005 0.0005 396.0 0.0005 0.0005 468.5 0.0005 0.0005 549.5 0.0005 0.0005 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1944.5 0.0005 0.0005 -1.4 1.6 117 9.0 0.0021 0.0021 11.0 0.0021 0.0021 13.5 0.0021 0.0021 16.5 0.0021 0.0021 19.5 0.0021 0.0021 22.5 0.0021 0.0021 26.0 0.0021 0.0021 30.0 0.0021 0.0021 34.5 0.0021 0.0021 40.0 0.0021 0.0021 46.0 0.0021 0.0021 52.5 0.0021 0.0021 60.0 0.0021 0.0021 69.0 0.0021 0.0021 79.0 0.0021 0.0021 90.5 0.0021 0.0021 105.5 0.0021 0.0021 123.5 0.0021 0.0021 143.0 0.0021 0.0021 163.5 0.0021 0.0021 185.0 0.0021 0.0021 208.0 0.0021 0.0021 232.5 0.0021 0.0021 258.5 0.0021 0.0021 286.0 0.0021 0.0021 331.0 0.0021 0.0021 396.0 0.0021 0.0021 468.5 0.0021 0.0021 549.5 0.0021 0.0021 639.0 0.0021 0.0021 738.0 0.0021 0.0021 847.5 0.0021 0.0021 968.5 0.0021 0.0021 1102.0 0.0021 0.0021 1249.5 0.0021 0.0021 1412.0 0.0021 0.0021 1590.5 0.0021 0.0021 1787.0 0.0021 0.0021 1944.5 0.0021 0.0021 -1.6 1.8 117 9.0 0.0028 0.0028 11.0 0.0028 0.0028 13.5 0.0028 0.0028 16.5 0.0028 0.0028 19.5 0.0028 0.0028 22.5 0.0028 0.0028 26.0 0.0028 0.0028 30.0 0.0028 0.0028 34.5 0.0028 0.0028 40.0 0.0028 0.0028 46.0 0.0028 0.0028 52.5 0.0028 0.0028 60.0 0.0028 0.0028 69.0 0.0028 0.0028 79.0 0.0028 0.0028 90.5 0.0028 0.0028 105.5 0.0028 0.0028 123.5 0.0028 0.0028 143.0 0.0028 0.0028 163.5 0.0028 0.0028 185.0 0.0028 0.0028 208.0 0.0028 0.0028 232.5 0.0028 0.0028 258.5 0.0028 0.0028 286.0 0.0028 0.0028 331.0 0.0028 0.0028 396.0 0.0028 0.0028 468.5 0.0028 0.0028 549.5 0.0028 0.0028 639.0 0.0028 0.0028 738.0 0.0028 0.0028 847.5 0.0028 0.0028 968.5 0.0028 0.0028 1102.0 0.0028 0.0028 1249.5 0.0028 0.0028 1412.0 0.0028 0.0028 1590.5 0.0028 0.0028 1787.0 0.0028 0.0028 1944.5 0.0028 0.0028 -1.8 2.0 117 9.0 0.0034 0.0034 11.0 0.0034 0.0034 13.5 0.0034 0.0034 16.5 0.0034 0.0034 19.5 0.0034 0.0034 22.5 0.0034 0.0034 26.0 0.0034 0.0034 30.0 0.0034 0.0034 34.5 0.0034 0.0034 40.0 0.0034 0.0034 46.0 0.0034 0.0034 52.5 0.0034 0.0034 60.0 0.0034 0.0034 69.0 0.0034 0.0034 79.0 0.0034 0.0034 90.5 0.0034 0.0034 105.5 0.0034 0.0034 123.5 0.0034 0.0034 143.0 0.0034 0.0034 163.5 0.0034 0.0034 185.0 0.0034 0.0034 208.0 0.0034 0.0034 232.5 0.0034 0.0034 258.5 0.0034 0.0034 286.0 0.0034 0.0034 331.0 0.0034 0.0034 396.0 0.0034 0.0034 468.5 0.0034 0.0034 549.5 0.0034 0.0034 639.0 0.0034 0.0034 738.0 0.0034 0.0034 847.5 0.0034 0.0034 968.5 0.0034 0.0034 1102.0 0.0034 0.0034 1249.5 0.0034 0.0034 1412.0 0.0034 0.0034 1590.5 0.0034 0.0034 1787.0 0.0034 0.0034 1944.5 0.0034 0.0034 -2.0 2.2 117 9.0 0.0041 0.0041 11.0 0.0041 0.0041 13.5 0.0041 0.0041 16.5 0.0041 0.0041 19.5 0.0041 0.0041 22.5 0.0041 0.0041 26.0 0.0041 0.0041 30.0 0.0041 0.0041 34.5 0.0041 0.0041 40.0 0.0041 0.0041 46.0 0.0041 0.0041 52.5 0.0041 0.0041 60.0 0.0041 0.0041 69.0 0.0041 0.0041 79.0 0.0041 0.0041 90.5 0.0041 0.0041 105.5 0.0041 0.0041 123.5 0.0041 0.0041 143.0 0.0041 0.0041 163.5 0.0041 0.0041 185.0 0.0041 0.0041 208.0 0.0041 0.0041 232.5 0.0041 0.0041 258.5 0.0041 0.0041 286.0 0.0041 0.0041 331.0 0.0041 0.0041 396.0 0.0041 0.0041 468.5 0.0041 0.0041 549.5 0.0041 0.0041 639.0 0.0041 0.0041 738.0 0.0041 0.0041 847.5 0.0041 0.0041 968.5 0.0041 0.0041 1102.0 0.0041 0.0041 1249.5 0.0041 0.0041 1412.0 0.0041 0.0041 1590.5 0.0041 0.0041 1787.0 0.0041 0.0041 1944.5 0.0041 0.0041 -2.2 2.4 117 9.0 0.0048 0.0048 11.0 0.0048 0.0048 13.5 0.0048 0.0048 16.5 0.0048 0.0048 19.5 0.0048 0.0048 22.5 0.0048 0.0048 26.0 0.0048 0.0048 30.0 0.0048 0.0048 34.5 0.0048 0.0048 40.0 0.0048 0.0048 46.0 0.0048 0.0048 52.5 0.0048 0.0048 60.0 0.0048 0.0048 69.0 0.0048 0.0048 79.0 0.0048 0.0048 90.5 0.0048 0.0048 105.5 0.0048 0.0048 123.5 0.0048 0.0048 143.0 0.0048 0.0048 163.5 0.0048 0.0048 185.0 0.0048 0.0048 208.0 0.0048 0.0048 232.5 0.0048 0.0048 258.5 0.0048 0.0048 286.0 0.0048 0.0048 331.0 0.0048 0.0048 396.0 0.0048 0.0048 468.5 0.0048 0.0048 549.5 0.0048 0.0048 639.0 0.0048 0.0048 738.0 0.0048 0.0048 847.5 0.0048 0.0048 968.5 0.0048 0.0048 1102.0 0.0048 0.0048 1249.5 0.0048 0.0048 1412.0 0.0048 0.0048 1590.5 0.0048 0.0048 1787.0 0.0048 0.0048 1944.5 0.0048 0.0048 -2.4 2.6 117 9.0 0.0082 0.0082 11.0 0.0082 0.0082 13.5 0.0082 0.0082 16.5 0.0082 0.0082 19.5 0.0082 0.0082 22.5 0.0082 0.0082 26.0 0.0082 0.0082 30.0 0.0082 0.0082 34.5 0.0082 0.0082 40.0 0.0082 0.0082 46.0 0.0082 0.0082 52.5 0.0082 0.0082 60.0 0.0082 0.0082 69.0 0.0082 0.0082 79.0 0.0082 0.0082 90.5 0.0082 0.0082 105.5 0.0082 0.0082 123.5 0.0082 0.0082 143.0 0.0082 0.0082 163.5 0.0082 0.0082 185.0 0.0082 0.0082 208.0 0.0082 0.0082 232.5 0.0082 0.0082 258.5 0.0082 0.0082 286.0 0.0082 0.0082 331.0 0.0082 0.0082 396.0 0.0082 0.0082 468.5 0.0082 0.0082 549.5 0.0082 0.0082 639.0 0.0082 0.0082 738.0 0.0082 0.0082 847.5 0.0082 0.0082 968.5 0.0082 0.0082 1102.0 0.0082 0.0082 1249.5 0.0082 0.0082 1412.0 0.0082 0.0082 1590.5 0.0082 0.0082 1787.0 0.0082 0.0082 1944.5 0.0082 0.0082 -2.6 2.8 117 9.0 0.0113 0.0113 11.0 0.0113 0.0113 13.5 0.0113 0.0113 16.5 0.0113 0.0113 19.5 0.0113 0.0113 22.5 0.0113 0.0113 26.0 0.0113 0.0113 30.0 0.0113 0.0113 34.5 0.0113 0.0113 40.0 0.0113 0.0113 46.0 0.0113 0.0113 52.5 0.0113 0.0113 60.0 0.0113 0.0113 69.0 0.0113 0.0113 79.0 0.0113 0.0113 90.5 0.0113 0.0113 105.5 0.0113 0.0113 123.5 0.0113 0.0113 143.0 0.0113 0.0113 163.5 0.0113 0.0113 185.0 0.0113 0.0113 208.0 0.0113 0.0113 232.5 0.0113 0.0113 258.5 0.0113 0.0113 286.0 0.0113 0.0113 331.0 0.0113 0.0113 396.0 0.0113 0.0113 468.5 0.0113 0.0113 549.5 0.0113 0.0113 639.0 0.0113 0.0113 738.0 0.0113 0.0113 847.5 0.0113 0.0113 968.5 0.0113 0.0113 1102.0 0.0113 0.0113 1249.5 0.0113 0.0113 1412.0 0.0113 0.0113 1590.5 0.0113 0.0113 1787.0 0.0113 0.0113 1944.5 0.0113 0.0113 -2.8 3.0 117 9.0 0.0236 0.0236 11.0 0.0236 0.0236 13.5 0.0236 0.0236 16.5 0.0236 0.0236 19.5 0.0236 0.0236 22.5 0.0236 0.0236 26.0 0.0236 0.0236 30.0 0.0236 0.0236 34.5 0.0236 0.0236 40.0 0.0236 0.0236 46.0 0.0236 0.0236 52.5 0.0236 0.0236 60.0 0.0236 0.0236 69.0 0.0236 0.0236 79.0 0.0236 0.0236 90.5 0.0236 0.0236 105.5 0.0236 0.0236 123.5 0.0236 0.0236 143.0 0.0236 0.0236 163.5 0.0236 0.0236 185.0 0.0236 0.0236 208.0 0.0236 0.0236 232.5 0.0236 0.0236 258.5 0.0236 0.0236 286.0 0.0236 0.0236 331.0 0.0236 0.0236 396.0 0.0236 0.0236 468.5 0.0236 0.0236 549.5 0.0236 0.0236 639.0 0.0236 0.0236 738.0 0.0236 0.0236 847.5 0.0236 0.0236 968.5 0.0236 0.0236 1102.0 0.0236 0.0236 1249.5 0.0236 0.0236 1412.0 0.0236 0.0236 1590.5 0.0236 0.0236 1787.0 0.0236 0.0236 1944.5 0.0236 0.0236 -3.0 3.5 117 9.0 0.0224 0.0224 11.0 0.0224 0.0224 13.5 0.0224 0.0224 16.5 0.0224 0.0224 19.5 0.0224 0.0224 22.5 0.0224 0.0224 26.0 0.0224 0.0224 30.0 0.0224 0.0224 34.5 0.0224 0.0224 40.0 0.0224 0.0224 46.0 0.0224 0.0224 52.5 0.0224 0.0224 60.0 0.0224 0.0224 69.0 0.0224 0.0224 79.0 0.0224 0.0224 90.5 0.0224 0.0224 105.5 0.0224 0.0224 123.5 0.0224 0.0224 143.0 0.0224 0.0224 163.5 0.0224 0.0224 185.0 0.0224 0.0224 208.0 0.0224 0.0224 232.5 0.0224 0.0224 258.5 0.0224 0.0224 286.0 0.0224 0.0224 331.0 0.0224 0.0224 396.0 0.0224 0.0224 468.5 0.0224 0.0224 549.5 0.0224 0.0224 639.0 0.0224 0.0224 738.0 0.0224 0.0224 847.5 0.0224 0.0224 968.5 0.0224 0.0224 1102.0 0.0224 0.0224 1249.5 0.0224 0.0224 1412.0 0.0224 0.0224 1590.5 0.0224 0.0224 1787.0 0.0224 0.0224 1944.5 0.0224 0.0224 -3.5 4.0 117 9.0 0.0280 0.0280 11.0 0.0280 0.0280 13.5 0.0280 0.0280 16.5 0.0280 0.0280 19.5 0.0280 0.0280 22.5 0.0280 0.0280 26.0 0.0280 0.0280 30.0 0.0280 0.0280 34.5 0.0280 0.0280 40.0 0.0280 0.0280 46.0 0.0280 0.0280 52.5 0.0280 0.0280 60.0 0.0280 0.0280 69.0 0.0280 0.0280 79.0 0.0280 0.0280 90.5 0.0280 0.0280 105.5 0.0280 0.0280 123.5 0.0280 0.0280 143.0 0.0280 0.0280 163.5 0.0280 0.0280 185.0 0.0280 0.0280 208.0 0.0280 0.0280 232.5 0.0280 0.0280 258.5 0.0280 0.0280 286.0 0.0280 0.0280 331.0 0.0280 0.0280 396.0 0.0280 0.0280 468.5 0.0280 0.0280 549.5 0.0280 0.0280 639.0 0.0280 0.0280 738.0 0.0280 0.0280 847.5 0.0280 0.0280 968.5 0.0280 0.0280 1102.0 0.0280 0.0280 1249.5 0.0280 0.0280 1412.0 0.0280 0.0280 1590.5 0.0280 0.0280 1787.0 0.0280 0.0280 1944.5 0.0280 0.0280 -4.0 4.5 117 9.0 0.0280 0.0280 11.0 0.0280 0.0280 13.5 0.0280 0.0280 16.5 0.0280 0.0280 19.5 0.0280 0.0280 22.5 0.0280 0.0280 26.0 0.0280 0.0280 30.0 0.0280 0.0280 34.5 0.0280 0.0280 40.0 0.0280 0.0280 46.0 0.0280 0.0280 52.5 0.0280 0.0280 60.0 0.0280 0.0280 69.0 0.0280 0.0280 79.0 0.0280 0.0280 90.5 0.0280 0.0280 105.5 0.0280 0.0280 123.5 0.0280 0.0280 143.0 0.0280 0.0280 163.5 0.0280 0.0280 185.0 0.0280 0.0280 208.0 0.0280 0.0280 232.5 0.0280 0.0280 258.5 0.0280 0.0280 286.0 0.0280 0.0280 331.0 0.0280 0.0280 396.0 0.0280 0.0280 468.5 0.0280 0.0280 549.5 0.0280 0.0280 639.0 0.0280 0.0280 738.0 0.0280 0.0280 847.5 0.0280 0.0280 968.5 0.0280 0.0280 1102.0 0.0280 0.0280 1249.5 0.0280 0.0280 1412.0 0.0280 0.0280 1590.5 0.0280 0.0280 1787.0 0.0280 0.0280 1944.5 0.0280 0.0280 -4.5 5.2 117 9.0 0.0280 0.0280 11.0 0.0280 0.0280 13.5 0.0280 0.0280 16.5 0.0280 0.0280 19.5 0.0280 0.0280 22.5 0.0280 0.0280 26.0 0.0280 0.0280 30.0 0.0280 0.0280 34.5 0.0280 0.0280 40.0 0.0280 0.0280 46.0 0.0280 0.0280 52.5 0.0280 0.0280 60.0 0.0280 0.0280 69.0 0.0280 0.0280 79.0 0.0280 0.0280 90.5 0.0280 0.0280 105.5 0.0280 0.0280 123.5 0.0280 0.0280 143.0 0.0280 0.0280 163.5 0.0280 0.0280 185.0 0.0280 0.0280 208.0 0.0280 0.0280 232.5 0.0280 0.0280 258.5 0.0280 0.0280 286.0 0.0280 0.0280 331.0 0.0280 0.0280 396.0 0.0280 0.0280 468.5 0.0280 0.0280 549.5 0.0280 0.0280 639.0 0.0280 0.0280 738.0 0.0280 0.0280 847.5 0.0280 0.0280 968.5 0.0280 0.0280 1102.0 0.0280 0.0280 1249.5 0.0280 0.0280 1412.0 0.0280 0.0280 1590.5 0.0280 0.0280 1787.0 0.0280 0.0280 1944.5 0.0280 0.0280 -[SubTotalPt] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --4.5 -4.0 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --4.0 -3.5 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --3.5 -3.0 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --3.0 -2.8 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --2.8 -2.6 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --2.6 -2.4 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --2.4 -2.2 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --2.2 -2.0 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --2.0 -1.8 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --1.8 -1.6 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --1.6 -1.4 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --1.4 -1.2 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --1.2 -1.0 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --1.0 -0.8 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --0.8 -0.6 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --0.6 -0.4 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --0.4 -0.2 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --0.2 0.0 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.0 0.2 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.2 0.4 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.4 0.6 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.6 0.8 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.8 1.0 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -1.0 1.2 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -1.2 1.4 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -1.4 1.6 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -1.6 1.8 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -1.8 2.0 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -2.0 2.2 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -2.2 2.4 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -2.4 2.6 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -2.6 2.8 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -2.8 3.0 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -3.0 3.5 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -3.5 4.0 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -4.0 4.5 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -4.5 5.2 117 9.0 0.0325 0.0325 11.0 0.0300 0.0300 13.5 0.0278 0.0278 16.5 0.0256 0.0256 19.5 0.0239 0.0239 22.5 0.0225 0.0225 26.0 0.0208 0.0208 30.0 0.0190 0.0190 34.5 0.0173 0.0173 40.0 0.0154 0.0154 46.0 0.0138 0.0138 52.5 0.0124 0.0124 60.0 0.0112 0.0112 69.0 0.0103 0.0103 79.0 0.0097 0.0097 90.5 0.0093 0.0093 105.5 0.0089 0.0089 123.5 0.0087 0.0087 143.0 0.0086 0.0086 163.5 0.0085 0.0085 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0085 0.0085 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0105 0.0105 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -[SubTotalDataMC] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0484 0.0484 11.0 0.0449 0.0449 13.5 0.0422 0.0422 16.5 0.0399 0.0399 19.5 0.0382 0.0382 22.5 0.0370 0.0370 26.0 0.0357 0.0357 30.0 0.0345 0.0345 34.5 0.0334 0.0334 40.0 0.0323 0.0323 46.0 0.0315 0.0315 52.5 0.0309 0.0309 60.0 0.0304 0.0304 69.0 0.0300 0.0300 79.0 0.0297 0.0297 90.5 0.0296 0.0296 105.5 0.0294 0.0294 123.5 0.0294 0.0294 143.0 0.0293 0.0293 163.5 0.0293 0.0293 185.0 0.0293 0.0293 208.0 0.0293 0.0293 232.5 0.0293 0.0293 258.5 0.0293 0.0293 286.0 0.0293 0.0293 331.0 0.0294 0.0294 396.0 0.0294 0.0294 468.5 0.0294 0.0294 549.5 0.0295 0.0295 639.0 0.0296 0.0296 738.0 0.0297 0.0297 847.5 0.0298 0.0298 968.5 0.0299 0.0299 1102.0 0.0300 0.0300 1249.5 0.0302 0.0302 1412.0 0.0303 0.0303 1590.5 0.0304 0.0304 1787.0 0.0306 0.0306 1944.5 0.0307 0.0307 --4.5 -4.0 117 9.0 0.0496 0.0496 11.0 0.0455 0.0455 13.5 0.0425 0.0425 16.5 0.0400 0.0400 19.5 0.0383 0.0383 22.5 0.0371 0.0371 26.0 0.0358 0.0358 30.0 0.0345 0.0345 34.5 0.0334 0.0334 40.0 0.0324 0.0324 46.0 0.0315 0.0315 52.5 0.0309 0.0309 60.0 0.0304 0.0304 69.0 0.0300 0.0300 79.0 0.0297 0.0297 90.5 0.0296 0.0296 105.5 0.0294 0.0294 123.5 0.0294 0.0294 143.0 0.0293 0.0293 163.5 0.0293 0.0293 185.0 0.0293 0.0293 208.0 0.0293 0.0293 232.5 0.0293 0.0293 258.5 0.0293 0.0293 286.0 0.0293 0.0293 331.0 0.0294 0.0294 396.0 0.0294 0.0294 468.5 0.0294 0.0294 549.5 0.0295 0.0295 639.0 0.0296 0.0296 738.0 0.0297 0.0297 847.5 0.0298 0.0298 968.5 0.0299 0.0299 1102.0 0.0300 0.0300 1249.5 0.0302 0.0302 1412.0 0.0303 0.0303 1590.5 0.0304 0.0304 1787.0 0.0306 0.0306 1944.5 0.0307 0.0307 --4.0 -3.5 117 9.0 0.0704 0.0704 11.0 0.0544 0.0544 13.5 0.0469 0.0469 16.5 0.0425 0.0425 19.5 0.0399 0.0399 22.5 0.0381 0.0381 26.0 0.0365 0.0365 30.0 0.0351 0.0351 34.5 0.0338 0.0338 40.0 0.0326 0.0326 46.0 0.0317 0.0317 52.5 0.0310 0.0310 60.0 0.0305 0.0305 69.0 0.0301 0.0301 79.0 0.0298 0.0298 90.5 0.0296 0.0296 105.5 0.0295 0.0295 123.5 0.0294 0.0294 143.0 0.0293 0.0293 163.5 0.0293 0.0293 185.0 0.0293 0.0293 208.0 0.0293 0.0293 232.5 0.0293 0.0293 258.5 0.0293 0.0293 286.0 0.0293 0.0293 331.0 0.0294 0.0294 396.0 0.0294 0.0294 468.5 0.0294 0.0294 549.5 0.0295 0.0295 639.0 0.0296 0.0296 738.0 0.0297 0.0297 847.5 0.0298 0.0298 968.5 0.0299 0.0299 1102.0 0.0300 0.0300 1249.5 0.0302 0.0302 1412.0 0.0303 0.0303 1590.5 0.0304 0.0304 1787.0 0.0306 0.0306 1944.5 0.0307 0.0307 --3.5 -3.0 117 9.0 0.1162 0.1162 11.0 0.0685 0.0685 13.5 0.0512 0.0512 16.5 0.0429 0.0429 19.5 0.0386 0.0386 22.5 0.0359 0.0359 26.0 0.0336 0.0336 30.0 0.0316 0.0316 34.5 0.0300 0.0300 40.0 0.0284 0.0284 46.0 0.0273 0.0273 52.5 0.0263 0.0263 60.0 0.0256 0.0256 69.0 0.0251 0.0251 79.0 0.0247 0.0247 90.5 0.0245 0.0245 105.5 0.0243 0.0243 123.5 0.0242 0.0242 143.0 0.0241 0.0241 163.5 0.0240 0.0240 185.0 0.0240 0.0240 208.0 0.0240 0.0240 232.5 0.0240 0.0240 258.5 0.0240 0.0240 286.0 0.0240 0.0240 331.0 0.0241 0.0241 396.0 0.0241 0.0241 468.5 0.0242 0.0242 549.5 0.0243 0.0243 639.0 0.0244 0.0244 738.0 0.0245 0.0245 847.5 0.0246 0.0246 968.5 0.0248 0.0248 1102.0 0.0249 0.0249 1249.5 0.0251 0.0251 1412.0 0.0252 0.0252 1590.5 0.0254 0.0254 1787.0 0.0255 0.0255 1944.5 0.0257 0.0257 --3.0 -2.8 117 9.0 0.0470 0.0470 11.0 0.0426 0.0426 13.5 0.0395 0.0395 16.5 0.0369 0.0369 19.5 0.0352 0.0352 22.5 0.0338 0.0338 26.0 0.0324 0.0324 30.0 0.0311 0.0311 34.5 0.0298 0.0298 40.0 0.0286 0.0286 46.0 0.0277 0.0277 52.5 0.0269 0.0269 60.0 0.0264 0.0264 69.0 0.0260 0.0260 79.0 0.0257 0.0257 90.5 0.0255 0.0255 105.5 0.0253 0.0253 123.5 0.0252 0.0252 143.0 0.0252 0.0252 163.5 0.0251 0.0251 185.0 0.0251 0.0251 208.0 0.0251 0.0251 232.5 0.0251 0.0251 258.5 0.0251 0.0251 286.0 0.0252 0.0252 331.0 0.0252 0.0252 396.0 0.0253 0.0253 468.5 0.0253 0.0253 549.5 0.0254 0.0254 639.0 0.0255 0.0255 738.0 0.0256 0.0256 847.5 0.0257 0.0257 968.5 0.0259 0.0259 1102.0 0.0260 0.0260 1249.5 0.0262 0.0262 1412.0 0.0263 0.0263 1590.5 0.0264 0.0264 1787.0 0.0266 0.0266 1944.5 0.0267 0.0267 --2.8 -2.6 117 9.0 0.0751 0.0751 11.0 0.0468 0.0468 13.5 0.0376 0.0376 16.5 0.0326 0.0326 19.5 0.0297 0.0297 22.5 0.0276 0.0276 26.0 0.0255 0.0255 30.0 0.0236 0.0236 34.5 0.0218 0.0218 40.0 0.0200 0.0200 46.0 0.0185 0.0185 52.5 0.0174 0.0174 60.0 0.0164 0.0164 69.0 0.0157 0.0157 79.0 0.0152 0.0152 90.5 0.0148 0.0148 105.5 0.0145 0.0145 123.5 0.0144 0.0144 143.0 0.0143 0.0143 163.5 0.0142 0.0142 185.0 0.0142 0.0142 208.0 0.0142 0.0142 232.5 0.0142 0.0142 258.5 0.0142 0.0142 286.0 0.0143 0.0143 331.0 0.0143 0.0143 396.0 0.0144 0.0144 468.5 0.0145 0.0145 549.5 0.0147 0.0147 639.0 0.0149 0.0149 738.0 0.0150 0.0150 847.5 0.0152 0.0152 968.5 0.0155 0.0155 1102.0 0.0157 0.0157 1249.5 0.0159 0.0159 1412.0 0.0162 0.0162 1590.5 0.0164 0.0164 1787.0 0.0167 0.0167 1944.5 0.0168 0.0168 --2.6 -2.4 117 9.0 0.0948 0.0948 11.0 0.0567 0.0567 13.5 0.0424 0.0424 16.5 0.0349 0.0349 19.5 0.0308 0.0308 22.5 0.0280 0.0280 26.0 0.0254 0.0254 30.0 0.0231 0.0231 34.5 0.0210 0.0210 40.0 0.0189 0.0189 46.0 0.0172 0.0172 52.5 0.0158 0.0158 60.0 0.0147 0.0147 69.0 0.0138 0.0138 79.0 0.0132 0.0132 90.5 0.0128 0.0128 105.5 0.0124 0.0124 123.5 0.0122 0.0122 143.0 0.0121 0.0121 163.5 0.0120 0.0120 185.0 0.0119 0.0119 208.0 0.0119 0.0119 232.5 0.0119 0.0119 258.5 0.0119 0.0119 286.0 0.0120 0.0120 331.0 0.0121 0.0121 396.0 0.0121 0.0121 468.5 0.0123 0.0123 549.5 0.0125 0.0125 639.0 0.0127 0.0127 738.0 0.0129 0.0129 847.5 0.0131 0.0131 968.5 0.0134 0.0134 1102.0 0.0137 0.0137 1249.5 0.0139 0.0139 1412.0 0.0142 0.0142 1590.5 0.0145 0.0145 1787.0 0.0147 0.0147 1944.5 0.0150 0.0150 --2.4 -2.2 117 9.0 0.0641 0.0641 11.0 0.0459 0.0459 13.5 0.0371 0.0371 16.5 0.0318 0.0318 19.5 0.0284 0.0284 22.5 0.0261 0.0261 26.0 0.0238 0.0238 30.0 0.0215 0.0215 34.5 0.0195 0.0195 40.0 0.0174 0.0174 46.0 0.0156 0.0156 52.5 0.0142 0.0142 60.0 0.0129 0.0129 69.0 0.0120 0.0120 79.0 0.0113 0.0113 90.5 0.0108 0.0108 105.5 0.0104 0.0104 123.5 0.0101 0.0101 143.0 0.0100 0.0100 163.5 0.0099 0.0099 185.0 0.0099 0.0099 208.0 0.0099 0.0099 232.5 0.0099 0.0099 258.5 0.0099 0.0099 286.0 0.0100 0.0100 331.0 0.0101 0.0101 396.0 0.0102 0.0102 468.5 0.0103 0.0103 549.5 0.0106 0.0106 639.0 0.0108 0.0108 738.0 0.0110 0.0110 847.5 0.0113 0.0113 968.5 0.0116 0.0116 1102.0 0.0120 0.0120 1249.5 0.0123 0.0123 1412.0 0.0125 0.0125 1590.5 0.0128 0.0128 1787.0 0.0132 0.0132 1944.5 0.0134 0.0134 --2.2 -2.0 117 9.0 0.0555 0.0555 11.0 0.0407 0.0407 13.5 0.0342 0.0342 16.5 0.0299 0.0299 19.5 0.0272 0.0272 22.5 0.0251 0.0251 26.0 0.0230 0.0230 30.0 0.0209 0.0209 34.5 0.0189 0.0189 40.0 0.0169 0.0169 46.0 0.0152 0.0152 52.5 0.0137 0.0137 60.0 0.0125 0.0125 69.0 0.0116 0.0116 79.0 0.0109 0.0109 90.5 0.0104 0.0104 105.5 0.0100 0.0100 123.5 0.0098 0.0098 143.0 0.0097 0.0097 163.5 0.0096 0.0096 185.0 0.0095 0.0095 208.0 0.0095 0.0095 232.5 0.0095 0.0095 258.5 0.0096 0.0096 286.0 0.0096 0.0096 331.0 0.0097 0.0097 396.0 0.0098 0.0098 468.5 0.0100 0.0100 549.5 0.0102 0.0102 639.0 0.0105 0.0105 738.0 0.0107 0.0107 847.5 0.0110 0.0110 968.5 0.0113 0.0113 1102.0 0.0117 0.0117 1249.5 0.0120 0.0120 1412.0 0.0123 0.0123 1590.5 0.0126 0.0126 1787.0 0.0129 0.0129 1944.5 0.0132 0.0132 --2.0 -1.8 117 9.0 0.0508 0.0508 11.0 0.0384 0.0384 13.5 0.0330 0.0330 16.5 0.0292 0.0292 19.5 0.0267 0.0267 22.5 0.0247 0.0247 26.0 0.0227 0.0227 30.0 0.0206 0.0206 34.5 0.0187 0.0187 40.0 0.0166 0.0166 46.0 0.0149 0.0149 52.5 0.0135 0.0135 60.0 0.0123 0.0123 69.0 0.0113 0.0113 79.0 0.0106 0.0106 90.5 0.0101 0.0101 105.5 0.0097 0.0097 123.5 0.0095 0.0095 143.0 0.0094 0.0094 163.5 0.0093 0.0093 185.0 0.0092 0.0092 208.0 0.0092 0.0092 232.5 0.0092 0.0092 258.5 0.0093 0.0093 286.0 0.0093 0.0093 331.0 0.0095 0.0095 396.0 0.0096 0.0096 468.5 0.0097 0.0097 549.5 0.0100 0.0100 639.0 0.0103 0.0103 738.0 0.0105 0.0105 847.5 0.0108 0.0108 968.5 0.0111 0.0111 1102.0 0.0114 0.0114 1249.5 0.0118 0.0118 1412.0 0.0121 0.0121 1590.5 0.0124 0.0124 1787.0 0.0127 0.0127 1944.5 0.0130 0.0130 --1.8 -1.6 117 9.0 0.0483 0.0483 11.0 0.0372 0.0372 13.5 0.0323 0.0323 16.5 0.0288 0.0288 19.5 0.0264 0.0264 22.5 0.0245 0.0245 26.0 0.0225 0.0225 30.0 0.0204 0.0204 34.5 0.0185 0.0185 40.0 0.0165 0.0165 46.0 0.0148 0.0148 52.5 0.0133 0.0133 60.0 0.0121 0.0121 69.0 0.0111 0.0111 79.0 0.0104 0.0104 90.5 0.0099 0.0099 105.5 0.0095 0.0095 123.5 0.0093 0.0093 143.0 0.0091 0.0091 163.5 0.0091 0.0091 185.0 0.0090 0.0090 208.0 0.0090 0.0090 232.5 0.0090 0.0090 258.5 0.0091 0.0091 286.0 0.0091 0.0091 331.0 0.0093 0.0093 396.0 0.0093 0.0093 468.5 0.0095 0.0095 549.5 0.0098 0.0098 639.0 0.0100 0.0100 738.0 0.0103 0.0103 847.5 0.0106 0.0106 968.5 0.0109 0.0109 1102.0 0.0113 0.0113 1249.5 0.0116 0.0116 1412.0 0.0119 0.0119 1590.5 0.0122 0.0122 1787.0 0.0125 0.0125 1944.5 0.0128 0.0128 --1.6 -1.4 117 9.0 0.0473 0.0473 11.0 0.0365 0.0365 13.5 0.0320 0.0320 16.5 0.0287 0.0287 19.5 0.0262 0.0262 22.5 0.0244 0.0244 26.0 0.0223 0.0223 30.0 0.0203 0.0203 34.5 0.0184 0.0184 40.0 0.0163 0.0163 46.0 0.0146 0.0146 52.5 0.0132 0.0132 60.0 0.0119 0.0119 69.0 0.0110 0.0110 79.0 0.0103 0.0103 90.5 0.0098 0.0098 105.5 0.0093 0.0093 123.5 0.0091 0.0091 143.0 0.0090 0.0090 163.5 0.0089 0.0089 185.0 0.0088 0.0088 208.0 0.0088 0.0088 232.5 0.0088 0.0088 258.5 0.0089 0.0089 286.0 0.0089 0.0089 331.0 0.0091 0.0091 396.0 0.0092 0.0092 468.5 0.0093 0.0093 549.5 0.0096 0.0096 639.0 0.0099 0.0099 738.0 0.0102 0.0102 847.5 0.0104 0.0104 968.5 0.0108 0.0108 1102.0 0.0111 0.0111 1249.5 0.0115 0.0115 1412.0 0.0118 0.0118 1590.5 0.0121 0.0121 1787.0 0.0124 0.0124 1944.5 0.0127 0.0127 --1.4 -1.2 117 9.0 0.0485 0.0485 11.0 0.0364 0.0364 13.5 0.0319 0.0319 16.5 0.0286 0.0286 19.5 0.0261 0.0261 22.5 0.0243 0.0243 26.0 0.0222 0.0222 30.0 0.0202 0.0202 34.5 0.0183 0.0183 40.0 0.0162 0.0162 46.0 0.0145 0.0145 52.5 0.0130 0.0130 60.0 0.0118 0.0118 69.0 0.0108 0.0108 79.0 0.0101 0.0101 90.5 0.0095 0.0095 105.5 0.0091 0.0091 123.5 0.0089 0.0089 143.0 0.0087 0.0087 163.5 0.0086 0.0086 185.0 0.0086 0.0086 208.0 0.0086 0.0086 232.5 0.0086 0.0086 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --1.2 -1.0 117 9.0 0.0521 0.0521 11.0 0.0367 0.0367 13.5 0.0320 0.0320 16.5 0.0286 0.0286 19.5 0.0262 0.0262 22.5 0.0243 0.0243 26.0 0.0222 0.0222 30.0 0.0202 0.0202 34.5 0.0183 0.0183 40.0 0.0162 0.0162 46.0 0.0145 0.0145 52.5 0.0130 0.0130 60.0 0.0117 0.0117 69.0 0.0108 0.0108 79.0 0.0101 0.0101 90.5 0.0095 0.0095 105.5 0.0091 0.0091 123.5 0.0089 0.0089 143.0 0.0087 0.0087 163.5 0.0086 0.0086 185.0 0.0086 0.0086 208.0 0.0086 0.0086 232.5 0.0086 0.0086 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --1.0 -0.8 117 9.0 0.0576 0.0576 11.0 0.0376 0.0376 13.5 0.0323 0.0323 16.5 0.0287 0.0287 19.5 0.0262 0.0262 22.5 0.0243 0.0243 26.0 0.0223 0.0223 30.0 0.0202 0.0202 34.5 0.0183 0.0183 40.0 0.0162 0.0162 46.0 0.0145 0.0145 52.5 0.0130 0.0130 60.0 0.0118 0.0118 69.0 0.0108 0.0108 79.0 0.0101 0.0101 90.5 0.0095 0.0095 105.5 0.0091 0.0091 123.5 0.0089 0.0089 143.0 0.0087 0.0087 163.5 0.0086 0.0086 185.0 0.0086 0.0086 208.0 0.0086 0.0086 232.5 0.0086 0.0086 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --0.8 -0.6 117 9.0 0.0602 0.0602 11.0 0.0379 0.0379 13.5 0.0324 0.0324 16.5 0.0288 0.0288 19.5 0.0263 0.0263 22.5 0.0243 0.0243 26.0 0.0223 0.0223 30.0 0.0203 0.0203 34.5 0.0183 0.0183 40.0 0.0162 0.0162 46.0 0.0145 0.0145 52.5 0.0130 0.0130 60.0 0.0118 0.0118 69.0 0.0108 0.0108 79.0 0.0101 0.0101 90.5 0.0095 0.0095 105.5 0.0091 0.0091 123.5 0.0089 0.0089 143.0 0.0087 0.0087 163.5 0.0086 0.0086 185.0 0.0086 0.0086 208.0 0.0086 0.0086 232.5 0.0086 0.0086 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --0.6 -0.4 117 9.0 0.0637 0.0637 11.0 0.0379 0.0379 13.5 0.0324 0.0324 16.5 0.0287 0.0287 19.5 0.0262 0.0262 22.5 0.0243 0.0243 26.0 0.0223 0.0223 30.0 0.0202 0.0202 34.5 0.0183 0.0183 40.0 0.0162 0.0162 46.0 0.0145 0.0145 52.5 0.0130 0.0130 60.0 0.0118 0.0118 69.0 0.0108 0.0108 79.0 0.0101 0.0101 90.5 0.0095 0.0095 105.5 0.0091 0.0091 123.5 0.0088 0.0088 143.0 0.0087 0.0087 163.5 0.0086 0.0086 185.0 0.0086 0.0086 208.0 0.0086 0.0086 232.5 0.0086 0.0086 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --0.4 -0.2 117 9.0 0.0697 0.0697 11.0 0.0381 0.0381 13.5 0.0324 0.0324 16.5 0.0288 0.0288 19.5 0.0262 0.0262 22.5 0.0243 0.0243 26.0 0.0223 0.0223 30.0 0.0202 0.0202 34.5 0.0183 0.0183 40.0 0.0162 0.0162 46.0 0.0145 0.0145 52.5 0.0130 0.0130 60.0 0.0118 0.0118 69.0 0.0108 0.0108 79.0 0.0101 0.0101 90.5 0.0095 0.0095 105.5 0.0091 0.0091 123.5 0.0088 0.0088 143.0 0.0087 0.0087 163.5 0.0086 0.0086 185.0 0.0086 0.0086 208.0 0.0086 0.0086 232.5 0.0086 0.0086 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --0.2 0.0 117 9.0 0.0710 0.0710 11.0 0.0381 0.0381 13.5 0.0324 0.0324 16.5 0.0288 0.0288 19.5 0.0263 0.0263 22.5 0.0243 0.0243 26.0 0.0223 0.0223 30.0 0.0202 0.0202 34.5 0.0183 0.0183 40.0 0.0162 0.0162 46.0 0.0145 0.0145 52.5 0.0130 0.0130 60.0 0.0118 0.0118 69.0 0.0108 0.0108 79.0 0.0101 0.0101 90.5 0.0095 0.0095 105.5 0.0091 0.0091 123.5 0.0088 0.0088 143.0 0.0087 0.0087 163.5 0.0086 0.0086 185.0 0.0086 0.0086 208.0 0.0086 0.0086 232.5 0.0086 0.0086 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.0 0.2 117 9.0 0.0722 0.0722 11.0 0.0383 0.0383 13.5 0.0325 0.0325 16.5 0.0288 0.0288 19.5 0.0263 0.0263 22.5 0.0243 0.0243 26.0 0.0223 0.0223 30.0 0.0203 0.0203 34.5 0.0183 0.0183 40.0 0.0162 0.0162 46.0 0.0145 0.0145 52.5 0.0130 0.0130 60.0 0.0118 0.0118 69.0 0.0108 0.0108 79.0 0.0101 0.0101 90.5 0.0095 0.0095 105.5 0.0091 0.0091 123.5 0.0088 0.0088 143.0 0.0087 0.0087 163.5 0.0086 0.0086 185.0 0.0086 0.0086 208.0 0.0086 0.0086 232.5 0.0086 0.0086 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.2 0.4 117 9.0 0.0703 0.0703 11.0 0.0385 0.0385 13.5 0.0326 0.0326 16.5 0.0288 0.0288 19.5 0.0263 0.0263 22.5 0.0244 0.0244 26.0 0.0223 0.0223 30.0 0.0203 0.0203 34.5 0.0183 0.0183 40.0 0.0162 0.0162 46.0 0.0145 0.0145 52.5 0.0130 0.0130 60.0 0.0118 0.0118 69.0 0.0108 0.0108 79.0 0.0101 0.0101 90.5 0.0095 0.0095 105.5 0.0091 0.0091 123.5 0.0089 0.0089 143.0 0.0087 0.0087 163.5 0.0086 0.0086 185.0 0.0086 0.0086 208.0 0.0086 0.0086 232.5 0.0086 0.0086 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.4 0.6 117 9.0 0.0632 0.0632 11.0 0.0384 0.0384 13.5 0.0326 0.0326 16.5 0.0289 0.0289 19.5 0.0263 0.0263 22.5 0.0244 0.0244 26.0 0.0223 0.0223 30.0 0.0203 0.0203 34.5 0.0183 0.0183 40.0 0.0162 0.0162 46.0 0.0145 0.0145 52.5 0.0130 0.0130 60.0 0.0118 0.0118 69.0 0.0108 0.0108 79.0 0.0101 0.0101 90.5 0.0095 0.0095 105.5 0.0091 0.0091 123.5 0.0089 0.0089 143.0 0.0087 0.0087 163.5 0.0086 0.0086 185.0 0.0086 0.0086 208.0 0.0086 0.0086 232.5 0.0086 0.0086 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.6 0.8 117 9.0 0.0603 0.0603 11.0 0.0383 0.0383 13.5 0.0326 0.0326 16.5 0.0289 0.0289 19.5 0.0263 0.0263 22.5 0.0244 0.0244 26.0 0.0223 0.0223 30.0 0.0203 0.0203 34.5 0.0183 0.0183 40.0 0.0162 0.0162 46.0 0.0145 0.0145 52.5 0.0130 0.0130 60.0 0.0118 0.0118 69.0 0.0108 0.0108 79.0 0.0101 0.0101 90.5 0.0095 0.0095 105.5 0.0091 0.0091 123.5 0.0089 0.0089 143.0 0.0087 0.0087 163.5 0.0086 0.0086 185.0 0.0086 0.0086 208.0 0.0086 0.0086 232.5 0.0086 0.0086 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.8 1.0 117 9.0 0.0587 0.0587 11.0 0.0380 0.0380 13.5 0.0325 0.0325 16.5 0.0288 0.0288 19.5 0.0263 0.0263 22.5 0.0244 0.0244 26.0 0.0223 0.0223 30.0 0.0203 0.0203 34.5 0.0183 0.0183 40.0 0.0162 0.0162 46.0 0.0145 0.0145 52.5 0.0130 0.0130 60.0 0.0118 0.0118 69.0 0.0108 0.0108 79.0 0.0101 0.0101 90.5 0.0095 0.0095 105.5 0.0091 0.0091 123.5 0.0089 0.0089 143.0 0.0087 0.0087 163.5 0.0086 0.0086 185.0 0.0086 0.0086 208.0 0.0086 0.0086 232.5 0.0086 0.0086 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -1.0 1.2 117 9.0 0.0558 0.0558 11.0 0.0377 0.0377 13.5 0.0324 0.0324 16.5 0.0288 0.0288 19.5 0.0263 0.0263 22.5 0.0243 0.0243 26.0 0.0223 0.0223 30.0 0.0203 0.0203 34.5 0.0183 0.0183 40.0 0.0162 0.0162 46.0 0.0145 0.0145 52.5 0.0130 0.0130 60.0 0.0118 0.0118 69.0 0.0108 0.0108 79.0 0.0101 0.0101 90.5 0.0095 0.0095 105.5 0.0091 0.0091 123.5 0.0089 0.0089 143.0 0.0087 0.0087 163.5 0.0086 0.0086 185.0 0.0086 0.0086 208.0 0.0086 0.0086 232.5 0.0086 0.0086 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -1.2 1.4 117 9.0 0.0511 0.0511 11.0 0.0372 0.0372 13.5 0.0322 0.0322 16.5 0.0287 0.0287 19.5 0.0262 0.0262 22.5 0.0243 0.0243 26.0 0.0223 0.0223 30.0 0.0202 0.0202 34.5 0.0183 0.0183 40.0 0.0162 0.0162 46.0 0.0145 0.0145 52.5 0.0130 0.0130 60.0 0.0118 0.0118 69.0 0.0108 0.0108 79.0 0.0101 0.0101 90.5 0.0095 0.0095 105.5 0.0091 0.0091 123.5 0.0089 0.0089 143.0 0.0087 0.0087 163.5 0.0086 0.0086 185.0 0.0086 0.0086 208.0 0.0086 0.0086 232.5 0.0086 0.0086 258.5 0.0086 0.0086 286.0 0.0087 0.0087 331.0 0.0088 0.0088 396.0 0.0089 0.0089 468.5 0.0091 0.0091 549.5 0.0094 0.0094 639.0 0.0097 0.0097 738.0 0.0099 0.0099 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -1.4 1.6 117 9.0 0.0487 0.0487 11.0 0.0371 0.0371 13.5 0.0323 0.0323 16.5 0.0288 0.0288 19.5 0.0263 0.0263 22.5 0.0244 0.0244 26.0 0.0224 0.0224 30.0 0.0204 0.0204 34.5 0.0184 0.0184 40.0 0.0164 0.0164 46.0 0.0146 0.0146 52.5 0.0132 0.0132 60.0 0.0119 0.0119 69.0 0.0110 0.0110 79.0 0.0103 0.0103 90.5 0.0098 0.0098 105.5 0.0093 0.0093 123.5 0.0091 0.0091 143.0 0.0090 0.0090 163.5 0.0089 0.0089 185.0 0.0088 0.0088 208.0 0.0088 0.0088 232.5 0.0088 0.0088 258.5 0.0089 0.0089 286.0 0.0089 0.0089 331.0 0.0091 0.0091 396.0 0.0092 0.0092 468.5 0.0093 0.0093 549.5 0.0096 0.0096 639.0 0.0099 0.0099 738.0 0.0102 0.0102 847.5 0.0104 0.0104 968.5 0.0108 0.0108 1102.0 0.0111 0.0111 1249.5 0.0115 0.0115 1412.0 0.0118 0.0118 1590.5 0.0121 0.0121 1787.0 0.0124 0.0124 1944.5 0.0127 0.0127 -1.6 1.8 117 9.0 0.0492 0.0492 11.0 0.0377 0.0377 13.5 0.0326 0.0326 16.5 0.0290 0.0290 19.5 0.0265 0.0265 22.5 0.0245 0.0245 26.0 0.0225 0.0225 30.0 0.0205 0.0205 34.5 0.0185 0.0185 40.0 0.0165 0.0165 46.0 0.0148 0.0148 52.5 0.0133 0.0133 60.0 0.0121 0.0121 69.0 0.0111 0.0111 79.0 0.0104 0.0104 90.5 0.0099 0.0099 105.5 0.0095 0.0095 123.5 0.0093 0.0093 143.0 0.0092 0.0092 163.5 0.0091 0.0091 185.0 0.0090 0.0090 208.0 0.0090 0.0090 232.5 0.0090 0.0090 258.5 0.0091 0.0091 286.0 0.0091 0.0091 331.0 0.0093 0.0093 396.0 0.0093 0.0093 468.5 0.0095 0.0095 549.5 0.0098 0.0098 639.0 0.0100 0.0100 738.0 0.0103 0.0103 847.5 0.0106 0.0106 968.5 0.0109 0.0109 1102.0 0.0113 0.0113 1249.5 0.0116 0.0116 1412.0 0.0119 0.0119 1590.5 0.0122 0.0122 1787.0 0.0125 0.0125 1944.5 0.0128 0.0128 -1.8 2.0 117 9.0 0.0534 0.0534 11.0 0.0395 0.0395 13.5 0.0335 0.0335 16.5 0.0295 0.0295 19.5 0.0269 0.0269 22.5 0.0248 0.0248 26.0 0.0228 0.0228 30.0 0.0207 0.0207 34.5 0.0187 0.0187 40.0 0.0167 0.0167 46.0 0.0150 0.0150 52.5 0.0135 0.0135 60.0 0.0123 0.0123 69.0 0.0113 0.0113 79.0 0.0107 0.0107 90.5 0.0102 0.0102 105.5 0.0097 0.0097 123.5 0.0095 0.0095 143.0 0.0094 0.0094 163.5 0.0093 0.0093 185.0 0.0092 0.0092 208.0 0.0092 0.0092 232.5 0.0092 0.0092 258.5 0.0093 0.0093 286.0 0.0093 0.0093 331.0 0.0095 0.0095 396.0 0.0096 0.0096 468.5 0.0097 0.0097 549.5 0.0100 0.0100 639.0 0.0103 0.0103 738.0 0.0105 0.0105 847.5 0.0108 0.0108 968.5 0.0111 0.0111 1102.0 0.0114 0.0114 1249.5 0.0118 0.0118 1412.0 0.0121 0.0121 1590.5 0.0124 0.0124 1787.0 0.0127 0.0127 1944.5 0.0130 0.0130 -2.0 2.2 117 9.0 0.0613 0.0613 11.0 0.0439 0.0439 13.5 0.0359 0.0359 16.5 0.0310 0.0310 19.5 0.0278 0.0278 22.5 0.0256 0.0256 26.0 0.0233 0.0233 30.0 0.0212 0.0212 34.5 0.0191 0.0191 40.0 0.0170 0.0170 46.0 0.0153 0.0153 52.5 0.0138 0.0138 60.0 0.0126 0.0126 69.0 0.0117 0.0117 79.0 0.0110 0.0110 90.5 0.0105 0.0105 105.5 0.0100 0.0100 123.5 0.0098 0.0098 143.0 0.0097 0.0097 163.5 0.0096 0.0096 185.0 0.0095 0.0095 208.0 0.0095 0.0095 232.5 0.0095 0.0095 258.5 0.0096 0.0096 286.0 0.0096 0.0096 331.0 0.0098 0.0098 396.0 0.0098 0.0098 468.5 0.0100 0.0100 549.5 0.0102 0.0102 639.0 0.0105 0.0105 738.0 0.0107 0.0107 847.5 0.0110 0.0110 968.5 0.0113 0.0113 1102.0 0.0117 0.0117 1249.5 0.0120 0.0120 1412.0 0.0123 0.0123 1590.5 0.0126 0.0126 1787.0 0.0129 0.0129 1944.5 0.0132 0.0132 -2.2 2.4 117 9.0 0.0806 0.0806 11.0 0.0544 0.0544 13.5 0.0419 0.0419 16.5 0.0347 0.0347 19.5 0.0304 0.0304 22.5 0.0275 0.0275 26.0 0.0248 0.0248 30.0 0.0224 0.0224 34.5 0.0201 0.0201 40.0 0.0179 0.0179 46.0 0.0161 0.0161 52.5 0.0145 0.0145 60.0 0.0132 0.0132 69.0 0.0122 0.0122 79.0 0.0115 0.0115 90.5 0.0109 0.0109 105.5 0.0105 0.0105 123.5 0.0102 0.0102 143.0 0.0101 0.0101 163.5 0.0100 0.0100 185.0 0.0099 0.0099 208.0 0.0099 0.0099 232.5 0.0099 0.0099 258.5 0.0099 0.0099 286.0 0.0100 0.0100 331.0 0.0101 0.0101 396.0 0.0102 0.0102 468.5 0.0103 0.0103 549.5 0.0106 0.0106 639.0 0.0108 0.0108 738.0 0.0110 0.0110 847.5 0.0113 0.0113 968.5 0.0116 0.0116 1102.0 0.0120 0.0120 1249.5 0.0123 0.0123 1412.0 0.0125 0.0125 1590.5 0.0128 0.0128 1787.0 0.0132 0.0132 1944.5 0.0134 0.0134 -2.4 2.6 117 9.0 0.0950 0.0950 11.0 0.0578 0.0578 13.5 0.0431 0.0431 16.5 0.0354 0.0354 19.5 0.0311 0.0311 22.5 0.0282 0.0282 26.0 0.0256 0.0256 30.0 0.0233 0.0233 34.5 0.0211 0.0211 40.0 0.0190 0.0190 46.0 0.0173 0.0173 52.5 0.0159 0.0159 60.0 0.0148 0.0148 69.0 0.0139 0.0139 79.0 0.0132 0.0132 90.5 0.0128 0.0128 105.5 0.0124 0.0124 123.5 0.0122 0.0122 143.0 0.0121 0.0121 163.5 0.0120 0.0120 185.0 0.0119 0.0119 208.0 0.0119 0.0119 232.5 0.0119 0.0119 258.5 0.0119 0.0119 286.0 0.0120 0.0120 331.0 0.0121 0.0121 396.0 0.0121 0.0121 468.5 0.0123 0.0123 549.5 0.0125 0.0125 639.0 0.0127 0.0127 738.0 0.0129 0.0129 847.5 0.0131 0.0131 968.5 0.0134 0.0134 1102.0 0.0137 0.0137 1249.5 0.0139 0.0139 1412.0 0.0142 0.0142 1590.5 0.0145 0.0145 1787.0 0.0147 0.0147 1944.5 0.0150 0.0150 -2.6 2.8 117 9.0 0.0680 0.0680 11.0 0.0467 0.0467 13.5 0.0380 0.0380 16.5 0.0330 0.0330 19.5 0.0299 0.0299 22.5 0.0278 0.0278 26.0 0.0257 0.0257 30.0 0.0237 0.0237 34.5 0.0219 0.0219 40.0 0.0201 0.0201 46.0 0.0186 0.0186 52.5 0.0174 0.0174 60.0 0.0164 0.0164 69.0 0.0157 0.0157 79.0 0.0152 0.0152 90.5 0.0148 0.0148 105.5 0.0145 0.0145 123.5 0.0144 0.0144 143.0 0.0143 0.0143 163.5 0.0142 0.0142 185.0 0.0142 0.0142 208.0 0.0142 0.0142 232.5 0.0142 0.0142 258.5 0.0142 0.0142 286.0 0.0143 0.0143 331.0 0.0143 0.0143 396.0 0.0144 0.0144 468.5 0.0145 0.0145 549.5 0.0147 0.0147 639.0 0.0149 0.0149 738.0 0.0150 0.0150 847.5 0.0152 0.0152 968.5 0.0155 0.0155 1102.0 0.0157 0.0157 1249.5 0.0159 0.0159 1412.0 0.0162 0.0162 1590.5 0.0164 0.0164 1787.0 0.0167 0.0167 1944.5 0.0168 0.0168 -2.8 3.0 117 9.0 0.0461 0.0461 11.0 0.0424 0.0424 13.5 0.0394 0.0394 16.5 0.0369 0.0369 19.5 0.0351 0.0351 22.5 0.0338 0.0338 26.0 0.0324 0.0324 30.0 0.0311 0.0311 34.5 0.0298 0.0298 40.0 0.0286 0.0286 46.0 0.0277 0.0277 52.5 0.0269 0.0269 60.0 0.0264 0.0264 69.0 0.0260 0.0260 79.0 0.0257 0.0257 90.5 0.0255 0.0255 105.5 0.0253 0.0253 123.5 0.0252 0.0252 143.0 0.0252 0.0252 163.5 0.0251 0.0251 185.0 0.0251 0.0251 208.0 0.0251 0.0251 232.5 0.0251 0.0251 258.5 0.0251 0.0251 286.0 0.0252 0.0252 331.0 0.0252 0.0252 396.0 0.0253 0.0253 468.5 0.0253 0.0253 549.5 0.0254 0.0254 639.0 0.0255 0.0255 738.0 0.0256 0.0256 847.5 0.0257 0.0257 968.5 0.0259 0.0259 1102.0 0.0260 0.0260 1249.5 0.0262 0.0262 1412.0 0.0263 0.0263 1590.5 0.0264 0.0264 1787.0 0.0266 0.0266 1944.5 0.0267 0.0267 -3.0 3.5 117 9.0 0.0868 0.0868 11.0 0.0576 0.0576 13.5 0.0462 0.0462 16.5 0.0402 0.0402 19.5 0.0369 0.0369 22.5 0.0347 0.0347 26.0 0.0328 0.0328 30.0 0.0310 0.0310 34.5 0.0295 0.0295 40.0 0.0281 0.0281 46.0 0.0270 0.0270 52.5 0.0262 0.0262 60.0 0.0255 0.0255 69.0 0.0250 0.0250 79.0 0.0247 0.0247 90.5 0.0244 0.0244 105.5 0.0242 0.0242 123.5 0.0241 0.0241 143.0 0.0241 0.0241 163.5 0.0240 0.0240 185.0 0.0240 0.0240 208.0 0.0240 0.0240 232.5 0.0240 0.0240 258.5 0.0240 0.0240 286.0 0.0240 0.0240 331.0 0.0241 0.0241 396.0 0.0241 0.0241 468.5 0.0242 0.0242 549.5 0.0243 0.0243 639.0 0.0244 0.0244 738.0 0.0245 0.0245 847.5 0.0246 0.0246 968.5 0.0248 0.0248 1102.0 0.0249 0.0249 1249.5 0.0251 0.0251 1412.0 0.0252 0.0252 1590.5 0.0254 0.0254 1787.0 0.0255 0.0255 1944.5 0.0257 0.0257 -3.5 4.0 117 9.0 0.0719 0.0719 11.0 0.0551 0.0551 13.5 0.0472 0.0472 16.5 0.0426 0.0426 19.5 0.0400 0.0400 22.5 0.0382 0.0382 26.0 0.0366 0.0366 30.0 0.0351 0.0351 34.5 0.0339 0.0339 40.0 0.0327 0.0327 46.0 0.0318 0.0318 52.5 0.0310 0.0310 60.0 0.0305 0.0305 69.0 0.0301 0.0301 79.0 0.0298 0.0298 90.5 0.0296 0.0296 105.5 0.0295 0.0295 123.5 0.0294 0.0294 143.0 0.0293 0.0293 163.5 0.0293 0.0293 185.0 0.0293 0.0293 208.0 0.0293 0.0293 232.5 0.0293 0.0293 258.5 0.0293 0.0293 286.0 0.0293 0.0293 331.0 0.0294 0.0294 396.0 0.0294 0.0294 468.5 0.0294 0.0294 549.5 0.0295 0.0295 639.0 0.0296 0.0296 738.0 0.0297 0.0297 847.5 0.0298 0.0298 968.5 0.0299 0.0299 1102.0 0.0300 0.0300 1249.5 0.0302 0.0302 1412.0 0.0303 0.0303 1590.5 0.0304 0.0304 1787.0 0.0306 0.0306 1944.5 0.0307 0.0307 -4.0 4.5 117 9.0 0.0508 0.0508 11.0 0.0461 0.0461 13.5 0.0427 0.0427 16.5 0.0402 0.0402 19.5 0.0384 0.0384 22.5 0.0371 0.0371 26.0 0.0358 0.0358 30.0 0.0346 0.0346 34.5 0.0335 0.0335 40.0 0.0324 0.0324 46.0 0.0315 0.0315 52.5 0.0309 0.0309 60.0 0.0304 0.0304 69.0 0.0300 0.0300 79.0 0.0298 0.0298 90.5 0.0296 0.0296 105.5 0.0294 0.0294 123.5 0.0294 0.0294 143.0 0.0293 0.0293 163.5 0.0293 0.0293 185.0 0.0293 0.0293 208.0 0.0293 0.0293 232.5 0.0293 0.0293 258.5 0.0293 0.0293 286.0 0.0293 0.0293 331.0 0.0294 0.0294 396.0 0.0294 0.0294 468.5 0.0294 0.0294 549.5 0.0295 0.0295 639.0 0.0296 0.0296 738.0 0.0297 0.0297 847.5 0.0298 0.0298 968.5 0.0299 0.0299 1102.0 0.0300 0.0300 1249.5 0.0302 0.0302 1412.0 0.0303 0.0303 1590.5 0.0304 0.0304 1787.0 0.0306 0.0306 1944.5 0.0307 0.0307 -4.5 5.2 117 9.0 0.0483 0.0483 11.0 0.0449 0.0449 13.5 0.0421 0.0421 16.5 0.0398 0.0398 19.5 0.0382 0.0382 22.5 0.0370 0.0370 26.0 0.0357 0.0357 30.0 0.0345 0.0345 34.5 0.0334 0.0334 40.0 0.0323 0.0323 46.0 0.0315 0.0315 52.5 0.0308 0.0308 60.0 0.0303 0.0303 69.0 0.0300 0.0300 79.0 0.0297 0.0297 90.5 0.0296 0.0296 105.5 0.0294 0.0294 123.5 0.0294 0.0294 143.0 0.0293 0.0293 163.5 0.0293 0.0293 185.0 0.0293 0.0293 208.0 0.0293 0.0293 232.5 0.0293 0.0293 258.5 0.0293 0.0293 286.0 0.0293 0.0293 331.0 0.0294 0.0294 396.0 0.0294 0.0294 468.5 0.0294 0.0294 549.5 0.0295 0.0295 639.0 0.0296 0.0296 738.0 0.0297 0.0297 847.5 0.0298 0.0298 968.5 0.0299 0.0299 1102.0 0.0300 0.0300 1249.5 0.0302 0.0302 1412.0 0.0303 0.0303 1590.5 0.0304 0.0304 1787.0 0.0306 0.0306 1944.5 0.0307 0.0307 -[Total] -{1 JetEta 1 JetPt "" Correction JECSource} --5.2 -4.5 117 9.0 0.0590 0.0590 11.0 0.0522 0.0522 13.5 0.0471 0.0471 16.5 0.0432 0.0432 19.5 0.0407 0.0407 22.5 0.0389 0.0389 26.0 0.0372 0.0372 30.0 0.0356 0.0356 34.5 0.0343 0.0343 40.0 0.0330 0.0330 46.0 0.0320 0.0320 52.5 0.0312 0.0312 60.0 0.0307 0.0307 69.0 0.0302 0.0302 79.0 0.0299 0.0299 90.5 0.0297 0.0297 105.5 0.0295 0.0295 123.5 0.0294 0.0294 143.0 0.0294 0.0294 163.5 0.0293 0.0293 185.0 0.0293 0.0293 208.0 0.0293 0.0293 232.5 0.0293 0.0293 258.5 0.0293 0.0293 286.0 0.0293 0.0293 331.0 0.0294 0.0294 396.0 0.0294 0.0294 468.5 0.0294 0.0294 549.5 0.0295 0.0295 639.0 0.0296 0.0296 738.0 0.0297 0.0297 847.5 0.0298 0.0298 968.5 0.0299 0.0299 1102.0 0.0301 0.0301 1249.5 0.0302 0.0302 1412.0 0.0303 0.0303 1590.5 0.0304 0.0304 1787.0 0.0306 0.0306 1944.5 0.0307 0.0307 --4.5 -4.0 117 9.0 0.0985 0.0985 11.0 0.0758 0.0758 13.5 0.0619 0.0619 16.5 0.0530 0.0530 19.5 0.0477 0.0477 22.5 0.0442 0.0442 26.0 0.0412 0.0412 30.0 0.0387 0.0387 34.5 0.0366 0.0366 40.0 0.0348 0.0348 46.0 0.0334 0.0334 52.5 0.0323 0.0323 60.0 0.0315 0.0315 69.0 0.0308 0.0308 79.0 0.0304 0.0304 90.5 0.0301 0.0301 105.5 0.0298 0.0298 123.5 0.0296 0.0296 143.0 0.0295 0.0295 163.5 0.0294 0.0294 185.0 0.0294 0.0294 208.0 0.0294 0.0294 232.5 0.0294 0.0294 258.5 0.0294 0.0294 286.0 0.0294 0.0294 331.0 0.0294 0.0294 396.0 0.0294 0.0294 468.5 0.0294 0.0294 549.5 0.0295 0.0295 639.0 0.0296 0.0296 738.0 0.0297 0.0297 847.5 0.0298 0.0298 968.5 0.0299 0.0299 1102.0 0.0301 0.0301 1249.5 0.0302 0.0302 1412.0 0.0303 0.0303 1590.5 0.0304 0.0304 1787.0 0.0306 0.0306 1944.5 0.0307 0.0307 --4.0 -3.5 117 9.0 0.1393 0.1393 11.0 0.0963 0.0963 13.5 0.0737 0.0737 16.5 0.0603 0.0603 19.5 0.0528 0.0528 22.5 0.0479 0.0479 26.0 0.0440 0.0440 30.0 0.0408 0.0408 34.5 0.0382 0.0382 40.0 0.0360 0.0360 46.0 0.0343 0.0343 52.5 0.0330 0.0330 60.0 0.0320 0.0320 69.0 0.0313 0.0313 79.0 0.0307 0.0307 90.5 0.0303 0.0303 105.5 0.0300 0.0300 123.5 0.0298 0.0298 143.0 0.0296 0.0296 163.5 0.0295 0.0295 185.0 0.0295 0.0295 208.0 0.0294 0.0294 232.5 0.0294 0.0294 258.5 0.0294 0.0294 286.0 0.0294 0.0294 331.0 0.0294 0.0294 396.0 0.0294 0.0294 468.5 0.0295 0.0295 549.5 0.0295 0.0295 639.0 0.0296 0.0296 738.0 0.0297 0.0297 847.5 0.0298 0.0298 968.5 0.0299 0.0299 1102.0 0.0301 0.0301 1249.5 0.0302 0.0302 1412.0 0.0303 0.0303 1590.5 0.0304 0.0304 1787.0 0.0306 0.0306 1944.5 0.0307 0.0307 --3.5 -3.0 117 9.0 0.2120 0.2120 11.0 0.1241 0.1241 13.5 0.0868 0.0868 16.5 0.0669 0.0669 19.5 0.0562 0.0562 22.5 0.0495 0.0495 26.0 0.0441 0.0441 30.0 0.0398 0.0398 34.5 0.0364 0.0364 40.0 0.0334 0.0334 46.0 0.0311 0.0311 52.5 0.0294 0.0294 60.0 0.0280 0.0280 69.0 0.0269 0.0269 79.0 0.0261 0.0261 90.5 0.0256 0.0256 105.5 0.0251 0.0251 123.5 0.0247 0.0247 143.0 0.0245 0.0245 163.5 0.0244 0.0244 185.0 0.0243 0.0243 208.0 0.0242 0.0242 232.5 0.0242 0.0242 258.5 0.0242 0.0242 286.0 0.0241 0.0241 331.0 0.0242 0.0242 396.0 0.0242 0.0242 468.5 0.0242 0.0242 549.5 0.0243 0.0243 639.0 0.0244 0.0244 738.0 0.0245 0.0245 847.5 0.0246 0.0246 968.5 0.0248 0.0248 1102.0 0.0249 0.0249 1249.5 0.0251 0.0251 1412.0 0.0252 0.0252 1590.5 0.0254 0.0254 1787.0 0.0255 0.0255 1944.5 0.0257 0.0257 --3.0 -2.8 117 9.0 0.2155 0.2155 11.0 0.1225 0.1225 13.5 0.0857 0.0857 16.5 0.0667 0.0667 19.5 0.0566 0.0566 22.5 0.0503 0.0503 26.0 0.0453 0.0453 30.0 0.0413 0.0413 34.5 0.0382 0.0382 40.0 0.0354 0.0354 46.0 0.0334 0.0334 52.5 0.0318 0.0318 60.0 0.0306 0.0306 69.0 0.0296 0.0296 79.0 0.0289 0.0289 90.5 0.0284 0.0284 105.5 0.0280 0.0280 123.5 0.0277 0.0277 143.0 0.0275 0.0275 163.5 0.0274 0.0274 185.0 0.0273 0.0273 208.0 0.0272 0.0272 232.5 0.0272 0.0272 258.5 0.0272 0.0272 286.0 0.0272 0.0272 331.0 0.0272 0.0272 396.0 0.0272 0.0272 468.5 0.0273 0.0273 549.5 0.0273 0.0273 639.0 0.0274 0.0274 738.0 0.0275 0.0275 847.5 0.0276 0.0276 968.5 0.0277 0.0277 1102.0 0.0279 0.0279 1249.5 0.0280 0.0280 1412.0 0.0281 0.0281 1590.5 0.0283 0.0283 1787.0 0.0284 0.0284 1944.5 0.0285 0.0285 --2.8 -2.6 117 9.0 0.2259 0.2259 11.0 0.1251 0.1251 13.5 0.0855 0.0855 16.5 0.0648 0.0648 19.5 0.0536 0.0536 22.5 0.0465 0.0465 26.0 0.0408 0.0408 30.0 0.0362 0.0362 34.5 0.0324 0.0324 40.0 0.0290 0.0290 46.0 0.0263 0.0263 52.5 0.0243 0.0243 60.0 0.0226 0.0226 69.0 0.0212 0.0212 79.0 0.0202 0.0202 90.5 0.0195 0.0195 105.5 0.0188 0.0188 123.5 0.0184 0.0184 143.0 0.0181 0.0181 163.5 0.0179 0.0179 185.0 0.0178 0.0178 208.0 0.0177 0.0177 232.5 0.0176 0.0176 258.5 0.0176 0.0176 286.0 0.0176 0.0176 331.0 0.0176 0.0176 396.0 0.0176 0.0176 468.5 0.0177 0.0177 549.5 0.0178 0.0178 639.0 0.0179 0.0179 738.0 0.0181 0.0181 847.5 0.0182 0.0182 968.5 0.0184 0.0184 1102.0 0.0186 0.0186 1249.5 0.0188 0.0188 1412.0 0.0190 0.0190 1590.5 0.0192 0.0192 1787.0 0.0194 0.0194 1944.5 0.0196 0.0196 --2.6 -2.4 117 9.0 0.2008 0.2008 11.0 0.1184 0.1184 13.5 0.0825 0.0825 16.5 0.0629 0.0629 19.5 0.0521 0.0521 22.5 0.0452 0.0452 26.0 0.0395 0.0395 30.0 0.0349 0.0349 34.5 0.0311 0.0311 40.0 0.0276 0.0276 46.0 0.0250 0.0250 52.5 0.0228 0.0228 60.0 0.0211 0.0211 69.0 0.0197 0.0197 79.0 0.0186 0.0186 90.5 0.0178 0.0178 105.5 0.0171 0.0171 123.5 0.0166 0.0166 143.0 0.0163 0.0163 163.5 0.0161 0.0161 185.0 0.0160 0.0160 208.0 0.0159 0.0159 232.5 0.0158 0.0158 258.5 0.0158 0.0158 286.0 0.0158 0.0158 331.0 0.0158 0.0158 396.0 0.0158 0.0158 468.5 0.0159 0.0159 549.5 0.0160 0.0160 639.0 0.0162 0.0162 738.0 0.0163 0.0163 847.5 0.0165 0.0165 968.5 0.0167 0.0167 1102.0 0.0170 0.0170 1249.5 0.0172 0.0172 1412.0 0.0174 0.0174 1590.5 0.0176 0.0176 1787.0 0.0178 0.0178 1944.5 0.0180 0.0180 --2.4 -2.2 117 9.0 0.1490 0.1490 11.0 0.0978 0.0978 13.5 0.0713 0.0713 16.5 0.0555 0.0555 19.5 0.0463 0.0463 22.5 0.0402 0.0402 26.0 0.0351 0.0351 30.0 0.0307 0.0307 34.5 0.0270 0.0270 40.0 0.0236 0.0236 46.0 0.0208 0.0208 52.5 0.0185 0.0185 60.0 0.0166 0.0166 69.0 0.0149 0.0149 79.0 0.0137 0.0137 90.5 0.0127 0.0127 105.5 0.0119 0.0119 123.5 0.0113 0.0113 143.0 0.0109 0.0109 163.5 0.0106 0.0106 185.0 0.0104 0.0104 208.0 0.0103 0.0103 232.5 0.0102 0.0102 258.5 0.0102 0.0102 286.0 0.0102 0.0102 331.0 0.0102 0.0102 396.0 0.0103 0.0103 468.5 0.0104 0.0104 549.5 0.0106 0.0106 639.0 0.0109 0.0109 738.0 0.0111 0.0111 847.5 0.0113 0.0113 968.5 0.0116 0.0116 1102.0 0.0120 0.0120 1249.5 0.0123 0.0123 1412.0 0.0125 0.0125 1590.5 0.0128 0.0128 1787.0 0.0132 0.0132 1944.5 0.0134 0.0134 --2.2 -2.0 117 9.0 0.1822 0.1822 11.0 0.1108 0.1108 13.5 0.0780 0.0780 16.5 0.0596 0.0596 19.5 0.0492 0.0492 22.5 0.0424 0.0424 26.0 0.0367 0.0367 30.0 0.0320 0.0320 34.5 0.0280 0.0280 40.0 0.0243 0.0243 46.0 0.0214 0.0214 52.5 0.0189 0.0189 60.0 0.0169 0.0169 69.0 0.0152 0.0152 79.0 0.0138 0.0138 90.5 0.0128 0.0128 105.5 0.0118 0.0118 123.5 0.0111 0.0111 143.0 0.0107 0.0107 163.5 0.0104 0.0104 185.0 0.0102 0.0102 208.0 0.0100 0.0100 232.5 0.0099 0.0099 258.5 0.0099 0.0099 286.0 0.0099 0.0099 331.0 0.0099 0.0099 396.0 0.0100 0.0100 468.5 0.0101 0.0101 549.5 0.0103 0.0103 639.0 0.0106 0.0106 738.0 0.0108 0.0108 847.5 0.0110 0.0110 968.5 0.0113 0.0113 1102.0 0.0117 0.0117 1249.5 0.0120 0.0120 1412.0 0.0123 0.0123 1590.5 0.0126 0.0126 1787.0 0.0129 0.0129 1944.5 0.0132 0.0132 --2.0 -1.8 117 9.0 0.2114 0.2114 11.0 0.1209 0.1209 13.5 0.0830 0.0830 16.5 0.0625 0.0625 19.5 0.0512 0.0512 22.5 0.0439 0.0439 26.0 0.0379 0.0379 30.0 0.0329 0.0329 34.5 0.0287 0.0287 40.0 0.0249 0.0249 46.0 0.0218 0.0218 52.5 0.0192 0.0192 60.0 0.0171 0.0171 69.0 0.0153 0.0153 79.0 0.0139 0.0139 90.5 0.0128 0.0128 105.5 0.0118 0.0118 123.5 0.0110 0.0110 143.0 0.0105 0.0105 163.5 0.0102 0.0102 185.0 0.0100 0.0100 208.0 0.0098 0.0098 232.5 0.0097 0.0097 258.5 0.0097 0.0097 286.0 0.0096 0.0096 331.0 0.0097 0.0097 396.0 0.0097 0.0097 468.5 0.0098 0.0098 549.5 0.0101 0.0101 639.0 0.0103 0.0103 738.0 0.0105 0.0105 847.5 0.0108 0.0108 968.5 0.0111 0.0111 1102.0 0.0115 0.0115 1249.5 0.0118 0.0118 1412.0 0.0121 0.0121 1590.5 0.0124 0.0124 1787.0 0.0127 0.0127 1944.5 0.0130 0.0130 --1.8 -1.6 117 9.0 0.2509 0.2509 11.0 0.1328 0.1328 13.5 0.0884 0.0884 16.5 0.0656 0.0656 19.5 0.0533 0.0533 22.5 0.0454 0.0454 26.0 0.0390 0.0390 30.0 0.0338 0.0338 34.5 0.0294 0.0294 40.0 0.0254 0.0254 46.0 0.0222 0.0222 52.5 0.0196 0.0196 60.0 0.0174 0.0174 69.0 0.0155 0.0155 79.0 0.0140 0.0140 90.5 0.0128 0.0128 105.5 0.0117 0.0117 123.5 0.0110 0.0110 143.0 0.0104 0.0104 163.5 0.0101 0.0101 185.0 0.0098 0.0098 208.0 0.0096 0.0096 232.5 0.0095 0.0095 258.5 0.0095 0.0095 286.0 0.0095 0.0095 331.0 0.0095 0.0095 396.0 0.0095 0.0095 468.5 0.0096 0.0096 549.5 0.0099 0.0099 639.0 0.0101 0.0101 738.0 0.0103 0.0103 847.5 0.0106 0.0106 968.5 0.0109 0.0109 1102.0 0.0113 0.0113 1249.5 0.0116 0.0116 1412.0 0.0119 0.0119 1590.5 0.0122 0.0122 1787.0 0.0126 0.0126 1944.5 0.0128 0.0128 --1.6 -1.4 117 9.0 0.2899 0.2899 11.0 0.1429 0.1429 13.5 0.0927 0.0927 16.5 0.0679 0.0679 19.5 0.0549 0.0549 22.5 0.0466 0.0466 26.0 0.0399 0.0399 30.0 0.0345 0.0345 34.5 0.0300 0.0300 40.0 0.0258 0.0258 46.0 0.0225 0.0225 52.5 0.0198 0.0198 60.0 0.0175 0.0175 69.0 0.0156 0.0156 79.0 0.0141 0.0141 90.5 0.0128 0.0128 105.5 0.0117 0.0117 123.5 0.0109 0.0109 143.0 0.0104 0.0104 163.5 0.0100 0.0100 185.0 0.0097 0.0097 208.0 0.0095 0.0095 232.5 0.0094 0.0094 258.5 0.0093 0.0093 286.0 0.0093 0.0093 331.0 0.0093 0.0093 396.0 0.0094 0.0094 468.5 0.0095 0.0095 549.5 0.0097 0.0097 639.0 0.0100 0.0100 738.0 0.0102 0.0102 847.5 0.0105 0.0105 968.5 0.0108 0.0108 1102.0 0.0111 0.0111 1249.5 0.0115 0.0115 1412.0 0.0118 0.0118 1590.5 0.0121 0.0121 1787.0 0.0124 0.0124 1944.5 0.0127 0.0127 --1.4 -1.2 117 9.0 0.3312 0.3312 11.0 0.1525 0.1525 13.5 0.0967 0.0967 16.5 0.0701 0.0701 19.5 0.0563 0.0563 22.5 0.0477 0.0477 26.0 0.0407 0.0407 30.0 0.0351 0.0351 34.5 0.0304 0.0304 40.0 0.0262 0.0262 46.0 0.0228 0.0228 52.5 0.0200 0.0200 60.0 0.0177 0.0177 69.0 0.0157 0.0157 79.0 0.0141 0.0141 90.5 0.0128 0.0128 105.5 0.0117 0.0117 123.5 0.0108 0.0108 143.0 0.0102 0.0102 163.5 0.0098 0.0098 185.0 0.0095 0.0095 208.0 0.0093 0.0093 232.5 0.0092 0.0092 258.5 0.0091 0.0091 286.0 0.0091 0.0091 331.0 0.0091 0.0091 396.0 0.0091 0.0091 468.5 0.0092 0.0092 549.5 0.0095 0.0095 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0110 0.0110 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0123 0.0123 1944.5 0.0125 0.0125 --1.2 -1.0 117 9.0 0.3609 0.3609 11.0 0.1587 0.1587 13.5 0.0993 0.0993 16.5 0.0715 0.0715 19.5 0.0572 0.0572 22.5 0.0483 0.0483 26.0 0.0412 0.0412 30.0 0.0355 0.0355 34.5 0.0308 0.0308 40.0 0.0265 0.0265 46.0 0.0230 0.0230 52.5 0.0202 0.0202 60.0 0.0178 0.0178 69.0 0.0158 0.0158 79.0 0.0142 0.0142 90.5 0.0129 0.0129 105.5 0.0117 0.0117 123.5 0.0109 0.0109 143.0 0.0103 0.0103 163.5 0.0098 0.0098 185.0 0.0095 0.0095 208.0 0.0093 0.0093 232.5 0.0092 0.0092 258.5 0.0091 0.0091 286.0 0.0091 0.0091 331.0 0.0091 0.0091 396.0 0.0091 0.0091 468.5 0.0092 0.0092 549.5 0.0095 0.0095 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0110 0.0110 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0123 0.0123 1944.5 0.0125 0.0125 --1.0 -0.8 117 9.0 0.3538 0.3538 11.0 0.1574 0.1574 13.5 0.0988 0.0988 16.5 0.0712 0.0712 19.5 0.0570 0.0570 22.5 0.0482 0.0482 26.0 0.0411 0.0411 30.0 0.0354 0.0354 34.5 0.0307 0.0307 40.0 0.0264 0.0264 46.0 0.0230 0.0230 52.5 0.0202 0.0202 60.0 0.0178 0.0178 69.0 0.0158 0.0158 79.0 0.0142 0.0142 90.5 0.0129 0.0129 105.5 0.0117 0.0117 123.5 0.0108 0.0108 143.0 0.0103 0.0103 163.5 0.0098 0.0098 185.0 0.0095 0.0095 208.0 0.0093 0.0093 232.5 0.0092 0.0092 258.5 0.0091 0.0091 286.0 0.0091 0.0091 331.0 0.0091 0.0091 396.0 0.0091 0.0091 468.5 0.0092 0.0092 549.5 0.0095 0.0095 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0110 0.0110 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --0.8 -0.6 117 9.0 0.3605 0.3605 11.0 0.1588 0.1588 13.5 0.0993 0.0993 16.5 0.0715 0.0715 19.5 0.0573 0.0573 22.5 0.0484 0.0484 26.0 0.0413 0.0413 30.0 0.0355 0.0355 34.5 0.0308 0.0308 40.0 0.0265 0.0265 46.0 0.0230 0.0230 52.5 0.0202 0.0202 60.0 0.0178 0.0178 69.0 0.0158 0.0158 79.0 0.0142 0.0142 90.5 0.0129 0.0129 105.5 0.0117 0.0117 123.5 0.0109 0.0109 143.0 0.0103 0.0103 163.5 0.0098 0.0098 185.0 0.0095 0.0095 208.0 0.0093 0.0093 232.5 0.0092 0.0092 258.5 0.0091 0.0091 286.0 0.0091 0.0091 331.0 0.0091 0.0091 396.0 0.0091 0.0091 468.5 0.0092 0.0092 549.5 0.0095 0.0095 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --0.6 -0.4 117 9.0 0.3973 0.3973 11.0 0.1657 0.1657 13.5 0.1021 0.1021 16.5 0.0730 0.0730 19.5 0.0582 0.0582 22.5 0.0491 0.0491 26.0 0.0418 0.0418 30.0 0.0359 0.0359 34.5 0.0311 0.0311 40.0 0.0267 0.0267 46.0 0.0233 0.0233 52.5 0.0204 0.0204 60.0 0.0180 0.0180 69.0 0.0159 0.0159 79.0 0.0143 0.0143 90.5 0.0130 0.0130 105.5 0.0118 0.0118 123.5 0.0109 0.0109 143.0 0.0103 0.0103 163.5 0.0099 0.0099 185.0 0.0096 0.0096 208.0 0.0093 0.0093 232.5 0.0092 0.0092 258.5 0.0091 0.0091 286.0 0.0091 0.0091 331.0 0.0091 0.0091 396.0 0.0091 0.0091 468.5 0.0092 0.0092 549.5 0.0095 0.0095 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --0.4 -0.2 117 9.0 0.4361 0.4361 11.0 0.1722 0.1722 13.5 0.1045 0.1045 16.5 0.0742 0.0742 19.5 0.0590 0.0590 22.5 0.0497 0.0497 26.0 0.0423 0.0423 30.0 0.0363 0.0363 34.5 0.0314 0.0314 40.0 0.0270 0.0270 46.0 0.0234 0.0234 52.5 0.0206 0.0206 60.0 0.0181 0.0181 69.0 0.0160 0.0160 79.0 0.0144 0.0144 90.5 0.0131 0.0131 105.5 0.0119 0.0119 123.5 0.0110 0.0110 143.0 0.0103 0.0103 163.5 0.0099 0.0099 185.0 0.0096 0.0096 208.0 0.0094 0.0094 232.5 0.0092 0.0092 258.5 0.0092 0.0092 286.0 0.0091 0.0091 331.0 0.0091 0.0091 396.0 0.0091 0.0091 468.5 0.0092 0.0092 549.5 0.0095 0.0095 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 --0.2 0.0 117 9.0 0.4424 0.4424 11.0 0.1731 0.1731 13.5 0.1048 0.1048 16.5 0.0744 0.0744 19.5 0.0591 0.0591 22.5 0.0498 0.0498 26.0 0.0423 0.0423 30.0 0.0363 0.0363 34.5 0.0314 0.0314 40.0 0.0270 0.0270 46.0 0.0235 0.0235 52.5 0.0206 0.0206 60.0 0.0181 0.0181 69.0 0.0160 0.0160 79.0 0.0144 0.0144 90.5 0.0131 0.0131 105.5 0.0119 0.0119 123.5 0.0110 0.0110 143.0 0.0103 0.0103 163.5 0.0099 0.0099 185.0 0.0096 0.0096 208.0 0.0094 0.0094 232.5 0.0092 0.0092 258.5 0.0092 0.0092 286.0 0.0091 0.0091 331.0 0.0091 0.0091 396.0 0.0091 0.0091 468.5 0.0092 0.0092 549.5 0.0095 0.0095 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.0 0.2 117 9.0 0.4390 0.4390 11.0 0.1727 0.1727 13.5 0.1047 0.1047 16.5 0.0744 0.0744 19.5 0.0591 0.0591 22.5 0.0497 0.0497 26.0 0.0423 0.0423 30.0 0.0363 0.0363 34.5 0.0314 0.0314 40.0 0.0270 0.0270 46.0 0.0235 0.0235 52.5 0.0206 0.0206 60.0 0.0181 0.0181 69.0 0.0160 0.0160 79.0 0.0144 0.0144 90.5 0.0131 0.0131 105.5 0.0119 0.0119 123.5 0.0110 0.0110 143.0 0.0103 0.0103 163.5 0.0099 0.0099 185.0 0.0096 0.0096 208.0 0.0094 0.0094 232.5 0.0092 0.0092 258.5 0.0092 0.0092 286.0 0.0091 0.0091 331.0 0.0091 0.0091 396.0 0.0091 0.0091 468.5 0.0092 0.0092 549.5 0.0095 0.0095 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.2 0.4 117 9.0 0.4148 0.4148 11.0 0.1691 0.1691 13.5 0.1035 0.1035 16.5 0.0737 0.0737 19.5 0.0587 0.0587 22.5 0.0495 0.0495 26.0 0.0421 0.0421 30.0 0.0362 0.0362 34.5 0.0313 0.0313 40.0 0.0269 0.0269 46.0 0.0234 0.0234 52.5 0.0205 0.0205 60.0 0.0181 0.0181 69.0 0.0160 0.0160 79.0 0.0144 0.0144 90.5 0.0130 0.0130 105.5 0.0118 0.0118 123.5 0.0109 0.0109 143.0 0.0103 0.0103 163.5 0.0099 0.0099 185.0 0.0096 0.0096 208.0 0.0094 0.0094 232.5 0.0092 0.0092 258.5 0.0091 0.0091 286.0 0.0091 0.0091 331.0 0.0091 0.0091 396.0 0.0091 0.0091 468.5 0.0092 0.0092 549.5 0.0095 0.0095 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.4 0.6 117 9.0 0.3622 0.3622 11.0 0.1594 0.1594 13.5 0.0997 0.0997 16.5 0.0717 0.0717 19.5 0.0574 0.0574 22.5 0.0485 0.0485 26.0 0.0414 0.0414 30.0 0.0356 0.0356 34.5 0.0308 0.0308 40.0 0.0265 0.0265 46.0 0.0231 0.0231 52.5 0.0202 0.0202 60.0 0.0179 0.0179 69.0 0.0158 0.0158 79.0 0.0142 0.0142 90.5 0.0129 0.0129 105.5 0.0117 0.0117 123.5 0.0109 0.0109 143.0 0.0103 0.0103 163.5 0.0098 0.0098 185.0 0.0095 0.0095 208.0 0.0093 0.0093 232.5 0.0092 0.0092 258.5 0.0091 0.0091 286.0 0.0091 0.0091 331.0 0.0091 0.0091 396.0 0.0091 0.0091 468.5 0.0092 0.0092 549.5 0.0095 0.0095 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.6 0.8 117 9.0 0.3392 0.3392 11.0 0.1545 0.1545 13.5 0.0977 0.0977 16.5 0.0707 0.0707 19.5 0.0567 0.0567 22.5 0.0479 0.0479 26.0 0.0409 0.0409 30.0 0.0352 0.0352 34.5 0.0306 0.0306 40.0 0.0263 0.0263 46.0 0.0229 0.0229 52.5 0.0201 0.0201 60.0 0.0177 0.0177 69.0 0.0157 0.0157 79.0 0.0141 0.0141 90.5 0.0128 0.0128 105.5 0.0117 0.0117 123.5 0.0108 0.0108 143.0 0.0102 0.0102 163.5 0.0098 0.0098 185.0 0.0095 0.0095 208.0 0.0093 0.0093 232.5 0.0092 0.0092 258.5 0.0091 0.0091 286.0 0.0091 0.0091 331.0 0.0091 0.0091 396.0 0.0091 0.0091 468.5 0.0092 0.0092 549.5 0.0095 0.0095 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0109 0.0109 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -0.8 1.0 117 9.0 0.3391 0.3391 11.0 0.1543 0.1543 13.5 0.0975 0.0975 16.5 0.0705 0.0705 19.5 0.0566 0.0566 22.5 0.0479 0.0479 26.0 0.0409 0.0409 30.0 0.0352 0.0352 34.5 0.0305 0.0305 40.0 0.0263 0.0263 46.0 0.0229 0.0229 52.5 0.0201 0.0201 60.0 0.0177 0.0177 69.0 0.0157 0.0157 79.0 0.0141 0.0141 90.5 0.0128 0.0128 105.5 0.0117 0.0117 123.5 0.0108 0.0108 143.0 0.0102 0.0102 163.5 0.0098 0.0098 185.0 0.0095 0.0095 208.0 0.0093 0.0093 232.5 0.0092 0.0092 258.5 0.0091 0.0091 286.0 0.0091 0.0091 331.0 0.0091 0.0091 396.0 0.0091 0.0091 468.5 0.0092 0.0092 549.5 0.0095 0.0095 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0110 0.0110 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -1.0 1.2 117 9.0 0.3232 0.3232 11.0 0.1506 0.1506 13.5 0.0960 0.0960 16.5 0.0697 0.0697 19.5 0.0560 0.0560 22.5 0.0475 0.0475 26.0 0.0406 0.0406 30.0 0.0350 0.0350 34.5 0.0303 0.0303 40.0 0.0261 0.0261 46.0 0.0227 0.0227 52.5 0.0200 0.0200 60.0 0.0176 0.0176 69.0 0.0156 0.0156 79.0 0.0141 0.0141 90.5 0.0128 0.0128 105.5 0.0116 0.0116 123.5 0.0108 0.0108 143.0 0.0102 0.0102 163.5 0.0098 0.0098 185.0 0.0095 0.0095 208.0 0.0093 0.0093 232.5 0.0092 0.0092 258.5 0.0091 0.0091 286.0 0.0091 0.0091 331.0 0.0091 0.0091 396.0 0.0091 0.0091 468.5 0.0092 0.0092 549.5 0.0095 0.0095 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0110 0.0110 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0122 0.0122 1944.5 0.0125 0.0125 -1.2 1.4 117 9.0 0.2936 0.2936 11.0 0.1437 0.1437 13.5 0.0930 0.0930 16.5 0.0681 0.0681 19.5 0.0549 0.0549 22.5 0.0467 0.0467 26.0 0.0400 0.0400 30.0 0.0345 0.0345 34.5 0.0299 0.0299 40.0 0.0258 0.0258 46.0 0.0225 0.0225 52.5 0.0198 0.0198 60.0 0.0174 0.0174 69.0 0.0155 0.0155 79.0 0.0139 0.0139 90.5 0.0127 0.0127 105.5 0.0116 0.0116 123.5 0.0107 0.0107 143.0 0.0102 0.0102 163.5 0.0098 0.0098 185.0 0.0095 0.0095 208.0 0.0093 0.0093 232.5 0.0092 0.0092 258.5 0.0091 0.0091 286.0 0.0091 0.0091 331.0 0.0091 0.0091 396.0 0.0091 0.0091 468.5 0.0092 0.0092 549.5 0.0095 0.0095 639.0 0.0097 0.0097 738.0 0.0100 0.0100 847.5 0.0102 0.0102 968.5 0.0106 0.0106 1102.0 0.0110 0.0110 1249.5 0.0113 0.0113 1412.0 0.0116 0.0116 1590.5 0.0119 0.0119 1787.0 0.0123 0.0123 1944.5 0.0125 0.0125 -1.4 1.6 117 9.0 0.2628 0.2628 11.0 0.1360 0.1360 13.5 0.0898 0.0898 16.5 0.0663 0.0663 19.5 0.0538 0.0538 22.5 0.0458 0.0458 26.0 0.0393 0.0393 30.0 0.0340 0.0340 34.5 0.0296 0.0296 40.0 0.0255 0.0255 46.0 0.0223 0.0223 52.5 0.0196 0.0196 60.0 0.0174 0.0174 69.0 0.0154 0.0154 79.0 0.0139 0.0139 90.5 0.0127 0.0127 105.5 0.0116 0.0116 123.5 0.0109 0.0109 143.0 0.0103 0.0103 163.5 0.0099 0.0099 185.0 0.0097 0.0097 208.0 0.0095 0.0095 232.5 0.0094 0.0094 258.5 0.0093 0.0093 286.0 0.0093 0.0093 331.0 0.0093 0.0093 396.0 0.0094 0.0094 468.5 0.0095 0.0095 549.5 0.0097 0.0097 639.0 0.0100 0.0100 738.0 0.0102 0.0102 847.5 0.0105 0.0105 968.5 0.0108 0.0108 1102.0 0.0111 0.0111 1249.5 0.0115 0.0115 1412.0 0.0118 0.0118 1590.5 0.0121 0.0121 1787.0 0.0124 0.0124 1944.5 0.0127 0.0127 -1.6 1.8 117 9.0 0.2278 0.2278 11.0 0.1261 0.1261 13.5 0.0854 0.0854 16.5 0.0638 0.0638 19.5 0.0521 0.0521 22.5 0.0445 0.0445 26.0 0.0384 0.0384 30.0 0.0332 0.0332 34.5 0.0290 0.0290 40.0 0.0251 0.0251 46.0 0.0219 0.0219 52.5 0.0193 0.0193 60.0 0.0171 0.0171 69.0 0.0153 0.0153 79.0 0.0138 0.0138 90.5 0.0127 0.0127 105.5 0.0116 0.0116 123.5 0.0109 0.0109 143.0 0.0104 0.0104 163.5 0.0100 0.0100 185.0 0.0098 0.0098 208.0 0.0096 0.0096 232.5 0.0095 0.0095 258.5 0.0095 0.0095 286.0 0.0094 0.0094 331.0 0.0095 0.0095 396.0 0.0095 0.0095 468.5 0.0096 0.0096 549.5 0.0099 0.0099 639.0 0.0101 0.0101 738.0 0.0103 0.0103 847.5 0.0106 0.0106 968.5 0.0109 0.0109 1102.0 0.0113 0.0113 1249.5 0.0116 0.0116 1412.0 0.0119 0.0119 1590.5 0.0122 0.0122 1787.0 0.0126 0.0126 1944.5 0.0128 0.0128 -1.8 2.0 117 9.0 0.1964 0.1964 11.0 0.1159 0.1159 13.5 0.0805 0.0805 16.5 0.0610 0.0610 19.5 0.0502 0.0502 22.5 0.0431 0.0431 26.0 0.0373 0.0373 30.0 0.0324 0.0324 34.5 0.0283 0.0283 40.0 0.0246 0.0246 46.0 0.0215 0.0215 52.5 0.0190 0.0190 60.0 0.0169 0.0169 69.0 0.0151 0.0151 79.0 0.0138 0.0138 90.5 0.0127 0.0127 105.5 0.0117 0.0117 123.5 0.0110 0.0110 143.0 0.0105 0.0105 163.5 0.0102 0.0102 185.0 0.0099 0.0099 208.0 0.0098 0.0098 232.5 0.0097 0.0097 258.5 0.0096 0.0096 286.0 0.0096 0.0096 331.0 0.0097 0.0097 396.0 0.0097 0.0097 468.5 0.0098 0.0098 549.5 0.0101 0.0101 639.0 0.0103 0.0103 738.0 0.0105 0.0105 847.5 0.0108 0.0108 968.5 0.0111 0.0111 1102.0 0.0115 0.0115 1249.5 0.0118 0.0118 1412.0 0.0121 0.0121 1590.5 0.0124 0.0124 1787.0 0.0127 0.0127 1944.5 0.0130 0.0130 -2.0 2.2 117 9.0 0.1602 0.1602 11.0 0.1023 0.1023 13.5 0.0737 0.0737 16.5 0.0570 0.0570 19.5 0.0473 0.0473 22.5 0.0410 0.0410 26.0 0.0356 0.0356 30.0 0.0311 0.0311 34.5 0.0273 0.0273 40.0 0.0238 0.0238 46.0 0.0209 0.0209 52.5 0.0185 0.0185 60.0 0.0166 0.0166 69.0 0.0149 0.0149 79.0 0.0136 0.0136 90.5 0.0126 0.0126 105.5 0.0117 0.0117 123.5 0.0110 0.0110 143.0 0.0106 0.0106 163.5 0.0103 0.0103 185.0 0.0101 0.0101 208.0 0.0100 0.0100 232.5 0.0099 0.0099 258.5 0.0099 0.0099 286.0 0.0099 0.0099 331.0 0.0099 0.0099 396.0 0.0100 0.0100 468.5 0.0101 0.0101 549.5 0.0103 0.0103 639.0 0.0105 0.0105 738.0 0.0108 0.0108 847.5 0.0110 0.0110 968.5 0.0113 0.0113 1102.0 0.0117 0.0117 1249.5 0.0120 0.0120 1412.0 0.0123 0.0123 1590.5 0.0126 0.0126 1787.0 0.0129 0.0129 1944.5 0.0132 0.0132 -2.2 2.4 117 9.0 0.1513 0.1513 11.0 0.0995 0.0995 13.5 0.0725 0.0725 16.5 0.0563 0.0563 19.5 0.0469 0.0469 22.5 0.0407 0.0407 26.0 0.0354 0.0354 30.0 0.0310 0.0310 34.5 0.0272 0.0272 40.0 0.0237 0.0237 46.0 0.0209 0.0209 52.5 0.0186 0.0186 60.0 0.0166 0.0166 69.0 0.0150 0.0150 79.0 0.0138 0.0138 90.5 0.0128 0.0128 105.5 0.0119 0.0119 123.5 0.0113 0.0113 143.0 0.0109 0.0109 163.5 0.0106 0.0106 185.0 0.0104 0.0104 208.0 0.0103 0.0103 232.5 0.0102 0.0102 258.5 0.0102 0.0102 286.0 0.0102 0.0102 331.0 0.0102 0.0102 396.0 0.0103 0.0103 468.5 0.0104 0.0104 549.5 0.0106 0.0106 639.0 0.0109 0.0109 738.0 0.0111 0.0111 847.5 0.0113 0.0113 968.5 0.0116 0.0116 1102.0 0.0120 0.0120 1249.5 0.0123 0.0123 1412.0 0.0125 0.0125 1590.5 0.0128 0.0128 1787.0 0.0132 0.0132 1944.5 0.0134 0.0134 -2.4 2.6 117 9.0 0.1902 0.1902 11.0 0.1144 0.1144 13.5 0.0805 0.0805 16.5 0.0617 0.0617 19.5 0.0513 0.0513 22.5 0.0446 0.0446 26.0 0.0391 0.0391 30.0 0.0345 0.0345 34.5 0.0308 0.0308 40.0 0.0274 0.0274 46.0 0.0248 0.0248 52.5 0.0227 0.0227 60.0 0.0210 0.0210 69.0 0.0196 0.0196 79.0 0.0185 0.0185 90.5 0.0177 0.0177 105.5 0.0171 0.0171 123.5 0.0166 0.0166 143.0 0.0163 0.0163 163.5 0.0161 0.0161 185.0 0.0159 0.0159 208.0 0.0158 0.0158 232.5 0.0158 0.0158 258.5 0.0158 0.0158 286.0 0.0158 0.0158 331.0 0.0158 0.0158 396.0 0.0158 0.0158 468.5 0.0159 0.0159 549.5 0.0160 0.0160 639.0 0.0162 0.0162 738.0 0.0163 0.0163 847.5 0.0165 0.0165 968.5 0.0167 0.0167 1102.0 0.0170 0.0170 1249.5 0.0172 0.0172 1412.0 0.0174 0.0174 1590.5 0.0176 0.0176 1787.0 0.0178 0.0178 1944.5 0.0180 0.0180 -2.6 2.8 117 9.0 0.1744 0.1744 11.0 0.1076 0.1076 13.5 0.0769 0.0769 16.5 0.0598 0.0598 19.5 0.0502 0.0502 22.5 0.0440 0.0440 26.0 0.0388 0.0388 30.0 0.0346 0.0346 34.5 0.0312 0.0312 40.0 0.0280 0.0280 46.0 0.0256 0.0256 52.5 0.0237 0.0237 60.0 0.0221 0.0221 69.0 0.0209 0.0209 79.0 0.0199 0.0199 90.5 0.0192 0.0192 105.5 0.0187 0.0187 123.5 0.0183 0.0183 143.0 0.0180 0.0180 163.5 0.0178 0.0178 185.0 0.0177 0.0177 208.0 0.0176 0.0176 232.5 0.0176 0.0176 258.5 0.0176 0.0176 286.0 0.0176 0.0176 331.0 0.0176 0.0176 396.0 0.0176 0.0176 468.5 0.0177 0.0177 549.5 0.0178 0.0178 639.0 0.0179 0.0179 738.0 0.0181 0.0181 847.5 0.0182 0.0182 968.5 0.0184 0.0184 1102.0 0.0186 0.0186 1249.5 0.0188 0.0188 1412.0 0.0190 0.0190 1590.5 0.0192 0.0192 1787.0 0.0194 0.0194 1944.5 0.0196 0.0196 -2.8 3.0 117 9.0 0.1857 0.1857 11.0 0.1126 0.1126 13.5 0.0810 0.0810 16.5 0.0640 0.0640 19.5 0.0548 0.0548 22.5 0.0490 0.0490 26.0 0.0443 0.0443 30.0 0.0406 0.0406 34.5 0.0376 0.0376 40.0 0.0350 0.0350 46.0 0.0330 0.0330 52.5 0.0316 0.0316 60.0 0.0304 0.0304 69.0 0.0295 0.0295 79.0 0.0288 0.0288 90.5 0.0283 0.0283 105.5 0.0279 0.0279 123.5 0.0277 0.0277 143.0 0.0275 0.0275 163.5 0.0274 0.0274 185.0 0.0273 0.0273 208.0 0.0272 0.0272 232.5 0.0272 0.0272 258.5 0.0272 0.0272 286.0 0.0272 0.0272 331.0 0.0272 0.0272 396.0 0.0272 0.0272 468.5 0.0272 0.0272 549.5 0.0273 0.0273 639.0 0.0274 0.0274 738.0 0.0275 0.0275 847.5 0.0276 0.0276 968.5 0.0277 0.0277 1102.0 0.0279 0.0279 1249.5 0.0280 0.0280 1412.0 0.0281 0.0281 1590.5 0.0283 0.0283 1787.0 0.0284 0.0284 1944.5 0.0285 0.0285 -3.0 3.5 117 9.0 0.1786 0.1786 11.0 0.1112 0.1112 13.5 0.0802 0.0802 16.5 0.0630 0.0630 19.5 0.0535 0.0535 22.5 0.0475 0.0475 26.0 0.0426 0.0426 30.0 0.0387 0.0387 34.5 0.0355 0.0355 40.0 0.0327 0.0327 46.0 0.0306 0.0306 52.5 0.0290 0.0290 60.0 0.0277 0.0277 69.0 0.0267 0.0267 79.0 0.0260 0.0260 90.5 0.0254 0.0254 105.5 0.0250 0.0250 123.5 0.0247 0.0247 143.0 0.0245 0.0245 163.5 0.0243 0.0243 185.0 0.0242 0.0242 208.0 0.0242 0.0242 232.5 0.0241 0.0241 258.5 0.0241 0.0241 286.0 0.0241 0.0241 331.0 0.0242 0.0242 396.0 0.0242 0.0242 468.5 0.0242 0.0242 549.5 0.0243 0.0243 639.0 0.0244 0.0244 738.0 0.0245 0.0245 847.5 0.0246 0.0246 968.5 0.0248 0.0248 1102.0 0.0249 0.0249 1249.5 0.0251 0.0251 1412.0 0.0252 0.0252 1590.5 0.0254 0.0254 1787.0 0.0255 0.0255 1944.5 0.0257 0.0257 -3.5 4.0 117 9.0 0.1408 0.1408 11.0 0.0970 0.0970 13.5 0.0741 0.0741 16.5 0.0606 0.0606 19.5 0.0530 0.0530 22.5 0.0481 0.0481 26.0 0.0441 0.0441 30.0 0.0409 0.0409 34.5 0.0383 0.0383 40.0 0.0360 0.0360 46.0 0.0343 0.0343 52.5 0.0331 0.0331 60.0 0.0321 0.0321 69.0 0.0313 0.0313 79.0 0.0307 0.0307 90.5 0.0303 0.0303 105.5 0.0300 0.0300 123.5 0.0298 0.0298 143.0 0.0296 0.0296 163.5 0.0295 0.0295 185.0 0.0295 0.0295 208.0 0.0294 0.0294 232.5 0.0294 0.0294 258.5 0.0294 0.0294 286.0 0.0294 0.0294 331.0 0.0294 0.0294 396.0 0.0294 0.0294 468.5 0.0295 0.0295 549.5 0.0295 0.0295 639.0 0.0296 0.0296 738.0 0.0297 0.0297 847.5 0.0298 0.0298 968.5 0.0299 0.0299 1102.0 0.0301 0.0301 1249.5 0.0302 0.0302 1412.0 0.0303 0.0303 1590.5 0.0304 0.0304 1787.0 0.0306 0.0306 1944.5 0.0307 0.0307 -4.0 4.5 117 9.0 0.1009 0.1009 11.0 0.0771 0.0771 13.5 0.0627 0.0627 16.5 0.0535 0.0535 19.5 0.0480 0.0480 22.5 0.0444 0.0444 26.0 0.0414 0.0414 30.0 0.0388 0.0388 34.5 0.0367 0.0367 40.0 0.0348 0.0348 46.0 0.0334 0.0334 52.5 0.0324 0.0324 60.0 0.0315 0.0315 69.0 0.0309 0.0309 79.0 0.0304 0.0304 90.5 0.0301 0.0301 105.5 0.0298 0.0298 123.5 0.0296 0.0296 143.0 0.0295 0.0295 163.5 0.0294 0.0294 185.0 0.0294 0.0294 208.0 0.0294 0.0294 232.5 0.0294 0.0294 258.5 0.0294 0.0294 286.0 0.0294 0.0294 331.0 0.0294 0.0294 396.0 0.0294 0.0294 468.5 0.0294 0.0294 549.5 0.0295 0.0295 639.0 0.0296 0.0296 738.0 0.0297 0.0297 847.5 0.0298 0.0298 968.5 0.0299 0.0299 1102.0 0.0301 0.0301 1249.5 0.0302 0.0302 1412.0 0.0303 0.0303 1590.5 0.0304 0.0304 1787.0 0.0306 0.0306 1944.5 0.0307 0.0307 -4.5 5.2 117 9.0 0.0597 0.0597 11.0 0.0526 0.0526 13.5 0.0474 0.0474 16.5 0.0434 0.0434 19.5 0.0408 0.0408 22.5 0.0390 0.0390 26.0 0.0373 0.0373 30.0 0.0357 0.0357 34.5 0.0343 0.0343 40.0 0.0330 0.0330 46.0 0.0320 0.0320 52.5 0.0313 0.0313 60.0 0.0307 0.0307 69.0 0.0302 0.0302 79.0 0.0299 0.0299 90.5 0.0297 0.0297 105.5 0.0295 0.0295 123.5 0.0294 0.0294 143.0 0.0294 0.0294 163.5 0.0293 0.0293 185.0 0.0293 0.0293 208.0 0.0293 0.0293 232.5 0.0293 0.0293 258.5 0.0293 0.0293 286.0 0.0293 0.0293 331.0 0.0294 0.0294 396.0 0.0294 0.0294 468.5 0.0294 0.0294 549.5 0.0295 0.0295 639.0 0.0296 0.0296 738.0 0.0297 0.0297 847.5 0.0298 0.0298 968.5 0.0299 0.0299 1102.0 0.0301 0.0301 1249.5 0.0302 0.0302 1412.0 0.0303 0.0303 1590.5 0.0304 0.0304 1787.0 0.0306 0.0306 1944.5 0.0307 0.0307 diff --git a/PhysicsTools/PatUtils/data/Summer13_V1_DATA_UncertaintySources_AK5PF.txt b/PhysicsTools/PatUtils/data/Summer13_V1_DATA_UncertaintySources_AK5PF.txt deleted file mode 100644 index 9123ce03472ef..0000000000000 --- a/PhysicsTools/PatUtils/data/Summer13_V1_DATA_UncertaintySources_AK5PF.txt +++ /dev/null @@ -1,1093 +0,0 @@ -#Uncertainty sources for Summer13_V1_DATA_AK5PF -[Absolute] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --5.0 -4.4 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --4.4 -4.0 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --4.0 -3.5 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --3.5 -3.0 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --3.0 -2.8 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --2.8 -2.6 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --2.6 -2.4 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --2.4 -2.2 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --2.2 -2.0 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --2.0 -1.8 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --1.8 -1.6 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --1.6 -1.4 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --1.4 -1.2 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --1.2 -1.0 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --1.0 -0.8 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --0.8 -0.6 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --0.6 -0.4 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --0.4 -0.2 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --0.2 0.0 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -0.0 0.2 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -0.2 0.4 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -0.4 0.6 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -0.6 0.8 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -0.8 1.0 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -1.0 1.2 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -1.2 1.4 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -1.4 1.6 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -1.6 1.8 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -1.8 2.0 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -2.0 2.2 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -2.2 2.4 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -2.4 2.6 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -2.6 2.8 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -2.8 3.0 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -3.0 3.5 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -3.5 4.0 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -4.0 4.4 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -4.4 5.0 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -5.0 5.4 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -[HighPtExtra] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --5.0 -4.4 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --4.4 -4.0 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --4.0 -3.5 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --3.5 -3.0 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --3.0 -2.8 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --2.8 -2.6 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --2.6 -2.4 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --2.4 -2.2 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --2.2 -2.0 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --2.0 -1.8 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --1.8 -1.6 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --1.6 -1.4 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --1.4 -1.2 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --1.2 -1.0 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --1.0 -0.8 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --0.8 -0.6 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --0.6 -0.4 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --0.4 -0.2 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --0.2 0.0 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -0.0 0.2 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -0.2 0.4 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -0.4 0.6 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -0.6 0.8 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -0.8 1.0 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -1.0 1.2 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -1.2 1.4 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -1.4 1.6 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -1.6 1.8 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -1.8 2.0 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -2.0 2.2 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -2.2 2.4 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -2.4 2.6 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -2.6 2.8 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -2.8 3.0 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -3.0 3.5 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -3.5 4.0 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -4.0 4.4 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -4.4 5.0 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -5.0 5.4 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -[SinglePionECAL] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --5.0 -4.4 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --4.4 -4.0 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --4.0 -3.5 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --3.5 -3.0 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --3.0 -2.8 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --2.8 -2.6 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --2.6 -2.4 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --2.4 -2.2 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --2.2 -2.0 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --2.0 -1.8 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --1.8 -1.6 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --1.6 -1.4 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --1.4 -1.2 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --1.2 -1.0 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --1.0 -0.8 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --0.8 -0.6 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --0.6 -0.4 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --0.4 -0.2 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --0.2 0.0 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -0.0 0.2 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -0.2 0.4 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -0.4 0.6 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -0.6 0.8 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -0.8 1.0 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -1.0 1.2 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -1.2 1.4 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -1.4 1.6 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -1.6 1.8 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -1.8 2.0 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -2.0 2.2 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -2.2 2.4 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -2.4 2.6 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -2.6 2.8 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -2.8 3.0 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -3.0 3.5 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -3.5 4.0 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -4.0 4.4 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -4.4 5.0 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -5.0 5.4 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -[SinglePionHCAL] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --5.0 -4.4 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --4.4 -4.0 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --4.0 -3.5 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --3.5 -3.0 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --3.0 -2.8 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --2.8 -2.6 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --2.6 -2.4 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --2.4 -2.2 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --2.2 -2.0 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --2.0 -1.8 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --1.8 -1.6 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --1.6 -1.4 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --1.4 -1.2 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --1.2 -1.0 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --1.0 -0.8 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --0.8 -0.6 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --0.6 -0.4 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --0.4 -0.2 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --0.2 0.0 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -0.0 0.2 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -0.2 0.4 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -0.4 0.6 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -0.6 0.8 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -0.8 1.0 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -1.0 1.2 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -1.2 1.4 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -1.4 1.6 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -1.6 1.8 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -1.8 2.0 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -2.0 2.2 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -2.2 2.4 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -2.4 2.6 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -2.6 2.8 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -2.8 3.0 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -3.0 3.5 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -3.5 4.0 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -4.0 4.4 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -4.4 5.0 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -5.0 5.4 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -[Flavor] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --5.0 -4.4 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --4.4 -4.0 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --4.0 -3.5 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --3.5 -3.0 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --3.0 -2.8 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --2.8 -2.6 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --2.6 -2.4 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --2.4 -2.2 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --2.2 -2.0 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --2.0 -1.8 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --1.8 -1.6 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --1.6 -1.4 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --1.4 -1.2 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --1.2 -1.0 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --1.0 -0.8 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --0.8 -0.6 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --0.6 -0.4 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --0.4 -0.2 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --0.2 0.0 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -0.0 0.2 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -0.2 0.4 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -0.4 0.6 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -0.6 0.8 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -0.8 1.0 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -1.0 1.2 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -1.2 1.4 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -1.4 1.6 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -1.6 1.8 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -1.8 2.0 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -2.0 2.2 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -2.2 2.4 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -2.4 2.6 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -2.6 2.8 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -2.8 3.0 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -3.0 3.5 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -3.5 4.0 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -4.0 4.4 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -4.4 5.0 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -5.0 5.4 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -[Time] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0088 0.0088 11.0 0.0088 0.0088 13.5 0.0088 0.0088 16.5 0.0088 0.0088 19.5 0.0088 0.0088 22.5 0.0088 0.0088 26.0 0.0088 0.0088 30.0 0.0088 0.0088 34.5 0.0088 0.0088 40.0 0.0088 0.0088 46.0 0.0088 0.0088 52.5 0.0088 0.0088 60.0 0.0088 0.0088 69.0 0.0088 0.0088 79.0 0.0088 0.0088 90.5 0.0088 0.0088 105.5 0.0088 0.0088 123.5 0.0088 0.0088 143.0 0.0088 0.0088 163.5 0.0088 0.0088 185.0 0.0088 0.0088 208.0 0.0088 0.0088 232.5 0.0088 0.0088 258.5 0.0088 0.0088 286.0 0.0088 0.0088 331.0 0.0088 0.0088 396.0 0.0088 0.0088 468.5 0.0088 0.0088 549.5 0.0088 0.0088 639.0 0.0088 0.0088 738.0 0.0088 0.0088 847.5 0.0088 0.0088 968.5 0.0088 0.0088 1102.0 0.0088 0.0088 1249.5 0.0088 0.0088 1412.0 0.0088 0.0088 1590.5 0.0088 0.0088 1787.0 0.0088 0.0088 1945.0 0.0088 0.0088 2119.0 0.0088 0.0088 2369.0 0.0088 0.0088 2643.5 0.0088 0.0088 2945.0 0.0088 0.0088 3276.5 0.0088 0.0088 --5.0 -4.4 132 9.0 0.0088 0.0088 11.0 0.0088 0.0088 13.5 0.0088 0.0088 16.5 0.0088 0.0088 19.5 0.0088 0.0088 22.5 0.0088 0.0088 26.0 0.0088 0.0088 30.0 0.0088 0.0088 34.5 0.0088 0.0088 40.0 0.0088 0.0088 46.0 0.0088 0.0088 52.5 0.0088 0.0088 60.0 0.0088 0.0088 69.0 0.0088 0.0088 79.0 0.0088 0.0088 90.5 0.0088 0.0088 105.5 0.0088 0.0088 123.5 0.0088 0.0088 143.0 0.0088 0.0088 163.5 0.0088 0.0088 185.0 0.0088 0.0088 208.0 0.0088 0.0088 232.5 0.0088 0.0088 258.5 0.0088 0.0088 286.0 0.0088 0.0088 331.0 0.0088 0.0088 396.0 0.0088 0.0088 468.5 0.0088 0.0088 549.5 0.0088 0.0088 639.0 0.0088 0.0088 738.0 0.0088 0.0088 847.5 0.0088 0.0088 968.5 0.0088 0.0088 1102.0 0.0088 0.0088 1249.5 0.0088 0.0088 1412.0 0.0088 0.0088 1590.5 0.0088 0.0088 1787.0 0.0088 0.0088 1945.0 0.0088 0.0088 2119.0 0.0088 0.0088 2369.0 0.0088 0.0088 2643.5 0.0088 0.0088 2945.0 0.0088 0.0088 3276.5 0.0088 0.0088 --4.4 -4.0 132 9.0 0.0088 0.0088 11.0 0.0088 0.0088 13.5 0.0088 0.0088 16.5 0.0088 0.0088 19.5 0.0088 0.0088 22.5 0.0088 0.0088 26.0 0.0088 0.0088 30.0 0.0088 0.0088 34.5 0.0088 0.0088 40.0 0.0088 0.0088 46.0 0.0088 0.0088 52.5 0.0088 0.0088 60.0 0.0088 0.0088 69.0 0.0088 0.0088 79.0 0.0088 0.0088 90.5 0.0088 0.0088 105.5 0.0088 0.0088 123.5 0.0088 0.0088 143.0 0.0088 0.0088 163.5 0.0088 0.0088 185.0 0.0088 0.0088 208.0 0.0088 0.0088 232.5 0.0088 0.0088 258.5 0.0088 0.0088 286.0 0.0088 0.0088 331.0 0.0088 0.0088 396.0 0.0088 0.0088 468.5 0.0088 0.0088 549.5 0.0088 0.0088 639.0 0.0088 0.0088 738.0 0.0088 0.0088 847.5 0.0088 0.0088 968.5 0.0088 0.0088 1102.0 0.0088 0.0088 1249.5 0.0088 0.0088 1412.0 0.0088 0.0088 1590.5 0.0088 0.0088 1787.0 0.0088 0.0088 1945.0 0.0088 0.0088 2119.0 0.0088 0.0088 2369.0 0.0088 0.0088 2643.5 0.0088 0.0088 2945.0 0.0088 0.0088 3276.5 0.0088 0.0088 --4.0 -3.5 132 9.0 0.0088 0.0088 11.0 0.0088 0.0088 13.5 0.0088 0.0088 16.5 0.0088 0.0088 19.5 0.0088 0.0088 22.5 0.0088 0.0088 26.0 0.0088 0.0088 30.0 0.0088 0.0088 34.5 0.0088 0.0088 40.0 0.0088 0.0088 46.0 0.0088 0.0088 52.5 0.0088 0.0088 60.0 0.0088 0.0088 69.0 0.0088 0.0088 79.0 0.0088 0.0088 90.5 0.0088 0.0088 105.5 0.0088 0.0088 123.5 0.0088 0.0088 143.0 0.0088 0.0088 163.5 0.0088 0.0088 185.0 0.0088 0.0088 208.0 0.0088 0.0088 232.5 0.0088 0.0088 258.5 0.0088 0.0088 286.0 0.0088 0.0088 331.0 0.0088 0.0088 396.0 0.0088 0.0088 468.5 0.0088 0.0088 549.5 0.0088 0.0088 639.0 0.0088 0.0088 738.0 0.0088 0.0088 847.5 0.0088 0.0088 968.5 0.0088 0.0088 1102.0 0.0088 0.0088 1249.5 0.0088 0.0088 1412.0 0.0088 0.0088 1590.5 0.0088 0.0088 1787.0 0.0088 0.0088 1945.0 0.0088 0.0088 2119.0 0.0088 0.0088 2369.0 0.0088 0.0088 2643.5 0.0088 0.0088 2945.0 0.0088 0.0088 3276.5 0.0088 0.0088 --3.5 -3.0 132 9.0 0.0088 0.0088 11.0 0.0088 0.0088 13.5 0.0088 0.0088 16.5 0.0088 0.0088 19.5 0.0088 0.0088 22.5 0.0088 0.0088 26.0 0.0088 0.0088 30.0 0.0088 0.0088 34.5 0.0088 0.0088 40.0 0.0088 0.0088 46.0 0.0088 0.0088 52.5 0.0088 0.0088 60.0 0.0088 0.0088 69.0 0.0088 0.0088 79.0 0.0088 0.0088 90.5 0.0088 0.0088 105.5 0.0088 0.0088 123.5 0.0088 0.0088 143.0 0.0088 0.0088 163.5 0.0088 0.0088 185.0 0.0088 0.0088 208.0 0.0088 0.0088 232.5 0.0088 0.0088 258.5 0.0088 0.0088 286.0 0.0088 0.0088 331.0 0.0088 0.0088 396.0 0.0088 0.0088 468.5 0.0088 0.0088 549.5 0.0088 0.0088 639.0 0.0088 0.0088 738.0 0.0088 0.0088 847.5 0.0088 0.0088 968.5 0.0088 0.0088 1102.0 0.0088 0.0088 1249.5 0.0088 0.0088 1412.0 0.0088 0.0088 1590.5 0.0088 0.0088 1787.0 0.0088 0.0088 1945.0 0.0088 0.0088 2119.0 0.0088 0.0088 2369.0 0.0088 0.0088 2643.5 0.0088 0.0088 2945.0 0.0088 0.0088 3276.5 0.0088 0.0088 --3.0 -2.8 132 9.0 0.0070 0.0070 11.0 0.0070 0.0070 13.5 0.0070 0.0070 16.5 0.0070 0.0070 19.5 0.0070 0.0070 22.5 0.0070 0.0070 26.0 0.0070 0.0070 30.0 0.0070 0.0070 34.5 0.0070 0.0070 40.0 0.0070 0.0070 46.0 0.0070 0.0070 52.5 0.0070 0.0070 60.0 0.0070 0.0070 69.0 0.0070 0.0070 79.0 0.0070 0.0070 90.5 0.0070 0.0070 105.5 0.0070 0.0070 123.5 0.0070 0.0070 143.0 0.0070 0.0070 163.5 0.0070 0.0070 185.0 0.0070 0.0070 208.0 0.0070 0.0070 232.5 0.0070 0.0070 258.5 0.0070 0.0070 286.0 0.0070 0.0070 331.0 0.0070 0.0070 396.0 0.0070 0.0070 468.5 0.0070 0.0070 549.5 0.0070 0.0070 639.0 0.0070 0.0070 738.0 0.0070 0.0070 847.5 0.0070 0.0070 968.5 0.0070 0.0070 1102.0 0.0070 0.0070 1249.5 0.0070 0.0070 1412.0 0.0070 0.0070 1590.5 0.0070 0.0070 1787.0 0.0070 0.0070 1945.0 0.0070 0.0070 2119.0 0.0070 0.0070 2369.0 0.0070 0.0070 2643.5 0.0070 0.0070 2945.0 0.0070 0.0070 3276.5 0.0070 0.0070 --2.8 -2.6 132 9.0 0.0070 0.0070 11.0 0.0070 0.0070 13.5 0.0070 0.0070 16.5 0.0070 0.0070 19.5 0.0070 0.0070 22.5 0.0070 0.0070 26.0 0.0070 0.0070 30.0 0.0070 0.0070 34.5 0.0070 0.0070 40.0 0.0070 0.0070 46.0 0.0070 0.0070 52.5 0.0070 0.0070 60.0 0.0070 0.0070 69.0 0.0070 0.0070 79.0 0.0070 0.0070 90.5 0.0070 0.0070 105.5 0.0070 0.0070 123.5 0.0070 0.0070 143.0 0.0070 0.0070 163.5 0.0070 0.0070 185.0 0.0070 0.0070 208.0 0.0070 0.0070 232.5 0.0070 0.0070 258.5 0.0070 0.0070 286.0 0.0070 0.0070 331.0 0.0070 0.0070 396.0 0.0070 0.0070 468.5 0.0070 0.0070 549.5 0.0070 0.0070 639.0 0.0070 0.0070 738.0 0.0070 0.0070 847.5 0.0070 0.0070 968.5 0.0070 0.0070 1102.0 0.0070 0.0070 1249.5 0.0070 0.0070 1412.0 0.0070 0.0070 1590.5 0.0070 0.0070 1787.0 0.0070 0.0070 1945.0 0.0070 0.0070 2119.0 0.0070 0.0070 2369.0 0.0070 0.0070 2643.5 0.0070 0.0070 2945.0 0.0070 0.0070 3276.5 0.0070 0.0070 --2.6 -2.4 132 9.0 0.0070 0.0070 11.0 0.0070 0.0070 13.5 0.0070 0.0070 16.5 0.0070 0.0070 19.5 0.0070 0.0070 22.5 0.0070 0.0070 26.0 0.0070 0.0070 30.0 0.0070 0.0070 34.5 0.0070 0.0070 40.0 0.0070 0.0070 46.0 0.0070 0.0070 52.5 0.0070 0.0070 60.0 0.0070 0.0070 69.0 0.0070 0.0070 79.0 0.0070 0.0070 90.5 0.0070 0.0070 105.5 0.0070 0.0070 123.5 0.0070 0.0070 143.0 0.0070 0.0070 163.5 0.0070 0.0070 185.0 0.0070 0.0070 208.0 0.0070 0.0070 232.5 0.0070 0.0070 258.5 0.0070 0.0070 286.0 0.0070 0.0070 331.0 0.0070 0.0070 396.0 0.0070 0.0070 468.5 0.0070 0.0070 549.5 0.0070 0.0070 639.0 0.0070 0.0070 738.0 0.0070 0.0070 847.5 0.0070 0.0070 968.5 0.0070 0.0070 1102.0 0.0070 0.0070 1249.5 0.0070 0.0070 1412.0 0.0070 0.0070 1590.5 0.0070 0.0070 1787.0 0.0070 0.0070 1945.0 0.0070 0.0070 2119.0 0.0070 0.0070 2369.0 0.0070 0.0070 2643.5 0.0070 0.0070 2945.0 0.0070 0.0070 3276.5 0.0070 0.0070 --2.4 -2.2 132 9.0 0.0051 0.0051 11.0 0.0051 0.0051 13.5 0.0051 0.0051 16.5 0.0051 0.0051 19.5 0.0051 0.0051 22.5 0.0051 0.0051 26.0 0.0051 0.0051 30.0 0.0051 0.0051 34.5 0.0051 0.0051 40.0 0.0051 0.0051 46.0 0.0051 0.0051 52.5 0.0051 0.0051 60.0 0.0051 0.0051 69.0 0.0051 0.0051 79.0 0.0051 0.0051 90.5 0.0051 0.0051 105.5 0.0051 0.0051 123.5 0.0051 0.0051 143.0 0.0051 0.0051 163.5 0.0051 0.0051 185.0 0.0051 0.0051 208.0 0.0051 0.0051 232.5 0.0051 0.0051 258.5 0.0051 0.0051 286.0 0.0051 0.0051 331.0 0.0051 0.0051 396.0 0.0051 0.0051 468.5 0.0051 0.0051 549.5 0.0051 0.0051 639.0 0.0051 0.0051 738.0 0.0051 0.0051 847.5 0.0051 0.0051 968.5 0.0051 0.0051 1102.0 0.0051 0.0051 1249.5 0.0051 0.0051 1412.0 0.0051 0.0051 1590.5 0.0051 0.0051 1787.0 0.0051 0.0051 1945.0 0.0051 0.0051 2119.0 0.0051 0.0051 2369.0 0.0051 0.0051 2643.5 0.0051 0.0051 2945.0 0.0051 0.0051 3276.5 0.0051 0.0051 --2.2 -2.0 132 9.0 0.0051 0.0051 11.0 0.0051 0.0051 13.5 0.0051 0.0051 16.5 0.0051 0.0051 19.5 0.0051 0.0051 22.5 0.0051 0.0051 26.0 0.0051 0.0051 30.0 0.0051 0.0051 34.5 0.0051 0.0051 40.0 0.0051 0.0051 46.0 0.0051 0.0051 52.5 0.0051 0.0051 60.0 0.0051 0.0051 69.0 0.0051 0.0051 79.0 0.0051 0.0051 90.5 0.0051 0.0051 105.5 0.0051 0.0051 123.5 0.0051 0.0051 143.0 0.0051 0.0051 163.5 0.0051 0.0051 185.0 0.0051 0.0051 208.0 0.0051 0.0051 232.5 0.0051 0.0051 258.5 0.0051 0.0051 286.0 0.0051 0.0051 331.0 0.0051 0.0051 396.0 0.0051 0.0051 468.5 0.0051 0.0051 549.5 0.0051 0.0051 639.0 0.0051 0.0051 738.0 0.0051 0.0051 847.5 0.0051 0.0051 968.5 0.0051 0.0051 1102.0 0.0051 0.0051 1249.5 0.0051 0.0051 1412.0 0.0051 0.0051 1590.5 0.0051 0.0051 1787.0 0.0051 0.0051 1945.0 0.0051 0.0051 2119.0 0.0051 0.0051 2369.0 0.0051 0.0051 2643.5 0.0051 0.0051 2945.0 0.0051 0.0051 3276.5 0.0051 0.0051 --2.0 -1.8 132 9.0 0.0036 0.0036 11.0 0.0036 0.0036 13.5 0.0036 0.0036 16.5 0.0036 0.0036 19.5 0.0036 0.0036 22.5 0.0036 0.0036 26.0 0.0036 0.0036 30.0 0.0036 0.0036 34.5 0.0036 0.0036 40.0 0.0036 0.0036 46.0 0.0036 0.0036 52.5 0.0036 0.0036 60.0 0.0036 0.0036 69.0 0.0036 0.0036 79.0 0.0036 0.0036 90.5 0.0036 0.0036 105.5 0.0036 0.0036 123.5 0.0036 0.0036 143.0 0.0036 0.0036 163.5 0.0036 0.0036 185.0 0.0036 0.0036 208.0 0.0036 0.0036 232.5 0.0036 0.0036 258.5 0.0036 0.0036 286.0 0.0036 0.0036 331.0 0.0036 0.0036 396.0 0.0036 0.0036 468.5 0.0036 0.0036 549.5 0.0036 0.0036 639.0 0.0036 0.0036 738.0 0.0036 0.0036 847.5 0.0036 0.0036 968.5 0.0036 0.0036 1102.0 0.0036 0.0036 1249.5 0.0036 0.0036 1412.0 0.0036 0.0036 1590.5 0.0036 0.0036 1787.0 0.0036 0.0036 1945.0 0.0036 0.0036 2119.0 0.0036 0.0036 2369.0 0.0036 0.0036 2643.5 0.0036 0.0036 2945.0 0.0036 0.0036 3276.5 0.0036 0.0036 --1.8 -1.6 132 9.0 0.0036 0.0036 11.0 0.0036 0.0036 13.5 0.0036 0.0036 16.5 0.0036 0.0036 19.5 0.0036 0.0036 22.5 0.0036 0.0036 26.0 0.0036 0.0036 30.0 0.0036 0.0036 34.5 0.0036 0.0036 40.0 0.0036 0.0036 46.0 0.0036 0.0036 52.5 0.0036 0.0036 60.0 0.0036 0.0036 69.0 0.0036 0.0036 79.0 0.0036 0.0036 90.5 0.0036 0.0036 105.5 0.0036 0.0036 123.5 0.0036 0.0036 143.0 0.0036 0.0036 163.5 0.0036 0.0036 185.0 0.0036 0.0036 208.0 0.0036 0.0036 232.5 0.0036 0.0036 258.5 0.0036 0.0036 286.0 0.0036 0.0036 331.0 0.0036 0.0036 396.0 0.0036 0.0036 468.5 0.0036 0.0036 549.5 0.0036 0.0036 639.0 0.0036 0.0036 738.0 0.0036 0.0036 847.5 0.0036 0.0036 968.5 0.0036 0.0036 1102.0 0.0036 0.0036 1249.5 0.0036 0.0036 1412.0 0.0036 0.0036 1590.5 0.0036 0.0036 1787.0 0.0036 0.0036 1945.0 0.0036 0.0036 2119.0 0.0036 0.0036 2369.0 0.0036 0.0036 2643.5 0.0036 0.0036 2945.0 0.0036 0.0036 3276.5 0.0036 0.0036 --1.6 -1.4 132 9.0 0.0036 0.0036 11.0 0.0036 0.0036 13.5 0.0036 0.0036 16.5 0.0036 0.0036 19.5 0.0036 0.0036 22.5 0.0036 0.0036 26.0 0.0036 0.0036 30.0 0.0036 0.0036 34.5 0.0036 0.0036 40.0 0.0036 0.0036 46.0 0.0036 0.0036 52.5 0.0036 0.0036 60.0 0.0036 0.0036 69.0 0.0036 0.0036 79.0 0.0036 0.0036 90.5 0.0036 0.0036 105.5 0.0036 0.0036 123.5 0.0036 0.0036 143.0 0.0036 0.0036 163.5 0.0036 0.0036 185.0 0.0036 0.0036 208.0 0.0036 0.0036 232.5 0.0036 0.0036 258.5 0.0036 0.0036 286.0 0.0036 0.0036 331.0 0.0036 0.0036 396.0 0.0036 0.0036 468.5 0.0036 0.0036 549.5 0.0036 0.0036 639.0 0.0036 0.0036 738.0 0.0036 0.0036 847.5 0.0036 0.0036 968.5 0.0036 0.0036 1102.0 0.0036 0.0036 1249.5 0.0036 0.0036 1412.0 0.0036 0.0036 1590.5 0.0036 0.0036 1787.0 0.0036 0.0036 1945.0 0.0036 0.0036 2119.0 0.0036 0.0036 2369.0 0.0036 0.0036 2643.5 0.0036 0.0036 2945.0 0.0036 0.0036 3276.5 0.0036 0.0036 --1.4 -1.2 132 9.0 0.0006 0.0006 11.0 0.0006 0.0006 13.5 0.0006 0.0006 16.5 0.0006 0.0006 19.5 0.0006 0.0006 22.5 0.0006 0.0006 26.0 0.0006 0.0006 30.0 0.0006 0.0006 34.5 0.0006 0.0006 40.0 0.0006 0.0006 46.0 0.0006 0.0006 52.5 0.0006 0.0006 60.0 0.0006 0.0006 69.0 0.0006 0.0006 79.0 0.0006 0.0006 90.5 0.0006 0.0006 105.5 0.0006 0.0006 123.5 0.0006 0.0006 143.0 0.0006 0.0006 163.5 0.0006 0.0006 185.0 0.0006 0.0006 208.0 0.0006 0.0006 232.5 0.0006 0.0006 258.5 0.0006 0.0006 286.0 0.0006 0.0006 331.0 0.0006 0.0006 396.0 0.0006 0.0006 468.5 0.0006 0.0006 549.5 0.0006 0.0006 639.0 0.0006 0.0006 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0006 0.0006 1945.0 0.0006 0.0006 2119.0 0.0006 0.0006 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 --1.2 -1.0 132 9.0 0.0006 0.0006 11.0 0.0006 0.0006 13.5 0.0006 0.0006 16.5 0.0006 0.0006 19.5 0.0006 0.0006 22.5 0.0006 0.0006 26.0 0.0006 0.0006 30.0 0.0006 0.0006 34.5 0.0006 0.0006 40.0 0.0006 0.0006 46.0 0.0006 0.0006 52.5 0.0006 0.0006 60.0 0.0006 0.0006 69.0 0.0006 0.0006 79.0 0.0006 0.0006 90.5 0.0006 0.0006 105.5 0.0006 0.0006 123.5 0.0006 0.0006 143.0 0.0006 0.0006 163.5 0.0006 0.0006 185.0 0.0006 0.0006 208.0 0.0006 0.0006 232.5 0.0006 0.0006 258.5 0.0006 0.0006 286.0 0.0006 0.0006 331.0 0.0006 0.0006 396.0 0.0006 0.0006 468.5 0.0006 0.0006 549.5 0.0006 0.0006 639.0 0.0006 0.0006 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0006 0.0006 1945.0 0.0006 0.0006 2119.0 0.0006 0.0006 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 --1.0 -0.8 132 9.0 0.0006 0.0006 11.0 0.0006 0.0006 13.5 0.0006 0.0006 16.5 0.0006 0.0006 19.5 0.0006 0.0006 22.5 0.0006 0.0006 26.0 0.0006 0.0006 30.0 0.0006 0.0006 34.5 0.0006 0.0006 40.0 0.0006 0.0006 46.0 0.0006 0.0006 52.5 0.0006 0.0006 60.0 0.0006 0.0006 69.0 0.0006 0.0006 79.0 0.0006 0.0006 90.5 0.0006 0.0006 105.5 0.0006 0.0006 123.5 0.0006 0.0006 143.0 0.0006 0.0006 163.5 0.0006 0.0006 185.0 0.0006 0.0006 208.0 0.0006 0.0006 232.5 0.0006 0.0006 258.5 0.0006 0.0006 286.0 0.0006 0.0006 331.0 0.0006 0.0006 396.0 0.0006 0.0006 468.5 0.0006 0.0006 549.5 0.0006 0.0006 639.0 0.0006 0.0006 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0006 0.0006 1945.0 0.0006 0.0006 2119.0 0.0006 0.0006 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 --0.8 -0.6 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 --0.6 -0.4 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 --0.4 -0.2 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 --0.2 0.0 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 -0.0 0.2 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 -0.2 0.4 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 -0.4 0.6 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 -0.6 0.8 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 -0.8 1.0 132 9.0 0.0006 0.0006 11.0 0.0006 0.0006 13.5 0.0006 0.0006 16.5 0.0006 0.0006 19.5 0.0006 0.0006 22.5 0.0006 0.0006 26.0 0.0006 0.0006 30.0 0.0006 0.0006 34.5 0.0006 0.0006 40.0 0.0006 0.0006 46.0 0.0006 0.0006 52.5 0.0006 0.0006 60.0 0.0006 0.0006 69.0 0.0006 0.0006 79.0 0.0006 0.0006 90.5 0.0006 0.0006 105.5 0.0006 0.0006 123.5 0.0006 0.0006 143.0 0.0006 0.0006 163.5 0.0006 0.0006 185.0 0.0006 0.0006 208.0 0.0006 0.0006 232.5 0.0006 0.0006 258.5 0.0006 0.0006 286.0 0.0006 0.0006 331.0 0.0006 0.0006 396.0 0.0006 0.0006 468.5 0.0006 0.0006 549.5 0.0006 0.0006 639.0 0.0006 0.0006 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0006 0.0006 1945.0 0.0006 0.0006 2119.0 0.0006 0.0006 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -1.0 1.2 132 9.0 0.0006 0.0006 11.0 0.0006 0.0006 13.5 0.0006 0.0006 16.5 0.0006 0.0006 19.5 0.0006 0.0006 22.5 0.0006 0.0006 26.0 0.0006 0.0006 30.0 0.0006 0.0006 34.5 0.0006 0.0006 40.0 0.0006 0.0006 46.0 0.0006 0.0006 52.5 0.0006 0.0006 60.0 0.0006 0.0006 69.0 0.0006 0.0006 79.0 0.0006 0.0006 90.5 0.0006 0.0006 105.5 0.0006 0.0006 123.5 0.0006 0.0006 143.0 0.0006 0.0006 163.5 0.0006 0.0006 185.0 0.0006 0.0006 208.0 0.0006 0.0006 232.5 0.0006 0.0006 258.5 0.0006 0.0006 286.0 0.0006 0.0006 331.0 0.0006 0.0006 396.0 0.0006 0.0006 468.5 0.0006 0.0006 549.5 0.0006 0.0006 639.0 0.0006 0.0006 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0006 0.0006 1945.0 0.0006 0.0006 2119.0 0.0006 0.0006 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -1.2 1.4 132 9.0 0.0006 0.0006 11.0 0.0006 0.0006 13.5 0.0006 0.0006 16.5 0.0006 0.0006 19.5 0.0006 0.0006 22.5 0.0006 0.0006 26.0 0.0006 0.0006 30.0 0.0006 0.0006 34.5 0.0006 0.0006 40.0 0.0006 0.0006 46.0 0.0006 0.0006 52.5 0.0006 0.0006 60.0 0.0006 0.0006 69.0 0.0006 0.0006 79.0 0.0006 0.0006 90.5 0.0006 0.0006 105.5 0.0006 0.0006 123.5 0.0006 0.0006 143.0 0.0006 0.0006 163.5 0.0006 0.0006 185.0 0.0006 0.0006 208.0 0.0006 0.0006 232.5 0.0006 0.0006 258.5 0.0006 0.0006 286.0 0.0006 0.0006 331.0 0.0006 0.0006 396.0 0.0006 0.0006 468.5 0.0006 0.0006 549.5 0.0006 0.0006 639.0 0.0006 0.0006 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0006 0.0006 1945.0 0.0006 0.0006 2119.0 0.0006 0.0006 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -1.4 1.6 132 9.0 0.0036 0.0036 11.0 0.0036 0.0036 13.5 0.0036 0.0036 16.5 0.0036 0.0036 19.5 0.0036 0.0036 22.5 0.0036 0.0036 26.0 0.0036 0.0036 30.0 0.0036 0.0036 34.5 0.0036 0.0036 40.0 0.0036 0.0036 46.0 0.0036 0.0036 52.5 0.0036 0.0036 60.0 0.0036 0.0036 69.0 0.0036 0.0036 79.0 0.0036 0.0036 90.5 0.0036 0.0036 105.5 0.0036 0.0036 123.5 0.0036 0.0036 143.0 0.0036 0.0036 163.5 0.0036 0.0036 185.0 0.0036 0.0036 208.0 0.0036 0.0036 232.5 0.0036 0.0036 258.5 0.0036 0.0036 286.0 0.0036 0.0036 331.0 0.0036 0.0036 396.0 0.0036 0.0036 468.5 0.0036 0.0036 549.5 0.0036 0.0036 639.0 0.0036 0.0036 738.0 0.0036 0.0036 847.5 0.0036 0.0036 968.5 0.0036 0.0036 1102.0 0.0036 0.0036 1249.5 0.0036 0.0036 1412.0 0.0036 0.0036 1590.5 0.0036 0.0036 1787.0 0.0036 0.0036 1945.0 0.0036 0.0036 2119.0 0.0036 0.0036 2369.0 0.0036 0.0036 2643.5 0.0036 0.0036 2945.0 0.0036 0.0036 3276.5 0.0036 0.0036 -1.6 1.8 132 9.0 0.0036 0.0036 11.0 0.0036 0.0036 13.5 0.0036 0.0036 16.5 0.0036 0.0036 19.5 0.0036 0.0036 22.5 0.0036 0.0036 26.0 0.0036 0.0036 30.0 0.0036 0.0036 34.5 0.0036 0.0036 40.0 0.0036 0.0036 46.0 0.0036 0.0036 52.5 0.0036 0.0036 60.0 0.0036 0.0036 69.0 0.0036 0.0036 79.0 0.0036 0.0036 90.5 0.0036 0.0036 105.5 0.0036 0.0036 123.5 0.0036 0.0036 143.0 0.0036 0.0036 163.5 0.0036 0.0036 185.0 0.0036 0.0036 208.0 0.0036 0.0036 232.5 0.0036 0.0036 258.5 0.0036 0.0036 286.0 0.0036 0.0036 331.0 0.0036 0.0036 396.0 0.0036 0.0036 468.5 0.0036 0.0036 549.5 0.0036 0.0036 639.0 0.0036 0.0036 738.0 0.0036 0.0036 847.5 0.0036 0.0036 968.5 0.0036 0.0036 1102.0 0.0036 0.0036 1249.5 0.0036 0.0036 1412.0 0.0036 0.0036 1590.5 0.0036 0.0036 1787.0 0.0036 0.0036 1945.0 0.0036 0.0036 2119.0 0.0036 0.0036 2369.0 0.0036 0.0036 2643.5 0.0036 0.0036 2945.0 0.0036 0.0036 3276.5 0.0036 0.0036 -1.8 2.0 132 9.0 0.0036 0.0036 11.0 0.0036 0.0036 13.5 0.0036 0.0036 16.5 0.0036 0.0036 19.5 0.0036 0.0036 22.5 0.0036 0.0036 26.0 0.0036 0.0036 30.0 0.0036 0.0036 34.5 0.0036 0.0036 40.0 0.0036 0.0036 46.0 0.0036 0.0036 52.5 0.0036 0.0036 60.0 0.0036 0.0036 69.0 0.0036 0.0036 79.0 0.0036 0.0036 90.5 0.0036 0.0036 105.5 0.0036 0.0036 123.5 0.0036 0.0036 143.0 0.0036 0.0036 163.5 0.0036 0.0036 185.0 0.0036 0.0036 208.0 0.0036 0.0036 232.5 0.0036 0.0036 258.5 0.0036 0.0036 286.0 0.0036 0.0036 331.0 0.0036 0.0036 396.0 0.0036 0.0036 468.5 0.0036 0.0036 549.5 0.0036 0.0036 639.0 0.0036 0.0036 738.0 0.0036 0.0036 847.5 0.0036 0.0036 968.5 0.0036 0.0036 1102.0 0.0036 0.0036 1249.5 0.0036 0.0036 1412.0 0.0036 0.0036 1590.5 0.0036 0.0036 1787.0 0.0036 0.0036 1945.0 0.0036 0.0036 2119.0 0.0036 0.0036 2369.0 0.0036 0.0036 2643.5 0.0036 0.0036 2945.0 0.0036 0.0036 3276.5 0.0036 0.0036 -2.0 2.2 132 9.0 0.0051 0.0051 11.0 0.0051 0.0051 13.5 0.0051 0.0051 16.5 0.0051 0.0051 19.5 0.0051 0.0051 22.5 0.0051 0.0051 26.0 0.0051 0.0051 30.0 0.0051 0.0051 34.5 0.0051 0.0051 40.0 0.0051 0.0051 46.0 0.0051 0.0051 52.5 0.0051 0.0051 60.0 0.0051 0.0051 69.0 0.0051 0.0051 79.0 0.0051 0.0051 90.5 0.0051 0.0051 105.5 0.0051 0.0051 123.5 0.0051 0.0051 143.0 0.0051 0.0051 163.5 0.0051 0.0051 185.0 0.0051 0.0051 208.0 0.0051 0.0051 232.5 0.0051 0.0051 258.5 0.0051 0.0051 286.0 0.0051 0.0051 331.0 0.0051 0.0051 396.0 0.0051 0.0051 468.5 0.0051 0.0051 549.5 0.0051 0.0051 639.0 0.0051 0.0051 738.0 0.0051 0.0051 847.5 0.0051 0.0051 968.5 0.0051 0.0051 1102.0 0.0051 0.0051 1249.5 0.0051 0.0051 1412.0 0.0051 0.0051 1590.5 0.0051 0.0051 1787.0 0.0051 0.0051 1945.0 0.0051 0.0051 2119.0 0.0051 0.0051 2369.0 0.0051 0.0051 2643.5 0.0051 0.0051 2945.0 0.0051 0.0051 3276.5 0.0051 0.0051 -2.2 2.4 132 9.0 0.0051 0.0051 11.0 0.0051 0.0051 13.5 0.0051 0.0051 16.5 0.0051 0.0051 19.5 0.0051 0.0051 22.5 0.0051 0.0051 26.0 0.0051 0.0051 30.0 0.0051 0.0051 34.5 0.0051 0.0051 40.0 0.0051 0.0051 46.0 0.0051 0.0051 52.5 0.0051 0.0051 60.0 0.0051 0.0051 69.0 0.0051 0.0051 79.0 0.0051 0.0051 90.5 0.0051 0.0051 105.5 0.0051 0.0051 123.5 0.0051 0.0051 143.0 0.0051 0.0051 163.5 0.0051 0.0051 185.0 0.0051 0.0051 208.0 0.0051 0.0051 232.5 0.0051 0.0051 258.5 0.0051 0.0051 286.0 0.0051 0.0051 331.0 0.0051 0.0051 396.0 0.0051 0.0051 468.5 0.0051 0.0051 549.5 0.0051 0.0051 639.0 0.0051 0.0051 738.0 0.0051 0.0051 847.5 0.0051 0.0051 968.5 0.0051 0.0051 1102.0 0.0051 0.0051 1249.5 0.0051 0.0051 1412.0 0.0051 0.0051 1590.5 0.0051 0.0051 1787.0 0.0051 0.0051 1945.0 0.0051 0.0051 2119.0 0.0051 0.0051 2369.0 0.0051 0.0051 2643.5 0.0051 0.0051 2945.0 0.0051 0.0051 3276.5 0.0051 0.0051 -2.4 2.6 132 9.0 0.0070 0.0070 11.0 0.0070 0.0070 13.5 0.0070 0.0070 16.5 0.0070 0.0070 19.5 0.0070 0.0070 22.5 0.0070 0.0070 26.0 0.0070 0.0070 30.0 0.0070 0.0070 34.5 0.0070 0.0070 40.0 0.0070 0.0070 46.0 0.0070 0.0070 52.5 0.0070 0.0070 60.0 0.0070 0.0070 69.0 0.0070 0.0070 79.0 0.0070 0.0070 90.5 0.0070 0.0070 105.5 0.0070 0.0070 123.5 0.0070 0.0070 143.0 0.0070 0.0070 163.5 0.0070 0.0070 185.0 0.0070 0.0070 208.0 0.0070 0.0070 232.5 0.0070 0.0070 258.5 0.0070 0.0070 286.0 0.0070 0.0070 331.0 0.0070 0.0070 396.0 0.0070 0.0070 468.5 0.0070 0.0070 549.5 0.0070 0.0070 639.0 0.0070 0.0070 738.0 0.0070 0.0070 847.5 0.0070 0.0070 968.5 0.0070 0.0070 1102.0 0.0070 0.0070 1249.5 0.0070 0.0070 1412.0 0.0070 0.0070 1590.5 0.0070 0.0070 1787.0 0.0070 0.0070 1945.0 0.0070 0.0070 2119.0 0.0070 0.0070 2369.0 0.0070 0.0070 2643.5 0.0070 0.0070 2945.0 0.0070 0.0070 3276.5 0.0070 0.0070 -2.6 2.8 132 9.0 0.0070 0.0070 11.0 0.0070 0.0070 13.5 0.0070 0.0070 16.5 0.0070 0.0070 19.5 0.0070 0.0070 22.5 0.0070 0.0070 26.0 0.0070 0.0070 30.0 0.0070 0.0070 34.5 0.0070 0.0070 40.0 0.0070 0.0070 46.0 0.0070 0.0070 52.5 0.0070 0.0070 60.0 0.0070 0.0070 69.0 0.0070 0.0070 79.0 0.0070 0.0070 90.5 0.0070 0.0070 105.5 0.0070 0.0070 123.5 0.0070 0.0070 143.0 0.0070 0.0070 163.5 0.0070 0.0070 185.0 0.0070 0.0070 208.0 0.0070 0.0070 232.5 0.0070 0.0070 258.5 0.0070 0.0070 286.0 0.0070 0.0070 331.0 0.0070 0.0070 396.0 0.0070 0.0070 468.5 0.0070 0.0070 549.5 0.0070 0.0070 639.0 0.0070 0.0070 738.0 0.0070 0.0070 847.5 0.0070 0.0070 968.5 0.0070 0.0070 1102.0 0.0070 0.0070 1249.5 0.0070 0.0070 1412.0 0.0070 0.0070 1590.5 0.0070 0.0070 1787.0 0.0070 0.0070 1945.0 0.0070 0.0070 2119.0 0.0070 0.0070 2369.0 0.0070 0.0070 2643.5 0.0070 0.0070 2945.0 0.0070 0.0070 3276.5 0.0070 0.0070 -2.8 3.0 132 9.0 0.0070 0.0070 11.0 0.0070 0.0070 13.5 0.0070 0.0070 16.5 0.0070 0.0070 19.5 0.0070 0.0070 22.5 0.0070 0.0070 26.0 0.0070 0.0070 30.0 0.0070 0.0070 34.5 0.0070 0.0070 40.0 0.0070 0.0070 46.0 0.0070 0.0070 52.5 0.0070 0.0070 60.0 0.0070 0.0070 69.0 0.0070 0.0070 79.0 0.0070 0.0070 90.5 0.0070 0.0070 105.5 0.0070 0.0070 123.5 0.0070 0.0070 143.0 0.0070 0.0070 163.5 0.0070 0.0070 185.0 0.0070 0.0070 208.0 0.0070 0.0070 232.5 0.0070 0.0070 258.5 0.0070 0.0070 286.0 0.0070 0.0070 331.0 0.0070 0.0070 396.0 0.0070 0.0070 468.5 0.0070 0.0070 549.5 0.0070 0.0070 639.0 0.0070 0.0070 738.0 0.0070 0.0070 847.5 0.0070 0.0070 968.5 0.0070 0.0070 1102.0 0.0070 0.0070 1249.5 0.0070 0.0070 1412.0 0.0070 0.0070 1590.5 0.0070 0.0070 1787.0 0.0070 0.0070 1945.0 0.0070 0.0070 2119.0 0.0070 0.0070 2369.0 0.0070 0.0070 2643.5 0.0070 0.0070 2945.0 0.0070 0.0070 3276.5 0.0070 0.0070 -3.0 3.5 132 9.0 0.0088 0.0088 11.0 0.0088 0.0088 13.5 0.0088 0.0088 16.5 0.0088 0.0088 19.5 0.0088 0.0088 22.5 0.0088 0.0088 26.0 0.0088 0.0088 30.0 0.0088 0.0088 34.5 0.0088 0.0088 40.0 0.0088 0.0088 46.0 0.0088 0.0088 52.5 0.0088 0.0088 60.0 0.0088 0.0088 69.0 0.0088 0.0088 79.0 0.0088 0.0088 90.5 0.0088 0.0088 105.5 0.0088 0.0088 123.5 0.0088 0.0088 143.0 0.0088 0.0088 163.5 0.0088 0.0088 185.0 0.0088 0.0088 208.0 0.0088 0.0088 232.5 0.0088 0.0088 258.5 0.0088 0.0088 286.0 0.0088 0.0088 331.0 0.0088 0.0088 396.0 0.0088 0.0088 468.5 0.0088 0.0088 549.5 0.0088 0.0088 639.0 0.0088 0.0088 738.0 0.0088 0.0088 847.5 0.0088 0.0088 968.5 0.0088 0.0088 1102.0 0.0088 0.0088 1249.5 0.0088 0.0088 1412.0 0.0088 0.0088 1590.5 0.0088 0.0088 1787.0 0.0088 0.0088 1945.0 0.0088 0.0088 2119.0 0.0088 0.0088 2369.0 0.0088 0.0088 2643.5 0.0088 0.0088 2945.0 0.0088 0.0088 3276.5 0.0088 0.0088 -3.5 4.0 132 9.0 0.0088 0.0088 11.0 0.0088 0.0088 13.5 0.0088 0.0088 16.5 0.0088 0.0088 19.5 0.0088 0.0088 22.5 0.0088 0.0088 26.0 0.0088 0.0088 30.0 0.0088 0.0088 34.5 0.0088 0.0088 40.0 0.0088 0.0088 46.0 0.0088 0.0088 52.5 0.0088 0.0088 60.0 0.0088 0.0088 69.0 0.0088 0.0088 79.0 0.0088 0.0088 90.5 0.0088 0.0088 105.5 0.0088 0.0088 123.5 0.0088 0.0088 143.0 0.0088 0.0088 163.5 0.0088 0.0088 185.0 0.0088 0.0088 208.0 0.0088 0.0088 232.5 0.0088 0.0088 258.5 0.0088 0.0088 286.0 0.0088 0.0088 331.0 0.0088 0.0088 396.0 0.0088 0.0088 468.5 0.0088 0.0088 549.5 0.0088 0.0088 639.0 0.0088 0.0088 738.0 0.0088 0.0088 847.5 0.0088 0.0088 968.5 0.0088 0.0088 1102.0 0.0088 0.0088 1249.5 0.0088 0.0088 1412.0 0.0088 0.0088 1590.5 0.0088 0.0088 1787.0 0.0088 0.0088 1945.0 0.0088 0.0088 2119.0 0.0088 0.0088 2369.0 0.0088 0.0088 2643.5 0.0088 0.0088 2945.0 0.0088 0.0088 3276.5 0.0088 0.0088 -4.0 4.4 132 9.0 0.0088 0.0088 11.0 0.0088 0.0088 13.5 0.0088 0.0088 16.5 0.0088 0.0088 19.5 0.0088 0.0088 22.5 0.0088 0.0088 26.0 0.0088 0.0088 30.0 0.0088 0.0088 34.5 0.0088 0.0088 40.0 0.0088 0.0088 46.0 0.0088 0.0088 52.5 0.0088 0.0088 60.0 0.0088 0.0088 69.0 0.0088 0.0088 79.0 0.0088 0.0088 90.5 0.0088 0.0088 105.5 0.0088 0.0088 123.5 0.0088 0.0088 143.0 0.0088 0.0088 163.5 0.0088 0.0088 185.0 0.0088 0.0088 208.0 0.0088 0.0088 232.5 0.0088 0.0088 258.5 0.0088 0.0088 286.0 0.0088 0.0088 331.0 0.0088 0.0088 396.0 0.0088 0.0088 468.5 0.0088 0.0088 549.5 0.0088 0.0088 639.0 0.0088 0.0088 738.0 0.0088 0.0088 847.5 0.0088 0.0088 968.5 0.0088 0.0088 1102.0 0.0088 0.0088 1249.5 0.0088 0.0088 1412.0 0.0088 0.0088 1590.5 0.0088 0.0088 1787.0 0.0088 0.0088 1945.0 0.0088 0.0088 2119.0 0.0088 0.0088 2369.0 0.0088 0.0088 2643.5 0.0088 0.0088 2945.0 0.0088 0.0088 3276.5 0.0088 0.0088 -4.4 5.0 132 9.0 0.0088 0.0088 11.0 0.0088 0.0088 13.5 0.0088 0.0088 16.5 0.0088 0.0088 19.5 0.0088 0.0088 22.5 0.0088 0.0088 26.0 0.0088 0.0088 30.0 0.0088 0.0088 34.5 0.0088 0.0088 40.0 0.0088 0.0088 46.0 0.0088 0.0088 52.5 0.0088 0.0088 60.0 0.0088 0.0088 69.0 0.0088 0.0088 79.0 0.0088 0.0088 90.5 0.0088 0.0088 105.5 0.0088 0.0088 123.5 0.0088 0.0088 143.0 0.0088 0.0088 163.5 0.0088 0.0088 185.0 0.0088 0.0088 208.0 0.0088 0.0088 232.5 0.0088 0.0088 258.5 0.0088 0.0088 286.0 0.0088 0.0088 331.0 0.0088 0.0088 396.0 0.0088 0.0088 468.5 0.0088 0.0088 549.5 0.0088 0.0088 639.0 0.0088 0.0088 738.0 0.0088 0.0088 847.5 0.0088 0.0088 968.5 0.0088 0.0088 1102.0 0.0088 0.0088 1249.5 0.0088 0.0088 1412.0 0.0088 0.0088 1590.5 0.0088 0.0088 1787.0 0.0088 0.0088 1945.0 0.0088 0.0088 2119.0 0.0088 0.0088 2369.0 0.0088 0.0088 2643.5 0.0088 0.0088 2945.0 0.0088 0.0088 3276.5 0.0088 0.0088 -5.0 5.4 132 9.0 0.0088 0.0088 11.0 0.0088 0.0088 13.5 0.0088 0.0088 16.5 0.0088 0.0088 19.5 0.0088 0.0088 22.5 0.0088 0.0088 26.0 0.0088 0.0088 30.0 0.0088 0.0088 34.5 0.0088 0.0088 40.0 0.0088 0.0088 46.0 0.0088 0.0088 52.5 0.0088 0.0088 60.0 0.0088 0.0088 69.0 0.0088 0.0088 79.0 0.0088 0.0088 90.5 0.0088 0.0088 105.5 0.0088 0.0088 123.5 0.0088 0.0088 143.0 0.0088 0.0088 163.5 0.0088 0.0088 185.0 0.0088 0.0088 208.0 0.0088 0.0088 232.5 0.0088 0.0088 258.5 0.0088 0.0088 286.0 0.0088 0.0088 331.0 0.0088 0.0088 396.0 0.0088 0.0088 468.5 0.0088 0.0088 549.5 0.0088 0.0088 639.0 0.0088 0.0088 738.0 0.0088 0.0088 847.5 0.0088 0.0088 968.5 0.0088 0.0088 1102.0 0.0088 0.0088 1249.5 0.0088 0.0088 1412.0 0.0088 0.0088 1590.5 0.0088 0.0088 1787.0 0.0088 0.0088 1945.0 0.0088 0.0088 2119.0 0.0088 0.0088 2369.0 0.0088 0.0088 2643.5 0.0088 0.0088 2945.0 0.0088 0.0088 3276.5 0.0088 0.0088 -[RelativeJEREC1] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --5.0 -4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.4 -4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.0 -3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.5 -3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.0 -2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.8 -2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.6 -2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.4 -2.2 132 9.0 0.0011 0.0011 11.0 0.0011 0.0011 13.5 0.0011 0.0011 16.5 0.0011 0.0011 19.5 0.0011 0.0011 22.5 0.0011 0.0011 26.0 0.0011 0.0011 30.0 0.0011 0.0011 34.5 0.0011 0.0011 40.0 0.0011 0.0011 46.0 0.0011 0.0011 52.5 0.0011 0.0011 60.0 0.0011 0.0011 69.0 0.0011 0.0011 79.0 0.0011 0.0011 90.5 0.0011 0.0011 105.5 0.0011 0.0011 123.5 0.0011 0.0011 143.0 0.0011 0.0011 163.5 0.0011 0.0011 185.0 0.0011 0.0011 208.0 0.0011 0.0011 232.5 0.0011 0.0011 258.5 0.0011 0.0011 286.0 0.0011 0.0011 331.0 0.0011 0.0011 396.0 0.0011 0.0011 468.5 0.0011 0.0011 549.5 0.0011 0.0011 639.0 0.0011 0.0011 738.0 0.0011 0.0011 847.5 0.0011 0.0011 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0011 0.0011 1412.0 0.0011 0.0011 1590.5 0.0011 0.0011 1787.0 0.0011 0.0011 1945.0 0.0011 0.0011 2119.0 0.0011 0.0011 2369.0 0.0011 0.0011 2643.5 0.0011 0.0011 2945.0 0.0011 0.0011 3276.5 0.0011 0.0011 --2.2 -2.0 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 --2.0 -1.8 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 --1.8 -1.6 132 9.0 0.0014 0.0014 11.0 0.0014 0.0014 13.5 0.0014 0.0014 16.5 0.0014 0.0014 19.5 0.0014 0.0014 22.5 0.0014 0.0014 26.0 0.0014 0.0014 30.0 0.0014 0.0014 34.5 0.0014 0.0014 40.0 0.0014 0.0014 46.0 0.0014 0.0014 52.5 0.0014 0.0014 60.0 0.0014 0.0014 69.0 0.0014 0.0014 79.0 0.0014 0.0014 90.5 0.0014 0.0014 105.5 0.0014 0.0014 123.5 0.0014 0.0014 143.0 0.0014 0.0014 163.5 0.0014 0.0014 185.0 0.0014 0.0014 208.0 0.0014 0.0014 232.5 0.0014 0.0014 258.5 0.0014 0.0014 286.0 0.0014 0.0014 331.0 0.0014 0.0014 396.0 0.0014 0.0014 468.5 0.0014 0.0014 549.5 0.0014 0.0014 639.0 0.0014 0.0014 738.0 0.0014 0.0014 847.5 0.0014 0.0014 968.5 0.0014 0.0014 1102.0 0.0014 0.0014 1249.5 0.0014 0.0014 1412.0 0.0014 0.0014 1590.5 0.0014 0.0014 1787.0 0.0014 0.0014 1945.0 0.0014 0.0014 2119.0 0.0014 0.0014 2369.0 0.0014 0.0014 2643.5 0.0014 0.0014 2945.0 0.0014 0.0014 3276.5 0.0014 0.0014 --1.6 -1.4 132 9.0 0.0009 0.0009 11.0 0.0009 0.0009 13.5 0.0009 0.0009 16.5 0.0009 0.0009 19.5 0.0009 0.0009 22.5 0.0009 0.0009 26.0 0.0009 0.0009 30.0 0.0009 0.0009 34.5 0.0009 0.0009 40.0 0.0009 0.0009 46.0 0.0009 0.0009 52.5 0.0009 0.0009 60.0 0.0009 0.0009 69.0 0.0009 0.0009 79.0 0.0009 0.0009 90.5 0.0009 0.0009 105.5 0.0009 0.0009 123.5 0.0009 0.0009 143.0 0.0009 0.0009 163.5 0.0009 0.0009 185.0 0.0009 0.0009 208.0 0.0009 0.0009 232.5 0.0009 0.0009 258.5 0.0009 0.0009 286.0 0.0009 0.0009 331.0 0.0009 0.0009 396.0 0.0009 0.0009 468.5 0.0009 0.0009 549.5 0.0009 0.0009 639.0 0.0009 0.0009 738.0 0.0009 0.0009 847.5 0.0009 0.0009 968.5 0.0009 0.0009 1102.0 0.0009 0.0009 1249.5 0.0009 0.0009 1412.0 0.0009 0.0009 1590.5 0.0009 0.0009 1787.0 0.0009 0.0009 1945.0 0.0009 0.0009 2119.0 0.0009 0.0009 2369.0 0.0009 0.0009 2643.5 0.0009 0.0009 2945.0 0.0009 0.0009 3276.5 0.0009 0.0009 --1.4 -1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.2 -1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.0 -0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.8 -0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.6 -0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.4 -0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.2 0.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.0 0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.2 0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.4 0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.6 0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.8 1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.0 1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.2 1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.4 1.6 132 9.0 0.0009 0.0009 11.0 0.0009 0.0009 13.5 0.0009 0.0009 16.5 0.0009 0.0009 19.5 0.0009 0.0009 22.5 0.0009 0.0009 26.0 0.0009 0.0009 30.0 0.0009 0.0009 34.5 0.0009 0.0009 40.0 0.0009 0.0009 46.0 0.0009 0.0009 52.5 0.0009 0.0009 60.0 0.0009 0.0009 69.0 0.0009 0.0009 79.0 0.0009 0.0009 90.5 0.0009 0.0009 105.5 0.0009 0.0009 123.5 0.0009 0.0009 143.0 0.0009 0.0009 163.5 0.0009 0.0009 185.0 0.0009 0.0009 208.0 0.0009 0.0009 232.5 0.0009 0.0009 258.5 0.0009 0.0009 286.0 0.0009 0.0009 331.0 0.0009 0.0009 396.0 0.0009 0.0009 468.5 0.0009 0.0009 549.5 0.0009 0.0009 639.0 0.0009 0.0009 738.0 0.0009 0.0009 847.5 0.0009 0.0009 968.5 0.0009 0.0009 1102.0 0.0009 0.0009 1249.5 0.0009 0.0009 1412.0 0.0009 0.0009 1590.5 0.0009 0.0009 1787.0 0.0009 0.0009 1945.0 0.0009 0.0009 2119.0 0.0009 0.0009 2369.0 0.0009 0.0009 2643.5 0.0009 0.0009 2945.0 0.0009 0.0009 3276.5 0.0009 0.0009 -1.6 1.8 132 9.0 0.0014 0.0014 11.0 0.0014 0.0014 13.5 0.0014 0.0014 16.5 0.0014 0.0014 19.5 0.0014 0.0014 22.5 0.0014 0.0014 26.0 0.0014 0.0014 30.0 0.0014 0.0014 34.5 0.0014 0.0014 40.0 0.0014 0.0014 46.0 0.0014 0.0014 52.5 0.0014 0.0014 60.0 0.0014 0.0014 69.0 0.0014 0.0014 79.0 0.0014 0.0014 90.5 0.0014 0.0014 105.5 0.0014 0.0014 123.5 0.0014 0.0014 143.0 0.0014 0.0014 163.5 0.0014 0.0014 185.0 0.0014 0.0014 208.0 0.0014 0.0014 232.5 0.0014 0.0014 258.5 0.0014 0.0014 286.0 0.0014 0.0014 331.0 0.0014 0.0014 396.0 0.0014 0.0014 468.5 0.0014 0.0014 549.5 0.0014 0.0014 639.0 0.0014 0.0014 738.0 0.0014 0.0014 847.5 0.0014 0.0014 968.5 0.0014 0.0014 1102.0 0.0014 0.0014 1249.5 0.0014 0.0014 1412.0 0.0014 0.0014 1590.5 0.0014 0.0014 1787.0 0.0014 0.0014 1945.0 0.0014 0.0014 2119.0 0.0014 0.0014 2369.0 0.0014 0.0014 2643.5 0.0014 0.0014 2945.0 0.0014 0.0014 3276.5 0.0014 0.0014 -1.8 2.0 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 -2.0 2.2 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 -2.2 2.4 132 9.0 0.0011 0.0011 11.0 0.0011 0.0011 13.5 0.0011 0.0011 16.5 0.0011 0.0011 19.5 0.0011 0.0011 22.5 0.0011 0.0011 26.0 0.0011 0.0011 30.0 0.0011 0.0011 34.5 0.0011 0.0011 40.0 0.0011 0.0011 46.0 0.0011 0.0011 52.5 0.0011 0.0011 60.0 0.0011 0.0011 69.0 0.0011 0.0011 79.0 0.0011 0.0011 90.5 0.0011 0.0011 105.5 0.0011 0.0011 123.5 0.0011 0.0011 143.0 0.0011 0.0011 163.5 0.0011 0.0011 185.0 0.0011 0.0011 208.0 0.0011 0.0011 232.5 0.0011 0.0011 258.5 0.0011 0.0011 286.0 0.0011 0.0011 331.0 0.0011 0.0011 396.0 0.0011 0.0011 468.5 0.0011 0.0011 549.5 0.0011 0.0011 639.0 0.0011 0.0011 738.0 0.0011 0.0011 847.5 0.0011 0.0011 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0011 0.0011 1412.0 0.0011 0.0011 1590.5 0.0011 0.0011 1787.0 0.0011 0.0011 1945.0 0.0011 0.0011 2119.0 0.0011 0.0011 2369.0 0.0011 0.0011 2643.5 0.0011 0.0011 2945.0 0.0011 0.0011 3276.5 0.0011 0.0011 -2.4 2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.6 2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.8 3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.0 3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.5 4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.0 4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.4 5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -5.0 5.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -[RelativeJEREC2] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --5.0 -4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.4 -4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.0 -3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.5 -3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.0 -2.8 132 9.0 0.0124 0.0124 11.0 0.0124 0.0124 13.5 0.0124 0.0124 16.5 0.0124 0.0124 19.5 0.0124 0.0124 22.5 0.0124 0.0124 26.0 0.0124 0.0124 30.0 0.0124 0.0124 34.5 0.0124 0.0124 40.0 0.0124 0.0124 46.0 0.0124 0.0124 52.5 0.0124 0.0124 60.0 0.0124 0.0124 69.0 0.0124 0.0124 79.0 0.0124 0.0124 90.5 0.0124 0.0124 105.5 0.0124 0.0124 123.5 0.0124 0.0124 143.0 0.0124 0.0124 163.5 0.0124 0.0124 185.0 0.0124 0.0124 208.0 0.0124 0.0124 232.5 0.0124 0.0124 258.5 0.0124 0.0124 286.0 0.0124 0.0124 331.0 0.0124 0.0124 396.0 0.0124 0.0124 468.5 0.0124 0.0124 549.5 0.0124 0.0124 639.0 0.0124 0.0124 738.0 0.0124 0.0124 847.5 0.0124 0.0124 968.5 0.0124 0.0124 1102.0 0.0124 0.0124 1249.5 0.0124 0.0124 1412.0 0.0124 0.0124 1590.5 0.0124 0.0124 1787.0 0.0124 0.0124 1945.0 0.0124 0.0124 2119.0 0.0124 0.0124 2369.0 0.0124 0.0124 2643.5 0.0124 0.0124 2945.0 0.0124 0.0124 3276.5 0.0124 0.0124 --2.8 -2.6 132 9.0 0.0057 0.0057 11.0 0.0057 0.0057 13.5 0.0057 0.0057 16.5 0.0057 0.0057 19.5 0.0057 0.0057 22.5 0.0057 0.0057 26.0 0.0057 0.0057 30.0 0.0057 0.0057 34.5 0.0057 0.0057 40.0 0.0057 0.0057 46.0 0.0057 0.0057 52.5 0.0057 0.0057 60.0 0.0057 0.0057 69.0 0.0057 0.0057 79.0 0.0057 0.0057 90.5 0.0057 0.0057 105.5 0.0057 0.0057 123.5 0.0057 0.0057 143.0 0.0057 0.0057 163.5 0.0057 0.0057 185.0 0.0057 0.0057 208.0 0.0057 0.0057 232.5 0.0057 0.0057 258.5 0.0057 0.0057 286.0 0.0057 0.0057 331.0 0.0057 0.0057 396.0 0.0057 0.0057 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0057 0.0057 738.0 0.0057 0.0057 847.5 0.0057 0.0057 968.5 0.0057 0.0057 1102.0 0.0057 0.0057 1249.5 0.0057 0.0057 1412.0 0.0057 0.0057 1590.5 0.0057 0.0057 1787.0 0.0057 0.0057 1945.0 0.0057 0.0057 2119.0 0.0057 0.0057 2369.0 0.0057 0.0057 2643.5 0.0057 0.0057 2945.0 0.0057 0.0057 3276.5 0.0057 0.0057 --2.6 -2.4 132 9.0 0.0057 0.0057 11.0 0.0057 0.0057 13.5 0.0057 0.0057 16.5 0.0057 0.0057 19.5 0.0057 0.0057 22.5 0.0057 0.0057 26.0 0.0057 0.0057 30.0 0.0057 0.0057 34.5 0.0057 0.0057 40.0 0.0057 0.0057 46.0 0.0057 0.0057 52.5 0.0057 0.0057 60.0 0.0057 0.0057 69.0 0.0057 0.0057 79.0 0.0057 0.0057 90.5 0.0057 0.0057 105.5 0.0057 0.0057 123.5 0.0057 0.0057 143.0 0.0057 0.0057 163.5 0.0057 0.0057 185.0 0.0057 0.0057 208.0 0.0057 0.0057 232.5 0.0057 0.0057 258.5 0.0057 0.0057 286.0 0.0057 0.0057 331.0 0.0057 0.0057 396.0 0.0057 0.0057 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0057 0.0057 738.0 0.0057 0.0057 847.5 0.0057 0.0057 968.5 0.0057 0.0057 1102.0 0.0057 0.0057 1249.5 0.0057 0.0057 1412.0 0.0057 0.0057 1590.5 0.0057 0.0057 1787.0 0.0057 0.0057 1945.0 0.0057 0.0057 2119.0 0.0057 0.0057 2369.0 0.0057 0.0057 2643.5 0.0057 0.0057 2945.0 0.0057 0.0057 3276.5 0.0057 0.0057 --2.4 -2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.2 -2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.0 -1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.8 -1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.6 -1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.4 -1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.2 -1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.0 -0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.8 -0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.6 -0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.4 -0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.2 0.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.0 0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.2 0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.4 0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.6 0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.8 1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.0 1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.2 1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.4 1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.6 1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.8 2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.0 2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.2 2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.4 2.6 132 9.0 0.0057 0.0057 11.0 0.0057 0.0057 13.5 0.0057 0.0057 16.5 0.0057 0.0057 19.5 0.0057 0.0057 22.5 0.0057 0.0057 26.0 0.0057 0.0057 30.0 0.0057 0.0057 34.5 0.0057 0.0057 40.0 0.0057 0.0057 46.0 0.0057 0.0057 52.5 0.0057 0.0057 60.0 0.0057 0.0057 69.0 0.0057 0.0057 79.0 0.0057 0.0057 90.5 0.0057 0.0057 105.5 0.0057 0.0057 123.5 0.0057 0.0057 143.0 0.0057 0.0057 163.5 0.0057 0.0057 185.0 0.0057 0.0057 208.0 0.0057 0.0057 232.5 0.0057 0.0057 258.5 0.0057 0.0057 286.0 0.0057 0.0057 331.0 0.0057 0.0057 396.0 0.0057 0.0057 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0057 0.0057 738.0 0.0057 0.0057 847.5 0.0057 0.0057 968.5 0.0057 0.0057 1102.0 0.0057 0.0057 1249.5 0.0057 0.0057 1412.0 0.0057 0.0057 1590.5 0.0057 0.0057 1787.0 0.0057 0.0057 1945.0 0.0057 0.0057 2119.0 0.0057 0.0057 2369.0 0.0057 0.0057 2643.5 0.0057 0.0057 2945.0 0.0057 0.0057 3276.5 0.0057 0.0057 -2.6 2.8 132 9.0 0.0057 0.0057 11.0 0.0057 0.0057 13.5 0.0057 0.0057 16.5 0.0057 0.0057 19.5 0.0057 0.0057 22.5 0.0057 0.0057 26.0 0.0057 0.0057 30.0 0.0057 0.0057 34.5 0.0057 0.0057 40.0 0.0057 0.0057 46.0 0.0057 0.0057 52.5 0.0057 0.0057 60.0 0.0057 0.0057 69.0 0.0057 0.0057 79.0 0.0057 0.0057 90.5 0.0057 0.0057 105.5 0.0057 0.0057 123.5 0.0057 0.0057 143.0 0.0057 0.0057 163.5 0.0057 0.0057 185.0 0.0057 0.0057 208.0 0.0057 0.0057 232.5 0.0057 0.0057 258.5 0.0057 0.0057 286.0 0.0057 0.0057 331.0 0.0057 0.0057 396.0 0.0057 0.0057 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0057 0.0057 738.0 0.0057 0.0057 847.5 0.0057 0.0057 968.5 0.0057 0.0057 1102.0 0.0057 0.0057 1249.5 0.0057 0.0057 1412.0 0.0057 0.0057 1590.5 0.0057 0.0057 1787.0 0.0057 0.0057 1945.0 0.0057 0.0057 2119.0 0.0057 0.0057 2369.0 0.0057 0.0057 2643.5 0.0057 0.0057 2945.0 0.0057 0.0057 3276.5 0.0057 0.0057 -2.8 3.0 132 9.0 0.0124 0.0124 11.0 0.0124 0.0124 13.5 0.0124 0.0124 16.5 0.0124 0.0124 19.5 0.0124 0.0124 22.5 0.0124 0.0124 26.0 0.0124 0.0124 30.0 0.0124 0.0124 34.5 0.0124 0.0124 40.0 0.0124 0.0124 46.0 0.0124 0.0124 52.5 0.0124 0.0124 60.0 0.0124 0.0124 69.0 0.0124 0.0124 79.0 0.0124 0.0124 90.5 0.0124 0.0124 105.5 0.0124 0.0124 123.5 0.0124 0.0124 143.0 0.0124 0.0124 163.5 0.0124 0.0124 185.0 0.0124 0.0124 208.0 0.0124 0.0124 232.5 0.0124 0.0124 258.5 0.0124 0.0124 286.0 0.0124 0.0124 331.0 0.0124 0.0124 396.0 0.0124 0.0124 468.5 0.0124 0.0124 549.5 0.0124 0.0124 639.0 0.0124 0.0124 738.0 0.0124 0.0124 847.5 0.0124 0.0124 968.5 0.0124 0.0124 1102.0 0.0124 0.0124 1249.5 0.0124 0.0124 1412.0 0.0124 0.0124 1590.5 0.0124 0.0124 1787.0 0.0124 0.0124 1945.0 0.0124 0.0124 2119.0 0.0124 0.0124 2369.0 0.0124 0.0124 2643.5 0.0124 0.0124 2945.0 0.0124 0.0124 3276.5 0.0124 0.0124 -3.0 3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.5 4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.0 4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.4 5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -5.0 5.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -[RelativeJERHF] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0155 0.0155 11.0 0.0155 0.0155 13.5 0.0155 0.0155 16.5 0.0155 0.0155 19.5 0.0155 0.0155 22.5 0.0155 0.0155 26.0 0.0155 0.0155 30.0 0.0155 0.0155 34.5 0.0155 0.0155 40.0 0.0155 0.0155 46.0 0.0155 0.0155 52.5 0.0155 0.0155 60.0 0.0155 0.0155 69.0 0.0155 0.0155 79.0 0.0155 0.0155 90.5 0.0155 0.0155 105.5 0.0155 0.0155 123.5 0.0155 0.0155 143.0 0.0155 0.0155 163.5 0.0155 0.0155 185.0 0.0155 0.0155 208.0 0.0155 0.0155 232.5 0.0155 0.0155 258.5 0.0155 0.0155 286.0 0.0155 0.0155 331.0 0.0155 0.0155 396.0 0.0155 0.0155 468.5 0.0155 0.0155 549.5 0.0155 0.0155 639.0 0.0155 0.0155 738.0 0.0155 0.0155 847.5 0.0155 0.0155 968.5 0.0155 0.0155 1102.0 0.0155 0.0155 1249.5 0.0155 0.0155 1412.0 0.0155 0.0155 1590.5 0.0155 0.0155 1787.0 0.0155 0.0155 1945.0 0.0155 0.0155 2119.0 0.0155 0.0155 2369.0 0.0155 0.0155 2643.5 0.0155 0.0155 2945.0 0.0155 0.0155 3276.5 0.0155 0.0155 --5.0 -4.4 132 9.0 0.0155 0.0155 11.0 0.0155 0.0155 13.5 0.0155 0.0155 16.5 0.0155 0.0155 19.5 0.0155 0.0155 22.5 0.0155 0.0155 26.0 0.0155 0.0155 30.0 0.0155 0.0155 34.5 0.0155 0.0155 40.0 0.0155 0.0155 46.0 0.0155 0.0155 52.5 0.0155 0.0155 60.0 0.0155 0.0155 69.0 0.0155 0.0155 79.0 0.0155 0.0155 90.5 0.0155 0.0155 105.5 0.0155 0.0155 123.5 0.0155 0.0155 143.0 0.0155 0.0155 163.5 0.0155 0.0155 185.0 0.0155 0.0155 208.0 0.0155 0.0155 232.5 0.0155 0.0155 258.5 0.0155 0.0155 286.0 0.0155 0.0155 331.0 0.0155 0.0155 396.0 0.0155 0.0155 468.5 0.0155 0.0155 549.5 0.0155 0.0155 639.0 0.0155 0.0155 738.0 0.0155 0.0155 847.5 0.0155 0.0155 968.5 0.0155 0.0155 1102.0 0.0155 0.0155 1249.5 0.0155 0.0155 1412.0 0.0155 0.0155 1590.5 0.0155 0.0155 1787.0 0.0155 0.0155 1945.0 0.0155 0.0155 2119.0 0.0155 0.0155 2369.0 0.0155 0.0155 2643.5 0.0155 0.0155 2945.0 0.0155 0.0155 3276.5 0.0155 0.0155 --4.4 -4.0 132 9.0 0.0155 0.0155 11.0 0.0155 0.0155 13.5 0.0155 0.0155 16.5 0.0155 0.0155 19.5 0.0155 0.0155 22.5 0.0155 0.0155 26.0 0.0155 0.0155 30.0 0.0155 0.0155 34.5 0.0155 0.0155 40.0 0.0155 0.0155 46.0 0.0155 0.0155 52.5 0.0155 0.0155 60.0 0.0155 0.0155 69.0 0.0155 0.0155 79.0 0.0155 0.0155 90.5 0.0155 0.0155 105.5 0.0155 0.0155 123.5 0.0155 0.0155 143.0 0.0155 0.0155 163.5 0.0155 0.0155 185.0 0.0155 0.0155 208.0 0.0155 0.0155 232.5 0.0155 0.0155 258.5 0.0155 0.0155 286.0 0.0155 0.0155 331.0 0.0155 0.0155 396.0 0.0155 0.0155 468.5 0.0155 0.0155 549.5 0.0155 0.0155 639.0 0.0155 0.0155 738.0 0.0155 0.0155 847.5 0.0155 0.0155 968.5 0.0155 0.0155 1102.0 0.0155 0.0155 1249.5 0.0155 0.0155 1412.0 0.0155 0.0155 1590.5 0.0155 0.0155 1787.0 0.0155 0.0155 1945.0 0.0155 0.0155 2119.0 0.0155 0.0155 2369.0 0.0155 0.0155 2643.5 0.0155 0.0155 2945.0 0.0155 0.0155 3276.5 0.0155 0.0155 --4.0 -3.5 132 9.0 0.0155 0.0155 11.0 0.0155 0.0155 13.5 0.0155 0.0155 16.5 0.0155 0.0155 19.5 0.0155 0.0155 22.5 0.0155 0.0155 26.0 0.0155 0.0155 30.0 0.0155 0.0155 34.5 0.0155 0.0155 40.0 0.0155 0.0155 46.0 0.0155 0.0155 52.5 0.0155 0.0155 60.0 0.0155 0.0155 69.0 0.0155 0.0155 79.0 0.0155 0.0155 90.5 0.0155 0.0155 105.5 0.0155 0.0155 123.5 0.0155 0.0155 143.0 0.0155 0.0155 163.5 0.0155 0.0155 185.0 0.0155 0.0155 208.0 0.0155 0.0155 232.5 0.0155 0.0155 258.5 0.0155 0.0155 286.0 0.0155 0.0155 331.0 0.0155 0.0155 396.0 0.0155 0.0155 468.5 0.0155 0.0155 549.5 0.0155 0.0155 639.0 0.0155 0.0155 738.0 0.0155 0.0155 847.5 0.0155 0.0155 968.5 0.0155 0.0155 1102.0 0.0155 0.0155 1249.5 0.0155 0.0155 1412.0 0.0155 0.0155 1590.5 0.0155 0.0155 1787.0 0.0155 0.0155 1945.0 0.0155 0.0155 2119.0 0.0155 0.0155 2369.0 0.0155 0.0155 2643.5 0.0155 0.0155 2945.0 0.0155 0.0155 3276.5 0.0155 0.0155 --3.5 -3.0 132 9.0 0.0117 0.0117 11.0 0.0117 0.0117 13.5 0.0117 0.0117 16.5 0.0117 0.0117 19.5 0.0117 0.0117 22.5 0.0117 0.0117 26.0 0.0117 0.0117 30.0 0.0117 0.0117 34.5 0.0117 0.0117 40.0 0.0117 0.0117 46.0 0.0117 0.0117 52.5 0.0117 0.0117 60.0 0.0117 0.0117 69.0 0.0117 0.0117 79.0 0.0117 0.0117 90.5 0.0117 0.0117 105.5 0.0117 0.0117 123.5 0.0117 0.0117 143.0 0.0117 0.0117 163.5 0.0117 0.0117 185.0 0.0117 0.0117 208.0 0.0117 0.0117 232.5 0.0117 0.0117 258.5 0.0117 0.0117 286.0 0.0117 0.0117 331.0 0.0117 0.0117 396.0 0.0117 0.0117 468.5 0.0117 0.0117 549.5 0.0117 0.0117 639.0 0.0117 0.0117 738.0 0.0117 0.0117 847.5 0.0117 0.0117 968.5 0.0117 0.0117 1102.0 0.0117 0.0117 1249.5 0.0117 0.0117 1412.0 0.0117 0.0117 1590.5 0.0117 0.0117 1787.0 0.0117 0.0117 1945.0 0.0117 0.0117 2119.0 0.0117 0.0117 2369.0 0.0117 0.0117 2643.5 0.0117 0.0117 2945.0 0.0117 0.0117 3276.5 0.0117 0.0117 --3.0 -2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.8 -2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.6 -2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.4 -2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.2 -2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.0 -1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.8 -1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.6 -1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.4 -1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.2 -1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.0 -0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.8 -0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.6 -0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.4 -0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.2 0.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.0 0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.2 0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.4 0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.6 0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.8 1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.0 1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.2 1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.4 1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.6 1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.8 2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.0 2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.2 2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.4 2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.6 2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.8 3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.0 3.5 132 9.0 0.0117 0.0117 11.0 0.0117 0.0117 13.5 0.0117 0.0117 16.5 0.0117 0.0117 19.5 0.0117 0.0117 22.5 0.0117 0.0117 26.0 0.0117 0.0117 30.0 0.0117 0.0117 34.5 0.0117 0.0117 40.0 0.0117 0.0117 46.0 0.0117 0.0117 52.5 0.0117 0.0117 60.0 0.0117 0.0117 69.0 0.0117 0.0117 79.0 0.0117 0.0117 90.5 0.0117 0.0117 105.5 0.0117 0.0117 123.5 0.0117 0.0117 143.0 0.0117 0.0117 163.5 0.0117 0.0117 185.0 0.0117 0.0117 208.0 0.0117 0.0117 232.5 0.0117 0.0117 258.5 0.0117 0.0117 286.0 0.0117 0.0117 331.0 0.0117 0.0117 396.0 0.0117 0.0117 468.5 0.0117 0.0117 549.5 0.0117 0.0117 639.0 0.0117 0.0117 738.0 0.0117 0.0117 847.5 0.0117 0.0117 968.5 0.0117 0.0117 1102.0 0.0117 0.0117 1249.5 0.0117 0.0117 1412.0 0.0117 0.0117 1590.5 0.0117 0.0117 1787.0 0.0117 0.0117 1945.0 0.0117 0.0117 2119.0 0.0117 0.0117 2369.0 0.0117 0.0117 2643.5 0.0117 0.0117 2945.0 0.0117 0.0117 3276.5 0.0117 0.0117 -3.5 4.0 132 9.0 0.0155 0.0155 11.0 0.0155 0.0155 13.5 0.0155 0.0155 16.5 0.0155 0.0155 19.5 0.0155 0.0155 22.5 0.0155 0.0155 26.0 0.0155 0.0155 30.0 0.0155 0.0155 34.5 0.0155 0.0155 40.0 0.0155 0.0155 46.0 0.0155 0.0155 52.5 0.0155 0.0155 60.0 0.0155 0.0155 69.0 0.0155 0.0155 79.0 0.0155 0.0155 90.5 0.0155 0.0155 105.5 0.0155 0.0155 123.5 0.0155 0.0155 143.0 0.0155 0.0155 163.5 0.0155 0.0155 185.0 0.0155 0.0155 208.0 0.0155 0.0155 232.5 0.0155 0.0155 258.5 0.0155 0.0155 286.0 0.0155 0.0155 331.0 0.0155 0.0155 396.0 0.0155 0.0155 468.5 0.0155 0.0155 549.5 0.0155 0.0155 639.0 0.0155 0.0155 738.0 0.0155 0.0155 847.5 0.0155 0.0155 968.5 0.0155 0.0155 1102.0 0.0155 0.0155 1249.5 0.0155 0.0155 1412.0 0.0155 0.0155 1590.5 0.0155 0.0155 1787.0 0.0155 0.0155 1945.0 0.0155 0.0155 2119.0 0.0155 0.0155 2369.0 0.0155 0.0155 2643.5 0.0155 0.0155 2945.0 0.0155 0.0155 3276.5 0.0155 0.0155 -4.0 4.4 132 9.0 0.0155 0.0155 11.0 0.0155 0.0155 13.5 0.0155 0.0155 16.5 0.0155 0.0155 19.5 0.0155 0.0155 22.5 0.0155 0.0155 26.0 0.0155 0.0155 30.0 0.0155 0.0155 34.5 0.0155 0.0155 40.0 0.0155 0.0155 46.0 0.0155 0.0155 52.5 0.0155 0.0155 60.0 0.0155 0.0155 69.0 0.0155 0.0155 79.0 0.0155 0.0155 90.5 0.0155 0.0155 105.5 0.0155 0.0155 123.5 0.0155 0.0155 143.0 0.0155 0.0155 163.5 0.0155 0.0155 185.0 0.0155 0.0155 208.0 0.0155 0.0155 232.5 0.0155 0.0155 258.5 0.0155 0.0155 286.0 0.0155 0.0155 331.0 0.0155 0.0155 396.0 0.0155 0.0155 468.5 0.0155 0.0155 549.5 0.0155 0.0155 639.0 0.0155 0.0155 738.0 0.0155 0.0155 847.5 0.0155 0.0155 968.5 0.0155 0.0155 1102.0 0.0155 0.0155 1249.5 0.0155 0.0155 1412.0 0.0155 0.0155 1590.5 0.0155 0.0155 1787.0 0.0155 0.0155 1945.0 0.0155 0.0155 2119.0 0.0155 0.0155 2369.0 0.0155 0.0155 2643.5 0.0155 0.0155 2945.0 0.0155 0.0155 3276.5 0.0155 0.0155 -4.4 5.0 132 9.0 0.0155 0.0155 11.0 0.0155 0.0155 13.5 0.0155 0.0155 16.5 0.0155 0.0155 19.5 0.0155 0.0155 22.5 0.0155 0.0155 26.0 0.0155 0.0155 30.0 0.0155 0.0155 34.5 0.0155 0.0155 40.0 0.0155 0.0155 46.0 0.0155 0.0155 52.5 0.0155 0.0155 60.0 0.0155 0.0155 69.0 0.0155 0.0155 79.0 0.0155 0.0155 90.5 0.0155 0.0155 105.5 0.0155 0.0155 123.5 0.0155 0.0155 143.0 0.0155 0.0155 163.5 0.0155 0.0155 185.0 0.0155 0.0155 208.0 0.0155 0.0155 232.5 0.0155 0.0155 258.5 0.0155 0.0155 286.0 0.0155 0.0155 331.0 0.0155 0.0155 396.0 0.0155 0.0155 468.5 0.0155 0.0155 549.5 0.0155 0.0155 639.0 0.0155 0.0155 738.0 0.0155 0.0155 847.5 0.0155 0.0155 968.5 0.0155 0.0155 1102.0 0.0155 0.0155 1249.5 0.0155 0.0155 1412.0 0.0155 0.0155 1590.5 0.0155 0.0155 1787.0 0.0155 0.0155 1945.0 0.0155 0.0155 2119.0 0.0155 0.0155 2369.0 0.0155 0.0155 2643.5 0.0155 0.0155 2945.0 0.0155 0.0155 3276.5 0.0155 0.0155 -5.0 5.4 132 9.0 0.0155 0.0155 11.0 0.0155 0.0155 13.5 0.0155 0.0155 16.5 0.0155 0.0155 19.5 0.0155 0.0155 22.5 0.0155 0.0155 26.0 0.0155 0.0155 30.0 0.0155 0.0155 34.5 0.0155 0.0155 40.0 0.0155 0.0155 46.0 0.0155 0.0155 52.5 0.0155 0.0155 60.0 0.0155 0.0155 69.0 0.0155 0.0155 79.0 0.0155 0.0155 90.5 0.0155 0.0155 105.5 0.0155 0.0155 123.5 0.0155 0.0155 143.0 0.0155 0.0155 163.5 0.0155 0.0155 185.0 0.0155 0.0155 208.0 0.0155 0.0155 232.5 0.0155 0.0155 258.5 0.0155 0.0155 286.0 0.0155 0.0155 331.0 0.0155 0.0155 396.0 0.0155 0.0155 468.5 0.0155 0.0155 549.5 0.0155 0.0155 639.0 0.0155 0.0155 738.0 0.0155 0.0155 847.5 0.0155 0.0155 968.5 0.0155 0.0155 1102.0 0.0155 0.0155 1249.5 0.0155 0.0155 1412.0 0.0155 0.0155 1590.5 0.0155 0.0155 1787.0 0.0155 0.0155 1945.0 0.0155 0.0155 2119.0 0.0155 0.0155 2369.0 0.0155 0.0155 2643.5 0.0155 0.0155 2945.0 0.0155 0.0155 3276.5 0.0155 0.0155 -[RelativePtBB] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --5.0 -4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.4 -4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.0 -3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.5 -3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.0 -2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.8 -2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.6 -2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.4 -2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.2 -2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.0 -1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.8 -1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.6 -1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.4 -1.2 132 9.0 0.0006 0.0006 11.0 0.0006 0.0006 13.5 0.0006 0.0006 16.5 0.0006 0.0006 19.5 0.0006 0.0006 22.5 0.0006 0.0006 26.0 0.0006 0.0006 30.0 0.0006 0.0006 34.5 0.0006 0.0006 40.0 0.0006 0.0006 46.0 0.0006 0.0006 52.5 0.0006 0.0006 60.0 0.0006 0.0006 69.0 0.0005 0.0005 79.0 0.0005 0.0005 90.5 0.0005 0.0005 105.5 0.0004 0.0004 123.5 0.0004 0.0004 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0004 0.0004 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1945.0 0.0004 0.0004 2119.0 0.0004 0.0004 2369.0 0.0004 0.0004 2643.5 0.0004 0.0004 2945.0 0.0004 0.0004 3276.5 0.0004 0.0004 --1.2 -1.0 132 9.0 0.0047 0.0047 11.0 0.0047 0.0047 13.5 0.0047 0.0047 16.5 0.0047 0.0047 19.5 0.0047 0.0047 22.5 0.0047 0.0047 26.0 0.0047 0.0047 30.0 0.0047 0.0047 34.5 0.0047 0.0047 40.0 0.0047 0.0047 46.0 0.0047 0.0047 52.5 0.0046 0.0046 60.0 0.0043 0.0043 69.0 0.0039 0.0039 79.0 0.0036 0.0036 90.5 0.0033 0.0033 105.5 0.0030 0.0030 123.5 0.0026 0.0026 143.0 0.0023 0.0023 163.5 0.0020 0.0020 185.0 0.0017 0.0017 208.0 0.0014 0.0014 232.5 0.0012 0.0012 258.5 0.0009 0.0009 286.0 0.0007 0.0007 331.0 0.0004 0.0004 396.0 0.0001 0.0001 468.5 0.0004 0.0004 549.5 0.0008 0.0008 639.0 0.0011 0.0011 738.0 0.0015 0.0015 847.5 0.0018 0.0018 968.5 0.0021 0.0021 1102.0 0.0024 0.0024 1249.5 0.0027 0.0027 1412.0 0.0029 0.0029 1590.5 0.0030 0.0030 1787.0 0.0030 0.0030 1945.0 0.0030 0.0030 2119.0 0.0030 0.0030 2369.0 0.0030 0.0030 2643.5 0.0030 0.0030 2945.0 0.0030 0.0030 3276.5 0.0030 0.0030 --1.0 -0.8 132 9.0 0.0085 0.0085 11.0 0.0085 0.0085 13.5 0.0085 0.0085 16.5 0.0085 0.0085 19.5 0.0085 0.0085 22.5 0.0085 0.0085 26.0 0.0085 0.0085 30.0 0.0085 0.0085 34.5 0.0085 0.0085 40.0 0.0085 0.0085 46.0 0.0085 0.0085 52.5 0.0084 0.0084 60.0 0.0078 0.0078 69.0 0.0072 0.0072 79.0 0.0066 0.0066 90.5 0.0061 0.0061 105.5 0.0054 0.0054 123.5 0.0048 0.0048 143.0 0.0042 0.0042 163.5 0.0036 0.0036 185.0 0.0031 0.0031 208.0 0.0026 0.0026 232.5 0.0022 0.0022 258.5 0.0017 0.0017 286.0 0.0013 0.0013 331.0 0.0007 0.0007 396.0 0.0000 0.0000 468.5 0.0007 0.0007 549.5 0.0014 0.0014 639.0 0.0020 0.0020 738.0 0.0026 0.0026 847.5 0.0032 0.0032 968.5 0.0037 0.0037 1102.0 0.0042 0.0042 1249.5 0.0047 0.0047 1412.0 0.0052 0.0052 1590.5 0.0054 0.0054 1787.0 0.0054 0.0054 1945.0 0.0054 0.0054 2119.0 0.0054 0.0054 2369.0 0.0054 0.0054 2643.5 0.0054 0.0054 2945.0 0.0054 0.0054 3276.5 0.0054 0.0054 --0.8 -0.6 132 9.0 0.0104 0.0104 11.0 0.0104 0.0104 13.5 0.0104 0.0104 16.5 0.0104 0.0104 19.5 0.0104 0.0104 22.5 0.0104 0.0104 26.0 0.0104 0.0104 30.0 0.0104 0.0104 34.5 0.0104 0.0104 40.0 0.0104 0.0104 46.0 0.0104 0.0104 52.5 0.0102 0.0102 60.0 0.0095 0.0095 69.0 0.0088 0.0088 79.0 0.0082 0.0082 90.5 0.0075 0.0075 105.5 0.0067 0.0067 123.5 0.0059 0.0059 143.0 0.0052 0.0052 163.5 0.0046 0.0046 185.0 0.0039 0.0039 208.0 0.0034 0.0034 232.5 0.0028 0.0028 258.5 0.0023 0.0023 286.0 0.0018 0.0018 331.0 0.0011 0.0011 396.0 0.0002 0.0002 468.5 0.0006 0.0006 549.5 0.0014 0.0014 639.0 0.0021 0.0021 738.0 0.0028 0.0028 847.5 0.0035 0.0035 968.5 0.0042 0.0042 1102.0 0.0048 0.0048 1249.5 0.0054 0.0054 1412.0 0.0060 0.0060 1590.5 0.0062 0.0062 1787.0 0.0062 0.0062 1945.0 0.0062 0.0062 2119.0 0.0062 0.0062 2369.0 0.0062 0.0062 2643.5 0.0062 0.0062 2945.0 0.0062 0.0062 3276.5 0.0062 0.0062 --0.6 -0.4 132 9.0 0.0071 0.0071 11.0 0.0071 0.0071 13.5 0.0071 0.0071 16.5 0.0071 0.0071 19.5 0.0071 0.0071 22.5 0.0071 0.0071 26.0 0.0071 0.0071 30.0 0.0071 0.0071 34.5 0.0071 0.0071 40.0 0.0071 0.0071 46.0 0.0071 0.0071 52.5 0.0069 0.0069 60.0 0.0065 0.0065 69.0 0.0060 0.0060 79.0 0.0056 0.0056 90.5 0.0051 0.0051 105.5 0.0046 0.0046 123.5 0.0041 0.0041 143.0 0.0036 0.0036 163.5 0.0032 0.0032 185.0 0.0028 0.0028 208.0 0.0024 0.0024 232.5 0.0020 0.0020 258.5 0.0017 0.0017 286.0 0.0013 0.0013 331.0 0.0008 0.0008 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0008 0.0008 639.0 0.0013 0.0013 738.0 0.0018 0.0018 847.5 0.0022 0.0022 968.5 0.0027 0.0027 1102.0 0.0031 0.0031 1249.5 0.0035 0.0035 1412.0 0.0039 0.0039 1590.5 0.0040 0.0040 1787.0 0.0040 0.0040 1945.0 0.0040 0.0040 2119.0 0.0040 0.0040 2369.0 0.0040 0.0040 2643.5 0.0040 0.0040 2945.0 0.0040 0.0040 3276.5 0.0040 0.0040 --0.4 -0.2 132 9.0 0.0094 0.0094 11.0 0.0094 0.0094 13.5 0.0094 0.0094 16.5 0.0094 0.0094 19.5 0.0094 0.0094 22.5 0.0094 0.0094 26.0 0.0094 0.0094 30.0 0.0094 0.0094 34.5 0.0094 0.0094 40.0 0.0094 0.0094 46.0 0.0094 0.0094 52.5 0.0092 0.0092 60.0 0.0086 0.0086 69.0 0.0080 0.0080 79.0 0.0074 0.0074 90.5 0.0068 0.0068 105.5 0.0061 0.0061 123.5 0.0054 0.0054 143.0 0.0048 0.0048 163.5 0.0042 0.0042 185.0 0.0037 0.0037 208.0 0.0031 0.0031 232.5 0.0027 0.0027 258.5 0.0022 0.0022 286.0 0.0017 0.0017 331.0 0.0011 0.0011 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0011 0.0011 639.0 0.0018 0.0018 738.0 0.0024 0.0024 847.5 0.0030 0.0030 968.5 0.0036 0.0036 1102.0 0.0041 0.0041 1249.5 0.0047 0.0047 1412.0 0.0052 0.0052 1590.5 0.0054 0.0054 1787.0 0.0054 0.0054 1945.0 0.0054 0.0054 2119.0 0.0054 0.0054 2369.0 0.0054 0.0054 2643.5 0.0054 0.0054 2945.0 0.0054 0.0054 3276.5 0.0054 0.0054 --0.2 0.0 132 9.0 0.0038 0.0038 11.0 0.0038 0.0038 13.5 0.0038 0.0038 16.5 0.0038 0.0038 19.5 0.0038 0.0038 22.5 0.0038 0.0038 26.0 0.0038 0.0038 30.0 0.0038 0.0038 34.5 0.0038 0.0038 40.0 0.0038 0.0038 46.0 0.0038 0.0038 52.5 0.0037 0.0037 60.0 0.0035 0.0035 69.0 0.0032 0.0032 79.0 0.0030 0.0030 90.5 0.0027 0.0027 105.5 0.0025 0.0025 123.5 0.0022 0.0022 143.0 0.0019 0.0019 163.5 0.0017 0.0017 185.0 0.0015 0.0015 208.0 0.0013 0.0013 232.5 0.0011 0.0011 258.5 0.0009 0.0009 286.0 0.0007 0.0007 331.0 0.0005 0.0005 396.0 0.0001 0.0001 468.5 0.0002 0.0002 549.5 0.0004 0.0004 639.0 0.0007 0.0007 738.0 0.0010 0.0010 847.5 0.0012 0.0012 968.5 0.0014 0.0014 1102.0 0.0017 0.0017 1249.5 0.0019 0.0019 1412.0 0.0021 0.0021 1590.5 0.0022 0.0022 1787.0 0.0022 0.0022 1945.0 0.0022 0.0022 2119.0 0.0022 0.0022 2369.0 0.0022 0.0022 2643.5 0.0022 0.0022 2945.0 0.0022 0.0022 3276.5 0.0022 0.0022 -0.0 0.2 132 9.0 0.0038 0.0038 11.0 0.0038 0.0038 13.5 0.0038 0.0038 16.5 0.0038 0.0038 19.5 0.0038 0.0038 22.5 0.0038 0.0038 26.0 0.0038 0.0038 30.0 0.0038 0.0038 34.5 0.0038 0.0038 40.0 0.0038 0.0038 46.0 0.0038 0.0038 52.5 0.0037 0.0037 60.0 0.0035 0.0035 69.0 0.0032 0.0032 79.0 0.0030 0.0030 90.5 0.0027 0.0027 105.5 0.0025 0.0025 123.5 0.0022 0.0022 143.0 0.0019 0.0019 163.5 0.0017 0.0017 185.0 0.0015 0.0015 208.0 0.0013 0.0013 232.5 0.0011 0.0011 258.5 0.0009 0.0009 286.0 0.0007 0.0007 331.0 0.0005 0.0005 396.0 0.0001 0.0001 468.5 0.0002 0.0002 549.5 0.0004 0.0004 639.0 0.0007 0.0007 738.0 0.0010 0.0010 847.5 0.0012 0.0012 968.5 0.0014 0.0014 1102.0 0.0017 0.0017 1249.5 0.0019 0.0019 1412.0 0.0021 0.0021 1590.5 0.0022 0.0022 1787.0 0.0022 0.0022 1945.0 0.0022 0.0022 2119.0 0.0022 0.0022 2369.0 0.0022 0.0022 2643.5 0.0022 0.0022 2945.0 0.0022 0.0022 3276.5 0.0022 0.0022 -0.2 0.4 132 9.0 0.0094 0.0094 11.0 0.0094 0.0094 13.5 0.0094 0.0094 16.5 0.0094 0.0094 19.5 0.0094 0.0094 22.5 0.0094 0.0094 26.0 0.0094 0.0094 30.0 0.0094 0.0094 34.5 0.0094 0.0094 40.0 0.0094 0.0094 46.0 0.0094 0.0094 52.5 0.0092 0.0092 60.0 0.0086 0.0086 69.0 0.0080 0.0080 79.0 0.0074 0.0074 90.5 0.0068 0.0068 105.5 0.0061 0.0061 123.5 0.0054 0.0054 143.0 0.0048 0.0048 163.5 0.0042 0.0042 185.0 0.0037 0.0037 208.0 0.0031 0.0031 232.5 0.0027 0.0027 258.5 0.0022 0.0022 286.0 0.0017 0.0017 331.0 0.0011 0.0011 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0011 0.0011 639.0 0.0018 0.0018 738.0 0.0024 0.0024 847.5 0.0030 0.0030 968.5 0.0036 0.0036 1102.0 0.0041 0.0041 1249.5 0.0047 0.0047 1412.0 0.0052 0.0052 1590.5 0.0054 0.0054 1787.0 0.0054 0.0054 1945.0 0.0054 0.0054 2119.0 0.0054 0.0054 2369.0 0.0054 0.0054 2643.5 0.0054 0.0054 2945.0 0.0054 0.0054 3276.5 0.0054 0.0054 -0.4 0.6 132 9.0 0.0071 0.0071 11.0 0.0071 0.0071 13.5 0.0071 0.0071 16.5 0.0071 0.0071 19.5 0.0071 0.0071 22.5 0.0071 0.0071 26.0 0.0071 0.0071 30.0 0.0071 0.0071 34.5 0.0071 0.0071 40.0 0.0071 0.0071 46.0 0.0071 0.0071 52.5 0.0069 0.0069 60.0 0.0065 0.0065 69.0 0.0060 0.0060 79.0 0.0056 0.0056 90.5 0.0051 0.0051 105.5 0.0046 0.0046 123.5 0.0041 0.0041 143.0 0.0036 0.0036 163.5 0.0032 0.0032 185.0 0.0028 0.0028 208.0 0.0024 0.0024 232.5 0.0020 0.0020 258.5 0.0017 0.0017 286.0 0.0013 0.0013 331.0 0.0008 0.0008 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0008 0.0008 639.0 0.0013 0.0013 738.0 0.0018 0.0018 847.5 0.0022 0.0022 968.5 0.0027 0.0027 1102.0 0.0031 0.0031 1249.5 0.0035 0.0035 1412.0 0.0039 0.0039 1590.5 0.0040 0.0040 1787.0 0.0040 0.0040 1945.0 0.0040 0.0040 2119.0 0.0040 0.0040 2369.0 0.0040 0.0040 2643.5 0.0040 0.0040 2945.0 0.0040 0.0040 3276.5 0.0040 0.0040 -0.6 0.8 132 9.0 0.0104 0.0104 11.0 0.0104 0.0104 13.5 0.0104 0.0104 16.5 0.0104 0.0104 19.5 0.0104 0.0104 22.5 0.0104 0.0104 26.0 0.0104 0.0104 30.0 0.0104 0.0104 34.5 0.0104 0.0104 40.0 0.0104 0.0104 46.0 0.0104 0.0104 52.5 0.0102 0.0102 60.0 0.0095 0.0095 69.0 0.0088 0.0088 79.0 0.0082 0.0082 90.5 0.0075 0.0075 105.5 0.0067 0.0067 123.5 0.0059 0.0059 143.0 0.0052 0.0052 163.5 0.0046 0.0046 185.0 0.0039 0.0039 208.0 0.0034 0.0034 232.5 0.0028 0.0028 258.5 0.0023 0.0023 286.0 0.0018 0.0018 331.0 0.0011 0.0011 396.0 0.0002 0.0002 468.5 0.0006 0.0006 549.5 0.0014 0.0014 639.0 0.0021 0.0021 738.0 0.0028 0.0028 847.5 0.0035 0.0035 968.5 0.0042 0.0042 1102.0 0.0048 0.0048 1249.5 0.0054 0.0054 1412.0 0.0060 0.0060 1590.5 0.0062 0.0062 1787.0 0.0062 0.0062 1945.0 0.0062 0.0062 2119.0 0.0062 0.0062 2369.0 0.0062 0.0062 2643.5 0.0062 0.0062 2945.0 0.0062 0.0062 3276.5 0.0062 0.0062 -0.8 1.0 132 9.0 0.0085 0.0085 11.0 0.0085 0.0085 13.5 0.0085 0.0085 16.5 0.0085 0.0085 19.5 0.0085 0.0085 22.5 0.0085 0.0085 26.0 0.0085 0.0085 30.0 0.0085 0.0085 34.5 0.0085 0.0085 40.0 0.0085 0.0085 46.0 0.0085 0.0085 52.5 0.0084 0.0084 60.0 0.0078 0.0078 69.0 0.0072 0.0072 79.0 0.0066 0.0066 90.5 0.0061 0.0061 105.5 0.0054 0.0054 123.5 0.0048 0.0048 143.0 0.0042 0.0042 163.5 0.0036 0.0036 185.0 0.0031 0.0031 208.0 0.0026 0.0026 232.5 0.0022 0.0022 258.5 0.0017 0.0017 286.0 0.0013 0.0013 331.0 0.0007 0.0007 396.0 0.0000 0.0000 468.5 0.0007 0.0007 549.5 0.0014 0.0014 639.0 0.0020 0.0020 738.0 0.0026 0.0026 847.5 0.0032 0.0032 968.5 0.0037 0.0037 1102.0 0.0042 0.0042 1249.5 0.0047 0.0047 1412.0 0.0052 0.0052 1590.5 0.0054 0.0054 1787.0 0.0054 0.0054 1945.0 0.0054 0.0054 2119.0 0.0054 0.0054 2369.0 0.0054 0.0054 2643.5 0.0054 0.0054 2945.0 0.0054 0.0054 3276.5 0.0054 0.0054 -1.0 1.2 132 9.0 0.0047 0.0047 11.0 0.0047 0.0047 13.5 0.0047 0.0047 16.5 0.0047 0.0047 19.5 0.0047 0.0047 22.5 0.0047 0.0047 26.0 0.0047 0.0047 30.0 0.0047 0.0047 34.5 0.0047 0.0047 40.0 0.0047 0.0047 46.0 0.0047 0.0047 52.5 0.0046 0.0046 60.0 0.0043 0.0043 69.0 0.0039 0.0039 79.0 0.0036 0.0036 90.5 0.0033 0.0033 105.5 0.0030 0.0030 123.5 0.0026 0.0026 143.0 0.0023 0.0023 163.5 0.0020 0.0020 185.0 0.0017 0.0017 208.0 0.0014 0.0014 232.5 0.0012 0.0012 258.5 0.0009 0.0009 286.0 0.0007 0.0007 331.0 0.0004 0.0004 396.0 0.0001 0.0001 468.5 0.0004 0.0004 549.5 0.0008 0.0008 639.0 0.0011 0.0011 738.0 0.0015 0.0015 847.5 0.0018 0.0018 968.5 0.0021 0.0021 1102.0 0.0024 0.0024 1249.5 0.0027 0.0027 1412.0 0.0029 0.0029 1590.5 0.0030 0.0030 1787.0 0.0030 0.0030 1945.0 0.0030 0.0030 2119.0 0.0030 0.0030 2369.0 0.0030 0.0030 2643.5 0.0030 0.0030 2945.0 0.0030 0.0030 3276.5 0.0030 0.0030 -1.2 1.4 132 9.0 0.0006 0.0006 11.0 0.0006 0.0006 13.5 0.0006 0.0006 16.5 0.0006 0.0006 19.5 0.0006 0.0006 22.5 0.0006 0.0006 26.0 0.0006 0.0006 30.0 0.0006 0.0006 34.5 0.0006 0.0006 40.0 0.0006 0.0006 46.0 0.0006 0.0006 52.5 0.0006 0.0006 60.0 0.0006 0.0006 69.0 0.0005 0.0005 79.0 0.0005 0.0005 90.5 0.0005 0.0005 105.5 0.0004 0.0004 123.5 0.0004 0.0004 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0004 0.0004 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1945.0 0.0004 0.0004 2119.0 0.0004 0.0004 2369.0 0.0004 0.0004 2643.5 0.0004 0.0004 2945.0 0.0004 0.0004 3276.5 0.0004 0.0004 -1.4 1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.6 1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.8 2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.0 2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.2 2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.4 2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.6 2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.8 3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.0 3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.5 4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.0 4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.4 5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -5.0 5.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -[RelativePtEC1] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --5.0 -4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.4 -4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.0 -3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.5 -3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.0 -2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.8 -2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.6 -2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.4 -2.2 132 9.0 -0.0089 -0.0089 11.0 -0.0089 -0.0089 13.5 -0.0089 -0.0089 16.5 -0.0089 -0.0089 19.5 -0.0089 -0.0089 22.5 -0.0089 -0.0089 26.0 -0.0089 -0.0089 30.0 -0.0089 -0.0089 34.5 -0.0089 -0.0089 40.0 -0.0089 -0.0089 46.0 -0.0089 -0.0089 52.5 -0.0086 -0.0086 60.0 -0.0079 -0.0079 69.0 -0.0072 -0.0072 79.0 -0.0064 -0.0064 90.5 -0.0057 -0.0057 105.5 -0.0049 -0.0049 123.5 -0.0040 -0.0040 143.0 -0.0032 -0.0032 163.5 -0.0025 -0.0025 185.0 -0.0018 -0.0018 208.0 -0.0011 -0.0011 232.5 -0.0005 -0.0005 258.5 0.0001 0.0001 286.0 0.0006 0.0006 331.0 0.0014 0.0014 396.0 0.0025 0.0025 468.5 0.0034 0.0034 549.5 0.0043 0.0043 639.0 0.0047 0.0047 738.0 0.0047 0.0047 847.5 0.0047 0.0047 968.5 0.0047 0.0047 1102.0 0.0047 0.0047 1249.5 0.0047 0.0047 1412.0 0.0047 0.0047 1590.5 0.0047 0.0047 1787.0 0.0047 0.0047 1945.0 0.0047 0.0047 2119.0 0.0047 0.0047 2369.0 0.0047 0.0047 2643.5 0.0047 0.0047 2945.0 0.0047 0.0047 3276.5 0.0047 0.0047 --2.2 -2.0 132 9.0 -0.0090 -0.0090 11.0 -0.0090 -0.0090 13.5 -0.0090 -0.0090 16.5 -0.0090 -0.0090 19.5 -0.0090 -0.0090 22.5 -0.0090 -0.0090 26.0 -0.0090 -0.0090 30.0 -0.0090 -0.0090 34.5 -0.0090 -0.0090 40.0 -0.0090 -0.0090 46.0 -0.0090 -0.0090 52.5 -0.0087 -0.0087 60.0 -0.0080 -0.0080 69.0 -0.0073 -0.0073 79.0 -0.0066 -0.0066 90.5 -0.0059 -0.0059 105.5 -0.0051 -0.0051 123.5 -0.0042 -0.0042 143.0 -0.0035 -0.0035 163.5 -0.0028 -0.0028 185.0 -0.0021 -0.0021 208.0 -0.0015 -0.0015 232.5 -0.0009 -0.0009 258.5 -0.0003 -0.0003 286.0 0.0002 0.0002 331.0 0.0010 0.0010 396.0 0.0020 0.0020 468.5 0.0029 0.0029 549.5 0.0038 0.0038 639.0 0.0046 0.0046 738.0 0.0054 0.0054 847.5 0.0058 0.0058 968.5 0.0058 0.0058 1102.0 0.0058 0.0058 1249.5 0.0058 0.0058 1412.0 0.0058 0.0058 1590.5 0.0058 0.0058 1787.0 0.0058 0.0058 1945.0 0.0058 0.0058 2119.0 0.0058 0.0058 2369.0 0.0058 0.0058 2643.5 0.0058 0.0058 2945.0 0.0058 0.0058 3276.5 0.0058 0.0058 --2.0 -1.8 132 9.0 -0.0054 -0.0054 11.0 -0.0054 -0.0054 13.5 -0.0054 -0.0054 16.5 -0.0054 -0.0054 19.5 -0.0054 -0.0054 22.5 -0.0054 -0.0054 26.0 -0.0054 -0.0054 30.0 -0.0054 -0.0054 34.5 -0.0054 -0.0054 40.0 -0.0054 -0.0054 46.0 -0.0054 -0.0054 52.5 -0.0053 -0.0053 60.0 -0.0049 -0.0049 69.0 -0.0045 -0.0045 79.0 -0.0041 -0.0041 90.5 -0.0037 -0.0037 105.5 -0.0032 -0.0032 123.5 -0.0027 -0.0027 143.0 -0.0023 -0.0023 163.5 -0.0019 -0.0019 185.0 -0.0015 -0.0015 208.0 -0.0012 -0.0012 232.5 -0.0009 -0.0009 258.5 -0.0006 -0.0006 286.0 -0.0003 -0.0003 331.0 0.0002 0.0002 396.0 0.0007 0.0007 468.5 0.0012 0.0012 549.5 0.0017 0.0017 639.0 0.0022 0.0022 738.0 0.0026 0.0026 847.5 0.0028 0.0028 968.5 0.0028 0.0028 1102.0 0.0028 0.0028 1249.5 0.0028 0.0028 1412.0 0.0028 0.0028 1590.5 0.0028 0.0028 1787.0 0.0028 0.0028 1945.0 0.0028 0.0028 2119.0 0.0028 0.0028 2369.0 0.0028 0.0028 2643.5 0.0028 0.0028 2945.0 0.0028 0.0028 3276.5 0.0028 0.0028 --1.8 -1.6 132 9.0 -0.0071 -0.0071 11.0 -0.0071 -0.0071 13.5 -0.0071 -0.0071 16.5 -0.0071 -0.0071 19.5 -0.0071 -0.0071 22.5 -0.0071 -0.0071 26.0 -0.0071 -0.0071 30.0 -0.0071 -0.0071 34.5 -0.0071 -0.0071 40.0 -0.0071 -0.0071 46.0 -0.0071 -0.0071 52.5 -0.0069 -0.0069 60.0 -0.0064 -0.0064 69.0 -0.0059 -0.0059 79.0 -0.0054 -0.0054 90.5 -0.0049 -0.0049 105.5 -0.0043 -0.0043 123.5 -0.0037 -0.0037 143.0 -0.0031 -0.0031 163.5 -0.0026 -0.0026 185.0 -0.0022 -0.0022 208.0 -0.0017 -0.0017 232.5 -0.0013 -0.0013 258.5 -0.0009 -0.0009 286.0 -0.0005 -0.0005 331.0 0.0001 0.0001 396.0 0.0008 0.0008 468.5 0.0014 0.0014 549.5 0.0020 0.0020 639.0 0.0026 0.0026 738.0 0.0032 0.0032 847.5 0.0037 0.0037 968.5 0.0042 0.0042 1102.0 0.0047 0.0047 1249.5 0.0047 0.0047 1412.0 0.0047 0.0047 1590.5 0.0047 0.0047 1787.0 0.0047 0.0047 1945.0 0.0047 0.0047 2119.0 0.0047 0.0047 2369.0 0.0047 0.0047 2643.5 0.0047 0.0047 2945.0 0.0047 0.0047 3276.5 0.0047 0.0047 --1.6 -1.4 132 9.0 -0.0040 -0.0040 11.0 -0.0040 -0.0040 13.5 -0.0040 -0.0040 16.5 -0.0040 -0.0040 19.5 -0.0040 -0.0040 22.5 -0.0040 -0.0040 26.0 -0.0040 -0.0040 30.0 -0.0040 -0.0040 34.5 -0.0040 -0.0040 40.0 -0.0040 -0.0040 46.0 -0.0040 -0.0040 52.5 -0.0039 -0.0039 60.0 -0.0037 -0.0037 69.0 -0.0034 -0.0034 79.0 -0.0031 -0.0031 90.5 -0.0028 -0.0028 105.5 -0.0025 -0.0025 123.5 -0.0022 -0.0022 143.0 -0.0018 -0.0018 163.5 -0.0016 -0.0016 185.0 -0.0013 -0.0013 208.0 -0.0011 -0.0011 232.5 -0.0008 -0.0008 258.5 -0.0006 -0.0006 286.0 -0.0004 -0.0004 331.0 -0.0001 -0.0001 396.0 0.0003 0.0003 468.5 0.0007 0.0007 549.5 0.0010 0.0010 639.0 0.0013 0.0013 738.0 0.0016 0.0016 847.5 0.0019 0.0019 968.5 0.0022 0.0022 1102.0 0.0024 0.0024 1249.5 0.0024 0.0024 1412.0 0.0024 0.0024 1590.5 0.0024 0.0024 1787.0 0.0024 0.0024 1945.0 0.0024 0.0024 2119.0 0.0024 0.0024 2369.0 0.0024 0.0024 2643.5 0.0024 0.0024 2945.0 0.0024 0.0024 3276.5 0.0024 0.0024 --1.4 -1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.2 -1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.0 -0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.8 -0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.6 -0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.4 -0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.2 0.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.0 0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.2 0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.4 0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.6 0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.8 1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.0 1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.2 1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.4 1.6 132 9.0 -0.0040 -0.0040 11.0 -0.0040 -0.0040 13.5 -0.0040 -0.0040 16.5 -0.0040 -0.0040 19.5 -0.0040 -0.0040 22.5 -0.0040 -0.0040 26.0 -0.0040 -0.0040 30.0 -0.0040 -0.0040 34.5 -0.0040 -0.0040 40.0 -0.0040 -0.0040 46.0 -0.0040 -0.0040 52.5 -0.0039 -0.0039 60.0 -0.0037 -0.0037 69.0 -0.0034 -0.0034 79.0 -0.0031 -0.0031 90.5 -0.0028 -0.0028 105.5 -0.0025 -0.0025 123.5 -0.0022 -0.0022 143.0 -0.0018 -0.0018 163.5 -0.0016 -0.0016 185.0 -0.0013 -0.0013 208.0 -0.0011 -0.0011 232.5 -0.0008 -0.0008 258.5 -0.0006 -0.0006 286.0 -0.0004 -0.0004 331.0 -0.0001 -0.0001 396.0 0.0003 0.0003 468.5 0.0007 0.0007 549.5 0.0010 0.0010 639.0 0.0013 0.0013 738.0 0.0016 0.0016 847.5 0.0019 0.0019 968.5 0.0022 0.0022 1102.0 0.0024 0.0024 1249.5 0.0024 0.0024 1412.0 0.0024 0.0024 1590.5 0.0024 0.0024 1787.0 0.0024 0.0024 1945.0 0.0024 0.0024 2119.0 0.0024 0.0024 2369.0 0.0024 0.0024 2643.5 0.0024 0.0024 2945.0 0.0024 0.0024 3276.5 0.0024 0.0024 -1.6 1.8 132 9.0 -0.0071 -0.0071 11.0 -0.0071 -0.0071 13.5 -0.0071 -0.0071 16.5 -0.0071 -0.0071 19.5 -0.0071 -0.0071 22.5 -0.0071 -0.0071 26.0 -0.0071 -0.0071 30.0 -0.0071 -0.0071 34.5 -0.0071 -0.0071 40.0 -0.0071 -0.0071 46.0 -0.0071 -0.0071 52.5 -0.0069 -0.0069 60.0 -0.0064 -0.0064 69.0 -0.0059 -0.0059 79.0 -0.0054 -0.0054 90.5 -0.0049 -0.0049 105.5 -0.0043 -0.0043 123.5 -0.0037 -0.0037 143.0 -0.0031 -0.0031 163.5 -0.0026 -0.0026 185.0 -0.0022 -0.0022 208.0 -0.0017 -0.0017 232.5 -0.0013 -0.0013 258.5 -0.0009 -0.0009 286.0 -0.0005 -0.0005 331.0 0.0001 0.0001 396.0 0.0008 0.0008 468.5 0.0014 0.0014 549.5 0.0020 0.0020 639.0 0.0026 0.0026 738.0 0.0032 0.0032 847.5 0.0037 0.0037 968.5 0.0042 0.0042 1102.0 0.0047 0.0047 1249.5 0.0047 0.0047 1412.0 0.0047 0.0047 1590.5 0.0047 0.0047 1787.0 0.0047 0.0047 1945.0 0.0047 0.0047 2119.0 0.0047 0.0047 2369.0 0.0047 0.0047 2643.5 0.0047 0.0047 2945.0 0.0047 0.0047 3276.5 0.0047 0.0047 -1.8 2.0 132 9.0 -0.0054 -0.0054 11.0 -0.0054 -0.0054 13.5 -0.0054 -0.0054 16.5 -0.0054 -0.0054 19.5 -0.0054 -0.0054 22.5 -0.0054 -0.0054 26.0 -0.0054 -0.0054 30.0 -0.0054 -0.0054 34.5 -0.0054 -0.0054 40.0 -0.0054 -0.0054 46.0 -0.0054 -0.0054 52.5 -0.0053 -0.0053 60.0 -0.0049 -0.0049 69.0 -0.0045 -0.0045 79.0 -0.0041 -0.0041 90.5 -0.0037 -0.0037 105.5 -0.0032 -0.0032 123.5 -0.0027 -0.0027 143.0 -0.0023 -0.0023 163.5 -0.0019 -0.0019 185.0 -0.0015 -0.0015 208.0 -0.0012 -0.0012 232.5 -0.0009 -0.0009 258.5 -0.0006 -0.0006 286.0 -0.0003 -0.0003 331.0 0.0002 0.0002 396.0 0.0007 0.0007 468.5 0.0012 0.0012 549.5 0.0017 0.0017 639.0 0.0022 0.0022 738.0 0.0026 0.0026 847.5 0.0028 0.0028 968.5 0.0028 0.0028 1102.0 0.0028 0.0028 1249.5 0.0028 0.0028 1412.0 0.0028 0.0028 1590.5 0.0028 0.0028 1787.0 0.0028 0.0028 1945.0 0.0028 0.0028 2119.0 0.0028 0.0028 2369.0 0.0028 0.0028 2643.5 0.0028 0.0028 2945.0 0.0028 0.0028 3276.5 0.0028 0.0028 -2.0 2.2 132 9.0 -0.0090 -0.0090 11.0 -0.0090 -0.0090 13.5 -0.0090 -0.0090 16.5 -0.0090 -0.0090 19.5 -0.0090 -0.0090 22.5 -0.0090 -0.0090 26.0 -0.0090 -0.0090 30.0 -0.0090 -0.0090 34.5 -0.0090 -0.0090 40.0 -0.0090 -0.0090 46.0 -0.0090 -0.0090 52.5 -0.0087 -0.0087 60.0 -0.0080 -0.0080 69.0 -0.0073 -0.0073 79.0 -0.0066 -0.0066 90.5 -0.0059 -0.0059 105.5 -0.0051 -0.0051 123.5 -0.0042 -0.0042 143.0 -0.0035 -0.0035 163.5 -0.0028 -0.0028 185.0 -0.0021 -0.0021 208.0 -0.0015 -0.0015 232.5 -0.0009 -0.0009 258.5 -0.0003 -0.0003 286.0 0.0002 0.0002 331.0 0.0010 0.0010 396.0 0.0020 0.0020 468.5 0.0029 0.0029 549.5 0.0038 0.0038 639.0 0.0046 0.0046 738.0 0.0054 0.0054 847.5 0.0058 0.0058 968.5 0.0058 0.0058 1102.0 0.0058 0.0058 1249.5 0.0058 0.0058 1412.0 0.0058 0.0058 1590.5 0.0058 0.0058 1787.0 0.0058 0.0058 1945.0 0.0058 0.0058 2119.0 0.0058 0.0058 2369.0 0.0058 0.0058 2643.5 0.0058 0.0058 2945.0 0.0058 0.0058 3276.5 0.0058 0.0058 -2.2 2.4 132 9.0 -0.0089 -0.0089 11.0 -0.0089 -0.0089 13.5 -0.0089 -0.0089 16.5 -0.0089 -0.0089 19.5 -0.0089 -0.0089 22.5 -0.0089 -0.0089 26.0 -0.0089 -0.0089 30.0 -0.0089 -0.0089 34.5 -0.0089 -0.0089 40.0 -0.0089 -0.0089 46.0 -0.0089 -0.0089 52.5 -0.0086 -0.0086 60.0 -0.0079 -0.0079 69.0 -0.0072 -0.0072 79.0 -0.0064 -0.0064 90.5 -0.0057 -0.0057 105.5 -0.0049 -0.0049 123.5 -0.0040 -0.0040 143.0 -0.0032 -0.0032 163.5 -0.0025 -0.0025 185.0 -0.0018 -0.0018 208.0 -0.0011 -0.0011 232.5 -0.0005 -0.0005 258.5 0.0001 0.0001 286.0 0.0006 0.0006 331.0 0.0014 0.0014 396.0 0.0025 0.0025 468.5 0.0034 0.0034 549.5 0.0043 0.0043 639.0 0.0047 0.0047 738.0 0.0047 0.0047 847.5 0.0047 0.0047 968.5 0.0047 0.0047 1102.0 0.0047 0.0047 1249.5 0.0047 0.0047 1412.0 0.0047 0.0047 1590.5 0.0047 0.0047 1787.0 0.0047 0.0047 1945.0 0.0047 0.0047 2119.0 0.0047 0.0047 2369.0 0.0047 0.0047 2643.5 0.0047 0.0047 2945.0 0.0047 0.0047 3276.5 0.0047 0.0047 -2.4 2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.6 2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.8 3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.0 3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.5 4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.0 4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.4 5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -5.0 5.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -[RelativePtEC2] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --5.0 -4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.4 -4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.0 -3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.5 -3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.0 -2.8 132 9.0 0.0077 0.0077 11.0 0.0077 0.0077 13.5 0.0077 0.0077 16.5 0.0077 0.0077 19.5 0.0077 0.0077 22.5 0.0077 0.0077 26.0 0.0077 0.0077 30.0 0.0077 0.0077 34.5 0.0077 0.0077 40.0 0.0077 0.0077 46.0 0.0077 0.0077 52.5 0.0074 0.0074 60.0 0.0064 0.0064 69.0 0.0054 0.0054 79.0 0.0045 0.0045 90.5 0.0035 0.0035 105.5 0.0024 0.0024 123.5 0.0013 0.0013 143.0 0.0003 0.0003 163.5 -0.0006 -0.0006 185.0 -0.0015 -0.0015 208.0 -0.0023 -0.0023 232.5 -0.0030 -0.0030 258.5 -0.0038 -0.0038 286.0 -0.0045 -0.0045 331.0 -0.0051 -0.0051 396.0 -0.0051 -0.0051 468.5 -0.0051 -0.0051 549.5 -0.0051 -0.0051 639.0 -0.0051 -0.0051 738.0 -0.0051 -0.0051 847.5 -0.0051 -0.0051 968.5 -0.0051 -0.0051 1102.0 -0.0051 -0.0051 1249.5 -0.0051 -0.0051 1412.0 -0.0051 -0.0051 1590.5 -0.0051 -0.0051 1787.0 -0.0051 -0.0051 1945.0 -0.0051 -0.0051 2119.0 -0.0051 -0.0051 2369.0 -0.0051 -0.0051 2643.5 -0.0051 -0.0051 2945.0 -0.0051 -0.0051 3276.5 -0.0051 -0.0051 --2.8 -2.6 132 9.0 -0.0151 -0.0151 11.0 -0.0151 -0.0151 13.5 -0.0151 -0.0151 16.5 -0.0151 -0.0151 19.5 -0.0151 -0.0151 22.5 -0.0151 -0.0151 26.0 -0.0151 -0.0151 30.0 -0.0151 -0.0151 34.5 -0.0151 -0.0151 40.0 -0.0151 -0.0151 46.0 -0.0151 -0.0151 52.5 -0.0147 -0.0147 60.0 -0.0132 -0.0132 69.0 -0.0117 -0.0117 79.0 -0.0102 -0.0102 90.5 -0.0087 -0.0087 105.5 -0.0070 -0.0070 123.5 -0.0053 -0.0053 143.0 -0.0036 -0.0036 163.5 -0.0021 -0.0021 185.0 -0.0007 -0.0007 208.0 0.0006 0.0006 232.5 0.0019 0.0019 258.5 0.0031 0.0031 286.0 0.0043 0.0043 331.0 0.0060 0.0060 396.0 0.0081 0.0081 468.5 0.0091 0.0091 549.5 0.0091 0.0091 639.0 0.0091 0.0091 738.0 0.0091 0.0091 847.5 0.0091 0.0091 968.5 0.0091 0.0091 1102.0 0.0091 0.0091 1249.5 0.0091 0.0091 1412.0 0.0091 0.0091 1590.5 0.0091 0.0091 1787.0 0.0091 0.0091 1945.0 0.0091 0.0091 2119.0 0.0091 0.0091 2369.0 0.0091 0.0091 2643.5 0.0091 0.0091 2945.0 0.0091 0.0091 3276.5 0.0091 0.0091 --2.6 -2.4 132 9.0 -0.0166 -0.0166 11.0 -0.0166 -0.0166 13.5 -0.0166 -0.0166 16.5 -0.0166 -0.0166 19.5 -0.0166 -0.0166 22.5 -0.0166 -0.0166 26.0 -0.0166 -0.0166 30.0 -0.0166 -0.0166 34.5 -0.0166 -0.0166 40.0 -0.0166 -0.0166 46.0 -0.0166 -0.0166 52.5 -0.0161 -0.0161 60.0 -0.0146 -0.0146 69.0 -0.0130 -0.0130 79.0 -0.0114 -0.0114 90.5 -0.0099 -0.0099 105.5 -0.0081 -0.0081 123.5 -0.0062 -0.0062 143.0 -0.0045 -0.0045 163.5 -0.0029 -0.0029 185.0 -0.0014 -0.0014 208.0 0.0000 0.0000 232.5 0.0014 0.0014 258.5 0.0027 0.0027 286.0 0.0039 0.0039 331.0 0.0058 0.0058 396.0 0.0080 0.0080 468.5 0.0095 0.0095 549.5 0.0103 0.0103 639.0 0.0106 0.0106 738.0 0.0106 0.0106 847.5 0.0106 0.0106 968.5 0.0106 0.0106 1102.0 0.0106 0.0106 1249.5 0.0106 0.0106 1412.0 0.0106 0.0106 1590.5 0.0106 0.0106 1787.0 0.0106 0.0106 1945.0 0.0106 0.0106 2119.0 0.0106 0.0106 2369.0 0.0106 0.0106 2643.5 0.0106 0.0106 2945.0 0.0106 0.0106 3276.5 0.0106 0.0106 --2.4 -2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.2 -2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.0 -1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.8 -1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.6 -1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.4 -1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.2 -1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.0 -0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.8 -0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.6 -0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.4 -0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.2 0.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.0 0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.2 0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.4 0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.6 0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.8 1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.0 1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.2 1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.4 1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.6 1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.8 2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.0 2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.2 2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.4 2.6 132 9.0 -0.0166 -0.0166 11.0 -0.0166 -0.0166 13.5 -0.0166 -0.0166 16.5 -0.0166 -0.0166 19.5 -0.0166 -0.0166 22.5 -0.0166 -0.0166 26.0 -0.0166 -0.0166 30.0 -0.0166 -0.0166 34.5 -0.0166 -0.0166 40.0 -0.0166 -0.0166 46.0 -0.0166 -0.0166 52.5 -0.0161 -0.0161 60.0 -0.0146 -0.0146 69.0 -0.0130 -0.0130 79.0 -0.0114 -0.0114 90.5 -0.0099 -0.0099 105.5 -0.0081 -0.0081 123.5 -0.0062 -0.0062 143.0 -0.0045 -0.0045 163.5 -0.0029 -0.0029 185.0 -0.0014 -0.0014 208.0 0.0000 0.0000 232.5 0.0014 0.0014 258.5 0.0027 0.0027 286.0 0.0039 0.0039 331.0 0.0058 0.0058 396.0 0.0080 0.0080 468.5 0.0095 0.0095 549.5 0.0103 0.0103 639.0 0.0106 0.0106 738.0 0.0106 0.0106 847.5 0.0106 0.0106 968.5 0.0106 0.0106 1102.0 0.0106 0.0106 1249.5 0.0106 0.0106 1412.0 0.0106 0.0106 1590.5 0.0106 0.0106 1787.0 0.0106 0.0106 1945.0 0.0106 0.0106 2119.0 0.0106 0.0106 2369.0 0.0106 0.0106 2643.5 0.0106 0.0106 2945.0 0.0106 0.0106 3276.5 0.0106 0.0106 -2.6 2.8 132 9.0 -0.0151 -0.0151 11.0 -0.0151 -0.0151 13.5 -0.0151 -0.0151 16.5 -0.0151 -0.0151 19.5 -0.0151 -0.0151 22.5 -0.0151 -0.0151 26.0 -0.0151 -0.0151 30.0 -0.0151 -0.0151 34.5 -0.0151 -0.0151 40.0 -0.0151 -0.0151 46.0 -0.0151 -0.0151 52.5 -0.0147 -0.0147 60.0 -0.0132 -0.0132 69.0 -0.0117 -0.0117 79.0 -0.0102 -0.0102 90.5 -0.0087 -0.0087 105.5 -0.0070 -0.0070 123.5 -0.0053 -0.0053 143.0 -0.0036 -0.0036 163.5 -0.0021 -0.0021 185.0 -0.0007 -0.0007 208.0 0.0006 0.0006 232.5 0.0019 0.0019 258.5 0.0031 0.0031 286.0 0.0043 0.0043 331.0 0.0060 0.0060 396.0 0.0081 0.0081 468.5 0.0091 0.0091 549.5 0.0091 0.0091 639.0 0.0091 0.0091 738.0 0.0091 0.0091 847.5 0.0091 0.0091 968.5 0.0091 0.0091 1102.0 0.0091 0.0091 1249.5 0.0091 0.0091 1412.0 0.0091 0.0091 1590.5 0.0091 0.0091 1787.0 0.0091 0.0091 1945.0 0.0091 0.0091 2119.0 0.0091 0.0091 2369.0 0.0091 0.0091 2643.5 0.0091 0.0091 2945.0 0.0091 0.0091 3276.5 0.0091 0.0091 -2.8 3.0 132 9.0 0.0077 0.0077 11.0 0.0077 0.0077 13.5 0.0077 0.0077 16.5 0.0077 0.0077 19.5 0.0077 0.0077 22.5 0.0077 0.0077 26.0 0.0077 0.0077 30.0 0.0077 0.0077 34.5 0.0077 0.0077 40.0 0.0077 0.0077 46.0 0.0077 0.0077 52.5 0.0074 0.0074 60.0 0.0064 0.0064 69.0 0.0054 0.0054 79.0 0.0045 0.0045 90.5 0.0035 0.0035 105.5 0.0024 0.0024 123.5 0.0013 0.0013 143.0 0.0003 0.0003 163.5 -0.0006 -0.0006 185.0 -0.0015 -0.0015 208.0 -0.0023 -0.0023 232.5 -0.0030 -0.0030 258.5 -0.0038 -0.0038 286.0 -0.0045 -0.0045 331.0 -0.0051 -0.0051 396.0 -0.0051 -0.0051 468.5 -0.0051 -0.0051 549.5 -0.0051 -0.0051 639.0 -0.0051 -0.0051 738.0 -0.0051 -0.0051 847.5 -0.0051 -0.0051 968.5 -0.0051 -0.0051 1102.0 -0.0051 -0.0051 1249.5 -0.0051 -0.0051 1412.0 -0.0051 -0.0051 1590.5 -0.0051 -0.0051 1787.0 -0.0051 -0.0051 1945.0 -0.0051 -0.0051 2119.0 -0.0051 -0.0051 2369.0 -0.0051 -0.0051 2643.5 -0.0051 -0.0051 2945.0 -0.0051 -0.0051 3276.5 -0.0051 -0.0051 -3.0 3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.5 4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.0 4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.4 5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -5.0 5.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -[RelativePtHF] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 -0.0210 -0.0210 11.0 -0.0210 -0.0210 13.5 -0.0210 -0.0210 16.5 -0.0210 -0.0210 19.5 -0.0210 -0.0210 22.5 -0.0210 -0.0210 26.0 -0.0210 -0.0210 30.0 -0.0210 -0.0210 34.5 -0.0210 -0.0210 40.0 -0.0210 -0.0210 46.0 -0.0210 -0.0210 52.5 -0.0210 -0.0210 60.0 -0.0210 -0.0210 69.0 -0.0210 -0.0210 79.0 -0.0210 -0.0210 90.5 -0.0210 -0.0210 105.5 -0.0210 -0.0210 123.5 -0.0210 -0.0210 143.0 -0.0210 -0.0210 163.5 -0.0210 -0.0210 185.0 -0.0210 -0.0210 208.0 -0.0210 -0.0210 232.5 -0.0210 -0.0210 258.5 -0.0210 -0.0210 286.0 -0.0210 -0.0210 331.0 -0.0210 -0.0210 396.0 -0.0210 -0.0210 468.5 -0.0210 -0.0210 549.5 -0.0210 -0.0210 639.0 -0.0210 -0.0210 738.0 -0.0210 -0.0210 847.5 -0.0210 -0.0210 968.5 -0.0210 -0.0210 1102.0 -0.0210 -0.0210 1249.5 -0.0210 -0.0210 1412.0 -0.0210 -0.0210 1590.5 -0.0210 -0.0210 1787.0 -0.0210 -0.0210 1945.0 -0.0210 -0.0210 2119.0 -0.0210 -0.0210 2369.0 -0.0210 -0.0210 2643.5 -0.0210 -0.0210 2945.0 -0.0210 -0.0210 3276.5 -0.0210 -0.0210 --5.0 -4.4 132 9.0 -0.0210 -0.0210 11.0 -0.0210 -0.0210 13.5 -0.0210 -0.0210 16.5 -0.0210 -0.0210 19.5 -0.0210 -0.0210 22.5 -0.0210 -0.0210 26.0 -0.0210 -0.0210 30.0 -0.0210 -0.0210 34.5 -0.0210 -0.0210 40.0 -0.0210 -0.0210 46.0 -0.0210 -0.0210 52.5 -0.0194 -0.0194 60.0 -0.0144 -0.0144 69.0 -0.0090 -0.0090 79.0 -0.0069 -0.0069 90.5 -0.0069 -0.0069 105.5 -0.0069 -0.0069 123.5 -0.0069 -0.0069 143.0 -0.0069 -0.0069 163.5 -0.0069 -0.0069 185.0 -0.0069 -0.0069 208.0 -0.0069 -0.0069 232.5 -0.0069 -0.0069 258.5 -0.0069 -0.0069 286.0 -0.0069 -0.0069 331.0 -0.0069 -0.0069 396.0 -0.0069 -0.0069 468.5 -0.0069 -0.0069 549.5 -0.0069 -0.0069 639.0 -0.0069 -0.0069 738.0 -0.0069 -0.0069 847.5 -0.0069 -0.0069 968.5 -0.0069 -0.0069 1102.0 -0.0069 -0.0069 1249.5 -0.0069 -0.0069 1412.0 -0.0069 -0.0069 1590.5 -0.0069 -0.0069 1787.0 -0.0069 -0.0069 1945.0 -0.0069 -0.0069 2119.0 -0.0069 -0.0069 2369.0 -0.0069 -0.0069 2643.5 -0.0069 -0.0069 2945.0 -0.0069 -0.0069 3276.5 -0.0069 -0.0069 --4.4 -4.0 132 9.0 -0.0210 -0.0210 11.0 -0.0210 -0.0210 13.5 -0.0210 -0.0210 16.5 -0.0210 -0.0210 19.5 -0.0210 -0.0210 22.5 -0.0210 -0.0210 26.0 -0.0210 -0.0210 30.0 -0.0210 -0.0210 34.5 -0.0210 -0.0210 40.0 -0.0210 -0.0210 46.0 -0.0210 -0.0210 52.5 -0.0194 -0.0194 60.0 -0.0144 -0.0144 69.0 -0.0090 -0.0090 79.0 -0.0037 -0.0037 90.5 0.0017 0.0017 105.5 0.0080 0.0080 123.5 0.0134 0.0134 143.0 0.0134 0.0134 163.5 0.0134 0.0134 185.0 0.0134 0.0134 208.0 0.0134 0.0134 232.5 0.0134 0.0134 258.5 0.0134 0.0134 286.0 0.0134 0.0134 331.0 0.0134 0.0134 396.0 0.0134 0.0134 468.5 0.0134 0.0134 549.5 0.0134 0.0134 639.0 0.0134 0.0134 738.0 0.0134 0.0134 847.5 0.0134 0.0134 968.5 0.0134 0.0134 1102.0 0.0134 0.0134 1249.5 0.0134 0.0134 1412.0 0.0134 0.0134 1590.5 0.0134 0.0134 1787.0 0.0134 0.0134 1945.0 0.0134 0.0134 2119.0 0.0134 0.0134 2369.0 0.0134 0.0134 2643.5 0.0134 0.0134 2945.0 0.0134 0.0134 3276.5 0.0134 0.0134 --4.0 -3.5 132 9.0 -0.0210 -0.0210 11.0 -0.0210 -0.0210 13.5 -0.0210 -0.0210 16.5 -0.0210 -0.0210 19.5 -0.0210 -0.0210 22.5 -0.0210 -0.0210 26.0 -0.0210 -0.0210 30.0 -0.0210 -0.0210 34.5 -0.0210 -0.0210 40.0 -0.0210 -0.0210 46.0 -0.0210 -0.0210 52.5 -0.0194 -0.0194 60.0 -0.0144 -0.0144 69.0 -0.0090 -0.0090 79.0 -0.0037 -0.0037 90.5 0.0017 0.0017 105.5 0.0080 0.0080 123.5 0.0146 0.0146 143.0 0.0155 0.0155 163.5 0.0155 0.0155 185.0 0.0155 0.0155 208.0 0.0155 0.0155 232.5 0.0155 0.0155 258.5 0.0155 0.0155 286.0 0.0155 0.0155 331.0 0.0155 0.0155 396.0 0.0155 0.0155 468.5 0.0155 0.0155 549.5 0.0155 0.0155 639.0 0.0155 0.0155 738.0 0.0155 0.0155 847.5 0.0155 0.0155 968.5 0.0155 0.0155 1102.0 0.0155 0.0155 1249.5 0.0155 0.0155 1412.0 0.0155 0.0155 1590.5 0.0155 0.0155 1787.0 0.0155 0.0155 1945.0 0.0155 0.0155 2119.0 0.0155 0.0155 2369.0 0.0155 0.0155 2643.5 0.0155 0.0155 2945.0 0.0155 0.0155 3276.5 0.0155 0.0155 --3.5 -3.0 132 9.0 0.0050 0.0050 11.0 0.0050 0.0050 13.5 0.0050 0.0050 16.5 0.0050 0.0050 19.5 0.0050 0.0050 22.5 0.0050 0.0050 26.0 0.0050 0.0050 30.0 0.0050 0.0050 34.5 0.0050 0.0050 40.0 0.0050 0.0050 46.0 0.0050 0.0050 52.5 0.0048 0.0048 60.0 0.0041 0.0041 69.0 0.0033 0.0033 79.0 0.0025 0.0025 90.5 0.0018 0.0018 105.5 0.0009 0.0009 123.5 0.0001 0.0001 143.0 -0.0007 -0.0007 163.5 -0.0015 -0.0015 185.0 -0.0022 -0.0022 208.0 -0.0028 -0.0028 232.5 -0.0034 -0.0034 258.5 -0.0034 -0.0034 286.0 -0.0034 -0.0034 331.0 -0.0034 -0.0034 396.0 -0.0034 -0.0034 468.5 -0.0034 -0.0034 549.5 -0.0034 -0.0034 639.0 -0.0034 -0.0034 738.0 -0.0034 -0.0034 847.5 -0.0034 -0.0034 968.5 -0.0034 -0.0034 1102.0 -0.0034 -0.0034 1249.5 -0.0034 -0.0034 1412.0 -0.0034 -0.0034 1590.5 -0.0034 -0.0034 1787.0 -0.0034 -0.0034 1945.0 -0.0034 -0.0034 2119.0 -0.0034 -0.0034 2369.0 -0.0034 -0.0034 2643.5 -0.0034 -0.0034 2945.0 -0.0034 -0.0034 3276.5 -0.0034 -0.0034 --3.0 -2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.8 -2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.6 -2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.4 -2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.2 -2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.0 -1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.8 -1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.6 -1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.4 -1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.2 -1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.0 -0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.8 -0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.6 -0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.4 -0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.2 0.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.0 0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.2 0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.4 0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.6 0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.8 1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.0 1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.2 1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.4 1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.6 1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.8 2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.0 2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.2 2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.4 2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.6 2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.8 3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.0 3.5 132 9.0 0.0050 0.0050 11.0 0.0050 0.0050 13.5 0.0050 0.0050 16.5 0.0050 0.0050 19.5 0.0050 0.0050 22.5 0.0050 0.0050 26.0 0.0050 0.0050 30.0 0.0050 0.0050 34.5 0.0050 0.0050 40.0 0.0050 0.0050 46.0 0.0050 0.0050 52.5 0.0048 0.0048 60.0 0.0041 0.0041 69.0 0.0033 0.0033 79.0 0.0025 0.0025 90.5 0.0018 0.0018 105.5 0.0009 0.0009 123.5 0.0001 0.0001 143.0 -0.0007 -0.0007 163.5 -0.0015 -0.0015 185.0 -0.0022 -0.0022 208.0 -0.0028 -0.0028 232.5 -0.0034 -0.0034 258.5 -0.0034 -0.0034 286.0 -0.0034 -0.0034 331.0 -0.0034 -0.0034 396.0 -0.0034 -0.0034 468.5 -0.0034 -0.0034 549.5 -0.0034 -0.0034 639.0 -0.0034 -0.0034 738.0 -0.0034 -0.0034 847.5 -0.0034 -0.0034 968.5 -0.0034 -0.0034 1102.0 -0.0034 -0.0034 1249.5 -0.0034 -0.0034 1412.0 -0.0034 -0.0034 1590.5 -0.0034 -0.0034 1787.0 -0.0034 -0.0034 1945.0 -0.0034 -0.0034 2119.0 -0.0034 -0.0034 2369.0 -0.0034 -0.0034 2643.5 -0.0034 -0.0034 2945.0 -0.0034 -0.0034 3276.5 -0.0034 -0.0034 -3.5 4.0 132 9.0 -0.0210 -0.0210 11.0 -0.0210 -0.0210 13.5 -0.0210 -0.0210 16.5 -0.0210 -0.0210 19.5 -0.0210 -0.0210 22.5 -0.0210 -0.0210 26.0 -0.0210 -0.0210 30.0 -0.0210 -0.0210 34.5 -0.0210 -0.0210 40.0 -0.0210 -0.0210 46.0 -0.0210 -0.0210 52.5 -0.0194 -0.0194 60.0 -0.0144 -0.0144 69.0 -0.0090 -0.0090 79.0 -0.0037 -0.0037 90.5 0.0017 0.0017 105.5 0.0080 0.0080 123.5 0.0146 0.0146 143.0 0.0155 0.0155 163.5 0.0155 0.0155 185.0 0.0155 0.0155 208.0 0.0155 0.0155 232.5 0.0155 0.0155 258.5 0.0155 0.0155 286.0 0.0155 0.0155 331.0 0.0155 0.0155 396.0 0.0155 0.0155 468.5 0.0155 0.0155 549.5 0.0155 0.0155 639.0 0.0155 0.0155 738.0 0.0155 0.0155 847.5 0.0155 0.0155 968.5 0.0155 0.0155 1102.0 0.0155 0.0155 1249.5 0.0155 0.0155 1412.0 0.0155 0.0155 1590.5 0.0155 0.0155 1787.0 0.0155 0.0155 1945.0 0.0155 0.0155 2119.0 0.0155 0.0155 2369.0 0.0155 0.0155 2643.5 0.0155 0.0155 2945.0 0.0155 0.0155 3276.5 0.0155 0.0155 -4.0 4.4 132 9.0 -0.0210 -0.0210 11.0 -0.0210 -0.0210 13.5 -0.0210 -0.0210 16.5 -0.0210 -0.0210 19.5 -0.0210 -0.0210 22.5 -0.0210 -0.0210 26.0 -0.0210 -0.0210 30.0 -0.0210 -0.0210 34.5 -0.0210 -0.0210 40.0 -0.0210 -0.0210 46.0 -0.0210 -0.0210 52.5 -0.0194 -0.0194 60.0 -0.0144 -0.0144 69.0 -0.0090 -0.0090 79.0 -0.0037 -0.0037 90.5 0.0017 0.0017 105.5 0.0080 0.0080 123.5 0.0134 0.0134 143.0 0.0134 0.0134 163.5 0.0134 0.0134 185.0 0.0134 0.0134 208.0 0.0134 0.0134 232.5 0.0134 0.0134 258.5 0.0134 0.0134 286.0 0.0134 0.0134 331.0 0.0134 0.0134 396.0 0.0134 0.0134 468.5 0.0134 0.0134 549.5 0.0134 0.0134 639.0 0.0134 0.0134 738.0 0.0134 0.0134 847.5 0.0134 0.0134 968.5 0.0134 0.0134 1102.0 0.0134 0.0134 1249.5 0.0134 0.0134 1412.0 0.0134 0.0134 1590.5 0.0134 0.0134 1787.0 0.0134 0.0134 1945.0 0.0134 0.0134 2119.0 0.0134 0.0134 2369.0 0.0134 0.0134 2643.5 0.0134 0.0134 2945.0 0.0134 0.0134 3276.5 0.0134 0.0134 -4.4 5.0 132 9.0 -0.0210 -0.0210 11.0 -0.0210 -0.0210 13.5 -0.0210 -0.0210 16.5 -0.0210 -0.0210 19.5 -0.0210 -0.0210 22.5 -0.0210 -0.0210 26.0 -0.0210 -0.0210 30.0 -0.0210 -0.0210 34.5 -0.0210 -0.0210 40.0 -0.0210 -0.0210 46.0 -0.0210 -0.0210 52.5 -0.0194 -0.0194 60.0 -0.0144 -0.0144 69.0 -0.0090 -0.0090 79.0 -0.0069 -0.0069 90.5 -0.0069 -0.0069 105.5 -0.0069 -0.0069 123.5 -0.0069 -0.0069 143.0 -0.0069 -0.0069 163.5 -0.0069 -0.0069 185.0 -0.0069 -0.0069 208.0 -0.0069 -0.0069 232.5 -0.0069 -0.0069 258.5 -0.0069 -0.0069 286.0 -0.0069 -0.0069 331.0 -0.0069 -0.0069 396.0 -0.0069 -0.0069 468.5 -0.0069 -0.0069 549.5 -0.0069 -0.0069 639.0 -0.0069 -0.0069 738.0 -0.0069 -0.0069 847.5 -0.0069 -0.0069 968.5 -0.0069 -0.0069 1102.0 -0.0069 -0.0069 1249.5 -0.0069 -0.0069 1412.0 -0.0069 -0.0069 1590.5 -0.0069 -0.0069 1787.0 -0.0069 -0.0069 1945.0 -0.0069 -0.0069 2119.0 -0.0069 -0.0069 2369.0 -0.0069 -0.0069 2643.5 -0.0069 -0.0069 2945.0 -0.0069 -0.0069 3276.5 -0.0069 -0.0069 -5.0 5.4 132 9.0 -0.0210 -0.0210 11.0 -0.0210 -0.0210 13.5 -0.0210 -0.0210 16.5 -0.0210 -0.0210 19.5 -0.0210 -0.0210 22.5 -0.0210 -0.0210 26.0 -0.0210 -0.0210 30.0 -0.0210 -0.0210 34.5 -0.0210 -0.0210 40.0 -0.0210 -0.0210 46.0 -0.0210 -0.0210 52.5 -0.0210 -0.0210 60.0 -0.0210 -0.0210 69.0 -0.0210 -0.0210 79.0 -0.0210 -0.0210 90.5 -0.0210 -0.0210 105.5 -0.0210 -0.0210 123.5 -0.0210 -0.0210 143.0 -0.0210 -0.0210 163.5 -0.0210 -0.0210 185.0 -0.0210 -0.0210 208.0 -0.0210 -0.0210 232.5 -0.0210 -0.0210 258.5 -0.0210 -0.0210 286.0 -0.0210 -0.0210 331.0 -0.0210 -0.0210 396.0 -0.0210 -0.0210 468.5 -0.0210 -0.0210 549.5 -0.0210 -0.0210 639.0 -0.0210 -0.0210 738.0 -0.0210 -0.0210 847.5 -0.0210 -0.0210 968.5 -0.0210 -0.0210 1102.0 -0.0210 -0.0210 1249.5 -0.0210 -0.0210 1412.0 -0.0210 -0.0210 1590.5 -0.0210 -0.0210 1787.0 -0.0210 -0.0210 1945.0 -0.0210 -0.0210 2119.0 -0.0210 -0.0210 2369.0 -0.0210 -0.0210 2643.5 -0.0210 -0.0210 2945.0 -0.0210 -0.0210 3276.5 -0.0210 -0.0210 -[RelativeFSR] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1945.0 0.0150 0.0150 2119.0 0.0150 0.0150 2369.0 0.0150 0.0150 2643.5 0.0150 0.0150 2945.0 0.0150 0.0150 3276.5 0.0150 0.0150 --5.0 -4.4 132 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1945.0 0.0150 0.0150 2119.0 0.0150 0.0150 2369.0 0.0150 0.0150 2643.5 0.0150 0.0150 2945.0 0.0150 0.0150 3276.5 0.0150 0.0150 --4.4 -4.0 132 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1945.0 0.0150 0.0150 2119.0 0.0150 0.0150 2369.0 0.0150 0.0150 2643.5 0.0150 0.0150 2945.0 0.0150 0.0150 3276.5 0.0150 0.0150 --4.0 -3.5 132 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1945.0 0.0150 0.0150 2119.0 0.0150 0.0150 2369.0 0.0150 0.0150 2643.5 0.0150 0.0150 2945.0 0.0150 0.0150 3276.5 0.0150 0.0150 --3.5 -3.0 132 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1945.0 0.0150 0.0150 2119.0 0.0150 0.0150 2369.0 0.0150 0.0150 2643.5 0.0150 0.0150 2945.0 0.0150 0.0150 3276.5 0.0150 0.0150 --3.0 -2.8 132 9.0 0.0082 0.0082 11.0 0.0082 0.0082 13.5 0.0082 0.0082 16.5 0.0082 0.0082 19.5 0.0082 0.0082 22.5 0.0082 0.0082 26.0 0.0082 0.0082 30.0 0.0082 0.0082 34.5 0.0082 0.0082 40.0 0.0082 0.0082 46.0 0.0082 0.0082 52.5 0.0082 0.0082 60.0 0.0082 0.0082 69.0 0.0082 0.0082 79.0 0.0082 0.0082 90.5 0.0082 0.0082 105.5 0.0082 0.0082 123.5 0.0082 0.0082 143.0 0.0082 0.0082 163.5 0.0082 0.0082 185.0 0.0082 0.0082 208.0 0.0082 0.0082 232.5 0.0082 0.0082 258.5 0.0082 0.0082 286.0 0.0082 0.0082 331.0 0.0082 0.0082 396.0 0.0082 0.0082 468.5 0.0082 0.0082 549.5 0.0082 0.0082 639.0 0.0082 0.0082 738.0 0.0082 0.0082 847.5 0.0082 0.0082 968.5 0.0082 0.0082 1102.0 0.0082 0.0082 1249.5 0.0082 0.0082 1412.0 0.0082 0.0082 1590.5 0.0082 0.0082 1787.0 0.0082 0.0082 1945.0 0.0082 0.0082 2119.0 0.0082 0.0082 2369.0 0.0082 0.0082 2643.5 0.0082 0.0082 2945.0 0.0082 0.0082 3276.5 0.0082 0.0082 --2.8 -2.6 132 9.0 0.0055 0.0055 11.0 0.0055 0.0055 13.5 0.0055 0.0055 16.5 0.0055 0.0055 19.5 0.0055 0.0055 22.5 0.0055 0.0055 26.0 0.0055 0.0055 30.0 0.0055 0.0055 34.5 0.0055 0.0055 40.0 0.0055 0.0055 46.0 0.0055 0.0055 52.5 0.0055 0.0055 60.0 0.0055 0.0055 69.0 0.0055 0.0055 79.0 0.0055 0.0055 90.5 0.0055 0.0055 105.5 0.0055 0.0055 123.5 0.0055 0.0055 143.0 0.0055 0.0055 163.5 0.0055 0.0055 185.0 0.0055 0.0055 208.0 0.0055 0.0055 232.5 0.0055 0.0055 258.5 0.0055 0.0055 286.0 0.0055 0.0055 331.0 0.0055 0.0055 396.0 0.0055 0.0055 468.5 0.0055 0.0055 549.5 0.0055 0.0055 639.0 0.0055 0.0055 738.0 0.0055 0.0055 847.5 0.0055 0.0055 968.5 0.0055 0.0055 1102.0 0.0055 0.0055 1249.5 0.0055 0.0055 1412.0 0.0055 0.0055 1590.5 0.0055 0.0055 1787.0 0.0055 0.0055 1945.0 0.0055 0.0055 2119.0 0.0055 0.0055 2369.0 0.0055 0.0055 2643.5 0.0055 0.0055 2945.0 0.0055 0.0055 3276.5 0.0055 0.0055 --2.6 -2.4 132 9.0 0.0037 0.0037 11.0 0.0037 0.0037 13.5 0.0037 0.0037 16.5 0.0037 0.0037 19.5 0.0037 0.0037 22.5 0.0037 0.0037 26.0 0.0037 0.0037 30.0 0.0037 0.0037 34.5 0.0037 0.0037 40.0 0.0037 0.0037 46.0 0.0037 0.0037 52.5 0.0037 0.0037 60.0 0.0037 0.0037 69.0 0.0037 0.0037 79.0 0.0037 0.0037 90.5 0.0037 0.0037 105.5 0.0037 0.0037 123.5 0.0037 0.0037 143.0 0.0037 0.0037 163.5 0.0037 0.0037 185.0 0.0037 0.0037 208.0 0.0037 0.0037 232.5 0.0037 0.0037 258.5 0.0037 0.0037 286.0 0.0037 0.0037 331.0 0.0037 0.0037 396.0 0.0037 0.0037 468.5 0.0037 0.0037 549.5 0.0037 0.0037 639.0 0.0037 0.0037 738.0 0.0037 0.0037 847.5 0.0037 0.0037 968.5 0.0037 0.0037 1102.0 0.0037 0.0037 1249.5 0.0037 0.0037 1412.0 0.0037 0.0037 1590.5 0.0037 0.0037 1787.0 0.0037 0.0037 1945.0 0.0037 0.0037 2119.0 0.0037 0.0037 2369.0 0.0037 0.0037 2643.5 0.0037 0.0037 2945.0 0.0037 0.0037 3276.5 0.0037 0.0037 --2.4 -2.2 132 9.0 0.0024 0.0024 11.0 0.0024 0.0024 13.5 0.0024 0.0024 16.5 0.0024 0.0024 19.5 0.0024 0.0024 22.5 0.0024 0.0024 26.0 0.0024 0.0024 30.0 0.0024 0.0024 34.5 0.0024 0.0024 40.0 0.0024 0.0024 46.0 0.0024 0.0024 52.5 0.0024 0.0024 60.0 0.0024 0.0024 69.0 0.0024 0.0024 79.0 0.0024 0.0024 90.5 0.0024 0.0024 105.5 0.0024 0.0024 123.5 0.0024 0.0024 143.0 0.0024 0.0024 163.5 0.0024 0.0024 185.0 0.0024 0.0024 208.0 0.0024 0.0024 232.5 0.0024 0.0024 258.5 0.0024 0.0024 286.0 0.0024 0.0024 331.0 0.0024 0.0024 396.0 0.0024 0.0024 468.5 0.0024 0.0024 549.5 0.0024 0.0024 639.0 0.0024 0.0024 738.0 0.0024 0.0024 847.5 0.0024 0.0024 968.5 0.0024 0.0024 1102.0 0.0024 0.0024 1249.5 0.0024 0.0024 1412.0 0.0024 0.0024 1590.5 0.0024 0.0024 1787.0 0.0024 0.0024 1945.0 0.0024 0.0024 2119.0 0.0024 0.0024 2369.0 0.0024 0.0024 2643.5 0.0024 0.0024 2945.0 0.0024 0.0024 3276.5 0.0024 0.0024 --2.2 -2.0 132 9.0 0.0016 0.0016 11.0 0.0016 0.0016 13.5 0.0016 0.0016 16.5 0.0016 0.0016 19.5 0.0016 0.0016 22.5 0.0016 0.0016 26.0 0.0016 0.0016 30.0 0.0016 0.0016 34.5 0.0016 0.0016 40.0 0.0016 0.0016 46.0 0.0016 0.0016 52.5 0.0016 0.0016 60.0 0.0016 0.0016 69.0 0.0016 0.0016 79.0 0.0016 0.0016 90.5 0.0016 0.0016 105.5 0.0016 0.0016 123.5 0.0016 0.0016 143.0 0.0016 0.0016 163.5 0.0016 0.0016 185.0 0.0016 0.0016 208.0 0.0016 0.0016 232.5 0.0016 0.0016 258.5 0.0016 0.0016 286.0 0.0016 0.0016 331.0 0.0016 0.0016 396.0 0.0016 0.0016 468.5 0.0016 0.0016 549.5 0.0016 0.0016 639.0 0.0016 0.0016 738.0 0.0016 0.0016 847.5 0.0016 0.0016 968.5 0.0016 0.0016 1102.0 0.0016 0.0016 1249.5 0.0016 0.0016 1412.0 0.0016 0.0016 1590.5 0.0016 0.0016 1787.0 0.0016 0.0016 1945.0 0.0016 0.0016 2119.0 0.0016 0.0016 2369.0 0.0016 0.0016 2643.5 0.0016 0.0016 2945.0 0.0016 0.0016 3276.5 0.0016 0.0016 --2.0 -1.8 132 9.0 0.0011 0.0011 11.0 0.0011 0.0011 13.5 0.0011 0.0011 16.5 0.0011 0.0011 19.5 0.0011 0.0011 22.5 0.0011 0.0011 26.0 0.0011 0.0011 30.0 0.0011 0.0011 34.5 0.0011 0.0011 40.0 0.0011 0.0011 46.0 0.0011 0.0011 52.5 0.0011 0.0011 60.0 0.0011 0.0011 69.0 0.0011 0.0011 79.0 0.0011 0.0011 90.5 0.0011 0.0011 105.5 0.0011 0.0011 123.5 0.0011 0.0011 143.0 0.0011 0.0011 163.5 0.0011 0.0011 185.0 0.0011 0.0011 208.0 0.0011 0.0011 232.5 0.0011 0.0011 258.5 0.0011 0.0011 286.0 0.0011 0.0011 331.0 0.0011 0.0011 396.0 0.0011 0.0011 468.5 0.0011 0.0011 549.5 0.0011 0.0011 639.0 0.0011 0.0011 738.0 0.0011 0.0011 847.5 0.0011 0.0011 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0011 0.0011 1412.0 0.0011 0.0011 1590.5 0.0011 0.0011 1787.0 0.0011 0.0011 1945.0 0.0011 0.0011 2119.0 0.0011 0.0011 2369.0 0.0011 0.0011 2643.5 0.0011 0.0011 2945.0 0.0011 0.0011 3276.5 0.0011 0.0011 --1.8 -1.6 132 9.0 0.0007 0.0007 11.0 0.0007 0.0007 13.5 0.0007 0.0007 16.5 0.0007 0.0007 19.5 0.0007 0.0007 22.5 0.0007 0.0007 26.0 0.0007 0.0007 30.0 0.0007 0.0007 34.5 0.0007 0.0007 40.0 0.0007 0.0007 46.0 0.0007 0.0007 52.5 0.0007 0.0007 60.0 0.0007 0.0007 69.0 0.0007 0.0007 79.0 0.0007 0.0007 90.5 0.0007 0.0007 105.5 0.0007 0.0007 123.5 0.0007 0.0007 143.0 0.0007 0.0007 163.5 0.0007 0.0007 185.0 0.0007 0.0007 208.0 0.0007 0.0007 232.5 0.0007 0.0007 258.5 0.0007 0.0007 286.0 0.0007 0.0007 331.0 0.0007 0.0007 396.0 0.0007 0.0007 468.5 0.0007 0.0007 549.5 0.0007 0.0007 639.0 0.0007 0.0007 738.0 0.0007 0.0007 847.5 0.0007 0.0007 968.5 0.0007 0.0007 1102.0 0.0007 0.0007 1249.5 0.0007 0.0007 1412.0 0.0007 0.0007 1590.5 0.0007 0.0007 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --1.6 -1.4 132 9.0 0.0005 0.0005 11.0 0.0005 0.0005 13.5 0.0005 0.0005 16.5 0.0005 0.0005 19.5 0.0005 0.0005 22.5 0.0005 0.0005 26.0 0.0005 0.0005 30.0 0.0005 0.0005 34.5 0.0005 0.0005 40.0 0.0005 0.0005 46.0 0.0005 0.0005 52.5 0.0005 0.0005 60.0 0.0005 0.0005 69.0 0.0005 0.0005 79.0 0.0005 0.0005 90.5 0.0005 0.0005 105.5 0.0005 0.0005 123.5 0.0005 0.0005 143.0 0.0005 0.0005 163.5 0.0005 0.0005 185.0 0.0005 0.0005 208.0 0.0005 0.0005 232.5 0.0005 0.0005 258.5 0.0005 0.0005 286.0 0.0005 0.0005 331.0 0.0005 0.0005 396.0 0.0005 0.0005 468.5 0.0005 0.0005 549.5 0.0005 0.0005 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1945.0 0.0005 0.0005 2119.0 0.0005 0.0005 2369.0 0.0005 0.0005 2643.5 0.0005 0.0005 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 --1.4 -1.2 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 --1.2 -1.0 132 9.0 0.0002 0.0002 11.0 0.0002 0.0002 13.5 0.0002 0.0002 16.5 0.0002 0.0002 19.5 0.0002 0.0002 22.5 0.0002 0.0002 26.0 0.0002 0.0002 30.0 0.0002 0.0002 34.5 0.0002 0.0002 40.0 0.0002 0.0002 46.0 0.0002 0.0002 52.5 0.0002 0.0002 60.0 0.0002 0.0002 69.0 0.0002 0.0002 79.0 0.0002 0.0002 90.5 0.0002 0.0002 105.5 0.0002 0.0002 123.5 0.0002 0.0002 143.0 0.0002 0.0002 163.5 0.0002 0.0002 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0002 0.0002 258.5 0.0002 0.0002 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0002 0.0002 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0002 0.0002 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1945.0 0.0002 0.0002 2119.0 0.0002 0.0002 2369.0 0.0002 0.0002 2643.5 0.0002 0.0002 2945.0 0.0002 0.0002 3276.5 0.0002 0.0002 --1.0 -0.8 132 9.0 0.0001 0.0001 11.0 0.0001 0.0001 13.5 0.0001 0.0001 16.5 0.0001 0.0001 19.5 0.0001 0.0001 22.5 0.0001 0.0001 26.0 0.0001 0.0001 30.0 0.0001 0.0001 34.5 0.0001 0.0001 40.0 0.0001 0.0001 46.0 0.0001 0.0001 52.5 0.0001 0.0001 60.0 0.0001 0.0001 69.0 0.0001 0.0001 79.0 0.0001 0.0001 90.5 0.0001 0.0001 105.5 0.0001 0.0001 123.5 0.0001 0.0001 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1945.0 0.0001 0.0001 2119.0 0.0001 0.0001 2369.0 0.0001 0.0001 2643.5 0.0001 0.0001 2945.0 0.0001 0.0001 3276.5 0.0001 0.0001 --0.8 -0.6 132 9.0 0.0001 0.0001 11.0 0.0001 0.0001 13.5 0.0001 0.0001 16.5 0.0001 0.0001 19.5 0.0001 0.0001 22.5 0.0001 0.0001 26.0 0.0001 0.0001 30.0 0.0001 0.0001 34.5 0.0001 0.0001 40.0 0.0001 0.0001 46.0 0.0001 0.0001 52.5 0.0001 0.0001 60.0 0.0001 0.0001 69.0 0.0001 0.0001 79.0 0.0001 0.0001 90.5 0.0001 0.0001 105.5 0.0001 0.0001 123.5 0.0001 0.0001 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1945.0 0.0001 0.0001 2119.0 0.0001 0.0001 2369.0 0.0001 0.0001 2643.5 0.0001 0.0001 2945.0 0.0001 0.0001 3276.5 0.0001 0.0001 --0.6 -0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.4 -0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.2 0.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.0 0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.2 0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.4 0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.6 0.8 132 9.0 0.0001 0.0001 11.0 0.0001 0.0001 13.5 0.0001 0.0001 16.5 0.0001 0.0001 19.5 0.0001 0.0001 22.5 0.0001 0.0001 26.0 0.0001 0.0001 30.0 0.0001 0.0001 34.5 0.0001 0.0001 40.0 0.0001 0.0001 46.0 0.0001 0.0001 52.5 0.0001 0.0001 60.0 0.0001 0.0001 69.0 0.0001 0.0001 79.0 0.0001 0.0001 90.5 0.0001 0.0001 105.5 0.0001 0.0001 123.5 0.0001 0.0001 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1945.0 0.0001 0.0001 2119.0 0.0001 0.0001 2369.0 0.0001 0.0001 2643.5 0.0001 0.0001 2945.0 0.0001 0.0001 3276.5 0.0001 0.0001 -0.8 1.0 132 9.0 0.0001 0.0001 11.0 0.0001 0.0001 13.5 0.0001 0.0001 16.5 0.0001 0.0001 19.5 0.0001 0.0001 22.5 0.0001 0.0001 26.0 0.0001 0.0001 30.0 0.0001 0.0001 34.5 0.0001 0.0001 40.0 0.0001 0.0001 46.0 0.0001 0.0001 52.5 0.0001 0.0001 60.0 0.0001 0.0001 69.0 0.0001 0.0001 79.0 0.0001 0.0001 90.5 0.0001 0.0001 105.5 0.0001 0.0001 123.5 0.0001 0.0001 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1945.0 0.0001 0.0001 2119.0 0.0001 0.0001 2369.0 0.0001 0.0001 2643.5 0.0001 0.0001 2945.0 0.0001 0.0001 3276.5 0.0001 0.0001 -1.0 1.2 132 9.0 0.0002 0.0002 11.0 0.0002 0.0002 13.5 0.0002 0.0002 16.5 0.0002 0.0002 19.5 0.0002 0.0002 22.5 0.0002 0.0002 26.0 0.0002 0.0002 30.0 0.0002 0.0002 34.5 0.0002 0.0002 40.0 0.0002 0.0002 46.0 0.0002 0.0002 52.5 0.0002 0.0002 60.0 0.0002 0.0002 69.0 0.0002 0.0002 79.0 0.0002 0.0002 90.5 0.0002 0.0002 105.5 0.0002 0.0002 123.5 0.0002 0.0002 143.0 0.0002 0.0002 163.5 0.0002 0.0002 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0002 0.0002 258.5 0.0002 0.0002 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0002 0.0002 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0002 0.0002 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1945.0 0.0002 0.0002 2119.0 0.0002 0.0002 2369.0 0.0002 0.0002 2643.5 0.0002 0.0002 2945.0 0.0002 0.0002 3276.5 0.0002 0.0002 -1.2 1.4 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 -1.4 1.6 132 9.0 0.0005 0.0005 11.0 0.0005 0.0005 13.5 0.0005 0.0005 16.5 0.0005 0.0005 19.5 0.0005 0.0005 22.5 0.0005 0.0005 26.0 0.0005 0.0005 30.0 0.0005 0.0005 34.5 0.0005 0.0005 40.0 0.0005 0.0005 46.0 0.0005 0.0005 52.5 0.0005 0.0005 60.0 0.0005 0.0005 69.0 0.0005 0.0005 79.0 0.0005 0.0005 90.5 0.0005 0.0005 105.5 0.0005 0.0005 123.5 0.0005 0.0005 143.0 0.0005 0.0005 163.5 0.0005 0.0005 185.0 0.0005 0.0005 208.0 0.0005 0.0005 232.5 0.0005 0.0005 258.5 0.0005 0.0005 286.0 0.0005 0.0005 331.0 0.0005 0.0005 396.0 0.0005 0.0005 468.5 0.0005 0.0005 549.5 0.0005 0.0005 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1945.0 0.0005 0.0005 2119.0 0.0005 0.0005 2369.0 0.0005 0.0005 2643.5 0.0005 0.0005 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 -1.6 1.8 132 9.0 0.0007 0.0007 11.0 0.0007 0.0007 13.5 0.0007 0.0007 16.5 0.0007 0.0007 19.5 0.0007 0.0007 22.5 0.0007 0.0007 26.0 0.0007 0.0007 30.0 0.0007 0.0007 34.5 0.0007 0.0007 40.0 0.0007 0.0007 46.0 0.0007 0.0007 52.5 0.0007 0.0007 60.0 0.0007 0.0007 69.0 0.0007 0.0007 79.0 0.0007 0.0007 90.5 0.0007 0.0007 105.5 0.0007 0.0007 123.5 0.0007 0.0007 143.0 0.0007 0.0007 163.5 0.0007 0.0007 185.0 0.0007 0.0007 208.0 0.0007 0.0007 232.5 0.0007 0.0007 258.5 0.0007 0.0007 286.0 0.0007 0.0007 331.0 0.0007 0.0007 396.0 0.0007 0.0007 468.5 0.0007 0.0007 549.5 0.0007 0.0007 639.0 0.0007 0.0007 738.0 0.0007 0.0007 847.5 0.0007 0.0007 968.5 0.0007 0.0007 1102.0 0.0007 0.0007 1249.5 0.0007 0.0007 1412.0 0.0007 0.0007 1590.5 0.0007 0.0007 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -1.8 2.0 132 9.0 0.0011 0.0011 11.0 0.0011 0.0011 13.5 0.0011 0.0011 16.5 0.0011 0.0011 19.5 0.0011 0.0011 22.5 0.0011 0.0011 26.0 0.0011 0.0011 30.0 0.0011 0.0011 34.5 0.0011 0.0011 40.0 0.0011 0.0011 46.0 0.0011 0.0011 52.5 0.0011 0.0011 60.0 0.0011 0.0011 69.0 0.0011 0.0011 79.0 0.0011 0.0011 90.5 0.0011 0.0011 105.5 0.0011 0.0011 123.5 0.0011 0.0011 143.0 0.0011 0.0011 163.5 0.0011 0.0011 185.0 0.0011 0.0011 208.0 0.0011 0.0011 232.5 0.0011 0.0011 258.5 0.0011 0.0011 286.0 0.0011 0.0011 331.0 0.0011 0.0011 396.0 0.0011 0.0011 468.5 0.0011 0.0011 549.5 0.0011 0.0011 639.0 0.0011 0.0011 738.0 0.0011 0.0011 847.5 0.0011 0.0011 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0011 0.0011 1412.0 0.0011 0.0011 1590.5 0.0011 0.0011 1787.0 0.0011 0.0011 1945.0 0.0011 0.0011 2119.0 0.0011 0.0011 2369.0 0.0011 0.0011 2643.5 0.0011 0.0011 2945.0 0.0011 0.0011 3276.5 0.0011 0.0011 -2.0 2.2 132 9.0 0.0016 0.0016 11.0 0.0016 0.0016 13.5 0.0016 0.0016 16.5 0.0016 0.0016 19.5 0.0016 0.0016 22.5 0.0016 0.0016 26.0 0.0016 0.0016 30.0 0.0016 0.0016 34.5 0.0016 0.0016 40.0 0.0016 0.0016 46.0 0.0016 0.0016 52.5 0.0016 0.0016 60.0 0.0016 0.0016 69.0 0.0016 0.0016 79.0 0.0016 0.0016 90.5 0.0016 0.0016 105.5 0.0016 0.0016 123.5 0.0016 0.0016 143.0 0.0016 0.0016 163.5 0.0016 0.0016 185.0 0.0016 0.0016 208.0 0.0016 0.0016 232.5 0.0016 0.0016 258.5 0.0016 0.0016 286.0 0.0016 0.0016 331.0 0.0016 0.0016 396.0 0.0016 0.0016 468.5 0.0016 0.0016 549.5 0.0016 0.0016 639.0 0.0016 0.0016 738.0 0.0016 0.0016 847.5 0.0016 0.0016 968.5 0.0016 0.0016 1102.0 0.0016 0.0016 1249.5 0.0016 0.0016 1412.0 0.0016 0.0016 1590.5 0.0016 0.0016 1787.0 0.0016 0.0016 1945.0 0.0016 0.0016 2119.0 0.0016 0.0016 2369.0 0.0016 0.0016 2643.5 0.0016 0.0016 2945.0 0.0016 0.0016 3276.5 0.0016 0.0016 -2.2 2.4 132 9.0 0.0024 0.0024 11.0 0.0024 0.0024 13.5 0.0024 0.0024 16.5 0.0024 0.0024 19.5 0.0024 0.0024 22.5 0.0024 0.0024 26.0 0.0024 0.0024 30.0 0.0024 0.0024 34.5 0.0024 0.0024 40.0 0.0024 0.0024 46.0 0.0024 0.0024 52.5 0.0024 0.0024 60.0 0.0024 0.0024 69.0 0.0024 0.0024 79.0 0.0024 0.0024 90.5 0.0024 0.0024 105.5 0.0024 0.0024 123.5 0.0024 0.0024 143.0 0.0024 0.0024 163.5 0.0024 0.0024 185.0 0.0024 0.0024 208.0 0.0024 0.0024 232.5 0.0024 0.0024 258.5 0.0024 0.0024 286.0 0.0024 0.0024 331.0 0.0024 0.0024 396.0 0.0024 0.0024 468.5 0.0024 0.0024 549.5 0.0024 0.0024 639.0 0.0024 0.0024 738.0 0.0024 0.0024 847.5 0.0024 0.0024 968.5 0.0024 0.0024 1102.0 0.0024 0.0024 1249.5 0.0024 0.0024 1412.0 0.0024 0.0024 1590.5 0.0024 0.0024 1787.0 0.0024 0.0024 1945.0 0.0024 0.0024 2119.0 0.0024 0.0024 2369.0 0.0024 0.0024 2643.5 0.0024 0.0024 2945.0 0.0024 0.0024 3276.5 0.0024 0.0024 -2.4 2.6 132 9.0 0.0037 0.0037 11.0 0.0037 0.0037 13.5 0.0037 0.0037 16.5 0.0037 0.0037 19.5 0.0037 0.0037 22.5 0.0037 0.0037 26.0 0.0037 0.0037 30.0 0.0037 0.0037 34.5 0.0037 0.0037 40.0 0.0037 0.0037 46.0 0.0037 0.0037 52.5 0.0037 0.0037 60.0 0.0037 0.0037 69.0 0.0037 0.0037 79.0 0.0037 0.0037 90.5 0.0037 0.0037 105.5 0.0037 0.0037 123.5 0.0037 0.0037 143.0 0.0037 0.0037 163.5 0.0037 0.0037 185.0 0.0037 0.0037 208.0 0.0037 0.0037 232.5 0.0037 0.0037 258.5 0.0037 0.0037 286.0 0.0037 0.0037 331.0 0.0037 0.0037 396.0 0.0037 0.0037 468.5 0.0037 0.0037 549.5 0.0037 0.0037 639.0 0.0037 0.0037 738.0 0.0037 0.0037 847.5 0.0037 0.0037 968.5 0.0037 0.0037 1102.0 0.0037 0.0037 1249.5 0.0037 0.0037 1412.0 0.0037 0.0037 1590.5 0.0037 0.0037 1787.0 0.0037 0.0037 1945.0 0.0037 0.0037 2119.0 0.0037 0.0037 2369.0 0.0037 0.0037 2643.5 0.0037 0.0037 2945.0 0.0037 0.0037 3276.5 0.0037 0.0037 -2.6 2.8 132 9.0 0.0055 0.0055 11.0 0.0055 0.0055 13.5 0.0055 0.0055 16.5 0.0055 0.0055 19.5 0.0055 0.0055 22.5 0.0055 0.0055 26.0 0.0055 0.0055 30.0 0.0055 0.0055 34.5 0.0055 0.0055 40.0 0.0055 0.0055 46.0 0.0055 0.0055 52.5 0.0055 0.0055 60.0 0.0055 0.0055 69.0 0.0055 0.0055 79.0 0.0055 0.0055 90.5 0.0055 0.0055 105.5 0.0055 0.0055 123.5 0.0055 0.0055 143.0 0.0055 0.0055 163.5 0.0055 0.0055 185.0 0.0055 0.0055 208.0 0.0055 0.0055 232.5 0.0055 0.0055 258.5 0.0055 0.0055 286.0 0.0055 0.0055 331.0 0.0055 0.0055 396.0 0.0055 0.0055 468.5 0.0055 0.0055 549.5 0.0055 0.0055 639.0 0.0055 0.0055 738.0 0.0055 0.0055 847.5 0.0055 0.0055 968.5 0.0055 0.0055 1102.0 0.0055 0.0055 1249.5 0.0055 0.0055 1412.0 0.0055 0.0055 1590.5 0.0055 0.0055 1787.0 0.0055 0.0055 1945.0 0.0055 0.0055 2119.0 0.0055 0.0055 2369.0 0.0055 0.0055 2643.5 0.0055 0.0055 2945.0 0.0055 0.0055 3276.5 0.0055 0.0055 -2.8 3.0 132 9.0 0.0082 0.0082 11.0 0.0082 0.0082 13.5 0.0082 0.0082 16.5 0.0082 0.0082 19.5 0.0082 0.0082 22.5 0.0082 0.0082 26.0 0.0082 0.0082 30.0 0.0082 0.0082 34.5 0.0082 0.0082 40.0 0.0082 0.0082 46.0 0.0082 0.0082 52.5 0.0082 0.0082 60.0 0.0082 0.0082 69.0 0.0082 0.0082 79.0 0.0082 0.0082 90.5 0.0082 0.0082 105.5 0.0082 0.0082 123.5 0.0082 0.0082 143.0 0.0082 0.0082 163.5 0.0082 0.0082 185.0 0.0082 0.0082 208.0 0.0082 0.0082 232.5 0.0082 0.0082 258.5 0.0082 0.0082 286.0 0.0082 0.0082 331.0 0.0082 0.0082 396.0 0.0082 0.0082 468.5 0.0082 0.0082 549.5 0.0082 0.0082 639.0 0.0082 0.0082 738.0 0.0082 0.0082 847.5 0.0082 0.0082 968.5 0.0082 0.0082 1102.0 0.0082 0.0082 1249.5 0.0082 0.0082 1412.0 0.0082 0.0082 1590.5 0.0082 0.0082 1787.0 0.0082 0.0082 1945.0 0.0082 0.0082 2119.0 0.0082 0.0082 2369.0 0.0082 0.0082 2643.5 0.0082 0.0082 2945.0 0.0082 0.0082 3276.5 0.0082 0.0082 -3.0 3.5 132 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1945.0 0.0150 0.0150 2119.0 0.0150 0.0150 2369.0 0.0150 0.0150 2643.5 0.0150 0.0150 2945.0 0.0150 0.0150 3276.5 0.0150 0.0150 -3.5 4.0 132 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1945.0 0.0150 0.0150 2119.0 0.0150 0.0150 2369.0 0.0150 0.0150 2643.5 0.0150 0.0150 2945.0 0.0150 0.0150 3276.5 0.0150 0.0150 -4.0 4.4 132 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1945.0 0.0150 0.0150 2119.0 0.0150 0.0150 2369.0 0.0150 0.0150 2643.5 0.0150 0.0150 2945.0 0.0150 0.0150 3276.5 0.0150 0.0150 -4.4 5.0 132 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1945.0 0.0150 0.0150 2119.0 0.0150 0.0150 2369.0 0.0150 0.0150 2643.5 0.0150 0.0150 2945.0 0.0150 0.0150 3276.5 0.0150 0.0150 -5.0 5.4 132 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1945.0 0.0150 0.0150 2119.0 0.0150 0.0150 2369.0 0.0150 0.0150 2643.5 0.0150 0.0150 2945.0 0.0150 0.0150 3276.5 0.0150 0.0150 -[RelativeStatEC2] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --5.0 -4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.4 -4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.0 -3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.5 -3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.0 -2.8 132 9.0 0.0135 0.0135 11.0 0.0135 0.0135 13.5 0.0135 0.0135 16.5 0.0135 0.0135 19.5 0.0135 0.0135 22.5 0.0135 0.0135 26.0 0.0135 0.0135 30.0 0.0135 0.0135 34.5 0.0135 0.0135 40.0 0.0135 0.0135 46.0 0.0135 0.0135 52.5 0.0135 0.0135 60.0 0.0135 0.0135 69.0 0.0135 0.0135 79.0 0.0135 0.0135 90.5 0.0135 0.0135 105.5 0.0135 0.0135 123.5 0.0135 0.0135 143.0 0.0135 0.0135 163.5 0.0135 0.0135 185.0 0.0135 0.0135 208.0 0.0135 0.0135 232.5 0.0135 0.0135 258.5 0.0135 0.0135 286.0 0.0135 0.0135 331.0 0.0135 0.0135 396.0 0.0135 0.0135 468.5 0.0135 0.0135 549.5 0.0135 0.0135 639.0 0.0135 0.0135 738.0 0.0135 0.0135 847.5 0.0135 0.0135 968.5 0.0135 0.0135 1102.0 0.0135 0.0135 1249.5 0.0135 0.0135 1412.0 0.0135 0.0135 1590.5 0.0135 0.0135 1787.0 0.0135 0.0135 1945.0 0.0135 0.0135 2119.0 0.0135 0.0135 2369.0 0.0135 0.0135 2643.5 0.0135 0.0135 2945.0 0.0135 0.0135 3276.5 0.0135 0.0135 --2.8 -2.6 132 9.0 0.0029 0.0029 11.0 0.0029 0.0029 13.5 0.0029 0.0029 16.5 0.0029 0.0029 19.5 0.0029 0.0029 22.5 0.0029 0.0029 26.0 0.0029 0.0029 30.0 0.0029 0.0029 34.5 0.0029 0.0029 40.0 0.0029 0.0029 46.0 0.0029 0.0029 52.5 0.0029 0.0029 60.0 0.0029 0.0029 69.0 0.0029 0.0029 79.0 0.0029 0.0029 90.5 0.0029 0.0029 105.5 0.0029 0.0029 123.5 0.0029 0.0029 143.0 0.0029 0.0029 163.5 0.0029 0.0029 185.0 0.0029 0.0029 208.0 0.0029 0.0029 232.5 0.0029 0.0029 258.5 0.0029 0.0029 286.0 0.0029 0.0029 331.0 0.0029 0.0029 396.0 0.0029 0.0029 468.5 0.0029 0.0029 549.5 0.0029 0.0029 639.0 0.0029 0.0029 738.0 0.0029 0.0029 847.5 0.0029 0.0029 968.5 0.0029 0.0029 1102.0 0.0029 0.0029 1249.5 0.0029 0.0029 1412.0 0.0029 0.0029 1590.5 0.0029 0.0029 1787.0 0.0029 0.0029 1945.0 0.0029 0.0029 2119.0 0.0029 0.0029 2369.0 0.0029 0.0029 2643.5 0.0029 0.0029 2945.0 0.0029 0.0029 3276.5 0.0029 0.0029 --2.6 -2.4 132 9.0 0.0029 0.0029 11.0 0.0029 0.0029 13.5 0.0029 0.0029 16.5 0.0029 0.0029 19.5 0.0029 0.0029 22.5 0.0029 0.0029 26.0 0.0029 0.0029 30.0 0.0029 0.0029 34.5 0.0029 0.0029 40.0 0.0029 0.0029 46.0 0.0029 0.0029 52.5 0.0029 0.0029 60.0 0.0029 0.0029 69.0 0.0029 0.0029 79.0 0.0029 0.0029 90.5 0.0029 0.0029 105.5 0.0029 0.0029 123.5 0.0029 0.0029 143.0 0.0029 0.0029 163.5 0.0029 0.0029 185.0 0.0029 0.0029 208.0 0.0029 0.0029 232.5 0.0029 0.0029 258.5 0.0029 0.0029 286.0 0.0029 0.0029 331.0 0.0029 0.0029 396.0 0.0029 0.0029 468.5 0.0029 0.0029 549.5 0.0029 0.0029 639.0 0.0029 0.0029 738.0 0.0029 0.0029 847.5 0.0029 0.0029 968.5 0.0029 0.0029 1102.0 0.0029 0.0029 1249.5 0.0029 0.0029 1412.0 0.0029 0.0029 1590.5 0.0029 0.0029 1787.0 0.0029 0.0029 1945.0 0.0029 0.0029 2119.0 0.0029 0.0029 2369.0 0.0029 0.0029 2643.5 0.0029 0.0029 2945.0 0.0029 0.0029 3276.5 0.0029 0.0029 --2.4 -2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.2 -2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.0 -1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.8 -1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.6 -1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.4 -1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.2 -1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.0 -0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.8 -0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.6 -0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.4 -0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.2 0.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.0 0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.2 0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.4 0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.6 0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.8 1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.0 1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.2 1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.4 1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.6 1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.8 2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.0 2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.2 2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.4 2.6 132 9.0 0.0029 0.0029 11.0 0.0029 0.0029 13.5 0.0029 0.0029 16.5 0.0029 0.0029 19.5 0.0029 0.0029 22.5 0.0029 0.0029 26.0 0.0029 0.0029 30.0 0.0029 0.0029 34.5 0.0029 0.0029 40.0 0.0029 0.0029 46.0 0.0029 0.0029 52.5 0.0029 0.0029 60.0 0.0029 0.0029 69.0 0.0029 0.0029 79.0 0.0029 0.0029 90.5 0.0029 0.0029 105.5 0.0029 0.0029 123.5 0.0029 0.0029 143.0 0.0029 0.0029 163.5 0.0029 0.0029 185.0 0.0029 0.0029 208.0 0.0029 0.0029 232.5 0.0029 0.0029 258.5 0.0029 0.0029 286.0 0.0029 0.0029 331.0 0.0029 0.0029 396.0 0.0029 0.0029 468.5 0.0029 0.0029 549.5 0.0029 0.0029 639.0 0.0029 0.0029 738.0 0.0029 0.0029 847.5 0.0029 0.0029 968.5 0.0029 0.0029 1102.0 0.0029 0.0029 1249.5 0.0029 0.0029 1412.0 0.0029 0.0029 1590.5 0.0029 0.0029 1787.0 0.0029 0.0029 1945.0 0.0029 0.0029 2119.0 0.0029 0.0029 2369.0 0.0029 0.0029 2643.5 0.0029 0.0029 2945.0 0.0029 0.0029 3276.5 0.0029 0.0029 -2.6 2.8 132 9.0 0.0029 0.0029 11.0 0.0029 0.0029 13.5 0.0029 0.0029 16.5 0.0029 0.0029 19.5 0.0029 0.0029 22.5 0.0029 0.0029 26.0 0.0029 0.0029 30.0 0.0029 0.0029 34.5 0.0029 0.0029 40.0 0.0029 0.0029 46.0 0.0029 0.0029 52.5 0.0029 0.0029 60.0 0.0029 0.0029 69.0 0.0029 0.0029 79.0 0.0029 0.0029 90.5 0.0029 0.0029 105.5 0.0029 0.0029 123.5 0.0029 0.0029 143.0 0.0029 0.0029 163.5 0.0029 0.0029 185.0 0.0029 0.0029 208.0 0.0029 0.0029 232.5 0.0029 0.0029 258.5 0.0029 0.0029 286.0 0.0029 0.0029 331.0 0.0029 0.0029 396.0 0.0029 0.0029 468.5 0.0029 0.0029 549.5 0.0029 0.0029 639.0 0.0029 0.0029 738.0 0.0029 0.0029 847.5 0.0029 0.0029 968.5 0.0029 0.0029 1102.0 0.0029 0.0029 1249.5 0.0029 0.0029 1412.0 0.0029 0.0029 1590.5 0.0029 0.0029 1787.0 0.0029 0.0029 1945.0 0.0029 0.0029 2119.0 0.0029 0.0029 2369.0 0.0029 0.0029 2643.5 0.0029 0.0029 2945.0 0.0029 0.0029 3276.5 0.0029 0.0029 -2.8 3.0 132 9.0 0.0135 0.0135 11.0 0.0135 0.0135 13.5 0.0135 0.0135 16.5 0.0135 0.0135 19.5 0.0135 0.0135 22.5 0.0135 0.0135 26.0 0.0135 0.0135 30.0 0.0135 0.0135 34.5 0.0135 0.0135 40.0 0.0135 0.0135 46.0 0.0135 0.0135 52.5 0.0135 0.0135 60.0 0.0135 0.0135 69.0 0.0135 0.0135 79.0 0.0135 0.0135 90.5 0.0135 0.0135 105.5 0.0135 0.0135 123.5 0.0135 0.0135 143.0 0.0135 0.0135 163.5 0.0135 0.0135 185.0 0.0135 0.0135 208.0 0.0135 0.0135 232.5 0.0135 0.0135 258.5 0.0135 0.0135 286.0 0.0135 0.0135 331.0 0.0135 0.0135 396.0 0.0135 0.0135 468.5 0.0135 0.0135 549.5 0.0135 0.0135 639.0 0.0135 0.0135 738.0 0.0135 0.0135 847.5 0.0135 0.0135 968.5 0.0135 0.0135 1102.0 0.0135 0.0135 1249.5 0.0135 0.0135 1412.0 0.0135 0.0135 1590.5 0.0135 0.0135 1787.0 0.0135 0.0135 1945.0 0.0135 0.0135 2119.0 0.0135 0.0135 2369.0 0.0135 0.0135 2643.5 0.0135 0.0135 2945.0 0.0135 0.0135 3276.5 0.0135 0.0135 -3.0 3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.5 4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.0 4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.4 5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -5.0 5.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -[RelativeStatHF] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0248 0.0248 11.0 0.0248 0.0248 13.5 0.0248 0.0248 16.5 0.0248 0.0248 19.5 0.0248 0.0248 22.5 0.0248 0.0248 26.0 0.0248 0.0248 30.0 0.0248 0.0248 34.5 0.0248 0.0248 40.0 0.0248 0.0248 46.0 0.0248 0.0248 52.5 0.0248 0.0248 60.0 0.0248 0.0248 69.0 0.0248 0.0248 79.0 0.0248 0.0248 90.5 0.0248 0.0248 105.5 0.0248 0.0248 123.5 0.0248 0.0248 143.0 0.0248 0.0248 163.5 0.0248 0.0248 185.0 0.0248 0.0248 208.0 0.0248 0.0248 232.5 0.0248 0.0248 258.5 0.0248 0.0248 286.0 0.0248 0.0248 331.0 0.0248 0.0248 396.0 0.0248 0.0248 468.5 0.0248 0.0248 549.5 0.0248 0.0248 639.0 0.0248 0.0248 738.0 0.0248 0.0248 847.5 0.0248 0.0248 968.5 0.0248 0.0248 1102.0 0.0248 0.0248 1249.5 0.0248 0.0248 1412.0 0.0248 0.0248 1590.5 0.0248 0.0248 1787.0 0.0248 0.0248 1945.0 0.0248 0.0248 2119.0 0.0248 0.0248 2369.0 0.0248 0.0248 2643.5 0.0248 0.0248 2945.0 0.0248 0.0248 3276.5 0.0248 0.0248 --5.0 -4.4 132 9.0 0.0248 0.0248 11.0 0.0248 0.0248 13.5 0.0248 0.0248 16.5 0.0248 0.0248 19.5 0.0248 0.0248 22.5 0.0248 0.0248 26.0 0.0248 0.0248 30.0 0.0248 0.0248 34.5 0.0248 0.0248 40.0 0.0248 0.0248 46.0 0.0248 0.0248 52.5 0.0248 0.0248 60.0 0.0248 0.0248 69.0 0.0248 0.0248 79.0 0.0248 0.0248 90.5 0.0248 0.0248 105.5 0.0248 0.0248 123.5 0.0248 0.0248 143.0 0.0248 0.0248 163.5 0.0248 0.0248 185.0 0.0248 0.0248 208.0 0.0248 0.0248 232.5 0.0248 0.0248 258.5 0.0248 0.0248 286.0 0.0248 0.0248 331.0 0.0248 0.0248 396.0 0.0248 0.0248 468.5 0.0248 0.0248 549.5 0.0248 0.0248 639.0 0.0248 0.0248 738.0 0.0248 0.0248 847.5 0.0248 0.0248 968.5 0.0248 0.0248 1102.0 0.0248 0.0248 1249.5 0.0248 0.0248 1412.0 0.0248 0.0248 1590.5 0.0248 0.0248 1787.0 0.0248 0.0248 1945.0 0.0248 0.0248 2119.0 0.0248 0.0248 2369.0 0.0248 0.0248 2643.5 0.0248 0.0248 2945.0 0.0248 0.0248 3276.5 0.0248 0.0248 --4.4 -4.0 132 9.0 0.0248 0.0248 11.0 0.0248 0.0248 13.5 0.0248 0.0248 16.5 0.0248 0.0248 19.5 0.0248 0.0248 22.5 0.0248 0.0248 26.0 0.0248 0.0248 30.0 0.0248 0.0248 34.5 0.0248 0.0248 40.0 0.0248 0.0248 46.0 0.0248 0.0248 52.5 0.0248 0.0248 60.0 0.0248 0.0248 69.0 0.0248 0.0248 79.0 0.0248 0.0248 90.5 0.0248 0.0248 105.5 0.0248 0.0248 123.5 0.0248 0.0248 143.0 0.0248 0.0248 163.5 0.0248 0.0248 185.0 0.0248 0.0248 208.0 0.0248 0.0248 232.5 0.0248 0.0248 258.5 0.0248 0.0248 286.0 0.0248 0.0248 331.0 0.0248 0.0248 396.0 0.0248 0.0248 468.5 0.0248 0.0248 549.5 0.0248 0.0248 639.0 0.0248 0.0248 738.0 0.0248 0.0248 847.5 0.0248 0.0248 968.5 0.0248 0.0248 1102.0 0.0248 0.0248 1249.5 0.0248 0.0248 1412.0 0.0248 0.0248 1590.5 0.0248 0.0248 1787.0 0.0248 0.0248 1945.0 0.0248 0.0248 2119.0 0.0248 0.0248 2369.0 0.0248 0.0248 2643.5 0.0248 0.0248 2945.0 0.0248 0.0248 3276.5 0.0248 0.0248 --4.0 -3.5 132 9.0 0.0248 0.0248 11.0 0.0248 0.0248 13.5 0.0248 0.0248 16.5 0.0248 0.0248 19.5 0.0248 0.0248 22.5 0.0248 0.0248 26.0 0.0248 0.0248 30.0 0.0248 0.0248 34.5 0.0248 0.0248 40.0 0.0248 0.0248 46.0 0.0248 0.0248 52.5 0.0248 0.0248 60.0 0.0248 0.0248 69.0 0.0248 0.0248 79.0 0.0248 0.0248 90.5 0.0248 0.0248 105.5 0.0248 0.0248 123.5 0.0248 0.0248 143.0 0.0248 0.0248 163.5 0.0248 0.0248 185.0 0.0248 0.0248 208.0 0.0248 0.0248 232.5 0.0248 0.0248 258.5 0.0248 0.0248 286.0 0.0248 0.0248 331.0 0.0248 0.0248 396.0 0.0248 0.0248 468.5 0.0248 0.0248 549.5 0.0248 0.0248 639.0 0.0248 0.0248 738.0 0.0248 0.0248 847.5 0.0248 0.0248 968.5 0.0248 0.0248 1102.0 0.0248 0.0248 1249.5 0.0248 0.0248 1412.0 0.0248 0.0248 1590.5 0.0248 0.0248 1787.0 0.0248 0.0248 1945.0 0.0248 0.0248 2119.0 0.0248 0.0248 2369.0 0.0248 0.0248 2643.5 0.0248 0.0248 2945.0 0.0248 0.0248 3276.5 0.0248 0.0248 --3.5 -3.0 132 9.0 0.0104 0.0104 11.0 0.0104 0.0104 13.5 0.0104 0.0104 16.5 0.0104 0.0104 19.5 0.0104 0.0104 22.5 0.0104 0.0104 26.0 0.0104 0.0104 30.0 0.0104 0.0104 34.5 0.0104 0.0104 40.0 0.0104 0.0104 46.0 0.0104 0.0104 52.5 0.0104 0.0104 60.0 0.0104 0.0104 69.0 0.0104 0.0104 79.0 0.0104 0.0104 90.5 0.0104 0.0104 105.5 0.0104 0.0104 123.5 0.0104 0.0104 143.0 0.0104 0.0104 163.5 0.0104 0.0104 185.0 0.0104 0.0104 208.0 0.0104 0.0104 232.5 0.0104 0.0104 258.5 0.0104 0.0104 286.0 0.0104 0.0104 331.0 0.0104 0.0104 396.0 0.0104 0.0104 468.5 0.0104 0.0104 549.5 0.0104 0.0104 639.0 0.0104 0.0104 738.0 0.0104 0.0104 847.5 0.0104 0.0104 968.5 0.0104 0.0104 1102.0 0.0104 0.0104 1249.5 0.0104 0.0104 1412.0 0.0104 0.0104 1590.5 0.0104 0.0104 1787.0 0.0104 0.0104 1945.0 0.0104 0.0104 2119.0 0.0104 0.0104 2369.0 0.0104 0.0104 2643.5 0.0104 0.0104 2945.0 0.0104 0.0104 3276.5 0.0104 0.0104 --3.0 -2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.8 -2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.6 -2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.4 -2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.2 -2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.0 -1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.8 -1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.6 -1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.4 -1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.2 -1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.0 -0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.8 -0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.6 -0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.4 -0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.2 0.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.0 0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.2 0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.4 0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.6 0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.8 1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.0 1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.2 1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.4 1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.6 1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.8 2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.0 2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.2 2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.4 2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.6 2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.8 3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.0 3.5 132 9.0 0.0104 0.0104 11.0 0.0104 0.0104 13.5 0.0104 0.0104 16.5 0.0104 0.0104 19.5 0.0104 0.0104 22.5 0.0104 0.0104 26.0 0.0104 0.0104 30.0 0.0104 0.0104 34.5 0.0104 0.0104 40.0 0.0104 0.0104 46.0 0.0104 0.0104 52.5 0.0104 0.0104 60.0 0.0104 0.0104 69.0 0.0104 0.0104 79.0 0.0104 0.0104 90.5 0.0104 0.0104 105.5 0.0104 0.0104 123.5 0.0104 0.0104 143.0 0.0104 0.0104 163.5 0.0104 0.0104 185.0 0.0104 0.0104 208.0 0.0104 0.0104 232.5 0.0104 0.0104 258.5 0.0104 0.0104 286.0 0.0104 0.0104 331.0 0.0104 0.0104 396.0 0.0104 0.0104 468.5 0.0104 0.0104 549.5 0.0104 0.0104 639.0 0.0104 0.0104 738.0 0.0104 0.0104 847.5 0.0104 0.0104 968.5 0.0104 0.0104 1102.0 0.0104 0.0104 1249.5 0.0104 0.0104 1412.0 0.0104 0.0104 1590.5 0.0104 0.0104 1787.0 0.0104 0.0104 1945.0 0.0104 0.0104 2119.0 0.0104 0.0104 2369.0 0.0104 0.0104 2643.5 0.0104 0.0104 2945.0 0.0104 0.0104 3276.5 0.0104 0.0104 -3.5 4.0 132 9.0 0.0248 0.0248 11.0 0.0248 0.0248 13.5 0.0248 0.0248 16.5 0.0248 0.0248 19.5 0.0248 0.0248 22.5 0.0248 0.0248 26.0 0.0248 0.0248 30.0 0.0248 0.0248 34.5 0.0248 0.0248 40.0 0.0248 0.0248 46.0 0.0248 0.0248 52.5 0.0248 0.0248 60.0 0.0248 0.0248 69.0 0.0248 0.0248 79.0 0.0248 0.0248 90.5 0.0248 0.0248 105.5 0.0248 0.0248 123.5 0.0248 0.0248 143.0 0.0248 0.0248 163.5 0.0248 0.0248 185.0 0.0248 0.0248 208.0 0.0248 0.0248 232.5 0.0248 0.0248 258.5 0.0248 0.0248 286.0 0.0248 0.0248 331.0 0.0248 0.0248 396.0 0.0248 0.0248 468.5 0.0248 0.0248 549.5 0.0248 0.0248 639.0 0.0248 0.0248 738.0 0.0248 0.0248 847.5 0.0248 0.0248 968.5 0.0248 0.0248 1102.0 0.0248 0.0248 1249.5 0.0248 0.0248 1412.0 0.0248 0.0248 1590.5 0.0248 0.0248 1787.0 0.0248 0.0248 1945.0 0.0248 0.0248 2119.0 0.0248 0.0248 2369.0 0.0248 0.0248 2643.5 0.0248 0.0248 2945.0 0.0248 0.0248 3276.5 0.0248 0.0248 -4.0 4.4 132 9.0 0.0248 0.0248 11.0 0.0248 0.0248 13.5 0.0248 0.0248 16.5 0.0248 0.0248 19.5 0.0248 0.0248 22.5 0.0248 0.0248 26.0 0.0248 0.0248 30.0 0.0248 0.0248 34.5 0.0248 0.0248 40.0 0.0248 0.0248 46.0 0.0248 0.0248 52.5 0.0248 0.0248 60.0 0.0248 0.0248 69.0 0.0248 0.0248 79.0 0.0248 0.0248 90.5 0.0248 0.0248 105.5 0.0248 0.0248 123.5 0.0248 0.0248 143.0 0.0248 0.0248 163.5 0.0248 0.0248 185.0 0.0248 0.0248 208.0 0.0248 0.0248 232.5 0.0248 0.0248 258.5 0.0248 0.0248 286.0 0.0248 0.0248 331.0 0.0248 0.0248 396.0 0.0248 0.0248 468.5 0.0248 0.0248 549.5 0.0248 0.0248 639.0 0.0248 0.0248 738.0 0.0248 0.0248 847.5 0.0248 0.0248 968.5 0.0248 0.0248 1102.0 0.0248 0.0248 1249.5 0.0248 0.0248 1412.0 0.0248 0.0248 1590.5 0.0248 0.0248 1787.0 0.0248 0.0248 1945.0 0.0248 0.0248 2119.0 0.0248 0.0248 2369.0 0.0248 0.0248 2643.5 0.0248 0.0248 2945.0 0.0248 0.0248 3276.5 0.0248 0.0248 -4.4 5.0 132 9.0 0.0248 0.0248 11.0 0.0248 0.0248 13.5 0.0248 0.0248 16.5 0.0248 0.0248 19.5 0.0248 0.0248 22.5 0.0248 0.0248 26.0 0.0248 0.0248 30.0 0.0248 0.0248 34.5 0.0248 0.0248 40.0 0.0248 0.0248 46.0 0.0248 0.0248 52.5 0.0248 0.0248 60.0 0.0248 0.0248 69.0 0.0248 0.0248 79.0 0.0248 0.0248 90.5 0.0248 0.0248 105.5 0.0248 0.0248 123.5 0.0248 0.0248 143.0 0.0248 0.0248 163.5 0.0248 0.0248 185.0 0.0248 0.0248 208.0 0.0248 0.0248 232.5 0.0248 0.0248 258.5 0.0248 0.0248 286.0 0.0248 0.0248 331.0 0.0248 0.0248 396.0 0.0248 0.0248 468.5 0.0248 0.0248 549.5 0.0248 0.0248 639.0 0.0248 0.0248 738.0 0.0248 0.0248 847.5 0.0248 0.0248 968.5 0.0248 0.0248 1102.0 0.0248 0.0248 1249.5 0.0248 0.0248 1412.0 0.0248 0.0248 1590.5 0.0248 0.0248 1787.0 0.0248 0.0248 1945.0 0.0248 0.0248 2119.0 0.0248 0.0248 2369.0 0.0248 0.0248 2643.5 0.0248 0.0248 2945.0 0.0248 0.0248 3276.5 0.0248 0.0248 -5.0 5.4 132 9.0 0.0248 0.0248 11.0 0.0248 0.0248 13.5 0.0248 0.0248 16.5 0.0248 0.0248 19.5 0.0248 0.0248 22.5 0.0248 0.0248 26.0 0.0248 0.0248 30.0 0.0248 0.0248 34.5 0.0248 0.0248 40.0 0.0248 0.0248 46.0 0.0248 0.0248 52.5 0.0248 0.0248 60.0 0.0248 0.0248 69.0 0.0248 0.0248 79.0 0.0248 0.0248 90.5 0.0248 0.0248 105.5 0.0248 0.0248 123.5 0.0248 0.0248 143.0 0.0248 0.0248 163.5 0.0248 0.0248 185.0 0.0248 0.0248 208.0 0.0248 0.0248 232.5 0.0248 0.0248 258.5 0.0248 0.0248 286.0 0.0248 0.0248 331.0 0.0248 0.0248 396.0 0.0248 0.0248 468.5 0.0248 0.0248 549.5 0.0248 0.0248 639.0 0.0248 0.0248 738.0 0.0248 0.0248 847.5 0.0248 0.0248 968.5 0.0248 0.0248 1102.0 0.0248 0.0248 1249.5 0.0248 0.0248 1412.0 0.0248 0.0248 1590.5 0.0248 0.0248 1787.0 0.0248 0.0248 1945.0 0.0248 0.0248 2119.0 0.0248 0.0248 2369.0 0.0248 0.0248 2643.5 0.0248 0.0248 2945.0 0.0248 0.0248 3276.5 0.0248 0.0248 -[PileUpDataMC] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 -0.0083 -0.0083 11.0 -0.0070 -0.0070 13.5 -0.0059 -0.0059 16.5 -0.0049 -0.0049 19.5 -0.0042 -0.0042 22.5 -0.0037 -0.0037 26.0 -0.0033 -0.0033 30.0 -0.0029 -0.0029 34.5 -0.0025 -0.0025 40.0 -0.0022 -0.0022 46.0 -0.0020 -0.0020 52.5 -0.0018 -0.0018 60.0 -0.0016 -0.0016 69.0 -0.0014 -0.0014 79.0 -0.0013 -0.0013 90.5 -0.0012 -0.0012 105.5 -0.0010 -0.0010 123.5 -0.0009 -0.0009 143.0 -0.0008 -0.0008 163.5 -0.0007 -0.0007 185.0 -0.0006 -0.0006 208.0 -0.0006 -0.0006 232.5 -0.0005 -0.0005 258.5 -0.0005 -0.0005 286.0 -0.0004 -0.0004 331.0 -0.0004 -0.0004 396.0 -0.0003 -0.0003 468.5 -0.0003 -0.0003 549.5 -0.0003 -0.0003 639.0 -0.0002 -0.0002 738.0 -0.0002 -0.0002 847.5 -0.0002 -0.0002 968.5 -0.0002 -0.0002 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1945.0 -0.0001 -0.0001 2119.0 -0.0001 -0.0001 2369.0 -0.0001 -0.0001 2643.5 -0.0001 -0.0001 2945.0 -0.0001 -0.0001 3276.5 -0.0001 -0.0001 --5.0 -4.4 132 9.0 -0.0020 -0.0020 11.0 -0.0017 -0.0017 13.5 -0.0014 -0.0014 16.5 -0.0012 -0.0012 19.5 -0.0010 -0.0010 22.5 -0.0009 -0.0009 26.0 -0.0008 -0.0008 30.0 -0.0007 -0.0007 34.5 -0.0006 -0.0006 40.0 -0.0005 -0.0005 46.0 -0.0005 -0.0005 52.5 -0.0004 -0.0004 60.0 -0.0004 -0.0004 69.0 -0.0003 -0.0003 79.0 -0.0003 -0.0003 90.5 -0.0002 -0.0002 105.5 -0.0002 -0.0002 123.5 -0.0002 -0.0002 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0001 -0.0001 208.0 -0.0001 -0.0001 232.5 -0.0001 -0.0001 258.5 -0.0001 -0.0001 286.0 -0.0001 -0.0001 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0000 -0.0000 738.0 -0.0000 -0.0000 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1945.0 -0.0000 -0.0000 2119.0 -0.0000 -0.0000 2369.0 -0.0000 -0.0000 2643.5 -0.0000 -0.0000 2945.0 -0.0000 -0.0000 3276.5 -0.0000 -0.0000 --4.4 -4.0 132 9.0 0.0093 0.0093 11.0 0.0078 0.0078 13.5 0.0063 0.0063 16.5 0.0051 0.0051 19.5 0.0043 0.0043 22.5 0.0037 0.0037 26.0 0.0032 0.0032 30.0 0.0028 0.0028 34.5 0.0024 0.0024 40.0 0.0021 0.0021 46.0 0.0019 0.0019 52.5 0.0016 0.0016 60.0 0.0014 0.0014 69.0 0.0013 0.0013 79.0 0.0011 0.0011 90.5 0.0010 0.0010 105.5 0.0008 0.0008 123.5 0.0007 0.0007 143.0 0.0006 0.0006 163.5 0.0006 0.0006 185.0 0.0005 0.0005 208.0 0.0005 0.0005 232.5 0.0004 0.0004 258.5 0.0004 0.0004 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1945.0 0.0001 0.0001 2119.0 0.0001 0.0001 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.0 -3.5 132 9.0 0.0343 0.0343 11.0 0.0284 0.0284 13.5 0.0231 0.0231 16.5 0.0186 0.0186 19.5 0.0156 0.0156 22.5 0.0134 0.0134 26.0 0.0115 0.0115 30.0 0.0099 0.0099 34.5 0.0086 0.0086 40.0 0.0074 0.0074 46.0 0.0064 0.0064 52.5 0.0056 0.0056 60.0 0.0049 0.0049 69.0 0.0043 0.0043 79.0 0.0037 0.0037 90.5 0.0033 0.0033 105.5 0.0028 0.0028 123.5 0.0025 0.0025 143.0 0.0021 0.0021 163.5 0.0019 0.0019 185.0 0.0017 0.0017 208.0 0.0015 0.0015 232.5 0.0014 0.0014 258.5 0.0012 0.0012 286.0 0.0011 0.0011 331.0 0.0010 0.0010 396.0 0.0008 0.0008 468.5 0.0007 0.0007 549.5 0.0006 0.0006 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0004 0.0004 968.5 0.0004 0.0004 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1945.0 0.0002 0.0002 2119.0 0.0002 0.0002 2369.0 0.0002 0.0002 2643.5 0.0001 0.0001 2945.0 0.0001 0.0001 3276.5 0.0001 0.0001 --3.5 -3.0 132 9.0 0.0460 0.0460 11.0 0.0384 0.0384 13.5 0.0314 0.0314 16.5 0.0257 0.0257 19.5 0.0217 0.0217 22.5 0.0188 0.0188 26.0 0.0163 0.0163 30.0 0.0142 0.0142 34.5 0.0123 0.0123 40.0 0.0107 0.0107 46.0 0.0093 0.0093 52.5 0.0082 0.0082 60.0 0.0072 0.0072 69.0 0.0063 0.0063 79.0 0.0055 0.0055 90.5 0.0048 0.0048 105.5 0.0042 0.0042 123.5 0.0036 0.0036 143.0 0.0031 0.0031 163.5 0.0028 0.0028 185.0 0.0025 0.0025 208.0 0.0022 0.0022 232.5 0.0020 0.0020 258.5 0.0018 0.0018 286.0 0.0017 0.0017 331.0 0.0015 0.0015 396.0 0.0012 0.0012 468.5 0.0011 0.0011 549.5 0.0009 0.0009 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0006 0.0006 968.5 0.0006 0.0006 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0002 0.0002 2945.0 0.0002 0.0002 3276.5 0.0002 0.0002 --3.0 -2.8 132 9.0 -0.0086 -0.0086 11.0 -0.0071 -0.0071 13.5 -0.0057 -0.0057 16.5 -0.0046 -0.0046 19.5 -0.0039 -0.0039 22.5 -0.0033 -0.0033 26.0 -0.0029 -0.0029 30.0 -0.0025 -0.0025 34.5 -0.0021 -0.0021 40.0 -0.0018 -0.0018 46.0 -0.0016 -0.0016 52.5 -0.0014 -0.0014 60.0 -0.0012 -0.0012 69.0 -0.0011 -0.0011 79.0 -0.0009 -0.0009 90.5 -0.0008 -0.0008 105.5 -0.0007 -0.0007 123.5 -0.0006 -0.0006 143.0 -0.0005 -0.0005 163.5 -0.0005 -0.0005 185.0 -0.0004 -0.0004 208.0 -0.0004 -0.0004 232.5 -0.0003 -0.0003 258.5 -0.0003 -0.0003 286.0 -0.0003 -0.0003 331.0 -0.0002 -0.0002 396.0 -0.0002 -0.0002 468.5 -0.0002 -0.0002 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1945.0 -0.0000 -0.0000 2119.0 -0.0000 -0.0000 2369.0 -0.0000 -0.0000 2643.5 -0.0000 -0.0000 2945.0 -0.0000 -0.0000 3276.5 -0.0000 -0.0000 --2.8 -2.6 132 9.0 -0.0351 -0.0351 11.0 -0.0290 -0.0290 13.5 -0.0234 -0.0234 16.5 -0.0188 -0.0188 19.5 -0.0157 -0.0157 22.5 -0.0135 -0.0135 26.0 -0.0116 -0.0116 30.0 -0.0100 -0.0100 34.5 -0.0087 -0.0087 40.0 -0.0075 -0.0075 46.0 -0.0066 -0.0066 52.5 -0.0058 -0.0058 60.0 -0.0051 -0.0051 69.0 -0.0044 -0.0044 79.0 -0.0039 -0.0039 90.5 -0.0034 -0.0034 105.5 -0.0029 -0.0029 123.5 -0.0025 -0.0025 143.0 -0.0022 -0.0022 163.5 -0.0019 -0.0019 185.0 -0.0017 -0.0017 208.0 -0.0015 -0.0015 232.5 -0.0013 -0.0013 258.5 -0.0012 -0.0012 286.0 -0.0011 -0.0011 331.0 -0.0009 -0.0009 396.0 -0.0008 -0.0008 468.5 -0.0007 -0.0007 549.5 -0.0006 -0.0006 639.0 -0.0005 -0.0005 738.0 -0.0004 -0.0004 847.5 -0.0004 -0.0004 968.5 -0.0003 -0.0003 1102.0 -0.0003 -0.0003 1249.5 -0.0003 -0.0003 1412.0 -0.0002 -0.0002 1590.5 -0.0002 -0.0002 1787.0 -0.0002 -0.0002 1945.0 -0.0002 -0.0002 2119.0 -0.0002 -0.0002 2369.0 -0.0001 -0.0001 2643.5 -0.0001 -0.0001 2945.0 -0.0001 -0.0001 3276.5 -0.0001 -0.0001 --2.6 -2.4 132 9.0 -0.0570 -0.0570 11.0 -0.0480 -0.0480 13.5 -0.0394 -0.0394 16.5 -0.0322 -0.0322 19.5 -0.0274 -0.0274 22.5 -0.0238 -0.0238 26.0 -0.0208 -0.0208 30.0 -0.0183 -0.0183 34.5 -0.0161 -0.0161 40.0 -0.0141 -0.0141 46.0 -0.0125 -0.0125 52.5 -0.0112 -0.0112 60.0 -0.0099 -0.0099 69.0 -0.0088 -0.0088 79.0 -0.0078 -0.0078 90.5 -0.0069 -0.0069 105.5 -0.0061 -0.0061 123.5 -0.0053 -0.0053 143.0 -0.0046 -0.0046 163.5 -0.0041 -0.0041 185.0 -0.0037 -0.0037 208.0 -0.0033 -0.0033 232.5 -0.0030 -0.0030 258.5 -0.0027 -0.0027 286.0 -0.0025 -0.0025 331.0 -0.0022 -0.0022 396.0 -0.0018 -0.0018 468.5 -0.0016 -0.0016 549.5 -0.0014 -0.0014 639.0 -0.0012 -0.0012 738.0 -0.0011 -0.0011 847.5 -0.0009 -0.0009 968.5 -0.0008 -0.0008 1102.0 -0.0007 -0.0007 1249.5 -0.0007 -0.0007 1412.0 -0.0006 -0.0006 1590.5 -0.0005 -0.0005 1787.0 -0.0005 -0.0005 1945.0 -0.0004 -0.0004 2119.0 -0.0004 -0.0004 2369.0 -0.0004 -0.0004 2643.5 -0.0003 -0.0003 2945.0 -0.0003 -0.0003 3276.5 -0.0003 -0.0003 --2.4 -2.2 132 9.0 -0.0361 -0.0361 11.0 -0.0307 -0.0307 13.5 -0.0254 -0.0254 16.5 -0.0211 -0.0211 19.5 -0.0182 -0.0182 22.5 -0.0160 -0.0160 26.0 -0.0141 -0.0141 30.0 -0.0124 -0.0124 34.5 -0.0110 -0.0110 40.0 -0.0097 -0.0097 46.0 -0.0086 -0.0086 52.5 -0.0077 -0.0077 60.0 -0.0069 -0.0069 69.0 -0.0062 -0.0062 79.0 -0.0055 -0.0055 90.5 -0.0049 -0.0049 105.5 -0.0043 -0.0043 123.5 -0.0038 -0.0038 143.0 -0.0034 -0.0034 163.5 -0.0030 -0.0030 185.0 -0.0027 -0.0027 208.0 -0.0024 -0.0024 232.5 -0.0022 -0.0022 258.5 -0.0020 -0.0020 286.0 -0.0018 -0.0018 331.0 -0.0016 -0.0016 396.0 -0.0014 -0.0014 468.5 -0.0012 -0.0012 549.5 -0.0010 -0.0010 639.0 -0.0009 -0.0009 738.0 -0.0008 -0.0008 847.5 -0.0007 -0.0007 968.5 -0.0006 -0.0006 1102.0 -0.0006 -0.0006 1249.5 -0.0005 -0.0005 1412.0 -0.0005 -0.0005 1590.5 -0.0004 -0.0004 1787.0 -0.0004 -0.0004 1945.0 -0.0003 -0.0003 2119.0 -0.0003 -0.0003 2369.0 -0.0003 -0.0003 2643.5 -0.0003 -0.0003 2945.0 -0.0002 -0.0002 3276.5 -0.0002 -0.0002 --2.2 -2.0 132 9.0 -0.0247 -0.0247 11.0 -0.0210 -0.0210 13.5 -0.0175 -0.0175 16.5 -0.0146 -0.0146 19.5 -0.0126 -0.0126 22.5 -0.0111 -0.0111 26.0 -0.0098 -0.0098 30.0 -0.0087 -0.0087 34.5 -0.0077 -0.0077 40.0 -0.0068 -0.0068 46.0 -0.0060 -0.0060 52.5 -0.0054 -0.0054 60.0 -0.0048 -0.0048 69.0 -0.0043 -0.0043 79.0 -0.0038 -0.0038 90.5 -0.0034 -0.0034 105.5 -0.0030 -0.0030 123.5 -0.0026 -0.0026 143.0 -0.0023 -0.0023 163.5 -0.0021 -0.0021 185.0 -0.0019 -0.0019 208.0 -0.0017 -0.0017 232.5 -0.0015 -0.0015 258.5 -0.0014 -0.0014 286.0 -0.0013 -0.0013 331.0 -0.0011 -0.0011 396.0 -0.0010 -0.0010 468.5 -0.0008 -0.0008 549.5 -0.0007 -0.0007 639.0 -0.0006 -0.0006 738.0 -0.0005 -0.0005 847.5 -0.0005 -0.0005 968.5 -0.0004 -0.0004 1102.0 -0.0004 -0.0004 1249.5 -0.0003 -0.0003 1412.0 -0.0003 -0.0003 1590.5 -0.0003 -0.0003 1787.0 -0.0003 -0.0003 1945.0 -0.0002 -0.0002 2119.0 -0.0002 -0.0002 2369.0 -0.0002 -0.0002 2643.5 -0.0002 -0.0002 2945.0 -0.0002 -0.0002 3276.5 -0.0001 -0.0001 --2.0 -1.8 132 9.0 -0.0105 -0.0105 11.0 -0.0088 -0.0088 13.5 -0.0072 -0.0072 16.5 -0.0060 -0.0060 19.5 -0.0051 -0.0051 22.5 -0.0045 -0.0045 26.0 -0.0039 -0.0039 30.0 -0.0034 -0.0034 34.5 -0.0030 -0.0030 40.0 -0.0026 -0.0026 46.0 -0.0023 -0.0023 52.5 -0.0021 -0.0021 60.0 -0.0018 -0.0018 69.0 -0.0016 -0.0016 79.0 -0.0014 -0.0014 90.5 -0.0013 -0.0013 105.5 -0.0011 -0.0011 123.5 -0.0010 -0.0010 143.0 -0.0009 -0.0009 163.5 -0.0008 -0.0008 185.0 -0.0007 -0.0007 208.0 -0.0006 -0.0006 232.5 -0.0006 -0.0006 258.5 -0.0005 -0.0005 286.0 -0.0005 -0.0005 331.0 -0.0004 -0.0004 396.0 -0.0003 -0.0003 468.5 -0.0003 -0.0003 549.5 -0.0003 -0.0003 639.0 -0.0002 -0.0002 738.0 -0.0002 -0.0002 847.5 -0.0002 -0.0002 968.5 -0.0002 -0.0002 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1945.0 -0.0001 -0.0001 2119.0 -0.0001 -0.0001 2369.0 -0.0001 -0.0001 2643.5 -0.0001 -0.0001 2945.0 -0.0001 -0.0001 3276.5 -0.0001 -0.0001 --1.8 -1.6 132 9.0 -0.0064 -0.0064 11.0 -0.0054 -0.0054 13.5 -0.0044 -0.0044 16.5 -0.0036 -0.0036 19.5 -0.0030 -0.0030 22.5 -0.0027 -0.0027 26.0 -0.0023 -0.0023 30.0 -0.0020 -0.0020 34.5 -0.0018 -0.0018 40.0 -0.0015 -0.0015 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0008 -0.0008 90.5 -0.0007 -0.0007 105.5 -0.0006 -0.0006 123.5 -0.0005 -0.0005 143.0 -0.0005 -0.0005 163.5 -0.0004 -0.0004 185.0 -0.0004 -0.0004 208.0 -0.0003 -0.0003 232.5 -0.0003 -0.0003 258.5 -0.0003 -0.0003 286.0 -0.0003 -0.0003 331.0 -0.0002 -0.0002 396.0 -0.0002 -0.0002 468.5 -0.0002 -0.0002 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0000 -0.0000 1945.0 -0.0000 -0.0000 2119.0 -0.0000 -0.0000 2369.0 -0.0000 -0.0000 2643.5 -0.0000 -0.0000 2945.0 -0.0000 -0.0000 3276.5 -0.0000 -0.0000 --1.6 -1.4 132 9.0 -0.0058 -0.0058 11.0 -0.0048 -0.0048 13.5 -0.0039 -0.0039 16.5 -0.0032 -0.0032 19.5 -0.0028 -0.0028 22.5 -0.0024 -0.0024 26.0 -0.0021 -0.0021 30.0 -0.0018 -0.0018 34.5 -0.0016 -0.0016 40.0 -0.0014 -0.0014 46.0 -0.0012 -0.0012 52.5 -0.0011 -0.0011 60.0 -0.0010 -0.0010 69.0 -0.0009 -0.0009 79.0 -0.0008 -0.0008 90.5 -0.0007 -0.0007 105.5 -0.0006 -0.0006 123.5 -0.0005 -0.0005 143.0 -0.0004 -0.0004 163.5 -0.0004 -0.0004 185.0 -0.0003 -0.0003 208.0 -0.0003 -0.0003 232.5 -0.0003 -0.0003 258.5 -0.0003 -0.0003 286.0 -0.0002 -0.0002 331.0 -0.0002 -0.0002 396.0 -0.0002 -0.0002 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1945.0 -0.0000 -0.0000 2119.0 -0.0000 -0.0000 2369.0 -0.0000 -0.0000 2643.5 -0.0000 -0.0000 2945.0 -0.0000 -0.0000 3276.5 -0.0000 -0.0000 --1.4 -1.2 132 9.0 -0.0056 -0.0056 11.0 -0.0047 -0.0047 13.5 -0.0039 -0.0039 16.5 -0.0032 -0.0032 19.5 -0.0027 -0.0027 22.5 -0.0024 -0.0024 26.0 -0.0021 -0.0021 30.0 -0.0019 -0.0019 34.5 -0.0016 -0.0016 40.0 -0.0014 -0.0014 46.0 -0.0013 -0.0013 52.5 -0.0011 -0.0011 60.0 -0.0010 -0.0010 69.0 -0.0009 -0.0009 79.0 -0.0008 -0.0008 90.5 -0.0007 -0.0007 105.5 -0.0006 -0.0006 123.5 -0.0005 -0.0005 143.0 -0.0005 -0.0005 163.5 -0.0004 -0.0004 185.0 -0.0004 -0.0004 208.0 -0.0003 -0.0003 232.5 -0.0003 -0.0003 258.5 -0.0003 -0.0003 286.0 -0.0003 -0.0003 331.0 -0.0002 -0.0002 396.0 -0.0002 -0.0002 468.5 -0.0002 -0.0002 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0000 -0.0000 1945.0 -0.0000 -0.0000 2119.0 -0.0000 -0.0000 2369.0 -0.0000 -0.0000 2643.5 -0.0000 -0.0000 2945.0 -0.0000 -0.0000 3276.5 -0.0000 -0.0000 --1.2 -1.0 132 9.0 -0.0057 -0.0057 11.0 -0.0048 -0.0048 13.5 -0.0039 -0.0039 16.5 -0.0032 -0.0032 19.5 -0.0028 -0.0028 22.5 -0.0024 -0.0024 26.0 -0.0021 -0.0021 30.0 -0.0019 -0.0019 34.5 -0.0016 -0.0016 40.0 -0.0014 -0.0014 46.0 -0.0013 -0.0013 52.5 -0.0011 -0.0011 60.0 -0.0010 -0.0010 69.0 -0.0009 -0.0009 79.0 -0.0008 -0.0008 90.5 -0.0007 -0.0007 105.5 -0.0006 -0.0006 123.5 -0.0005 -0.0005 143.0 -0.0005 -0.0005 163.5 -0.0004 -0.0004 185.0 -0.0004 -0.0004 208.0 -0.0003 -0.0003 232.5 -0.0003 -0.0003 258.5 -0.0003 -0.0003 286.0 -0.0003 -0.0003 331.0 -0.0002 -0.0002 396.0 -0.0002 -0.0002 468.5 -0.0002 -0.0002 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0000 -0.0000 1945.0 -0.0000 -0.0000 2119.0 -0.0000 -0.0000 2369.0 -0.0000 -0.0000 2643.5 -0.0000 -0.0000 2945.0 -0.0000 -0.0000 3276.5 -0.0000 -0.0000 --1.0 -0.8 132 9.0 -0.0058 -0.0058 11.0 -0.0048 -0.0048 13.5 -0.0039 -0.0039 16.5 -0.0032 -0.0032 19.5 -0.0027 -0.0027 22.5 -0.0023 -0.0023 26.0 -0.0020 -0.0020 30.0 -0.0018 -0.0018 34.5 -0.0016 -0.0016 40.0 -0.0014 -0.0014 46.0 -0.0012 -0.0012 52.5 -0.0011 -0.0011 60.0 -0.0009 -0.0009 69.0 -0.0008 -0.0008 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0006 -0.0006 123.5 -0.0005 -0.0005 143.0 -0.0004 -0.0004 163.5 -0.0004 -0.0004 185.0 -0.0003 -0.0003 208.0 -0.0003 -0.0003 232.5 -0.0003 -0.0003 258.5 -0.0003 -0.0003 286.0 -0.0002 -0.0002 331.0 -0.0002 -0.0002 396.0 -0.0002 -0.0002 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1945.0 -0.0000 -0.0000 2119.0 -0.0000 -0.0000 2369.0 -0.0000 -0.0000 2643.5 -0.0000 -0.0000 2945.0 -0.0000 -0.0000 3276.5 -0.0000 -0.0000 --0.8 -0.6 132 9.0 -0.0063 -0.0063 11.0 -0.0052 -0.0052 13.5 -0.0042 -0.0042 16.5 -0.0034 -0.0034 19.5 -0.0029 -0.0029 22.5 -0.0025 -0.0025 26.0 -0.0022 -0.0022 30.0 -0.0019 -0.0019 34.5 -0.0017 -0.0017 40.0 -0.0014 -0.0014 46.0 -0.0013 -0.0013 52.5 -0.0011 -0.0011 60.0 -0.0010 -0.0010 69.0 -0.0009 -0.0009 79.0 -0.0008 -0.0008 90.5 -0.0007 -0.0007 105.5 -0.0006 -0.0006 123.5 -0.0005 -0.0005 143.0 -0.0004 -0.0004 163.5 -0.0004 -0.0004 185.0 -0.0004 -0.0004 208.0 -0.0003 -0.0003 232.5 -0.0003 -0.0003 258.5 -0.0003 -0.0003 286.0 -0.0002 -0.0002 331.0 -0.0002 -0.0002 396.0 -0.0002 -0.0002 468.5 -0.0002 -0.0002 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1945.0 -0.0000 -0.0000 2119.0 -0.0000 -0.0000 2369.0 -0.0000 -0.0000 2643.5 -0.0000 -0.0000 2945.0 -0.0000 -0.0000 3276.5 -0.0000 -0.0000 --0.6 -0.4 132 9.0 -0.0051 -0.0051 11.0 -0.0042 -0.0042 13.5 -0.0034 -0.0034 16.5 -0.0028 -0.0028 19.5 -0.0023 -0.0023 22.5 -0.0020 -0.0020 26.0 -0.0018 -0.0018 30.0 -0.0015 -0.0015 34.5 -0.0013 -0.0013 40.0 -0.0012 -0.0012 46.0 -0.0010 -0.0010 52.5 -0.0009 -0.0009 60.0 -0.0008 -0.0008 69.0 -0.0007 -0.0007 79.0 -0.0006 -0.0006 90.5 -0.0005 -0.0005 105.5 -0.0005 -0.0005 123.5 -0.0004 -0.0004 143.0 -0.0004 -0.0004 163.5 -0.0003 -0.0003 185.0 -0.0003 -0.0003 208.0 -0.0003 -0.0003 232.5 -0.0002 -0.0002 258.5 -0.0002 -0.0002 286.0 -0.0002 -0.0002 331.0 -0.0002 -0.0002 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1945.0 -0.0000 -0.0000 2119.0 -0.0000 -0.0000 2369.0 -0.0000 -0.0000 2643.5 -0.0000 -0.0000 2945.0 -0.0000 -0.0000 3276.5 -0.0000 -0.0000 --0.4 -0.2 132 9.0 -0.0044 -0.0044 11.0 -0.0036 -0.0036 13.5 -0.0029 -0.0029 16.5 -0.0024 -0.0024 19.5 -0.0020 -0.0020 22.5 -0.0017 -0.0017 26.0 -0.0015 -0.0015 30.0 -0.0013 -0.0013 34.5 -0.0011 -0.0011 40.0 -0.0010 -0.0010 46.0 -0.0009 -0.0009 52.5 -0.0008 -0.0008 60.0 -0.0007 -0.0007 69.0 -0.0006 -0.0006 79.0 -0.0005 -0.0005 90.5 -0.0005 -0.0005 105.5 -0.0004 -0.0004 123.5 -0.0004 -0.0004 143.0 -0.0003 -0.0003 163.5 -0.0003 -0.0003 185.0 -0.0002 -0.0002 208.0 -0.0002 -0.0002 232.5 -0.0002 -0.0002 258.5 -0.0002 -0.0002 286.0 -0.0002 -0.0002 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1945.0 -0.0000 -0.0000 2119.0 -0.0000 -0.0000 2369.0 -0.0000 -0.0000 2643.5 -0.0000 -0.0000 2945.0 -0.0000 -0.0000 3276.5 -0.0000 -0.0000 --0.2 0.0 132 9.0 -0.0034 -0.0034 11.0 -0.0028 -0.0028 13.5 -0.0022 -0.0022 16.5 -0.0018 -0.0018 19.5 -0.0015 -0.0015 22.5 -0.0013 -0.0013 26.0 -0.0012 -0.0012 30.0 -0.0010 -0.0010 34.5 -0.0009 -0.0009 40.0 -0.0008 -0.0008 46.0 -0.0007 -0.0007 52.5 -0.0006 -0.0006 60.0 -0.0005 -0.0005 69.0 -0.0005 -0.0005 79.0 -0.0004 -0.0004 90.5 -0.0004 -0.0004 105.5 -0.0003 -0.0003 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0002 -0.0002 185.0 -0.0002 -0.0002 208.0 -0.0002 -0.0002 232.5 -0.0002 -0.0002 258.5 -0.0001 -0.0001 286.0 -0.0001 -0.0001 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1945.0 -0.0000 -0.0000 2119.0 -0.0000 -0.0000 2369.0 -0.0000 -0.0000 2643.5 -0.0000 -0.0000 2945.0 -0.0000 -0.0000 3276.5 -0.0000 -0.0000 -0.0 0.2 132 9.0 -0.0034 -0.0034 11.0 -0.0028 -0.0028 13.5 -0.0022 -0.0022 16.5 -0.0018 -0.0018 19.5 -0.0015 -0.0015 22.5 -0.0013 -0.0013 26.0 -0.0012 -0.0012 30.0 -0.0010 -0.0010 34.5 -0.0009 -0.0009 40.0 -0.0008 -0.0008 46.0 -0.0007 -0.0007 52.5 -0.0006 -0.0006 60.0 -0.0005 -0.0005 69.0 -0.0005 -0.0005 79.0 -0.0004 -0.0004 90.5 -0.0004 -0.0004 105.5 -0.0003 -0.0003 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0002 -0.0002 185.0 -0.0002 -0.0002 208.0 -0.0002 -0.0002 232.5 -0.0002 -0.0002 258.5 -0.0001 -0.0001 286.0 -0.0001 -0.0001 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1945.0 -0.0000 -0.0000 2119.0 -0.0000 -0.0000 2369.0 -0.0000 -0.0000 2643.5 -0.0000 -0.0000 2945.0 -0.0000 -0.0000 3276.5 -0.0000 -0.0000 -0.2 0.4 132 9.0 -0.0044 -0.0044 11.0 -0.0036 -0.0036 13.5 -0.0029 -0.0029 16.5 -0.0024 -0.0024 19.5 -0.0020 -0.0020 22.5 -0.0017 -0.0017 26.0 -0.0015 -0.0015 30.0 -0.0013 -0.0013 34.5 -0.0011 -0.0011 40.0 -0.0010 -0.0010 46.0 -0.0009 -0.0009 52.5 -0.0008 -0.0008 60.0 -0.0007 -0.0007 69.0 -0.0006 -0.0006 79.0 -0.0005 -0.0005 90.5 -0.0005 -0.0005 105.5 -0.0004 -0.0004 123.5 -0.0004 -0.0004 143.0 -0.0003 -0.0003 163.5 -0.0003 -0.0003 185.0 -0.0002 -0.0002 208.0 -0.0002 -0.0002 232.5 -0.0002 -0.0002 258.5 -0.0002 -0.0002 286.0 -0.0002 -0.0002 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1945.0 -0.0000 -0.0000 2119.0 -0.0000 -0.0000 2369.0 -0.0000 -0.0000 2643.5 -0.0000 -0.0000 2945.0 -0.0000 -0.0000 3276.5 -0.0000 -0.0000 -0.4 0.6 132 9.0 -0.0051 -0.0051 11.0 -0.0042 -0.0042 13.5 -0.0034 -0.0034 16.5 -0.0028 -0.0028 19.5 -0.0023 -0.0023 22.5 -0.0020 -0.0020 26.0 -0.0018 -0.0018 30.0 -0.0015 -0.0015 34.5 -0.0013 -0.0013 40.0 -0.0012 -0.0012 46.0 -0.0010 -0.0010 52.5 -0.0009 -0.0009 60.0 -0.0008 -0.0008 69.0 -0.0007 -0.0007 79.0 -0.0006 -0.0006 90.5 -0.0005 -0.0005 105.5 -0.0005 -0.0005 123.5 -0.0004 -0.0004 143.0 -0.0004 -0.0004 163.5 -0.0003 -0.0003 185.0 -0.0003 -0.0003 208.0 -0.0003 -0.0003 232.5 -0.0002 -0.0002 258.5 -0.0002 -0.0002 286.0 -0.0002 -0.0002 331.0 -0.0002 -0.0002 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1945.0 -0.0000 -0.0000 2119.0 -0.0000 -0.0000 2369.0 -0.0000 -0.0000 2643.5 -0.0000 -0.0000 2945.0 -0.0000 -0.0000 3276.5 -0.0000 -0.0000 -0.6 0.8 132 9.0 -0.0063 -0.0063 11.0 -0.0052 -0.0052 13.5 -0.0042 -0.0042 16.5 -0.0034 -0.0034 19.5 -0.0029 -0.0029 22.5 -0.0025 -0.0025 26.0 -0.0022 -0.0022 30.0 -0.0019 -0.0019 34.5 -0.0017 -0.0017 40.0 -0.0014 -0.0014 46.0 -0.0013 -0.0013 52.5 -0.0011 -0.0011 60.0 -0.0010 -0.0010 69.0 -0.0009 -0.0009 79.0 -0.0008 -0.0008 90.5 -0.0007 -0.0007 105.5 -0.0006 -0.0006 123.5 -0.0005 -0.0005 143.0 -0.0004 -0.0004 163.5 -0.0004 -0.0004 185.0 -0.0004 -0.0004 208.0 -0.0003 -0.0003 232.5 -0.0003 -0.0003 258.5 -0.0003 -0.0003 286.0 -0.0002 -0.0002 331.0 -0.0002 -0.0002 396.0 -0.0002 -0.0002 468.5 -0.0002 -0.0002 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1945.0 -0.0000 -0.0000 2119.0 -0.0000 -0.0000 2369.0 -0.0000 -0.0000 2643.5 -0.0000 -0.0000 2945.0 -0.0000 -0.0000 3276.5 -0.0000 -0.0000 -0.8 1.0 132 9.0 -0.0058 -0.0058 11.0 -0.0048 -0.0048 13.5 -0.0039 -0.0039 16.5 -0.0032 -0.0032 19.5 -0.0027 -0.0027 22.5 -0.0023 -0.0023 26.0 -0.0020 -0.0020 30.0 -0.0018 -0.0018 34.5 -0.0016 -0.0016 40.0 -0.0014 -0.0014 46.0 -0.0012 -0.0012 52.5 -0.0011 -0.0011 60.0 -0.0009 -0.0009 69.0 -0.0008 -0.0008 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0006 -0.0006 123.5 -0.0005 -0.0005 143.0 -0.0004 -0.0004 163.5 -0.0004 -0.0004 185.0 -0.0003 -0.0003 208.0 -0.0003 -0.0003 232.5 -0.0003 -0.0003 258.5 -0.0003 -0.0003 286.0 -0.0002 -0.0002 331.0 -0.0002 -0.0002 396.0 -0.0002 -0.0002 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1945.0 -0.0000 -0.0000 2119.0 -0.0000 -0.0000 2369.0 -0.0000 -0.0000 2643.5 -0.0000 -0.0000 2945.0 -0.0000 -0.0000 3276.5 -0.0000 -0.0000 -1.0 1.2 132 9.0 -0.0057 -0.0057 11.0 -0.0048 -0.0048 13.5 -0.0039 -0.0039 16.5 -0.0032 -0.0032 19.5 -0.0028 -0.0028 22.5 -0.0024 -0.0024 26.0 -0.0021 -0.0021 30.0 -0.0019 -0.0019 34.5 -0.0016 -0.0016 40.0 -0.0014 -0.0014 46.0 -0.0013 -0.0013 52.5 -0.0011 -0.0011 60.0 -0.0010 -0.0010 69.0 -0.0009 -0.0009 79.0 -0.0008 -0.0008 90.5 -0.0007 -0.0007 105.5 -0.0006 -0.0006 123.5 -0.0005 -0.0005 143.0 -0.0005 -0.0005 163.5 -0.0004 -0.0004 185.0 -0.0004 -0.0004 208.0 -0.0003 -0.0003 232.5 -0.0003 -0.0003 258.5 -0.0003 -0.0003 286.0 -0.0003 -0.0003 331.0 -0.0002 -0.0002 396.0 -0.0002 -0.0002 468.5 -0.0002 -0.0002 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0000 -0.0000 1945.0 -0.0000 -0.0000 2119.0 -0.0000 -0.0000 2369.0 -0.0000 -0.0000 2643.5 -0.0000 -0.0000 2945.0 -0.0000 -0.0000 3276.5 -0.0000 -0.0000 -1.2 1.4 132 9.0 -0.0056 -0.0056 11.0 -0.0047 -0.0047 13.5 -0.0039 -0.0039 16.5 -0.0032 -0.0032 19.5 -0.0027 -0.0027 22.5 -0.0024 -0.0024 26.0 -0.0021 -0.0021 30.0 -0.0019 -0.0019 34.5 -0.0016 -0.0016 40.0 -0.0014 -0.0014 46.0 -0.0013 -0.0013 52.5 -0.0011 -0.0011 60.0 -0.0010 -0.0010 69.0 -0.0009 -0.0009 79.0 -0.0008 -0.0008 90.5 -0.0007 -0.0007 105.5 -0.0006 -0.0006 123.5 -0.0005 -0.0005 143.0 -0.0005 -0.0005 163.5 -0.0004 -0.0004 185.0 -0.0004 -0.0004 208.0 -0.0003 -0.0003 232.5 -0.0003 -0.0003 258.5 -0.0003 -0.0003 286.0 -0.0003 -0.0003 331.0 -0.0002 -0.0002 396.0 -0.0002 -0.0002 468.5 -0.0002 -0.0002 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0000 -0.0000 1945.0 -0.0000 -0.0000 2119.0 -0.0000 -0.0000 2369.0 -0.0000 -0.0000 2643.5 -0.0000 -0.0000 2945.0 -0.0000 -0.0000 3276.5 -0.0000 -0.0000 -1.4 1.6 132 9.0 -0.0058 -0.0058 11.0 -0.0048 -0.0048 13.5 -0.0039 -0.0039 16.5 -0.0032 -0.0032 19.5 -0.0028 -0.0028 22.5 -0.0024 -0.0024 26.0 -0.0021 -0.0021 30.0 -0.0018 -0.0018 34.5 -0.0016 -0.0016 40.0 -0.0014 -0.0014 46.0 -0.0012 -0.0012 52.5 -0.0011 -0.0011 60.0 -0.0010 -0.0010 69.0 -0.0009 -0.0009 79.0 -0.0008 -0.0008 90.5 -0.0007 -0.0007 105.5 -0.0006 -0.0006 123.5 -0.0005 -0.0005 143.0 -0.0004 -0.0004 163.5 -0.0004 -0.0004 185.0 -0.0003 -0.0003 208.0 -0.0003 -0.0003 232.5 -0.0003 -0.0003 258.5 -0.0003 -0.0003 286.0 -0.0002 -0.0002 331.0 -0.0002 -0.0002 396.0 -0.0002 -0.0002 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1945.0 -0.0000 -0.0000 2119.0 -0.0000 -0.0000 2369.0 -0.0000 -0.0000 2643.5 -0.0000 -0.0000 2945.0 -0.0000 -0.0000 3276.5 -0.0000 -0.0000 -1.6 1.8 132 9.0 -0.0064 -0.0064 11.0 -0.0054 -0.0054 13.5 -0.0044 -0.0044 16.5 -0.0036 -0.0036 19.5 -0.0030 -0.0030 22.5 -0.0027 -0.0027 26.0 -0.0023 -0.0023 30.0 -0.0020 -0.0020 34.5 -0.0018 -0.0018 40.0 -0.0015 -0.0015 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0008 -0.0008 90.5 -0.0007 -0.0007 105.5 -0.0006 -0.0006 123.5 -0.0005 -0.0005 143.0 -0.0005 -0.0005 163.5 -0.0004 -0.0004 185.0 -0.0004 -0.0004 208.0 -0.0003 -0.0003 232.5 -0.0003 -0.0003 258.5 -0.0003 -0.0003 286.0 -0.0003 -0.0003 331.0 -0.0002 -0.0002 396.0 -0.0002 -0.0002 468.5 -0.0002 -0.0002 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0000 -0.0000 1945.0 -0.0000 -0.0000 2119.0 -0.0000 -0.0000 2369.0 -0.0000 -0.0000 2643.5 -0.0000 -0.0000 2945.0 -0.0000 -0.0000 3276.5 -0.0000 -0.0000 -1.8 2.0 132 9.0 -0.0105 -0.0105 11.0 -0.0088 -0.0088 13.5 -0.0072 -0.0072 16.5 -0.0060 -0.0060 19.5 -0.0051 -0.0051 22.5 -0.0045 -0.0045 26.0 -0.0039 -0.0039 30.0 -0.0034 -0.0034 34.5 -0.0030 -0.0030 40.0 -0.0026 -0.0026 46.0 -0.0023 -0.0023 52.5 -0.0021 -0.0021 60.0 -0.0018 -0.0018 69.0 -0.0016 -0.0016 79.0 -0.0014 -0.0014 90.5 -0.0013 -0.0013 105.5 -0.0011 -0.0011 123.5 -0.0010 -0.0010 143.0 -0.0009 -0.0009 163.5 -0.0008 -0.0008 185.0 -0.0007 -0.0007 208.0 -0.0006 -0.0006 232.5 -0.0006 -0.0006 258.5 -0.0005 -0.0005 286.0 -0.0005 -0.0005 331.0 -0.0004 -0.0004 396.0 -0.0003 -0.0003 468.5 -0.0003 -0.0003 549.5 -0.0003 -0.0003 639.0 -0.0002 -0.0002 738.0 -0.0002 -0.0002 847.5 -0.0002 -0.0002 968.5 -0.0002 -0.0002 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1945.0 -0.0001 -0.0001 2119.0 -0.0001 -0.0001 2369.0 -0.0001 -0.0001 2643.5 -0.0001 -0.0001 2945.0 -0.0001 -0.0001 3276.5 -0.0001 -0.0001 -2.0 2.2 132 9.0 -0.0247 -0.0247 11.0 -0.0210 -0.0210 13.5 -0.0175 -0.0175 16.5 -0.0146 -0.0146 19.5 -0.0126 -0.0126 22.5 -0.0111 -0.0111 26.0 -0.0098 -0.0098 30.0 -0.0087 -0.0087 34.5 -0.0077 -0.0077 40.0 -0.0068 -0.0068 46.0 -0.0060 -0.0060 52.5 -0.0054 -0.0054 60.0 -0.0048 -0.0048 69.0 -0.0043 -0.0043 79.0 -0.0038 -0.0038 90.5 -0.0034 -0.0034 105.5 -0.0030 -0.0030 123.5 -0.0026 -0.0026 143.0 -0.0023 -0.0023 163.5 -0.0021 -0.0021 185.0 -0.0019 -0.0019 208.0 -0.0017 -0.0017 232.5 -0.0015 -0.0015 258.5 -0.0014 -0.0014 286.0 -0.0013 -0.0013 331.0 -0.0011 -0.0011 396.0 -0.0010 -0.0010 468.5 -0.0008 -0.0008 549.5 -0.0007 -0.0007 639.0 -0.0006 -0.0006 738.0 -0.0005 -0.0005 847.5 -0.0005 -0.0005 968.5 -0.0004 -0.0004 1102.0 -0.0004 -0.0004 1249.5 -0.0003 -0.0003 1412.0 -0.0003 -0.0003 1590.5 -0.0003 -0.0003 1787.0 -0.0003 -0.0003 1945.0 -0.0002 -0.0002 2119.0 -0.0002 -0.0002 2369.0 -0.0002 -0.0002 2643.5 -0.0002 -0.0002 2945.0 -0.0002 -0.0002 3276.5 -0.0001 -0.0001 -2.2 2.4 132 9.0 -0.0361 -0.0361 11.0 -0.0307 -0.0307 13.5 -0.0254 -0.0254 16.5 -0.0211 -0.0211 19.5 -0.0182 -0.0182 22.5 -0.0160 -0.0160 26.0 -0.0141 -0.0141 30.0 -0.0124 -0.0124 34.5 -0.0110 -0.0110 40.0 -0.0097 -0.0097 46.0 -0.0086 -0.0086 52.5 -0.0077 -0.0077 60.0 -0.0069 -0.0069 69.0 -0.0062 -0.0062 79.0 -0.0055 -0.0055 90.5 -0.0049 -0.0049 105.5 -0.0043 -0.0043 123.5 -0.0038 -0.0038 143.0 -0.0034 -0.0034 163.5 -0.0030 -0.0030 185.0 -0.0027 -0.0027 208.0 -0.0024 -0.0024 232.5 -0.0022 -0.0022 258.5 -0.0020 -0.0020 286.0 -0.0018 -0.0018 331.0 -0.0016 -0.0016 396.0 -0.0014 -0.0014 468.5 -0.0012 -0.0012 549.5 -0.0010 -0.0010 639.0 -0.0009 -0.0009 738.0 -0.0008 -0.0008 847.5 -0.0007 -0.0007 968.5 -0.0006 -0.0006 1102.0 -0.0006 -0.0006 1249.5 -0.0005 -0.0005 1412.0 -0.0005 -0.0005 1590.5 -0.0004 -0.0004 1787.0 -0.0004 -0.0004 1945.0 -0.0003 -0.0003 2119.0 -0.0003 -0.0003 2369.0 -0.0003 -0.0003 2643.5 -0.0003 -0.0003 2945.0 -0.0002 -0.0002 3276.5 -0.0002 -0.0002 -2.4 2.6 132 9.0 -0.0570 -0.0570 11.0 -0.0480 -0.0480 13.5 -0.0394 -0.0394 16.5 -0.0322 -0.0322 19.5 -0.0274 -0.0274 22.5 -0.0238 -0.0238 26.0 -0.0208 -0.0208 30.0 -0.0183 -0.0183 34.5 -0.0161 -0.0161 40.0 -0.0141 -0.0141 46.0 -0.0125 -0.0125 52.5 -0.0112 -0.0112 60.0 -0.0099 -0.0099 69.0 -0.0088 -0.0088 79.0 -0.0078 -0.0078 90.5 -0.0069 -0.0069 105.5 -0.0061 -0.0061 123.5 -0.0053 -0.0053 143.0 -0.0046 -0.0046 163.5 -0.0041 -0.0041 185.0 -0.0037 -0.0037 208.0 -0.0033 -0.0033 232.5 -0.0030 -0.0030 258.5 -0.0027 -0.0027 286.0 -0.0025 -0.0025 331.0 -0.0022 -0.0022 396.0 -0.0018 -0.0018 468.5 -0.0016 -0.0016 549.5 -0.0014 -0.0014 639.0 -0.0012 -0.0012 738.0 -0.0011 -0.0011 847.5 -0.0009 -0.0009 968.5 -0.0008 -0.0008 1102.0 -0.0007 -0.0007 1249.5 -0.0007 -0.0007 1412.0 -0.0006 -0.0006 1590.5 -0.0005 -0.0005 1787.0 -0.0005 -0.0005 1945.0 -0.0004 -0.0004 2119.0 -0.0004 -0.0004 2369.0 -0.0004 -0.0004 2643.5 -0.0003 -0.0003 2945.0 -0.0003 -0.0003 3276.5 -0.0003 -0.0003 -2.6 2.8 132 9.0 -0.0351 -0.0351 11.0 -0.0290 -0.0290 13.5 -0.0234 -0.0234 16.5 -0.0188 -0.0188 19.5 -0.0157 -0.0157 22.5 -0.0135 -0.0135 26.0 -0.0116 -0.0116 30.0 -0.0100 -0.0100 34.5 -0.0087 -0.0087 40.0 -0.0075 -0.0075 46.0 -0.0066 -0.0066 52.5 -0.0058 -0.0058 60.0 -0.0051 -0.0051 69.0 -0.0044 -0.0044 79.0 -0.0039 -0.0039 90.5 -0.0034 -0.0034 105.5 -0.0029 -0.0029 123.5 -0.0025 -0.0025 143.0 -0.0022 -0.0022 163.5 -0.0019 -0.0019 185.0 -0.0017 -0.0017 208.0 -0.0015 -0.0015 232.5 -0.0013 -0.0013 258.5 -0.0012 -0.0012 286.0 -0.0011 -0.0011 331.0 -0.0009 -0.0009 396.0 -0.0008 -0.0008 468.5 -0.0007 -0.0007 549.5 -0.0006 -0.0006 639.0 -0.0005 -0.0005 738.0 -0.0004 -0.0004 847.5 -0.0004 -0.0004 968.5 -0.0003 -0.0003 1102.0 -0.0003 -0.0003 1249.5 -0.0003 -0.0003 1412.0 -0.0002 -0.0002 1590.5 -0.0002 -0.0002 1787.0 -0.0002 -0.0002 1945.0 -0.0002 -0.0002 2119.0 -0.0002 -0.0002 2369.0 -0.0001 -0.0001 2643.5 -0.0001 -0.0001 2945.0 -0.0001 -0.0001 3276.5 -0.0001 -0.0001 -2.8 3.0 132 9.0 -0.0086 -0.0086 11.0 -0.0071 -0.0071 13.5 -0.0057 -0.0057 16.5 -0.0046 -0.0046 19.5 -0.0039 -0.0039 22.5 -0.0033 -0.0033 26.0 -0.0029 -0.0029 30.0 -0.0025 -0.0025 34.5 -0.0021 -0.0021 40.0 -0.0018 -0.0018 46.0 -0.0016 -0.0016 52.5 -0.0014 -0.0014 60.0 -0.0012 -0.0012 69.0 -0.0011 -0.0011 79.0 -0.0009 -0.0009 90.5 -0.0008 -0.0008 105.5 -0.0007 -0.0007 123.5 -0.0006 -0.0006 143.0 -0.0005 -0.0005 163.5 -0.0005 -0.0005 185.0 -0.0004 -0.0004 208.0 -0.0004 -0.0004 232.5 -0.0003 -0.0003 258.5 -0.0003 -0.0003 286.0 -0.0003 -0.0003 331.0 -0.0002 -0.0002 396.0 -0.0002 -0.0002 468.5 -0.0002 -0.0002 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1945.0 -0.0000 -0.0000 2119.0 -0.0000 -0.0000 2369.0 -0.0000 -0.0000 2643.5 -0.0000 -0.0000 2945.0 -0.0000 -0.0000 3276.5 -0.0000 -0.0000 -3.0 3.5 132 9.0 0.0460 0.0460 11.0 0.0384 0.0384 13.5 0.0314 0.0314 16.5 0.0257 0.0257 19.5 0.0217 0.0217 22.5 0.0188 0.0188 26.0 0.0163 0.0163 30.0 0.0142 0.0142 34.5 0.0123 0.0123 40.0 0.0107 0.0107 46.0 0.0093 0.0093 52.5 0.0082 0.0082 60.0 0.0072 0.0072 69.0 0.0063 0.0063 79.0 0.0055 0.0055 90.5 0.0048 0.0048 105.5 0.0042 0.0042 123.5 0.0036 0.0036 143.0 0.0031 0.0031 163.5 0.0028 0.0028 185.0 0.0025 0.0025 208.0 0.0022 0.0022 232.5 0.0020 0.0020 258.5 0.0018 0.0018 286.0 0.0017 0.0017 331.0 0.0015 0.0015 396.0 0.0012 0.0012 468.5 0.0011 0.0011 549.5 0.0009 0.0009 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0006 0.0006 968.5 0.0006 0.0006 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0002 0.0002 2945.0 0.0002 0.0002 3276.5 0.0002 0.0002 -3.5 4.0 132 9.0 0.0343 0.0343 11.0 0.0284 0.0284 13.5 0.0231 0.0231 16.5 0.0186 0.0186 19.5 0.0156 0.0156 22.5 0.0134 0.0134 26.0 0.0115 0.0115 30.0 0.0099 0.0099 34.5 0.0086 0.0086 40.0 0.0074 0.0074 46.0 0.0064 0.0064 52.5 0.0056 0.0056 60.0 0.0049 0.0049 69.0 0.0043 0.0043 79.0 0.0037 0.0037 90.5 0.0033 0.0033 105.5 0.0028 0.0028 123.5 0.0025 0.0025 143.0 0.0021 0.0021 163.5 0.0019 0.0019 185.0 0.0017 0.0017 208.0 0.0015 0.0015 232.5 0.0014 0.0014 258.5 0.0012 0.0012 286.0 0.0011 0.0011 331.0 0.0010 0.0010 396.0 0.0008 0.0008 468.5 0.0007 0.0007 549.5 0.0006 0.0006 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0004 0.0004 968.5 0.0004 0.0004 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1945.0 0.0002 0.0002 2119.0 0.0002 0.0002 2369.0 0.0002 0.0002 2643.5 0.0001 0.0001 2945.0 0.0001 0.0001 3276.5 0.0001 0.0001 -4.0 4.4 132 9.0 0.0093 0.0093 11.0 0.0078 0.0078 13.5 0.0063 0.0063 16.5 0.0051 0.0051 19.5 0.0043 0.0043 22.5 0.0037 0.0037 26.0 0.0032 0.0032 30.0 0.0028 0.0028 34.5 0.0024 0.0024 40.0 0.0021 0.0021 46.0 0.0019 0.0019 52.5 0.0016 0.0016 60.0 0.0014 0.0014 69.0 0.0013 0.0013 79.0 0.0011 0.0011 90.5 0.0010 0.0010 105.5 0.0008 0.0008 123.5 0.0007 0.0007 143.0 0.0006 0.0006 163.5 0.0006 0.0006 185.0 0.0005 0.0005 208.0 0.0005 0.0005 232.5 0.0004 0.0004 258.5 0.0004 0.0004 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1945.0 0.0001 0.0001 2119.0 0.0001 0.0001 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.4 5.0 132 9.0 -0.0020 -0.0020 11.0 -0.0017 -0.0017 13.5 -0.0014 -0.0014 16.5 -0.0012 -0.0012 19.5 -0.0010 -0.0010 22.5 -0.0009 -0.0009 26.0 -0.0008 -0.0008 30.0 -0.0007 -0.0007 34.5 -0.0006 -0.0006 40.0 -0.0005 -0.0005 46.0 -0.0005 -0.0005 52.5 -0.0004 -0.0004 60.0 -0.0004 -0.0004 69.0 -0.0003 -0.0003 79.0 -0.0003 -0.0003 90.5 -0.0002 -0.0002 105.5 -0.0002 -0.0002 123.5 -0.0002 -0.0002 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0001 -0.0001 208.0 -0.0001 -0.0001 232.5 -0.0001 -0.0001 258.5 -0.0001 -0.0001 286.0 -0.0001 -0.0001 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0000 -0.0000 738.0 -0.0000 -0.0000 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1945.0 -0.0000 -0.0000 2119.0 -0.0000 -0.0000 2369.0 -0.0000 -0.0000 2643.5 -0.0000 -0.0000 2945.0 -0.0000 -0.0000 3276.5 -0.0000 -0.0000 -5.0 5.4 132 9.0 -0.0083 -0.0083 11.0 -0.0070 -0.0070 13.5 -0.0059 -0.0059 16.5 -0.0049 -0.0049 19.5 -0.0042 -0.0042 22.5 -0.0037 -0.0037 26.0 -0.0033 -0.0033 30.0 -0.0029 -0.0029 34.5 -0.0025 -0.0025 40.0 -0.0022 -0.0022 46.0 -0.0020 -0.0020 52.5 -0.0018 -0.0018 60.0 -0.0016 -0.0016 69.0 -0.0014 -0.0014 79.0 -0.0013 -0.0013 90.5 -0.0012 -0.0012 105.5 -0.0010 -0.0010 123.5 -0.0009 -0.0009 143.0 -0.0008 -0.0008 163.5 -0.0007 -0.0007 185.0 -0.0006 -0.0006 208.0 -0.0006 -0.0006 232.5 -0.0005 -0.0005 258.5 -0.0005 -0.0005 286.0 -0.0004 -0.0004 331.0 -0.0004 -0.0004 396.0 -0.0003 -0.0003 468.5 -0.0003 -0.0003 549.5 -0.0003 -0.0003 639.0 -0.0002 -0.0002 738.0 -0.0002 -0.0002 847.5 -0.0002 -0.0002 968.5 -0.0002 -0.0002 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1945.0 -0.0001 -0.0001 2119.0 -0.0001 -0.0001 2369.0 -0.0001 -0.0001 2643.5 -0.0001 -0.0001 2945.0 -0.0001 -0.0001 3276.5 -0.0001 -0.0001 -[PileUpPtBB] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 -0.0088 -0.0088 11.0 -0.0032 -0.0032 13.5 0.0020 0.0020 16.5 0.0061 0.0061 19.5 0.0086 0.0086 22.5 0.0103 0.0103 26.0 0.0115 0.0115 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0128 0.0128 46.0 0.0128 0.0128 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0099 0.0099 123.5 0.0092 0.0092 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0074 0.0074 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0057 0.0057 331.0 0.0051 0.0051 396.0 0.0046 0.0046 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0027 0.0027 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 --5.0 -4.4 132 9.0 -0.0088 -0.0088 11.0 -0.0032 -0.0032 13.5 0.0020 0.0020 16.5 0.0061 0.0061 19.5 0.0086 0.0086 22.5 0.0103 0.0103 26.0 0.0115 0.0115 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0128 0.0128 46.0 0.0128 0.0128 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0099 0.0099 123.5 0.0092 0.0092 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0074 0.0074 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0057 0.0057 331.0 0.0051 0.0051 396.0 0.0046 0.0046 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0027 0.0027 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 --4.4 -4.0 132 9.0 -0.0608 -0.0608 11.0 -0.0514 -0.0514 13.5 -0.0418 -0.0418 16.5 -0.0329 -0.0329 19.5 -0.0265 -0.0265 22.5 -0.0216 -0.0216 26.0 -0.0173 -0.0173 30.0 -0.0137 -0.0137 34.5 -0.0106 -0.0106 40.0 -0.0080 -0.0080 46.0 -0.0059 -0.0059 52.5 -0.0042 -0.0042 60.0 -0.0028 -0.0028 69.0 -0.0016 -0.0016 79.0 -0.0007 -0.0007 90.5 0.0000 0.0000 105.5 0.0006 0.0006 123.5 0.0011 0.0011 143.0 0.0014 0.0014 163.5 0.0016 0.0016 185.0 0.0017 0.0017 208.0 0.0018 0.0018 232.5 0.0018 0.0018 258.5 0.0018 0.0018 286.0 0.0018 0.0018 331.0 0.0018 0.0018 396.0 0.0017 0.0017 468.5 0.0016 0.0016 549.5 0.0015 0.0015 639.0 0.0014 0.0014 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0005 0.0005 --4.0 -3.5 132 9.0 -0.0416 -0.0416 11.0 -0.0343 -0.0343 13.5 -0.0267 -0.0267 16.5 -0.0197 -0.0197 19.5 -0.0145 -0.0145 22.5 -0.0106 -0.0106 26.0 -0.0072 -0.0072 30.0 -0.0044 -0.0044 34.5 -0.0021 -0.0021 40.0 -0.0001 -0.0001 46.0 0.0014 0.0014 52.5 0.0024 0.0024 60.0 0.0032 0.0032 69.0 0.0038 0.0038 79.0 0.0042 0.0042 90.5 0.0045 0.0045 105.5 0.0046 0.0046 123.5 0.0046 0.0046 143.0 0.0046 0.0046 163.5 0.0044 0.0044 185.0 0.0043 0.0043 208.0 0.0041 0.0041 232.5 0.0040 0.0040 258.5 0.0038 0.0038 286.0 0.0036 0.0036 331.0 0.0034 0.0034 396.0 0.0031 0.0031 468.5 0.0028 0.0028 549.5 0.0026 0.0026 639.0 0.0024 0.0024 738.0 0.0022 0.0022 847.5 0.0020 0.0020 968.5 0.0018 0.0018 1102.0 0.0017 0.0017 1249.5 0.0015 0.0015 1412.0 0.0014 0.0014 1590.5 0.0013 0.0013 1787.0 0.0012 0.0012 1945.0 0.0011 0.0011 2119.0 0.0010 0.0010 2369.0 0.0010 0.0010 2643.5 0.0009 0.0009 2945.0 0.0008 0.0008 3276.5 0.0007 0.0007 --3.5 -3.0 132 9.0 -0.0389 -0.0389 11.0 -0.0283 -0.0283 13.5 -0.0171 -0.0171 16.5 -0.0070 -0.0070 19.5 0.0002 0.0002 22.5 0.0055 0.0055 26.0 0.0099 0.0099 30.0 0.0134 0.0134 34.5 0.0161 0.0161 40.0 0.0181 0.0181 46.0 0.0193 0.0193 52.5 0.0200 0.0200 60.0 0.0203 0.0203 69.0 0.0202 0.0202 79.0 0.0198 0.0198 90.5 0.0192 0.0192 105.5 0.0182 0.0182 123.5 0.0172 0.0172 143.0 0.0161 0.0161 163.5 0.0151 0.0151 185.0 0.0141 0.0141 208.0 0.0132 0.0132 232.5 0.0124 0.0124 258.5 0.0117 0.0117 286.0 0.0110 0.0110 331.0 0.0101 0.0101 396.0 0.0090 0.0090 468.5 0.0081 0.0081 549.5 0.0073 0.0073 639.0 0.0066 0.0066 738.0 0.0059 0.0059 847.5 0.0054 0.0054 968.5 0.0049 0.0049 1102.0 0.0045 0.0045 1249.5 0.0041 0.0041 1412.0 0.0037 0.0037 1590.5 0.0034 0.0034 1787.0 0.0031 0.0031 1945.0 0.0029 0.0029 2119.0 0.0027 0.0027 2369.0 0.0025 0.0025 2643.5 0.0023 0.0023 2945.0 0.0021 0.0021 3276.5 0.0019 0.0019 --3.0 -2.8 132 9.0 -0.0343 -0.0343 11.0 -0.0297 -0.0297 13.5 -0.0248 -0.0248 16.5 -0.0202 -0.0202 19.5 -0.0166 -0.0166 22.5 -0.0139 -0.0139 26.0 -0.0113 -0.0113 30.0 -0.0091 -0.0091 34.5 -0.0073 -0.0073 40.0 -0.0056 -0.0056 46.0 -0.0042 -0.0042 52.5 -0.0031 -0.0031 60.0 -0.0022 -0.0022 69.0 -0.0014 -0.0014 79.0 -0.0007 -0.0007 90.5 -0.0002 -0.0002 105.5 0.0003 0.0003 123.5 0.0006 0.0006 143.0 0.0008 0.0008 163.5 0.0010 0.0010 185.0 0.0011 0.0011 208.0 0.0011 0.0011 232.5 0.0012 0.0012 258.5 0.0012 0.0012 286.0 0.0012 0.0012 331.0 0.0011 0.0011 396.0 0.0011 0.0011 468.5 0.0010 0.0010 549.5 0.0010 0.0010 639.0 0.0009 0.0009 738.0 0.0008 0.0008 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1945.0 0.0005 0.0005 2119.0 0.0005 0.0005 2369.0 0.0004 0.0004 2643.5 0.0004 0.0004 2945.0 0.0004 0.0004 3276.5 0.0003 0.0003 --2.8 -2.6 132 9.0 -0.0269 -0.0269 11.0 -0.0221 -0.0221 13.5 -0.0170 -0.0170 16.5 -0.0122 -0.0122 19.5 -0.0087 -0.0087 22.5 -0.0061 -0.0061 26.0 -0.0038 -0.0038 30.0 -0.0019 -0.0019 34.5 -0.0004 -0.0004 40.0 0.0009 0.0009 46.0 0.0019 0.0019 52.5 0.0026 0.0026 60.0 0.0032 0.0032 69.0 0.0036 0.0036 79.0 0.0039 0.0039 90.5 0.0040 0.0040 105.5 0.0041 0.0041 123.5 0.0041 0.0041 143.0 0.0040 0.0040 163.5 0.0038 0.0038 185.0 0.0037 0.0037 208.0 0.0035 0.0035 232.5 0.0034 0.0034 258.5 0.0032 0.0032 286.0 0.0031 0.0031 331.0 0.0028 0.0028 396.0 0.0026 0.0026 468.5 0.0023 0.0023 549.5 0.0021 0.0021 639.0 0.0019 0.0019 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0013 0.0013 1249.5 0.0012 0.0012 1412.0 0.0011 0.0011 1590.5 0.0010 0.0010 1787.0 0.0009 0.0009 1945.0 0.0009 0.0009 2119.0 0.0008 0.0008 2369.0 0.0008 0.0008 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 --2.6 -2.4 132 9.0 -0.1141 -0.1141 11.0 -0.0956 -0.0956 13.5 -0.0752 -0.0752 16.5 -0.0566 -0.0566 19.5 -0.0432 -0.0432 22.5 -0.0334 -0.0334 26.0 -0.0249 -0.0249 30.0 -0.0179 -0.0179 34.5 -0.0121 -0.0121 40.0 -0.0071 -0.0071 46.0 -0.0033 -0.0033 52.5 -0.0003 -0.0003 60.0 0.0021 0.0021 69.0 0.0041 0.0041 79.0 0.0056 0.0056 90.5 0.0067 0.0067 105.5 0.0075 0.0075 123.5 0.0080 0.0080 143.0 0.0082 0.0082 163.5 0.0082 0.0082 185.0 0.0081 0.0081 208.0 0.0079 0.0079 232.5 0.0077 0.0077 258.5 0.0074 0.0074 286.0 0.0071 0.0071 331.0 0.0067 0.0067 396.0 0.0061 0.0061 468.5 0.0056 0.0056 549.5 0.0052 0.0052 639.0 0.0047 0.0047 738.0 0.0043 0.0043 847.5 0.0040 0.0040 968.5 0.0037 0.0037 1102.0 0.0034 0.0034 1249.5 0.0031 0.0031 1412.0 0.0028 0.0028 1590.5 0.0026 0.0026 1787.0 0.0024 0.0024 1945.0 0.0023 0.0023 2119.0 0.0021 0.0021 2369.0 0.0020 0.0020 2643.5 0.0018 0.0018 2945.0 0.0017 0.0017 3276.5 0.0016 0.0016 --2.4 -2.2 132 9.0 -0.1492 -0.1492 11.0 -0.1239 -0.1239 13.5 -0.0968 -0.0968 16.5 -0.0732 -0.0732 19.5 -0.0564 -0.0564 22.5 -0.0441 -0.0441 26.0 -0.0335 -0.0335 30.0 -0.0247 -0.0247 34.5 -0.0175 -0.0175 40.0 -0.0113 -0.0113 46.0 -0.0066 -0.0066 52.5 -0.0030 -0.0030 60.0 0.0000 0.0000 69.0 0.0025 0.0025 79.0 0.0043 0.0043 90.5 0.0057 0.0057 105.5 0.0068 0.0068 123.5 0.0075 0.0075 143.0 0.0079 0.0079 163.5 0.0080 0.0080 185.0 0.0080 0.0080 208.0 0.0079 0.0079 232.5 0.0078 0.0078 258.5 0.0076 0.0076 286.0 0.0073 0.0073 331.0 0.0069 0.0069 396.0 0.0064 0.0064 468.5 0.0059 0.0059 549.5 0.0054 0.0054 639.0 0.0050 0.0050 738.0 0.0046 0.0046 847.5 0.0042 0.0042 968.5 0.0039 0.0039 1102.0 0.0036 0.0036 1249.5 0.0033 0.0033 1412.0 0.0030 0.0030 1590.5 0.0028 0.0028 1787.0 0.0026 0.0026 1945.0 0.0024 0.0024 2119.0 0.0023 0.0023 2369.0 0.0021 0.0021 2643.5 0.0019 0.0019 2945.0 0.0018 0.0018 3276.5 0.0017 0.0017 --2.2 -2.0 132 9.0 -0.1724 -0.1724 11.0 -0.1460 -0.1460 13.5 -0.1183 -0.1183 16.5 -0.0937 -0.0937 19.5 -0.0757 -0.0757 22.5 -0.0622 -0.0622 26.0 -0.0502 -0.0502 30.0 -0.0400 -0.0400 34.5 -0.0314 -0.0314 40.0 -0.0238 -0.0238 46.0 -0.0178 -0.0178 52.5 -0.0131 -0.0131 60.0 -0.0091 -0.0091 69.0 -0.0057 -0.0057 79.0 -0.0030 -0.0030 90.5 -0.0008 -0.0008 105.5 0.0011 0.0011 123.5 0.0025 0.0025 143.0 0.0035 0.0035 163.5 0.0042 0.0042 185.0 0.0046 0.0046 208.0 0.0048 0.0048 232.5 0.0049 0.0049 258.5 0.0050 0.0050 286.0 0.0050 0.0050 331.0 0.0049 0.0049 396.0 0.0047 0.0047 468.5 0.0045 0.0045 549.5 0.0042 0.0042 639.0 0.0039 0.0039 738.0 0.0036 0.0036 847.5 0.0034 0.0034 968.5 0.0031 0.0031 1102.0 0.0029 0.0029 1249.5 0.0027 0.0027 1412.0 0.0025 0.0025 1590.5 0.0023 0.0023 1787.0 0.0022 0.0022 1945.0 0.0020 0.0020 2119.0 0.0019 0.0019 2369.0 0.0018 0.0018 2643.5 0.0017 0.0017 2945.0 0.0015 0.0015 3276.5 0.0014 0.0014 --2.0 -1.8 132 9.0 -0.1295 -0.1295 11.0 -0.1119 -0.1119 13.5 -0.0935 -0.0935 16.5 -0.0768 -0.0768 19.5 -0.0643 -0.0643 22.5 -0.0546 -0.0546 26.0 -0.0458 -0.0458 30.0 -0.0382 -0.0382 34.5 -0.0316 -0.0316 40.0 -0.0256 -0.0256 46.0 -0.0207 -0.0207 52.5 -0.0167 -0.0167 60.0 -0.0133 -0.0133 69.0 -0.0102 -0.0102 79.0 -0.0077 -0.0077 90.5 -0.0057 -0.0057 105.5 -0.0038 -0.0038 123.5 -0.0023 -0.0023 143.0 -0.0011 -0.0011 163.5 -0.0003 -0.0003 185.0 0.0003 0.0003 208.0 0.0007 0.0007 232.5 0.0010 0.0010 258.5 0.0013 0.0013 286.0 0.0014 0.0014 331.0 0.0016 0.0016 396.0 0.0018 0.0018 468.5 0.0018 0.0018 549.5 0.0018 0.0018 639.0 0.0017 0.0017 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0014 0.0014 1249.5 0.0013 0.0013 1412.0 0.0013 0.0013 1590.5 0.0012 0.0012 1787.0 0.0011 0.0011 1945.0 0.0011 0.0011 2119.0 0.0010 0.0010 2369.0 0.0009 0.0009 2643.5 0.0009 0.0009 2945.0 0.0008 0.0008 3276.5 0.0008 0.0008 --1.8 -1.6 132 9.0 -0.1076 -0.1076 11.0 -0.0940 -0.0940 13.5 -0.0797 -0.0797 16.5 -0.0667 -0.0667 19.5 -0.0567 -0.0567 22.5 -0.0489 -0.0489 26.0 -0.0418 -0.0418 30.0 -0.0355 -0.0355 34.5 -0.0300 -0.0300 40.0 -0.0249 -0.0249 46.0 -0.0207 -0.0207 52.5 -0.0173 -0.0173 60.0 -0.0142 -0.0142 69.0 -0.0115 -0.0115 79.0 -0.0093 -0.0093 90.5 -0.0074 -0.0074 105.5 -0.0056 -0.0056 123.5 -0.0041 -0.0041 143.0 -0.0030 -0.0030 163.5 -0.0022 -0.0022 185.0 -0.0015 -0.0015 208.0 -0.0010 -0.0010 232.5 -0.0006 -0.0006 258.5 -0.0003 -0.0003 286.0 -0.0001 -0.0001 331.0 0.0002 0.0002 396.0 0.0004 0.0004 468.5 0.0006 0.0006 549.5 0.0007 0.0007 639.0 0.0007 0.0007 738.0 0.0008 0.0008 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0007 0.0007 1249.5 0.0007 0.0007 1412.0 0.0007 0.0007 1590.5 0.0006 0.0006 1787.0 0.0006 0.0006 1945.0 0.0006 0.0006 2119.0 0.0006 0.0006 2369.0 0.0005 0.0005 2643.5 0.0005 0.0005 2945.0 0.0005 0.0005 3276.5 0.0004 0.0004 --1.6 -1.4 132 9.0 -0.1048 -0.1048 11.0 -0.0912 -0.0912 13.5 -0.0768 -0.0768 16.5 -0.0636 -0.0636 19.5 -0.0536 -0.0536 22.5 -0.0459 -0.0459 26.0 -0.0388 -0.0388 30.0 -0.0326 -0.0326 34.5 -0.0272 -0.0272 40.0 -0.0222 -0.0222 46.0 -0.0182 -0.0182 52.5 -0.0149 -0.0149 60.0 -0.0120 -0.0120 69.0 -0.0094 -0.0094 79.0 -0.0073 -0.0073 90.5 -0.0055 -0.0055 105.5 -0.0039 -0.0039 123.5 -0.0025 -0.0025 143.0 -0.0015 -0.0015 163.5 -0.0008 -0.0008 185.0 -0.0002 -0.0002 208.0 0.0002 0.0002 232.5 0.0005 0.0005 258.5 0.0007 0.0007 286.0 0.0009 0.0009 331.0 0.0011 0.0011 396.0 0.0012 0.0012 468.5 0.0013 0.0013 549.5 0.0013 0.0013 639.0 0.0013 0.0013 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0010 0.0010 1412.0 0.0010 0.0010 1590.5 0.0009 0.0009 1787.0 0.0009 0.0009 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 --1.4 -1.2 132 9.0 -0.1041 -0.1041 11.0 -0.0885 -0.0885 13.5 -0.0722 -0.0722 16.5 -0.0575 -0.0575 19.5 -0.0466 -0.0466 22.5 -0.0382 -0.0382 26.0 -0.0307 -0.0307 30.0 -0.0241 -0.0241 34.5 -0.0186 -0.0186 40.0 -0.0136 -0.0136 46.0 -0.0095 -0.0095 52.5 -0.0064 -0.0064 60.0 -0.0037 -0.0037 69.0 -0.0014 -0.0014 79.0 0.0004 0.0004 90.5 0.0018 0.0018 105.5 0.0030 0.0030 123.5 0.0039 0.0039 143.0 0.0045 0.0045 163.5 0.0048 0.0048 185.0 0.0050 0.0050 208.0 0.0051 0.0051 232.5 0.0051 0.0051 258.5 0.0050 0.0050 286.0 0.0050 0.0050 331.0 0.0048 0.0048 396.0 0.0045 0.0045 468.5 0.0042 0.0042 549.5 0.0040 0.0040 639.0 0.0037 0.0037 738.0 0.0034 0.0034 847.5 0.0031 0.0031 968.5 0.0029 0.0029 1102.0 0.0027 0.0027 1249.5 0.0025 0.0025 1412.0 0.0023 0.0023 1590.5 0.0021 0.0021 1787.0 0.0020 0.0020 1945.0 0.0019 0.0019 2119.0 0.0018 0.0018 2369.0 0.0016 0.0016 2643.5 0.0015 0.0015 2945.0 0.0014 0.0014 3276.5 0.0013 0.0013 --1.2 -1.0 132 9.0 -0.1018 -0.1018 11.0 -0.0872 -0.0872 13.5 -0.0719 -0.0719 16.5 -0.0580 -0.0580 19.5 -0.0477 -0.0477 22.5 -0.0397 -0.0397 26.0 -0.0324 -0.0324 30.0 -0.0261 -0.0261 34.5 -0.0207 -0.0207 40.0 -0.0158 -0.0158 46.0 -0.0119 -0.0119 52.5 -0.0087 -0.0087 60.0 -0.0060 -0.0060 69.0 -0.0037 -0.0037 79.0 -0.0018 -0.0018 90.5 -0.0003 -0.0003 105.5 0.0010 0.0010 123.5 0.0020 0.0020 143.0 0.0027 0.0027 163.5 0.0031 0.0031 185.0 0.0034 0.0034 208.0 0.0036 0.0036 232.5 0.0037 0.0037 258.5 0.0037 0.0037 286.0 0.0037 0.0037 331.0 0.0037 0.0037 396.0 0.0035 0.0035 468.5 0.0034 0.0034 549.5 0.0032 0.0032 639.0 0.0030 0.0030 738.0 0.0028 0.0028 847.5 0.0026 0.0026 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0021 0.0021 1412.0 0.0019 0.0019 1590.5 0.0018 0.0018 1787.0 0.0017 0.0017 1945.0 0.0016 0.0016 2119.0 0.0015 0.0015 2369.0 0.0014 0.0014 2643.5 0.0013 0.0013 2945.0 0.0012 0.0012 3276.5 0.0011 0.0011 --1.0 -0.8 132 9.0 -0.0914 -0.0914 11.0 -0.0792 -0.0792 13.5 -0.0660 -0.0660 16.5 -0.0541 -0.0541 19.5 -0.0451 -0.0451 22.5 -0.0382 -0.0382 26.0 -0.0319 -0.0319 30.0 -0.0264 -0.0264 34.5 -0.0217 -0.0217 40.0 -0.0173 -0.0173 46.0 -0.0138 -0.0138 52.5 -0.0109 -0.0109 60.0 -0.0085 -0.0085 69.0 -0.0063 -0.0063 79.0 -0.0046 -0.0046 90.5 -0.0031 -0.0031 105.5 -0.0018 -0.0018 123.5 -0.0007 -0.0007 143.0 0.0001 0.0001 163.5 0.0006 0.0006 185.0 0.0010 0.0010 208.0 0.0013 0.0013 232.5 0.0015 0.0015 258.5 0.0017 0.0017 286.0 0.0018 0.0018 331.0 0.0019 0.0019 396.0 0.0019 0.0019 468.5 0.0019 0.0019 549.5 0.0018 0.0018 639.0 0.0017 0.0017 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0014 0.0014 1249.5 0.0013 0.0013 1412.0 0.0012 0.0012 1590.5 0.0011 0.0011 1787.0 0.0011 0.0011 1945.0 0.0010 0.0010 2119.0 0.0010 0.0010 2369.0 0.0009 0.0009 2643.5 0.0008 0.0008 2945.0 0.0008 0.0008 3276.5 0.0007 0.0007 --0.8 -0.6 132 9.0 -0.0876 -0.0876 11.0 -0.0764 -0.0764 13.5 -0.0642 -0.0642 16.5 -0.0530 -0.0530 19.5 -0.0447 -0.0447 22.5 -0.0382 -0.0382 26.0 -0.0323 -0.0323 30.0 -0.0271 -0.0271 34.5 -0.0226 -0.0226 40.0 -0.0185 -0.0185 46.0 -0.0151 -0.0151 52.5 -0.0124 -0.0124 60.0 -0.0100 -0.0100 69.0 -0.0079 -0.0079 79.0 -0.0061 -0.0061 90.5 -0.0047 -0.0047 105.5 -0.0033 -0.0033 123.5 -0.0022 -0.0022 143.0 -0.0013 -0.0013 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0003 0.0003 258.5 0.0006 0.0006 286.0 0.0007 0.0007 331.0 0.0009 0.0009 396.0 0.0010 0.0010 468.5 0.0011 0.0011 549.5 0.0011 0.0011 639.0 0.0011 0.0011 738.0 0.0011 0.0011 847.5 0.0010 0.0010 968.5 0.0010 0.0010 1102.0 0.0009 0.0009 1249.5 0.0009 0.0009 1412.0 0.0008 0.0008 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0005 0.0005 --0.6 -0.4 132 9.0 -0.0872 -0.0872 11.0 -0.0761 -0.0761 13.5 -0.0637 -0.0637 16.5 -0.0526 -0.0526 19.5 -0.0442 -0.0442 22.5 -0.0378 -0.0378 26.0 -0.0320 -0.0320 30.0 -0.0268 -0.0268 34.5 -0.0224 -0.0224 40.0 -0.0183 -0.0183 46.0 -0.0150 -0.0150 52.5 -0.0123 -0.0123 60.0 -0.0099 -0.0099 69.0 -0.0078 -0.0078 79.0 -0.0061 -0.0061 90.5 -0.0046 -0.0046 105.5 -0.0033 -0.0033 123.5 -0.0022 -0.0022 143.0 -0.0013 -0.0013 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0003 0.0003 258.5 0.0005 0.0005 286.0 0.0007 0.0007 331.0 0.0009 0.0009 396.0 0.0010 0.0010 468.5 0.0011 0.0011 549.5 0.0011 0.0011 639.0 0.0011 0.0011 738.0 0.0011 0.0011 847.5 0.0010 0.0010 968.5 0.0010 0.0010 1102.0 0.0009 0.0009 1249.5 0.0009 0.0009 1412.0 0.0008 0.0008 1590.5 0.0008 0.0008 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0005 0.0005 --0.4 -0.2 132 9.0 -0.0868 -0.0868 11.0 -0.0756 -0.0756 13.5 -0.0631 -0.0631 16.5 -0.0520 -0.0520 19.5 -0.0436 -0.0436 22.5 -0.0371 -0.0371 26.0 -0.0313 -0.0313 30.0 -0.0262 -0.0262 34.5 -0.0218 -0.0218 40.0 -0.0178 -0.0178 46.0 -0.0145 -0.0145 52.5 -0.0118 -0.0118 60.0 -0.0094 -0.0094 69.0 -0.0074 -0.0074 79.0 -0.0057 -0.0057 90.5 -0.0042 -0.0042 105.5 -0.0029 -0.0029 123.5 -0.0018 -0.0018 143.0 -0.0010 -0.0010 163.5 -0.0005 -0.0005 185.0 -0.0000 -0.0000 208.0 0.0003 0.0003 232.5 0.0006 0.0006 258.5 0.0007 0.0007 286.0 0.0009 0.0009 331.0 0.0010 0.0010 396.0 0.0011 0.0011 468.5 0.0012 0.0012 549.5 0.0012 0.0012 639.0 0.0012 0.0012 738.0 0.0012 0.0012 847.5 0.0011 0.0011 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0008 0.0008 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 --0.2 0.0 132 9.0 -0.0830 -0.0830 11.0 -0.0720 -0.0720 13.5 -0.0599 -0.0599 16.5 -0.0490 -0.0490 19.5 -0.0410 -0.0410 22.5 -0.0348 -0.0348 26.0 -0.0292 -0.0292 30.0 -0.0243 -0.0243 34.5 -0.0201 -0.0201 40.0 -0.0162 -0.0162 46.0 -0.0131 -0.0131 52.5 -0.0106 -0.0106 60.0 -0.0084 -0.0084 69.0 -0.0064 -0.0064 79.0 -0.0048 -0.0048 90.5 -0.0035 -0.0035 105.5 -0.0023 -0.0023 123.5 -0.0013 -0.0013 143.0 -0.0005 -0.0005 163.5 -0.0000 -0.0000 185.0 0.0004 0.0004 208.0 0.0007 0.0007 232.5 0.0009 0.0009 258.5 0.0010 0.0010 286.0 0.0012 0.0012 331.0 0.0013 0.0013 396.0 0.0013 0.0013 468.5 0.0014 0.0014 549.5 0.0013 0.0013 639.0 0.0013 0.0013 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0010 0.0010 1412.0 0.0010 0.0010 1590.5 0.0009 0.0009 1787.0 0.0008 0.0008 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -0.0 0.2 132 9.0 -0.0830 -0.0830 11.0 -0.0720 -0.0720 13.5 -0.0599 -0.0599 16.5 -0.0490 -0.0490 19.5 -0.0410 -0.0410 22.5 -0.0348 -0.0348 26.0 -0.0292 -0.0292 30.0 -0.0243 -0.0243 34.5 -0.0201 -0.0201 40.0 -0.0162 -0.0162 46.0 -0.0131 -0.0131 52.5 -0.0106 -0.0106 60.0 -0.0084 -0.0084 69.0 -0.0064 -0.0064 79.0 -0.0048 -0.0048 90.5 -0.0035 -0.0035 105.5 -0.0023 -0.0023 123.5 -0.0013 -0.0013 143.0 -0.0005 -0.0005 163.5 -0.0000 -0.0000 185.0 0.0004 0.0004 208.0 0.0007 0.0007 232.5 0.0009 0.0009 258.5 0.0010 0.0010 286.0 0.0012 0.0012 331.0 0.0013 0.0013 396.0 0.0013 0.0013 468.5 0.0014 0.0014 549.5 0.0013 0.0013 639.0 0.0013 0.0013 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0010 0.0010 1412.0 0.0010 0.0010 1590.5 0.0009 0.0009 1787.0 0.0008 0.0008 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -0.2 0.4 132 9.0 -0.0868 -0.0868 11.0 -0.0756 -0.0756 13.5 -0.0631 -0.0631 16.5 -0.0520 -0.0520 19.5 -0.0436 -0.0436 22.5 -0.0371 -0.0371 26.0 -0.0313 -0.0313 30.0 -0.0262 -0.0262 34.5 -0.0218 -0.0218 40.0 -0.0178 -0.0178 46.0 -0.0145 -0.0145 52.5 -0.0118 -0.0118 60.0 -0.0094 -0.0094 69.0 -0.0074 -0.0074 79.0 -0.0057 -0.0057 90.5 -0.0042 -0.0042 105.5 -0.0029 -0.0029 123.5 -0.0018 -0.0018 143.0 -0.0010 -0.0010 163.5 -0.0005 -0.0005 185.0 -0.0000 -0.0000 208.0 0.0003 0.0003 232.5 0.0006 0.0006 258.5 0.0007 0.0007 286.0 0.0009 0.0009 331.0 0.0010 0.0010 396.0 0.0011 0.0011 468.5 0.0012 0.0012 549.5 0.0012 0.0012 639.0 0.0012 0.0012 738.0 0.0012 0.0012 847.5 0.0011 0.0011 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0008 0.0008 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -0.4 0.6 132 9.0 -0.0872 -0.0872 11.0 -0.0761 -0.0761 13.5 -0.0637 -0.0637 16.5 -0.0526 -0.0526 19.5 -0.0442 -0.0442 22.5 -0.0378 -0.0378 26.0 -0.0320 -0.0320 30.0 -0.0268 -0.0268 34.5 -0.0224 -0.0224 40.0 -0.0183 -0.0183 46.0 -0.0150 -0.0150 52.5 -0.0123 -0.0123 60.0 -0.0099 -0.0099 69.0 -0.0078 -0.0078 79.0 -0.0061 -0.0061 90.5 -0.0046 -0.0046 105.5 -0.0033 -0.0033 123.5 -0.0022 -0.0022 143.0 -0.0013 -0.0013 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0003 0.0003 258.5 0.0005 0.0005 286.0 0.0007 0.0007 331.0 0.0009 0.0009 396.0 0.0010 0.0010 468.5 0.0011 0.0011 549.5 0.0011 0.0011 639.0 0.0011 0.0011 738.0 0.0011 0.0011 847.5 0.0010 0.0010 968.5 0.0010 0.0010 1102.0 0.0009 0.0009 1249.5 0.0009 0.0009 1412.0 0.0008 0.0008 1590.5 0.0008 0.0008 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0005 0.0005 -0.6 0.8 132 9.0 -0.0876 -0.0876 11.0 -0.0764 -0.0764 13.5 -0.0642 -0.0642 16.5 -0.0530 -0.0530 19.5 -0.0447 -0.0447 22.5 -0.0382 -0.0382 26.0 -0.0323 -0.0323 30.0 -0.0271 -0.0271 34.5 -0.0226 -0.0226 40.0 -0.0185 -0.0185 46.0 -0.0151 -0.0151 52.5 -0.0124 -0.0124 60.0 -0.0100 -0.0100 69.0 -0.0079 -0.0079 79.0 -0.0061 -0.0061 90.5 -0.0047 -0.0047 105.5 -0.0033 -0.0033 123.5 -0.0022 -0.0022 143.0 -0.0013 -0.0013 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0003 0.0003 258.5 0.0006 0.0006 286.0 0.0007 0.0007 331.0 0.0009 0.0009 396.0 0.0010 0.0010 468.5 0.0011 0.0011 549.5 0.0011 0.0011 639.0 0.0011 0.0011 738.0 0.0011 0.0011 847.5 0.0010 0.0010 968.5 0.0010 0.0010 1102.0 0.0009 0.0009 1249.5 0.0009 0.0009 1412.0 0.0008 0.0008 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0005 0.0005 -0.8 1.0 132 9.0 -0.0914 -0.0914 11.0 -0.0792 -0.0792 13.5 -0.0660 -0.0660 16.5 -0.0541 -0.0541 19.5 -0.0451 -0.0451 22.5 -0.0382 -0.0382 26.0 -0.0319 -0.0319 30.0 -0.0264 -0.0264 34.5 -0.0217 -0.0217 40.0 -0.0173 -0.0173 46.0 -0.0138 -0.0138 52.5 -0.0109 -0.0109 60.0 -0.0085 -0.0085 69.0 -0.0063 -0.0063 79.0 -0.0046 -0.0046 90.5 -0.0031 -0.0031 105.5 -0.0018 -0.0018 123.5 -0.0007 -0.0007 143.0 0.0001 0.0001 163.5 0.0006 0.0006 185.0 0.0010 0.0010 208.0 0.0013 0.0013 232.5 0.0015 0.0015 258.5 0.0017 0.0017 286.0 0.0018 0.0018 331.0 0.0019 0.0019 396.0 0.0019 0.0019 468.5 0.0019 0.0019 549.5 0.0018 0.0018 639.0 0.0017 0.0017 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0014 0.0014 1249.5 0.0013 0.0013 1412.0 0.0012 0.0012 1590.5 0.0011 0.0011 1787.0 0.0011 0.0011 1945.0 0.0010 0.0010 2119.0 0.0010 0.0010 2369.0 0.0009 0.0009 2643.5 0.0008 0.0008 2945.0 0.0008 0.0008 3276.5 0.0007 0.0007 -1.0 1.2 132 9.0 -0.1018 -0.1018 11.0 -0.0872 -0.0872 13.5 -0.0719 -0.0719 16.5 -0.0580 -0.0580 19.5 -0.0477 -0.0477 22.5 -0.0397 -0.0397 26.0 -0.0324 -0.0324 30.0 -0.0261 -0.0261 34.5 -0.0207 -0.0207 40.0 -0.0158 -0.0158 46.0 -0.0119 -0.0119 52.5 -0.0087 -0.0087 60.0 -0.0060 -0.0060 69.0 -0.0037 -0.0037 79.0 -0.0018 -0.0018 90.5 -0.0003 -0.0003 105.5 0.0010 0.0010 123.5 0.0020 0.0020 143.0 0.0027 0.0027 163.5 0.0031 0.0031 185.0 0.0034 0.0034 208.0 0.0036 0.0036 232.5 0.0037 0.0037 258.5 0.0037 0.0037 286.0 0.0037 0.0037 331.0 0.0037 0.0037 396.0 0.0035 0.0035 468.5 0.0034 0.0034 549.5 0.0032 0.0032 639.0 0.0030 0.0030 738.0 0.0028 0.0028 847.5 0.0026 0.0026 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0021 0.0021 1412.0 0.0019 0.0019 1590.5 0.0018 0.0018 1787.0 0.0017 0.0017 1945.0 0.0016 0.0016 2119.0 0.0015 0.0015 2369.0 0.0014 0.0014 2643.5 0.0013 0.0013 2945.0 0.0012 0.0012 3276.5 0.0011 0.0011 -1.2 1.4 132 9.0 -0.1041 -0.1041 11.0 -0.0885 -0.0885 13.5 -0.0722 -0.0722 16.5 -0.0575 -0.0575 19.5 -0.0466 -0.0466 22.5 -0.0382 -0.0382 26.0 -0.0307 -0.0307 30.0 -0.0241 -0.0241 34.5 -0.0186 -0.0186 40.0 -0.0136 -0.0136 46.0 -0.0095 -0.0095 52.5 -0.0064 -0.0064 60.0 -0.0037 -0.0037 69.0 -0.0014 -0.0014 79.0 0.0004 0.0004 90.5 0.0018 0.0018 105.5 0.0030 0.0030 123.5 0.0039 0.0039 143.0 0.0045 0.0045 163.5 0.0048 0.0048 185.0 0.0050 0.0050 208.0 0.0051 0.0051 232.5 0.0051 0.0051 258.5 0.0050 0.0050 286.0 0.0050 0.0050 331.0 0.0048 0.0048 396.0 0.0045 0.0045 468.5 0.0042 0.0042 549.5 0.0040 0.0040 639.0 0.0037 0.0037 738.0 0.0034 0.0034 847.5 0.0031 0.0031 968.5 0.0029 0.0029 1102.0 0.0027 0.0027 1249.5 0.0025 0.0025 1412.0 0.0023 0.0023 1590.5 0.0021 0.0021 1787.0 0.0020 0.0020 1945.0 0.0019 0.0019 2119.0 0.0018 0.0018 2369.0 0.0016 0.0016 2643.5 0.0015 0.0015 2945.0 0.0014 0.0014 3276.5 0.0013 0.0013 -1.4 1.6 132 9.0 -0.1048 -0.1048 11.0 -0.0912 -0.0912 13.5 -0.0768 -0.0768 16.5 -0.0636 -0.0636 19.5 -0.0536 -0.0536 22.5 -0.0459 -0.0459 26.0 -0.0388 -0.0388 30.0 -0.0326 -0.0326 34.5 -0.0272 -0.0272 40.0 -0.0222 -0.0222 46.0 -0.0182 -0.0182 52.5 -0.0149 -0.0149 60.0 -0.0120 -0.0120 69.0 -0.0094 -0.0094 79.0 -0.0073 -0.0073 90.5 -0.0055 -0.0055 105.5 -0.0039 -0.0039 123.5 -0.0025 -0.0025 143.0 -0.0015 -0.0015 163.5 -0.0008 -0.0008 185.0 -0.0002 -0.0002 208.0 0.0002 0.0002 232.5 0.0005 0.0005 258.5 0.0007 0.0007 286.0 0.0009 0.0009 331.0 0.0011 0.0011 396.0 0.0012 0.0012 468.5 0.0013 0.0013 549.5 0.0013 0.0013 639.0 0.0013 0.0013 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0010 0.0010 1412.0 0.0010 0.0010 1590.5 0.0009 0.0009 1787.0 0.0009 0.0009 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -1.6 1.8 132 9.0 -0.1076 -0.1076 11.0 -0.0940 -0.0940 13.5 -0.0797 -0.0797 16.5 -0.0667 -0.0667 19.5 -0.0567 -0.0567 22.5 -0.0489 -0.0489 26.0 -0.0418 -0.0418 30.0 -0.0355 -0.0355 34.5 -0.0300 -0.0300 40.0 -0.0249 -0.0249 46.0 -0.0207 -0.0207 52.5 -0.0173 -0.0173 60.0 -0.0142 -0.0142 69.0 -0.0115 -0.0115 79.0 -0.0093 -0.0093 90.5 -0.0074 -0.0074 105.5 -0.0056 -0.0056 123.5 -0.0041 -0.0041 143.0 -0.0030 -0.0030 163.5 -0.0022 -0.0022 185.0 -0.0015 -0.0015 208.0 -0.0010 -0.0010 232.5 -0.0006 -0.0006 258.5 -0.0003 -0.0003 286.0 -0.0001 -0.0001 331.0 0.0002 0.0002 396.0 0.0004 0.0004 468.5 0.0006 0.0006 549.5 0.0007 0.0007 639.0 0.0007 0.0007 738.0 0.0008 0.0008 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0007 0.0007 1249.5 0.0007 0.0007 1412.0 0.0007 0.0007 1590.5 0.0006 0.0006 1787.0 0.0006 0.0006 1945.0 0.0006 0.0006 2119.0 0.0006 0.0006 2369.0 0.0005 0.0005 2643.5 0.0005 0.0005 2945.0 0.0005 0.0005 3276.5 0.0004 0.0004 -1.8 2.0 132 9.0 -0.1295 -0.1295 11.0 -0.1119 -0.1119 13.5 -0.0935 -0.0935 16.5 -0.0768 -0.0768 19.5 -0.0643 -0.0643 22.5 -0.0546 -0.0546 26.0 -0.0458 -0.0458 30.0 -0.0382 -0.0382 34.5 -0.0316 -0.0316 40.0 -0.0256 -0.0256 46.0 -0.0207 -0.0207 52.5 -0.0167 -0.0167 60.0 -0.0133 -0.0133 69.0 -0.0102 -0.0102 79.0 -0.0077 -0.0077 90.5 -0.0057 -0.0057 105.5 -0.0038 -0.0038 123.5 -0.0023 -0.0023 143.0 -0.0011 -0.0011 163.5 -0.0003 -0.0003 185.0 0.0003 0.0003 208.0 0.0007 0.0007 232.5 0.0010 0.0010 258.5 0.0013 0.0013 286.0 0.0014 0.0014 331.0 0.0016 0.0016 396.0 0.0018 0.0018 468.5 0.0018 0.0018 549.5 0.0018 0.0018 639.0 0.0017 0.0017 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0014 0.0014 1249.5 0.0013 0.0013 1412.0 0.0013 0.0013 1590.5 0.0012 0.0012 1787.0 0.0011 0.0011 1945.0 0.0011 0.0011 2119.0 0.0010 0.0010 2369.0 0.0009 0.0009 2643.5 0.0009 0.0009 2945.0 0.0008 0.0008 3276.5 0.0008 0.0008 -2.0 2.2 132 9.0 -0.1724 -0.1724 11.0 -0.1460 -0.1460 13.5 -0.1183 -0.1183 16.5 -0.0937 -0.0937 19.5 -0.0757 -0.0757 22.5 -0.0622 -0.0622 26.0 -0.0502 -0.0502 30.0 -0.0400 -0.0400 34.5 -0.0314 -0.0314 40.0 -0.0238 -0.0238 46.0 -0.0178 -0.0178 52.5 -0.0131 -0.0131 60.0 -0.0091 -0.0091 69.0 -0.0057 -0.0057 79.0 -0.0030 -0.0030 90.5 -0.0008 -0.0008 105.5 0.0011 0.0011 123.5 0.0025 0.0025 143.0 0.0035 0.0035 163.5 0.0042 0.0042 185.0 0.0046 0.0046 208.0 0.0048 0.0048 232.5 0.0049 0.0049 258.5 0.0050 0.0050 286.0 0.0050 0.0050 331.0 0.0049 0.0049 396.0 0.0047 0.0047 468.5 0.0045 0.0045 549.5 0.0042 0.0042 639.0 0.0039 0.0039 738.0 0.0036 0.0036 847.5 0.0034 0.0034 968.5 0.0031 0.0031 1102.0 0.0029 0.0029 1249.5 0.0027 0.0027 1412.0 0.0025 0.0025 1590.5 0.0023 0.0023 1787.0 0.0022 0.0022 1945.0 0.0020 0.0020 2119.0 0.0019 0.0019 2369.0 0.0018 0.0018 2643.5 0.0017 0.0017 2945.0 0.0015 0.0015 3276.5 0.0014 0.0014 -2.2 2.4 132 9.0 -0.1492 -0.1492 11.0 -0.1239 -0.1239 13.5 -0.0968 -0.0968 16.5 -0.0732 -0.0732 19.5 -0.0564 -0.0564 22.5 -0.0441 -0.0441 26.0 -0.0335 -0.0335 30.0 -0.0247 -0.0247 34.5 -0.0175 -0.0175 40.0 -0.0113 -0.0113 46.0 -0.0066 -0.0066 52.5 -0.0030 -0.0030 60.0 0.0000 0.0000 69.0 0.0025 0.0025 79.0 0.0043 0.0043 90.5 0.0057 0.0057 105.5 0.0068 0.0068 123.5 0.0075 0.0075 143.0 0.0079 0.0079 163.5 0.0080 0.0080 185.0 0.0080 0.0080 208.0 0.0079 0.0079 232.5 0.0078 0.0078 258.5 0.0076 0.0076 286.0 0.0073 0.0073 331.0 0.0069 0.0069 396.0 0.0064 0.0064 468.5 0.0059 0.0059 549.5 0.0054 0.0054 639.0 0.0050 0.0050 738.0 0.0046 0.0046 847.5 0.0042 0.0042 968.5 0.0039 0.0039 1102.0 0.0036 0.0036 1249.5 0.0033 0.0033 1412.0 0.0030 0.0030 1590.5 0.0028 0.0028 1787.0 0.0026 0.0026 1945.0 0.0024 0.0024 2119.0 0.0023 0.0023 2369.0 0.0021 0.0021 2643.5 0.0019 0.0019 2945.0 0.0018 0.0018 3276.5 0.0017 0.0017 -2.4 2.6 132 9.0 -0.1141 -0.1141 11.0 -0.0956 -0.0956 13.5 -0.0752 -0.0752 16.5 -0.0566 -0.0566 19.5 -0.0432 -0.0432 22.5 -0.0334 -0.0334 26.0 -0.0249 -0.0249 30.0 -0.0179 -0.0179 34.5 -0.0121 -0.0121 40.0 -0.0071 -0.0071 46.0 -0.0033 -0.0033 52.5 -0.0003 -0.0003 60.0 0.0021 0.0021 69.0 0.0041 0.0041 79.0 0.0056 0.0056 90.5 0.0067 0.0067 105.5 0.0075 0.0075 123.5 0.0080 0.0080 143.0 0.0082 0.0082 163.5 0.0082 0.0082 185.0 0.0081 0.0081 208.0 0.0079 0.0079 232.5 0.0077 0.0077 258.5 0.0074 0.0074 286.0 0.0071 0.0071 331.0 0.0067 0.0067 396.0 0.0061 0.0061 468.5 0.0056 0.0056 549.5 0.0052 0.0052 639.0 0.0047 0.0047 738.0 0.0043 0.0043 847.5 0.0040 0.0040 968.5 0.0037 0.0037 1102.0 0.0034 0.0034 1249.5 0.0031 0.0031 1412.0 0.0028 0.0028 1590.5 0.0026 0.0026 1787.0 0.0024 0.0024 1945.0 0.0023 0.0023 2119.0 0.0021 0.0021 2369.0 0.0020 0.0020 2643.5 0.0018 0.0018 2945.0 0.0017 0.0017 3276.5 0.0016 0.0016 -2.6 2.8 132 9.0 -0.0269 -0.0269 11.0 -0.0221 -0.0221 13.5 -0.0170 -0.0170 16.5 -0.0122 -0.0122 19.5 -0.0087 -0.0087 22.5 -0.0061 -0.0061 26.0 -0.0038 -0.0038 30.0 -0.0019 -0.0019 34.5 -0.0004 -0.0004 40.0 0.0009 0.0009 46.0 0.0019 0.0019 52.5 0.0026 0.0026 60.0 0.0032 0.0032 69.0 0.0036 0.0036 79.0 0.0039 0.0039 90.5 0.0040 0.0040 105.5 0.0041 0.0041 123.5 0.0041 0.0041 143.0 0.0040 0.0040 163.5 0.0038 0.0038 185.0 0.0037 0.0037 208.0 0.0035 0.0035 232.5 0.0034 0.0034 258.5 0.0032 0.0032 286.0 0.0031 0.0031 331.0 0.0028 0.0028 396.0 0.0026 0.0026 468.5 0.0023 0.0023 549.5 0.0021 0.0021 639.0 0.0019 0.0019 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0013 0.0013 1249.5 0.0012 0.0012 1412.0 0.0011 0.0011 1590.5 0.0010 0.0010 1787.0 0.0009 0.0009 1945.0 0.0009 0.0009 2119.0 0.0008 0.0008 2369.0 0.0008 0.0008 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -2.8 3.0 132 9.0 -0.0343 -0.0343 11.0 -0.0297 -0.0297 13.5 -0.0248 -0.0248 16.5 -0.0202 -0.0202 19.5 -0.0166 -0.0166 22.5 -0.0139 -0.0139 26.0 -0.0113 -0.0113 30.0 -0.0091 -0.0091 34.5 -0.0073 -0.0073 40.0 -0.0056 -0.0056 46.0 -0.0042 -0.0042 52.5 -0.0031 -0.0031 60.0 -0.0022 -0.0022 69.0 -0.0014 -0.0014 79.0 -0.0007 -0.0007 90.5 -0.0002 -0.0002 105.5 0.0003 0.0003 123.5 0.0006 0.0006 143.0 0.0008 0.0008 163.5 0.0010 0.0010 185.0 0.0011 0.0011 208.0 0.0011 0.0011 232.5 0.0012 0.0012 258.5 0.0012 0.0012 286.0 0.0012 0.0012 331.0 0.0011 0.0011 396.0 0.0011 0.0011 468.5 0.0010 0.0010 549.5 0.0010 0.0010 639.0 0.0009 0.0009 738.0 0.0008 0.0008 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1945.0 0.0005 0.0005 2119.0 0.0005 0.0005 2369.0 0.0004 0.0004 2643.5 0.0004 0.0004 2945.0 0.0004 0.0004 3276.5 0.0003 0.0003 -3.0 3.5 132 9.0 -0.0389 -0.0389 11.0 -0.0283 -0.0283 13.5 -0.0171 -0.0171 16.5 -0.0070 -0.0070 19.5 0.0002 0.0002 22.5 0.0055 0.0055 26.0 0.0099 0.0099 30.0 0.0134 0.0134 34.5 0.0161 0.0161 40.0 0.0181 0.0181 46.0 0.0193 0.0193 52.5 0.0200 0.0200 60.0 0.0203 0.0203 69.0 0.0202 0.0202 79.0 0.0198 0.0198 90.5 0.0192 0.0192 105.5 0.0182 0.0182 123.5 0.0172 0.0172 143.0 0.0161 0.0161 163.5 0.0151 0.0151 185.0 0.0141 0.0141 208.0 0.0132 0.0132 232.5 0.0124 0.0124 258.5 0.0117 0.0117 286.0 0.0110 0.0110 331.0 0.0101 0.0101 396.0 0.0090 0.0090 468.5 0.0081 0.0081 549.5 0.0073 0.0073 639.0 0.0066 0.0066 738.0 0.0059 0.0059 847.5 0.0054 0.0054 968.5 0.0049 0.0049 1102.0 0.0045 0.0045 1249.5 0.0041 0.0041 1412.0 0.0037 0.0037 1590.5 0.0034 0.0034 1787.0 0.0031 0.0031 1945.0 0.0029 0.0029 2119.0 0.0027 0.0027 2369.0 0.0025 0.0025 2643.5 0.0023 0.0023 2945.0 0.0021 0.0021 3276.5 0.0019 0.0019 -3.5 4.0 132 9.0 -0.0416 -0.0416 11.0 -0.0343 -0.0343 13.5 -0.0267 -0.0267 16.5 -0.0197 -0.0197 19.5 -0.0145 -0.0145 22.5 -0.0106 -0.0106 26.0 -0.0072 -0.0072 30.0 -0.0044 -0.0044 34.5 -0.0021 -0.0021 40.0 -0.0001 -0.0001 46.0 0.0014 0.0014 52.5 0.0024 0.0024 60.0 0.0032 0.0032 69.0 0.0038 0.0038 79.0 0.0042 0.0042 90.5 0.0045 0.0045 105.5 0.0046 0.0046 123.5 0.0046 0.0046 143.0 0.0046 0.0046 163.5 0.0044 0.0044 185.0 0.0043 0.0043 208.0 0.0041 0.0041 232.5 0.0040 0.0040 258.5 0.0038 0.0038 286.0 0.0036 0.0036 331.0 0.0034 0.0034 396.0 0.0031 0.0031 468.5 0.0028 0.0028 549.5 0.0026 0.0026 639.0 0.0024 0.0024 738.0 0.0022 0.0022 847.5 0.0020 0.0020 968.5 0.0018 0.0018 1102.0 0.0017 0.0017 1249.5 0.0015 0.0015 1412.0 0.0014 0.0014 1590.5 0.0013 0.0013 1787.0 0.0012 0.0012 1945.0 0.0011 0.0011 2119.0 0.0010 0.0010 2369.0 0.0010 0.0010 2643.5 0.0009 0.0009 2945.0 0.0008 0.0008 3276.5 0.0007 0.0007 -4.0 4.4 132 9.0 -0.0608 -0.0608 11.0 -0.0514 -0.0514 13.5 -0.0418 -0.0418 16.5 -0.0329 -0.0329 19.5 -0.0265 -0.0265 22.5 -0.0216 -0.0216 26.0 -0.0173 -0.0173 30.0 -0.0137 -0.0137 34.5 -0.0106 -0.0106 40.0 -0.0080 -0.0080 46.0 -0.0059 -0.0059 52.5 -0.0042 -0.0042 60.0 -0.0028 -0.0028 69.0 -0.0016 -0.0016 79.0 -0.0007 -0.0007 90.5 0.0000 0.0000 105.5 0.0006 0.0006 123.5 0.0011 0.0011 143.0 0.0014 0.0014 163.5 0.0016 0.0016 185.0 0.0017 0.0017 208.0 0.0018 0.0018 232.5 0.0018 0.0018 258.5 0.0018 0.0018 286.0 0.0018 0.0018 331.0 0.0018 0.0018 396.0 0.0017 0.0017 468.5 0.0016 0.0016 549.5 0.0015 0.0015 639.0 0.0014 0.0014 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0005 0.0005 -4.4 5.0 132 9.0 -0.0088 -0.0088 11.0 -0.0032 -0.0032 13.5 0.0020 0.0020 16.5 0.0061 0.0061 19.5 0.0086 0.0086 22.5 0.0103 0.0103 26.0 0.0115 0.0115 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0128 0.0128 46.0 0.0128 0.0128 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0099 0.0099 123.5 0.0092 0.0092 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0074 0.0074 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0057 0.0057 331.0 0.0051 0.0051 396.0 0.0046 0.0046 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0027 0.0027 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 -5.0 5.4 132 9.0 -0.0088 -0.0088 11.0 -0.0032 -0.0032 13.5 0.0020 0.0020 16.5 0.0061 0.0061 19.5 0.0086 0.0086 22.5 0.0103 0.0103 26.0 0.0115 0.0115 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0128 0.0128 46.0 0.0128 0.0128 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0099 0.0099 123.5 0.0092 0.0092 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0074 0.0074 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0057 0.0057 331.0 0.0051 0.0051 396.0 0.0046 0.0046 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0027 0.0027 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 -[PileUpPtEC] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 -0.0088 -0.0088 11.0 -0.0032 -0.0032 13.5 0.0020 0.0020 16.5 0.0061 0.0061 19.5 0.0086 0.0086 22.5 0.0103 0.0103 26.0 0.0115 0.0115 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0128 0.0128 46.0 0.0128 0.0128 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0099 0.0099 123.5 0.0092 0.0092 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0074 0.0074 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0057 0.0057 331.0 0.0051 0.0051 396.0 0.0046 0.0046 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0027 0.0027 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 --5.0 -4.4 132 9.0 -0.0088 -0.0088 11.0 -0.0032 -0.0032 13.5 0.0020 0.0020 16.5 0.0061 0.0061 19.5 0.0086 0.0086 22.5 0.0103 0.0103 26.0 0.0115 0.0115 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0128 0.0128 46.0 0.0128 0.0128 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0099 0.0099 123.5 0.0092 0.0092 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0074 0.0074 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0057 0.0057 331.0 0.0051 0.0051 396.0 0.0046 0.0046 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0027 0.0027 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 --4.4 -4.0 132 9.0 -0.0608 -0.0608 11.0 -0.0514 -0.0514 13.5 -0.0418 -0.0418 16.5 -0.0329 -0.0329 19.5 -0.0265 -0.0265 22.5 -0.0216 -0.0216 26.0 -0.0173 -0.0173 30.0 -0.0137 -0.0137 34.5 -0.0106 -0.0106 40.0 -0.0080 -0.0080 46.0 -0.0059 -0.0059 52.5 -0.0042 -0.0042 60.0 -0.0028 -0.0028 69.0 -0.0016 -0.0016 79.0 -0.0007 -0.0007 90.5 0.0000 0.0000 105.5 0.0006 0.0006 123.5 0.0011 0.0011 143.0 0.0014 0.0014 163.5 0.0016 0.0016 185.0 0.0017 0.0017 208.0 0.0018 0.0018 232.5 0.0018 0.0018 258.5 0.0018 0.0018 286.0 0.0018 0.0018 331.0 0.0018 0.0018 396.0 0.0017 0.0017 468.5 0.0016 0.0016 549.5 0.0015 0.0015 639.0 0.0014 0.0014 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0005 0.0005 --4.0 -3.5 132 9.0 -0.0416 -0.0416 11.0 -0.0343 -0.0343 13.5 -0.0267 -0.0267 16.5 -0.0197 -0.0197 19.5 -0.0145 -0.0145 22.5 -0.0106 -0.0106 26.0 -0.0072 -0.0072 30.0 -0.0044 -0.0044 34.5 -0.0021 -0.0021 40.0 -0.0001 -0.0001 46.0 0.0014 0.0014 52.5 0.0024 0.0024 60.0 0.0032 0.0032 69.0 0.0038 0.0038 79.0 0.0042 0.0042 90.5 0.0045 0.0045 105.5 0.0046 0.0046 123.5 0.0046 0.0046 143.0 0.0046 0.0046 163.5 0.0044 0.0044 185.0 0.0043 0.0043 208.0 0.0041 0.0041 232.5 0.0040 0.0040 258.5 0.0038 0.0038 286.0 0.0036 0.0036 331.0 0.0034 0.0034 396.0 0.0031 0.0031 468.5 0.0028 0.0028 549.5 0.0026 0.0026 639.0 0.0024 0.0024 738.0 0.0022 0.0022 847.5 0.0020 0.0020 968.5 0.0018 0.0018 1102.0 0.0017 0.0017 1249.5 0.0015 0.0015 1412.0 0.0014 0.0014 1590.5 0.0013 0.0013 1787.0 0.0012 0.0012 1945.0 0.0011 0.0011 2119.0 0.0010 0.0010 2369.0 0.0010 0.0010 2643.5 0.0009 0.0009 2945.0 0.0008 0.0008 3276.5 0.0007 0.0007 --3.5 -3.0 132 9.0 -0.0389 -0.0389 11.0 -0.0283 -0.0283 13.5 -0.0171 -0.0171 16.5 -0.0070 -0.0070 19.5 0.0002 0.0002 22.5 0.0055 0.0055 26.0 0.0099 0.0099 30.0 0.0134 0.0134 34.5 0.0161 0.0161 40.0 0.0181 0.0181 46.0 0.0193 0.0193 52.5 0.0200 0.0200 60.0 0.0203 0.0203 69.0 0.0202 0.0202 79.0 0.0198 0.0198 90.5 0.0192 0.0192 105.5 0.0182 0.0182 123.5 0.0172 0.0172 143.0 0.0161 0.0161 163.5 0.0151 0.0151 185.0 0.0141 0.0141 208.0 0.0132 0.0132 232.5 0.0124 0.0124 258.5 0.0117 0.0117 286.0 0.0110 0.0110 331.0 0.0101 0.0101 396.0 0.0090 0.0090 468.5 0.0081 0.0081 549.5 0.0073 0.0073 639.0 0.0066 0.0066 738.0 0.0059 0.0059 847.5 0.0054 0.0054 968.5 0.0049 0.0049 1102.0 0.0045 0.0045 1249.5 0.0041 0.0041 1412.0 0.0037 0.0037 1590.5 0.0034 0.0034 1787.0 0.0031 0.0031 1945.0 0.0029 0.0029 2119.0 0.0027 0.0027 2369.0 0.0025 0.0025 2643.5 0.0023 0.0023 2945.0 0.0021 0.0021 3276.5 0.0019 0.0019 --3.0 -2.8 132 9.0 -0.0343 -0.0343 11.0 -0.0297 -0.0297 13.5 -0.0248 -0.0248 16.5 -0.0202 -0.0202 19.5 -0.0166 -0.0166 22.5 -0.0139 -0.0139 26.0 -0.0113 -0.0113 30.0 -0.0091 -0.0091 34.5 -0.0073 -0.0073 40.0 -0.0056 -0.0056 46.0 -0.0042 -0.0042 52.5 -0.0031 -0.0031 60.0 -0.0022 -0.0022 69.0 -0.0014 -0.0014 79.0 -0.0007 -0.0007 90.5 -0.0002 -0.0002 105.5 0.0003 0.0003 123.5 0.0006 0.0006 143.0 0.0008 0.0008 163.5 0.0010 0.0010 185.0 0.0011 0.0011 208.0 0.0011 0.0011 232.5 0.0012 0.0012 258.5 0.0012 0.0012 286.0 0.0012 0.0012 331.0 0.0011 0.0011 396.0 0.0011 0.0011 468.5 0.0010 0.0010 549.5 0.0010 0.0010 639.0 0.0009 0.0009 738.0 0.0008 0.0008 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1945.0 0.0005 0.0005 2119.0 0.0005 0.0005 2369.0 0.0004 0.0004 2643.5 0.0004 0.0004 2945.0 0.0004 0.0004 3276.5 0.0003 0.0003 --2.8 -2.6 132 9.0 -0.0269 -0.0269 11.0 -0.0221 -0.0221 13.5 -0.0170 -0.0170 16.5 -0.0122 -0.0122 19.5 -0.0087 -0.0087 22.5 -0.0061 -0.0061 26.0 -0.0038 -0.0038 30.0 -0.0019 -0.0019 34.5 -0.0004 -0.0004 40.0 0.0009 0.0009 46.0 0.0019 0.0019 52.5 0.0026 0.0026 60.0 0.0032 0.0032 69.0 0.0036 0.0036 79.0 0.0039 0.0039 90.5 0.0040 0.0040 105.5 0.0041 0.0041 123.5 0.0041 0.0041 143.0 0.0040 0.0040 163.5 0.0038 0.0038 185.0 0.0037 0.0037 208.0 0.0035 0.0035 232.5 0.0034 0.0034 258.5 0.0032 0.0032 286.0 0.0031 0.0031 331.0 0.0028 0.0028 396.0 0.0026 0.0026 468.5 0.0023 0.0023 549.5 0.0021 0.0021 639.0 0.0019 0.0019 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0013 0.0013 1249.5 0.0012 0.0012 1412.0 0.0011 0.0011 1590.5 0.0010 0.0010 1787.0 0.0009 0.0009 1945.0 0.0009 0.0009 2119.0 0.0008 0.0008 2369.0 0.0008 0.0008 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 --2.6 -2.4 132 9.0 -0.1141 -0.1141 11.0 -0.0956 -0.0956 13.5 -0.0752 -0.0752 16.5 -0.0566 -0.0566 19.5 -0.0432 -0.0432 22.5 -0.0334 -0.0334 26.0 -0.0249 -0.0249 30.0 -0.0179 -0.0179 34.5 -0.0121 -0.0121 40.0 -0.0071 -0.0071 46.0 -0.0033 -0.0033 52.5 -0.0003 -0.0003 60.0 0.0021 0.0021 69.0 0.0041 0.0041 79.0 0.0056 0.0056 90.5 0.0067 0.0067 105.5 0.0075 0.0075 123.5 0.0080 0.0080 143.0 0.0082 0.0082 163.5 0.0082 0.0082 185.0 0.0081 0.0081 208.0 0.0079 0.0079 232.5 0.0077 0.0077 258.5 0.0074 0.0074 286.0 0.0071 0.0071 331.0 0.0067 0.0067 396.0 0.0061 0.0061 468.5 0.0056 0.0056 549.5 0.0052 0.0052 639.0 0.0047 0.0047 738.0 0.0043 0.0043 847.5 0.0040 0.0040 968.5 0.0037 0.0037 1102.0 0.0034 0.0034 1249.5 0.0031 0.0031 1412.0 0.0028 0.0028 1590.5 0.0026 0.0026 1787.0 0.0024 0.0024 1945.0 0.0023 0.0023 2119.0 0.0021 0.0021 2369.0 0.0020 0.0020 2643.5 0.0018 0.0018 2945.0 0.0017 0.0017 3276.5 0.0016 0.0016 --2.4 -2.2 132 9.0 -0.1492 -0.1492 11.0 -0.1239 -0.1239 13.5 -0.0968 -0.0968 16.5 -0.0732 -0.0732 19.5 -0.0564 -0.0564 22.5 -0.0441 -0.0441 26.0 -0.0335 -0.0335 30.0 -0.0247 -0.0247 34.5 -0.0175 -0.0175 40.0 -0.0113 -0.0113 46.0 -0.0066 -0.0066 52.5 -0.0030 -0.0030 60.0 0.0000 0.0000 69.0 0.0025 0.0025 79.0 0.0043 0.0043 90.5 0.0057 0.0057 105.5 0.0068 0.0068 123.5 0.0075 0.0075 143.0 0.0079 0.0079 163.5 0.0080 0.0080 185.0 0.0080 0.0080 208.0 0.0079 0.0079 232.5 0.0078 0.0078 258.5 0.0076 0.0076 286.0 0.0073 0.0073 331.0 0.0069 0.0069 396.0 0.0064 0.0064 468.5 0.0059 0.0059 549.5 0.0054 0.0054 639.0 0.0050 0.0050 738.0 0.0046 0.0046 847.5 0.0042 0.0042 968.5 0.0039 0.0039 1102.0 0.0036 0.0036 1249.5 0.0033 0.0033 1412.0 0.0030 0.0030 1590.5 0.0028 0.0028 1787.0 0.0026 0.0026 1945.0 0.0024 0.0024 2119.0 0.0023 0.0023 2369.0 0.0021 0.0021 2643.5 0.0019 0.0019 2945.0 0.0018 0.0018 3276.5 0.0017 0.0017 --2.2 -2.0 132 9.0 -0.1724 -0.1724 11.0 -0.1460 -0.1460 13.5 -0.1183 -0.1183 16.5 -0.0937 -0.0937 19.5 -0.0757 -0.0757 22.5 -0.0622 -0.0622 26.0 -0.0502 -0.0502 30.0 -0.0400 -0.0400 34.5 -0.0314 -0.0314 40.0 -0.0238 -0.0238 46.0 -0.0178 -0.0178 52.5 -0.0131 -0.0131 60.0 -0.0091 -0.0091 69.0 -0.0057 -0.0057 79.0 -0.0030 -0.0030 90.5 -0.0008 -0.0008 105.5 0.0011 0.0011 123.5 0.0025 0.0025 143.0 0.0035 0.0035 163.5 0.0042 0.0042 185.0 0.0046 0.0046 208.0 0.0048 0.0048 232.5 0.0049 0.0049 258.5 0.0050 0.0050 286.0 0.0050 0.0050 331.0 0.0049 0.0049 396.0 0.0047 0.0047 468.5 0.0045 0.0045 549.5 0.0042 0.0042 639.0 0.0039 0.0039 738.0 0.0036 0.0036 847.5 0.0034 0.0034 968.5 0.0031 0.0031 1102.0 0.0029 0.0029 1249.5 0.0027 0.0027 1412.0 0.0025 0.0025 1590.5 0.0023 0.0023 1787.0 0.0022 0.0022 1945.0 0.0020 0.0020 2119.0 0.0019 0.0019 2369.0 0.0018 0.0018 2643.5 0.0017 0.0017 2945.0 0.0015 0.0015 3276.5 0.0014 0.0014 --2.0 -1.8 132 9.0 -0.1295 -0.1295 11.0 -0.1119 -0.1119 13.5 -0.0935 -0.0935 16.5 -0.0768 -0.0768 19.5 -0.0643 -0.0643 22.5 -0.0546 -0.0546 26.0 -0.0458 -0.0458 30.0 -0.0382 -0.0382 34.5 -0.0316 -0.0316 40.0 -0.0256 -0.0256 46.0 -0.0207 -0.0207 52.5 -0.0167 -0.0167 60.0 -0.0133 -0.0133 69.0 -0.0102 -0.0102 79.0 -0.0077 -0.0077 90.5 -0.0057 -0.0057 105.5 -0.0038 -0.0038 123.5 -0.0023 -0.0023 143.0 -0.0011 -0.0011 163.5 -0.0003 -0.0003 185.0 0.0003 0.0003 208.0 0.0007 0.0007 232.5 0.0010 0.0010 258.5 0.0013 0.0013 286.0 0.0014 0.0014 331.0 0.0016 0.0016 396.0 0.0018 0.0018 468.5 0.0018 0.0018 549.5 0.0018 0.0018 639.0 0.0017 0.0017 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0014 0.0014 1249.5 0.0013 0.0013 1412.0 0.0013 0.0013 1590.5 0.0012 0.0012 1787.0 0.0011 0.0011 1945.0 0.0011 0.0011 2119.0 0.0010 0.0010 2369.0 0.0009 0.0009 2643.5 0.0009 0.0009 2945.0 0.0008 0.0008 3276.5 0.0008 0.0008 --1.8 -1.6 132 9.0 -0.1076 -0.1076 11.0 -0.0940 -0.0940 13.5 -0.0797 -0.0797 16.5 -0.0667 -0.0667 19.5 -0.0567 -0.0567 22.5 -0.0489 -0.0489 26.0 -0.0418 -0.0418 30.0 -0.0355 -0.0355 34.5 -0.0300 -0.0300 40.0 -0.0249 -0.0249 46.0 -0.0207 -0.0207 52.5 -0.0173 -0.0173 60.0 -0.0142 -0.0142 69.0 -0.0115 -0.0115 79.0 -0.0093 -0.0093 90.5 -0.0074 -0.0074 105.5 -0.0056 -0.0056 123.5 -0.0041 -0.0041 143.0 -0.0030 -0.0030 163.5 -0.0022 -0.0022 185.0 -0.0015 -0.0015 208.0 -0.0010 -0.0010 232.5 -0.0006 -0.0006 258.5 -0.0003 -0.0003 286.0 -0.0001 -0.0001 331.0 0.0002 0.0002 396.0 0.0004 0.0004 468.5 0.0006 0.0006 549.5 0.0007 0.0007 639.0 0.0007 0.0007 738.0 0.0008 0.0008 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0007 0.0007 1249.5 0.0007 0.0007 1412.0 0.0007 0.0007 1590.5 0.0006 0.0006 1787.0 0.0006 0.0006 1945.0 0.0006 0.0006 2119.0 0.0006 0.0006 2369.0 0.0005 0.0005 2643.5 0.0005 0.0005 2945.0 0.0005 0.0005 3276.5 0.0004 0.0004 --1.6 -1.4 132 9.0 -0.1048 -0.1048 11.0 -0.0912 -0.0912 13.5 -0.0768 -0.0768 16.5 -0.0636 -0.0636 19.5 -0.0536 -0.0536 22.5 -0.0459 -0.0459 26.0 -0.0388 -0.0388 30.0 -0.0326 -0.0326 34.5 -0.0272 -0.0272 40.0 -0.0222 -0.0222 46.0 -0.0182 -0.0182 52.5 -0.0149 -0.0149 60.0 -0.0120 -0.0120 69.0 -0.0094 -0.0094 79.0 -0.0073 -0.0073 90.5 -0.0055 -0.0055 105.5 -0.0039 -0.0039 123.5 -0.0025 -0.0025 143.0 -0.0015 -0.0015 163.5 -0.0008 -0.0008 185.0 -0.0002 -0.0002 208.0 0.0002 0.0002 232.5 0.0005 0.0005 258.5 0.0007 0.0007 286.0 0.0009 0.0009 331.0 0.0011 0.0011 396.0 0.0012 0.0012 468.5 0.0013 0.0013 549.5 0.0013 0.0013 639.0 0.0013 0.0013 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0010 0.0010 1412.0 0.0010 0.0010 1590.5 0.0009 0.0009 1787.0 0.0009 0.0009 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 --1.4 -1.2 132 9.0 -0.1041 -0.1041 11.0 -0.0885 -0.0885 13.5 -0.0722 -0.0722 16.5 -0.0575 -0.0575 19.5 -0.0466 -0.0466 22.5 -0.0382 -0.0382 26.0 -0.0307 -0.0307 30.0 -0.0241 -0.0241 34.5 -0.0186 -0.0186 40.0 -0.0136 -0.0136 46.0 -0.0095 -0.0095 52.5 -0.0064 -0.0064 60.0 -0.0037 -0.0037 69.0 -0.0014 -0.0014 79.0 0.0004 0.0004 90.5 0.0018 0.0018 105.5 0.0030 0.0030 123.5 0.0039 0.0039 143.0 0.0045 0.0045 163.5 0.0048 0.0048 185.0 0.0050 0.0050 208.0 0.0051 0.0051 232.5 0.0051 0.0051 258.5 0.0050 0.0050 286.0 0.0050 0.0050 331.0 0.0048 0.0048 396.0 0.0045 0.0045 468.5 0.0042 0.0042 549.5 0.0040 0.0040 639.0 0.0037 0.0037 738.0 0.0034 0.0034 847.5 0.0031 0.0031 968.5 0.0029 0.0029 1102.0 0.0027 0.0027 1249.5 0.0025 0.0025 1412.0 0.0023 0.0023 1590.5 0.0021 0.0021 1787.0 0.0020 0.0020 1945.0 0.0019 0.0019 2119.0 0.0018 0.0018 2369.0 0.0016 0.0016 2643.5 0.0015 0.0015 2945.0 0.0014 0.0014 3276.5 0.0013 0.0013 --1.2 -1.0 132 9.0 -0.1018 -0.1018 11.0 -0.0872 -0.0872 13.5 -0.0719 -0.0719 16.5 -0.0580 -0.0580 19.5 -0.0477 -0.0477 22.5 -0.0397 -0.0397 26.0 -0.0324 -0.0324 30.0 -0.0261 -0.0261 34.5 -0.0207 -0.0207 40.0 -0.0158 -0.0158 46.0 -0.0119 -0.0119 52.5 -0.0087 -0.0087 60.0 -0.0060 -0.0060 69.0 -0.0037 -0.0037 79.0 -0.0018 -0.0018 90.5 -0.0003 -0.0003 105.5 0.0010 0.0010 123.5 0.0020 0.0020 143.0 0.0027 0.0027 163.5 0.0031 0.0031 185.0 0.0034 0.0034 208.0 0.0036 0.0036 232.5 0.0037 0.0037 258.5 0.0037 0.0037 286.0 0.0037 0.0037 331.0 0.0037 0.0037 396.0 0.0035 0.0035 468.5 0.0034 0.0034 549.5 0.0032 0.0032 639.0 0.0030 0.0030 738.0 0.0028 0.0028 847.5 0.0026 0.0026 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0021 0.0021 1412.0 0.0019 0.0019 1590.5 0.0018 0.0018 1787.0 0.0017 0.0017 1945.0 0.0016 0.0016 2119.0 0.0015 0.0015 2369.0 0.0014 0.0014 2643.5 0.0013 0.0013 2945.0 0.0012 0.0012 3276.5 0.0011 0.0011 --1.0 -0.8 132 9.0 -0.0914 -0.0914 11.0 -0.0792 -0.0792 13.5 -0.0660 -0.0660 16.5 -0.0541 -0.0541 19.5 -0.0451 -0.0451 22.5 -0.0382 -0.0382 26.0 -0.0319 -0.0319 30.0 -0.0264 -0.0264 34.5 -0.0217 -0.0217 40.0 -0.0173 -0.0173 46.0 -0.0138 -0.0138 52.5 -0.0109 -0.0109 60.0 -0.0085 -0.0085 69.0 -0.0063 -0.0063 79.0 -0.0046 -0.0046 90.5 -0.0031 -0.0031 105.5 -0.0018 -0.0018 123.5 -0.0007 -0.0007 143.0 0.0001 0.0001 163.5 0.0006 0.0006 185.0 0.0010 0.0010 208.0 0.0013 0.0013 232.5 0.0015 0.0015 258.5 0.0017 0.0017 286.0 0.0018 0.0018 331.0 0.0019 0.0019 396.0 0.0019 0.0019 468.5 0.0019 0.0019 549.5 0.0018 0.0018 639.0 0.0017 0.0017 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0014 0.0014 1249.5 0.0013 0.0013 1412.0 0.0012 0.0012 1590.5 0.0011 0.0011 1787.0 0.0011 0.0011 1945.0 0.0010 0.0010 2119.0 0.0010 0.0010 2369.0 0.0009 0.0009 2643.5 0.0008 0.0008 2945.0 0.0008 0.0008 3276.5 0.0007 0.0007 --0.8 -0.6 132 9.0 -0.0876 -0.0876 11.0 -0.0764 -0.0764 13.5 -0.0642 -0.0642 16.5 -0.0530 -0.0530 19.5 -0.0447 -0.0447 22.5 -0.0382 -0.0382 26.0 -0.0323 -0.0323 30.0 -0.0271 -0.0271 34.5 -0.0226 -0.0226 40.0 -0.0185 -0.0185 46.0 -0.0151 -0.0151 52.5 -0.0124 -0.0124 60.0 -0.0100 -0.0100 69.0 -0.0079 -0.0079 79.0 -0.0061 -0.0061 90.5 -0.0047 -0.0047 105.5 -0.0033 -0.0033 123.5 -0.0022 -0.0022 143.0 -0.0013 -0.0013 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0003 0.0003 258.5 0.0006 0.0006 286.0 0.0007 0.0007 331.0 0.0009 0.0009 396.0 0.0010 0.0010 468.5 0.0011 0.0011 549.5 0.0011 0.0011 639.0 0.0011 0.0011 738.0 0.0011 0.0011 847.5 0.0010 0.0010 968.5 0.0010 0.0010 1102.0 0.0009 0.0009 1249.5 0.0009 0.0009 1412.0 0.0008 0.0008 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0005 0.0005 --0.6 -0.4 132 9.0 -0.0872 -0.0872 11.0 -0.0761 -0.0761 13.5 -0.0637 -0.0637 16.5 -0.0526 -0.0526 19.5 -0.0442 -0.0442 22.5 -0.0378 -0.0378 26.0 -0.0320 -0.0320 30.0 -0.0268 -0.0268 34.5 -0.0224 -0.0224 40.0 -0.0183 -0.0183 46.0 -0.0150 -0.0150 52.5 -0.0123 -0.0123 60.0 -0.0099 -0.0099 69.0 -0.0078 -0.0078 79.0 -0.0061 -0.0061 90.5 -0.0046 -0.0046 105.5 -0.0033 -0.0033 123.5 -0.0022 -0.0022 143.0 -0.0013 -0.0013 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0003 0.0003 258.5 0.0005 0.0005 286.0 0.0007 0.0007 331.0 0.0009 0.0009 396.0 0.0010 0.0010 468.5 0.0011 0.0011 549.5 0.0011 0.0011 639.0 0.0011 0.0011 738.0 0.0011 0.0011 847.5 0.0010 0.0010 968.5 0.0010 0.0010 1102.0 0.0009 0.0009 1249.5 0.0009 0.0009 1412.0 0.0008 0.0008 1590.5 0.0008 0.0008 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0005 0.0005 --0.4 -0.2 132 9.0 -0.0868 -0.0868 11.0 -0.0756 -0.0756 13.5 -0.0631 -0.0631 16.5 -0.0520 -0.0520 19.5 -0.0436 -0.0436 22.5 -0.0371 -0.0371 26.0 -0.0313 -0.0313 30.0 -0.0262 -0.0262 34.5 -0.0218 -0.0218 40.0 -0.0178 -0.0178 46.0 -0.0145 -0.0145 52.5 -0.0118 -0.0118 60.0 -0.0094 -0.0094 69.0 -0.0074 -0.0074 79.0 -0.0057 -0.0057 90.5 -0.0042 -0.0042 105.5 -0.0029 -0.0029 123.5 -0.0018 -0.0018 143.0 -0.0010 -0.0010 163.5 -0.0005 -0.0005 185.0 -0.0000 -0.0000 208.0 0.0003 0.0003 232.5 0.0006 0.0006 258.5 0.0007 0.0007 286.0 0.0009 0.0009 331.0 0.0010 0.0010 396.0 0.0011 0.0011 468.5 0.0012 0.0012 549.5 0.0012 0.0012 639.0 0.0012 0.0012 738.0 0.0012 0.0012 847.5 0.0011 0.0011 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0008 0.0008 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 --0.2 0.0 132 9.0 -0.0830 -0.0830 11.0 -0.0720 -0.0720 13.5 -0.0599 -0.0599 16.5 -0.0490 -0.0490 19.5 -0.0410 -0.0410 22.5 -0.0348 -0.0348 26.0 -0.0292 -0.0292 30.0 -0.0243 -0.0243 34.5 -0.0201 -0.0201 40.0 -0.0162 -0.0162 46.0 -0.0131 -0.0131 52.5 -0.0106 -0.0106 60.0 -0.0084 -0.0084 69.0 -0.0064 -0.0064 79.0 -0.0048 -0.0048 90.5 -0.0035 -0.0035 105.5 -0.0023 -0.0023 123.5 -0.0013 -0.0013 143.0 -0.0005 -0.0005 163.5 -0.0000 -0.0000 185.0 0.0004 0.0004 208.0 0.0007 0.0007 232.5 0.0009 0.0009 258.5 0.0010 0.0010 286.0 0.0012 0.0012 331.0 0.0013 0.0013 396.0 0.0013 0.0013 468.5 0.0014 0.0014 549.5 0.0013 0.0013 639.0 0.0013 0.0013 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0010 0.0010 1412.0 0.0010 0.0010 1590.5 0.0009 0.0009 1787.0 0.0008 0.0008 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -0.0 0.2 132 9.0 -0.0830 -0.0830 11.0 -0.0720 -0.0720 13.5 -0.0599 -0.0599 16.5 -0.0490 -0.0490 19.5 -0.0410 -0.0410 22.5 -0.0348 -0.0348 26.0 -0.0292 -0.0292 30.0 -0.0243 -0.0243 34.5 -0.0201 -0.0201 40.0 -0.0162 -0.0162 46.0 -0.0131 -0.0131 52.5 -0.0106 -0.0106 60.0 -0.0084 -0.0084 69.0 -0.0064 -0.0064 79.0 -0.0048 -0.0048 90.5 -0.0035 -0.0035 105.5 -0.0023 -0.0023 123.5 -0.0013 -0.0013 143.0 -0.0005 -0.0005 163.5 -0.0000 -0.0000 185.0 0.0004 0.0004 208.0 0.0007 0.0007 232.5 0.0009 0.0009 258.5 0.0010 0.0010 286.0 0.0012 0.0012 331.0 0.0013 0.0013 396.0 0.0013 0.0013 468.5 0.0014 0.0014 549.5 0.0013 0.0013 639.0 0.0013 0.0013 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0010 0.0010 1412.0 0.0010 0.0010 1590.5 0.0009 0.0009 1787.0 0.0008 0.0008 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -0.2 0.4 132 9.0 -0.0868 -0.0868 11.0 -0.0756 -0.0756 13.5 -0.0631 -0.0631 16.5 -0.0520 -0.0520 19.5 -0.0436 -0.0436 22.5 -0.0371 -0.0371 26.0 -0.0313 -0.0313 30.0 -0.0262 -0.0262 34.5 -0.0218 -0.0218 40.0 -0.0178 -0.0178 46.0 -0.0145 -0.0145 52.5 -0.0118 -0.0118 60.0 -0.0094 -0.0094 69.0 -0.0074 -0.0074 79.0 -0.0057 -0.0057 90.5 -0.0042 -0.0042 105.5 -0.0029 -0.0029 123.5 -0.0018 -0.0018 143.0 -0.0010 -0.0010 163.5 -0.0005 -0.0005 185.0 -0.0000 -0.0000 208.0 0.0003 0.0003 232.5 0.0006 0.0006 258.5 0.0007 0.0007 286.0 0.0009 0.0009 331.0 0.0010 0.0010 396.0 0.0011 0.0011 468.5 0.0012 0.0012 549.5 0.0012 0.0012 639.0 0.0012 0.0012 738.0 0.0012 0.0012 847.5 0.0011 0.0011 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0008 0.0008 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -0.4 0.6 132 9.0 -0.0872 -0.0872 11.0 -0.0761 -0.0761 13.5 -0.0637 -0.0637 16.5 -0.0526 -0.0526 19.5 -0.0442 -0.0442 22.5 -0.0378 -0.0378 26.0 -0.0320 -0.0320 30.0 -0.0268 -0.0268 34.5 -0.0224 -0.0224 40.0 -0.0183 -0.0183 46.0 -0.0150 -0.0150 52.5 -0.0123 -0.0123 60.0 -0.0099 -0.0099 69.0 -0.0078 -0.0078 79.0 -0.0061 -0.0061 90.5 -0.0046 -0.0046 105.5 -0.0033 -0.0033 123.5 -0.0022 -0.0022 143.0 -0.0013 -0.0013 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0003 0.0003 258.5 0.0005 0.0005 286.0 0.0007 0.0007 331.0 0.0009 0.0009 396.0 0.0010 0.0010 468.5 0.0011 0.0011 549.5 0.0011 0.0011 639.0 0.0011 0.0011 738.0 0.0011 0.0011 847.5 0.0010 0.0010 968.5 0.0010 0.0010 1102.0 0.0009 0.0009 1249.5 0.0009 0.0009 1412.0 0.0008 0.0008 1590.5 0.0008 0.0008 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0005 0.0005 -0.6 0.8 132 9.0 -0.0876 -0.0876 11.0 -0.0764 -0.0764 13.5 -0.0642 -0.0642 16.5 -0.0530 -0.0530 19.5 -0.0447 -0.0447 22.5 -0.0382 -0.0382 26.0 -0.0323 -0.0323 30.0 -0.0271 -0.0271 34.5 -0.0226 -0.0226 40.0 -0.0185 -0.0185 46.0 -0.0151 -0.0151 52.5 -0.0124 -0.0124 60.0 -0.0100 -0.0100 69.0 -0.0079 -0.0079 79.0 -0.0061 -0.0061 90.5 -0.0047 -0.0047 105.5 -0.0033 -0.0033 123.5 -0.0022 -0.0022 143.0 -0.0013 -0.0013 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0003 0.0003 258.5 0.0006 0.0006 286.0 0.0007 0.0007 331.0 0.0009 0.0009 396.0 0.0010 0.0010 468.5 0.0011 0.0011 549.5 0.0011 0.0011 639.0 0.0011 0.0011 738.0 0.0011 0.0011 847.5 0.0010 0.0010 968.5 0.0010 0.0010 1102.0 0.0009 0.0009 1249.5 0.0009 0.0009 1412.0 0.0008 0.0008 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0005 0.0005 -0.8 1.0 132 9.0 -0.0914 -0.0914 11.0 -0.0792 -0.0792 13.5 -0.0660 -0.0660 16.5 -0.0541 -0.0541 19.5 -0.0451 -0.0451 22.5 -0.0382 -0.0382 26.0 -0.0319 -0.0319 30.0 -0.0264 -0.0264 34.5 -0.0217 -0.0217 40.0 -0.0173 -0.0173 46.0 -0.0138 -0.0138 52.5 -0.0109 -0.0109 60.0 -0.0085 -0.0085 69.0 -0.0063 -0.0063 79.0 -0.0046 -0.0046 90.5 -0.0031 -0.0031 105.5 -0.0018 -0.0018 123.5 -0.0007 -0.0007 143.0 0.0001 0.0001 163.5 0.0006 0.0006 185.0 0.0010 0.0010 208.0 0.0013 0.0013 232.5 0.0015 0.0015 258.5 0.0017 0.0017 286.0 0.0018 0.0018 331.0 0.0019 0.0019 396.0 0.0019 0.0019 468.5 0.0019 0.0019 549.5 0.0018 0.0018 639.0 0.0017 0.0017 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0014 0.0014 1249.5 0.0013 0.0013 1412.0 0.0012 0.0012 1590.5 0.0011 0.0011 1787.0 0.0011 0.0011 1945.0 0.0010 0.0010 2119.0 0.0010 0.0010 2369.0 0.0009 0.0009 2643.5 0.0008 0.0008 2945.0 0.0008 0.0008 3276.5 0.0007 0.0007 -1.0 1.2 132 9.0 -0.1018 -0.1018 11.0 -0.0872 -0.0872 13.5 -0.0719 -0.0719 16.5 -0.0580 -0.0580 19.5 -0.0477 -0.0477 22.5 -0.0397 -0.0397 26.0 -0.0324 -0.0324 30.0 -0.0261 -0.0261 34.5 -0.0207 -0.0207 40.0 -0.0158 -0.0158 46.0 -0.0119 -0.0119 52.5 -0.0087 -0.0087 60.0 -0.0060 -0.0060 69.0 -0.0037 -0.0037 79.0 -0.0018 -0.0018 90.5 -0.0003 -0.0003 105.5 0.0010 0.0010 123.5 0.0020 0.0020 143.0 0.0027 0.0027 163.5 0.0031 0.0031 185.0 0.0034 0.0034 208.0 0.0036 0.0036 232.5 0.0037 0.0037 258.5 0.0037 0.0037 286.0 0.0037 0.0037 331.0 0.0037 0.0037 396.0 0.0035 0.0035 468.5 0.0034 0.0034 549.5 0.0032 0.0032 639.0 0.0030 0.0030 738.0 0.0028 0.0028 847.5 0.0026 0.0026 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0021 0.0021 1412.0 0.0019 0.0019 1590.5 0.0018 0.0018 1787.0 0.0017 0.0017 1945.0 0.0016 0.0016 2119.0 0.0015 0.0015 2369.0 0.0014 0.0014 2643.5 0.0013 0.0013 2945.0 0.0012 0.0012 3276.5 0.0011 0.0011 -1.2 1.4 132 9.0 -0.1041 -0.1041 11.0 -0.0885 -0.0885 13.5 -0.0722 -0.0722 16.5 -0.0575 -0.0575 19.5 -0.0466 -0.0466 22.5 -0.0382 -0.0382 26.0 -0.0307 -0.0307 30.0 -0.0241 -0.0241 34.5 -0.0186 -0.0186 40.0 -0.0136 -0.0136 46.0 -0.0095 -0.0095 52.5 -0.0064 -0.0064 60.0 -0.0037 -0.0037 69.0 -0.0014 -0.0014 79.0 0.0004 0.0004 90.5 0.0018 0.0018 105.5 0.0030 0.0030 123.5 0.0039 0.0039 143.0 0.0045 0.0045 163.5 0.0048 0.0048 185.0 0.0050 0.0050 208.0 0.0051 0.0051 232.5 0.0051 0.0051 258.5 0.0050 0.0050 286.0 0.0050 0.0050 331.0 0.0048 0.0048 396.0 0.0045 0.0045 468.5 0.0042 0.0042 549.5 0.0040 0.0040 639.0 0.0037 0.0037 738.0 0.0034 0.0034 847.5 0.0031 0.0031 968.5 0.0029 0.0029 1102.0 0.0027 0.0027 1249.5 0.0025 0.0025 1412.0 0.0023 0.0023 1590.5 0.0021 0.0021 1787.0 0.0020 0.0020 1945.0 0.0019 0.0019 2119.0 0.0018 0.0018 2369.0 0.0016 0.0016 2643.5 0.0015 0.0015 2945.0 0.0014 0.0014 3276.5 0.0013 0.0013 -1.4 1.6 132 9.0 -0.1048 -0.1048 11.0 -0.0912 -0.0912 13.5 -0.0768 -0.0768 16.5 -0.0636 -0.0636 19.5 -0.0536 -0.0536 22.5 -0.0459 -0.0459 26.0 -0.0388 -0.0388 30.0 -0.0326 -0.0326 34.5 -0.0272 -0.0272 40.0 -0.0222 -0.0222 46.0 -0.0182 -0.0182 52.5 -0.0149 -0.0149 60.0 -0.0120 -0.0120 69.0 -0.0094 -0.0094 79.0 -0.0073 -0.0073 90.5 -0.0055 -0.0055 105.5 -0.0039 -0.0039 123.5 -0.0025 -0.0025 143.0 -0.0015 -0.0015 163.5 -0.0008 -0.0008 185.0 -0.0002 -0.0002 208.0 0.0002 0.0002 232.5 0.0005 0.0005 258.5 0.0007 0.0007 286.0 0.0009 0.0009 331.0 0.0011 0.0011 396.0 0.0012 0.0012 468.5 0.0013 0.0013 549.5 0.0013 0.0013 639.0 0.0013 0.0013 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0010 0.0010 1412.0 0.0010 0.0010 1590.5 0.0009 0.0009 1787.0 0.0009 0.0009 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -1.6 1.8 132 9.0 -0.1076 -0.1076 11.0 -0.0940 -0.0940 13.5 -0.0797 -0.0797 16.5 -0.0667 -0.0667 19.5 -0.0567 -0.0567 22.5 -0.0489 -0.0489 26.0 -0.0418 -0.0418 30.0 -0.0355 -0.0355 34.5 -0.0300 -0.0300 40.0 -0.0249 -0.0249 46.0 -0.0207 -0.0207 52.5 -0.0173 -0.0173 60.0 -0.0142 -0.0142 69.0 -0.0115 -0.0115 79.0 -0.0093 -0.0093 90.5 -0.0074 -0.0074 105.5 -0.0056 -0.0056 123.5 -0.0041 -0.0041 143.0 -0.0030 -0.0030 163.5 -0.0022 -0.0022 185.0 -0.0015 -0.0015 208.0 -0.0010 -0.0010 232.5 -0.0006 -0.0006 258.5 -0.0003 -0.0003 286.0 -0.0001 -0.0001 331.0 0.0002 0.0002 396.0 0.0004 0.0004 468.5 0.0006 0.0006 549.5 0.0007 0.0007 639.0 0.0007 0.0007 738.0 0.0008 0.0008 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0007 0.0007 1249.5 0.0007 0.0007 1412.0 0.0007 0.0007 1590.5 0.0006 0.0006 1787.0 0.0006 0.0006 1945.0 0.0006 0.0006 2119.0 0.0006 0.0006 2369.0 0.0005 0.0005 2643.5 0.0005 0.0005 2945.0 0.0005 0.0005 3276.5 0.0004 0.0004 -1.8 2.0 132 9.0 -0.1295 -0.1295 11.0 -0.1119 -0.1119 13.5 -0.0935 -0.0935 16.5 -0.0768 -0.0768 19.5 -0.0643 -0.0643 22.5 -0.0546 -0.0546 26.0 -0.0458 -0.0458 30.0 -0.0382 -0.0382 34.5 -0.0316 -0.0316 40.0 -0.0256 -0.0256 46.0 -0.0207 -0.0207 52.5 -0.0167 -0.0167 60.0 -0.0133 -0.0133 69.0 -0.0102 -0.0102 79.0 -0.0077 -0.0077 90.5 -0.0057 -0.0057 105.5 -0.0038 -0.0038 123.5 -0.0023 -0.0023 143.0 -0.0011 -0.0011 163.5 -0.0003 -0.0003 185.0 0.0003 0.0003 208.0 0.0007 0.0007 232.5 0.0010 0.0010 258.5 0.0013 0.0013 286.0 0.0014 0.0014 331.0 0.0016 0.0016 396.0 0.0018 0.0018 468.5 0.0018 0.0018 549.5 0.0018 0.0018 639.0 0.0017 0.0017 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0014 0.0014 1249.5 0.0013 0.0013 1412.0 0.0013 0.0013 1590.5 0.0012 0.0012 1787.0 0.0011 0.0011 1945.0 0.0011 0.0011 2119.0 0.0010 0.0010 2369.0 0.0009 0.0009 2643.5 0.0009 0.0009 2945.0 0.0008 0.0008 3276.5 0.0008 0.0008 -2.0 2.2 132 9.0 -0.1724 -0.1724 11.0 -0.1460 -0.1460 13.5 -0.1183 -0.1183 16.5 -0.0937 -0.0937 19.5 -0.0757 -0.0757 22.5 -0.0622 -0.0622 26.0 -0.0502 -0.0502 30.0 -0.0400 -0.0400 34.5 -0.0314 -0.0314 40.0 -0.0238 -0.0238 46.0 -0.0178 -0.0178 52.5 -0.0131 -0.0131 60.0 -0.0091 -0.0091 69.0 -0.0057 -0.0057 79.0 -0.0030 -0.0030 90.5 -0.0008 -0.0008 105.5 0.0011 0.0011 123.5 0.0025 0.0025 143.0 0.0035 0.0035 163.5 0.0042 0.0042 185.0 0.0046 0.0046 208.0 0.0048 0.0048 232.5 0.0049 0.0049 258.5 0.0050 0.0050 286.0 0.0050 0.0050 331.0 0.0049 0.0049 396.0 0.0047 0.0047 468.5 0.0045 0.0045 549.5 0.0042 0.0042 639.0 0.0039 0.0039 738.0 0.0036 0.0036 847.5 0.0034 0.0034 968.5 0.0031 0.0031 1102.0 0.0029 0.0029 1249.5 0.0027 0.0027 1412.0 0.0025 0.0025 1590.5 0.0023 0.0023 1787.0 0.0022 0.0022 1945.0 0.0020 0.0020 2119.0 0.0019 0.0019 2369.0 0.0018 0.0018 2643.5 0.0017 0.0017 2945.0 0.0015 0.0015 3276.5 0.0014 0.0014 -2.2 2.4 132 9.0 -0.1492 -0.1492 11.0 -0.1239 -0.1239 13.5 -0.0968 -0.0968 16.5 -0.0732 -0.0732 19.5 -0.0564 -0.0564 22.5 -0.0441 -0.0441 26.0 -0.0335 -0.0335 30.0 -0.0247 -0.0247 34.5 -0.0175 -0.0175 40.0 -0.0113 -0.0113 46.0 -0.0066 -0.0066 52.5 -0.0030 -0.0030 60.0 0.0000 0.0000 69.0 0.0025 0.0025 79.0 0.0043 0.0043 90.5 0.0057 0.0057 105.5 0.0068 0.0068 123.5 0.0075 0.0075 143.0 0.0079 0.0079 163.5 0.0080 0.0080 185.0 0.0080 0.0080 208.0 0.0079 0.0079 232.5 0.0078 0.0078 258.5 0.0076 0.0076 286.0 0.0073 0.0073 331.0 0.0069 0.0069 396.0 0.0064 0.0064 468.5 0.0059 0.0059 549.5 0.0054 0.0054 639.0 0.0050 0.0050 738.0 0.0046 0.0046 847.5 0.0042 0.0042 968.5 0.0039 0.0039 1102.0 0.0036 0.0036 1249.5 0.0033 0.0033 1412.0 0.0030 0.0030 1590.5 0.0028 0.0028 1787.0 0.0026 0.0026 1945.0 0.0024 0.0024 2119.0 0.0023 0.0023 2369.0 0.0021 0.0021 2643.5 0.0019 0.0019 2945.0 0.0018 0.0018 3276.5 0.0017 0.0017 -2.4 2.6 132 9.0 -0.1141 -0.1141 11.0 -0.0956 -0.0956 13.5 -0.0752 -0.0752 16.5 -0.0566 -0.0566 19.5 -0.0432 -0.0432 22.5 -0.0334 -0.0334 26.0 -0.0249 -0.0249 30.0 -0.0179 -0.0179 34.5 -0.0121 -0.0121 40.0 -0.0071 -0.0071 46.0 -0.0033 -0.0033 52.5 -0.0003 -0.0003 60.0 0.0021 0.0021 69.0 0.0041 0.0041 79.0 0.0056 0.0056 90.5 0.0067 0.0067 105.5 0.0075 0.0075 123.5 0.0080 0.0080 143.0 0.0082 0.0082 163.5 0.0082 0.0082 185.0 0.0081 0.0081 208.0 0.0079 0.0079 232.5 0.0077 0.0077 258.5 0.0074 0.0074 286.0 0.0071 0.0071 331.0 0.0067 0.0067 396.0 0.0061 0.0061 468.5 0.0056 0.0056 549.5 0.0052 0.0052 639.0 0.0047 0.0047 738.0 0.0043 0.0043 847.5 0.0040 0.0040 968.5 0.0037 0.0037 1102.0 0.0034 0.0034 1249.5 0.0031 0.0031 1412.0 0.0028 0.0028 1590.5 0.0026 0.0026 1787.0 0.0024 0.0024 1945.0 0.0023 0.0023 2119.0 0.0021 0.0021 2369.0 0.0020 0.0020 2643.5 0.0018 0.0018 2945.0 0.0017 0.0017 3276.5 0.0016 0.0016 -2.6 2.8 132 9.0 -0.0269 -0.0269 11.0 -0.0221 -0.0221 13.5 -0.0170 -0.0170 16.5 -0.0122 -0.0122 19.5 -0.0087 -0.0087 22.5 -0.0061 -0.0061 26.0 -0.0038 -0.0038 30.0 -0.0019 -0.0019 34.5 -0.0004 -0.0004 40.0 0.0009 0.0009 46.0 0.0019 0.0019 52.5 0.0026 0.0026 60.0 0.0032 0.0032 69.0 0.0036 0.0036 79.0 0.0039 0.0039 90.5 0.0040 0.0040 105.5 0.0041 0.0041 123.5 0.0041 0.0041 143.0 0.0040 0.0040 163.5 0.0038 0.0038 185.0 0.0037 0.0037 208.0 0.0035 0.0035 232.5 0.0034 0.0034 258.5 0.0032 0.0032 286.0 0.0031 0.0031 331.0 0.0028 0.0028 396.0 0.0026 0.0026 468.5 0.0023 0.0023 549.5 0.0021 0.0021 639.0 0.0019 0.0019 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0013 0.0013 1249.5 0.0012 0.0012 1412.0 0.0011 0.0011 1590.5 0.0010 0.0010 1787.0 0.0009 0.0009 1945.0 0.0009 0.0009 2119.0 0.0008 0.0008 2369.0 0.0008 0.0008 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -2.8 3.0 132 9.0 -0.0343 -0.0343 11.0 -0.0297 -0.0297 13.5 -0.0248 -0.0248 16.5 -0.0202 -0.0202 19.5 -0.0166 -0.0166 22.5 -0.0139 -0.0139 26.0 -0.0113 -0.0113 30.0 -0.0091 -0.0091 34.5 -0.0073 -0.0073 40.0 -0.0056 -0.0056 46.0 -0.0042 -0.0042 52.5 -0.0031 -0.0031 60.0 -0.0022 -0.0022 69.0 -0.0014 -0.0014 79.0 -0.0007 -0.0007 90.5 -0.0002 -0.0002 105.5 0.0003 0.0003 123.5 0.0006 0.0006 143.0 0.0008 0.0008 163.5 0.0010 0.0010 185.0 0.0011 0.0011 208.0 0.0011 0.0011 232.5 0.0012 0.0012 258.5 0.0012 0.0012 286.0 0.0012 0.0012 331.0 0.0011 0.0011 396.0 0.0011 0.0011 468.5 0.0010 0.0010 549.5 0.0010 0.0010 639.0 0.0009 0.0009 738.0 0.0008 0.0008 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1945.0 0.0005 0.0005 2119.0 0.0005 0.0005 2369.0 0.0004 0.0004 2643.5 0.0004 0.0004 2945.0 0.0004 0.0004 3276.5 0.0003 0.0003 -3.0 3.5 132 9.0 -0.0389 -0.0389 11.0 -0.0283 -0.0283 13.5 -0.0171 -0.0171 16.5 -0.0070 -0.0070 19.5 0.0002 0.0002 22.5 0.0055 0.0055 26.0 0.0099 0.0099 30.0 0.0134 0.0134 34.5 0.0161 0.0161 40.0 0.0181 0.0181 46.0 0.0193 0.0193 52.5 0.0200 0.0200 60.0 0.0203 0.0203 69.0 0.0202 0.0202 79.0 0.0198 0.0198 90.5 0.0192 0.0192 105.5 0.0182 0.0182 123.5 0.0172 0.0172 143.0 0.0161 0.0161 163.5 0.0151 0.0151 185.0 0.0141 0.0141 208.0 0.0132 0.0132 232.5 0.0124 0.0124 258.5 0.0117 0.0117 286.0 0.0110 0.0110 331.0 0.0101 0.0101 396.0 0.0090 0.0090 468.5 0.0081 0.0081 549.5 0.0073 0.0073 639.0 0.0066 0.0066 738.0 0.0059 0.0059 847.5 0.0054 0.0054 968.5 0.0049 0.0049 1102.0 0.0045 0.0045 1249.5 0.0041 0.0041 1412.0 0.0037 0.0037 1590.5 0.0034 0.0034 1787.0 0.0031 0.0031 1945.0 0.0029 0.0029 2119.0 0.0027 0.0027 2369.0 0.0025 0.0025 2643.5 0.0023 0.0023 2945.0 0.0021 0.0021 3276.5 0.0019 0.0019 -3.5 4.0 132 9.0 -0.0416 -0.0416 11.0 -0.0343 -0.0343 13.5 -0.0267 -0.0267 16.5 -0.0197 -0.0197 19.5 -0.0145 -0.0145 22.5 -0.0106 -0.0106 26.0 -0.0072 -0.0072 30.0 -0.0044 -0.0044 34.5 -0.0021 -0.0021 40.0 -0.0001 -0.0001 46.0 0.0014 0.0014 52.5 0.0024 0.0024 60.0 0.0032 0.0032 69.0 0.0038 0.0038 79.0 0.0042 0.0042 90.5 0.0045 0.0045 105.5 0.0046 0.0046 123.5 0.0046 0.0046 143.0 0.0046 0.0046 163.5 0.0044 0.0044 185.0 0.0043 0.0043 208.0 0.0041 0.0041 232.5 0.0040 0.0040 258.5 0.0038 0.0038 286.0 0.0036 0.0036 331.0 0.0034 0.0034 396.0 0.0031 0.0031 468.5 0.0028 0.0028 549.5 0.0026 0.0026 639.0 0.0024 0.0024 738.0 0.0022 0.0022 847.5 0.0020 0.0020 968.5 0.0018 0.0018 1102.0 0.0017 0.0017 1249.5 0.0015 0.0015 1412.0 0.0014 0.0014 1590.5 0.0013 0.0013 1787.0 0.0012 0.0012 1945.0 0.0011 0.0011 2119.0 0.0010 0.0010 2369.0 0.0010 0.0010 2643.5 0.0009 0.0009 2945.0 0.0008 0.0008 3276.5 0.0007 0.0007 -4.0 4.4 132 9.0 -0.0608 -0.0608 11.0 -0.0514 -0.0514 13.5 -0.0418 -0.0418 16.5 -0.0329 -0.0329 19.5 -0.0265 -0.0265 22.5 -0.0216 -0.0216 26.0 -0.0173 -0.0173 30.0 -0.0137 -0.0137 34.5 -0.0106 -0.0106 40.0 -0.0080 -0.0080 46.0 -0.0059 -0.0059 52.5 -0.0042 -0.0042 60.0 -0.0028 -0.0028 69.0 -0.0016 -0.0016 79.0 -0.0007 -0.0007 90.5 0.0000 0.0000 105.5 0.0006 0.0006 123.5 0.0011 0.0011 143.0 0.0014 0.0014 163.5 0.0016 0.0016 185.0 0.0017 0.0017 208.0 0.0018 0.0018 232.5 0.0018 0.0018 258.5 0.0018 0.0018 286.0 0.0018 0.0018 331.0 0.0018 0.0018 396.0 0.0017 0.0017 468.5 0.0016 0.0016 549.5 0.0015 0.0015 639.0 0.0014 0.0014 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0005 0.0005 -4.4 5.0 132 9.0 -0.0088 -0.0088 11.0 -0.0032 -0.0032 13.5 0.0020 0.0020 16.5 0.0061 0.0061 19.5 0.0086 0.0086 22.5 0.0103 0.0103 26.0 0.0115 0.0115 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0128 0.0128 46.0 0.0128 0.0128 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0099 0.0099 123.5 0.0092 0.0092 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0074 0.0074 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0057 0.0057 331.0 0.0051 0.0051 396.0 0.0046 0.0046 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0027 0.0027 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 -5.0 5.4 132 9.0 -0.0088 -0.0088 11.0 -0.0032 -0.0032 13.5 0.0020 0.0020 16.5 0.0061 0.0061 19.5 0.0086 0.0086 22.5 0.0103 0.0103 26.0 0.0115 0.0115 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0128 0.0128 46.0 0.0128 0.0128 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0099 0.0099 123.5 0.0092 0.0092 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0074 0.0074 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0057 0.0057 331.0 0.0051 0.0051 396.0 0.0046 0.0046 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0027 0.0027 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 -[PileUpPtHF] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 -0.0088 -0.0088 11.0 -0.0032 -0.0032 13.5 0.0020 0.0020 16.5 0.0061 0.0061 19.5 0.0086 0.0086 22.5 0.0103 0.0103 26.0 0.0115 0.0115 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0128 0.0128 46.0 0.0128 0.0128 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0099 0.0099 123.5 0.0092 0.0092 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0074 0.0074 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0057 0.0057 331.0 0.0051 0.0051 396.0 0.0046 0.0046 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0027 0.0027 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 --5.0 -4.4 132 9.0 -0.0088 -0.0088 11.0 -0.0032 -0.0032 13.5 0.0020 0.0020 16.5 0.0061 0.0061 19.5 0.0086 0.0086 22.5 0.0103 0.0103 26.0 0.0115 0.0115 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0128 0.0128 46.0 0.0128 0.0128 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0099 0.0099 123.5 0.0092 0.0092 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0074 0.0074 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0057 0.0057 331.0 0.0051 0.0051 396.0 0.0046 0.0046 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0027 0.0027 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 --4.4 -4.0 132 9.0 -0.0608 -0.0608 11.0 -0.0514 -0.0514 13.5 -0.0418 -0.0418 16.5 -0.0329 -0.0329 19.5 -0.0265 -0.0265 22.5 -0.0216 -0.0216 26.0 -0.0173 -0.0173 30.0 -0.0137 -0.0137 34.5 -0.0106 -0.0106 40.0 -0.0080 -0.0080 46.0 -0.0059 -0.0059 52.5 -0.0042 -0.0042 60.0 -0.0028 -0.0028 69.0 -0.0016 -0.0016 79.0 -0.0007 -0.0007 90.5 0.0000 0.0000 105.5 0.0006 0.0006 123.5 0.0011 0.0011 143.0 0.0014 0.0014 163.5 0.0016 0.0016 185.0 0.0017 0.0017 208.0 0.0018 0.0018 232.5 0.0018 0.0018 258.5 0.0018 0.0018 286.0 0.0018 0.0018 331.0 0.0018 0.0018 396.0 0.0017 0.0017 468.5 0.0016 0.0016 549.5 0.0015 0.0015 639.0 0.0014 0.0014 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0005 0.0005 --4.0 -3.5 132 9.0 -0.0416 -0.0416 11.0 -0.0343 -0.0343 13.5 -0.0267 -0.0267 16.5 -0.0197 -0.0197 19.5 -0.0145 -0.0145 22.5 -0.0106 -0.0106 26.0 -0.0072 -0.0072 30.0 -0.0044 -0.0044 34.5 -0.0021 -0.0021 40.0 -0.0001 -0.0001 46.0 0.0014 0.0014 52.5 0.0024 0.0024 60.0 0.0032 0.0032 69.0 0.0038 0.0038 79.0 0.0042 0.0042 90.5 0.0045 0.0045 105.5 0.0046 0.0046 123.5 0.0046 0.0046 143.0 0.0046 0.0046 163.5 0.0044 0.0044 185.0 0.0043 0.0043 208.0 0.0041 0.0041 232.5 0.0040 0.0040 258.5 0.0038 0.0038 286.0 0.0036 0.0036 331.0 0.0034 0.0034 396.0 0.0031 0.0031 468.5 0.0028 0.0028 549.5 0.0026 0.0026 639.0 0.0024 0.0024 738.0 0.0022 0.0022 847.5 0.0020 0.0020 968.5 0.0018 0.0018 1102.0 0.0017 0.0017 1249.5 0.0015 0.0015 1412.0 0.0014 0.0014 1590.5 0.0013 0.0013 1787.0 0.0012 0.0012 1945.0 0.0011 0.0011 2119.0 0.0010 0.0010 2369.0 0.0010 0.0010 2643.5 0.0009 0.0009 2945.0 0.0008 0.0008 3276.5 0.0007 0.0007 --3.5 -3.0 132 9.0 -0.0389 -0.0389 11.0 -0.0283 -0.0283 13.5 -0.0171 -0.0171 16.5 -0.0070 -0.0070 19.5 0.0002 0.0002 22.5 0.0055 0.0055 26.0 0.0099 0.0099 30.0 0.0134 0.0134 34.5 0.0161 0.0161 40.0 0.0181 0.0181 46.0 0.0193 0.0193 52.5 0.0200 0.0200 60.0 0.0203 0.0203 69.0 0.0202 0.0202 79.0 0.0198 0.0198 90.5 0.0192 0.0192 105.5 0.0182 0.0182 123.5 0.0172 0.0172 143.0 0.0161 0.0161 163.5 0.0151 0.0151 185.0 0.0141 0.0141 208.0 0.0132 0.0132 232.5 0.0124 0.0124 258.5 0.0117 0.0117 286.0 0.0110 0.0110 331.0 0.0101 0.0101 396.0 0.0090 0.0090 468.5 0.0081 0.0081 549.5 0.0073 0.0073 639.0 0.0066 0.0066 738.0 0.0059 0.0059 847.5 0.0054 0.0054 968.5 0.0049 0.0049 1102.0 0.0045 0.0045 1249.5 0.0041 0.0041 1412.0 0.0037 0.0037 1590.5 0.0034 0.0034 1787.0 0.0031 0.0031 1945.0 0.0029 0.0029 2119.0 0.0027 0.0027 2369.0 0.0025 0.0025 2643.5 0.0023 0.0023 2945.0 0.0021 0.0021 3276.5 0.0019 0.0019 --3.0 -2.8 132 9.0 -0.0343 -0.0343 11.0 -0.0297 -0.0297 13.5 -0.0248 -0.0248 16.5 -0.0202 -0.0202 19.5 -0.0166 -0.0166 22.5 -0.0139 -0.0139 26.0 -0.0113 -0.0113 30.0 -0.0091 -0.0091 34.5 -0.0073 -0.0073 40.0 -0.0056 -0.0056 46.0 -0.0042 -0.0042 52.5 -0.0031 -0.0031 60.0 -0.0022 -0.0022 69.0 -0.0014 -0.0014 79.0 -0.0007 -0.0007 90.5 -0.0002 -0.0002 105.5 0.0003 0.0003 123.5 0.0006 0.0006 143.0 0.0008 0.0008 163.5 0.0010 0.0010 185.0 0.0011 0.0011 208.0 0.0011 0.0011 232.5 0.0012 0.0012 258.5 0.0012 0.0012 286.0 0.0012 0.0012 331.0 0.0011 0.0011 396.0 0.0011 0.0011 468.5 0.0010 0.0010 549.5 0.0010 0.0010 639.0 0.0009 0.0009 738.0 0.0008 0.0008 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1945.0 0.0005 0.0005 2119.0 0.0005 0.0005 2369.0 0.0004 0.0004 2643.5 0.0004 0.0004 2945.0 0.0004 0.0004 3276.5 0.0003 0.0003 --2.8 -2.6 132 9.0 -0.0269 -0.0269 11.0 -0.0221 -0.0221 13.5 -0.0170 -0.0170 16.5 -0.0122 -0.0122 19.5 -0.0087 -0.0087 22.5 -0.0061 -0.0061 26.0 -0.0038 -0.0038 30.0 -0.0019 -0.0019 34.5 -0.0004 -0.0004 40.0 0.0009 0.0009 46.0 0.0019 0.0019 52.5 0.0026 0.0026 60.0 0.0032 0.0032 69.0 0.0036 0.0036 79.0 0.0039 0.0039 90.5 0.0040 0.0040 105.5 0.0041 0.0041 123.5 0.0041 0.0041 143.0 0.0040 0.0040 163.5 0.0038 0.0038 185.0 0.0037 0.0037 208.0 0.0035 0.0035 232.5 0.0034 0.0034 258.5 0.0032 0.0032 286.0 0.0031 0.0031 331.0 0.0028 0.0028 396.0 0.0026 0.0026 468.5 0.0023 0.0023 549.5 0.0021 0.0021 639.0 0.0019 0.0019 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0013 0.0013 1249.5 0.0012 0.0012 1412.0 0.0011 0.0011 1590.5 0.0010 0.0010 1787.0 0.0009 0.0009 1945.0 0.0009 0.0009 2119.0 0.0008 0.0008 2369.0 0.0008 0.0008 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 --2.6 -2.4 132 9.0 -0.1141 -0.1141 11.0 -0.0956 -0.0956 13.5 -0.0752 -0.0752 16.5 -0.0566 -0.0566 19.5 -0.0432 -0.0432 22.5 -0.0334 -0.0334 26.0 -0.0249 -0.0249 30.0 -0.0179 -0.0179 34.5 -0.0121 -0.0121 40.0 -0.0071 -0.0071 46.0 -0.0033 -0.0033 52.5 -0.0003 -0.0003 60.0 0.0021 0.0021 69.0 0.0041 0.0041 79.0 0.0056 0.0056 90.5 0.0067 0.0067 105.5 0.0075 0.0075 123.5 0.0080 0.0080 143.0 0.0082 0.0082 163.5 0.0082 0.0082 185.0 0.0081 0.0081 208.0 0.0079 0.0079 232.5 0.0077 0.0077 258.5 0.0074 0.0074 286.0 0.0071 0.0071 331.0 0.0067 0.0067 396.0 0.0061 0.0061 468.5 0.0056 0.0056 549.5 0.0052 0.0052 639.0 0.0047 0.0047 738.0 0.0043 0.0043 847.5 0.0040 0.0040 968.5 0.0037 0.0037 1102.0 0.0034 0.0034 1249.5 0.0031 0.0031 1412.0 0.0028 0.0028 1590.5 0.0026 0.0026 1787.0 0.0024 0.0024 1945.0 0.0023 0.0023 2119.0 0.0021 0.0021 2369.0 0.0020 0.0020 2643.5 0.0018 0.0018 2945.0 0.0017 0.0017 3276.5 0.0016 0.0016 --2.4 -2.2 132 9.0 -0.1492 -0.1492 11.0 -0.1239 -0.1239 13.5 -0.0968 -0.0968 16.5 -0.0732 -0.0732 19.5 -0.0564 -0.0564 22.5 -0.0441 -0.0441 26.0 -0.0335 -0.0335 30.0 -0.0247 -0.0247 34.5 -0.0175 -0.0175 40.0 -0.0113 -0.0113 46.0 -0.0066 -0.0066 52.5 -0.0030 -0.0030 60.0 0.0000 0.0000 69.0 0.0025 0.0025 79.0 0.0043 0.0043 90.5 0.0057 0.0057 105.5 0.0068 0.0068 123.5 0.0075 0.0075 143.0 0.0079 0.0079 163.5 0.0080 0.0080 185.0 0.0080 0.0080 208.0 0.0079 0.0079 232.5 0.0078 0.0078 258.5 0.0076 0.0076 286.0 0.0073 0.0073 331.0 0.0069 0.0069 396.0 0.0064 0.0064 468.5 0.0059 0.0059 549.5 0.0054 0.0054 639.0 0.0050 0.0050 738.0 0.0046 0.0046 847.5 0.0042 0.0042 968.5 0.0039 0.0039 1102.0 0.0036 0.0036 1249.5 0.0033 0.0033 1412.0 0.0030 0.0030 1590.5 0.0028 0.0028 1787.0 0.0026 0.0026 1945.0 0.0024 0.0024 2119.0 0.0023 0.0023 2369.0 0.0021 0.0021 2643.5 0.0019 0.0019 2945.0 0.0018 0.0018 3276.5 0.0017 0.0017 --2.2 -2.0 132 9.0 -0.1724 -0.1724 11.0 -0.1460 -0.1460 13.5 -0.1183 -0.1183 16.5 -0.0937 -0.0937 19.5 -0.0757 -0.0757 22.5 -0.0622 -0.0622 26.0 -0.0502 -0.0502 30.0 -0.0400 -0.0400 34.5 -0.0314 -0.0314 40.0 -0.0238 -0.0238 46.0 -0.0178 -0.0178 52.5 -0.0131 -0.0131 60.0 -0.0091 -0.0091 69.0 -0.0057 -0.0057 79.0 -0.0030 -0.0030 90.5 -0.0008 -0.0008 105.5 0.0011 0.0011 123.5 0.0025 0.0025 143.0 0.0035 0.0035 163.5 0.0042 0.0042 185.0 0.0046 0.0046 208.0 0.0048 0.0048 232.5 0.0049 0.0049 258.5 0.0050 0.0050 286.0 0.0050 0.0050 331.0 0.0049 0.0049 396.0 0.0047 0.0047 468.5 0.0045 0.0045 549.5 0.0042 0.0042 639.0 0.0039 0.0039 738.0 0.0036 0.0036 847.5 0.0034 0.0034 968.5 0.0031 0.0031 1102.0 0.0029 0.0029 1249.5 0.0027 0.0027 1412.0 0.0025 0.0025 1590.5 0.0023 0.0023 1787.0 0.0022 0.0022 1945.0 0.0020 0.0020 2119.0 0.0019 0.0019 2369.0 0.0018 0.0018 2643.5 0.0017 0.0017 2945.0 0.0015 0.0015 3276.5 0.0014 0.0014 --2.0 -1.8 132 9.0 -0.1295 -0.1295 11.0 -0.1119 -0.1119 13.5 -0.0935 -0.0935 16.5 -0.0768 -0.0768 19.5 -0.0643 -0.0643 22.5 -0.0546 -0.0546 26.0 -0.0458 -0.0458 30.0 -0.0382 -0.0382 34.5 -0.0316 -0.0316 40.0 -0.0256 -0.0256 46.0 -0.0207 -0.0207 52.5 -0.0167 -0.0167 60.0 -0.0133 -0.0133 69.0 -0.0102 -0.0102 79.0 -0.0077 -0.0077 90.5 -0.0057 -0.0057 105.5 -0.0038 -0.0038 123.5 -0.0023 -0.0023 143.0 -0.0011 -0.0011 163.5 -0.0003 -0.0003 185.0 0.0003 0.0003 208.0 0.0007 0.0007 232.5 0.0010 0.0010 258.5 0.0013 0.0013 286.0 0.0014 0.0014 331.0 0.0016 0.0016 396.0 0.0018 0.0018 468.5 0.0018 0.0018 549.5 0.0018 0.0018 639.0 0.0017 0.0017 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0014 0.0014 1249.5 0.0013 0.0013 1412.0 0.0013 0.0013 1590.5 0.0012 0.0012 1787.0 0.0011 0.0011 1945.0 0.0011 0.0011 2119.0 0.0010 0.0010 2369.0 0.0009 0.0009 2643.5 0.0009 0.0009 2945.0 0.0008 0.0008 3276.5 0.0008 0.0008 --1.8 -1.6 132 9.0 -0.1076 -0.1076 11.0 -0.0940 -0.0940 13.5 -0.0797 -0.0797 16.5 -0.0667 -0.0667 19.5 -0.0567 -0.0567 22.5 -0.0489 -0.0489 26.0 -0.0418 -0.0418 30.0 -0.0355 -0.0355 34.5 -0.0300 -0.0300 40.0 -0.0249 -0.0249 46.0 -0.0207 -0.0207 52.5 -0.0173 -0.0173 60.0 -0.0142 -0.0142 69.0 -0.0115 -0.0115 79.0 -0.0093 -0.0093 90.5 -0.0074 -0.0074 105.5 -0.0056 -0.0056 123.5 -0.0041 -0.0041 143.0 -0.0030 -0.0030 163.5 -0.0022 -0.0022 185.0 -0.0015 -0.0015 208.0 -0.0010 -0.0010 232.5 -0.0006 -0.0006 258.5 -0.0003 -0.0003 286.0 -0.0001 -0.0001 331.0 0.0002 0.0002 396.0 0.0004 0.0004 468.5 0.0006 0.0006 549.5 0.0007 0.0007 639.0 0.0007 0.0007 738.0 0.0008 0.0008 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0007 0.0007 1249.5 0.0007 0.0007 1412.0 0.0007 0.0007 1590.5 0.0006 0.0006 1787.0 0.0006 0.0006 1945.0 0.0006 0.0006 2119.0 0.0006 0.0006 2369.0 0.0005 0.0005 2643.5 0.0005 0.0005 2945.0 0.0005 0.0005 3276.5 0.0004 0.0004 --1.6 -1.4 132 9.0 -0.1048 -0.1048 11.0 -0.0912 -0.0912 13.5 -0.0768 -0.0768 16.5 -0.0636 -0.0636 19.5 -0.0536 -0.0536 22.5 -0.0459 -0.0459 26.0 -0.0388 -0.0388 30.0 -0.0326 -0.0326 34.5 -0.0272 -0.0272 40.0 -0.0222 -0.0222 46.0 -0.0182 -0.0182 52.5 -0.0149 -0.0149 60.0 -0.0120 -0.0120 69.0 -0.0094 -0.0094 79.0 -0.0073 -0.0073 90.5 -0.0055 -0.0055 105.5 -0.0039 -0.0039 123.5 -0.0025 -0.0025 143.0 -0.0015 -0.0015 163.5 -0.0008 -0.0008 185.0 -0.0002 -0.0002 208.0 0.0002 0.0002 232.5 0.0005 0.0005 258.5 0.0007 0.0007 286.0 0.0009 0.0009 331.0 0.0011 0.0011 396.0 0.0012 0.0012 468.5 0.0013 0.0013 549.5 0.0013 0.0013 639.0 0.0013 0.0013 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0010 0.0010 1412.0 0.0010 0.0010 1590.5 0.0009 0.0009 1787.0 0.0009 0.0009 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 --1.4 -1.2 132 9.0 -0.1041 -0.1041 11.0 -0.0885 -0.0885 13.5 -0.0722 -0.0722 16.5 -0.0575 -0.0575 19.5 -0.0466 -0.0466 22.5 -0.0382 -0.0382 26.0 -0.0307 -0.0307 30.0 -0.0241 -0.0241 34.5 -0.0186 -0.0186 40.0 -0.0136 -0.0136 46.0 -0.0095 -0.0095 52.5 -0.0064 -0.0064 60.0 -0.0037 -0.0037 69.0 -0.0014 -0.0014 79.0 0.0004 0.0004 90.5 0.0018 0.0018 105.5 0.0030 0.0030 123.5 0.0039 0.0039 143.0 0.0045 0.0045 163.5 0.0048 0.0048 185.0 0.0050 0.0050 208.0 0.0051 0.0051 232.5 0.0051 0.0051 258.5 0.0050 0.0050 286.0 0.0050 0.0050 331.0 0.0048 0.0048 396.0 0.0045 0.0045 468.5 0.0042 0.0042 549.5 0.0040 0.0040 639.0 0.0037 0.0037 738.0 0.0034 0.0034 847.5 0.0031 0.0031 968.5 0.0029 0.0029 1102.0 0.0027 0.0027 1249.5 0.0025 0.0025 1412.0 0.0023 0.0023 1590.5 0.0021 0.0021 1787.0 0.0020 0.0020 1945.0 0.0019 0.0019 2119.0 0.0018 0.0018 2369.0 0.0016 0.0016 2643.5 0.0015 0.0015 2945.0 0.0014 0.0014 3276.5 0.0013 0.0013 --1.2 -1.0 132 9.0 -0.1018 -0.1018 11.0 -0.0872 -0.0872 13.5 -0.0719 -0.0719 16.5 -0.0580 -0.0580 19.5 -0.0477 -0.0477 22.5 -0.0397 -0.0397 26.0 -0.0324 -0.0324 30.0 -0.0261 -0.0261 34.5 -0.0207 -0.0207 40.0 -0.0158 -0.0158 46.0 -0.0119 -0.0119 52.5 -0.0087 -0.0087 60.0 -0.0060 -0.0060 69.0 -0.0037 -0.0037 79.0 -0.0018 -0.0018 90.5 -0.0003 -0.0003 105.5 0.0010 0.0010 123.5 0.0020 0.0020 143.0 0.0027 0.0027 163.5 0.0031 0.0031 185.0 0.0034 0.0034 208.0 0.0036 0.0036 232.5 0.0037 0.0037 258.5 0.0037 0.0037 286.0 0.0037 0.0037 331.0 0.0037 0.0037 396.0 0.0035 0.0035 468.5 0.0034 0.0034 549.5 0.0032 0.0032 639.0 0.0030 0.0030 738.0 0.0028 0.0028 847.5 0.0026 0.0026 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0021 0.0021 1412.0 0.0019 0.0019 1590.5 0.0018 0.0018 1787.0 0.0017 0.0017 1945.0 0.0016 0.0016 2119.0 0.0015 0.0015 2369.0 0.0014 0.0014 2643.5 0.0013 0.0013 2945.0 0.0012 0.0012 3276.5 0.0011 0.0011 --1.0 -0.8 132 9.0 -0.0914 -0.0914 11.0 -0.0792 -0.0792 13.5 -0.0660 -0.0660 16.5 -0.0541 -0.0541 19.5 -0.0451 -0.0451 22.5 -0.0382 -0.0382 26.0 -0.0319 -0.0319 30.0 -0.0264 -0.0264 34.5 -0.0217 -0.0217 40.0 -0.0173 -0.0173 46.0 -0.0138 -0.0138 52.5 -0.0109 -0.0109 60.0 -0.0085 -0.0085 69.0 -0.0063 -0.0063 79.0 -0.0046 -0.0046 90.5 -0.0031 -0.0031 105.5 -0.0018 -0.0018 123.5 -0.0007 -0.0007 143.0 0.0001 0.0001 163.5 0.0006 0.0006 185.0 0.0010 0.0010 208.0 0.0013 0.0013 232.5 0.0015 0.0015 258.5 0.0017 0.0017 286.0 0.0018 0.0018 331.0 0.0019 0.0019 396.0 0.0019 0.0019 468.5 0.0019 0.0019 549.5 0.0018 0.0018 639.0 0.0017 0.0017 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0014 0.0014 1249.5 0.0013 0.0013 1412.0 0.0012 0.0012 1590.5 0.0011 0.0011 1787.0 0.0011 0.0011 1945.0 0.0010 0.0010 2119.0 0.0010 0.0010 2369.0 0.0009 0.0009 2643.5 0.0008 0.0008 2945.0 0.0008 0.0008 3276.5 0.0007 0.0007 --0.8 -0.6 132 9.0 -0.0876 -0.0876 11.0 -0.0764 -0.0764 13.5 -0.0642 -0.0642 16.5 -0.0530 -0.0530 19.5 -0.0447 -0.0447 22.5 -0.0382 -0.0382 26.0 -0.0323 -0.0323 30.0 -0.0271 -0.0271 34.5 -0.0226 -0.0226 40.0 -0.0185 -0.0185 46.0 -0.0151 -0.0151 52.5 -0.0124 -0.0124 60.0 -0.0100 -0.0100 69.0 -0.0079 -0.0079 79.0 -0.0061 -0.0061 90.5 -0.0047 -0.0047 105.5 -0.0033 -0.0033 123.5 -0.0022 -0.0022 143.0 -0.0013 -0.0013 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0003 0.0003 258.5 0.0006 0.0006 286.0 0.0007 0.0007 331.0 0.0009 0.0009 396.0 0.0010 0.0010 468.5 0.0011 0.0011 549.5 0.0011 0.0011 639.0 0.0011 0.0011 738.0 0.0011 0.0011 847.5 0.0010 0.0010 968.5 0.0010 0.0010 1102.0 0.0009 0.0009 1249.5 0.0009 0.0009 1412.0 0.0008 0.0008 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0005 0.0005 --0.6 -0.4 132 9.0 -0.0872 -0.0872 11.0 -0.0761 -0.0761 13.5 -0.0637 -0.0637 16.5 -0.0526 -0.0526 19.5 -0.0442 -0.0442 22.5 -0.0378 -0.0378 26.0 -0.0320 -0.0320 30.0 -0.0268 -0.0268 34.5 -0.0224 -0.0224 40.0 -0.0183 -0.0183 46.0 -0.0150 -0.0150 52.5 -0.0123 -0.0123 60.0 -0.0099 -0.0099 69.0 -0.0078 -0.0078 79.0 -0.0061 -0.0061 90.5 -0.0046 -0.0046 105.5 -0.0033 -0.0033 123.5 -0.0022 -0.0022 143.0 -0.0013 -0.0013 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0003 0.0003 258.5 0.0005 0.0005 286.0 0.0007 0.0007 331.0 0.0009 0.0009 396.0 0.0010 0.0010 468.5 0.0011 0.0011 549.5 0.0011 0.0011 639.0 0.0011 0.0011 738.0 0.0011 0.0011 847.5 0.0010 0.0010 968.5 0.0010 0.0010 1102.0 0.0009 0.0009 1249.5 0.0009 0.0009 1412.0 0.0008 0.0008 1590.5 0.0008 0.0008 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0005 0.0005 --0.4 -0.2 132 9.0 -0.0868 -0.0868 11.0 -0.0756 -0.0756 13.5 -0.0631 -0.0631 16.5 -0.0520 -0.0520 19.5 -0.0436 -0.0436 22.5 -0.0371 -0.0371 26.0 -0.0313 -0.0313 30.0 -0.0262 -0.0262 34.5 -0.0218 -0.0218 40.0 -0.0178 -0.0178 46.0 -0.0145 -0.0145 52.5 -0.0118 -0.0118 60.0 -0.0094 -0.0094 69.0 -0.0074 -0.0074 79.0 -0.0057 -0.0057 90.5 -0.0042 -0.0042 105.5 -0.0029 -0.0029 123.5 -0.0018 -0.0018 143.0 -0.0010 -0.0010 163.5 -0.0005 -0.0005 185.0 -0.0000 -0.0000 208.0 0.0003 0.0003 232.5 0.0006 0.0006 258.5 0.0007 0.0007 286.0 0.0009 0.0009 331.0 0.0010 0.0010 396.0 0.0011 0.0011 468.5 0.0012 0.0012 549.5 0.0012 0.0012 639.0 0.0012 0.0012 738.0 0.0012 0.0012 847.5 0.0011 0.0011 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0008 0.0008 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 --0.2 0.0 132 9.0 -0.0830 -0.0830 11.0 -0.0720 -0.0720 13.5 -0.0599 -0.0599 16.5 -0.0490 -0.0490 19.5 -0.0410 -0.0410 22.5 -0.0348 -0.0348 26.0 -0.0292 -0.0292 30.0 -0.0243 -0.0243 34.5 -0.0201 -0.0201 40.0 -0.0162 -0.0162 46.0 -0.0131 -0.0131 52.5 -0.0106 -0.0106 60.0 -0.0084 -0.0084 69.0 -0.0064 -0.0064 79.0 -0.0048 -0.0048 90.5 -0.0035 -0.0035 105.5 -0.0023 -0.0023 123.5 -0.0013 -0.0013 143.0 -0.0005 -0.0005 163.5 -0.0000 -0.0000 185.0 0.0004 0.0004 208.0 0.0007 0.0007 232.5 0.0009 0.0009 258.5 0.0010 0.0010 286.0 0.0012 0.0012 331.0 0.0013 0.0013 396.0 0.0013 0.0013 468.5 0.0014 0.0014 549.5 0.0013 0.0013 639.0 0.0013 0.0013 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0010 0.0010 1412.0 0.0010 0.0010 1590.5 0.0009 0.0009 1787.0 0.0008 0.0008 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -0.0 0.2 132 9.0 -0.0830 -0.0830 11.0 -0.0720 -0.0720 13.5 -0.0599 -0.0599 16.5 -0.0490 -0.0490 19.5 -0.0410 -0.0410 22.5 -0.0348 -0.0348 26.0 -0.0292 -0.0292 30.0 -0.0243 -0.0243 34.5 -0.0201 -0.0201 40.0 -0.0162 -0.0162 46.0 -0.0131 -0.0131 52.5 -0.0106 -0.0106 60.0 -0.0084 -0.0084 69.0 -0.0064 -0.0064 79.0 -0.0048 -0.0048 90.5 -0.0035 -0.0035 105.5 -0.0023 -0.0023 123.5 -0.0013 -0.0013 143.0 -0.0005 -0.0005 163.5 -0.0000 -0.0000 185.0 0.0004 0.0004 208.0 0.0007 0.0007 232.5 0.0009 0.0009 258.5 0.0010 0.0010 286.0 0.0012 0.0012 331.0 0.0013 0.0013 396.0 0.0013 0.0013 468.5 0.0014 0.0014 549.5 0.0013 0.0013 639.0 0.0013 0.0013 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0010 0.0010 1412.0 0.0010 0.0010 1590.5 0.0009 0.0009 1787.0 0.0008 0.0008 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -0.2 0.4 132 9.0 -0.0868 -0.0868 11.0 -0.0756 -0.0756 13.5 -0.0631 -0.0631 16.5 -0.0520 -0.0520 19.5 -0.0436 -0.0436 22.5 -0.0371 -0.0371 26.0 -0.0313 -0.0313 30.0 -0.0262 -0.0262 34.5 -0.0218 -0.0218 40.0 -0.0178 -0.0178 46.0 -0.0145 -0.0145 52.5 -0.0118 -0.0118 60.0 -0.0094 -0.0094 69.0 -0.0074 -0.0074 79.0 -0.0057 -0.0057 90.5 -0.0042 -0.0042 105.5 -0.0029 -0.0029 123.5 -0.0018 -0.0018 143.0 -0.0010 -0.0010 163.5 -0.0005 -0.0005 185.0 -0.0000 -0.0000 208.0 0.0003 0.0003 232.5 0.0006 0.0006 258.5 0.0007 0.0007 286.0 0.0009 0.0009 331.0 0.0010 0.0010 396.0 0.0011 0.0011 468.5 0.0012 0.0012 549.5 0.0012 0.0012 639.0 0.0012 0.0012 738.0 0.0012 0.0012 847.5 0.0011 0.0011 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0008 0.0008 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -0.4 0.6 132 9.0 -0.0872 -0.0872 11.0 -0.0761 -0.0761 13.5 -0.0637 -0.0637 16.5 -0.0526 -0.0526 19.5 -0.0442 -0.0442 22.5 -0.0378 -0.0378 26.0 -0.0320 -0.0320 30.0 -0.0268 -0.0268 34.5 -0.0224 -0.0224 40.0 -0.0183 -0.0183 46.0 -0.0150 -0.0150 52.5 -0.0123 -0.0123 60.0 -0.0099 -0.0099 69.0 -0.0078 -0.0078 79.0 -0.0061 -0.0061 90.5 -0.0046 -0.0046 105.5 -0.0033 -0.0033 123.5 -0.0022 -0.0022 143.0 -0.0013 -0.0013 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0003 0.0003 258.5 0.0005 0.0005 286.0 0.0007 0.0007 331.0 0.0009 0.0009 396.0 0.0010 0.0010 468.5 0.0011 0.0011 549.5 0.0011 0.0011 639.0 0.0011 0.0011 738.0 0.0011 0.0011 847.5 0.0010 0.0010 968.5 0.0010 0.0010 1102.0 0.0009 0.0009 1249.5 0.0009 0.0009 1412.0 0.0008 0.0008 1590.5 0.0008 0.0008 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0005 0.0005 -0.6 0.8 132 9.0 -0.0876 -0.0876 11.0 -0.0764 -0.0764 13.5 -0.0642 -0.0642 16.5 -0.0530 -0.0530 19.5 -0.0447 -0.0447 22.5 -0.0382 -0.0382 26.0 -0.0323 -0.0323 30.0 -0.0271 -0.0271 34.5 -0.0226 -0.0226 40.0 -0.0185 -0.0185 46.0 -0.0151 -0.0151 52.5 -0.0124 -0.0124 60.0 -0.0100 -0.0100 69.0 -0.0079 -0.0079 79.0 -0.0061 -0.0061 90.5 -0.0047 -0.0047 105.5 -0.0033 -0.0033 123.5 -0.0022 -0.0022 143.0 -0.0013 -0.0013 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0003 0.0003 258.5 0.0006 0.0006 286.0 0.0007 0.0007 331.0 0.0009 0.0009 396.0 0.0010 0.0010 468.5 0.0011 0.0011 549.5 0.0011 0.0011 639.0 0.0011 0.0011 738.0 0.0011 0.0011 847.5 0.0010 0.0010 968.5 0.0010 0.0010 1102.0 0.0009 0.0009 1249.5 0.0009 0.0009 1412.0 0.0008 0.0008 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0005 0.0005 -0.8 1.0 132 9.0 -0.0914 -0.0914 11.0 -0.0792 -0.0792 13.5 -0.0660 -0.0660 16.5 -0.0541 -0.0541 19.5 -0.0451 -0.0451 22.5 -0.0382 -0.0382 26.0 -0.0319 -0.0319 30.0 -0.0264 -0.0264 34.5 -0.0217 -0.0217 40.0 -0.0173 -0.0173 46.0 -0.0138 -0.0138 52.5 -0.0109 -0.0109 60.0 -0.0085 -0.0085 69.0 -0.0063 -0.0063 79.0 -0.0046 -0.0046 90.5 -0.0031 -0.0031 105.5 -0.0018 -0.0018 123.5 -0.0007 -0.0007 143.0 0.0001 0.0001 163.5 0.0006 0.0006 185.0 0.0010 0.0010 208.0 0.0013 0.0013 232.5 0.0015 0.0015 258.5 0.0017 0.0017 286.0 0.0018 0.0018 331.0 0.0019 0.0019 396.0 0.0019 0.0019 468.5 0.0019 0.0019 549.5 0.0018 0.0018 639.0 0.0017 0.0017 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0014 0.0014 1249.5 0.0013 0.0013 1412.0 0.0012 0.0012 1590.5 0.0011 0.0011 1787.0 0.0011 0.0011 1945.0 0.0010 0.0010 2119.0 0.0010 0.0010 2369.0 0.0009 0.0009 2643.5 0.0008 0.0008 2945.0 0.0008 0.0008 3276.5 0.0007 0.0007 -1.0 1.2 132 9.0 -0.1018 -0.1018 11.0 -0.0872 -0.0872 13.5 -0.0719 -0.0719 16.5 -0.0580 -0.0580 19.5 -0.0477 -0.0477 22.5 -0.0397 -0.0397 26.0 -0.0324 -0.0324 30.0 -0.0261 -0.0261 34.5 -0.0207 -0.0207 40.0 -0.0158 -0.0158 46.0 -0.0119 -0.0119 52.5 -0.0087 -0.0087 60.0 -0.0060 -0.0060 69.0 -0.0037 -0.0037 79.0 -0.0018 -0.0018 90.5 -0.0003 -0.0003 105.5 0.0010 0.0010 123.5 0.0020 0.0020 143.0 0.0027 0.0027 163.5 0.0031 0.0031 185.0 0.0034 0.0034 208.0 0.0036 0.0036 232.5 0.0037 0.0037 258.5 0.0037 0.0037 286.0 0.0037 0.0037 331.0 0.0037 0.0037 396.0 0.0035 0.0035 468.5 0.0034 0.0034 549.5 0.0032 0.0032 639.0 0.0030 0.0030 738.0 0.0028 0.0028 847.5 0.0026 0.0026 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0021 0.0021 1412.0 0.0019 0.0019 1590.5 0.0018 0.0018 1787.0 0.0017 0.0017 1945.0 0.0016 0.0016 2119.0 0.0015 0.0015 2369.0 0.0014 0.0014 2643.5 0.0013 0.0013 2945.0 0.0012 0.0012 3276.5 0.0011 0.0011 -1.2 1.4 132 9.0 -0.1041 -0.1041 11.0 -0.0885 -0.0885 13.5 -0.0722 -0.0722 16.5 -0.0575 -0.0575 19.5 -0.0466 -0.0466 22.5 -0.0382 -0.0382 26.0 -0.0307 -0.0307 30.0 -0.0241 -0.0241 34.5 -0.0186 -0.0186 40.0 -0.0136 -0.0136 46.0 -0.0095 -0.0095 52.5 -0.0064 -0.0064 60.0 -0.0037 -0.0037 69.0 -0.0014 -0.0014 79.0 0.0004 0.0004 90.5 0.0018 0.0018 105.5 0.0030 0.0030 123.5 0.0039 0.0039 143.0 0.0045 0.0045 163.5 0.0048 0.0048 185.0 0.0050 0.0050 208.0 0.0051 0.0051 232.5 0.0051 0.0051 258.5 0.0050 0.0050 286.0 0.0050 0.0050 331.0 0.0048 0.0048 396.0 0.0045 0.0045 468.5 0.0042 0.0042 549.5 0.0040 0.0040 639.0 0.0037 0.0037 738.0 0.0034 0.0034 847.5 0.0031 0.0031 968.5 0.0029 0.0029 1102.0 0.0027 0.0027 1249.5 0.0025 0.0025 1412.0 0.0023 0.0023 1590.5 0.0021 0.0021 1787.0 0.0020 0.0020 1945.0 0.0019 0.0019 2119.0 0.0018 0.0018 2369.0 0.0016 0.0016 2643.5 0.0015 0.0015 2945.0 0.0014 0.0014 3276.5 0.0013 0.0013 -1.4 1.6 132 9.0 -0.1048 -0.1048 11.0 -0.0912 -0.0912 13.5 -0.0768 -0.0768 16.5 -0.0636 -0.0636 19.5 -0.0536 -0.0536 22.5 -0.0459 -0.0459 26.0 -0.0388 -0.0388 30.0 -0.0326 -0.0326 34.5 -0.0272 -0.0272 40.0 -0.0222 -0.0222 46.0 -0.0182 -0.0182 52.5 -0.0149 -0.0149 60.0 -0.0120 -0.0120 69.0 -0.0094 -0.0094 79.0 -0.0073 -0.0073 90.5 -0.0055 -0.0055 105.5 -0.0039 -0.0039 123.5 -0.0025 -0.0025 143.0 -0.0015 -0.0015 163.5 -0.0008 -0.0008 185.0 -0.0002 -0.0002 208.0 0.0002 0.0002 232.5 0.0005 0.0005 258.5 0.0007 0.0007 286.0 0.0009 0.0009 331.0 0.0011 0.0011 396.0 0.0012 0.0012 468.5 0.0013 0.0013 549.5 0.0013 0.0013 639.0 0.0013 0.0013 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0010 0.0010 1412.0 0.0010 0.0010 1590.5 0.0009 0.0009 1787.0 0.0009 0.0009 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -1.6 1.8 132 9.0 -0.1076 -0.1076 11.0 -0.0940 -0.0940 13.5 -0.0797 -0.0797 16.5 -0.0667 -0.0667 19.5 -0.0567 -0.0567 22.5 -0.0489 -0.0489 26.0 -0.0418 -0.0418 30.0 -0.0355 -0.0355 34.5 -0.0300 -0.0300 40.0 -0.0249 -0.0249 46.0 -0.0207 -0.0207 52.5 -0.0173 -0.0173 60.0 -0.0142 -0.0142 69.0 -0.0115 -0.0115 79.0 -0.0093 -0.0093 90.5 -0.0074 -0.0074 105.5 -0.0056 -0.0056 123.5 -0.0041 -0.0041 143.0 -0.0030 -0.0030 163.5 -0.0022 -0.0022 185.0 -0.0015 -0.0015 208.0 -0.0010 -0.0010 232.5 -0.0006 -0.0006 258.5 -0.0003 -0.0003 286.0 -0.0001 -0.0001 331.0 0.0002 0.0002 396.0 0.0004 0.0004 468.5 0.0006 0.0006 549.5 0.0007 0.0007 639.0 0.0007 0.0007 738.0 0.0008 0.0008 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0007 0.0007 1249.5 0.0007 0.0007 1412.0 0.0007 0.0007 1590.5 0.0006 0.0006 1787.0 0.0006 0.0006 1945.0 0.0006 0.0006 2119.0 0.0006 0.0006 2369.0 0.0005 0.0005 2643.5 0.0005 0.0005 2945.0 0.0005 0.0005 3276.5 0.0004 0.0004 -1.8 2.0 132 9.0 -0.1295 -0.1295 11.0 -0.1119 -0.1119 13.5 -0.0935 -0.0935 16.5 -0.0768 -0.0768 19.5 -0.0643 -0.0643 22.5 -0.0546 -0.0546 26.0 -0.0458 -0.0458 30.0 -0.0382 -0.0382 34.5 -0.0316 -0.0316 40.0 -0.0256 -0.0256 46.0 -0.0207 -0.0207 52.5 -0.0167 -0.0167 60.0 -0.0133 -0.0133 69.0 -0.0102 -0.0102 79.0 -0.0077 -0.0077 90.5 -0.0057 -0.0057 105.5 -0.0038 -0.0038 123.5 -0.0023 -0.0023 143.0 -0.0011 -0.0011 163.5 -0.0003 -0.0003 185.0 0.0003 0.0003 208.0 0.0007 0.0007 232.5 0.0010 0.0010 258.5 0.0013 0.0013 286.0 0.0014 0.0014 331.0 0.0016 0.0016 396.0 0.0018 0.0018 468.5 0.0018 0.0018 549.5 0.0018 0.0018 639.0 0.0017 0.0017 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0014 0.0014 1249.5 0.0013 0.0013 1412.0 0.0013 0.0013 1590.5 0.0012 0.0012 1787.0 0.0011 0.0011 1945.0 0.0011 0.0011 2119.0 0.0010 0.0010 2369.0 0.0009 0.0009 2643.5 0.0009 0.0009 2945.0 0.0008 0.0008 3276.5 0.0008 0.0008 -2.0 2.2 132 9.0 -0.1724 -0.1724 11.0 -0.1460 -0.1460 13.5 -0.1183 -0.1183 16.5 -0.0937 -0.0937 19.5 -0.0757 -0.0757 22.5 -0.0622 -0.0622 26.0 -0.0502 -0.0502 30.0 -0.0400 -0.0400 34.5 -0.0314 -0.0314 40.0 -0.0238 -0.0238 46.0 -0.0178 -0.0178 52.5 -0.0131 -0.0131 60.0 -0.0091 -0.0091 69.0 -0.0057 -0.0057 79.0 -0.0030 -0.0030 90.5 -0.0008 -0.0008 105.5 0.0011 0.0011 123.5 0.0025 0.0025 143.0 0.0035 0.0035 163.5 0.0042 0.0042 185.0 0.0046 0.0046 208.0 0.0048 0.0048 232.5 0.0049 0.0049 258.5 0.0050 0.0050 286.0 0.0050 0.0050 331.0 0.0049 0.0049 396.0 0.0047 0.0047 468.5 0.0045 0.0045 549.5 0.0042 0.0042 639.0 0.0039 0.0039 738.0 0.0036 0.0036 847.5 0.0034 0.0034 968.5 0.0031 0.0031 1102.0 0.0029 0.0029 1249.5 0.0027 0.0027 1412.0 0.0025 0.0025 1590.5 0.0023 0.0023 1787.0 0.0022 0.0022 1945.0 0.0020 0.0020 2119.0 0.0019 0.0019 2369.0 0.0018 0.0018 2643.5 0.0017 0.0017 2945.0 0.0015 0.0015 3276.5 0.0014 0.0014 -2.2 2.4 132 9.0 -0.1492 -0.1492 11.0 -0.1239 -0.1239 13.5 -0.0968 -0.0968 16.5 -0.0732 -0.0732 19.5 -0.0564 -0.0564 22.5 -0.0441 -0.0441 26.0 -0.0335 -0.0335 30.0 -0.0247 -0.0247 34.5 -0.0175 -0.0175 40.0 -0.0113 -0.0113 46.0 -0.0066 -0.0066 52.5 -0.0030 -0.0030 60.0 0.0000 0.0000 69.0 0.0025 0.0025 79.0 0.0043 0.0043 90.5 0.0057 0.0057 105.5 0.0068 0.0068 123.5 0.0075 0.0075 143.0 0.0079 0.0079 163.5 0.0080 0.0080 185.0 0.0080 0.0080 208.0 0.0079 0.0079 232.5 0.0078 0.0078 258.5 0.0076 0.0076 286.0 0.0073 0.0073 331.0 0.0069 0.0069 396.0 0.0064 0.0064 468.5 0.0059 0.0059 549.5 0.0054 0.0054 639.0 0.0050 0.0050 738.0 0.0046 0.0046 847.5 0.0042 0.0042 968.5 0.0039 0.0039 1102.0 0.0036 0.0036 1249.5 0.0033 0.0033 1412.0 0.0030 0.0030 1590.5 0.0028 0.0028 1787.0 0.0026 0.0026 1945.0 0.0024 0.0024 2119.0 0.0023 0.0023 2369.0 0.0021 0.0021 2643.5 0.0019 0.0019 2945.0 0.0018 0.0018 3276.5 0.0017 0.0017 -2.4 2.6 132 9.0 -0.1141 -0.1141 11.0 -0.0956 -0.0956 13.5 -0.0752 -0.0752 16.5 -0.0566 -0.0566 19.5 -0.0432 -0.0432 22.5 -0.0334 -0.0334 26.0 -0.0249 -0.0249 30.0 -0.0179 -0.0179 34.5 -0.0121 -0.0121 40.0 -0.0071 -0.0071 46.0 -0.0033 -0.0033 52.5 -0.0003 -0.0003 60.0 0.0021 0.0021 69.0 0.0041 0.0041 79.0 0.0056 0.0056 90.5 0.0067 0.0067 105.5 0.0075 0.0075 123.5 0.0080 0.0080 143.0 0.0082 0.0082 163.5 0.0082 0.0082 185.0 0.0081 0.0081 208.0 0.0079 0.0079 232.5 0.0077 0.0077 258.5 0.0074 0.0074 286.0 0.0071 0.0071 331.0 0.0067 0.0067 396.0 0.0061 0.0061 468.5 0.0056 0.0056 549.5 0.0052 0.0052 639.0 0.0047 0.0047 738.0 0.0043 0.0043 847.5 0.0040 0.0040 968.5 0.0037 0.0037 1102.0 0.0034 0.0034 1249.5 0.0031 0.0031 1412.0 0.0028 0.0028 1590.5 0.0026 0.0026 1787.0 0.0024 0.0024 1945.0 0.0023 0.0023 2119.0 0.0021 0.0021 2369.0 0.0020 0.0020 2643.5 0.0018 0.0018 2945.0 0.0017 0.0017 3276.5 0.0016 0.0016 -2.6 2.8 132 9.0 -0.0269 -0.0269 11.0 -0.0221 -0.0221 13.5 -0.0170 -0.0170 16.5 -0.0122 -0.0122 19.5 -0.0087 -0.0087 22.5 -0.0061 -0.0061 26.0 -0.0038 -0.0038 30.0 -0.0019 -0.0019 34.5 -0.0004 -0.0004 40.0 0.0009 0.0009 46.0 0.0019 0.0019 52.5 0.0026 0.0026 60.0 0.0032 0.0032 69.0 0.0036 0.0036 79.0 0.0039 0.0039 90.5 0.0040 0.0040 105.5 0.0041 0.0041 123.5 0.0041 0.0041 143.0 0.0040 0.0040 163.5 0.0038 0.0038 185.0 0.0037 0.0037 208.0 0.0035 0.0035 232.5 0.0034 0.0034 258.5 0.0032 0.0032 286.0 0.0031 0.0031 331.0 0.0028 0.0028 396.0 0.0026 0.0026 468.5 0.0023 0.0023 549.5 0.0021 0.0021 639.0 0.0019 0.0019 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0013 0.0013 1249.5 0.0012 0.0012 1412.0 0.0011 0.0011 1590.5 0.0010 0.0010 1787.0 0.0009 0.0009 1945.0 0.0009 0.0009 2119.0 0.0008 0.0008 2369.0 0.0008 0.0008 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -2.8 3.0 132 9.0 -0.0343 -0.0343 11.0 -0.0297 -0.0297 13.5 -0.0248 -0.0248 16.5 -0.0202 -0.0202 19.5 -0.0166 -0.0166 22.5 -0.0139 -0.0139 26.0 -0.0113 -0.0113 30.0 -0.0091 -0.0091 34.5 -0.0073 -0.0073 40.0 -0.0056 -0.0056 46.0 -0.0042 -0.0042 52.5 -0.0031 -0.0031 60.0 -0.0022 -0.0022 69.0 -0.0014 -0.0014 79.0 -0.0007 -0.0007 90.5 -0.0002 -0.0002 105.5 0.0003 0.0003 123.5 0.0006 0.0006 143.0 0.0008 0.0008 163.5 0.0010 0.0010 185.0 0.0011 0.0011 208.0 0.0011 0.0011 232.5 0.0012 0.0012 258.5 0.0012 0.0012 286.0 0.0012 0.0012 331.0 0.0011 0.0011 396.0 0.0011 0.0011 468.5 0.0010 0.0010 549.5 0.0010 0.0010 639.0 0.0009 0.0009 738.0 0.0008 0.0008 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1945.0 0.0005 0.0005 2119.0 0.0005 0.0005 2369.0 0.0004 0.0004 2643.5 0.0004 0.0004 2945.0 0.0004 0.0004 3276.5 0.0003 0.0003 -3.0 3.5 132 9.0 -0.0389 -0.0389 11.0 -0.0283 -0.0283 13.5 -0.0171 -0.0171 16.5 -0.0070 -0.0070 19.5 0.0002 0.0002 22.5 0.0055 0.0055 26.0 0.0099 0.0099 30.0 0.0134 0.0134 34.5 0.0161 0.0161 40.0 0.0181 0.0181 46.0 0.0193 0.0193 52.5 0.0200 0.0200 60.0 0.0203 0.0203 69.0 0.0202 0.0202 79.0 0.0198 0.0198 90.5 0.0192 0.0192 105.5 0.0182 0.0182 123.5 0.0172 0.0172 143.0 0.0161 0.0161 163.5 0.0151 0.0151 185.0 0.0141 0.0141 208.0 0.0132 0.0132 232.5 0.0124 0.0124 258.5 0.0117 0.0117 286.0 0.0110 0.0110 331.0 0.0101 0.0101 396.0 0.0090 0.0090 468.5 0.0081 0.0081 549.5 0.0073 0.0073 639.0 0.0066 0.0066 738.0 0.0059 0.0059 847.5 0.0054 0.0054 968.5 0.0049 0.0049 1102.0 0.0045 0.0045 1249.5 0.0041 0.0041 1412.0 0.0037 0.0037 1590.5 0.0034 0.0034 1787.0 0.0031 0.0031 1945.0 0.0029 0.0029 2119.0 0.0027 0.0027 2369.0 0.0025 0.0025 2643.5 0.0023 0.0023 2945.0 0.0021 0.0021 3276.5 0.0019 0.0019 -3.5 4.0 132 9.0 -0.0416 -0.0416 11.0 -0.0343 -0.0343 13.5 -0.0267 -0.0267 16.5 -0.0197 -0.0197 19.5 -0.0145 -0.0145 22.5 -0.0106 -0.0106 26.0 -0.0072 -0.0072 30.0 -0.0044 -0.0044 34.5 -0.0021 -0.0021 40.0 -0.0001 -0.0001 46.0 0.0014 0.0014 52.5 0.0024 0.0024 60.0 0.0032 0.0032 69.0 0.0038 0.0038 79.0 0.0042 0.0042 90.5 0.0045 0.0045 105.5 0.0046 0.0046 123.5 0.0046 0.0046 143.0 0.0046 0.0046 163.5 0.0044 0.0044 185.0 0.0043 0.0043 208.0 0.0041 0.0041 232.5 0.0040 0.0040 258.5 0.0038 0.0038 286.0 0.0036 0.0036 331.0 0.0034 0.0034 396.0 0.0031 0.0031 468.5 0.0028 0.0028 549.5 0.0026 0.0026 639.0 0.0024 0.0024 738.0 0.0022 0.0022 847.5 0.0020 0.0020 968.5 0.0018 0.0018 1102.0 0.0017 0.0017 1249.5 0.0015 0.0015 1412.0 0.0014 0.0014 1590.5 0.0013 0.0013 1787.0 0.0012 0.0012 1945.0 0.0011 0.0011 2119.0 0.0010 0.0010 2369.0 0.0010 0.0010 2643.5 0.0009 0.0009 2945.0 0.0008 0.0008 3276.5 0.0007 0.0007 -4.0 4.4 132 9.0 -0.0608 -0.0608 11.0 -0.0514 -0.0514 13.5 -0.0418 -0.0418 16.5 -0.0329 -0.0329 19.5 -0.0265 -0.0265 22.5 -0.0216 -0.0216 26.0 -0.0173 -0.0173 30.0 -0.0137 -0.0137 34.5 -0.0106 -0.0106 40.0 -0.0080 -0.0080 46.0 -0.0059 -0.0059 52.5 -0.0042 -0.0042 60.0 -0.0028 -0.0028 69.0 -0.0016 -0.0016 79.0 -0.0007 -0.0007 90.5 0.0000 0.0000 105.5 0.0006 0.0006 123.5 0.0011 0.0011 143.0 0.0014 0.0014 163.5 0.0016 0.0016 185.0 0.0017 0.0017 208.0 0.0018 0.0018 232.5 0.0018 0.0018 258.5 0.0018 0.0018 286.0 0.0018 0.0018 331.0 0.0018 0.0018 396.0 0.0017 0.0017 468.5 0.0016 0.0016 549.5 0.0015 0.0015 639.0 0.0014 0.0014 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0005 0.0005 -4.4 5.0 132 9.0 -0.0088 -0.0088 11.0 -0.0032 -0.0032 13.5 0.0020 0.0020 16.5 0.0061 0.0061 19.5 0.0086 0.0086 22.5 0.0103 0.0103 26.0 0.0115 0.0115 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0128 0.0128 46.0 0.0128 0.0128 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0099 0.0099 123.5 0.0092 0.0092 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0074 0.0074 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0057 0.0057 331.0 0.0051 0.0051 396.0 0.0046 0.0046 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0027 0.0027 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 -5.0 5.4 132 9.0 -0.0088 -0.0088 11.0 -0.0032 -0.0032 13.5 0.0020 0.0020 16.5 0.0061 0.0061 19.5 0.0086 0.0086 22.5 0.0103 0.0103 26.0 0.0115 0.0115 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0128 0.0128 46.0 0.0128 0.0128 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0099 0.0099 123.5 0.0092 0.0092 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0074 0.0074 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0057 0.0057 331.0 0.0051 0.0051 396.0 0.0046 0.0046 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0027 0.0027 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 -[PileUpBias] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --5.0 -4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.4 -4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.0 -3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.5 -3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.0 -2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.8 -2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.6 -2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.4 -2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.2 -2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.0 -1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.8 -1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.6 -1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.4 -1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.2 -1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.0 -0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.8 -0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.6 -0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.4 -0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.2 0.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.0 0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.2 0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.4 0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.6 0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.8 1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.0 1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.2 1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.4 1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.6 1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.8 2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.0 2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.2 2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.4 2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.6 2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.8 3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.0 3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.5 4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.0 4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.4 5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -5.0 5.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -[SubTotalPileUp] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0121 0.0121 11.0 0.0078 0.0078 13.5 0.0062 0.0062 16.5 0.0078 0.0078 19.5 0.0096 0.0096 22.5 0.0109 0.0109 26.0 0.0120 0.0120 30.0 0.0126 0.0126 34.5 0.0130 0.0130 40.0 0.0130 0.0130 46.0 0.0129 0.0129 52.5 0.0126 0.0126 60.0 0.0122 0.0122 69.0 0.0117 0.0117 79.0 0.0112 0.0112 90.5 0.0106 0.0106 105.5 0.0099 0.0099 123.5 0.0092 0.0092 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0074 0.0074 208.0 0.0069 0.0069 232.5 0.0065 0.0065 258.5 0.0061 0.0061 286.0 0.0057 0.0057 331.0 0.0052 0.0052 396.0 0.0046 0.0046 468.5 0.0041 0.0041 549.5 0.0037 0.0037 639.0 0.0033 0.0033 738.0 0.0030 0.0030 847.5 0.0027 0.0027 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0017 0.0017 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 --5.0 -4.4 132 9.0 0.0090 0.0090 11.0 0.0037 0.0037 13.5 0.0024 0.0024 16.5 0.0062 0.0062 19.5 0.0087 0.0087 22.5 0.0103 0.0103 26.0 0.0115 0.0115 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0129 0.0129 46.0 0.0128 0.0128 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0099 0.0099 123.5 0.0092 0.0092 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0074 0.0074 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0057 0.0057 331.0 0.0051 0.0051 396.0 0.0046 0.0046 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0027 0.0027 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 --4.4 -4.0 132 9.0 0.0615 0.0615 11.0 0.0520 0.0520 13.5 0.0422 0.0422 16.5 0.0333 0.0333 19.5 0.0268 0.0268 22.5 0.0219 0.0219 26.0 0.0176 0.0176 30.0 0.0139 0.0139 34.5 0.0109 0.0109 40.0 0.0082 0.0082 46.0 0.0061 0.0061 52.5 0.0045 0.0045 60.0 0.0032 0.0032 69.0 0.0021 0.0021 79.0 0.0013 0.0013 90.5 0.0010 0.0010 105.5 0.0011 0.0011 123.5 0.0013 0.0013 143.0 0.0015 0.0015 163.5 0.0017 0.0017 185.0 0.0018 0.0018 208.0 0.0018 0.0018 232.5 0.0019 0.0019 258.5 0.0019 0.0019 286.0 0.0018 0.0018 331.0 0.0018 0.0018 396.0 0.0017 0.0017 468.5 0.0016 0.0016 549.5 0.0015 0.0015 639.0 0.0014 0.0014 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0005 0.0005 --4.0 -3.5 132 9.0 0.0539 0.0539 11.0 0.0446 0.0446 13.5 0.0353 0.0353 16.5 0.0271 0.0271 19.5 0.0213 0.0213 22.5 0.0171 0.0171 26.0 0.0136 0.0136 30.0 0.0108 0.0108 34.5 0.0088 0.0088 40.0 0.0074 0.0074 46.0 0.0065 0.0065 52.5 0.0061 0.0061 60.0 0.0059 0.0059 69.0 0.0057 0.0057 79.0 0.0057 0.0057 90.5 0.0056 0.0056 105.5 0.0054 0.0054 123.5 0.0052 0.0052 143.0 0.0050 0.0050 163.5 0.0048 0.0048 185.0 0.0046 0.0046 208.0 0.0044 0.0044 232.5 0.0042 0.0042 258.5 0.0040 0.0040 286.0 0.0038 0.0038 331.0 0.0035 0.0035 396.0 0.0032 0.0032 468.5 0.0029 0.0029 549.5 0.0027 0.0027 639.0 0.0024 0.0024 738.0 0.0022 0.0022 847.5 0.0020 0.0020 968.5 0.0018 0.0018 1102.0 0.0017 0.0017 1249.5 0.0015 0.0015 1412.0 0.0014 0.0014 1590.5 0.0013 0.0013 1787.0 0.0012 0.0012 1945.0 0.0011 0.0011 2119.0 0.0011 0.0011 2369.0 0.0010 0.0010 2643.5 0.0009 0.0009 2945.0 0.0008 0.0008 3276.5 0.0008 0.0008 --3.5 -3.0 132 9.0 0.0603 0.0603 11.0 0.0477 0.0477 13.5 0.0358 0.0358 16.5 0.0266 0.0266 19.5 0.0217 0.0217 22.5 0.0196 0.0196 26.0 0.0191 0.0191 30.0 0.0195 0.0195 34.5 0.0203 0.0203 40.0 0.0210 0.0210 46.0 0.0215 0.0215 52.5 0.0216 0.0216 60.0 0.0215 0.0215 69.0 0.0211 0.0211 79.0 0.0205 0.0205 90.5 0.0198 0.0198 105.5 0.0187 0.0187 123.5 0.0175 0.0175 143.0 0.0164 0.0164 163.5 0.0153 0.0153 185.0 0.0143 0.0143 208.0 0.0134 0.0134 232.5 0.0126 0.0126 258.5 0.0118 0.0118 286.0 0.0112 0.0112 331.0 0.0102 0.0102 396.0 0.0091 0.0091 468.5 0.0082 0.0082 549.5 0.0073 0.0073 639.0 0.0066 0.0066 738.0 0.0060 0.0060 847.5 0.0054 0.0054 968.5 0.0049 0.0049 1102.0 0.0045 0.0045 1249.5 0.0041 0.0041 1412.0 0.0037 0.0037 1590.5 0.0034 0.0034 1787.0 0.0031 0.0031 1945.0 0.0029 0.0029 2119.0 0.0027 0.0027 2369.0 0.0025 0.0025 2643.5 0.0023 0.0023 2945.0 0.0021 0.0021 3276.5 0.0019 0.0019 --3.0 -2.8 132 9.0 0.0353 0.0353 11.0 0.0305 0.0305 13.5 0.0255 0.0255 16.5 0.0207 0.0207 19.5 0.0171 0.0171 22.5 0.0143 0.0143 26.0 0.0117 0.0117 30.0 0.0095 0.0095 34.5 0.0076 0.0076 40.0 0.0058 0.0058 46.0 0.0045 0.0045 52.5 0.0034 0.0034 60.0 0.0025 0.0025 69.0 0.0017 0.0017 79.0 0.0012 0.0012 90.5 0.0008 0.0008 105.5 0.0007 0.0007 123.5 0.0009 0.0009 143.0 0.0010 0.0010 163.5 0.0011 0.0011 185.0 0.0012 0.0012 208.0 0.0012 0.0012 232.5 0.0012 0.0012 258.5 0.0012 0.0012 286.0 0.0012 0.0012 331.0 0.0012 0.0012 396.0 0.0011 0.0011 468.5 0.0010 0.0010 549.5 0.0010 0.0010 639.0 0.0009 0.0009 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1945.0 0.0005 0.0005 2119.0 0.0005 0.0005 2369.0 0.0004 0.0004 2643.5 0.0004 0.0004 2945.0 0.0004 0.0004 3276.5 0.0003 0.0003 --2.8 -2.6 132 9.0 0.0442 0.0442 11.0 0.0365 0.0365 13.5 0.0289 0.0289 16.5 0.0225 0.0225 19.5 0.0180 0.0180 22.5 0.0148 0.0148 26.0 0.0122 0.0122 30.0 0.0102 0.0102 34.5 0.0087 0.0087 40.0 0.0076 0.0076 46.0 0.0068 0.0068 52.5 0.0063 0.0063 60.0 0.0060 0.0060 69.0 0.0057 0.0057 79.0 0.0055 0.0055 90.5 0.0053 0.0053 105.5 0.0050 0.0050 123.5 0.0048 0.0048 143.0 0.0045 0.0045 163.5 0.0043 0.0043 185.0 0.0041 0.0041 208.0 0.0038 0.0038 232.5 0.0036 0.0036 258.5 0.0034 0.0034 286.0 0.0032 0.0032 331.0 0.0030 0.0030 396.0 0.0027 0.0027 468.5 0.0024 0.0024 549.5 0.0022 0.0022 639.0 0.0020 0.0020 738.0 0.0018 0.0018 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0014 0.0014 1249.5 0.0012 0.0012 1412.0 0.0011 0.0011 1590.5 0.0010 0.0010 1787.0 0.0010 0.0010 1945.0 0.0009 0.0009 2119.0 0.0008 0.0008 2369.0 0.0008 0.0008 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0006 0.0006 --2.6 -2.4 132 9.0 0.1276 0.1276 11.0 0.1070 0.1070 13.5 0.0848 0.0848 16.5 0.0651 0.0651 19.5 0.0512 0.0512 22.5 0.0410 0.0410 26.0 0.0325 0.0325 30.0 0.0255 0.0255 34.5 0.0201 0.0201 40.0 0.0158 0.0158 46.0 0.0129 0.0129 52.5 0.0112 0.0112 60.0 0.0102 0.0102 69.0 0.0097 0.0097 79.0 0.0096 0.0096 90.5 0.0096 0.0096 105.5 0.0096 0.0096 123.5 0.0096 0.0096 143.0 0.0094 0.0094 163.5 0.0092 0.0092 185.0 0.0089 0.0089 208.0 0.0085 0.0085 232.5 0.0082 0.0082 258.5 0.0079 0.0079 286.0 0.0075 0.0075 331.0 0.0070 0.0070 396.0 0.0064 0.0064 468.5 0.0058 0.0058 549.5 0.0053 0.0053 639.0 0.0049 0.0049 738.0 0.0045 0.0045 847.5 0.0041 0.0041 968.5 0.0038 0.0038 1102.0 0.0034 0.0034 1249.5 0.0032 0.0032 1412.0 0.0029 0.0029 1590.5 0.0027 0.0027 1787.0 0.0025 0.0025 1945.0 0.0023 0.0023 2119.0 0.0022 0.0022 2369.0 0.0020 0.0020 2643.5 0.0019 0.0019 2945.0 0.0017 0.0017 3276.5 0.0016 0.0016 --2.4 -2.2 132 9.0 0.1535 0.1535 11.0 0.1277 0.1277 13.5 0.1001 0.1001 16.5 0.0762 0.0762 19.5 0.0593 0.0593 22.5 0.0469 0.0469 26.0 0.0363 0.0363 30.0 0.0276 0.0276 34.5 0.0207 0.0207 40.0 0.0149 0.0149 46.0 0.0109 0.0109 52.5 0.0083 0.0083 60.0 0.0069 0.0069 69.0 0.0066 0.0066 79.0 0.0070 0.0070 90.5 0.0075 0.0075 105.5 0.0081 0.0081 123.5 0.0084 0.0084 143.0 0.0086 0.0086 163.5 0.0086 0.0086 185.0 0.0085 0.0085 208.0 0.0083 0.0083 232.5 0.0081 0.0081 258.5 0.0078 0.0078 286.0 0.0076 0.0076 331.0 0.0071 0.0071 396.0 0.0066 0.0066 468.5 0.0060 0.0060 549.5 0.0055 0.0055 639.0 0.0051 0.0051 738.0 0.0046 0.0046 847.5 0.0043 0.0043 968.5 0.0039 0.0039 1102.0 0.0036 0.0036 1249.5 0.0033 0.0033 1412.0 0.0031 0.0031 1590.5 0.0028 0.0028 1787.0 0.0026 0.0026 1945.0 0.0025 0.0025 2119.0 0.0023 0.0023 2369.0 0.0021 0.0021 2643.5 0.0020 0.0020 2945.0 0.0018 0.0018 3276.5 0.0017 0.0017 --2.2 -2.0 132 9.0 0.1741 0.1741 11.0 0.1475 0.1475 13.5 0.1196 0.1196 16.5 0.0949 0.0949 19.5 0.0768 0.0768 22.5 0.0632 0.0632 26.0 0.0511 0.0511 30.0 0.0409 0.0409 34.5 0.0324 0.0324 40.0 0.0248 0.0248 46.0 0.0188 0.0188 52.5 0.0142 0.0142 60.0 0.0103 0.0103 69.0 0.0071 0.0071 79.0 0.0048 0.0048 90.5 0.0035 0.0035 105.5 0.0032 0.0032 123.5 0.0037 0.0037 143.0 0.0042 0.0042 163.5 0.0046 0.0046 185.0 0.0049 0.0049 208.0 0.0051 0.0051 232.5 0.0052 0.0052 258.5 0.0052 0.0052 286.0 0.0052 0.0052 331.0 0.0050 0.0050 396.0 0.0048 0.0048 468.5 0.0045 0.0045 549.5 0.0042 0.0042 639.0 0.0039 0.0039 738.0 0.0037 0.0037 847.5 0.0034 0.0034 968.5 0.0032 0.0032 1102.0 0.0029 0.0029 1249.5 0.0027 0.0027 1412.0 0.0025 0.0025 1590.5 0.0023 0.0023 1787.0 0.0022 0.0022 1945.0 0.0021 0.0021 2119.0 0.0019 0.0019 2369.0 0.0018 0.0018 2643.5 0.0017 0.0017 2945.0 0.0015 0.0015 3276.5 0.0014 0.0014 --2.0 -1.8 132 9.0 0.1300 0.1300 11.0 0.1123 0.1123 13.5 0.0937 0.0937 16.5 0.0770 0.0770 19.5 0.0645 0.0645 22.5 0.0548 0.0548 26.0 0.0460 0.0460 30.0 0.0383 0.0383 34.5 0.0317 0.0317 40.0 0.0257 0.0257 46.0 0.0208 0.0208 52.5 0.0168 0.0168 60.0 0.0134 0.0134 69.0 0.0103 0.0103 79.0 0.0079 0.0079 90.5 0.0058 0.0058 105.5 0.0040 0.0040 123.5 0.0025 0.0025 143.0 0.0014 0.0014 163.5 0.0008 0.0008 185.0 0.0007 0.0007 208.0 0.0009 0.0009 232.5 0.0012 0.0012 258.5 0.0014 0.0014 286.0 0.0015 0.0015 331.0 0.0017 0.0017 396.0 0.0018 0.0018 468.5 0.0018 0.0018 549.5 0.0018 0.0018 639.0 0.0017 0.0017 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0014 0.0014 1249.5 0.0013 0.0013 1412.0 0.0013 0.0013 1590.5 0.0012 0.0012 1787.0 0.0011 0.0011 1945.0 0.0011 0.0011 2119.0 0.0010 0.0010 2369.0 0.0009 0.0009 2643.5 0.0009 0.0009 2945.0 0.0008 0.0008 3276.5 0.0008 0.0008 --1.8 -1.6 132 9.0 0.1077 0.1077 11.0 0.0942 0.0942 13.5 0.0798 0.0798 16.5 0.0667 0.0667 19.5 0.0568 0.0568 22.5 0.0490 0.0490 26.0 0.0419 0.0419 30.0 0.0355 0.0355 34.5 0.0300 0.0300 40.0 0.0249 0.0249 46.0 0.0208 0.0208 52.5 0.0173 0.0173 60.0 0.0143 0.0143 69.0 0.0116 0.0116 79.0 0.0093 0.0093 90.5 0.0074 0.0074 105.5 0.0056 0.0056 123.5 0.0041 0.0041 143.0 0.0030 0.0030 163.5 0.0022 0.0022 185.0 0.0016 0.0016 208.0 0.0011 0.0011 232.5 0.0007 0.0007 258.5 0.0004 0.0004 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0005 0.0005 468.5 0.0006 0.0006 549.5 0.0007 0.0007 639.0 0.0007 0.0007 738.0 0.0008 0.0008 847.5 0.0008 0.0008 968.5 0.0008 0.0008 1102.0 0.0007 0.0007 1249.5 0.0007 0.0007 1412.0 0.0007 0.0007 1590.5 0.0006 0.0006 1787.0 0.0006 0.0006 1945.0 0.0006 0.0006 2119.0 0.0006 0.0006 2369.0 0.0005 0.0005 2643.5 0.0005 0.0005 2945.0 0.0005 0.0005 3276.5 0.0004 0.0004 --1.6 -1.4 132 9.0 0.1050 0.1050 11.0 0.0914 0.0914 13.5 0.0769 0.0769 16.5 0.0637 0.0637 19.5 0.0537 0.0537 22.5 0.0459 0.0459 26.0 0.0389 0.0389 30.0 0.0326 0.0326 34.5 0.0273 0.0273 40.0 0.0223 0.0223 46.0 0.0182 0.0182 52.5 0.0149 0.0149 60.0 0.0120 0.0120 69.0 0.0094 0.0094 79.0 0.0073 0.0073 90.5 0.0056 0.0056 105.5 0.0039 0.0039 123.5 0.0026 0.0026 143.0 0.0016 0.0016 163.5 0.0009 0.0009 185.0 0.0004 0.0004 208.0 0.0004 0.0004 232.5 0.0006 0.0006 258.5 0.0008 0.0008 286.0 0.0009 0.0009 331.0 0.0011 0.0011 396.0 0.0012 0.0012 468.5 0.0013 0.0013 549.5 0.0013 0.0013 639.0 0.0013 0.0013 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0012 0.0012 1102.0 0.0011 0.0011 1249.5 0.0010 0.0010 1412.0 0.0010 0.0010 1590.5 0.0009 0.0009 1787.0 0.0009 0.0009 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 --1.4 -1.2 132 9.0 0.1043 0.1043 11.0 0.0886 0.0886 13.5 0.0723 0.0723 16.5 0.0576 0.0576 19.5 0.0467 0.0467 22.5 0.0383 0.0383 26.0 0.0308 0.0308 30.0 0.0242 0.0242 34.5 0.0186 0.0186 40.0 0.0136 0.0136 46.0 0.0096 0.0096 52.5 0.0065 0.0065 60.0 0.0038 0.0038 69.0 0.0016 0.0016 79.0 0.0009 0.0009 90.5 0.0019 0.0019 105.5 0.0031 0.0031 123.5 0.0040 0.0040 143.0 0.0045 0.0045 163.5 0.0048 0.0048 185.0 0.0050 0.0050 208.0 0.0051 0.0051 232.5 0.0051 0.0051 258.5 0.0050 0.0050 286.0 0.0050 0.0050 331.0 0.0048 0.0048 396.0 0.0045 0.0045 468.5 0.0042 0.0042 549.5 0.0040 0.0040 639.0 0.0037 0.0037 738.0 0.0034 0.0034 847.5 0.0031 0.0031 968.5 0.0029 0.0029 1102.0 0.0027 0.0027 1249.5 0.0025 0.0025 1412.0 0.0023 0.0023 1590.5 0.0021 0.0021 1787.0 0.0020 0.0020 1945.0 0.0019 0.0019 2119.0 0.0018 0.0018 2369.0 0.0016 0.0016 2643.5 0.0015 0.0015 2945.0 0.0014 0.0014 3276.5 0.0013 0.0013 --1.2 -1.0 132 9.0 0.1019 0.1019 11.0 0.0874 0.0874 13.5 0.0720 0.0720 16.5 0.0581 0.0581 19.5 0.0477 0.0477 22.5 0.0397 0.0397 26.0 0.0325 0.0325 30.0 0.0262 0.0262 34.5 0.0208 0.0208 40.0 0.0159 0.0159 46.0 0.0119 0.0119 52.5 0.0088 0.0088 60.0 0.0061 0.0061 69.0 0.0038 0.0038 79.0 0.0020 0.0020 90.5 0.0008 0.0008 105.5 0.0012 0.0012 123.5 0.0021 0.0021 143.0 0.0027 0.0027 163.5 0.0032 0.0032 185.0 0.0034 0.0034 208.0 0.0036 0.0036 232.5 0.0037 0.0037 258.5 0.0038 0.0038 286.0 0.0038 0.0038 331.0 0.0037 0.0037 396.0 0.0036 0.0036 468.5 0.0034 0.0034 549.5 0.0032 0.0032 639.0 0.0030 0.0030 738.0 0.0028 0.0028 847.5 0.0026 0.0026 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0021 0.0021 1412.0 0.0019 0.0019 1590.5 0.0018 0.0018 1787.0 0.0017 0.0017 1945.0 0.0016 0.0016 2119.0 0.0015 0.0015 2369.0 0.0014 0.0014 2643.5 0.0013 0.0013 2945.0 0.0012 0.0012 3276.5 0.0011 0.0011 --1.0 -0.8 132 9.0 0.0916 0.0916 11.0 0.0794 0.0794 13.5 0.0661 0.0661 16.5 0.0542 0.0542 19.5 0.0452 0.0452 22.5 0.0383 0.0383 26.0 0.0320 0.0320 30.0 0.0265 0.0265 34.5 0.0217 0.0217 40.0 0.0174 0.0174 46.0 0.0139 0.0139 52.5 0.0110 0.0110 60.0 0.0085 0.0085 69.0 0.0064 0.0064 79.0 0.0046 0.0046 90.5 0.0032 0.0032 105.5 0.0019 0.0019 123.5 0.0009 0.0009 143.0 0.0004 0.0004 163.5 0.0007 0.0007 185.0 0.0011 0.0011 208.0 0.0013 0.0013 232.5 0.0015 0.0015 258.5 0.0017 0.0017 286.0 0.0018 0.0018 331.0 0.0019 0.0019 396.0 0.0019 0.0019 468.5 0.0019 0.0019 549.5 0.0018 0.0018 639.0 0.0017 0.0017 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0014 0.0014 1249.5 0.0013 0.0013 1412.0 0.0012 0.0012 1590.5 0.0011 0.0011 1787.0 0.0011 0.0011 1945.0 0.0010 0.0010 2119.0 0.0010 0.0010 2369.0 0.0009 0.0009 2643.5 0.0008 0.0008 2945.0 0.0008 0.0008 3276.5 0.0007 0.0007 --0.8 -0.6 132 9.0 0.0878 0.0878 11.0 0.0766 0.0766 13.5 0.0643 0.0643 16.5 0.0532 0.0532 19.5 0.0448 0.0448 22.5 0.0383 0.0383 26.0 0.0324 0.0324 30.0 0.0272 0.0272 34.5 0.0227 0.0227 40.0 0.0186 0.0186 46.0 0.0152 0.0152 52.5 0.0124 0.0124 60.0 0.0101 0.0101 69.0 0.0079 0.0079 79.0 0.0062 0.0062 90.5 0.0047 0.0047 105.5 0.0034 0.0034 123.5 0.0022 0.0022 143.0 0.0014 0.0014 163.5 0.0008 0.0008 185.0 0.0004 0.0004 208.0 0.0003 0.0003 232.5 0.0005 0.0005 258.5 0.0006 0.0006 286.0 0.0007 0.0007 331.0 0.0009 0.0009 396.0 0.0010 0.0010 468.5 0.0011 0.0011 549.5 0.0011 0.0011 639.0 0.0011 0.0011 738.0 0.0011 0.0011 847.5 0.0010 0.0010 968.5 0.0010 0.0010 1102.0 0.0009 0.0009 1249.5 0.0009 0.0009 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0005 0.0005 --0.6 -0.4 132 9.0 0.0874 0.0874 11.0 0.0762 0.0762 13.5 0.0638 0.0638 16.5 0.0527 0.0527 19.5 0.0443 0.0443 22.5 0.0378 0.0378 26.0 0.0320 0.0320 30.0 0.0269 0.0269 34.5 0.0224 0.0224 40.0 0.0184 0.0184 46.0 0.0150 0.0150 52.5 0.0123 0.0123 60.0 0.0099 0.0099 69.0 0.0078 0.0078 79.0 0.0061 0.0061 90.5 0.0047 0.0047 105.5 0.0033 0.0033 123.5 0.0022 0.0022 143.0 0.0014 0.0014 163.5 0.0008 0.0008 185.0 0.0004 0.0004 208.0 0.0003 0.0003 232.5 0.0004 0.0004 258.5 0.0006 0.0006 286.0 0.0007 0.0007 331.0 0.0009 0.0009 396.0 0.0010 0.0010 468.5 0.0011 0.0011 549.5 0.0011 0.0011 639.0 0.0011 0.0011 738.0 0.0011 0.0011 847.5 0.0010 0.0010 968.5 0.0010 0.0010 1102.0 0.0009 0.0009 1249.5 0.0009 0.0009 1412.0 0.0008 0.0008 1590.5 0.0008 0.0008 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0005 0.0005 --0.4 -0.2 132 9.0 0.0869 0.0869 11.0 0.0757 0.0757 13.5 0.0632 0.0632 16.5 0.0520 0.0520 19.5 0.0436 0.0436 22.5 0.0372 0.0372 26.0 0.0314 0.0314 30.0 0.0262 0.0262 34.5 0.0218 0.0218 40.0 0.0178 0.0178 46.0 0.0145 0.0145 52.5 0.0118 0.0118 60.0 0.0095 0.0095 69.0 0.0074 0.0074 79.0 0.0057 0.0057 90.5 0.0043 0.0043 105.5 0.0030 0.0030 123.5 0.0019 0.0019 143.0 0.0011 0.0011 163.5 0.0005 0.0005 185.0 0.0002 0.0002 208.0 0.0004 0.0004 232.5 0.0006 0.0006 258.5 0.0008 0.0008 286.0 0.0009 0.0009 331.0 0.0010 0.0010 396.0 0.0012 0.0012 468.5 0.0012 0.0012 549.5 0.0012 0.0012 639.0 0.0012 0.0012 738.0 0.0012 0.0012 847.5 0.0011 0.0011 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0008 0.0008 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 --0.2 0.0 132 9.0 0.0831 0.0831 11.0 0.0721 0.0721 13.5 0.0599 0.0599 16.5 0.0491 0.0491 19.5 0.0410 0.0410 22.5 0.0348 0.0348 26.0 0.0292 0.0292 30.0 0.0243 0.0243 34.5 0.0201 0.0201 40.0 0.0163 0.0163 46.0 0.0131 0.0131 52.5 0.0106 0.0106 60.0 0.0084 0.0084 69.0 0.0064 0.0064 79.0 0.0048 0.0048 90.5 0.0035 0.0035 105.5 0.0023 0.0023 123.5 0.0013 0.0013 143.0 0.0006 0.0006 163.5 0.0002 0.0002 185.0 0.0004 0.0004 208.0 0.0007 0.0007 232.5 0.0009 0.0009 258.5 0.0010 0.0010 286.0 0.0012 0.0012 331.0 0.0013 0.0013 396.0 0.0013 0.0013 468.5 0.0014 0.0014 549.5 0.0013 0.0013 639.0 0.0013 0.0013 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0010 0.0010 1412.0 0.0010 0.0010 1590.5 0.0009 0.0009 1787.0 0.0008 0.0008 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -0.0 0.2 132 9.0 0.0831 0.0831 11.0 0.0721 0.0721 13.5 0.0599 0.0599 16.5 0.0491 0.0491 19.5 0.0410 0.0410 22.5 0.0348 0.0348 26.0 0.0292 0.0292 30.0 0.0243 0.0243 34.5 0.0201 0.0201 40.0 0.0163 0.0163 46.0 0.0131 0.0131 52.5 0.0106 0.0106 60.0 0.0084 0.0084 69.0 0.0064 0.0064 79.0 0.0048 0.0048 90.5 0.0035 0.0035 105.5 0.0023 0.0023 123.5 0.0013 0.0013 143.0 0.0006 0.0006 163.5 0.0002 0.0002 185.0 0.0004 0.0004 208.0 0.0007 0.0007 232.5 0.0009 0.0009 258.5 0.0010 0.0010 286.0 0.0012 0.0012 331.0 0.0013 0.0013 396.0 0.0013 0.0013 468.5 0.0014 0.0014 549.5 0.0013 0.0013 639.0 0.0013 0.0013 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0010 0.0010 1412.0 0.0010 0.0010 1590.5 0.0009 0.0009 1787.0 0.0008 0.0008 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -0.2 0.4 132 9.0 0.0869 0.0869 11.0 0.0757 0.0757 13.5 0.0632 0.0632 16.5 0.0520 0.0520 19.5 0.0436 0.0436 22.5 0.0372 0.0372 26.0 0.0314 0.0314 30.0 0.0262 0.0262 34.5 0.0218 0.0218 40.0 0.0178 0.0178 46.0 0.0145 0.0145 52.5 0.0118 0.0118 60.0 0.0095 0.0095 69.0 0.0074 0.0074 79.0 0.0057 0.0057 90.5 0.0043 0.0043 105.5 0.0030 0.0030 123.5 0.0019 0.0019 143.0 0.0011 0.0011 163.5 0.0005 0.0005 185.0 0.0002 0.0002 208.0 0.0004 0.0004 232.5 0.0006 0.0006 258.5 0.0008 0.0008 286.0 0.0009 0.0009 331.0 0.0010 0.0010 396.0 0.0012 0.0012 468.5 0.0012 0.0012 549.5 0.0012 0.0012 639.0 0.0012 0.0012 738.0 0.0012 0.0012 847.5 0.0011 0.0011 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0008 0.0008 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -0.4 0.6 132 9.0 0.0874 0.0874 11.0 0.0762 0.0762 13.5 0.0638 0.0638 16.5 0.0527 0.0527 19.5 0.0443 0.0443 22.5 0.0378 0.0378 26.0 0.0320 0.0320 30.0 0.0269 0.0269 34.5 0.0224 0.0224 40.0 0.0184 0.0184 46.0 0.0150 0.0150 52.5 0.0123 0.0123 60.0 0.0099 0.0099 69.0 0.0078 0.0078 79.0 0.0061 0.0061 90.5 0.0047 0.0047 105.5 0.0033 0.0033 123.5 0.0022 0.0022 143.0 0.0014 0.0014 163.5 0.0008 0.0008 185.0 0.0004 0.0004 208.0 0.0003 0.0003 232.5 0.0004 0.0004 258.5 0.0006 0.0006 286.0 0.0007 0.0007 331.0 0.0009 0.0009 396.0 0.0010 0.0010 468.5 0.0011 0.0011 549.5 0.0011 0.0011 639.0 0.0011 0.0011 738.0 0.0011 0.0011 847.5 0.0010 0.0010 968.5 0.0010 0.0010 1102.0 0.0009 0.0009 1249.5 0.0009 0.0009 1412.0 0.0008 0.0008 1590.5 0.0008 0.0008 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0005 0.0005 -0.6 0.8 132 9.0 0.0878 0.0878 11.0 0.0766 0.0766 13.5 0.0643 0.0643 16.5 0.0532 0.0532 19.5 0.0448 0.0448 22.5 0.0383 0.0383 26.0 0.0324 0.0324 30.0 0.0272 0.0272 34.5 0.0227 0.0227 40.0 0.0186 0.0186 46.0 0.0152 0.0152 52.5 0.0124 0.0124 60.0 0.0101 0.0101 69.0 0.0079 0.0079 79.0 0.0062 0.0062 90.5 0.0047 0.0047 105.5 0.0034 0.0034 123.5 0.0022 0.0022 143.0 0.0014 0.0014 163.5 0.0008 0.0008 185.0 0.0004 0.0004 208.0 0.0003 0.0003 232.5 0.0005 0.0005 258.5 0.0006 0.0006 286.0 0.0007 0.0007 331.0 0.0009 0.0009 396.0 0.0010 0.0010 468.5 0.0011 0.0011 549.5 0.0011 0.0011 639.0 0.0011 0.0011 738.0 0.0011 0.0011 847.5 0.0010 0.0010 968.5 0.0010 0.0010 1102.0 0.0009 0.0009 1249.5 0.0009 0.0009 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0005 0.0005 -0.8 1.0 132 9.0 0.0916 0.0916 11.0 0.0794 0.0794 13.5 0.0661 0.0661 16.5 0.0542 0.0542 19.5 0.0452 0.0452 22.5 0.0383 0.0383 26.0 0.0320 0.0320 30.0 0.0265 0.0265 34.5 0.0217 0.0217 40.0 0.0174 0.0174 46.0 0.0139 0.0139 52.5 0.0110 0.0110 60.0 0.0085 0.0085 69.0 0.0064 0.0064 79.0 0.0046 0.0046 90.5 0.0032 0.0032 105.5 0.0019 0.0019 123.5 0.0009 0.0009 143.0 0.0004 0.0004 163.5 0.0007 0.0007 185.0 0.0011 0.0011 208.0 0.0013 0.0013 232.5 0.0015 0.0015 258.5 0.0017 0.0017 286.0 0.0018 0.0018 331.0 0.0019 0.0019 396.0 0.0019 0.0019 468.5 0.0019 0.0019 549.5 0.0018 0.0018 639.0 0.0017 0.0017 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0014 0.0014 1249.5 0.0013 0.0013 1412.0 0.0012 0.0012 1590.5 0.0011 0.0011 1787.0 0.0011 0.0011 1945.0 0.0010 0.0010 2119.0 0.0010 0.0010 2369.0 0.0009 0.0009 2643.5 0.0008 0.0008 2945.0 0.0008 0.0008 3276.5 0.0007 0.0007 -1.0 1.2 132 9.0 0.1019 0.1019 11.0 0.0874 0.0874 13.5 0.0720 0.0720 16.5 0.0581 0.0581 19.5 0.0477 0.0477 22.5 0.0397 0.0397 26.0 0.0325 0.0325 30.0 0.0262 0.0262 34.5 0.0208 0.0208 40.0 0.0159 0.0159 46.0 0.0119 0.0119 52.5 0.0088 0.0088 60.0 0.0061 0.0061 69.0 0.0038 0.0038 79.0 0.0020 0.0020 90.5 0.0008 0.0008 105.5 0.0012 0.0012 123.5 0.0021 0.0021 143.0 0.0027 0.0027 163.5 0.0032 0.0032 185.0 0.0034 0.0034 208.0 0.0036 0.0036 232.5 0.0037 0.0037 258.5 0.0038 0.0038 286.0 0.0038 0.0038 331.0 0.0037 0.0037 396.0 0.0036 0.0036 468.5 0.0034 0.0034 549.5 0.0032 0.0032 639.0 0.0030 0.0030 738.0 0.0028 0.0028 847.5 0.0026 0.0026 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0021 0.0021 1412.0 0.0019 0.0019 1590.5 0.0018 0.0018 1787.0 0.0017 0.0017 1945.0 0.0016 0.0016 2119.0 0.0015 0.0015 2369.0 0.0014 0.0014 2643.5 0.0013 0.0013 2945.0 0.0012 0.0012 3276.5 0.0011 0.0011 -1.2 1.4 132 9.0 0.1043 0.1043 11.0 0.0886 0.0886 13.5 0.0723 0.0723 16.5 0.0576 0.0576 19.5 0.0467 0.0467 22.5 0.0383 0.0383 26.0 0.0308 0.0308 30.0 0.0242 0.0242 34.5 0.0186 0.0186 40.0 0.0136 0.0136 46.0 0.0096 0.0096 52.5 0.0065 0.0065 60.0 0.0038 0.0038 69.0 0.0016 0.0016 79.0 0.0009 0.0009 90.5 0.0019 0.0019 105.5 0.0031 0.0031 123.5 0.0040 0.0040 143.0 0.0045 0.0045 163.5 0.0048 0.0048 185.0 0.0050 0.0050 208.0 0.0051 0.0051 232.5 0.0051 0.0051 258.5 0.0050 0.0050 286.0 0.0050 0.0050 331.0 0.0048 0.0048 396.0 0.0045 0.0045 468.5 0.0042 0.0042 549.5 0.0040 0.0040 639.0 0.0037 0.0037 738.0 0.0034 0.0034 847.5 0.0031 0.0031 968.5 0.0029 0.0029 1102.0 0.0027 0.0027 1249.5 0.0025 0.0025 1412.0 0.0023 0.0023 1590.5 0.0021 0.0021 1787.0 0.0020 0.0020 1945.0 0.0019 0.0019 2119.0 0.0018 0.0018 2369.0 0.0016 0.0016 2643.5 0.0015 0.0015 2945.0 0.0014 0.0014 3276.5 0.0013 0.0013 -1.4 1.6 132 9.0 0.1050 0.1050 11.0 0.0914 0.0914 13.5 0.0769 0.0769 16.5 0.0637 0.0637 19.5 0.0537 0.0537 22.5 0.0459 0.0459 26.0 0.0389 0.0389 30.0 0.0326 0.0326 34.5 0.0273 0.0273 40.0 0.0223 0.0223 46.0 0.0182 0.0182 52.5 0.0149 0.0149 60.0 0.0120 0.0120 69.0 0.0094 0.0094 79.0 0.0073 0.0073 90.5 0.0056 0.0056 105.5 0.0039 0.0039 123.5 0.0026 0.0026 143.0 0.0016 0.0016 163.5 0.0009 0.0009 185.0 0.0004 0.0004 208.0 0.0004 0.0004 232.5 0.0006 0.0006 258.5 0.0008 0.0008 286.0 0.0009 0.0009 331.0 0.0011 0.0011 396.0 0.0012 0.0012 468.5 0.0013 0.0013 549.5 0.0013 0.0013 639.0 0.0013 0.0013 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0012 0.0012 1102.0 0.0011 0.0011 1249.5 0.0010 0.0010 1412.0 0.0010 0.0010 1590.5 0.0009 0.0009 1787.0 0.0009 0.0009 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -1.6 1.8 132 9.0 0.1077 0.1077 11.0 0.0942 0.0942 13.5 0.0798 0.0798 16.5 0.0667 0.0667 19.5 0.0568 0.0568 22.5 0.0490 0.0490 26.0 0.0419 0.0419 30.0 0.0355 0.0355 34.5 0.0300 0.0300 40.0 0.0249 0.0249 46.0 0.0208 0.0208 52.5 0.0173 0.0173 60.0 0.0143 0.0143 69.0 0.0116 0.0116 79.0 0.0093 0.0093 90.5 0.0074 0.0074 105.5 0.0056 0.0056 123.5 0.0041 0.0041 143.0 0.0030 0.0030 163.5 0.0022 0.0022 185.0 0.0016 0.0016 208.0 0.0011 0.0011 232.5 0.0007 0.0007 258.5 0.0004 0.0004 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0005 0.0005 468.5 0.0006 0.0006 549.5 0.0007 0.0007 639.0 0.0007 0.0007 738.0 0.0008 0.0008 847.5 0.0008 0.0008 968.5 0.0008 0.0008 1102.0 0.0007 0.0007 1249.5 0.0007 0.0007 1412.0 0.0007 0.0007 1590.5 0.0006 0.0006 1787.0 0.0006 0.0006 1945.0 0.0006 0.0006 2119.0 0.0006 0.0006 2369.0 0.0005 0.0005 2643.5 0.0005 0.0005 2945.0 0.0005 0.0005 3276.5 0.0004 0.0004 -1.8 2.0 132 9.0 0.1300 0.1300 11.0 0.1123 0.1123 13.5 0.0937 0.0937 16.5 0.0770 0.0770 19.5 0.0645 0.0645 22.5 0.0548 0.0548 26.0 0.0460 0.0460 30.0 0.0383 0.0383 34.5 0.0317 0.0317 40.0 0.0257 0.0257 46.0 0.0208 0.0208 52.5 0.0168 0.0168 60.0 0.0134 0.0134 69.0 0.0103 0.0103 79.0 0.0079 0.0079 90.5 0.0058 0.0058 105.5 0.0040 0.0040 123.5 0.0025 0.0025 143.0 0.0014 0.0014 163.5 0.0008 0.0008 185.0 0.0007 0.0007 208.0 0.0009 0.0009 232.5 0.0012 0.0012 258.5 0.0014 0.0014 286.0 0.0015 0.0015 331.0 0.0017 0.0017 396.0 0.0018 0.0018 468.5 0.0018 0.0018 549.5 0.0018 0.0018 639.0 0.0017 0.0017 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0014 0.0014 1249.5 0.0013 0.0013 1412.0 0.0013 0.0013 1590.5 0.0012 0.0012 1787.0 0.0011 0.0011 1945.0 0.0011 0.0011 2119.0 0.0010 0.0010 2369.0 0.0009 0.0009 2643.5 0.0009 0.0009 2945.0 0.0008 0.0008 3276.5 0.0008 0.0008 -2.0 2.2 132 9.0 0.1741 0.1741 11.0 0.1475 0.1475 13.5 0.1196 0.1196 16.5 0.0949 0.0949 19.5 0.0768 0.0768 22.5 0.0632 0.0632 26.0 0.0511 0.0511 30.0 0.0409 0.0409 34.5 0.0324 0.0324 40.0 0.0248 0.0248 46.0 0.0188 0.0188 52.5 0.0142 0.0142 60.0 0.0103 0.0103 69.0 0.0071 0.0071 79.0 0.0048 0.0048 90.5 0.0035 0.0035 105.5 0.0032 0.0032 123.5 0.0037 0.0037 143.0 0.0042 0.0042 163.5 0.0046 0.0046 185.0 0.0049 0.0049 208.0 0.0051 0.0051 232.5 0.0052 0.0052 258.5 0.0052 0.0052 286.0 0.0052 0.0052 331.0 0.0050 0.0050 396.0 0.0048 0.0048 468.5 0.0045 0.0045 549.5 0.0042 0.0042 639.0 0.0039 0.0039 738.0 0.0037 0.0037 847.5 0.0034 0.0034 968.5 0.0032 0.0032 1102.0 0.0029 0.0029 1249.5 0.0027 0.0027 1412.0 0.0025 0.0025 1590.5 0.0023 0.0023 1787.0 0.0022 0.0022 1945.0 0.0021 0.0021 2119.0 0.0019 0.0019 2369.0 0.0018 0.0018 2643.5 0.0017 0.0017 2945.0 0.0015 0.0015 3276.5 0.0014 0.0014 -2.2 2.4 132 9.0 0.1535 0.1535 11.0 0.1277 0.1277 13.5 0.1001 0.1001 16.5 0.0762 0.0762 19.5 0.0593 0.0593 22.5 0.0469 0.0469 26.0 0.0363 0.0363 30.0 0.0276 0.0276 34.5 0.0207 0.0207 40.0 0.0149 0.0149 46.0 0.0109 0.0109 52.5 0.0083 0.0083 60.0 0.0069 0.0069 69.0 0.0066 0.0066 79.0 0.0070 0.0070 90.5 0.0075 0.0075 105.5 0.0081 0.0081 123.5 0.0084 0.0084 143.0 0.0086 0.0086 163.5 0.0086 0.0086 185.0 0.0085 0.0085 208.0 0.0083 0.0083 232.5 0.0081 0.0081 258.5 0.0078 0.0078 286.0 0.0076 0.0076 331.0 0.0071 0.0071 396.0 0.0066 0.0066 468.5 0.0060 0.0060 549.5 0.0055 0.0055 639.0 0.0051 0.0051 738.0 0.0046 0.0046 847.5 0.0043 0.0043 968.5 0.0039 0.0039 1102.0 0.0036 0.0036 1249.5 0.0033 0.0033 1412.0 0.0031 0.0031 1590.5 0.0028 0.0028 1787.0 0.0026 0.0026 1945.0 0.0025 0.0025 2119.0 0.0023 0.0023 2369.0 0.0021 0.0021 2643.5 0.0020 0.0020 2945.0 0.0018 0.0018 3276.5 0.0017 0.0017 -2.4 2.6 132 9.0 0.1276 0.1276 11.0 0.1070 0.1070 13.5 0.0848 0.0848 16.5 0.0651 0.0651 19.5 0.0512 0.0512 22.5 0.0410 0.0410 26.0 0.0325 0.0325 30.0 0.0255 0.0255 34.5 0.0201 0.0201 40.0 0.0158 0.0158 46.0 0.0129 0.0129 52.5 0.0112 0.0112 60.0 0.0102 0.0102 69.0 0.0097 0.0097 79.0 0.0096 0.0096 90.5 0.0096 0.0096 105.5 0.0096 0.0096 123.5 0.0096 0.0096 143.0 0.0094 0.0094 163.5 0.0092 0.0092 185.0 0.0089 0.0089 208.0 0.0085 0.0085 232.5 0.0082 0.0082 258.5 0.0079 0.0079 286.0 0.0075 0.0075 331.0 0.0070 0.0070 396.0 0.0064 0.0064 468.5 0.0058 0.0058 549.5 0.0053 0.0053 639.0 0.0049 0.0049 738.0 0.0045 0.0045 847.5 0.0041 0.0041 968.5 0.0038 0.0038 1102.0 0.0034 0.0034 1249.5 0.0032 0.0032 1412.0 0.0029 0.0029 1590.5 0.0027 0.0027 1787.0 0.0025 0.0025 1945.0 0.0023 0.0023 2119.0 0.0022 0.0022 2369.0 0.0020 0.0020 2643.5 0.0019 0.0019 2945.0 0.0017 0.0017 3276.5 0.0016 0.0016 -2.6 2.8 132 9.0 0.0442 0.0442 11.0 0.0365 0.0365 13.5 0.0289 0.0289 16.5 0.0225 0.0225 19.5 0.0180 0.0180 22.5 0.0148 0.0148 26.0 0.0122 0.0122 30.0 0.0102 0.0102 34.5 0.0087 0.0087 40.0 0.0076 0.0076 46.0 0.0068 0.0068 52.5 0.0063 0.0063 60.0 0.0060 0.0060 69.0 0.0057 0.0057 79.0 0.0055 0.0055 90.5 0.0053 0.0053 105.5 0.0050 0.0050 123.5 0.0048 0.0048 143.0 0.0045 0.0045 163.5 0.0043 0.0043 185.0 0.0041 0.0041 208.0 0.0038 0.0038 232.5 0.0036 0.0036 258.5 0.0034 0.0034 286.0 0.0032 0.0032 331.0 0.0030 0.0030 396.0 0.0027 0.0027 468.5 0.0024 0.0024 549.5 0.0022 0.0022 639.0 0.0020 0.0020 738.0 0.0018 0.0018 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0014 0.0014 1249.5 0.0012 0.0012 1412.0 0.0011 0.0011 1590.5 0.0010 0.0010 1787.0 0.0010 0.0010 1945.0 0.0009 0.0009 2119.0 0.0008 0.0008 2369.0 0.0008 0.0008 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0006 0.0006 -2.8 3.0 132 9.0 0.0353 0.0353 11.0 0.0305 0.0305 13.5 0.0255 0.0255 16.5 0.0207 0.0207 19.5 0.0171 0.0171 22.5 0.0143 0.0143 26.0 0.0117 0.0117 30.0 0.0095 0.0095 34.5 0.0076 0.0076 40.0 0.0058 0.0058 46.0 0.0045 0.0045 52.5 0.0034 0.0034 60.0 0.0025 0.0025 69.0 0.0017 0.0017 79.0 0.0012 0.0012 90.5 0.0008 0.0008 105.5 0.0007 0.0007 123.5 0.0009 0.0009 143.0 0.0010 0.0010 163.5 0.0011 0.0011 185.0 0.0012 0.0012 208.0 0.0012 0.0012 232.5 0.0012 0.0012 258.5 0.0012 0.0012 286.0 0.0012 0.0012 331.0 0.0012 0.0012 396.0 0.0011 0.0011 468.5 0.0010 0.0010 549.5 0.0010 0.0010 639.0 0.0009 0.0009 738.0 0.0009 0.0009 847.5 0.0008 0.0008 968.5 0.0007 0.0007 1102.0 0.0007 0.0007 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1945.0 0.0005 0.0005 2119.0 0.0005 0.0005 2369.0 0.0004 0.0004 2643.5 0.0004 0.0004 2945.0 0.0004 0.0004 3276.5 0.0003 0.0003 -3.0 3.5 132 9.0 0.0603 0.0603 11.0 0.0477 0.0477 13.5 0.0358 0.0358 16.5 0.0266 0.0266 19.5 0.0217 0.0217 22.5 0.0196 0.0196 26.0 0.0191 0.0191 30.0 0.0195 0.0195 34.5 0.0203 0.0203 40.0 0.0210 0.0210 46.0 0.0215 0.0215 52.5 0.0216 0.0216 60.0 0.0215 0.0215 69.0 0.0211 0.0211 79.0 0.0205 0.0205 90.5 0.0198 0.0198 105.5 0.0187 0.0187 123.5 0.0175 0.0175 143.0 0.0164 0.0164 163.5 0.0153 0.0153 185.0 0.0143 0.0143 208.0 0.0134 0.0134 232.5 0.0126 0.0126 258.5 0.0118 0.0118 286.0 0.0112 0.0112 331.0 0.0102 0.0102 396.0 0.0091 0.0091 468.5 0.0082 0.0082 549.5 0.0073 0.0073 639.0 0.0066 0.0066 738.0 0.0060 0.0060 847.5 0.0054 0.0054 968.5 0.0049 0.0049 1102.0 0.0045 0.0045 1249.5 0.0041 0.0041 1412.0 0.0037 0.0037 1590.5 0.0034 0.0034 1787.0 0.0031 0.0031 1945.0 0.0029 0.0029 2119.0 0.0027 0.0027 2369.0 0.0025 0.0025 2643.5 0.0023 0.0023 2945.0 0.0021 0.0021 3276.5 0.0019 0.0019 -3.5 4.0 132 9.0 0.0539 0.0539 11.0 0.0446 0.0446 13.5 0.0353 0.0353 16.5 0.0271 0.0271 19.5 0.0213 0.0213 22.5 0.0171 0.0171 26.0 0.0136 0.0136 30.0 0.0108 0.0108 34.5 0.0088 0.0088 40.0 0.0074 0.0074 46.0 0.0065 0.0065 52.5 0.0061 0.0061 60.0 0.0059 0.0059 69.0 0.0057 0.0057 79.0 0.0057 0.0057 90.5 0.0056 0.0056 105.5 0.0054 0.0054 123.5 0.0052 0.0052 143.0 0.0050 0.0050 163.5 0.0048 0.0048 185.0 0.0046 0.0046 208.0 0.0044 0.0044 232.5 0.0042 0.0042 258.5 0.0040 0.0040 286.0 0.0038 0.0038 331.0 0.0035 0.0035 396.0 0.0032 0.0032 468.5 0.0029 0.0029 549.5 0.0027 0.0027 639.0 0.0024 0.0024 738.0 0.0022 0.0022 847.5 0.0020 0.0020 968.5 0.0018 0.0018 1102.0 0.0017 0.0017 1249.5 0.0015 0.0015 1412.0 0.0014 0.0014 1590.5 0.0013 0.0013 1787.0 0.0012 0.0012 1945.0 0.0011 0.0011 2119.0 0.0011 0.0011 2369.0 0.0010 0.0010 2643.5 0.0009 0.0009 2945.0 0.0008 0.0008 3276.5 0.0008 0.0008 -4.0 4.4 132 9.0 0.0615 0.0615 11.0 0.0520 0.0520 13.5 0.0422 0.0422 16.5 0.0333 0.0333 19.5 0.0268 0.0268 22.5 0.0219 0.0219 26.0 0.0176 0.0176 30.0 0.0139 0.0139 34.5 0.0109 0.0109 40.0 0.0082 0.0082 46.0 0.0061 0.0061 52.5 0.0045 0.0045 60.0 0.0032 0.0032 69.0 0.0021 0.0021 79.0 0.0013 0.0013 90.5 0.0010 0.0010 105.5 0.0011 0.0011 123.5 0.0013 0.0013 143.0 0.0015 0.0015 163.5 0.0017 0.0017 185.0 0.0018 0.0018 208.0 0.0018 0.0018 232.5 0.0019 0.0019 258.5 0.0019 0.0019 286.0 0.0018 0.0018 331.0 0.0018 0.0018 396.0 0.0017 0.0017 468.5 0.0016 0.0016 549.5 0.0015 0.0015 639.0 0.0014 0.0014 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0005 0.0005 -4.4 5.0 132 9.0 0.0090 0.0090 11.0 0.0037 0.0037 13.5 0.0024 0.0024 16.5 0.0062 0.0062 19.5 0.0087 0.0087 22.5 0.0103 0.0103 26.0 0.0115 0.0115 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0129 0.0129 46.0 0.0128 0.0128 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0099 0.0099 123.5 0.0092 0.0092 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0074 0.0074 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0057 0.0057 331.0 0.0051 0.0051 396.0 0.0046 0.0046 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0027 0.0027 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 -5.0 5.4 132 9.0 0.0121 0.0121 11.0 0.0078 0.0078 13.5 0.0062 0.0062 16.5 0.0078 0.0078 19.5 0.0096 0.0096 22.5 0.0109 0.0109 26.0 0.0120 0.0120 30.0 0.0126 0.0126 34.5 0.0130 0.0130 40.0 0.0130 0.0130 46.0 0.0129 0.0129 52.5 0.0126 0.0126 60.0 0.0122 0.0122 69.0 0.0117 0.0117 79.0 0.0112 0.0112 90.5 0.0106 0.0106 105.5 0.0099 0.0099 123.5 0.0092 0.0092 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0074 0.0074 208.0 0.0069 0.0069 232.5 0.0065 0.0065 258.5 0.0061 0.0061 286.0 0.0057 0.0057 331.0 0.0052 0.0052 396.0 0.0046 0.0046 468.5 0.0041 0.0041 549.5 0.0037 0.0037 639.0 0.0033 0.0033 738.0 0.0030 0.0030 847.5 0.0027 0.0027 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0017 0.0017 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 -[SubTotalRelative] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0390 0.0390 11.0 0.0390 0.0390 13.5 0.0390 0.0390 16.5 0.0390 0.0390 19.5 0.0390 0.0390 22.5 0.0390 0.0390 26.0 0.0390 0.0390 30.0 0.0390 0.0390 34.5 0.0390 0.0390 40.0 0.0390 0.0390 46.0 0.0390 0.0390 52.5 0.0390 0.0390 60.0 0.0390 0.0390 69.0 0.0390 0.0390 79.0 0.0390 0.0390 90.5 0.0390 0.0390 105.5 0.0390 0.0390 123.5 0.0390 0.0390 143.0 0.0390 0.0390 163.5 0.0390 0.0390 185.0 0.0390 0.0390 208.0 0.0390 0.0390 232.5 0.0390 0.0390 258.5 0.0390 0.0390 286.0 0.0390 0.0390 331.0 0.0390 0.0390 396.0 0.0390 0.0390 468.5 0.0390 0.0390 549.5 0.0390 0.0390 639.0 0.0390 0.0390 738.0 0.0390 0.0390 847.5 0.0390 0.0390 968.5 0.0390 0.0390 1102.0 0.0390 0.0390 1249.5 0.0390 0.0390 1412.0 0.0390 0.0390 1590.5 0.0390 0.0390 1787.0 0.0390 0.0390 1945.0 0.0390 0.0390 2119.0 0.0390 0.0390 2369.0 0.0390 0.0390 2643.5 0.0390 0.0390 2945.0 0.0390 0.0390 3276.5 0.0390 0.0390 --5.0 -4.4 132 9.0 0.0390 0.0390 11.0 0.0390 0.0390 13.5 0.0390 0.0390 16.5 0.0390 0.0390 19.5 0.0390 0.0390 22.5 0.0390 0.0390 26.0 0.0390 0.0390 30.0 0.0390 0.0390 34.5 0.0390 0.0390 40.0 0.0390 0.0390 46.0 0.0390 0.0390 52.5 0.0381 0.0381 60.0 0.0359 0.0359 69.0 0.0341 0.0341 79.0 0.0336 0.0336 90.5 0.0336 0.0336 105.5 0.0336 0.0336 123.5 0.0336 0.0336 143.0 0.0336 0.0336 163.5 0.0336 0.0336 185.0 0.0336 0.0336 208.0 0.0336 0.0336 232.5 0.0336 0.0336 258.5 0.0336 0.0336 286.0 0.0336 0.0336 331.0 0.0336 0.0336 396.0 0.0336 0.0336 468.5 0.0336 0.0336 549.5 0.0336 0.0336 639.0 0.0336 0.0336 738.0 0.0336 0.0336 847.5 0.0336 0.0336 968.5 0.0336 0.0336 1102.0 0.0336 0.0336 1249.5 0.0336 0.0336 1412.0 0.0336 0.0336 1590.5 0.0336 0.0336 1787.0 0.0336 0.0336 1945.0 0.0336 0.0336 2119.0 0.0336 0.0336 2369.0 0.0336 0.0336 2643.5 0.0336 0.0336 2945.0 0.0336 0.0336 3276.5 0.0336 0.0336 --4.4 -4.0 132 9.0 0.0390 0.0390 11.0 0.0390 0.0390 13.5 0.0390 0.0390 16.5 0.0390 0.0390 19.5 0.0390 0.0390 22.5 0.0390 0.0390 26.0 0.0390 0.0390 30.0 0.0390 0.0390 34.5 0.0390 0.0390 40.0 0.0390 0.0390 46.0 0.0390 0.0390 52.5 0.0381 0.0381 60.0 0.0359 0.0359 69.0 0.0341 0.0341 79.0 0.0331 0.0331 90.5 0.0329 0.0329 105.5 0.0338 0.0338 123.5 0.0355 0.0355 143.0 0.0355 0.0355 163.5 0.0355 0.0355 185.0 0.0355 0.0355 208.0 0.0355 0.0355 232.5 0.0355 0.0355 258.5 0.0355 0.0355 286.0 0.0355 0.0355 331.0 0.0355 0.0355 396.0 0.0355 0.0355 468.5 0.0355 0.0355 549.5 0.0355 0.0355 639.0 0.0355 0.0355 738.0 0.0355 0.0355 847.5 0.0355 0.0355 968.5 0.0355 0.0355 1102.0 0.0355 0.0355 1249.5 0.0355 0.0355 1412.0 0.0355 0.0355 1590.5 0.0355 0.0355 1787.0 0.0355 0.0355 1945.0 0.0355 0.0355 2119.0 0.0355 0.0355 2369.0 0.0355 0.0355 2643.5 0.0355 0.0355 2945.0 0.0355 0.0355 3276.5 0.0355 0.0355 --4.0 -3.5 132 9.0 0.0390 0.0390 11.0 0.0390 0.0390 13.5 0.0390 0.0390 16.5 0.0390 0.0390 19.5 0.0390 0.0390 22.5 0.0390 0.0390 26.0 0.0390 0.0390 30.0 0.0390 0.0390 34.5 0.0390 0.0390 40.0 0.0390 0.0390 46.0 0.0390 0.0390 52.5 0.0381 0.0381 60.0 0.0359 0.0359 69.0 0.0341 0.0341 79.0 0.0331 0.0331 90.5 0.0329 0.0329 105.5 0.0338 0.0338 123.5 0.0360 0.0360 143.0 0.0363 0.0363 163.5 0.0363 0.0363 185.0 0.0363 0.0363 208.0 0.0363 0.0363 232.5 0.0363 0.0363 258.5 0.0363 0.0363 286.0 0.0363 0.0363 331.0 0.0363 0.0363 396.0 0.0363 0.0363 468.5 0.0363 0.0363 549.5 0.0363 0.0363 639.0 0.0363 0.0363 738.0 0.0363 0.0363 847.5 0.0363 0.0363 968.5 0.0363 0.0363 1102.0 0.0363 0.0363 1249.5 0.0363 0.0363 1412.0 0.0363 0.0363 1590.5 0.0363 0.0363 1787.0 0.0363 0.0363 1945.0 0.0363 0.0363 2119.0 0.0363 0.0363 2369.0 0.0363 0.0363 2643.5 0.0363 0.0363 2945.0 0.0363 0.0363 3276.5 0.0363 0.0363 --3.5 -3.0 132 9.0 0.0223 0.0223 11.0 0.0223 0.0223 13.5 0.0223 0.0223 16.5 0.0223 0.0223 19.5 0.0223 0.0223 22.5 0.0223 0.0223 26.0 0.0223 0.0223 30.0 0.0223 0.0223 34.5 0.0223 0.0223 40.0 0.0223 0.0223 46.0 0.0223 0.0223 52.5 0.0222 0.0222 60.0 0.0221 0.0221 69.0 0.0220 0.0220 79.0 0.0219 0.0219 90.5 0.0218 0.0218 105.5 0.0217 0.0217 123.5 0.0217 0.0217 143.0 0.0217 0.0217 163.5 0.0218 0.0218 185.0 0.0218 0.0218 208.0 0.0219 0.0219 232.5 0.0220 0.0220 258.5 0.0220 0.0220 286.0 0.0220 0.0220 331.0 0.0220 0.0220 396.0 0.0220 0.0220 468.5 0.0220 0.0220 549.5 0.0220 0.0220 639.0 0.0220 0.0220 738.0 0.0220 0.0220 847.5 0.0220 0.0220 968.5 0.0220 0.0220 1102.0 0.0220 0.0220 1249.5 0.0220 0.0220 1412.0 0.0220 0.0220 1590.5 0.0220 0.0220 1787.0 0.0220 0.0220 1945.0 0.0220 0.0220 2119.0 0.0220 0.0220 2369.0 0.0220 0.0220 2643.5 0.0220 0.0220 2945.0 0.0220 0.0220 3276.5 0.0220 0.0220 --3.0 -2.8 132 9.0 0.0215 0.0215 11.0 0.0215 0.0215 13.5 0.0215 0.0215 16.5 0.0215 0.0215 19.5 0.0215 0.0215 22.5 0.0215 0.0215 26.0 0.0215 0.0215 30.0 0.0215 0.0215 34.5 0.0215 0.0215 40.0 0.0215 0.0215 46.0 0.0215 0.0215 52.5 0.0214 0.0214 60.0 0.0210 0.0210 69.0 0.0208 0.0208 79.0 0.0205 0.0205 90.5 0.0204 0.0204 105.5 0.0202 0.0202 123.5 0.0201 0.0201 143.0 0.0201 0.0201 163.5 0.0201 0.0201 185.0 0.0201 0.0201 208.0 0.0202 0.0202 232.5 0.0203 0.0203 258.5 0.0204 0.0204 286.0 0.0205 0.0205 331.0 0.0207 0.0207 396.0 0.0207 0.0207 468.5 0.0207 0.0207 549.5 0.0207 0.0207 639.0 0.0207 0.0207 738.0 0.0207 0.0207 847.5 0.0207 0.0207 968.5 0.0207 0.0207 1102.0 0.0207 0.0207 1249.5 0.0207 0.0207 1412.0 0.0207 0.0207 1590.5 0.0207 0.0207 1787.0 0.0207 0.0207 1945.0 0.0207 0.0207 2119.0 0.0207 0.0207 2369.0 0.0207 0.0207 2643.5 0.0207 0.0207 2945.0 0.0207 0.0207 3276.5 0.0207 0.0207 --2.8 -2.6 132 9.0 0.0173 0.0173 11.0 0.0173 0.0173 13.5 0.0173 0.0173 16.5 0.0173 0.0173 19.5 0.0173 0.0173 22.5 0.0173 0.0173 26.0 0.0173 0.0173 30.0 0.0173 0.0173 34.5 0.0173 0.0173 40.0 0.0173 0.0173 46.0 0.0173 0.0173 52.5 0.0169 0.0169 60.0 0.0157 0.0157 69.0 0.0144 0.0144 79.0 0.0133 0.0133 90.5 0.0121 0.0121 105.5 0.0110 0.0110 123.5 0.0100 0.0100 143.0 0.0092 0.0092 163.5 0.0087 0.0087 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0087 0.0087 258.5 0.0090 0.0090 286.0 0.0095 0.0095 331.0 0.0104 0.0104 396.0 0.0117 0.0117 468.5 0.0124 0.0124 549.5 0.0124 0.0124 639.0 0.0124 0.0124 738.0 0.0124 0.0124 847.5 0.0124 0.0124 968.5 0.0124 0.0124 1102.0 0.0124 0.0124 1249.5 0.0124 0.0124 1412.0 0.0124 0.0124 1590.5 0.0124 0.0124 1787.0 0.0124 0.0124 1945.0 0.0124 0.0124 2119.0 0.0124 0.0124 2369.0 0.0124 0.0124 2643.5 0.0124 0.0124 2945.0 0.0124 0.0124 3276.5 0.0124 0.0124 --2.6 -2.4 132 9.0 0.0182 0.0182 11.0 0.0182 0.0182 13.5 0.0182 0.0182 16.5 0.0182 0.0182 19.5 0.0182 0.0182 22.5 0.0182 0.0182 26.0 0.0182 0.0182 30.0 0.0182 0.0182 34.5 0.0182 0.0182 40.0 0.0182 0.0182 46.0 0.0182 0.0182 52.5 0.0177 0.0177 60.0 0.0164 0.0164 69.0 0.0150 0.0150 79.0 0.0136 0.0136 90.5 0.0123 0.0123 105.5 0.0109 0.0109 123.5 0.0096 0.0096 143.0 0.0086 0.0086 163.5 0.0079 0.0079 185.0 0.0075 0.0075 208.0 0.0074 0.0074 232.5 0.0075 0.0075 258.5 0.0079 0.0079 286.0 0.0084 0.0084 331.0 0.0094 0.0094 396.0 0.0109 0.0109 468.5 0.0120 0.0120 549.5 0.0127 0.0127 639.0 0.0129 0.0129 738.0 0.0129 0.0129 847.5 0.0129 0.0129 968.5 0.0129 0.0129 1102.0 0.0129 0.0129 1249.5 0.0129 0.0129 1412.0 0.0129 0.0129 1590.5 0.0129 0.0129 1787.0 0.0129 0.0129 1945.0 0.0129 0.0129 2119.0 0.0129 0.0129 2369.0 0.0129 0.0129 2643.5 0.0129 0.0129 2945.0 0.0129 0.0129 3276.5 0.0129 0.0129 --2.4 -2.2 132 9.0 0.0093 0.0093 11.0 0.0093 0.0093 13.5 0.0093 0.0093 16.5 0.0093 0.0093 19.5 0.0093 0.0093 22.5 0.0093 0.0093 26.0 0.0093 0.0093 30.0 0.0093 0.0093 34.5 0.0093 0.0093 40.0 0.0093 0.0093 46.0 0.0093 0.0093 52.5 0.0090 0.0090 60.0 0.0084 0.0084 69.0 0.0076 0.0076 79.0 0.0070 0.0070 90.5 0.0063 0.0063 105.5 0.0056 0.0056 123.5 0.0048 0.0048 143.0 0.0042 0.0042 163.5 0.0036 0.0036 185.0 0.0032 0.0032 208.0 0.0029 0.0029 232.5 0.0027 0.0027 258.5 0.0027 0.0027 286.0 0.0028 0.0028 331.0 0.0031 0.0031 396.0 0.0036 0.0036 468.5 0.0043 0.0043 549.5 0.0051 0.0051 639.0 0.0054 0.0054 738.0 0.0054 0.0054 847.5 0.0054 0.0054 968.5 0.0054 0.0054 1102.0 0.0054 0.0054 1249.5 0.0054 0.0054 1412.0 0.0054 0.0054 1590.5 0.0054 0.0054 1787.0 0.0054 0.0054 1945.0 0.0054 0.0054 2119.0 0.0054 0.0054 2369.0 0.0054 0.0054 2643.5 0.0054 0.0054 2945.0 0.0054 0.0054 3276.5 0.0054 0.0054 --2.2 -2.0 132 9.0 0.0091 0.0091 11.0 0.0091 0.0091 13.5 0.0091 0.0091 16.5 0.0091 0.0091 19.5 0.0091 0.0091 22.5 0.0091 0.0091 26.0 0.0091 0.0091 30.0 0.0091 0.0091 34.5 0.0091 0.0091 40.0 0.0091 0.0091 46.0 0.0091 0.0091 52.5 0.0089 0.0089 60.0 0.0082 0.0082 69.0 0.0075 0.0075 79.0 0.0068 0.0068 90.5 0.0061 0.0061 105.5 0.0053 0.0053 123.5 0.0046 0.0046 143.0 0.0038 0.0038 163.5 0.0032 0.0032 185.0 0.0027 0.0027 208.0 0.0022 0.0022 232.5 0.0019 0.0019 258.5 0.0017 0.0017 286.0 0.0017 0.0017 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0033 0.0033 549.5 0.0041 0.0041 639.0 0.0049 0.0049 738.0 0.0056 0.0056 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1945.0 0.0060 0.0060 2119.0 0.0060 0.0060 2369.0 0.0060 0.0060 2643.5 0.0060 0.0060 2945.0 0.0060 0.0060 3276.5 0.0060 0.0060 --2.0 -1.8 132 9.0 0.0055 0.0055 11.0 0.0055 0.0055 13.5 0.0055 0.0055 16.5 0.0055 0.0055 19.5 0.0055 0.0055 22.5 0.0055 0.0055 26.0 0.0055 0.0055 30.0 0.0055 0.0055 34.5 0.0055 0.0055 40.0 0.0055 0.0055 46.0 0.0055 0.0055 52.5 0.0054 0.0054 60.0 0.0050 0.0050 69.0 0.0046 0.0046 79.0 0.0042 0.0042 90.5 0.0038 0.0038 105.5 0.0034 0.0034 123.5 0.0030 0.0030 143.0 0.0026 0.0026 163.5 0.0022 0.0022 185.0 0.0019 0.0019 208.0 0.0016 0.0016 232.5 0.0014 0.0014 258.5 0.0012 0.0012 286.0 0.0011 0.0011 331.0 0.0011 0.0011 396.0 0.0013 0.0013 468.5 0.0017 0.0017 549.5 0.0020 0.0020 639.0 0.0024 0.0024 738.0 0.0028 0.0028 847.5 0.0030 0.0030 968.5 0.0030 0.0030 1102.0 0.0030 0.0030 1249.5 0.0030 0.0030 1412.0 0.0030 0.0030 1590.5 0.0030 0.0030 1787.0 0.0030 0.0030 1945.0 0.0030 0.0030 2119.0 0.0030 0.0030 2369.0 0.0030 0.0030 2643.5 0.0030 0.0030 2945.0 0.0030 0.0030 3276.5 0.0030 0.0030 --1.8 -1.6 132 9.0 0.0072 0.0072 11.0 0.0072 0.0072 13.5 0.0072 0.0072 16.5 0.0072 0.0072 19.5 0.0072 0.0072 22.5 0.0072 0.0072 26.0 0.0072 0.0072 30.0 0.0072 0.0072 34.5 0.0072 0.0072 40.0 0.0072 0.0072 46.0 0.0072 0.0072 52.5 0.0071 0.0071 60.0 0.0066 0.0066 69.0 0.0061 0.0061 79.0 0.0056 0.0056 90.5 0.0051 0.0051 105.5 0.0046 0.0046 123.5 0.0040 0.0040 143.0 0.0035 0.0035 163.5 0.0030 0.0030 185.0 0.0027 0.0027 208.0 0.0023 0.0023 232.5 0.0020 0.0020 258.5 0.0018 0.0018 286.0 0.0016 0.0016 331.0 0.0016 0.0016 396.0 0.0017 0.0017 468.5 0.0021 0.0021 549.5 0.0026 0.0026 639.0 0.0030 0.0030 738.0 0.0035 0.0035 847.5 0.0040 0.0040 968.5 0.0045 0.0045 1102.0 0.0049 0.0049 1249.5 0.0049 0.0049 1412.0 0.0049 0.0049 1590.5 0.0049 0.0049 1787.0 0.0049 0.0049 1945.0 0.0049 0.0049 2119.0 0.0049 0.0049 2369.0 0.0049 0.0049 2643.5 0.0049 0.0049 2945.0 0.0049 0.0049 3276.5 0.0049 0.0049 --1.6 -1.4 132 9.0 0.0041 0.0041 11.0 0.0041 0.0041 13.5 0.0041 0.0041 16.5 0.0041 0.0041 19.5 0.0041 0.0041 22.5 0.0041 0.0041 26.0 0.0041 0.0041 30.0 0.0041 0.0041 34.5 0.0041 0.0041 40.0 0.0041 0.0041 46.0 0.0041 0.0041 52.5 0.0041 0.0041 60.0 0.0038 0.0038 69.0 0.0035 0.0035 79.0 0.0032 0.0032 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0021 0.0021 163.5 0.0018 0.0018 185.0 0.0016 0.0016 208.0 0.0014 0.0014 232.5 0.0013 0.0013 258.5 0.0011 0.0011 286.0 0.0010 0.0010 331.0 0.0010 0.0010 396.0 0.0010 0.0010 468.5 0.0012 0.0012 549.5 0.0014 0.0014 639.0 0.0016 0.0016 738.0 0.0019 0.0019 847.5 0.0022 0.0022 968.5 0.0024 0.0024 1102.0 0.0026 0.0026 1249.5 0.0026 0.0026 1412.0 0.0026 0.0026 1590.5 0.0026 0.0026 1787.0 0.0026 0.0026 1945.0 0.0026 0.0026 2119.0 0.0026 0.0026 2369.0 0.0026 0.0026 2643.5 0.0026 0.0026 2945.0 0.0026 0.0026 3276.5 0.0026 0.0026 --1.4 -1.2 132 9.0 0.0007 0.0007 11.0 0.0007 0.0007 13.5 0.0007 0.0007 16.5 0.0007 0.0007 19.5 0.0007 0.0007 22.5 0.0007 0.0007 26.0 0.0007 0.0007 30.0 0.0007 0.0007 34.5 0.0007 0.0007 40.0 0.0007 0.0007 46.0 0.0007 0.0007 52.5 0.0007 0.0007 60.0 0.0007 0.0007 69.0 0.0006 0.0006 79.0 0.0006 0.0006 90.5 0.0005 0.0005 105.5 0.0005 0.0005 123.5 0.0005 0.0005 143.0 0.0004 0.0004 163.5 0.0004 0.0004 185.0 0.0004 0.0004 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0004 0.0004 847.5 0.0004 0.0004 968.5 0.0004 0.0004 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1945.0 0.0005 0.0005 2119.0 0.0005 0.0005 2369.0 0.0005 0.0005 2643.5 0.0005 0.0005 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 --1.2 -1.0 132 9.0 0.0047 0.0047 11.0 0.0047 0.0047 13.5 0.0047 0.0047 16.5 0.0047 0.0047 19.5 0.0047 0.0047 22.5 0.0047 0.0047 26.0 0.0047 0.0047 30.0 0.0047 0.0047 34.5 0.0047 0.0047 40.0 0.0047 0.0047 46.0 0.0047 0.0047 52.5 0.0046 0.0046 60.0 0.0043 0.0043 69.0 0.0039 0.0039 79.0 0.0036 0.0036 90.5 0.0033 0.0033 105.5 0.0030 0.0030 123.5 0.0026 0.0026 143.0 0.0023 0.0023 163.5 0.0020 0.0020 185.0 0.0017 0.0017 208.0 0.0014 0.0014 232.5 0.0012 0.0012 258.5 0.0009 0.0009 286.0 0.0007 0.0007 331.0 0.0004 0.0004 396.0 0.0002 0.0002 468.5 0.0005 0.0005 549.5 0.0008 0.0008 639.0 0.0012 0.0012 738.0 0.0015 0.0015 847.5 0.0018 0.0018 968.5 0.0021 0.0021 1102.0 0.0024 0.0024 1249.5 0.0027 0.0027 1412.0 0.0029 0.0029 1590.5 0.0030 0.0030 1787.0 0.0030 0.0030 1945.0 0.0030 0.0030 2119.0 0.0030 0.0030 2369.0 0.0030 0.0030 2643.5 0.0030 0.0030 2945.0 0.0030 0.0030 3276.5 0.0030 0.0030 --1.0 -0.8 132 9.0 0.0085 0.0085 11.0 0.0085 0.0085 13.5 0.0085 0.0085 16.5 0.0085 0.0085 19.5 0.0085 0.0085 22.5 0.0085 0.0085 26.0 0.0085 0.0085 30.0 0.0085 0.0085 34.5 0.0085 0.0085 40.0 0.0085 0.0085 46.0 0.0085 0.0085 52.5 0.0084 0.0084 60.0 0.0078 0.0078 69.0 0.0072 0.0072 79.0 0.0067 0.0067 90.5 0.0061 0.0061 105.5 0.0054 0.0054 123.5 0.0048 0.0048 143.0 0.0042 0.0042 163.5 0.0036 0.0036 185.0 0.0031 0.0031 208.0 0.0026 0.0026 232.5 0.0022 0.0022 258.5 0.0017 0.0017 286.0 0.0013 0.0013 331.0 0.0007 0.0007 396.0 0.0001 0.0001 468.5 0.0007 0.0007 549.5 0.0014 0.0014 639.0 0.0020 0.0020 738.0 0.0026 0.0026 847.5 0.0032 0.0032 968.5 0.0037 0.0037 1102.0 0.0042 0.0042 1249.5 0.0047 0.0047 1412.0 0.0052 0.0052 1590.5 0.0054 0.0054 1787.0 0.0054 0.0054 1945.0 0.0054 0.0054 2119.0 0.0054 0.0054 2369.0 0.0054 0.0054 2643.5 0.0054 0.0054 2945.0 0.0054 0.0054 3276.5 0.0054 0.0054 --0.8 -0.6 132 9.0 0.0104 0.0104 11.0 0.0104 0.0104 13.5 0.0104 0.0104 16.5 0.0104 0.0104 19.5 0.0104 0.0104 22.5 0.0104 0.0104 26.0 0.0104 0.0104 30.0 0.0104 0.0104 34.5 0.0104 0.0104 40.0 0.0104 0.0104 46.0 0.0104 0.0104 52.5 0.0102 0.0102 60.0 0.0095 0.0095 69.0 0.0088 0.0088 79.0 0.0082 0.0082 90.5 0.0075 0.0075 105.5 0.0067 0.0067 123.5 0.0059 0.0059 143.0 0.0052 0.0052 163.5 0.0046 0.0046 185.0 0.0039 0.0039 208.0 0.0034 0.0034 232.5 0.0028 0.0028 258.5 0.0023 0.0023 286.0 0.0018 0.0018 331.0 0.0011 0.0011 396.0 0.0002 0.0002 468.5 0.0006 0.0006 549.5 0.0014 0.0014 639.0 0.0021 0.0021 738.0 0.0028 0.0028 847.5 0.0035 0.0035 968.5 0.0042 0.0042 1102.0 0.0048 0.0048 1249.5 0.0054 0.0054 1412.0 0.0060 0.0060 1590.5 0.0062 0.0062 1787.0 0.0062 0.0062 1945.0 0.0062 0.0062 2119.0 0.0062 0.0062 2369.0 0.0062 0.0062 2643.5 0.0062 0.0062 2945.0 0.0062 0.0062 3276.5 0.0062 0.0062 --0.6 -0.4 132 9.0 0.0071 0.0071 11.0 0.0071 0.0071 13.5 0.0071 0.0071 16.5 0.0071 0.0071 19.5 0.0071 0.0071 22.5 0.0071 0.0071 26.0 0.0071 0.0071 30.0 0.0071 0.0071 34.5 0.0071 0.0071 40.0 0.0071 0.0071 46.0 0.0071 0.0071 52.5 0.0069 0.0069 60.0 0.0065 0.0065 69.0 0.0060 0.0060 79.0 0.0056 0.0056 90.5 0.0051 0.0051 105.5 0.0046 0.0046 123.5 0.0041 0.0041 143.0 0.0036 0.0036 163.5 0.0032 0.0032 185.0 0.0028 0.0028 208.0 0.0024 0.0024 232.5 0.0020 0.0020 258.5 0.0017 0.0017 286.0 0.0013 0.0013 331.0 0.0008 0.0008 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0008 0.0008 639.0 0.0013 0.0013 738.0 0.0018 0.0018 847.5 0.0022 0.0022 968.5 0.0027 0.0027 1102.0 0.0031 0.0031 1249.5 0.0035 0.0035 1412.0 0.0039 0.0039 1590.5 0.0040 0.0040 1787.0 0.0040 0.0040 1945.0 0.0040 0.0040 2119.0 0.0040 0.0040 2369.0 0.0040 0.0040 2643.5 0.0040 0.0040 2945.0 0.0040 0.0040 3276.5 0.0040 0.0040 --0.4 -0.2 132 9.0 0.0094 0.0094 11.0 0.0094 0.0094 13.5 0.0094 0.0094 16.5 0.0094 0.0094 19.5 0.0094 0.0094 22.5 0.0094 0.0094 26.0 0.0094 0.0094 30.0 0.0094 0.0094 34.5 0.0094 0.0094 40.0 0.0094 0.0094 46.0 0.0094 0.0094 52.5 0.0092 0.0092 60.0 0.0086 0.0086 69.0 0.0080 0.0080 79.0 0.0074 0.0074 90.5 0.0068 0.0068 105.5 0.0061 0.0061 123.5 0.0054 0.0054 143.0 0.0048 0.0048 163.5 0.0042 0.0042 185.0 0.0037 0.0037 208.0 0.0031 0.0031 232.5 0.0027 0.0027 258.5 0.0022 0.0022 286.0 0.0017 0.0017 331.0 0.0011 0.0011 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0011 0.0011 639.0 0.0018 0.0018 738.0 0.0024 0.0024 847.5 0.0030 0.0030 968.5 0.0036 0.0036 1102.0 0.0041 0.0041 1249.5 0.0047 0.0047 1412.0 0.0052 0.0052 1590.5 0.0054 0.0054 1787.0 0.0054 0.0054 1945.0 0.0054 0.0054 2119.0 0.0054 0.0054 2369.0 0.0054 0.0054 2643.5 0.0054 0.0054 2945.0 0.0054 0.0054 3276.5 0.0054 0.0054 --0.2 0.0 132 9.0 0.0038 0.0038 11.0 0.0038 0.0038 13.5 0.0038 0.0038 16.5 0.0038 0.0038 19.5 0.0038 0.0038 22.5 0.0038 0.0038 26.0 0.0038 0.0038 30.0 0.0038 0.0038 34.5 0.0038 0.0038 40.0 0.0038 0.0038 46.0 0.0038 0.0038 52.5 0.0037 0.0037 60.0 0.0035 0.0035 69.0 0.0032 0.0032 79.0 0.0030 0.0030 90.5 0.0027 0.0027 105.5 0.0025 0.0025 123.5 0.0022 0.0022 143.0 0.0019 0.0019 163.5 0.0017 0.0017 185.0 0.0015 0.0015 208.0 0.0013 0.0013 232.5 0.0011 0.0011 258.5 0.0009 0.0009 286.0 0.0007 0.0007 331.0 0.0005 0.0005 396.0 0.0001 0.0001 468.5 0.0002 0.0002 549.5 0.0004 0.0004 639.0 0.0007 0.0007 738.0 0.0010 0.0010 847.5 0.0012 0.0012 968.5 0.0014 0.0014 1102.0 0.0017 0.0017 1249.5 0.0019 0.0019 1412.0 0.0021 0.0021 1590.5 0.0022 0.0022 1787.0 0.0022 0.0022 1945.0 0.0022 0.0022 2119.0 0.0022 0.0022 2369.0 0.0022 0.0022 2643.5 0.0022 0.0022 2945.0 0.0022 0.0022 3276.5 0.0022 0.0022 -0.0 0.2 132 9.0 0.0038 0.0038 11.0 0.0038 0.0038 13.5 0.0038 0.0038 16.5 0.0038 0.0038 19.5 0.0038 0.0038 22.5 0.0038 0.0038 26.0 0.0038 0.0038 30.0 0.0038 0.0038 34.5 0.0038 0.0038 40.0 0.0038 0.0038 46.0 0.0038 0.0038 52.5 0.0037 0.0037 60.0 0.0035 0.0035 69.0 0.0032 0.0032 79.0 0.0030 0.0030 90.5 0.0027 0.0027 105.5 0.0025 0.0025 123.5 0.0022 0.0022 143.0 0.0019 0.0019 163.5 0.0017 0.0017 185.0 0.0015 0.0015 208.0 0.0013 0.0013 232.5 0.0011 0.0011 258.5 0.0009 0.0009 286.0 0.0007 0.0007 331.0 0.0005 0.0005 396.0 0.0001 0.0001 468.5 0.0002 0.0002 549.5 0.0004 0.0004 639.0 0.0007 0.0007 738.0 0.0010 0.0010 847.5 0.0012 0.0012 968.5 0.0014 0.0014 1102.0 0.0017 0.0017 1249.5 0.0019 0.0019 1412.0 0.0021 0.0021 1590.5 0.0022 0.0022 1787.0 0.0022 0.0022 1945.0 0.0022 0.0022 2119.0 0.0022 0.0022 2369.0 0.0022 0.0022 2643.5 0.0022 0.0022 2945.0 0.0022 0.0022 3276.5 0.0022 0.0022 -0.2 0.4 132 9.0 0.0094 0.0094 11.0 0.0094 0.0094 13.5 0.0094 0.0094 16.5 0.0094 0.0094 19.5 0.0094 0.0094 22.5 0.0094 0.0094 26.0 0.0094 0.0094 30.0 0.0094 0.0094 34.5 0.0094 0.0094 40.0 0.0094 0.0094 46.0 0.0094 0.0094 52.5 0.0092 0.0092 60.0 0.0086 0.0086 69.0 0.0080 0.0080 79.0 0.0074 0.0074 90.5 0.0068 0.0068 105.5 0.0061 0.0061 123.5 0.0054 0.0054 143.0 0.0048 0.0048 163.5 0.0042 0.0042 185.0 0.0037 0.0037 208.0 0.0031 0.0031 232.5 0.0027 0.0027 258.5 0.0022 0.0022 286.0 0.0017 0.0017 331.0 0.0011 0.0011 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0011 0.0011 639.0 0.0018 0.0018 738.0 0.0024 0.0024 847.5 0.0030 0.0030 968.5 0.0036 0.0036 1102.0 0.0041 0.0041 1249.5 0.0047 0.0047 1412.0 0.0052 0.0052 1590.5 0.0054 0.0054 1787.0 0.0054 0.0054 1945.0 0.0054 0.0054 2119.0 0.0054 0.0054 2369.0 0.0054 0.0054 2643.5 0.0054 0.0054 2945.0 0.0054 0.0054 3276.5 0.0054 0.0054 -0.4 0.6 132 9.0 0.0071 0.0071 11.0 0.0071 0.0071 13.5 0.0071 0.0071 16.5 0.0071 0.0071 19.5 0.0071 0.0071 22.5 0.0071 0.0071 26.0 0.0071 0.0071 30.0 0.0071 0.0071 34.5 0.0071 0.0071 40.0 0.0071 0.0071 46.0 0.0071 0.0071 52.5 0.0069 0.0069 60.0 0.0065 0.0065 69.0 0.0060 0.0060 79.0 0.0056 0.0056 90.5 0.0051 0.0051 105.5 0.0046 0.0046 123.5 0.0041 0.0041 143.0 0.0036 0.0036 163.5 0.0032 0.0032 185.0 0.0028 0.0028 208.0 0.0024 0.0024 232.5 0.0020 0.0020 258.5 0.0017 0.0017 286.0 0.0013 0.0013 331.0 0.0008 0.0008 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0008 0.0008 639.0 0.0013 0.0013 738.0 0.0018 0.0018 847.5 0.0022 0.0022 968.5 0.0027 0.0027 1102.0 0.0031 0.0031 1249.5 0.0035 0.0035 1412.0 0.0039 0.0039 1590.5 0.0040 0.0040 1787.0 0.0040 0.0040 1945.0 0.0040 0.0040 2119.0 0.0040 0.0040 2369.0 0.0040 0.0040 2643.5 0.0040 0.0040 2945.0 0.0040 0.0040 3276.5 0.0040 0.0040 -0.6 0.8 132 9.0 0.0104 0.0104 11.0 0.0104 0.0104 13.5 0.0104 0.0104 16.5 0.0104 0.0104 19.5 0.0104 0.0104 22.5 0.0104 0.0104 26.0 0.0104 0.0104 30.0 0.0104 0.0104 34.5 0.0104 0.0104 40.0 0.0104 0.0104 46.0 0.0104 0.0104 52.5 0.0102 0.0102 60.0 0.0095 0.0095 69.0 0.0088 0.0088 79.0 0.0082 0.0082 90.5 0.0075 0.0075 105.5 0.0067 0.0067 123.5 0.0059 0.0059 143.0 0.0052 0.0052 163.5 0.0046 0.0046 185.0 0.0039 0.0039 208.0 0.0034 0.0034 232.5 0.0028 0.0028 258.5 0.0023 0.0023 286.0 0.0018 0.0018 331.0 0.0011 0.0011 396.0 0.0002 0.0002 468.5 0.0006 0.0006 549.5 0.0014 0.0014 639.0 0.0021 0.0021 738.0 0.0028 0.0028 847.5 0.0035 0.0035 968.5 0.0042 0.0042 1102.0 0.0048 0.0048 1249.5 0.0054 0.0054 1412.0 0.0060 0.0060 1590.5 0.0062 0.0062 1787.0 0.0062 0.0062 1945.0 0.0062 0.0062 2119.0 0.0062 0.0062 2369.0 0.0062 0.0062 2643.5 0.0062 0.0062 2945.0 0.0062 0.0062 3276.5 0.0062 0.0062 -0.8 1.0 132 9.0 0.0085 0.0085 11.0 0.0085 0.0085 13.5 0.0085 0.0085 16.5 0.0085 0.0085 19.5 0.0085 0.0085 22.5 0.0085 0.0085 26.0 0.0085 0.0085 30.0 0.0085 0.0085 34.5 0.0085 0.0085 40.0 0.0085 0.0085 46.0 0.0085 0.0085 52.5 0.0084 0.0084 60.0 0.0078 0.0078 69.0 0.0072 0.0072 79.0 0.0067 0.0067 90.5 0.0061 0.0061 105.5 0.0054 0.0054 123.5 0.0048 0.0048 143.0 0.0042 0.0042 163.5 0.0036 0.0036 185.0 0.0031 0.0031 208.0 0.0026 0.0026 232.5 0.0022 0.0022 258.5 0.0017 0.0017 286.0 0.0013 0.0013 331.0 0.0007 0.0007 396.0 0.0001 0.0001 468.5 0.0007 0.0007 549.5 0.0014 0.0014 639.0 0.0020 0.0020 738.0 0.0026 0.0026 847.5 0.0032 0.0032 968.5 0.0037 0.0037 1102.0 0.0042 0.0042 1249.5 0.0047 0.0047 1412.0 0.0052 0.0052 1590.5 0.0054 0.0054 1787.0 0.0054 0.0054 1945.0 0.0054 0.0054 2119.0 0.0054 0.0054 2369.0 0.0054 0.0054 2643.5 0.0054 0.0054 2945.0 0.0054 0.0054 3276.5 0.0054 0.0054 -1.0 1.2 132 9.0 0.0047 0.0047 11.0 0.0047 0.0047 13.5 0.0047 0.0047 16.5 0.0047 0.0047 19.5 0.0047 0.0047 22.5 0.0047 0.0047 26.0 0.0047 0.0047 30.0 0.0047 0.0047 34.5 0.0047 0.0047 40.0 0.0047 0.0047 46.0 0.0047 0.0047 52.5 0.0046 0.0046 60.0 0.0043 0.0043 69.0 0.0039 0.0039 79.0 0.0036 0.0036 90.5 0.0033 0.0033 105.5 0.0030 0.0030 123.5 0.0026 0.0026 143.0 0.0023 0.0023 163.5 0.0020 0.0020 185.0 0.0017 0.0017 208.0 0.0014 0.0014 232.5 0.0012 0.0012 258.5 0.0009 0.0009 286.0 0.0007 0.0007 331.0 0.0004 0.0004 396.0 0.0002 0.0002 468.5 0.0005 0.0005 549.5 0.0008 0.0008 639.0 0.0012 0.0012 738.0 0.0015 0.0015 847.5 0.0018 0.0018 968.5 0.0021 0.0021 1102.0 0.0024 0.0024 1249.5 0.0027 0.0027 1412.0 0.0029 0.0029 1590.5 0.0030 0.0030 1787.0 0.0030 0.0030 1945.0 0.0030 0.0030 2119.0 0.0030 0.0030 2369.0 0.0030 0.0030 2643.5 0.0030 0.0030 2945.0 0.0030 0.0030 3276.5 0.0030 0.0030 -1.2 1.4 132 9.0 0.0007 0.0007 11.0 0.0007 0.0007 13.5 0.0007 0.0007 16.5 0.0007 0.0007 19.5 0.0007 0.0007 22.5 0.0007 0.0007 26.0 0.0007 0.0007 30.0 0.0007 0.0007 34.5 0.0007 0.0007 40.0 0.0007 0.0007 46.0 0.0007 0.0007 52.5 0.0007 0.0007 60.0 0.0007 0.0007 69.0 0.0006 0.0006 79.0 0.0006 0.0006 90.5 0.0005 0.0005 105.5 0.0005 0.0005 123.5 0.0005 0.0005 143.0 0.0004 0.0004 163.5 0.0004 0.0004 185.0 0.0004 0.0004 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0004 0.0004 847.5 0.0004 0.0004 968.5 0.0004 0.0004 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1945.0 0.0005 0.0005 2119.0 0.0005 0.0005 2369.0 0.0005 0.0005 2643.5 0.0005 0.0005 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 -1.4 1.6 132 9.0 0.0041 0.0041 11.0 0.0041 0.0041 13.5 0.0041 0.0041 16.5 0.0041 0.0041 19.5 0.0041 0.0041 22.5 0.0041 0.0041 26.0 0.0041 0.0041 30.0 0.0041 0.0041 34.5 0.0041 0.0041 40.0 0.0041 0.0041 46.0 0.0041 0.0041 52.5 0.0041 0.0041 60.0 0.0038 0.0038 69.0 0.0035 0.0035 79.0 0.0032 0.0032 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0021 0.0021 163.5 0.0018 0.0018 185.0 0.0016 0.0016 208.0 0.0014 0.0014 232.5 0.0013 0.0013 258.5 0.0011 0.0011 286.0 0.0010 0.0010 331.0 0.0010 0.0010 396.0 0.0010 0.0010 468.5 0.0012 0.0012 549.5 0.0014 0.0014 639.0 0.0016 0.0016 738.0 0.0019 0.0019 847.5 0.0022 0.0022 968.5 0.0024 0.0024 1102.0 0.0026 0.0026 1249.5 0.0026 0.0026 1412.0 0.0026 0.0026 1590.5 0.0026 0.0026 1787.0 0.0026 0.0026 1945.0 0.0026 0.0026 2119.0 0.0026 0.0026 2369.0 0.0026 0.0026 2643.5 0.0026 0.0026 2945.0 0.0026 0.0026 3276.5 0.0026 0.0026 -1.6 1.8 132 9.0 0.0072 0.0072 11.0 0.0072 0.0072 13.5 0.0072 0.0072 16.5 0.0072 0.0072 19.5 0.0072 0.0072 22.5 0.0072 0.0072 26.0 0.0072 0.0072 30.0 0.0072 0.0072 34.5 0.0072 0.0072 40.0 0.0072 0.0072 46.0 0.0072 0.0072 52.5 0.0071 0.0071 60.0 0.0066 0.0066 69.0 0.0061 0.0061 79.0 0.0056 0.0056 90.5 0.0051 0.0051 105.5 0.0046 0.0046 123.5 0.0040 0.0040 143.0 0.0035 0.0035 163.5 0.0030 0.0030 185.0 0.0027 0.0027 208.0 0.0023 0.0023 232.5 0.0020 0.0020 258.5 0.0018 0.0018 286.0 0.0016 0.0016 331.0 0.0016 0.0016 396.0 0.0017 0.0017 468.5 0.0021 0.0021 549.5 0.0026 0.0026 639.0 0.0030 0.0030 738.0 0.0035 0.0035 847.5 0.0040 0.0040 968.5 0.0045 0.0045 1102.0 0.0049 0.0049 1249.5 0.0049 0.0049 1412.0 0.0049 0.0049 1590.5 0.0049 0.0049 1787.0 0.0049 0.0049 1945.0 0.0049 0.0049 2119.0 0.0049 0.0049 2369.0 0.0049 0.0049 2643.5 0.0049 0.0049 2945.0 0.0049 0.0049 3276.5 0.0049 0.0049 -1.8 2.0 132 9.0 0.0055 0.0055 11.0 0.0055 0.0055 13.5 0.0055 0.0055 16.5 0.0055 0.0055 19.5 0.0055 0.0055 22.5 0.0055 0.0055 26.0 0.0055 0.0055 30.0 0.0055 0.0055 34.5 0.0055 0.0055 40.0 0.0055 0.0055 46.0 0.0055 0.0055 52.5 0.0054 0.0054 60.0 0.0050 0.0050 69.0 0.0046 0.0046 79.0 0.0042 0.0042 90.5 0.0038 0.0038 105.5 0.0034 0.0034 123.5 0.0030 0.0030 143.0 0.0026 0.0026 163.5 0.0022 0.0022 185.0 0.0019 0.0019 208.0 0.0016 0.0016 232.5 0.0014 0.0014 258.5 0.0012 0.0012 286.0 0.0011 0.0011 331.0 0.0011 0.0011 396.0 0.0013 0.0013 468.5 0.0017 0.0017 549.5 0.0020 0.0020 639.0 0.0024 0.0024 738.0 0.0028 0.0028 847.5 0.0030 0.0030 968.5 0.0030 0.0030 1102.0 0.0030 0.0030 1249.5 0.0030 0.0030 1412.0 0.0030 0.0030 1590.5 0.0030 0.0030 1787.0 0.0030 0.0030 1945.0 0.0030 0.0030 2119.0 0.0030 0.0030 2369.0 0.0030 0.0030 2643.5 0.0030 0.0030 2945.0 0.0030 0.0030 3276.5 0.0030 0.0030 -2.0 2.2 132 9.0 0.0091 0.0091 11.0 0.0091 0.0091 13.5 0.0091 0.0091 16.5 0.0091 0.0091 19.5 0.0091 0.0091 22.5 0.0091 0.0091 26.0 0.0091 0.0091 30.0 0.0091 0.0091 34.5 0.0091 0.0091 40.0 0.0091 0.0091 46.0 0.0091 0.0091 52.5 0.0089 0.0089 60.0 0.0082 0.0082 69.0 0.0075 0.0075 79.0 0.0068 0.0068 90.5 0.0061 0.0061 105.5 0.0053 0.0053 123.5 0.0046 0.0046 143.0 0.0038 0.0038 163.5 0.0032 0.0032 185.0 0.0027 0.0027 208.0 0.0022 0.0022 232.5 0.0019 0.0019 258.5 0.0017 0.0017 286.0 0.0017 0.0017 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0033 0.0033 549.5 0.0041 0.0041 639.0 0.0049 0.0049 738.0 0.0056 0.0056 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1945.0 0.0060 0.0060 2119.0 0.0060 0.0060 2369.0 0.0060 0.0060 2643.5 0.0060 0.0060 2945.0 0.0060 0.0060 3276.5 0.0060 0.0060 -2.2 2.4 132 9.0 0.0093 0.0093 11.0 0.0093 0.0093 13.5 0.0093 0.0093 16.5 0.0093 0.0093 19.5 0.0093 0.0093 22.5 0.0093 0.0093 26.0 0.0093 0.0093 30.0 0.0093 0.0093 34.5 0.0093 0.0093 40.0 0.0093 0.0093 46.0 0.0093 0.0093 52.5 0.0090 0.0090 60.0 0.0084 0.0084 69.0 0.0076 0.0076 79.0 0.0070 0.0070 90.5 0.0063 0.0063 105.5 0.0056 0.0056 123.5 0.0048 0.0048 143.0 0.0042 0.0042 163.5 0.0036 0.0036 185.0 0.0032 0.0032 208.0 0.0029 0.0029 232.5 0.0027 0.0027 258.5 0.0027 0.0027 286.0 0.0028 0.0028 331.0 0.0031 0.0031 396.0 0.0036 0.0036 468.5 0.0043 0.0043 549.5 0.0051 0.0051 639.0 0.0054 0.0054 738.0 0.0054 0.0054 847.5 0.0054 0.0054 968.5 0.0054 0.0054 1102.0 0.0054 0.0054 1249.5 0.0054 0.0054 1412.0 0.0054 0.0054 1590.5 0.0054 0.0054 1787.0 0.0054 0.0054 1945.0 0.0054 0.0054 2119.0 0.0054 0.0054 2369.0 0.0054 0.0054 2643.5 0.0054 0.0054 2945.0 0.0054 0.0054 3276.5 0.0054 0.0054 -2.4 2.6 132 9.0 0.0182 0.0182 11.0 0.0182 0.0182 13.5 0.0182 0.0182 16.5 0.0182 0.0182 19.5 0.0182 0.0182 22.5 0.0182 0.0182 26.0 0.0182 0.0182 30.0 0.0182 0.0182 34.5 0.0182 0.0182 40.0 0.0182 0.0182 46.0 0.0182 0.0182 52.5 0.0177 0.0177 60.0 0.0164 0.0164 69.0 0.0150 0.0150 79.0 0.0136 0.0136 90.5 0.0123 0.0123 105.5 0.0109 0.0109 123.5 0.0096 0.0096 143.0 0.0086 0.0086 163.5 0.0079 0.0079 185.0 0.0075 0.0075 208.0 0.0074 0.0074 232.5 0.0075 0.0075 258.5 0.0079 0.0079 286.0 0.0084 0.0084 331.0 0.0094 0.0094 396.0 0.0109 0.0109 468.5 0.0120 0.0120 549.5 0.0127 0.0127 639.0 0.0129 0.0129 738.0 0.0129 0.0129 847.5 0.0129 0.0129 968.5 0.0129 0.0129 1102.0 0.0129 0.0129 1249.5 0.0129 0.0129 1412.0 0.0129 0.0129 1590.5 0.0129 0.0129 1787.0 0.0129 0.0129 1945.0 0.0129 0.0129 2119.0 0.0129 0.0129 2369.0 0.0129 0.0129 2643.5 0.0129 0.0129 2945.0 0.0129 0.0129 3276.5 0.0129 0.0129 -2.6 2.8 132 9.0 0.0173 0.0173 11.0 0.0173 0.0173 13.5 0.0173 0.0173 16.5 0.0173 0.0173 19.5 0.0173 0.0173 22.5 0.0173 0.0173 26.0 0.0173 0.0173 30.0 0.0173 0.0173 34.5 0.0173 0.0173 40.0 0.0173 0.0173 46.0 0.0173 0.0173 52.5 0.0169 0.0169 60.0 0.0157 0.0157 69.0 0.0144 0.0144 79.0 0.0133 0.0133 90.5 0.0121 0.0121 105.5 0.0110 0.0110 123.5 0.0100 0.0100 143.0 0.0092 0.0092 163.5 0.0087 0.0087 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0087 0.0087 258.5 0.0090 0.0090 286.0 0.0095 0.0095 331.0 0.0104 0.0104 396.0 0.0117 0.0117 468.5 0.0124 0.0124 549.5 0.0124 0.0124 639.0 0.0124 0.0124 738.0 0.0124 0.0124 847.5 0.0124 0.0124 968.5 0.0124 0.0124 1102.0 0.0124 0.0124 1249.5 0.0124 0.0124 1412.0 0.0124 0.0124 1590.5 0.0124 0.0124 1787.0 0.0124 0.0124 1945.0 0.0124 0.0124 2119.0 0.0124 0.0124 2369.0 0.0124 0.0124 2643.5 0.0124 0.0124 2945.0 0.0124 0.0124 3276.5 0.0124 0.0124 -2.8 3.0 132 9.0 0.0215 0.0215 11.0 0.0215 0.0215 13.5 0.0215 0.0215 16.5 0.0215 0.0215 19.5 0.0215 0.0215 22.5 0.0215 0.0215 26.0 0.0215 0.0215 30.0 0.0215 0.0215 34.5 0.0215 0.0215 40.0 0.0215 0.0215 46.0 0.0215 0.0215 52.5 0.0214 0.0214 60.0 0.0210 0.0210 69.0 0.0208 0.0208 79.0 0.0205 0.0205 90.5 0.0204 0.0204 105.5 0.0202 0.0202 123.5 0.0201 0.0201 143.0 0.0201 0.0201 163.5 0.0201 0.0201 185.0 0.0201 0.0201 208.0 0.0202 0.0202 232.5 0.0203 0.0203 258.5 0.0204 0.0204 286.0 0.0205 0.0205 331.0 0.0207 0.0207 396.0 0.0207 0.0207 468.5 0.0207 0.0207 549.5 0.0207 0.0207 639.0 0.0207 0.0207 738.0 0.0207 0.0207 847.5 0.0207 0.0207 968.5 0.0207 0.0207 1102.0 0.0207 0.0207 1249.5 0.0207 0.0207 1412.0 0.0207 0.0207 1590.5 0.0207 0.0207 1787.0 0.0207 0.0207 1945.0 0.0207 0.0207 2119.0 0.0207 0.0207 2369.0 0.0207 0.0207 2643.5 0.0207 0.0207 2945.0 0.0207 0.0207 3276.5 0.0207 0.0207 -3.0 3.5 132 9.0 0.0223 0.0223 11.0 0.0223 0.0223 13.5 0.0223 0.0223 16.5 0.0223 0.0223 19.5 0.0223 0.0223 22.5 0.0223 0.0223 26.0 0.0223 0.0223 30.0 0.0223 0.0223 34.5 0.0223 0.0223 40.0 0.0223 0.0223 46.0 0.0223 0.0223 52.5 0.0222 0.0222 60.0 0.0221 0.0221 69.0 0.0220 0.0220 79.0 0.0219 0.0219 90.5 0.0218 0.0218 105.5 0.0217 0.0217 123.5 0.0217 0.0217 143.0 0.0217 0.0217 163.5 0.0218 0.0218 185.0 0.0218 0.0218 208.0 0.0219 0.0219 232.5 0.0220 0.0220 258.5 0.0220 0.0220 286.0 0.0220 0.0220 331.0 0.0220 0.0220 396.0 0.0220 0.0220 468.5 0.0220 0.0220 549.5 0.0220 0.0220 639.0 0.0220 0.0220 738.0 0.0220 0.0220 847.5 0.0220 0.0220 968.5 0.0220 0.0220 1102.0 0.0220 0.0220 1249.5 0.0220 0.0220 1412.0 0.0220 0.0220 1590.5 0.0220 0.0220 1787.0 0.0220 0.0220 1945.0 0.0220 0.0220 2119.0 0.0220 0.0220 2369.0 0.0220 0.0220 2643.5 0.0220 0.0220 2945.0 0.0220 0.0220 3276.5 0.0220 0.0220 -3.5 4.0 132 9.0 0.0390 0.0390 11.0 0.0390 0.0390 13.5 0.0390 0.0390 16.5 0.0390 0.0390 19.5 0.0390 0.0390 22.5 0.0390 0.0390 26.0 0.0390 0.0390 30.0 0.0390 0.0390 34.5 0.0390 0.0390 40.0 0.0390 0.0390 46.0 0.0390 0.0390 52.5 0.0381 0.0381 60.0 0.0359 0.0359 69.0 0.0341 0.0341 79.0 0.0331 0.0331 90.5 0.0329 0.0329 105.5 0.0338 0.0338 123.5 0.0360 0.0360 143.0 0.0363 0.0363 163.5 0.0363 0.0363 185.0 0.0363 0.0363 208.0 0.0363 0.0363 232.5 0.0363 0.0363 258.5 0.0363 0.0363 286.0 0.0363 0.0363 331.0 0.0363 0.0363 396.0 0.0363 0.0363 468.5 0.0363 0.0363 549.5 0.0363 0.0363 639.0 0.0363 0.0363 738.0 0.0363 0.0363 847.5 0.0363 0.0363 968.5 0.0363 0.0363 1102.0 0.0363 0.0363 1249.5 0.0363 0.0363 1412.0 0.0363 0.0363 1590.5 0.0363 0.0363 1787.0 0.0363 0.0363 1945.0 0.0363 0.0363 2119.0 0.0363 0.0363 2369.0 0.0363 0.0363 2643.5 0.0363 0.0363 2945.0 0.0363 0.0363 3276.5 0.0363 0.0363 -4.0 4.4 132 9.0 0.0390 0.0390 11.0 0.0390 0.0390 13.5 0.0390 0.0390 16.5 0.0390 0.0390 19.5 0.0390 0.0390 22.5 0.0390 0.0390 26.0 0.0390 0.0390 30.0 0.0390 0.0390 34.5 0.0390 0.0390 40.0 0.0390 0.0390 46.0 0.0390 0.0390 52.5 0.0381 0.0381 60.0 0.0359 0.0359 69.0 0.0341 0.0341 79.0 0.0331 0.0331 90.5 0.0329 0.0329 105.5 0.0338 0.0338 123.5 0.0355 0.0355 143.0 0.0355 0.0355 163.5 0.0355 0.0355 185.0 0.0355 0.0355 208.0 0.0355 0.0355 232.5 0.0355 0.0355 258.5 0.0355 0.0355 286.0 0.0355 0.0355 331.0 0.0355 0.0355 396.0 0.0355 0.0355 468.5 0.0355 0.0355 549.5 0.0355 0.0355 639.0 0.0355 0.0355 738.0 0.0355 0.0355 847.5 0.0355 0.0355 968.5 0.0355 0.0355 1102.0 0.0355 0.0355 1249.5 0.0355 0.0355 1412.0 0.0355 0.0355 1590.5 0.0355 0.0355 1787.0 0.0355 0.0355 1945.0 0.0355 0.0355 2119.0 0.0355 0.0355 2369.0 0.0355 0.0355 2643.5 0.0355 0.0355 2945.0 0.0355 0.0355 3276.5 0.0355 0.0355 -4.4 5.0 132 9.0 0.0390 0.0390 11.0 0.0390 0.0390 13.5 0.0390 0.0390 16.5 0.0390 0.0390 19.5 0.0390 0.0390 22.5 0.0390 0.0390 26.0 0.0390 0.0390 30.0 0.0390 0.0390 34.5 0.0390 0.0390 40.0 0.0390 0.0390 46.0 0.0390 0.0390 52.5 0.0381 0.0381 60.0 0.0359 0.0359 69.0 0.0341 0.0341 79.0 0.0336 0.0336 90.5 0.0336 0.0336 105.5 0.0336 0.0336 123.5 0.0336 0.0336 143.0 0.0336 0.0336 163.5 0.0336 0.0336 185.0 0.0336 0.0336 208.0 0.0336 0.0336 232.5 0.0336 0.0336 258.5 0.0336 0.0336 286.0 0.0336 0.0336 331.0 0.0336 0.0336 396.0 0.0336 0.0336 468.5 0.0336 0.0336 549.5 0.0336 0.0336 639.0 0.0336 0.0336 738.0 0.0336 0.0336 847.5 0.0336 0.0336 968.5 0.0336 0.0336 1102.0 0.0336 0.0336 1249.5 0.0336 0.0336 1412.0 0.0336 0.0336 1590.5 0.0336 0.0336 1787.0 0.0336 0.0336 1945.0 0.0336 0.0336 2119.0 0.0336 0.0336 2369.0 0.0336 0.0336 2643.5 0.0336 0.0336 2945.0 0.0336 0.0336 3276.5 0.0336 0.0336 -5.0 5.4 132 9.0 0.0390 0.0390 11.0 0.0390 0.0390 13.5 0.0390 0.0390 16.5 0.0390 0.0390 19.5 0.0390 0.0390 22.5 0.0390 0.0390 26.0 0.0390 0.0390 30.0 0.0390 0.0390 34.5 0.0390 0.0390 40.0 0.0390 0.0390 46.0 0.0390 0.0390 52.5 0.0390 0.0390 60.0 0.0390 0.0390 69.0 0.0390 0.0390 79.0 0.0390 0.0390 90.5 0.0390 0.0390 105.5 0.0390 0.0390 123.5 0.0390 0.0390 143.0 0.0390 0.0390 163.5 0.0390 0.0390 185.0 0.0390 0.0390 208.0 0.0390 0.0390 232.5 0.0390 0.0390 258.5 0.0390 0.0390 286.0 0.0390 0.0390 331.0 0.0390 0.0390 396.0 0.0390 0.0390 468.5 0.0390 0.0390 549.5 0.0390 0.0390 639.0 0.0390 0.0390 738.0 0.0390 0.0390 847.5 0.0390 0.0390 968.5 0.0390 0.0390 1102.0 0.0390 0.0390 1249.5 0.0390 0.0390 1412.0 0.0390 0.0390 1590.5 0.0390 0.0390 1787.0 0.0390 0.0390 1945.0 0.0390 0.0390 2119.0 0.0390 0.0390 2369.0 0.0390 0.0390 2643.5 0.0390 0.0390 2945.0 0.0390 0.0390 3276.5 0.0390 0.0390 -[SubTotalPt] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --5.0 -4.4 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --4.4 -4.0 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --4.0 -3.5 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --3.5 -3.0 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --3.0 -2.8 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --2.8 -2.6 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --2.6 -2.4 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --2.4 -2.2 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --2.2 -2.0 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --2.0 -1.8 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --1.8 -1.6 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --1.6 -1.4 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --1.4 -1.2 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --1.2 -1.0 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --1.0 -0.8 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --0.8 -0.6 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --0.6 -0.4 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --0.4 -0.2 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --0.2 0.0 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -0.0 0.2 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -0.2 0.4 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -0.4 0.6 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -0.6 0.8 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -0.8 1.0 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -1.0 1.2 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -1.2 1.4 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -1.4 1.6 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -1.6 1.8 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -1.8 2.0 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -2.0 2.2 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -2.2 2.4 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -2.4 2.6 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -2.6 2.8 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -2.8 3.0 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -3.0 3.5 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -3.5 4.0 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -4.0 4.4 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -4.4 5.0 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -5.0 5.4 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -[SubTotalMC] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0634 0.0634 11.0 0.0602 0.0602 13.5 0.0577 0.0577 16.5 0.0554 0.0554 19.5 0.0536 0.0536 22.5 0.0521 0.0521 26.0 0.0507 0.0507 30.0 0.0495 0.0495 34.5 0.0484 0.0484 40.0 0.0473 0.0473 46.0 0.0465 0.0465 52.5 0.0457 0.0457 60.0 0.0450 0.0450 69.0 0.0444 0.0444 79.0 0.0439 0.0439 90.5 0.0434 0.0434 105.5 0.0430 0.0430 123.5 0.0426 0.0426 143.0 0.0423 0.0423 163.5 0.0420 0.0420 185.0 0.0418 0.0418 208.0 0.0417 0.0417 232.5 0.0415 0.0415 258.5 0.0414 0.0414 286.0 0.0414 0.0414 331.0 0.0412 0.0412 396.0 0.0412 0.0412 468.5 0.0411 0.0411 549.5 0.0412 0.0412 639.0 0.0413 0.0413 738.0 0.0414 0.0414 847.5 0.0415 0.0415 968.5 0.0416 0.0416 1102.0 0.0417 0.0417 1249.5 0.0419 0.0419 1412.0 0.0420 0.0420 1590.5 0.0421 0.0421 1787.0 0.0422 0.0422 1945.0 0.0423 0.0423 2119.0 0.0424 0.0424 2369.0 0.0425 0.0425 2643.5 0.0426 0.0426 2945.0 0.0427 0.0427 3276.5 0.0429 0.0429 --5.0 -4.4 132 9.0 0.0629 0.0629 11.0 0.0598 0.0598 13.5 0.0574 0.0574 16.5 0.0552 0.0552 19.5 0.0534 0.0534 22.5 0.0520 0.0520 26.0 0.0506 0.0506 30.0 0.0494 0.0494 34.5 0.0483 0.0483 40.0 0.0473 0.0473 46.0 0.0464 0.0464 52.5 0.0450 0.0450 60.0 0.0423 0.0423 69.0 0.0402 0.0402 79.0 0.0392 0.0392 90.5 0.0387 0.0387 105.5 0.0381 0.0381 123.5 0.0377 0.0377 143.0 0.0374 0.0374 163.5 0.0371 0.0371 185.0 0.0369 0.0369 208.0 0.0367 0.0367 232.5 0.0365 0.0365 258.5 0.0364 0.0364 286.0 0.0363 0.0363 331.0 0.0362 0.0362 396.0 0.0361 0.0361 468.5 0.0360 0.0360 549.5 0.0361 0.0361 639.0 0.0362 0.0362 738.0 0.0364 0.0364 847.5 0.0365 0.0365 968.5 0.0366 0.0366 1102.0 0.0367 0.0367 1249.5 0.0369 0.0369 1412.0 0.0370 0.0370 1590.5 0.0371 0.0371 1787.0 0.0373 0.0373 1945.0 0.0374 0.0374 2119.0 0.0375 0.0375 2369.0 0.0376 0.0376 2643.5 0.0377 0.0377 2945.0 0.0379 0.0379 3276.5 0.0380 0.0380 --4.4 -4.0 132 9.0 0.0635 0.0635 11.0 0.0603 0.0603 13.5 0.0577 0.0577 16.5 0.0554 0.0554 19.5 0.0536 0.0536 22.5 0.0521 0.0521 26.0 0.0507 0.0507 30.0 0.0495 0.0495 34.5 0.0484 0.0484 40.0 0.0473 0.0473 46.0 0.0464 0.0464 52.5 0.0450 0.0450 60.0 0.0424 0.0424 69.0 0.0402 0.0402 79.0 0.0387 0.0387 90.5 0.0381 0.0381 105.5 0.0384 0.0384 123.5 0.0394 0.0394 143.0 0.0391 0.0391 163.5 0.0388 0.0388 185.0 0.0386 0.0386 208.0 0.0384 0.0384 232.5 0.0383 0.0383 258.5 0.0381 0.0381 286.0 0.0381 0.0381 331.0 0.0379 0.0379 396.0 0.0378 0.0378 468.5 0.0378 0.0378 549.5 0.0379 0.0379 639.0 0.0380 0.0380 738.0 0.0381 0.0381 847.5 0.0382 0.0382 968.5 0.0384 0.0384 1102.0 0.0385 0.0385 1249.5 0.0386 0.0386 1412.0 0.0387 0.0387 1590.5 0.0389 0.0389 1787.0 0.0390 0.0390 1945.0 0.0391 0.0391 2119.0 0.0392 0.0392 2369.0 0.0393 0.0393 2643.5 0.0394 0.0394 2945.0 0.0396 0.0396 3276.5 0.0397 0.0397 --4.0 -3.5 132 9.0 0.0716 0.0716 11.0 0.0662 0.0662 13.5 0.0618 0.0618 16.5 0.0582 0.0582 19.5 0.0556 0.0556 22.5 0.0537 0.0537 26.0 0.0519 0.0519 30.0 0.0504 0.0504 34.5 0.0491 0.0491 40.0 0.0479 0.0479 46.0 0.0468 0.0468 52.5 0.0453 0.0453 60.0 0.0426 0.0426 69.0 0.0404 0.0404 79.0 0.0389 0.0389 90.5 0.0382 0.0382 105.5 0.0385 0.0385 123.5 0.0399 0.0399 143.0 0.0399 0.0399 163.5 0.0396 0.0396 185.0 0.0394 0.0394 208.0 0.0392 0.0392 232.5 0.0391 0.0391 258.5 0.0390 0.0390 286.0 0.0389 0.0389 331.0 0.0388 0.0388 396.0 0.0387 0.0387 468.5 0.0386 0.0386 549.5 0.0387 0.0387 639.0 0.0388 0.0388 738.0 0.0389 0.0389 847.5 0.0390 0.0390 968.5 0.0392 0.0392 1102.0 0.0393 0.0393 1249.5 0.0394 0.0394 1412.0 0.0395 0.0395 1590.5 0.0396 0.0396 1787.0 0.0398 0.0398 1945.0 0.0399 0.0399 2119.0 0.0400 0.0400 2369.0 0.0401 0.0401 2643.5 0.0402 0.0402 2945.0 0.0403 0.0403 3276.5 0.0405 0.0405 --3.5 -3.0 132 9.0 0.0710 0.0710 11.0 0.0635 0.0635 13.5 0.0571 0.0571 16.5 0.0518 0.0518 19.5 0.0480 0.0480 22.5 0.0451 0.0451 26.0 0.0425 0.0425 30.0 0.0402 0.0402 34.5 0.0383 0.0383 40.0 0.0364 0.0364 46.0 0.0349 0.0349 52.5 0.0336 0.0336 60.0 0.0323 0.0323 69.0 0.0312 0.0312 79.0 0.0302 0.0302 90.5 0.0294 0.0294 105.5 0.0286 0.0286 123.5 0.0279 0.0279 143.0 0.0274 0.0274 163.5 0.0270 0.0270 185.0 0.0267 0.0267 208.0 0.0265 0.0265 232.5 0.0263 0.0263 258.5 0.0261 0.0261 286.0 0.0260 0.0260 331.0 0.0258 0.0258 396.0 0.0257 0.0257 468.5 0.0256 0.0256 549.5 0.0257 0.0257 639.0 0.0259 0.0259 738.0 0.0260 0.0260 847.5 0.0262 0.0262 968.5 0.0264 0.0264 1102.0 0.0266 0.0266 1249.5 0.0267 0.0267 1412.0 0.0269 0.0269 1590.5 0.0271 0.0271 1787.0 0.0273 0.0273 1945.0 0.0274 0.0274 2119.0 0.0276 0.0276 2369.0 0.0277 0.0277 2643.5 0.0279 0.0279 2945.0 0.0281 0.0281 3276.5 0.0283 0.0283 --3.0 -2.8 132 9.0 0.0542 0.0542 11.0 0.0504 0.0504 13.5 0.0473 0.0473 16.5 0.0445 0.0445 19.5 0.0422 0.0422 22.5 0.0403 0.0403 26.0 0.0385 0.0385 30.0 0.0369 0.0369 34.5 0.0354 0.0354 40.0 0.0339 0.0339 46.0 0.0327 0.0327 52.5 0.0316 0.0316 60.0 0.0304 0.0304 69.0 0.0293 0.0293 79.0 0.0283 0.0283 90.5 0.0274 0.0274 105.5 0.0266 0.0266 123.5 0.0259 0.0259 143.0 0.0253 0.0253 163.5 0.0249 0.0249 185.0 0.0246 0.0246 208.0 0.0244 0.0244 232.5 0.0243 0.0243 258.5 0.0242 0.0242 286.0 0.0241 0.0241 331.0 0.0241 0.0241 396.0 0.0239 0.0239 468.5 0.0239 0.0239 549.5 0.0240 0.0240 639.0 0.0242 0.0242 738.0 0.0244 0.0244 847.5 0.0246 0.0246 968.5 0.0248 0.0248 1102.0 0.0249 0.0249 1249.5 0.0251 0.0251 1412.0 0.0253 0.0253 1590.5 0.0255 0.0255 1787.0 0.0257 0.0257 1945.0 0.0259 0.0259 2119.0 0.0260 0.0260 2369.0 0.0262 0.0262 2643.5 0.0264 0.0264 2945.0 0.0266 0.0266 3276.5 0.0268 0.0268 --2.8 -2.6 132 9.0 0.0627 0.0627 11.0 0.0563 0.0563 13.5 0.0509 0.0509 16.5 0.0464 0.0464 19.5 0.0430 0.0430 22.5 0.0405 0.0405 26.0 0.0381 0.0381 30.0 0.0360 0.0360 34.5 0.0341 0.0341 40.0 0.0323 0.0323 46.0 0.0308 0.0308 52.5 0.0293 0.0293 60.0 0.0274 0.0274 69.0 0.0255 0.0255 79.0 0.0238 0.0238 90.5 0.0223 0.0223 105.5 0.0207 0.0207 123.5 0.0193 0.0193 143.0 0.0181 0.0181 163.5 0.0172 0.0172 185.0 0.0166 0.0166 208.0 0.0162 0.0162 232.5 0.0159 0.0159 258.5 0.0158 0.0158 286.0 0.0159 0.0159 331.0 0.0161 0.0161 396.0 0.0168 0.0168 468.5 0.0172 0.0172 549.5 0.0174 0.0174 639.0 0.0176 0.0176 738.0 0.0179 0.0179 847.5 0.0181 0.0181 968.5 0.0184 0.0184 1102.0 0.0186 0.0186 1249.5 0.0189 0.0189 1412.0 0.0192 0.0192 1590.5 0.0194 0.0194 1787.0 0.0197 0.0197 1945.0 0.0198 0.0198 2119.0 0.0200 0.0200 2369.0 0.0203 0.0203 2643.5 0.0205 0.0205 2945.0 0.0208 0.0208 3276.5 0.0210 0.0210 --2.6 -2.4 132 9.0 0.0774 0.0774 11.0 0.0683 0.0683 13.5 0.0602 0.0602 16.5 0.0535 0.0535 19.5 0.0488 0.0488 22.5 0.0453 0.0453 26.0 0.0422 0.0422 30.0 0.0395 0.0395 34.5 0.0371 0.0371 40.0 0.0349 0.0349 46.0 0.0331 0.0331 52.5 0.0313 0.0313 60.0 0.0291 0.0291 69.0 0.0269 0.0269 79.0 0.0250 0.0250 90.5 0.0232 0.0232 105.5 0.0213 0.0213 123.5 0.0196 0.0196 143.0 0.0183 0.0183 163.5 0.0173 0.0173 185.0 0.0165 0.0165 208.0 0.0159 0.0159 232.5 0.0156 0.0156 258.5 0.0154 0.0154 286.0 0.0154 0.0154 331.0 0.0156 0.0156 396.0 0.0163 0.0163 468.5 0.0170 0.0170 549.5 0.0176 0.0176 639.0 0.0180 0.0180 738.0 0.0183 0.0183 847.5 0.0185 0.0185 968.5 0.0188 0.0188 1102.0 0.0190 0.0190 1249.5 0.0193 0.0193 1412.0 0.0195 0.0195 1590.5 0.0197 0.0197 1787.0 0.0200 0.0200 1945.0 0.0202 0.0202 2119.0 0.0204 0.0204 2369.0 0.0206 0.0206 2643.5 0.0209 0.0209 2945.0 0.0211 0.0211 3276.5 0.0213 0.0213 --2.4 -2.2 132 9.0 0.0613 0.0613 11.0 0.0551 0.0551 13.5 0.0495 0.0495 16.5 0.0448 0.0448 19.5 0.0412 0.0412 22.5 0.0384 0.0384 26.0 0.0357 0.0357 30.0 0.0333 0.0333 34.5 0.0311 0.0311 40.0 0.0290 0.0290 46.0 0.0272 0.0272 52.5 0.0256 0.0256 60.0 0.0239 0.0239 69.0 0.0223 0.0223 79.0 0.0208 0.0208 90.5 0.0195 0.0195 105.5 0.0180 0.0180 123.5 0.0167 0.0167 143.0 0.0156 0.0156 163.5 0.0147 0.0147 185.0 0.0140 0.0140 208.0 0.0134 0.0134 232.5 0.0129 0.0129 258.5 0.0125 0.0125 286.0 0.0122 0.0122 331.0 0.0119 0.0119 396.0 0.0117 0.0117 468.5 0.0117 0.0117 549.5 0.0123 0.0123 639.0 0.0128 0.0128 738.0 0.0131 0.0131 847.5 0.0135 0.0135 968.5 0.0138 0.0138 1102.0 0.0141 0.0141 1249.5 0.0145 0.0145 1412.0 0.0148 0.0148 1590.5 0.0151 0.0151 1787.0 0.0154 0.0154 1945.0 0.0157 0.0157 2119.0 0.0159 0.0159 2369.0 0.0162 0.0162 2643.5 0.0165 0.0165 2945.0 0.0169 0.0169 3276.5 0.0172 0.0172 --2.2 -2.0 132 9.0 0.0554 0.0554 11.0 0.0503 0.0503 13.5 0.0459 0.0459 16.5 0.0420 0.0420 19.5 0.0390 0.0390 22.5 0.0366 0.0366 26.0 0.0342 0.0342 30.0 0.0320 0.0320 34.5 0.0301 0.0301 40.0 0.0282 0.0282 46.0 0.0265 0.0265 52.5 0.0250 0.0250 60.0 0.0233 0.0233 69.0 0.0218 0.0218 79.0 0.0204 0.0204 90.5 0.0191 0.0191 105.5 0.0177 0.0177 123.5 0.0164 0.0164 143.0 0.0154 0.0154 163.5 0.0145 0.0145 185.0 0.0138 0.0138 208.0 0.0132 0.0132 232.5 0.0127 0.0127 258.5 0.0123 0.0123 286.0 0.0119 0.0119 331.0 0.0116 0.0116 396.0 0.0114 0.0114 468.5 0.0114 0.0114 549.5 0.0119 0.0119 639.0 0.0126 0.0126 738.0 0.0132 0.0132 847.5 0.0137 0.0137 968.5 0.0141 0.0141 1102.0 0.0144 0.0144 1249.5 0.0147 0.0147 1412.0 0.0151 0.0151 1590.5 0.0154 0.0154 1787.0 0.0157 0.0157 1945.0 0.0159 0.0159 2119.0 0.0162 0.0162 2369.0 0.0165 0.0165 2643.5 0.0168 0.0168 2945.0 0.0171 0.0171 3276.5 0.0174 0.0174 --2.0 -1.8 132 9.0 0.0501 0.0501 11.0 0.0458 0.0458 13.5 0.0423 0.0423 16.5 0.0390 0.0390 19.5 0.0364 0.0364 22.5 0.0342 0.0342 26.0 0.0320 0.0320 30.0 0.0300 0.0300 34.5 0.0281 0.0281 40.0 0.0262 0.0262 46.0 0.0246 0.0246 52.5 0.0231 0.0231 60.0 0.0217 0.0217 69.0 0.0203 0.0203 79.0 0.0190 0.0190 90.5 0.0178 0.0178 105.5 0.0166 0.0166 123.5 0.0155 0.0155 143.0 0.0145 0.0145 163.5 0.0137 0.0137 185.0 0.0130 0.0130 208.0 0.0125 0.0125 232.5 0.0120 0.0120 258.5 0.0116 0.0116 286.0 0.0113 0.0113 331.0 0.0109 0.0109 396.0 0.0105 0.0105 468.5 0.0104 0.0104 549.5 0.0108 0.0108 639.0 0.0112 0.0112 738.0 0.0117 0.0117 847.5 0.0122 0.0122 968.5 0.0125 0.0125 1102.0 0.0129 0.0129 1249.5 0.0133 0.0133 1412.0 0.0136 0.0136 1590.5 0.0140 0.0140 1787.0 0.0143 0.0143 1945.0 0.0146 0.0146 2119.0 0.0149 0.0149 2369.0 0.0152 0.0152 2643.5 0.0155 0.0155 2945.0 0.0158 0.0158 3276.5 0.0162 0.0162 --1.8 -1.6 132 9.0 0.0496 0.0496 11.0 0.0455 0.0455 13.5 0.0422 0.0422 16.5 0.0390 0.0390 19.5 0.0365 0.0365 22.5 0.0343 0.0343 26.0 0.0322 0.0322 30.0 0.0302 0.0302 34.5 0.0284 0.0284 40.0 0.0266 0.0266 46.0 0.0250 0.0250 52.5 0.0235 0.0235 60.0 0.0220 0.0220 69.0 0.0206 0.0206 79.0 0.0193 0.0193 90.5 0.0181 0.0181 105.5 0.0169 0.0169 123.5 0.0157 0.0157 143.0 0.0147 0.0147 163.5 0.0138 0.0138 185.0 0.0131 0.0131 208.0 0.0126 0.0126 232.5 0.0121 0.0121 258.5 0.0116 0.0116 286.0 0.0113 0.0113 331.0 0.0109 0.0109 396.0 0.0106 0.0106 468.5 0.0104 0.0104 549.5 0.0109 0.0109 639.0 0.0114 0.0114 738.0 0.0119 0.0119 847.5 0.0124 0.0124 968.5 0.0130 0.0130 1102.0 0.0135 0.0135 1249.5 0.0138 0.0138 1412.0 0.0142 0.0142 1590.5 0.0145 0.0145 1787.0 0.0149 0.0149 1945.0 0.0151 0.0151 2119.0 0.0153 0.0153 2369.0 0.0157 0.0157 2643.5 0.0160 0.0160 2945.0 0.0163 0.0163 3276.5 0.0166 0.0166 --1.6 -1.4 132 9.0 0.0492 0.0492 11.0 0.0451 0.0451 13.5 0.0417 0.0417 16.5 0.0385 0.0385 19.5 0.0359 0.0359 22.5 0.0338 0.0338 26.0 0.0316 0.0316 30.0 0.0296 0.0296 34.5 0.0277 0.0277 40.0 0.0259 0.0259 46.0 0.0242 0.0242 52.5 0.0228 0.0228 60.0 0.0214 0.0214 69.0 0.0200 0.0200 79.0 0.0188 0.0188 90.5 0.0176 0.0176 105.5 0.0164 0.0164 123.5 0.0153 0.0153 143.0 0.0144 0.0144 163.5 0.0136 0.0136 185.0 0.0130 0.0130 208.0 0.0124 0.0124 232.5 0.0120 0.0120 258.5 0.0116 0.0116 286.0 0.0112 0.0112 331.0 0.0108 0.0108 396.0 0.0105 0.0105 468.5 0.0103 0.0103 549.5 0.0107 0.0107 639.0 0.0111 0.0111 738.0 0.0115 0.0115 847.5 0.0120 0.0120 968.5 0.0124 0.0124 1102.0 0.0128 0.0128 1249.5 0.0132 0.0132 1412.0 0.0136 0.0136 1590.5 0.0139 0.0139 1787.0 0.0143 0.0143 1945.0 0.0145 0.0145 2119.0 0.0148 0.0148 2369.0 0.0151 0.0151 2643.5 0.0154 0.0154 2945.0 0.0158 0.0158 3276.5 0.0161 0.0161 --1.4 -1.2 132 9.0 0.0488 0.0488 11.0 0.0447 0.0447 13.5 0.0413 0.0413 16.5 0.0382 0.0382 19.5 0.0355 0.0355 22.5 0.0333 0.0333 26.0 0.0312 0.0312 30.0 0.0291 0.0291 34.5 0.0272 0.0272 40.0 0.0253 0.0253 46.0 0.0236 0.0236 52.5 0.0221 0.0221 60.0 0.0207 0.0207 69.0 0.0194 0.0194 79.0 0.0182 0.0182 90.5 0.0170 0.0170 105.5 0.0158 0.0158 123.5 0.0147 0.0147 143.0 0.0138 0.0138 163.5 0.0130 0.0130 185.0 0.0124 0.0124 208.0 0.0118 0.0118 232.5 0.0114 0.0114 258.5 0.0110 0.0110 286.0 0.0106 0.0106 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0100 0.0100 639.0 0.0104 0.0104 738.0 0.0108 0.0108 847.5 0.0112 0.0112 968.5 0.0116 0.0116 1102.0 0.0120 0.0120 1249.5 0.0124 0.0124 1412.0 0.0128 0.0128 1590.5 0.0132 0.0132 1787.0 0.0136 0.0136 1945.0 0.0138 0.0138 2119.0 0.0141 0.0141 2369.0 0.0145 0.0145 2643.5 0.0148 0.0148 2945.0 0.0152 0.0152 3276.5 0.0155 0.0155 --1.2 -1.0 132 9.0 0.0491 0.0491 11.0 0.0450 0.0450 13.5 0.0416 0.0416 16.5 0.0384 0.0384 19.5 0.0358 0.0358 22.5 0.0336 0.0336 26.0 0.0315 0.0315 30.0 0.0295 0.0295 34.5 0.0276 0.0276 40.0 0.0257 0.0257 46.0 0.0241 0.0241 52.5 0.0226 0.0226 60.0 0.0212 0.0212 69.0 0.0198 0.0198 79.0 0.0185 0.0185 90.5 0.0173 0.0173 105.5 0.0161 0.0161 123.5 0.0150 0.0150 143.0 0.0140 0.0140 163.5 0.0132 0.0132 185.0 0.0125 0.0125 208.0 0.0119 0.0119 232.5 0.0114 0.0114 258.5 0.0110 0.0110 286.0 0.0106 0.0106 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0100 0.0100 639.0 0.0105 0.0105 738.0 0.0109 0.0109 847.5 0.0114 0.0114 968.5 0.0118 0.0118 1102.0 0.0123 0.0123 1249.5 0.0127 0.0127 1412.0 0.0132 0.0132 1590.5 0.0135 0.0135 1787.0 0.0139 0.0139 1945.0 0.0142 0.0142 2119.0 0.0144 0.0144 2369.0 0.0148 0.0148 2643.5 0.0151 0.0151 2945.0 0.0154 0.0154 3276.5 0.0158 0.0158 --1.0 -0.8 132 9.0 0.0496 0.0496 11.0 0.0455 0.0455 13.5 0.0422 0.0422 16.5 0.0391 0.0391 19.5 0.0365 0.0365 22.5 0.0344 0.0344 26.0 0.0323 0.0323 30.0 0.0303 0.0303 34.5 0.0285 0.0285 40.0 0.0267 0.0267 46.0 0.0251 0.0251 52.5 0.0237 0.0237 60.0 0.0222 0.0222 69.0 0.0207 0.0207 79.0 0.0193 0.0193 90.5 0.0181 0.0181 105.5 0.0167 0.0167 123.5 0.0155 0.0155 143.0 0.0144 0.0144 163.5 0.0135 0.0135 185.0 0.0128 0.0128 208.0 0.0121 0.0121 232.5 0.0116 0.0116 258.5 0.0111 0.0111 286.0 0.0107 0.0107 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0101 0.0101 639.0 0.0106 0.0106 738.0 0.0111 0.0111 847.5 0.0117 0.0117 968.5 0.0122 0.0122 1102.0 0.0128 0.0128 1249.5 0.0133 0.0133 1412.0 0.0138 0.0138 1590.5 0.0143 0.0143 1787.0 0.0146 0.0146 1945.0 0.0148 0.0148 2119.0 0.0151 0.0151 2369.0 0.0154 0.0154 2643.5 0.0158 0.0158 2945.0 0.0161 0.0161 3276.5 0.0164 0.0164 --0.8 -0.6 132 9.0 0.0500 0.0500 11.0 0.0460 0.0460 13.5 0.0427 0.0427 16.5 0.0396 0.0396 19.5 0.0370 0.0370 22.5 0.0349 0.0349 26.0 0.0329 0.0329 30.0 0.0309 0.0309 34.5 0.0291 0.0291 40.0 0.0274 0.0274 46.0 0.0258 0.0258 52.5 0.0244 0.0244 60.0 0.0228 0.0228 69.0 0.0213 0.0213 79.0 0.0199 0.0199 90.5 0.0186 0.0186 105.5 0.0172 0.0172 123.5 0.0159 0.0159 143.0 0.0147 0.0147 163.5 0.0138 0.0138 185.0 0.0130 0.0130 208.0 0.0123 0.0123 232.5 0.0117 0.0117 258.5 0.0112 0.0112 286.0 0.0107 0.0107 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0100 0.0100 639.0 0.0106 0.0106 738.0 0.0112 0.0112 847.5 0.0118 0.0118 968.5 0.0123 0.0123 1102.0 0.0129 0.0129 1249.5 0.0135 0.0135 1412.0 0.0141 0.0141 1590.5 0.0146 0.0146 1787.0 0.0149 0.0149 1945.0 0.0151 0.0151 2119.0 0.0154 0.0154 2369.0 0.0157 0.0157 2643.5 0.0160 0.0160 2945.0 0.0163 0.0163 3276.5 0.0167 0.0167 --0.6 -0.4 132 9.0 0.0493 0.0493 11.0 0.0452 0.0452 13.5 0.0419 0.0419 16.5 0.0388 0.0388 19.5 0.0362 0.0362 22.5 0.0340 0.0340 26.0 0.0319 0.0319 30.0 0.0299 0.0299 34.5 0.0281 0.0281 40.0 0.0263 0.0263 46.0 0.0246 0.0246 52.5 0.0232 0.0232 60.0 0.0217 0.0217 69.0 0.0203 0.0203 79.0 0.0190 0.0190 90.5 0.0178 0.0178 105.5 0.0165 0.0165 123.5 0.0153 0.0153 143.0 0.0142 0.0142 163.5 0.0134 0.0134 185.0 0.0127 0.0127 208.0 0.0120 0.0120 232.5 0.0115 0.0115 258.5 0.0111 0.0111 286.0 0.0107 0.0107 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0100 0.0100 639.0 0.0105 0.0105 738.0 0.0109 0.0109 847.5 0.0114 0.0114 968.5 0.0119 0.0119 1102.0 0.0124 0.0124 1249.5 0.0129 0.0129 1412.0 0.0134 0.0134 1590.5 0.0138 0.0138 1787.0 0.0141 0.0141 1945.0 0.0144 0.0144 2119.0 0.0147 0.0147 2369.0 0.0150 0.0150 2643.5 0.0153 0.0153 2945.0 0.0157 0.0157 3276.5 0.0160 0.0160 --0.4 -0.2 132 9.0 0.0496 0.0496 11.0 0.0456 0.0456 13.5 0.0423 0.0423 16.5 0.0392 0.0392 19.5 0.0367 0.0367 22.5 0.0346 0.0346 26.0 0.0325 0.0325 30.0 0.0306 0.0306 34.5 0.0288 0.0288 40.0 0.0270 0.0270 46.0 0.0254 0.0254 52.5 0.0240 0.0240 60.0 0.0224 0.0224 69.0 0.0210 0.0210 79.0 0.0196 0.0196 90.5 0.0183 0.0183 105.5 0.0170 0.0170 123.5 0.0157 0.0157 143.0 0.0146 0.0146 163.5 0.0137 0.0137 185.0 0.0129 0.0129 208.0 0.0122 0.0122 232.5 0.0116 0.0116 258.5 0.0112 0.0112 286.0 0.0107 0.0107 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0100 0.0100 639.0 0.0105 0.0105 738.0 0.0111 0.0111 847.5 0.0116 0.0116 968.5 0.0122 0.0122 1102.0 0.0127 0.0127 1249.5 0.0133 0.0133 1412.0 0.0138 0.0138 1590.5 0.0142 0.0142 1787.0 0.0146 0.0146 1945.0 0.0148 0.0148 2119.0 0.0151 0.0151 2369.0 0.0154 0.0154 2643.5 0.0157 0.0157 2945.0 0.0161 0.0161 3276.5 0.0164 0.0164 --0.2 0.0 132 9.0 0.0488 0.0488 11.0 0.0447 0.0447 13.5 0.0414 0.0414 16.5 0.0382 0.0382 19.5 0.0357 0.0357 22.5 0.0335 0.0335 26.0 0.0313 0.0313 30.0 0.0293 0.0293 34.5 0.0274 0.0274 40.0 0.0256 0.0256 46.0 0.0239 0.0239 52.5 0.0224 0.0224 60.0 0.0210 0.0210 69.0 0.0196 0.0196 79.0 0.0184 0.0184 90.5 0.0172 0.0172 105.5 0.0160 0.0160 123.5 0.0149 0.0149 143.0 0.0139 0.0139 163.5 0.0131 0.0131 185.0 0.0125 0.0125 208.0 0.0119 0.0119 232.5 0.0114 0.0114 258.5 0.0110 0.0110 286.0 0.0106 0.0106 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0100 0.0100 639.0 0.0104 0.0104 738.0 0.0108 0.0108 847.5 0.0113 0.0113 968.5 0.0117 0.0117 1102.0 0.0121 0.0121 1249.5 0.0126 0.0126 1412.0 0.0130 0.0130 1590.5 0.0134 0.0134 1787.0 0.0137 0.0137 1945.0 0.0140 0.0140 2119.0 0.0143 0.0143 2369.0 0.0146 0.0146 2643.5 0.0150 0.0150 2945.0 0.0153 0.0153 3276.5 0.0156 0.0156 -0.0 0.2 132 9.0 0.0488 0.0488 11.0 0.0447 0.0447 13.5 0.0414 0.0414 16.5 0.0382 0.0382 19.5 0.0357 0.0357 22.5 0.0335 0.0335 26.0 0.0313 0.0313 30.0 0.0293 0.0293 34.5 0.0274 0.0274 40.0 0.0256 0.0256 46.0 0.0239 0.0239 52.5 0.0224 0.0224 60.0 0.0210 0.0210 69.0 0.0196 0.0196 79.0 0.0184 0.0184 90.5 0.0172 0.0172 105.5 0.0160 0.0160 123.5 0.0149 0.0149 143.0 0.0139 0.0139 163.5 0.0131 0.0131 185.0 0.0125 0.0125 208.0 0.0119 0.0119 232.5 0.0114 0.0114 258.5 0.0110 0.0110 286.0 0.0106 0.0106 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0100 0.0100 639.0 0.0104 0.0104 738.0 0.0108 0.0108 847.5 0.0113 0.0113 968.5 0.0117 0.0117 1102.0 0.0121 0.0121 1249.5 0.0126 0.0126 1412.0 0.0130 0.0130 1590.5 0.0134 0.0134 1787.0 0.0137 0.0137 1945.0 0.0140 0.0140 2119.0 0.0143 0.0143 2369.0 0.0146 0.0146 2643.5 0.0150 0.0150 2945.0 0.0153 0.0153 3276.5 0.0156 0.0156 -0.2 0.4 132 9.0 0.0496 0.0496 11.0 0.0456 0.0456 13.5 0.0423 0.0423 16.5 0.0392 0.0392 19.5 0.0367 0.0367 22.5 0.0346 0.0346 26.0 0.0325 0.0325 30.0 0.0306 0.0306 34.5 0.0288 0.0288 40.0 0.0270 0.0270 46.0 0.0254 0.0254 52.5 0.0240 0.0240 60.0 0.0224 0.0224 69.0 0.0210 0.0210 79.0 0.0196 0.0196 90.5 0.0183 0.0183 105.5 0.0170 0.0170 123.5 0.0157 0.0157 143.0 0.0146 0.0146 163.5 0.0137 0.0137 185.0 0.0129 0.0129 208.0 0.0122 0.0122 232.5 0.0116 0.0116 258.5 0.0112 0.0112 286.0 0.0107 0.0107 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0100 0.0100 639.0 0.0105 0.0105 738.0 0.0111 0.0111 847.5 0.0116 0.0116 968.5 0.0122 0.0122 1102.0 0.0127 0.0127 1249.5 0.0133 0.0133 1412.0 0.0138 0.0138 1590.5 0.0142 0.0142 1787.0 0.0146 0.0146 1945.0 0.0148 0.0148 2119.0 0.0151 0.0151 2369.0 0.0154 0.0154 2643.5 0.0157 0.0157 2945.0 0.0161 0.0161 3276.5 0.0164 0.0164 -0.4 0.6 132 9.0 0.0493 0.0493 11.0 0.0452 0.0452 13.5 0.0419 0.0419 16.5 0.0388 0.0388 19.5 0.0362 0.0362 22.5 0.0340 0.0340 26.0 0.0319 0.0319 30.0 0.0299 0.0299 34.5 0.0281 0.0281 40.0 0.0263 0.0263 46.0 0.0246 0.0246 52.5 0.0232 0.0232 60.0 0.0217 0.0217 69.0 0.0203 0.0203 79.0 0.0190 0.0190 90.5 0.0178 0.0178 105.5 0.0165 0.0165 123.5 0.0153 0.0153 143.0 0.0142 0.0142 163.5 0.0134 0.0134 185.0 0.0127 0.0127 208.0 0.0120 0.0120 232.5 0.0115 0.0115 258.5 0.0111 0.0111 286.0 0.0107 0.0107 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0100 0.0100 639.0 0.0105 0.0105 738.0 0.0109 0.0109 847.5 0.0114 0.0114 968.5 0.0119 0.0119 1102.0 0.0124 0.0124 1249.5 0.0129 0.0129 1412.0 0.0134 0.0134 1590.5 0.0138 0.0138 1787.0 0.0141 0.0141 1945.0 0.0144 0.0144 2119.0 0.0147 0.0147 2369.0 0.0150 0.0150 2643.5 0.0153 0.0153 2945.0 0.0157 0.0157 3276.5 0.0160 0.0160 -0.6 0.8 132 9.0 0.0500 0.0500 11.0 0.0460 0.0460 13.5 0.0427 0.0427 16.5 0.0396 0.0396 19.5 0.0370 0.0370 22.5 0.0349 0.0349 26.0 0.0329 0.0329 30.0 0.0309 0.0309 34.5 0.0291 0.0291 40.0 0.0274 0.0274 46.0 0.0258 0.0258 52.5 0.0244 0.0244 60.0 0.0228 0.0228 69.0 0.0213 0.0213 79.0 0.0199 0.0199 90.5 0.0186 0.0186 105.5 0.0172 0.0172 123.5 0.0159 0.0159 143.0 0.0147 0.0147 163.5 0.0138 0.0138 185.0 0.0130 0.0130 208.0 0.0123 0.0123 232.5 0.0117 0.0117 258.5 0.0112 0.0112 286.0 0.0107 0.0107 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0100 0.0100 639.0 0.0106 0.0106 738.0 0.0112 0.0112 847.5 0.0118 0.0118 968.5 0.0123 0.0123 1102.0 0.0129 0.0129 1249.5 0.0135 0.0135 1412.0 0.0141 0.0141 1590.5 0.0146 0.0146 1787.0 0.0149 0.0149 1945.0 0.0151 0.0151 2119.0 0.0154 0.0154 2369.0 0.0157 0.0157 2643.5 0.0160 0.0160 2945.0 0.0163 0.0163 3276.5 0.0167 0.0167 -0.8 1.0 132 9.0 0.0496 0.0496 11.0 0.0455 0.0455 13.5 0.0422 0.0422 16.5 0.0391 0.0391 19.5 0.0365 0.0365 22.5 0.0344 0.0344 26.0 0.0323 0.0323 30.0 0.0303 0.0303 34.5 0.0285 0.0285 40.0 0.0267 0.0267 46.0 0.0251 0.0251 52.5 0.0237 0.0237 60.0 0.0222 0.0222 69.0 0.0207 0.0207 79.0 0.0193 0.0193 90.5 0.0181 0.0181 105.5 0.0167 0.0167 123.5 0.0155 0.0155 143.0 0.0144 0.0144 163.5 0.0135 0.0135 185.0 0.0128 0.0128 208.0 0.0121 0.0121 232.5 0.0116 0.0116 258.5 0.0111 0.0111 286.0 0.0107 0.0107 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0101 0.0101 639.0 0.0106 0.0106 738.0 0.0111 0.0111 847.5 0.0117 0.0117 968.5 0.0122 0.0122 1102.0 0.0128 0.0128 1249.5 0.0133 0.0133 1412.0 0.0138 0.0138 1590.5 0.0143 0.0143 1787.0 0.0146 0.0146 1945.0 0.0148 0.0148 2119.0 0.0151 0.0151 2369.0 0.0154 0.0154 2643.5 0.0158 0.0158 2945.0 0.0161 0.0161 3276.5 0.0164 0.0164 -1.0 1.2 132 9.0 0.0491 0.0491 11.0 0.0450 0.0450 13.5 0.0416 0.0416 16.5 0.0384 0.0384 19.5 0.0358 0.0358 22.5 0.0336 0.0336 26.0 0.0315 0.0315 30.0 0.0295 0.0295 34.5 0.0276 0.0276 40.0 0.0257 0.0257 46.0 0.0241 0.0241 52.5 0.0226 0.0226 60.0 0.0212 0.0212 69.0 0.0198 0.0198 79.0 0.0185 0.0185 90.5 0.0173 0.0173 105.5 0.0161 0.0161 123.5 0.0150 0.0150 143.0 0.0140 0.0140 163.5 0.0132 0.0132 185.0 0.0125 0.0125 208.0 0.0119 0.0119 232.5 0.0114 0.0114 258.5 0.0110 0.0110 286.0 0.0106 0.0106 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0100 0.0100 639.0 0.0105 0.0105 738.0 0.0109 0.0109 847.5 0.0114 0.0114 968.5 0.0118 0.0118 1102.0 0.0123 0.0123 1249.5 0.0127 0.0127 1412.0 0.0132 0.0132 1590.5 0.0135 0.0135 1787.0 0.0139 0.0139 1945.0 0.0142 0.0142 2119.0 0.0144 0.0144 2369.0 0.0148 0.0148 2643.5 0.0151 0.0151 2945.0 0.0154 0.0154 3276.5 0.0158 0.0158 -1.2 1.4 132 9.0 0.0488 0.0488 11.0 0.0447 0.0447 13.5 0.0413 0.0413 16.5 0.0382 0.0382 19.5 0.0355 0.0355 22.5 0.0333 0.0333 26.0 0.0312 0.0312 30.0 0.0291 0.0291 34.5 0.0272 0.0272 40.0 0.0253 0.0253 46.0 0.0236 0.0236 52.5 0.0221 0.0221 60.0 0.0207 0.0207 69.0 0.0194 0.0194 79.0 0.0182 0.0182 90.5 0.0170 0.0170 105.5 0.0158 0.0158 123.5 0.0147 0.0147 143.0 0.0138 0.0138 163.5 0.0130 0.0130 185.0 0.0124 0.0124 208.0 0.0118 0.0118 232.5 0.0114 0.0114 258.5 0.0110 0.0110 286.0 0.0106 0.0106 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0100 0.0100 639.0 0.0104 0.0104 738.0 0.0108 0.0108 847.5 0.0112 0.0112 968.5 0.0116 0.0116 1102.0 0.0120 0.0120 1249.5 0.0124 0.0124 1412.0 0.0128 0.0128 1590.5 0.0132 0.0132 1787.0 0.0136 0.0136 1945.0 0.0138 0.0138 2119.0 0.0141 0.0141 2369.0 0.0145 0.0145 2643.5 0.0148 0.0148 2945.0 0.0152 0.0152 3276.5 0.0155 0.0155 -1.4 1.6 132 9.0 0.0492 0.0492 11.0 0.0451 0.0451 13.5 0.0417 0.0417 16.5 0.0385 0.0385 19.5 0.0359 0.0359 22.5 0.0338 0.0338 26.0 0.0316 0.0316 30.0 0.0296 0.0296 34.5 0.0277 0.0277 40.0 0.0259 0.0259 46.0 0.0242 0.0242 52.5 0.0228 0.0228 60.0 0.0214 0.0214 69.0 0.0200 0.0200 79.0 0.0188 0.0188 90.5 0.0176 0.0176 105.5 0.0164 0.0164 123.5 0.0153 0.0153 143.0 0.0144 0.0144 163.5 0.0136 0.0136 185.0 0.0130 0.0130 208.0 0.0124 0.0124 232.5 0.0120 0.0120 258.5 0.0116 0.0116 286.0 0.0112 0.0112 331.0 0.0108 0.0108 396.0 0.0105 0.0105 468.5 0.0103 0.0103 549.5 0.0107 0.0107 639.0 0.0111 0.0111 738.0 0.0115 0.0115 847.5 0.0120 0.0120 968.5 0.0124 0.0124 1102.0 0.0128 0.0128 1249.5 0.0132 0.0132 1412.0 0.0136 0.0136 1590.5 0.0139 0.0139 1787.0 0.0143 0.0143 1945.0 0.0145 0.0145 2119.0 0.0148 0.0148 2369.0 0.0151 0.0151 2643.5 0.0154 0.0154 2945.0 0.0158 0.0158 3276.5 0.0161 0.0161 -1.6 1.8 132 9.0 0.0496 0.0496 11.0 0.0455 0.0455 13.5 0.0422 0.0422 16.5 0.0390 0.0390 19.5 0.0365 0.0365 22.5 0.0343 0.0343 26.0 0.0322 0.0322 30.0 0.0302 0.0302 34.5 0.0284 0.0284 40.0 0.0266 0.0266 46.0 0.0250 0.0250 52.5 0.0235 0.0235 60.0 0.0220 0.0220 69.0 0.0206 0.0206 79.0 0.0193 0.0193 90.5 0.0181 0.0181 105.5 0.0169 0.0169 123.5 0.0157 0.0157 143.0 0.0147 0.0147 163.5 0.0138 0.0138 185.0 0.0131 0.0131 208.0 0.0126 0.0126 232.5 0.0121 0.0121 258.5 0.0116 0.0116 286.0 0.0113 0.0113 331.0 0.0109 0.0109 396.0 0.0106 0.0106 468.5 0.0104 0.0104 549.5 0.0109 0.0109 639.0 0.0114 0.0114 738.0 0.0119 0.0119 847.5 0.0124 0.0124 968.5 0.0130 0.0130 1102.0 0.0135 0.0135 1249.5 0.0138 0.0138 1412.0 0.0142 0.0142 1590.5 0.0145 0.0145 1787.0 0.0149 0.0149 1945.0 0.0151 0.0151 2119.0 0.0153 0.0153 2369.0 0.0157 0.0157 2643.5 0.0160 0.0160 2945.0 0.0163 0.0163 3276.5 0.0166 0.0166 -1.8 2.0 132 9.0 0.0501 0.0501 11.0 0.0458 0.0458 13.5 0.0423 0.0423 16.5 0.0390 0.0390 19.5 0.0364 0.0364 22.5 0.0342 0.0342 26.0 0.0320 0.0320 30.0 0.0300 0.0300 34.5 0.0281 0.0281 40.0 0.0262 0.0262 46.0 0.0246 0.0246 52.5 0.0231 0.0231 60.0 0.0217 0.0217 69.0 0.0203 0.0203 79.0 0.0190 0.0190 90.5 0.0178 0.0178 105.5 0.0166 0.0166 123.5 0.0155 0.0155 143.0 0.0145 0.0145 163.5 0.0137 0.0137 185.0 0.0130 0.0130 208.0 0.0125 0.0125 232.5 0.0120 0.0120 258.5 0.0116 0.0116 286.0 0.0113 0.0113 331.0 0.0109 0.0109 396.0 0.0105 0.0105 468.5 0.0104 0.0104 549.5 0.0108 0.0108 639.0 0.0112 0.0112 738.0 0.0117 0.0117 847.5 0.0122 0.0122 968.5 0.0125 0.0125 1102.0 0.0129 0.0129 1249.5 0.0133 0.0133 1412.0 0.0136 0.0136 1590.5 0.0140 0.0140 1787.0 0.0143 0.0143 1945.0 0.0146 0.0146 2119.0 0.0149 0.0149 2369.0 0.0152 0.0152 2643.5 0.0155 0.0155 2945.0 0.0158 0.0158 3276.5 0.0162 0.0162 -2.0 2.2 132 9.0 0.0554 0.0554 11.0 0.0503 0.0503 13.5 0.0459 0.0459 16.5 0.0420 0.0420 19.5 0.0390 0.0390 22.5 0.0366 0.0366 26.0 0.0342 0.0342 30.0 0.0320 0.0320 34.5 0.0301 0.0301 40.0 0.0282 0.0282 46.0 0.0265 0.0265 52.5 0.0250 0.0250 60.0 0.0233 0.0233 69.0 0.0218 0.0218 79.0 0.0204 0.0204 90.5 0.0191 0.0191 105.5 0.0177 0.0177 123.5 0.0164 0.0164 143.0 0.0154 0.0154 163.5 0.0145 0.0145 185.0 0.0138 0.0138 208.0 0.0132 0.0132 232.5 0.0127 0.0127 258.5 0.0123 0.0123 286.0 0.0119 0.0119 331.0 0.0116 0.0116 396.0 0.0114 0.0114 468.5 0.0114 0.0114 549.5 0.0119 0.0119 639.0 0.0126 0.0126 738.0 0.0132 0.0132 847.5 0.0137 0.0137 968.5 0.0141 0.0141 1102.0 0.0144 0.0144 1249.5 0.0147 0.0147 1412.0 0.0151 0.0151 1590.5 0.0154 0.0154 1787.0 0.0157 0.0157 1945.0 0.0159 0.0159 2119.0 0.0162 0.0162 2369.0 0.0165 0.0165 2643.5 0.0168 0.0168 2945.0 0.0171 0.0171 3276.5 0.0174 0.0174 -2.2 2.4 132 9.0 0.0613 0.0613 11.0 0.0551 0.0551 13.5 0.0495 0.0495 16.5 0.0448 0.0448 19.5 0.0412 0.0412 22.5 0.0384 0.0384 26.0 0.0357 0.0357 30.0 0.0333 0.0333 34.5 0.0311 0.0311 40.0 0.0290 0.0290 46.0 0.0272 0.0272 52.5 0.0256 0.0256 60.0 0.0239 0.0239 69.0 0.0223 0.0223 79.0 0.0208 0.0208 90.5 0.0195 0.0195 105.5 0.0180 0.0180 123.5 0.0167 0.0167 143.0 0.0156 0.0156 163.5 0.0147 0.0147 185.0 0.0140 0.0140 208.0 0.0134 0.0134 232.5 0.0129 0.0129 258.5 0.0125 0.0125 286.0 0.0122 0.0122 331.0 0.0119 0.0119 396.0 0.0117 0.0117 468.5 0.0117 0.0117 549.5 0.0123 0.0123 639.0 0.0128 0.0128 738.0 0.0131 0.0131 847.5 0.0135 0.0135 968.5 0.0138 0.0138 1102.0 0.0141 0.0141 1249.5 0.0145 0.0145 1412.0 0.0148 0.0148 1590.5 0.0151 0.0151 1787.0 0.0154 0.0154 1945.0 0.0157 0.0157 2119.0 0.0159 0.0159 2369.0 0.0162 0.0162 2643.5 0.0165 0.0165 2945.0 0.0169 0.0169 3276.5 0.0172 0.0172 -2.4 2.6 132 9.0 0.0774 0.0774 11.0 0.0683 0.0683 13.5 0.0602 0.0602 16.5 0.0535 0.0535 19.5 0.0488 0.0488 22.5 0.0453 0.0453 26.0 0.0422 0.0422 30.0 0.0395 0.0395 34.5 0.0371 0.0371 40.0 0.0349 0.0349 46.0 0.0331 0.0331 52.5 0.0313 0.0313 60.0 0.0291 0.0291 69.0 0.0269 0.0269 79.0 0.0250 0.0250 90.5 0.0232 0.0232 105.5 0.0213 0.0213 123.5 0.0196 0.0196 143.0 0.0183 0.0183 163.5 0.0173 0.0173 185.0 0.0165 0.0165 208.0 0.0159 0.0159 232.5 0.0156 0.0156 258.5 0.0154 0.0154 286.0 0.0154 0.0154 331.0 0.0156 0.0156 396.0 0.0163 0.0163 468.5 0.0170 0.0170 549.5 0.0176 0.0176 639.0 0.0180 0.0180 738.0 0.0183 0.0183 847.5 0.0185 0.0185 968.5 0.0188 0.0188 1102.0 0.0190 0.0190 1249.5 0.0193 0.0193 1412.0 0.0195 0.0195 1590.5 0.0197 0.0197 1787.0 0.0200 0.0200 1945.0 0.0202 0.0202 2119.0 0.0204 0.0204 2369.0 0.0206 0.0206 2643.5 0.0209 0.0209 2945.0 0.0211 0.0211 3276.5 0.0213 0.0213 -2.6 2.8 132 9.0 0.0627 0.0627 11.0 0.0563 0.0563 13.5 0.0509 0.0509 16.5 0.0464 0.0464 19.5 0.0430 0.0430 22.5 0.0405 0.0405 26.0 0.0381 0.0381 30.0 0.0360 0.0360 34.5 0.0341 0.0341 40.0 0.0323 0.0323 46.0 0.0308 0.0308 52.5 0.0293 0.0293 60.0 0.0274 0.0274 69.0 0.0255 0.0255 79.0 0.0238 0.0238 90.5 0.0223 0.0223 105.5 0.0207 0.0207 123.5 0.0193 0.0193 143.0 0.0181 0.0181 163.5 0.0172 0.0172 185.0 0.0166 0.0166 208.0 0.0162 0.0162 232.5 0.0159 0.0159 258.5 0.0158 0.0158 286.0 0.0159 0.0159 331.0 0.0161 0.0161 396.0 0.0168 0.0168 468.5 0.0172 0.0172 549.5 0.0174 0.0174 639.0 0.0176 0.0176 738.0 0.0179 0.0179 847.5 0.0181 0.0181 968.5 0.0184 0.0184 1102.0 0.0186 0.0186 1249.5 0.0189 0.0189 1412.0 0.0192 0.0192 1590.5 0.0194 0.0194 1787.0 0.0197 0.0197 1945.0 0.0198 0.0198 2119.0 0.0200 0.0200 2369.0 0.0203 0.0203 2643.5 0.0205 0.0205 2945.0 0.0208 0.0208 3276.5 0.0210 0.0210 -2.8 3.0 132 9.0 0.0542 0.0542 11.0 0.0504 0.0504 13.5 0.0473 0.0473 16.5 0.0445 0.0445 19.5 0.0422 0.0422 22.5 0.0403 0.0403 26.0 0.0385 0.0385 30.0 0.0369 0.0369 34.5 0.0354 0.0354 40.0 0.0339 0.0339 46.0 0.0327 0.0327 52.5 0.0316 0.0316 60.0 0.0304 0.0304 69.0 0.0293 0.0293 79.0 0.0283 0.0283 90.5 0.0274 0.0274 105.5 0.0266 0.0266 123.5 0.0259 0.0259 143.0 0.0253 0.0253 163.5 0.0249 0.0249 185.0 0.0246 0.0246 208.0 0.0244 0.0244 232.5 0.0243 0.0243 258.5 0.0242 0.0242 286.0 0.0241 0.0241 331.0 0.0241 0.0241 396.0 0.0239 0.0239 468.5 0.0239 0.0239 549.5 0.0240 0.0240 639.0 0.0242 0.0242 738.0 0.0244 0.0244 847.5 0.0246 0.0246 968.5 0.0248 0.0248 1102.0 0.0249 0.0249 1249.5 0.0251 0.0251 1412.0 0.0253 0.0253 1590.5 0.0255 0.0255 1787.0 0.0257 0.0257 1945.0 0.0259 0.0259 2119.0 0.0260 0.0260 2369.0 0.0262 0.0262 2643.5 0.0264 0.0264 2945.0 0.0266 0.0266 3276.5 0.0268 0.0268 -3.0 3.5 132 9.0 0.0710 0.0710 11.0 0.0635 0.0635 13.5 0.0571 0.0571 16.5 0.0518 0.0518 19.5 0.0480 0.0480 22.5 0.0451 0.0451 26.0 0.0425 0.0425 30.0 0.0402 0.0402 34.5 0.0383 0.0383 40.0 0.0364 0.0364 46.0 0.0349 0.0349 52.5 0.0336 0.0336 60.0 0.0323 0.0323 69.0 0.0312 0.0312 79.0 0.0302 0.0302 90.5 0.0294 0.0294 105.5 0.0286 0.0286 123.5 0.0279 0.0279 143.0 0.0274 0.0274 163.5 0.0270 0.0270 185.0 0.0267 0.0267 208.0 0.0265 0.0265 232.5 0.0263 0.0263 258.5 0.0261 0.0261 286.0 0.0260 0.0260 331.0 0.0258 0.0258 396.0 0.0257 0.0257 468.5 0.0256 0.0256 549.5 0.0257 0.0257 639.0 0.0259 0.0259 738.0 0.0260 0.0260 847.5 0.0262 0.0262 968.5 0.0264 0.0264 1102.0 0.0266 0.0266 1249.5 0.0267 0.0267 1412.0 0.0269 0.0269 1590.5 0.0271 0.0271 1787.0 0.0273 0.0273 1945.0 0.0274 0.0274 2119.0 0.0276 0.0276 2369.0 0.0277 0.0277 2643.5 0.0279 0.0279 2945.0 0.0281 0.0281 3276.5 0.0283 0.0283 -3.5 4.0 132 9.0 0.0716 0.0716 11.0 0.0662 0.0662 13.5 0.0618 0.0618 16.5 0.0582 0.0582 19.5 0.0556 0.0556 22.5 0.0537 0.0537 26.0 0.0519 0.0519 30.0 0.0504 0.0504 34.5 0.0491 0.0491 40.0 0.0479 0.0479 46.0 0.0468 0.0468 52.5 0.0453 0.0453 60.0 0.0426 0.0426 69.0 0.0404 0.0404 79.0 0.0389 0.0389 90.5 0.0382 0.0382 105.5 0.0385 0.0385 123.5 0.0399 0.0399 143.0 0.0399 0.0399 163.5 0.0396 0.0396 185.0 0.0394 0.0394 208.0 0.0392 0.0392 232.5 0.0391 0.0391 258.5 0.0390 0.0390 286.0 0.0389 0.0389 331.0 0.0388 0.0388 396.0 0.0387 0.0387 468.5 0.0386 0.0386 549.5 0.0387 0.0387 639.0 0.0388 0.0388 738.0 0.0389 0.0389 847.5 0.0390 0.0390 968.5 0.0392 0.0392 1102.0 0.0393 0.0393 1249.5 0.0394 0.0394 1412.0 0.0395 0.0395 1590.5 0.0396 0.0396 1787.0 0.0398 0.0398 1945.0 0.0399 0.0399 2119.0 0.0400 0.0400 2369.0 0.0401 0.0401 2643.5 0.0402 0.0402 2945.0 0.0403 0.0403 3276.5 0.0405 0.0405 -4.0 4.4 132 9.0 0.0635 0.0635 11.0 0.0603 0.0603 13.5 0.0577 0.0577 16.5 0.0554 0.0554 19.5 0.0536 0.0536 22.5 0.0521 0.0521 26.0 0.0507 0.0507 30.0 0.0495 0.0495 34.5 0.0484 0.0484 40.0 0.0473 0.0473 46.0 0.0464 0.0464 52.5 0.0450 0.0450 60.0 0.0424 0.0424 69.0 0.0402 0.0402 79.0 0.0387 0.0387 90.5 0.0381 0.0381 105.5 0.0384 0.0384 123.5 0.0394 0.0394 143.0 0.0391 0.0391 163.5 0.0388 0.0388 185.0 0.0386 0.0386 208.0 0.0384 0.0384 232.5 0.0383 0.0383 258.5 0.0381 0.0381 286.0 0.0381 0.0381 331.0 0.0379 0.0379 396.0 0.0378 0.0378 468.5 0.0378 0.0378 549.5 0.0379 0.0379 639.0 0.0380 0.0380 738.0 0.0381 0.0381 847.5 0.0382 0.0382 968.5 0.0384 0.0384 1102.0 0.0385 0.0385 1249.5 0.0386 0.0386 1412.0 0.0387 0.0387 1590.5 0.0389 0.0389 1787.0 0.0390 0.0390 1945.0 0.0391 0.0391 2119.0 0.0392 0.0392 2369.0 0.0393 0.0393 2643.5 0.0394 0.0394 2945.0 0.0396 0.0396 3276.5 0.0397 0.0397 -4.4 5.0 132 9.0 0.0629 0.0629 11.0 0.0598 0.0598 13.5 0.0574 0.0574 16.5 0.0552 0.0552 19.5 0.0534 0.0534 22.5 0.0520 0.0520 26.0 0.0506 0.0506 30.0 0.0494 0.0494 34.5 0.0483 0.0483 40.0 0.0473 0.0473 46.0 0.0464 0.0464 52.5 0.0450 0.0450 60.0 0.0423 0.0423 69.0 0.0402 0.0402 79.0 0.0392 0.0392 90.5 0.0387 0.0387 105.5 0.0381 0.0381 123.5 0.0377 0.0377 143.0 0.0374 0.0374 163.5 0.0371 0.0371 185.0 0.0369 0.0369 208.0 0.0367 0.0367 232.5 0.0365 0.0365 258.5 0.0364 0.0364 286.0 0.0363 0.0363 331.0 0.0362 0.0362 396.0 0.0361 0.0361 468.5 0.0360 0.0360 549.5 0.0361 0.0361 639.0 0.0362 0.0362 738.0 0.0364 0.0364 847.5 0.0365 0.0365 968.5 0.0366 0.0366 1102.0 0.0367 0.0367 1249.5 0.0369 0.0369 1412.0 0.0370 0.0370 1590.5 0.0371 0.0371 1787.0 0.0373 0.0373 1945.0 0.0374 0.0374 2119.0 0.0375 0.0375 2369.0 0.0376 0.0376 2643.5 0.0377 0.0377 2945.0 0.0379 0.0379 3276.5 0.0380 0.0380 -5.0 5.4 132 9.0 0.0634 0.0634 11.0 0.0602 0.0602 13.5 0.0577 0.0577 16.5 0.0554 0.0554 19.5 0.0536 0.0536 22.5 0.0521 0.0521 26.0 0.0507 0.0507 30.0 0.0495 0.0495 34.5 0.0484 0.0484 40.0 0.0473 0.0473 46.0 0.0465 0.0465 52.5 0.0457 0.0457 60.0 0.0450 0.0450 69.0 0.0444 0.0444 79.0 0.0439 0.0439 90.5 0.0434 0.0434 105.5 0.0430 0.0430 123.5 0.0426 0.0426 143.0 0.0423 0.0423 163.5 0.0420 0.0420 185.0 0.0418 0.0418 208.0 0.0417 0.0417 232.5 0.0415 0.0415 258.5 0.0414 0.0414 286.0 0.0414 0.0414 331.0 0.0412 0.0412 396.0 0.0412 0.0412 468.5 0.0411 0.0411 549.5 0.0412 0.0412 639.0 0.0413 0.0413 738.0 0.0414 0.0414 847.5 0.0415 0.0415 968.5 0.0416 0.0416 1102.0 0.0417 0.0417 1249.5 0.0419 0.0419 1412.0 0.0420 0.0420 1590.5 0.0421 0.0421 1787.0 0.0422 0.0422 1945.0 0.0423 0.0423 2119.0 0.0424 0.0424 2369.0 0.0425 0.0425 2643.5 0.0426 0.0426 2945.0 0.0427 0.0427 3276.5 0.0429 0.0429 -[Total] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0640 0.0640 11.0 0.0603 0.0603 13.5 0.0577 0.0577 16.5 0.0557 0.0557 19.5 0.0543 0.0543 22.5 0.0531 0.0531 26.0 0.0520 0.0520 30.0 0.0510 0.0510 34.5 0.0500 0.0500 40.0 0.0490 0.0490 46.0 0.0482 0.0482 52.5 0.0474 0.0474 60.0 0.0466 0.0466 69.0 0.0459 0.0459 79.0 0.0453 0.0453 90.5 0.0447 0.0447 105.5 0.0441 0.0441 123.5 0.0436 0.0436 143.0 0.0431 0.0431 163.5 0.0428 0.0428 185.0 0.0425 0.0425 208.0 0.0422 0.0422 232.5 0.0420 0.0420 258.5 0.0419 0.0419 286.0 0.0417 0.0417 331.0 0.0416 0.0416 396.0 0.0414 0.0414 468.5 0.0413 0.0413 549.5 0.0413 0.0413 639.0 0.0414 0.0414 738.0 0.0415 0.0415 847.5 0.0416 0.0416 968.5 0.0417 0.0417 1102.0 0.0418 0.0418 1249.5 0.0419 0.0419 1412.0 0.0420 0.0420 1590.5 0.0421 0.0421 1787.0 0.0422 0.0422 1945.0 0.0423 0.0423 2119.0 0.0424 0.0424 2369.0 0.0425 0.0425 2643.5 0.0426 0.0426 2945.0 0.0428 0.0428 3276.5 0.0429 0.0429 --5.0 -4.4 132 9.0 0.0635 0.0635 11.0 0.0599 0.0599 13.5 0.0574 0.0574 16.5 0.0555 0.0555 19.5 0.0541 0.0541 22.5 0.0530 0.0530 26.0 0.0519 0.0519 30.0 0.0509 0.0509 34.5 0.0500 0.0500 40.0 0.0490 0.0490 46.0 0.0481 0.0481 52.5 0.0467 0.0467 60.0 0.0440 0.0440 69.0 0.0418 0.0418 79.0 0.0407 0.0407 90.5 0.0401 0.0401 105.5 0.0394 0.0394 123.5 0.0388 0.0388 143.0 0.0383 0.0383 163.5 0.0379 0.0379 185.0 0.0376 0.0376 208.0 0.0373 0.0373 232.5 0.0371 0.0371 258.5 0.0369 0.0369 286.0 0.0367 0.0367 331.0 0.0365 0.0365 396.0 0.0364 0.0364 468.5 0.0362 0.0362 549.5 0.0363 0.0363 639.0 0.0364 0.0364 738.0 0.0365 0.0365 847.5 0.0366 0.0366 968.5 0.0367 0.0367 1102.0 0.0368 0.0368 1249.5 0.0369 0.0369 1412.0 0.0370 0.0370 1590.5 0.0372 0.0372 1787.0 0.0373 0.0373 1945.0 0.0374 0.0374 2119.0 0.0375 0.0375 2369.0 0.0376 0.0376 2643.5 0.0378 0.0378 2945.0 0.0379 0.0379 3276.5 0.0380 0.0380 --4.4 -4.0 132 9.0 0.0880 0.0880 11.0 0.0792 0.0792 13.5 0.0712 0.0712 16.5 0.0645 0.0645 19.5 0.0598 0.0598 22.5 0.0564 0.0564 26.0 0.0536 0.0536 30.0 0.0513 0.0513 34.5 0.0495 0.0495 40.0 0.0480 0.0480 46.0 0.0468 0.0468 52.5 0.0452 0.0452 60.0 0.0424 0.0424 69.0 0.0402 0.0402 79.0 0.0387 0.0387 90.5 0.0381 0.0381 105.5 0.0384 0.0384 123.5 0.0394 0.0394 143.0 0.0391 0.0391 163.5 0.0388 0.0388 185.0 0.0386 0.0386 208.0 0.0385 0.0385 232.5 0.0383 0.0383 258.5 0.0382 0.0382 286.0 0.0381 0.0381 331.0 0.0380 0.0380 396.0 0.0379 0.0379 468.5 0.0378 0.0378 549.5 0.0379 0.0379 639.0 0.0380 0.0380 738.0 0.0381 0.0381 847.5 0.0383 0.0383 968.5 0.0384 0.0384 1102.0 0.0385 0.0385 1249.5 0.0386 0.0386 1412.0 0.0387 0.0387 1590.5 0.0389 0.0389 1787.0 0.0390 0.0390 1945.0 0.0391 0.0391 2119.0 0.0392 0.0392 2369.0 0.0393 0.0393 2643.5 0.0394 0.0394 2945.0 0.0396 0.0396 3276.5 0.0397 0.0397 --4.0 -3.5 132 9.0 0.0828 0.0828 11.0 0.0746 0.0746 13.5 0.0673 0.0673 16.5 0.0615 0.0615 19.5 0.0575 0.0575 22.5 0.0547 0.0547 26.0 0.0524 0.0524 30.0 0.0506 0.0506 34.5 0.0491 0.0491 40.0 0.0479 0.0479 46.0 0.0469 0.0469 52.5 0.0454 0.0454 60.0 0.0427 0.0427 69.0 0.0406 0.0406 79.0 0.0391 0.0391 90.5 0.0385 0.0385 105.5 0.0387 0.0387 123.5 0.0402 0.0402 143.0 0.0402 0.0402 163.5 0.0399 0.0399 185.0 0.0397 0.0397 208.0 0.0395 0.0395 232.5 0.0393 0.0393 258.5 0.0392 0.0392 286.0 0.0390 0.0390 331.0 0.0389 0.0389 396.0 0.0388 0.0388 468.5 0.0387 0.0387 549.5 0.0388 0.0388 639.0 0.0389 0.0389 738.0 0.0390 0.0390 847.5 0.0391 0.0391 968.5 0.0392 0.0392 1102.0 0.0393 0.0393 1249.5 0.0394 0.0394 1412.0 0.0395 0.0395 1590.5 0.0397 0.0397 1787.0 0.0398 0.0398 1945.0 0.0399 0.0399 2119.0 0.0400 0.0400 2369.0 0.0401 0.0401 2643.5 0.0402 0.0402 2945.0 0.0403 0.0403 3276.5 0.0405 0.0405 --3.5 -3.0 132 9.0 0.0810 0.0810 11.0 0.0695 0.0695 13.5 0.0596 0.0596 16.5 0.0522 0.0522 19.5 0.0480 0.0480 22.5 0.0454 0.0454 26.0 0.0436 0.0436 30.0 0.0424 0.0424 34.5 0.0415 0.0415 40.0 0.0407 0.0407 46.0 0.0399 0.0399 52.5 0.0391 0.0391 60.0 0.0382 0.0382 69.0 0.0372 0.0372 79.0 0.0361 0.0361 90.5 0.0351 0.0351 105.5 0.0339 0.0339 123.5 0.0328 0.0328 143.0 0.0318 0.0318 163.5 0.0309 0.0309 185.0 0.0302 0.0302 208.0 0.0296 0.0296 232.5 0.0291 0.0291 258.5 0.0286 0.0286 286.0 0.0282 0.0282 331.0 0.0277 0.0277 396.0 0.0272 0.0272 468.5 0.0268 0.0268 549.5 0.0267 0.0267 639.0 0.0267 0.0267 738.0 0.0267 0.0267 847.5 0.0268 0.0268 968.5 0.0268 0.0268 1102.0 0.0269 0.0269 1249.5 0.0270 0.0270 1412.0 0.0272 0.0272 1590.5 0.0273 0.0273 1787.0 0.0275 0.0275 1945.0 0.0276 0.0276 2119.0 0.0277 0.0277 2369.0 0.0279 0.0279 2643.5 0.0280 0.0280 2945.0 0.0282 0.0282 3276.5 0.0284 0.0284 --3.0 -2.8 132 9.0 0.0641 0.0641 11.0 0.0585 0.0585 13.5 0.0534 0.0534 16.5 0.0488 0.0488 19.5 0.0453 0.0453 22.5 0.0426 0.0426 26.0 0.0402 0.0402 30.0 0.0380 0.0380 34.5 0.0361 0.0361 40.0 0.0344 0.0344 46.0 0.0330 0.0330 52.5 0.0317 0.0317 60.0 0.0304 0.0304 69.0 0.0293 0.0293 79.0 0.0283 0.0283 90.5 0.0274 0.0274 105.5 0.0266 0.0266 123.5 0.0259 0.0259 143.0 0.0253 0.0253 163.5 0.0249 0.0249 185.0 0.0246 0.0246 208.0 0.0244 0.0244 232.5 0.0243 0.0243 258.5 0.0242 0.0242 286.0 0.0242 0.0242 331.0 0.0241 0.0241 396.0 0.0240 0.0240 468.5 0.0239 0.0239 549.5 0.0240 0.0240 639.0 0.0242 0.0242 738.0 0.0244 0.0244 847.5 0.0246 0.0246 968.5 0.0248 0.0248 1102.0 0.0250 0.0250 1249.5 0.0251 0.0251 1412.0 0.0253 0.0253 1590.5 0.0255 0.0255 1787.0 0.0257 0.0257 1945.0 0.0259 0.0259 2119.0 0.0260 0.0260 2369.0 0.0262 0.0262 2643.5 0.0264 0.0264 2945.0 0.0266 0.0266 3276.5 0.0268 0.0268 --2.8 -2.6 132 9.0 0.0683 0.0683 11.0 0.0605 0.0605 13.5 0.0537 0.0537 16.5 0.0479 0.0479 19.5 0.0439 0.0439 22.5 0.0409 0.0409 26.0 0.0383 0.0383 30.0 0.0360 0.0360 34.5 0.0341 0.0341 40.0 0.0323 0.0323 46.0 0.0309 0.0309 52.5 0.0294 0.0294 60.0 0.0276 0.0276 69.0 0.0258 0.0258 79.0 0.0242 0.0242 90.5 0.0226 0.0226 105.5 0.0211 0.0211 123.5 0.0197 0.0197 143.0 0.0185 0.0185 163.5 0.0177 0.0177 185.0 0.0170 0.0170 208.0 0.0166 0.0166 232.5 0.0163 0.0163 258.5 0.0162 0.0162 286.0 0.0162 0.0162 331.0 0.0164 0.0164 396.0 0.0170 0.0170 468.5 0.0173 0.0173 549.5 0.0175 0.0175 639.0 0.0177 0.0177 738.0 0.0180 0.0180 847.5 0.0182 0.0182 968.5 0.0184 0.0184 1102.0 0.0187 0.0187 1249.5 0.0189 0.0189 1412.0 0.0192 0.0192 1590.5 0.0194 0.0194 1787.0 0.0197 0.0197 1945.0 0.0199 0.0199 2119.0 0.0201 0.0201 2369.0 0.0203 0.0203 2643.5 0.0205 0.0205 2945.0 0.0208 0.0208 3276.5 0.0210 0.0210 --2.6 -2.4 132 9.0 0.1378 0.1378 11.0 0.1175 0.1175 13.5 0.0963 0.0963 16.5 0.0779 0.0779 19.5 0.0652 0.0652 22.5 0.0563 0.0563 26.0 0.0490 0.0490 30.0 0.0433 0.0433 34.5 0.0390 0.0390 40.0 0.0356 0.0356 46.0 0.0332 0.0332 52.5 0.0313 0.0313 60.0 0.0291 0.0291 69.0 0.0272 0.0272 79.0 0.0256 0.0256 90.5 0.0241 0.0241 105.5 0.0226 0.0226 123.5 0.0212 0.0212 143.0 0.0200 0.0200 163.5 0.0191 0.0191 185.0 0.0184 0.0184 208.0 0.0178 0.0178 232.5 0.0174 0.0174 258.5 0.0171 0.0171 286.0 0.0170 0.0170 331.0 0.0170 0.0170 396.0 0.0175 0.0175 468.5 0.0179 0.0179 549.5 0.0183 0.0183 639.0 0.0186 0.0186 738.0 0.0188 0.0188 847.5 0.0189 0.0189 968.5 0.0191 0.0191 1102.0 0.0193 0.0193 1249.5 0.0195 0.0195 1412.0 0.0197 0.0197 1590.5 0.0199 0.0199 1787.0 0.0201 0.0201 1945.0 0.0203 0.0203 2119.0 0.0205 0.0205 2369.0 0.0207 0.0207 2643.5 0.0209 0.0209 2945.0 0.0212 0.0212 3276.5 0.0214 0.0214 --2.4 -2.2 132 9.0 0.1613 0.1613 11.0 0.1356 0.1356 13.5 0.1088 0.1088 16.5 0.0858 0.0858 19.5 0.0699 0.0699 22.5 0.0584 0.0584 26.0 0.0490 0.0490 30.0 0.0415 0.0415 34.5 0.0357 0.0357 40.0 0.0312 0.0312 46.0 0.0280 0.0280 52.5 0.0258 0.0258 60.0 0.0239 0.0239 69.0 0.0224 0.0224 79.0 0.0213 0.0213 90.5 0.0203 0.0203 105.5 0.0193 0.0193 123.5 0.0183 0.0183 143.0 0.0175 0.0175 163.5 0.0168 0.0168 185.0 0.0162 0.0162 208.0 0.0156 0.0156 232.5 0.0151 0.0151 258.5 0.0146 0.0146 286.0 0.0142 0.0142 331.0 0.0138 0.0138 396.0 0.0134 0.0134 468.5 0.0131 0.0131 549.5 0.0135 0.0135 639.0 0.0137 0.0137 738.0 0.0139 0.0139 847.5 0.0141 0.0141 968.5 0.0143 0.0143 1102.0 0.0146 0.0146 1249.5 0.0148 0.0148 1412.0 0.0151 0.0151 1590.5 0.0154 0.0154 1787.0 0.0157 0.0157 1945.0 0.0159 0.0159 2119.0 0.0161 0.0161 2369.0 0.0164 0.0164 2643.5 0.0167 0.0167 2945.0 0.0169 0.0169 3276.5 0.0172 0.0172 --2.2 -2.0 132 9.0 0.1810 0.1810 11.0 0.1544 0.1544 13.5 0.1269 0.1269 16.5 0.1027 0.1027 19.5 0.0852 0.0852 22.5 0.0721 0.0721 26.0 0.0607 0.0607 30.0 0.0512 0.0512 34.5 0.0435 0.0435 40.0 0.0369 0.0369 46.0 0.0319 0.0319 52.5 0.0282 0.0282 60.0 0.0251 0.0251 69.0 0.0225 0.0225 79.0 0.0206 0.0206 90.5 0.0191 0.0191 105.5 0.0177 0.0177 123.5 0.0166 0.0166 143.0 0.0158 0.0158 163.5 0.0151 0.0151 185.0 0.0145 0.0145 208.0 0.0140 0.0140 232.5 0.0136 0.0136 258.5 0.0132 0.0132 286.0 0.0129 0.0129 331.0 0.0126 0.0126 396.0 0.0123 0.0123 468.5 0.0122 0.0122 549.5 0.0126 0.0126 639.0 0.0132 0.0132 738.0 0.0137 0.0137 847.5 0.0141 0.0141 968.5 0.0144 0.0144 1102.0 0.0147 0.0147 1249.5 0.0150 0.0150 1412.0 0.0153 0.0153 1590.5 0.0155 0.0155 1787.0 0.0158 0.0158 1945.0 0.0161 0.0161 2119.0 0.0163 0.0163 2369.0 0.0166 0.0166 2643.5 0.0169 0.0169 2945.0 0.0171 0.0171 3276.5 0.0174 0.0174 --2.0 -1.8 132 9.0 0.1389 0.1389 11.0 0.1209 0.1209 13.5 0.1026 0.1026 16.5 0.0861 0.0861 19.5 0.0738 0.0738 22.5 0.0644 0.0644 26.0 0.0559 0.0559 30.0 0.0485 0.0485 34.5 0.0423 0.0423 40.0 0.0366 0.0366 46.0 0.0321 0.0321 52.5 0.0285 0.0285 60.0 0.0254 0.0254 69.0 0.0227 0.0227 79.0 0.0205 0.0205 90.5 0.0187 0.0187 105.5 0.0170 0.0170 123.5 0.0156 0.0156 143.0 0.0145 0.0145 163.5 0.0137 0.0137 185.0 0.0130 0.0130 208.0 0.0125 0.0125 232.5 0.0120 0.0120 258.5 0.0117 0.0117 286.0 0.0113 0.0113 331.0 0.0110 0.0110 396.0 0.0107 0.0107 468.5 0.0105 0.0105 549.5 0.0109 0.0109 639.0 0.0114 0.0114 738.0 0.0118 0.0118 847.5 0.0123 0.0123 968.5 0.0126 0.0126 1102.0 0.0130 0.0130 1249.5 0.0133 0.0133 1412.0 0.0137 0.0137 1590.5 0.0140 0.0140 1787.0 0.0144 0.0144 1945.0 0.0146 0.0146 2119.0 0.0149 0.0149 2369.0 0.0152 0.0152 2643.5 0.0155 0.0155 2945.0 0.0159 0.0159 3276.5 0.0162 0.0162 --1.8 -1.6 132 9.0 0.1184 0.1184 11.0 0.1045 0.1045 13.5 0.0902 0.0902 16.5 0.0772 0.0772 19.5 0.0674 0.0674 22.5 0.0597 0.0597 26.0 0.0528 0.0528 30.0 0.0466 0.0466 34.5 0.0413 0.0413 40.0 0.0364 0.0364 46.0 0.0324 0.0324 52.5 0.0292 0.0292 60.0 0.0262 0.0262 69.0 0.0236 0.0236 79.0 0.0214 0.0214 90.5 0.0196 0.0196 105.5 0.0178 0.0178 123.5 0.0162 0.0162 143.0 0.0150 0.0150 163.5 0.0140 0.0140 185.0 0.0132 0.0132 208.0 0.0126 0.0126 232.5 0.0121 0.0121 258.5 0.0117 0.0117 286.0 0.0113 0.0113 331.0 0.0109 0.0109 396.0 0.0106 0.0106 468.5 0.0105 0.0105 549.5 0.0109 0.0109 639.0 0.0114 0.0114 738.0 0.0119 0.0119 847.5 0.0125 0.0125 968.5 0.0130 0.0130 1102.0 0.0135 0.0135 1249.5 0.0138 0.0138 1412.0 0.0142 0.0142 1590.5 0.0145 0.0145 1787.0 0.0149 0.0149 1945.0 0.0151 0.0151 2119.0 0.0154 0.0154 2369.0 0.0157 0.0157 2643.5 0.0160 0.0160 2945.0 0.0163 0.0163 3276.5 0.0166 0.0166 --1.6 -1.4 132 9.0 0.1158 0.1158 11.0 0.1018 0.1018 13.5 0.0873 0.0873 16.5 0.0744 0.0744 19.5 0.0645 0.0645 22.5 0.0570 0.0570 26.0 0.0501 0.0501 30.0 0.0440 0.0440 34.5 0.0389 0.0389 40.0 0.0341 0.0341 46.0 0.0303 0.0303 52.5 0.0272 0.0272 60.0 0.0245 0.0245 69.0 0.0221 0.0221 79.0 0.0201 0.0201 90.5 0.0185 0.0185 105.5 0.0169 0.0169 123.5 0.0155 0.0155 143.0 0.0145 0.0145 163.5 0.0136 0.0136 185.0 0.0130 0.0130 208.0 0.0124 0.0124 232.5 0.0120 0.0120 258.5 0.0116 0.0116 286.0 0.0113 0.0113 331.0 0.0109 0.0109 396.0 0.0106 0.0106 468.5 0.0104 0.0104 549.5 0.0107 0.0107 639.0 0.0112 0.0112 738.0 0.0116 0.0116 847.5 0.0120 0.0120 968.5 0.0125 0.0125 1102.0 0.0129 0.0129 1249.5 0.0132 0.0132 1412.0 0.0136 0.0136 1590.5 0.0139 0.0139 1787.0 0.0143 0.0143 1945.0 0.0145 0.0145 2119.0 0.0148 0.0148 2369.0 0.0151 0.0151 2643.5 0.0155 0.0155 2945.0 0.0158 0.0158 3276.5 0.0161 0.0161 --1.4 -1.2 132 9.0 0.1150 0.1150 11.0 0.0991 0.0991 13.5 0.0832 0.0832 16.5 0.0690 0.0690 19.5 0.0586 0.0586 22.5 0.0507 0.0507 26.0 0.0437 0.0437 30.0 0.0378 0.0378 34.5 0.0329 0.0329 40.0 0.0287 0.0287 46.0 0.0255 0.0255 52.5 0.0230 0.0230 60.0 0.0211 0.0211 69.0 0.0194 0.0194 79.0 0.0182 0.0182 90.5 0.0171 0.0171 105.5 0.0161 0.0161 123.5 0.0152 0.0152 143.0 0.0145 0.0145 163.5 0.0139 0.0139 185.0 0.0134 0.0134 208.0 0.0129 0.0129 232.5 0.0124 0.0124 258.5 0.0121 0.0121 286.0 0.0117 0.0117 331.0 0.0113 0.0113 396.0 0.0108 0.0108 468.5 0.0105 0.0105 549.5 0.0107 0.0107 639.0 0.0110 0.0110 738.0 0.0113 0.0113 847.5 0.0117 0.0117 968.5 0.0120 0.0120 1102.0 0.0123 0.0123 1249.5 0.0127 0.0127 1412.0 0.0130 0.0130 1590.5 0.0134 0.0134 1787.0 0.0137 0.0137 1945.0 0.0140 0.0140 2119.0 0.0142 0.0142 2369.0 0.0146 0.0146 2643.5 0.0149 0.0149 2945.0 0.0152 0.0152 3276.5 0.0155 0.0155 --1.2 -1.0 132 9.0 0.1130 0.1130 11.0 0.0981 0.0981 13.5 0.0830 0.0830 16.5 0.0696 0.0696 19.5 0.0596 0.0596 22.5 0.0520 0.0520 26.0 0.0452 0.0452 30.0 0.0394 0.0394 34.5 0.0345 0.0345 40.0 0.0302 0.0302 46.0 0.0268 0.0268 52.5 0.0242 0.0242 60.0 0.0220 0.0220 69.0 0.0201 0.0201 79.0 0.0186 0.0186 90.5 0.0173 0.0173 105.5 0.0161 0.0161 123.5 0.0151 0.0151 143.0 0.0142 0.0142 163.5 0.0135 0.0135 185.0 0.0130 0.0130 208.0 0.0124 0.0124 232.5 0.0120 0.0120 258.5 0.0116 0.0116 286.0 0.0113 0.0113 331.0 0.0108 0.0108 396.0 0.0104 0.0104 468.5 0.0102 0.0102 549.5 0.0105 0.0105 639.0 0.0109 0.0109 738.0 0.0113 0.0113 847.5 0.0117 0.0117 968.5 0.0121 0.0121 1102.0 0.0125 0.0125 1249.5 0.0129 0.0129 1412.0 0.0133 0.0133 1590.5 0.0137 0.0137 1787.0 0.0140 0.0140 1945.0 0.0142 0.0142 2119.0 0.0145 0.0145 2369.0 0.0148 0.0148 2643.5 0.0152 0.0152 2945.0 0.0155 0.0155 3276.5 0.0158 0.0158 --1.0 -0.8 132 9.0 0.1040 0.1040 11.0 0.0914 0.0914 13.5 0.0784 0.0784 16.5 0.0668 0.0668 19.5 0.0581 0.0581 22.5 0.0514 0.0514 26.0 0.0454 0.0454 30.0 0.0402 0.0402 34.5 0.0358 0.0358 40.0 0.0318 0.0318 46.0 0.0287 0.0287 52.5 0.0261 0.0261 60.0 0.0237 0.0237 69.0 0.0216 0.0216 79.0 0.0199 0.0199 90.5 0.0183 0.0183 105.5 0.0168 0.0168 123.5 0.0155 0.0155 143.0 0.0144 0.0144 163.5 0.0135 0.0135 185.0 0.0128 0.0128 208.0 0.0122 0.0122 232.5 0.0117 0.0117 258.5 0.0112 0.0112 286.0 0.0108 0.0108 331.0 0.0104 0.0104 396.0 0.0100 0.0100 468.5 0.0098 0.0098 549.5 0.0102 0.0102 639.0 0.0107 0.0107 738.0 0.0112 0.0112 847.5 0.0118 0.0118 968.5 0.0123 0.0123 1102.0 0.0128 0.0128 1249.5 0.0134 0.0134 1412.0 0.0139 0.0139 1590.5 0.0143 0.0143 1787.0 0.0146 0.0146 1945.0 0.0149 0.0149 2119.0 0.0151 0.0151 2369.0 0.0155 0.0155 2643.5 0.0158 0.0158 2945.0 0.0161 0.0161 3276.5 0.0164 0.0164 --0.8 -0.6 132 9.0 0.1008 0.1008 11.0 0.0892 0.0892 13.5 0.0770 0.0770 16.5 0.0662 0.0662 19.5 0.0580 0.0580 22.5 0.0517 0.0517 26.0 0.0461 0.0461 30.0 0.0411 0.0411 34.5 0.0369 0.0369 40.0 0.0330 0.0330 46.0 0.0299 0.0299 52.5 0.0273 0.0273 60.0 0.0249 0.0249 69.0 0.0227 0.0227 79.0 0.0208 0.0208 90.5 0.0192 0.0192 105.5 0.0175 0.0175 123.5 0.0160 0.0160 143.0 0.0148 0.0148 163.5 0.0138 0.0138 185.0 0.0130 0.0130 208.0 0.0123 0.0123 232.5 0.0117 0.0117 258.5 0.0112 0.0112 286.0 0.0108 0.0108 331.0 0.0103 0.0103 396.0 0.0099 0.0099 468.5 0.0097 0.0097 549.5 0.0101 0.0101 639.0 0.0106 0.0106 738.0 0.0112 0.0112 847.5 0.0118 0.0118 968.5 0.0124 0.0124 1102.0 0.0130 0.0130 1249.5 0.0136 0.0136 1412.0 0.0142 0.0142 1590.5 0.0146 0.0146 1787.0 0.0149 0.0149 1945.0 0.0152 0.0152 2119.0 0.0154 0.0154 2369.0 0.0157 0.0157 2643.5 0.0160 0.0160 2945.0 0.0164 0.0164 3276.5 0.0167 0.0167 --0.6 -0.4 132 9.0 0.1002 0.1002 11.0 0.0885 0.0885 13.5 0.0763 0.0763 16.5 0.0653 0.0653 19.5 0.0572 0.0572 22.5 0.0509 0.0509 26.0 0.0452 0.0452 30.0 0.0402 0.0402 34.5 0.0359 0.0359 40.0 0.0320 0.0320 46.0 0.0289 0.0289 52.5 0.0262 0.0262 60.0 0.0239 0.0239 69.0 0.0217 0.0217 79.0 0.0199 0.0199 90.5 0.0183 0.0183 105.5 0.0168 0.0168 123.5 0.0154 0.0154 143.0 0.0143 0.0143 163.5 0.0134 0.0134 185.0 0.0127 0.0127 208.0 0.0120 0.0120 232.5 0.0115 0.0115 258.5 0.0111 0.0111 286.0 0.0107 0.0107 331.0 0.0103 0.0103 396.0 0.0099 0.0099 468.5 0.0096 0.0096 549.5 0.0100 0.0100 639.0 0.0105 0.0105 738.0 0.0110 0.0110 847.5 0.0115 0.0115 968.5 0.0120 0.0120 1102.0 0.0125 0.0125 1249.5 0.0129 0.0129 1412.0 0.0134 0.0134 1590.5 0.0138 0.0138 1787.0 0.0142 0.0142 1945.0 0.0144 0.0144 2119.0 0.0147 0.0147 2369.0 0.0150 0.0150 2643.5 0.0153 0.0153 2945.0 0.0157 0.0157 3276.5 0.0160 0.0160 --0.4 -0.2 132 9.0 0.1000 0.1000 11.0 0.0883 0.0883 13.5 0.0760 0.0760 16.5 0.0651 0.0651 19.5 0.0570 0.0570 22.5 0.0508 0.0508 26.0 0.0451 0.0451 30.0 0.0403 0.0403 34.5 0.0361 0.0361 40.0 0.0323 0.0323 46.0 0.0292 0.0292 52.5 0.0267 0.0267 60.0 0.0244 0.0244 69.0 0.0222 0.0222 79.0 0.0204 0.0204 90.5 0.0188 0.0188 105.5 0.0172 0.0172 123.5 0.0158 0.0158 143.0 0.0146 0.0146 163.5 0.0137 0.0137 185.0 0.0129 0.0129 208.0 0.0122 0.0122 232.5 0.0117 0.0117 258.5 0.0112 0.0112 286.0 0.0108 0.0108 331.0 0.0103 0.0103 396.0 0.0099 0.0099 468.5 0.0097 0.0097 549.5 0.0101 0.0101 639.0 0.0106 0.0106 738.0 0.0111 0.0111 847.5 0.0117 0.0117 968.5 0.0122 0.0122 1102.0 0.0128 0.0128 1249.5 0.0133 0.0133 1412.0 0.0139 0.0139 1590.5 0.0143 0.0143 1787.0 0.0146 0.0146 1945.0 0.0148 0.0148 2119.0 0.0151 0.0151 2369.0 0.0154 0.0154 2643.5 0.0158 0.0158 2945.0 0.0161 0.0161 3276.5 0.0164 0.0164 --0.2 0.0 132 9.0 0.0963 0.0963 11.0 0.0848 0.0848 13.5 0.0728 0.0728 16.5 0.0622 0.0622 19.5 0.0543 0.0543 22.5 0.0483 0.0483 26.0 0.0428 0.0428 30.0 0.0381 0.0381 34.5 0.0340 0.0340 40.0 0.0303 0.0303 46.0 0.0273 0.0273 52.5 0.0248 0.0248 60.0 0.0226 0.0226 69.0 0.0206 0.0206 79.0 0.0190 0.0190 90.5 0.0176 0.0176 105.5 0.0162 0.0162 123.5 0.0149 0.0149 143.0 0.0139 0.0139 163.5 0.0131 0.0131 185.0 0.0125 0.0125 208.0 0.0119 0.0119 232.5 0.0114 0.0114 258.5 0.0110 0.0110 286.0 0.0107 0.0107 331.0 0.0103 0.0103 396.0 0.0099 0.0099 468.5 0.0097 0.0097 549.5 0.0100 0.0100 639.0 0.0105 0.0105 738.0 0.0109 0.0109 847.5 0.0113 0.0113 968.5 0.0118 0.0118 1102.0 0.0122 0.0122 1249.5 0.0126 0.0126 1412.0 0.0130 0.0130 1590.5 0.0134 0.0134 1787.0 0.0137 0.0137 1945.0 0.0140 0.0140 2119.0 0.0143 0.0143 2369.0 0.0146 0.0146 2643.5 0.0150 0.0150 2945.0 0.0153 0.0153 3276.5 0.0156 0.0156 -0.0 0.2 132 9.0 0.0963 0.0963 11.0 0.0848 0.0848 13.5 0.0728 0.0728 16.5 0.0622 0.0622 19.5 0.0543 0.0543 22.5 0.0483 0.0483 26.0 0.0428 0.0428 30.0 0.0381 0.0381 34.5 0.0340 0.0340 40.0 0.0303 0.0303 46.0 0.0273 0.0273 52.5 0.0248 0.0248 60.0 0.0226 0.0226 69.0 0.0206 0.0206 79.0 0.0190 0.0190 90.5 0.0176 0.0176 105.5 0.0162 0.0162 123.5 0.0149 0.0149 143.0 0.0139 0.0139 163.5 0.0131 0.0131 185.0 0.0125 0.0125 208.0 0.0119 0.0119 232.5 0.0114 0.0114 258.5 0.0110 0.0110 286.0 0.0107 0.0107 331.0 0.0103 0.0103 396.0 0.0099 0.0099 468.5 0.0097 0.0097 549.5 0.0100 0.0100 639.0 0.0105 0.0105 738.0 0.0109 0.0109 847.5 0.0113 0.0113 968.5 0.0118 0.0118 1102.0 0.0122 0.0122 1249.5 0.0126 0.0126 1412.0 0.0130 0.0130 1590.5 0.0134 0.0134 1787.0 0.0137 0.0137 1945.0 0.0140 0.0140 2119.0 0.0143 0.0143 2369.0 0.0146 0.0146 2643.5 0.0150 0.0150 2945.0 0.0153 0.0153 3276.5 0.0156 0.0156 -0.2 0.4 132 9.0 0.1000 0.1000 11.0 0.0883 0.0883 13.5 0.0760 0.0760 16.5 0.0651 0.0651 19.5 0.0570 0.0570 22.5 0.0508 0.0508 26.0 0.0451 0.0451 30.0 0.0403 0.0403 34.5 0.0361 0.0361 40.0 0.0323 0.0323 46.0 0.0292 0.0292 52.5 0.0267 0.0267 60.0 0.0244 0.0244 69.0 0.0222 0.0222 79.0 0.0204 0.0204 90.5 0.0188 0.0188 105.5 0.0172 0.0172 123.5 0.0158 0.0158 143.0 0.0146 0.0146 163.5 0.0137 0.0137 185.0 0.0129 0.0129 208.0 0.0122 0.0122 232.5 0.0117 0.0117 258.5 0.0112 0.0112 286.0 0.0108 0.0108 331.0 0.0103 0.0103 396.0 0.0099 0.0099 468.5 0.0097 0.0097 549.5 0.0101 0.0101 639.0 0.0106 0.0106 738.0 0.0111 0.0111 847.5 0.0117 0.0117 968.5 0.0122 0.0122 1102.0 0.0128 0.0128 1249.5 0.0133 0.0133 1412.0 0.0139 0.0139 1590.5 0.0143 0.0143 1787.0 0.0146 0.0146 1945.0 0.0148 0.0148 2119.0 0.0151 0.0151 2369.0 0.0154 0.0154 2643.5 0.0158 0.0158 2945.0 0.0161 0.0161 3276.5 0.0164 0.0164 -0.4 0.6 132 9.0 0.1002 0.1002 11.0 0.0885 0.0885 13.5 0.0763 0.0763 16.5 0.0653 0.0653 19.5 0.0572 0.0572 22.5 0.0509 0.0509 26.0 0.0452 0.0452 30.0 0.0402 0.0402 34.5 0.0359 0.0359 40.0 0.0320 0.0320 46.0 0.0289 0.0289 52.5 0.0262 0.0262 60.0 0.0239 0.0239 69.0 0.0217 0.0217 79.0 0.0199 0.0199 90.5 0.0183 0.0183 105.5 0.0168 0.0168 123.5 0.0154 0.0154 143.0 0.0143 0.0143 163.5 0.0134 0.0134 185.0 0.0127 0.0127 208.0 0.0120 0.0120 232.5 0.0115 0.0115 258.5 0.0111 0.0111 286.0 0.0107 0.0107 331.0 0.0103 0.0103 396.0 0.0099 0.0099 468.5 0.0096 0.0096 549.5 0.0100 0.0100 639.0 0.0105 0.0105 738.0 0.0110 0.0110 847.5 0.0115 0.0115 968.5 0.0120 0.0120 1102.0 0.0125 0.0125 1249.5 0.0129 0.0129 1412.0 0.0134 0.0134 1590.5 0.0138 0.0138 1787.0 0.0142 0.0142 1945.0 0.0144 0.0144 2119.0 0.0147 0.0147 2369.0 0.0150 0.0150 2643.5 0.0153 0.0153 2945.0 0.0157 0.0157 3276.5 0.0160 0.0160 -0.6 0.8 132 9.0 0.1008 0.1008 11.0 0.0892 0.0892 13.5 0.0770 0.0770 16.5 0.0662 0.0662 19.5 0.0580 0.0580 22.5 0.0517 0.0517 26.0 0.0461 0.0461 30.0 0.0411 0.0411 34.5 0.0369 0.0369 40.0 0.0330 0.0330 46.0 0.0299 0.0299 52.5 0.0273 0.0273 60.0 0.0249 0.0249 69.0 0.0227 0.0227 79.0 0.0208 0.0208 90.5 0.0192 0.0192 105.5 0.0175 0.0175 123.5 0.0160 0.0160 143.0 0.0148 0.0148 163.5 0.0138 0.0138 185.0 0.0130 0.0130 208.0 0.0123 0.0123 232.5 0.0117 0.0117 258.5 0.0112 0.0112 286.0 0.0108 0.0108 331.0 0.0103 0.0103 396.0 0.0099 0.0099 468.5 0.0097 0.0097 549.5 0.0101 0.0101 639.0 0.0106 0.0106 738.0 0.0112 0.0112 847.5 0.0118 0.0118 968.5 0.0124 0.0124 1102.0 0.0130 0.0130 1249.5 0.0136 0.0136 1412.0 0.0142 0.0142 1590.5 0.0146 0.0146 1787.0 0.0149 0.0149 1945.0 0.0152 0.0152 2119.0 0.0154 0.0154 2369.0 0.0157 0.0157 2643.5 0.0160 0.0160 2945.0 0.0164 0.0164 3276.5 0.0167 0.0167 -0.8 1.0 132 9.0 0.1040 0.1040 11.0 0.0914 0.0914 13.5 0.0784 0.0784 16.5 0.0668 0.0668 19.5 0.0581 0.0581 22.5 0.0514 0.0514 26.0 0.0454 0.0454 30.0 0.0402 0.0402 34.5 0.0358 0.0358 40.0 0.0318 0.0318 46.0 0.0287 0.0287 52.5 0.0261 0.0261 60.0 0.0237 0.0237 69.0 0.0216 0.0216 79.0 0.0199 0.0199 90.5 0.0183 0.0183 105.5 0.0168 0.0168 123.5 0.0155 0.0155 143.0 0.0144 0.0144 163.5 0.0135 0.0135 185.0 0.0128 0.0128 208.0 0.0122 0.0122 232.5 0.0117 0.0117 258.5 0.0112 0.0112 286.0 0.0108 0.0108 331.0 0.0104 0.0104 396.0 0.0100 0.0100 468.5 0.0098 0.0098 549.5 0.0102 0.0102 639.0 0.0107 0.0107 738.0 0.0112 0.0112 847.5 0.0118 0.0118 968.5 0.0123 0.0123 1102.0 0.0128 0.0128 1249.5 0.0134 0.0134 1412.0 0.0139 0.0139 1590.5 0.0143 0.0143 1787.0 0.0146 0.0146 1945.0 0.0149 0.0149 2119.0 0.0151 0.0151 2369.0 0.0155 0.0155 2643.5 0.0158 0.0158 2945.0 0.0161 0.0161 3276.5 0.0164 0.0164 -1.0 1.2 132 9.0 0.1130 0.1130 11.0 0.0981 0.0981 13.5 0.0830 0.0830 16.5 0.0696 0.0696 19.5 0.0596 0.0596 22.5 0.0520 0.0520 26.0 0.0452 0.0452 30.0 0.0394 0.0394 34.5 0.0345 0.0345 40.0 0.0302 0.0302 46.0 0.0268 0.0268 52.5 0.0242 0.0242 60.0 0.0220 0.0220 69.0 0.0201 0.0201 79.0 0.0186 0.0186 90.5 0.0173 0.0173 105.5 0.0161 0.0161 123.5 0.0151 0.0151 143.0 0.0142 0.0142 163.5 0.0135 0.0135 185.0 0.0130 0.0130 208.0 0.0124 0.0124 232.5 0.0120 0.0120 258.5 0.0116 0.0116 286.0 0.0113 0.0113 331.0 0.0108 0.0108 396.0 0.0104 0.0104 468.5 0.0102 0.0102 549.5 0.0105 0.0105 639.0 0.0109 0.0109 738.0 0.0113 0.0113 847.5 0.0117 0.0117 968.5 0.0121 0.0121 1102.0 0.0125 0.0125 1249.5 0.0129 0.0129 1412.0 0.0133 0.0133 1590.5 0.0137 0.0137 1787.0 0.0140 0.0140 1945.0 0.0142 0.0142 2119.0 0.0145 0.0145 2369.0 0.0148 0.0148 2643.5 0.0152 0.0152 2945.0 0.0155 0.0155 3276.5 0.0158 0.0158 -1.2 1.4 132 9.0 0.1150 0.1150 11.0 0.0991 0.0991 13.5 0.0832 0.0832 16.5 0.0690 0.0690 19.5 0.0586 0.0586 22.5 0.0507 0.0507 26.0 0.0437 0.0437 30.0 0.0378 0.0378 34.5 0.0329 0.0329 40.0 0.0287 0.0287 46.0 0.0255 0.0255 52.5 0.0230 0.0230 60.0 0.0211 0.0211 69.0 0.0194 0.0194 79.0 0.0182 0.0182 90.5 0.0171 0.0171 105.5 0.0161 0.0161 123.5 0.0152 0.0152 143.0 0.0145 0.0145 163.5 0.0139 0.0139 185.0 0.0134 0.0134 208.0 0.0129 0.0129 232.5 0.0124 0.0124 258.5 0.0121 0.0121 286.0 0.0117 0.0117 331.0 0.0113 0.0113 396.0 0.0108 0.0108 468.5 0.0105 0.0105 549.5 0.0107 0.0107 639.0 0.0110 0.0110 738.0 0.0113 0.0113 847.5 0.0117 0.0117 968.5 0.0120 0.0120 1102.0 0.0123 0.0123 1249.5 0.0127 0.0127 1412.0 0.0130 0.0130 1590.5 0.0134 0.0134 1787.0 0.0137 0.0137 1945.0 0.0140 0.0140 2119.0 0.0142 0.0142 2369.0 0.0146 0.0146 2643.5 0.0149 0.0149 2945.0 0.0152 0.0152 3276.5 0.0155 0.0155 -1.4 1.6 132 9.0 0.1158 0.1158 11.0 0.1018 0.1018 13.5 0.0873 0.0873 16.5 0.0744 0.0744 19.5 0.0645 0.0645 22.5 0.0570 0.0570 26.0 0.0501 0.0501 30.0 0.0440 0.0440 34.5 0.0389 0.0389 40.0 0.0341 0.0341 46.0 0.0303 0.0303 52.5 0.0272 0.0272 60.0 0.0245 0.0245 69.0 0.0221 0.0221 79.0 0.0201 0.0201 90.5 0.0185 0.0185 105.5 0.0169 0.0169 123.5 0.0155 0.0155 143.0 0.0145 0.0145 163.5 0.0136 0.0136 185.0 0.0130 0.0130 208.0 0.0124 0.0124 232.5 0.0120 0.0120 258.5 0.0116 0.0116 286.0 0.0113 0.0113 331.0 0.0109 0.0109 396.0 0.0106 0.0106 468.5 0.0104 0.0104 549.5 0.0107 0.0107 639.0 0.0112 0.0112 738.0 0.0116 0.0116 847.5 0.0120 0.0120 968.5 0.0125 0.0125 1102.0 0.0129 0.0129 1249.5 0.0132 0.0132 1412.0 0.0136 0.0136 1590.5 0.0139 0.0139 1787.0 0.0143 0.0143 1945.0 0.0145 0.0145 2119.0 0.0148 0.0148 2369.0 0.0151 0.0151 2643.5 0.0155 0.0155 2945.0 0.0158 0.0158 3276.5 0.0161 0.0161 -1.6 1.8 132 9.0 0.1184 0.1184 11.0 0.1045 0.1045 13.5 0.0902 0.0902 16.5 0.0772 0.0772 19.5 0.0674 0.0674 22.5 0.0597 0.0597 26.0 0.0528 0.0528 30.0 0.0466 0.0466 34.5 0.0413 0.0413 40.0 0.0364 0.0364 46.0 0.0324 0.0324 52.5 0.0292 0.0292 60.0 0.0262 0.0262 69.0 0.0236 0.0236 79.0 0.0214 0.0214 90.5 0.0196 0.0196 105.5 0.0178 0.0178 123.5 0.0162 0.0162 143.0 0.0150 0.0150 163.5 0.0140 0.0140 185.0 0.0132 0.0132 208.0 0.0126 0.0126 232.5 0.0121 0.0121 258.5 0.0117 0.0117 286.0 0.0113 0.0113 331.0 0.0109 0.0109 396.0 0.0106 0.0106 468.5 0.0105 0.0105 549.5 0.0109 0.0109 639.0 0.0114 0.0114 738.0 0.0119 0.0119 847.5 0.0125 0.0125 968.5 0.0130 0.0130 1102.0 0.0135 0.0135 1249.5 0.0138 0.0138 1412.0 0.0142 0.0142 1590.5 0.0145 0.0145 1787.0 0.0149 0.0149 1945.0 0.0151 0.0151 2119.0 0.0154 0.0154 2369.0 0.0157 0.0157 2643.5 0.0160 0.0160 2945.0 0.0163 0.0163 3276.5 0.0166 0.0166 -1.8 2.0 132 9.0 0.1389 0.1389 11.0 0.1209 0.1209 13.5 0.1026 0.1026 16.5 0.0861 0.0861 19.5 0.0738 0.0738 22.5 0.0644 0.0644 26.0 0.0559 0.0559 30.0 0.0485 0.0485 34.5 0.0423 0.0423 40.0 0.0366 0.0366 46.0 0.0321 0.0321 52.5 0.0285 0.0285 60.0 0.0254 0.0254 69.0 0.0227 0.0227 79.0 0.0205 0.0205 90.5 0.0187 0.0187 105.5 0.0170 0.0170 123.5 0.0156 0.0156 143.0 0.0145 0.0145 163.5 0.0137 0.0137 185.0 0.0130 0.0130 208.0 0.0125 0.0125 232.5 0.0120 0.0120 258.5 0.0117 0.0117 286.0 0.0113 0.0113 331.0 0.0110 0.0110 396.0 0.0107 0.0107 468.5 0.0105 0.0105 549.5 0.0109 0.0109 639.0 0.0114 0.0114 738.0 0.0118 0.0118 847.5 0.0123 0.0123 968.5 0.0126 0.0126 1102.0 0.0130 0.0130 1249.5 0.0133 0.0133 1412.0 0.0137 0.0137 1590.5 0.0140 0.0140 1787.0 0.0144 0.0144 1945.0 0.0146 0.0146 2119.0 0.0149 0.0149 2369.0 0.0152 0.0152 2643.5 0.0155 0.0155 2945.0 0.0159 0.0159 3276.5 0.0162 0.0162 -2.0 2.2 132 9.0 0.1810 0.1810 11.0 0.1544 0.1544 13.5 0.1269 0.1269 16.5 0.1027 0.1027 19.5 0.0852 0.0852 22.5 0.0721 0.0721 26.0 0.0607 0.0607 30.0 0.0512 0.0512 34.5 0.0435 0.0435 40.0 0.0369 0.0369 46.0 0.0319 0.0319 52.5 0.0282 0.0282 60.0 0.0251 0.0251 69.0 0.0225 0.0225 79.0 0.0206 0.0206 90.5 0.0191 0.0191 105.5 0.0177 0.0177 123.5 0.0166 0.0166 143.0 0.0158 0.0158 163.5 0.0151 0.0151 185.0 0.0145 0.0145 208.0 0.0140 0.0140 232.5 0.0136 0.0136 258.5 0.0132 0.0132 286.0 0.0129 0.0129 331.0 0.0126 0.0126 396.0 0.0123 0.0123 468.5 0.0122 0.0122 549.5 0.0126 0.0126 639.0 0.0132 0.0132 738.0 0.0137 0.0137 847.5 0.0141 0.0141 968.5 0.0144 0.0144 1102.0 0.0147 0.0147 1249.5 0.0150 0.0150 1412.0 0.0153 0.0153 1590.5 0.0155 0.0155 1787.0 0.0158 0.0158 1945.0 0.0161 0.0161 2119.0 0.0163 0.0163 2369.0 0.0166 0.0166 2643.5 0.0169 0.0169 2945.0 0.0171 0.0171 3276.5 0.0174 0.0174 -2.2 2.4 132 9.0 0.1613 0.1613 11.0 0.1356 0.1356 13.5 0.1088 0.1088 16.5 0.0858 0.0858 19.5 0.0699 0.0699 22.5 0.0584 0.0584 26.0 0.0490 0.0490 30.0 0.0415 0.0415 34.5 0.0357 0.0357 40.0 0.0312 0.0312 46.0 0.0280 0.0280 52.5 0.0258 0.0258 60.0 0.0239 0.0239 69.0 0.0224 0.0224 79.0 0.0213 0.0213 90.5 0.0203 0.0203 105.5 0.0193 0.0193 123.5 0.0183 0.0183 143.0 0.0175 0.0175 163.5 0.0168 0.0168 185.0 0.0162 0.0162 208.0 0.0156 0.0156 232.5 0.0151 0.0151 258.5 0.0146 0.0146 286.0 0.0142 0.0142 331.0 0.0138 0.0138 396.0 0.0134 0.0134 468.5 0.0131 0.0131 549.5 0.0135 0.0135 639.0 0.0137 0.0137 738.0 0.0139 0.0139 847.5 0.0141 0.0141 968.5 0.0143 0.0143 1102.0 0.0146 0.0146 1249.5 0.0148 0.0148 1412.0 0.0151 0.0151 1590.5 0.0154 0.0154 1787.0 0.0157 0.0157 1945.0 0.0159 0.0159 2119.0 0.0161 0.0161 2369.0 0.0164 0.0164 2643.5 0.0167 0.0167 2945.0 0.0169 0.0169 3276.5 0.0172 0.0172 -2.4 2.6 132 9.0 0.1378 0.1378 11.0 0.1175 0.1175 13.5 0.0963 0.0963 16.5 0.0779 0.0779 19.5 0.0652 0.0652 22.5 0.0563 0.0563 26.0 0.0490 0.0490 30.0 0.0433 0.0433 34.5 0.0390 0.0390 40.0 0.0356 0.0356 46.0 0.0332 0.0332 52.5 0.0313 0.0313 60.0 0.0291 0.0291 69.0 0.0272 0.0272 79.0 0.0256 0.0256 90.5 0.0241 0.0241 105.5 0.0226 0.0226 123.5 0.0212 0.0212 143.0 0.0200 0.0200 163.5 0.0191 0.0191 185.0 0.0184 0.0184 208.0 0.0178 0.0178 232.5 0.0174 0.0174 258.5 0.0171 0.0171 286.0 0.0170 0.0170 331.0 0.0170 0.0170 396.0 0.0175 0.0175 468.5 0.0179 0.0179 549.5 0.0183 0.0183 639.0 0.0186 0.0186 738.0 0.0188 0.0188 847.5 0.0189 0.0189 968.5 0.0191 0.0191 1102.0 0.0193 0.0193 1249.5 0.0195 0.0195 1412.0 0.0197 0.0197 1590.5 0.0199 0.0199 1787.0 0.0201 0.0201 1945.0 0.0203 0.0203 2119.0 0.0205 0.0205 2369.0 0.0207 0.0207 2643.5 0.0209 0.0209 2945.0 0.0212 0.0212 3276.5 0.0214 0.0214 -2.6 2.8 132 9.0 0.0683 0.0683 11.0 0.0605 0.0605 13.5 0.0537 0.0537 16.5 0.0479 0.0479 19.5 0.0439 0.0439 22.5 0.0409 0.0409 26.0 0.0383 0.0383 30.0 0.0360 0.0360 34.5 0.0341 0.0341 40.0 0.0323 0.0323 46.0 0.0309 0.0309 52.5 0.0294 0.0294 60.0 0.0276 0.0276 69.0 0.0258 0.0258 79.0 0.0242 0.0242 90.5 0.0226 0.0226 105.5 0.0211 0.0211 123.5 0.0197 0.0197 143.0 0.0185 0.0185 163.5 0.0177 0.0177 185.0 0.0170 0.0170 208.0 0.0166 0.0166 232.5 0.0163 0.0163 258.5 0.0162 0.0162 286.0 0.0162 0.0162 331.0 0.0164 0.0164 396.0 0.0170 0.0170 468.5 0.0173 0.0173 549.5 0.0175 0.0175 639.0 0.0177 0.0177 738.0 0.0180 0.0180 847.5 0.0182 0.0182 968.5 0.0184 0.0184 1102.0 0.0187 0.0187 1249.5 0.0189 0.0189 1412.0 0.0192 0.0192 1590.5 0.0194 0.0194 1787.0 0.0197 0.0197 1945.0 0.0199 0.0199 2119.0 0.0201 0.0201 2369.0 0.0203 0.0203 2643.5 0.0205 0.0205 2945.0 0.0208 0.0208 3276.5 0.0210 0.0210 -2.8 3.0 132 9.0 0.0641 0.0641 11.0 0.0585 0.0585 13.5 0.0534 0.0534 16.5 0.0488 0.0488 19.5 0.0453 0.0453 22.5 0.0426 0.0426 26.0 0.0402 0.0402 30.0 0.0380 0.0380 34.5 0.0361 0.0361 40.0 0.0344 0.0344 46.0 0.0330 0.0330 52.5 0.0317 0.0317 60.0 0.0304 0.0304 69.0 0.0293 0.0293 79.0 0.0283 0.0283 90.5 0.0274 0.0274 105.5 0.0266 0.0266 123.5 0.0259 0.0259 143.0 0.0253 0.0253 163.5 0.0249 0.0249 185.0 0.0246 0.0246 208.0 0.0244 0.0244 232.5 0.0243 0.0243 258.5 0.0242 0.0242 286.0 0.0242 0.0242 331.0 0.0241 0.0241 396.0 0.0240 0.0240 468.5 0.0239 0.0239 549.5 0.0240 0.0240 639.0 0.0242 0.0242 738.0 0.0244 0.0244 847.5 0.0246 0.0246 968.5 0.0248 0.0248 1102.0 0.0250 0.0250 1249.5 0.0251 0.0251 1412.0 0.0253 0.0253 1590.5 0.0255 0.0255 1787.0 0.0257 0.0257 1945.0 0.0259 0.0259 2119.0 0.0260 0.0260 2369.0 0.0262 0.0262 2643.5 0.0264 0.0264 2945.0 0.0266 0.0266 3276.5 0.0268 0.0268 -3.0 3.5 132 9.0 0.0810 0.0810 11.0 0.0695 0.0695 13.5 0.0596 0.0596 16.5 0.0522 0.0522 19.5 0.0480 0.0480 22.5 0.0454 0.0454 26.0 0.0436 0.0436 30.0 0.0424 0.0424 34.5 0.0415 0.0415 40.0 0.0407 0.0407 46.0 0.0399 0.0399 52.5 0.0391 0.0391 60.0 0.0382 0.0382 69.0 0.0372 0.0372 79.0 0.0361 0.0361 90.5 0.0351 0.0351 105.5 0.0339 0.0339 123.5 0.0328 0.0328 143.0 0.0318 0.0318 163.5 0.0309 0.0309 185.0 0.0302 0.0302 208.0 0.0296 0.0296 232.5 0.0291 0.0291 258.5 0.0286 0.0286 286.0 0.0282 0.0282 331.0 0.0277 0.0277 396.0 0.0272 0.0272 468.5 0.0268 0.0268 549.5 0.0267 0.0267 639.0 0.0267 0.0267 738.0 0.0267 0.0267 847.5 0.0268 0.0268 968.5 0.0268 0.0268 1102.0 0.0269 0.0269 1249.5 0.0270 0.0270 1412.0 0.0272 0.0272 1590.5 0.0273 0.0273 1787.0 0.0275 0.0275 1945.0 0.0276 0.0276 2119.0 0.0277 0.0277 2369.0 0.0279 0.0279 2643.5 0.0280 0.0280 2945.0 0.0282 0.0282 3276.5 0.0284 0.0284 -3.5 4.0 132 9.0 0.0828 0.0828 11.0 0.0746 0.0746 13.5 0.0673 0.0673 16.5 0.0615 0.0615 19.5 0.0575 0.0575 22.5 0.0547 0.0547 26.0 0.0524 0.0524 30.0 0.0506 0.0506 34.5 0.0491 0.0491 40.0 0.0479 0.0479 46.0 0.0469 0.0469 52.5 0.0454 0.0454 60.0 0.0427 0.0427 69.0 0.0406 0.0406 79.0 0.0391 0.0391 90.5 0.0385 0.0385 105.5 0.0387 0.0387 123.5 0.0402 0.0402 143.0 0.0402 0.0402 163.5 0.0399 0.0399 185.0 0.0397 0.0397 208.0 0.0395 0.0395 232.5 0.0393 0.0393 258.5 0.0392 0.0392 286.0 0.0390 0.0390 331.0 0.0389 0.0389 396.0 0.0388 0.0388 468.5 0.0387 0.0387 549.5 0.0388 0.0388 639.0 0.0389 0.0389 738.0 0.0390 0.0390 847.5 0.0391 0.0391 968.5 0.0392 0.0392 1102.0 0.0393 0.0393 1249.5 0.0394 0.0394 1412.0 0.0395 0.0395 1590.5 0.0397 0.0397 1787.0 0.0398 0.0398 1945.0 0.0399 0.0399 2119.0 0.0400 0.0400 2369.0 0.0401 0.0401 2643.5 0.0402 0.0402 2945.0 0.0403 0.0403 3276.5 0.0405 0.0405 -4.0 4.4 132 9.0 0.0880 0.0880 11.0 0.0792 0.0792 13.5 0.0712 0.0712 16.5 0.0645 0.0645 19.5 0.0598 0.0598 22.5 0.0564 0.0564 26.0 0.0536 0.0536 30.0 0.0513 0.0513 34.5 0.0495 0.0495 40.0 0.0480 0.0480 46.0 0.0468 0.0468 52.5 0.0452 0.0452 60.0 0.0424 0.0424 69.0 0.0402 0.0402 79.0 0.0387 0.0387 90.5 0.0381 0.0381 105.5 0.0384 0.0384 123.5 0.0394 0.0394 143.0 0.0391 0.0391 163.5 0.0388 0.0388 185.0 0.0386 0.0386 208.0 0.0385 0.0385 232.5 0.0383 0.0383 258.5 0.0382 0.0382 286.0 0.0381 0.0381 331.0 0.0380 0.0380 396.0 0.0379 0.0379 468.5 0.0378 0.0378 549.5 0.0379 0.0379 639.0 0.0380 0.0380 738.0 0.0381 0.0381 847.5 0.0383 0.0383 968.5 0.0384 0.0384 1102.0 0.0385 0.0385 1249.5 0.0386 0.0386 1412.0 0.0387 0.0387 1590.5 0.0389 0.0389 1787.0 0.0390 0.0390 1945.0 0.0391 0.0391 2119.0 0.0392 0.0392 2369.0 0.0393 0.0393 2643.5 0.0394 0.0394 2945.0 0.0396 0.0396 3276.5 0.0397 0.0397 -4.4 5.0 132 9.0 0.0635 0.0635 11.0 0.0599 0.0599 13.5 0.0574 0.0574 16.5 0.0555 0.0555 19.5 0.0541 0.0541 22.5 0.0530 0.0530 26.0 0.0519 0.0519 30.0 0.0509 0.0509 34.5 0.0500 0.0500 40.0 0.0490 0.0490 46.0 0.0481 0.0481 52.5 0.0467 0.0467 60.0 0.0440 0.0440 69.0 0.0418 0.0418 79.0 0.0407 0.0407 90.5 0.0401 0.0401 105.5 0.0394 0.0394 123.5 0.0388 0.0388 143.0 0.0383 0.0383 163.5 0.0379 0.0379 185.0 0.0376 0.0376 208.0 0.0373 0.0373 232.5 0.0371 0.0371 258.5 0.0369 0.0369 286.0 0.0367 0.0367 331.0 0.0365 0.0365 396.0 0.0364 0.0364 468.5 0.0362 0.0362 549.5 0.0363 0.0363 639.0 0.0364 0.0364 738.0 0.0365 0.0365 847.5 0.0366 0.0366 968.5 0.0367 0.0367 1102.0 0.0368 0.0368 1249.5 0.0369 0.0369 1412.0 0.0370 0.0370 1590.5 0.0372 0.0372 1787.0 0.0373 0.0373 1945.0 0.0374 0.0374 2119.0 0.0375 0.0375 2369.0 0.0376 0.0376 2643.5 0.0378 0.0378 2945.0 0.0379 0.0379 3276.5 0.0380 0.0380 -5.0 5.4 132 9.0 0.0640 0.0640 11.0 0.0603 0.0603 13.5 0.0577 0.0577 16.5 0.0557 0.0557 19.5 0.0543 0.0543 22.5 0.0531 0.0531 26.0 0.0520 0.0520 30.0 0.0510 0.0510 34.5 0.0500 0.0500 40.0 0.0490 0.0490 46.0 0.0482 0.0482 52.5 0.0474 0.0474 60.0 0.0466 0.0466 69.0 0.0459 0.0459 79.0 0.0453 0.0453 90.5 0.0447 0.0447 105.5 0.0441 0.0441 123.5 0.0436 0.0436 143.0 0.0431 0.0431 163.5 0.0428 0.0428 185.0 0.0425 0.0425 208.0 0.0422 0.0422 232.5 0.0420 0.0420 258.5 0.0419 0.0419 286.0 0.0417 0.0417 331.0 0.0416 0.0416 396.0 0.0414 0.0414 468.5 0.0413 0.0413 549.5 0.0413 0.0413 639.0 0.0414 0.0414 738.0 0.0415 0.0415 847.5 0.0416 0.0416 968.5 0.0417 0.0417 1102.0 0.0418 0.0418 1249.5 0.0419 0.0419 1412.0 0.0420 0.0420 1590.5 0.0421 0.0421 1787.0 0.0422 0.0422 1945.0 0.0423 0.0423 2119.0 0.0424 0.0424 2369.0 0.0425 0.0425 2643.5 0.0426 0.0426 2945.0 0.0428 0.0428 3276.5 0.0429 0.0429 diff --git a/PhysicsTools/PatUtils/data/Summer13_V1_DATA_UncertaintySources_AK5PFchs.txt b/PhysicsTools/PatUtils/data/Summer13_V1_DATA_UncertaintySources_AK5PFchs.txt deleted file mode 100644 index 3a2785cb2c397..0000000000000 --- a/PhysicsTools/PatUtils/data/Summer13_V1_DATA_UncertaintySources_AK5PFchs.txt +++ /dev/null @@ -1,1093 +0,0 @@ -#Uncertainty sources for Summer13_V1_DATA_AK5PFchs -[Absolute] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --5.0 -4.4 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --4.4 -4.0 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --4.0 -3.5 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --3.5 -3.0 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --3.0 -2.8 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --2.8 -2.6 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --2.6 -2.4 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --2.4 -2.2 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --2.2 -2.0 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --2.0 -1.8 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --1.8 -1.6 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --1.6 -1.4 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --1.4 -1.2 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --1.2 -1.0 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --1.0 -0.8 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --0.8 -0.6 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --0.6 -0.4 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --0.4 -0.2 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 --0.2 0.0 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -0.0 0.2 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -0.2 0.4 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -0.4 0.6 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -0.6 0.8 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -0.8 1.0 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -1.0 1.2 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -1.2 1.4 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -1.4 1.6 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -1.6 1.8 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -1.8 2.0 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -2.0 2.2 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -2.2 2.4 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -2.4 2.6 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -2.6 2.8 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -2.8 3.0 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -3.0 3.5 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -3.5 4.0 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -4.0 4.4 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -4.4 5.0 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -5.0 5.4 132 9.0 0.0065 0.0065 11.0 0.0065 0.0065 13.5 0.0065 0.0065 16.5 0.0065 0.0065 19.5 0.0065 0.0065 22.5 0.0065 0.0065 26.0 0.0065 0.0065 30.0 0.0065 0.0065 34.5 0.0065 0.0065 40.0 0.0065 0.0065 46.0 0.0065 0.0065 52.5 0.0065 0.0065 60.0 0.0065 0.0065 69.0 0.0065 0.0065 79.0 0.0065 0.0065 90.5 0.0065 0.0065 105.5 0.0065 0.0065 123.5 0.0065 0.0065 143.0 0.0065 0.0065 163.5 0.0065 0.0065 185.0 0.0065 0.0065 208.0 0.0065 0.0065 232.5 0.0065 0.0065 258.5 0.0065 0.0065 286.0 0.0065 0.0065 331.0 0.0065 0.0065 396.0 0.0065 0.0065 468.5 0.0065 0.0065 549.5 0.0065 0.0065 639.0 0.0065 0.0065 738.0 0.0065 0.0065 847.5 0.0065 0.0065 968.5 0.0065 0.0065 1102.0 0.0065 0.0065 1249.5 0.0065 0.0065 1412.0 0.0065 0.0065 1590.5 0.0065 0.0065 1787.0 0.0065 0.0065 1945.0 0.0065 0.0065 2119.0 0.0065 0.0065 2369.0 0.0065 0.0065 2643.5 0.0065 0.0065 2945.0 0.0065 0.0065 3276.5 0.0065 0.0065 -[HighPtExtra] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --5.0 -4.4 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --4.4 -4.0 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --4.0 -3.5 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --3.5 -3.0 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --3.0 -2.8 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --2.8 -2.6 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --2.6 -2.4 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --2.4 -2.2 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --2.2 -2.0 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --2.0 -1.8 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --1.8 -1.6 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --1.6 -1.4 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --1.4 -1.2 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --1.2 -1.0 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --1.0 -0.8 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --0.8 -0.6 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --0.6 -0.4 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --0.4 -0.2 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 --0.2 0.0 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -0.0 0.2 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -0.2 0.4 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -0.4 0.6 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -0.6 0.8 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -0.8 1.0 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -1.0 1.2 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -1.2 1.4 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -1.4 1.6 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -1.6 1.8 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -1.8 2.0 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -2.0 2.2 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -2.2 2.4 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -2.4 2.6 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -2.6 2.8 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -2.8 3.0 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -3.0 3.5 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -3.5 4.0 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -4.0 4.4 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -4.4 5.0 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -5.0 5.4 132 9.0 0.0030 0.0030 11.0 0.0102 0.0102 13.5 0.0136 0.0136 16.5 0.0147 0.0147 19.5 0.0145 0.0145 22.5 0.0139 0.0139 26.0 0.0130 0.0130 30.0 0.0120 0.0120 34.5 0.0109 0.0109 40.0 0.0097 0.0097 46.0 0.0087 0.0087 52.5 0.0077 0.0077 60.0 0.0067 0.0067 69.0 0.0057 0.0057 79.0 0.0048 0.0048 90.5 0.0040 0.0040 105.5 0.0031 0.0031 123.5 0.0023 0.0023 143.0 0.0015 0.0015 163.5 0.0009 0.0009 185.0 0.0003 0.0003 208.0 0.0002 0.0002 232.5 0.0006 0.0006 258.5 0.0010 0.0010 286.0 0.0014 0.0014 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0031 0.0031 549.5 0.0036 0.0036 639.0 0.0041 0.0041 738.0 0.0045 0.0045 847.5 0.0049 0.0049 968.5 0.0053 0.0053 1102.0 0.0056 0.0056 1249.5 0.0060 0.0060 1412.0 0.0063 0.0063 1590.5 0.0066 0.0066 1787.0 0.0069 0.0069 1945.0 0.0071 0.0071 2119.0 0.0074 0.0074 2369.0 0.0076 0.0076 2643.5 0.0079 0.0079 2945.0 0.0082 0.0082 3276.5 0.0085 0.0085 -[SinglePionECAL] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --5.0 -4.4 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --4.4 -4.0 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --4.0 -3.5 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --3.5 -3.0 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --3.0 -2.8 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --2.8 -2.6 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --2.6 -2.4 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --2.4 -2.2 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --2.2 -2.0 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --2.0 -1.8 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --1.8 -1.6 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --1.6 -1.4 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --1.4 -1.2 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --1.2 -1.0 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --1.0 -0.8 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --0.8 -0.6 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --0.6 -0.4 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --0.4 -0.2 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --0.2 0.0 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -0.0 0.2 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -0.2 0.4 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -0.4 0.6 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -0.6 0.8 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -0.8 1.0 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -1.0 1.2 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -1.2 1.4 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -1.4 1.6 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -1.6 1.8 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -1.8 2.0 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -2.0 2.2 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -2.2 2.4 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -2.4 2.6 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -2.6 2.8 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -2.8 3.0 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -3.0 3.5 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -3.5 4.0 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -4.0 4.4 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -4.4 5.0 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -5.0 5.4 132 9.0 -0.0060 -0.0060 11.0 -0.0052 -0.0052 13.5 -0.0044 -0.0044 16.5 -0.0037 -0.0037 19.5 -0.0032 -0.0032 22.5 -0.0029 -0.0029 26.0 -0.0025 -0.0025 30.0 -0.0022 -0.0022 34.5 -0.0019 -0.0019 40.0 -0.0017 -0.0017 46.0 -0.0014 -0.0014 52.5 -0.0012 -0.0012 60.0 -0.0011 -0.0011 69.0 -0.0009 -0.0009 79.0 -0.0007 -0.0007 90.5 -0.0006 -0.0006 105.5 -0.0005 -0.0005 123.5 -0.0003 -0.0003 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0000 -0.0000 208.0 0.0000 0.0000 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0004 0.0004 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -[SinglePionHCAL] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --5.0 -4.4 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --4.4 -4.0 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --4.0 -3.5 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --3.5 -3.0 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --3.0 -2.8 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --2.8 -2.6 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --2.6 -2.4 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --2.4 -2.2 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --2.2 -2.0 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --2.0 -1.8 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --1.8 -1.6 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --1.6 -1.4 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --1.4 -1.2 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --1.2 -1.0 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --1.0 -0.8 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --0.8 -0.6 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --0.6 -0.4 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --0.4 -0.2 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 --0.2 0.0 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -0.0 0.2 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -0.2 0.4 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -0.4 0.6 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -0.6 0.8 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -0.8 1.0 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -1.0 1.2 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -1.2 1.4 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -1.4 1.6 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -1.6 1.8 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -1.8 2.0 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -2.0 2.2 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -2.2 2.4 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -2.4 2.6 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -2.6 2.8 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -2.8 3.0 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -3.0 3.5 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -3.5 4.0 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -4.0 4.4 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -4.4 5.0 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -5.0 5.4 132 9.0 -0.0139 -0.0139 11.0 -0.0127 -0.0127 13.5 -0.0116 -0.0116 16.5 -0.0106 -0.0106 19.5 -0.0098 -0.0098 22.5 -0.0091 -0.0091 26.0 -0.0084 -0.0084 30.0 -0.0077 -0.0077 34.5 -0.0070 -0.0070 40.0 -0.0064 -0.0064 46.0 -0.0057 -0.0057 52.5 -0.0052 -0.0052 60.0 -0.0046 -0.0046 69.0 -0.0040 -0.0040 79.0 -0.0035 -0.0035 90.5 -0.0029 -0.0029 105.5 -0.0023 -0.0023 123.5 -0.0017 -0.0017 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0003 -0.0003 208.0 0.0001 0.0001 232.5 0.0005 0.0005 258.5 0.0009 0.0009 286.0 0.0012 0.0012 331.0 0.0017 0.0017 396.0 0.0023 0.0023 468.5 0.0028 0.0028 549.5 0.0033 0.0033 639.0 0.0037 0.0037 738.0 0.0041 0.0041 847.5 0.0045 0.0045 968.5 0.0049 0.0049 1102.0 0.0052 0.0052 1249.5 0.0056 0.0056 1412.0 0.0059 0.0059 1590.5 0.0062 0.0062 1787.0 0.0065 0.0065 1945.0 0.0067 0.0067 2119.0 0.0069 0.0069 2369.0 0.0072 0.0072 2643.5 0.0074 0.0074 2945.0 0.0077 0.0077 3276.5 0.0079 0.0079 -[Flavor] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --5.0 -4.4 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --4.4 -4.0 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --4.0 -3.5 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --3.5 -3.0 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --3.0 -2.8 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --2.8 -2.6 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --2.6 -2.4 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --2.4 -2.2 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --2.2 -2.0 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --2.0 -1.8 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --1.8 -1.6 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --1.6 -1.4 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --1.4 -1.2 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --1.2 -1.0 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --1.0 -0.8 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --0.8 -0.6 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --0.6 -0.4 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --0.4 -0.2 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 --0.2 0.0 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -0.0 0.2 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -0.2 0.4 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -0.4 0.6 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -0.6 0.8 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -0.8 1.0 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -1.0 1.2 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -1.2 1.4 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -1.4 1.6 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -1.6 1.8 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -1.8 2.0 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -2.0 2.2 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -2.2 2.4 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -2.4 2.6 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -2.6 2.8 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -2.8 3.0 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -3.0 3.5 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -3.5 4.0 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -4.0 4.4 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -4.4 5.0 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -5.0 5.4 132 9.0 0.0455 0.0455 11.0 0.0405 0.0405 13.5 0.0362 0.0362 16.5 0.0326 0.0326 19.5 0.0299 0.0299 22.5 0.0279 0.0279 26.0 0.0261 0.0261 30.0 0.0244 0.0244 34.5 0.0229 0.0229 40.0 0.0214 0.0214 46.0 0.0201 0.0201 52.5 0.0190 0.0190 60.0 0.0179 0.0179 69.0 0.0168 0.0168 79.0 0.0158 0.0158 90.5 0.0149 0.0149 105.5 0.0139 0.0139 123.5 0.0129 0.0129 143.0 0.0120 0.0120 163.5 0.0112 0.0112 185.0 0.0105 0.0105 208.0 0.0099 0.0099 232.5 0.0093 0.0093 258.5 0.0087 0.0087 286.0 0.0082 0.0082 331.0 0.0074 0.0074 396.0 0.0065 0.0065 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0059 0.0059 738.0 0.0061 0.0061 847.5 0.0062 0.0062 968.5 0.0064 0.0064 1102.0 0.0066 0.0066 1249.5 0.0067 0.0067 1412.0 0.0069 0.0069 1590.5 0.0070 0.0070 1787.0 0.0072 0.0072 1945.0 0.0073 0.0073 2119.0 0.0074 0.0074 2369.0 0.0075 0.0075 2643.5 0.0076 0.0076 2945.0 0.0078 0.0078 3276.5 0.0079 0.0079 -[Time] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0088 0.0088 11.0 0.0088 0.0088 13.5 0.0088 0.0088 16.5 0.0088 0.0088 19.5 0.0088 0.0088 22.5 0.0088 0.0088 26.0 0.0088 0.0088 30.0 0.0088 0.0088 34.5 0.0088 0.0088 40.0 0.0088 0.0088 46.0 0.0088 0.0088 52.5 0.0088 0.0088 60.0 0.0088 0.0088 69.0 0.0088 0.0088 79.0 0.0088 0.0088 90.5 0.0088 0.0088 105.5 0.0088 0.0088 123.5 0.0088 0.0088 143.0 0.0088 0.0088 163.5 0.0088 0.0088 185.0 0.0088 0.0088 208.0 0.0088 0.0088 232.5 0.0088 0.0088 258.5 0.0088 0.0088 286.0 0.0088 0.0088 331.0 0.0088 0.0088 396.0 0.0088 0.0088 468.5 0.0088 0.0088 549.5 0.0088 0.0088 639.0 0.0088 0.0088 738.0 0.0088 0.0088 847.5 0.0088 0.0088 968.5 0.0088 0.0088 1102.0 0.0088 0.0088 1249.5 0.0088 0.0088 1412.0 0.0088 0.0088 1590.5 0.0088 0.0088 1787.0 0.0088 0.0088 1945.0 0.0088 0.0088 2119.0 0.0088 0.0088 2369.0 0.0088 0.0088 2643.5 0.0088 0.0088 2945.0 0.0088 0.0088 3276.5 0.0088 0.0088 --5.0 -4.4 132 9.0 0.0088 0.0088 11.0 0.0088 0.0088 13.5 0.0088 0.0088 16.5 0.0088 0.0088 19.5 0.0088 0.0088 22.5 0.0088 0.0088 26.0 0.0088 0.0088 30.0 0.0088 0.0088 34.5 0.0088 0.0088 40.0 0.0088 0.0088 46.0 0.0088 0.0088 52.5 0.0088 0.0088 60.0 0.0088 0.0088 69.0 0.0088 0.0088 79.0 0.0088 0.0088 90.5 0.0088 0.0088 105.5 0.0088 0.0088 123.5 0.0088 0.0088 143.0 0.0088 0.0088 163.5 0.0088 0.0088 185.0 0.0088 0.0088 208.0 0.0088 0.0088 232.5 0.0088 0.0088 258.5 0.0088 0.0088 286.0 0.0088 0.0088 331.0 0.0088 0.0088 396.0 0.0088 0.0088 468.5 0.0088 0.0088 549.5 0.0088 0.0088 639.0 0.0088 0.0088 738.0 0.0088 0.0088 847.5 0.0088 0.0088 968.5 0.0088 0.0088 1102.0 0.0088 0.0088 1249.5 0.0088 0.0088 1412.0 0.0088 0.0088 1590.5 0.0088 0.0088 1787.0 0.0088 0.0088 1945.0 0.0088 0.0088 2119.0 0.0088 0.0088 2369.0 0.0088 0.0088 2643.5 0.0088 0.0088 2945.0 0.0088 0.0088 3276.5 0.0088 0.0088 --4.4 -4.0 132 9.0 0.0088 0.0088 11.0 0.0088 0.0088 13.5 0.0088 0.0088 16.5 0.0088 0.0088 19.5 0.0088 0.0088 22.5 0.0088 0.0088 26.0 0.0088 0.0088 30.0 0.0088 0.0088 34.5 0.0088 0.0088 40.0 0.0088 0.0088 46.0 0.0088 0.0088 52.5 0.0088 0.0088 60.0 0.0088 0.0088 69.0 0.0088 0.0088 79.0 0.0088 0.0088 90.5 0.0088 0.0088 105.5 0.0088 0.0088 123.5 0.0088 0.0088 143.0 0.0088 0.0088 163.5 0.0088 0.0088 185.0 0.0088 0.0088 208.0 0.0088 0.0088 232.5 0.0088 0.0088 258.5 0.0088 0.0088 286.0 0.0088 0.0088 331.0 0.0088 0.0088 396.0 0.0088 0.0088 468.5 0.0088 0.0088 549.5 0.0088 0.0088 639.0 0.0088 0.0088 738.0 0.0088 0.0088 847.5 0.0088 0.0088 968.5 0.0088 0.0088 1102.0 0.0088 0.0088 1249.5 0.0088 0.0088 1412.0 0.0088 0.0088 1590.5 0.0088 0.0088 1787.0 0.0088 0.0088 1945.0 0.0088 0.0088 2119.0 0.0088 0.0088 2369.0 0.0088 0.0088 2643.5 0.0088 0.0088 2945.0 0.0088 0.0088 3276.5 0.0088 0.0088 --4.0 -3.5 132 9.0 0.0088 0.0088 11.0 0.0088 0.0088 13.5 0.0088 0.0088 16.5 0.0088 0.0088 19.5 0.0088 0.0088 22.5 0.0088 0.0088 26.0 0.0088 0.0088 30.0 0.0088 0.0088 34.5 0.0088 0.0088 40.0 0.0088 0.0088 46.0 0.0088 0.0088 52.5 0.0088 0.0088 60.0 0.0088 0.0088 69.0 0.0088 0.0088 79.0 0.0088 0.0088 90.5 0.0088 0.0088 105.5 0.0088 0.0088 123.5 0.0088 0.0088 143.0 0.0088 0.0088 163.5 0.0088 0.0088 185.0 0.0088 0.0088 208.0 0.0088 0.0088 232.5 0.0088 0.0088 258.5 0.0088 0.0088 286.0 0.0088 0.0088 331.0 0.0088 0.0088 396.0 0.0088 0.0088 468.5 0.0088 0.0088 549.5 0.0088 0.0088 639.0 0.0088 0.0088 738.0 0.0088 0.0088 847.5 0.0088 0.0088 968.5 0.0088 0.0088 1102.0 0.0088 0.0088 1249.5 0.0088 0.0088 1412.0 0.0088 0.0088 1590.5 0.0088 0.0088 1787.0 0.0088 0.0088 1945.0 0.0088 0.0088 2119.0 0.0088 0.0088 2369.0 0.0088 0.0088 2643.5 0.0088 0.0088 2945.0 0.0088 0.0088 3276.5 0.0088 0.0088 --3.5 -3.0 132 9.0 0.0088 0.0088 11.0 0.0088 0.0088 13.5 0.0088 0.0088 16.5 0.0088 0.0088 19.5 0.0088 0.0088 22.5 0.0088 0.0088 26.0 0.0088 0.0088 30.0 0.0088 0.0088 34.5 0.0088 0.0088 40.0 0.0088 0.0088 46.0 0.0088 0.0088 52.5 0.0088 0.0088 60.0 0.0088 0.0088 69.0 0.0088 0.0088 79.0 0.0088 0.0088 90.5 0.0088 0.0088 105.5 0.0088 0.0088 123.5 0.0088 0.0088 143.0 0.0088 0.0088 163.5 0.0088 0.0088 185.0 0.0088 0.0088 208.0 0.0088 0.0088 232.5 0.0088 0.0088 258.5 0.0088 0.0088 286.0 0.0088 0.0088 331.0 0.0088 0.0088 396.0 0.0088 0.0088 468.5 0.0088 0.0088 549.5 0.0088 0.0088 639.0 0.0088 0.0088 738.0 0.0088 0.0088 847.5 0.0088 0.0088 968.5 0.0088 0.0088 1102.0 0.0088 0.0088 1249.5 0.0088 0.0088 1412.0 0.0088 0.0088 1590.5 0.0088 0.0088 1787.0 0.0088 0.0088 1945.0 0.0088 0.0088 2119.0 0.0088 0.0088 2369.0 0.0088 0.0088 2643.5 0.0088 0.0088 2945.0 0.0088 0.0088 3276.5 0.0088 0.0088 --3.0 -2.8 132 9.0 0.0070 0.0070 11.0 0.0070 0.0070 13.5 0.0070 0.0070 16.5 0.0070 0.0070 19.5 0.0070 0.0070 22.5 0.0070 0.0070 26.0 0.0070 0.0070 30.0 0.0070 0.0070 34.5 0.0070 0.0070 40.0 0.0070 0.0070 46.0 0.0070 0.0070 52.5 0.0070 0.0070 60.0 0.0070 0.0070 69.0 0.0070 0.0070 79.0 0.0070 0.0070 90.5 0.0070 0.0070 105.5 0.0070 0.0070 123.5 0.0070 0.0070 143.0 0.0070 0.0070 163.5 0.0070 0.0070 185.0 0.0070 0.0070 208.0 0.0070 0.0070 232.5 0.0070 0.0070 258.5 0.0070 0.0070 286.0 0.0070 0.0070 331.0 0.0070 0.0070 396.0 0.0070 0.0070 468.5 0.0070 0.0070 549.5 0.0070 0.0070 639.0 0.0070 0.0070 738.0 0.0070 0.0070 847.5 0.0070 0.0070 968.5 0.0070 0.0070 1102.0 0.0070 0.0070 1249.5 0.0070 0.0070 1412.0 0.0070 0.0070 1590.5 0.0070 0.0070 1787.0 0.0070 0.0070 1945.0 0.0070 0.0070 2119.0 0.0070 0.0070 2369.0 0.0070 0.0070 2643.5 0.0070 0.0070 2945.0 0.0070 0.0070 3276.5 0.0070 0.0070 --2.8 -2.6 132 9.0 0.0070 0.0070 11.0 0.0070 0.0070 13.5 0.0070 0.0070 16.5 0.0070 0.0070 19.5 0.0070 0.0070 22.5 0.0070 0.0070 26.0 0.0070 0.0070 30.0 0.0070 0.0070 34.5 0.0070 0.0070 40.0 0.0070 0.0070 46.0 0.0070 0.0070 52.5 0.0070 0.0070 60.0 0.0070 0.0070 69.0 0.0070 0.0070 79.0 0.0070 0.0070 90.5 0.0070 0.0070 105.5 0.0070 0.0070 123.5 0.0070 0.0070 143.0 0.0070 0.0070 163.5 0.0070 0.0070 185.0 0.0070 0.0070 208.0 0.0070 0.0070 232.5 0.0070 0.0070 258.5 0.0070 0.0070 286.0 0.0070 0.0070 331.0 0.0070 0.0070 396.0 0.0070 0.0070 468.5 0.0070 0.0070 549.5 0.0070 0.0070 639.0 0.0070 0.0070 738.0 0.0070 0.0070 847.5 0.0070 0.0070 968.5 0.0070 0.0070 1102.0 0.0070 0.0070 1249.5 0.0070 0.0070 1412.0 0.0070 0.0070 1590.5 0.0070 0.0070 1787.0 0.0070 0.0070 1945.0 0.0070 0.0070 2119.0 0.0070 0.0070 2369.0 0.0070 0.0070 2643.5 0.0070 0.0070 2945.0 0.0070 0.0070 3276.5 0.0070 0.0070 --2.6 -2.4 132 9.0 0.0070 0.0070 11.0 0.0070 0.0070 13.5 0.0070 0.0070 16.5 0.0070 0.0070 19.5 0.0070 0.0070 22.5 0.0070 0.0070 26.0 0.0070 0.0070 30.0 0.0070 0.0070 34.5 0.0070 0.0070 40.0 0.0070 0.0070 46.0 0.0070 0.0070 52.5 0.0070 0.0070 60.0 0.0070 0.0070 69.0 0.0070 0.0070 79.0 0.0070 0.0070 90.5 0.0070 0.0070 105.5 0.0070 0.0070 123.5 0.0070 0.0070 143.0 0.0070 0.0070 163.5 0.0070 0.0070 185.0 0.0070 0.0070 208.0 0.0070 0.0070 232.5 0.0070 0.0070 258.5 0.0070 0.0070 286.0 0.0070 0.0070 331.0 0.0070 0.0070 396.0 0.0070 0.0070 468.5 0.0070 0.0070 549.5 0.0070 0.0070 639.0 0.0070 0.0070 738.0 0.0070 0.0070 847.5 0.0070 0.0070 968.5 0.0070 0.0070 1102.0 0.0070 0.0070 1249.5 0.0070 0.0070 1412.0 0.0070 0.0070 1590.5 0.0070 0.0070 1787.0 0.0070 0.0070 1945.0 0.0070 0.0070 2119.0 0.0070 0.0070 2369.0 0.0070 0.0070 2643.5 0.0070 0.0070 2945.0 0.0070 0.0070 3276.5 0.0070 0.0070 --2.4 -2.2 132 9.0 0.0051 0.0051 11.0 0.0051 0.0051 13.5 0.0051 0.0051 16.5 0.0051 0.0051 19.5 0.0051 0.0051 22.5 0.0051 0.0051 26.0 0.0051 0.0051 30.0 0.0051 0.0051 34.5 0.0051 0.0051 40.0 0.0051 0.0051 46.0 0.0051 0.0051 52.5 0.0051 0.0051 60.0 0.0051 0.0051 69.0 0.0051 0.0051 79.0 0.0051 0.0051 90.5 0.0051 0.0051 105.5 0.0051 0.0051 123.5 0.0051 0.0051 143.0 0.0051 0.0051 163.5 0.0051 0.0051 185.0 0.0051 0.0051 208.0 0.0051 0.0051 232.5 0.0051 0.0051 258.5 0.0051 0.0051 286.0 0.0051 0.0051 331.0 0.0051 0.0051 396.0 0.0051 0.0051 468.5 0.0051 0.0051 549.5 0.0051 0.0051 639.0 0.0051 0.0051 738.0 0.0051 0.0051 847.5 0.0051 0.0051 968.5 0.0051 0.0051 1102.0 0.0051 0.0051 1249.5 0.0051 0.0051 1412.0 0.0051 0.0051 1590.5 0.0051 0.0051 1787.0 0.0051 0.0051 1945.0 0.0051 0.0051 2119.0 0.0051 0.0051 2369.0 0.0051 0.0051 2643.5 0.0051 0.0051 2945.0 0.0051 0.0051 3276.5 0.0051 0.0051 --2.2 -2.0 132 9.0 0.0051 0.0051 11.0 0.0051 0.0051 13.5 0.0051 0.0051 16.5 0.0051 0.0051 19.5 0.0051 0.0051 22.5 0.0051 0.0051 26.0 0.0051 0.0051 30.0 0.0051 0.0051 34.5 0.0051 0.0051 40.0 0.0051 0.0051 46.0 0.0051 0.0051 52.5 0.0051 0.0051 60.0 0.0051 0.0051 69.0 0.0051 0.0051 79.0 0.0051 0.0051 90.5 0.0051 0.0051 105.5 0.0051 0.0051 123.5 0.0051 0.0051 143.0 0.0051 0.0051 163.5 0.0051 0.0051 185.0 0.0051 0.0051 208.0 0.0051 0.0051 232.5 0.0051 0.0051 258.5 0.0051 0.0051 286.0 0.0051 0.0051 331.0 0.0051 0.0051 396.0 0.0051 0.0051 468.5 0.0051 0.0051 549.5 0.0051 0.0051 639.0 0.0051 0.0051 738.0 0.0051 0.0051 847.5 0.0051 0.0051 968.5 0.0051 0.0051 1102.0 0.0051 0.0051 1249.5 0.0051 0.0051 1412.0 0.0051 0.0051 1590.5 0.0051 0.0051 1787.0 0.0051 0.0051 1945.0 0.0051 0.0051 2119.0 0.0051 0.0051 2369.0 0.0051 0.0051 2643.5 0.0051 0.0051 2945.0 0.0051 0.0051 3276.5 0.0051 0.0051 --2.0 -1.8 132 9.0 0.0036 0.0036 11.0 0.0036 0.0036 13.5 0.0036 0.0036 16.5 0.0036 0.0036 19.5 0.0036 0.0036 22.5 0.0036 0.0036 26.0 0.0036 0.0036 30.0 0.0036 0.0036 34.5 0.0036 0.0036 40.0 0.0036 0.0036 46.0 0.0036 0.0036 52.5 0.0036 0.0036 60.0 0.0036 0.0036 69.0 0.0036 0.0036 79.0 0.0036 0.0036 90.5 0.0036 0.0036 105.5 0.0036 0.0036 123.5 0.0036 0.0036 143.0 0.0036 0.0036 163.5 0.0036 0.0036 185.0 0.0036 0.0036 208.0 0.0036 0.0036 232.5 0.0036 0.0036 258.5 0.0036 0.0036 286.0 0.0036 0.0036 331.0 0.0036 0.0036 396.0 0.0036 0.0036 468.5 0.0036 0.0036 549.5 0.0036 0.0036 639.0 0.0036 0.0036 738.0 0.0036 0.0036 847.5 0.0036 0.0036 968.5 0.0036 0.0036 1102.0 0.0036 0.0036 1249.5 0.0036 0.0036 1412.0 0.0036 0.0036 1590.5 0.0036 0.0036 1787.0 0.0036 0.0036 1945.0 0.0036 0.0036 2119.0 0.0036 0.0036 2369.0 0.0036 0.0036 2643.5 0.0036 0.0036 2945.0 0.0036 0.0036 3276.5 0.0036 0.0036 --1.8 -1.6 132 9.0 0.0036 0.0036 11.0 0.0036 0.0036 13.5 0.0036 0.0036 16.5 0.0036 0.0036 19.5 0.0036 0.0036 22.5 0.0036 0.0036 26.0 0.0036 0.0036 30.0 0.0036 0.0036 34.5 0.0036 0.0036 40.0 0.0036 0.0036 46.0 0.0036 0.0036 52.5 0.0036 0.0036 60.0 0.0036 0.0036 69.0 0.0036 0.0036 79.0 0.0036 0.0036 90.5 0.0036 0.0036 105.5 0.0036 0.0036 123.5 0.0036 0.0036 143.0 0.0036 0.0036 163.5 0.0036 0.0036 185.0 0.0036 0.0036 208.0 0.0036 0.0036 232.5 0.0036 0.0036 258.5 0.0036 0.0036 286.0 0.0036 0.0036 331.0 0.0036 0.0036 396.0 0.0036 0.0036 468.5 0.0036 0.0036 549.5 0.0036 0.0036 639.0 0.0036 0.0036 738.0 0.0036 0.0036 847.5 0.0036 0.0036 968.5 0.0036 0.0036 1102.0 0.0036 0.0036 1249.5 0.0036 0.0036 1412.0 0.0036 0.0036 1590.5 0.0036 0.0036 1787.0 0.0036 0.0036 1945.0 0.0036 0.0036 2119.0 0.0036 0.0036 2369.0 0.0036 0.0036 2643.5 0.0036 0.0036 2945.0 0.0036 0.0036 3276.5 0.0036 0.0036 --1.6 -1.4 132 9.0 0.0036 0.0036 11.0 0.0036 0.0036 13.5 0.0036 0.0036 16.5 0.0036 0.0036 19.5 0.0036 0.0036 22.5 0.0036 0.0036 26.0 0.0036 0.0036 30.0 0.0036 0.0036 34.5 0.0036 0.0036 40.0 0.0036 0.0036 46.0 0.0036 0.0036 52.5 0.0036 0.0036 60.0 0.0036 0.0036 69.0 0.0036 0.0036 79.0 0.0036 0.0036 90.5 0.0036 0.0036 105.5 0.0036 0.0036 123.5 0.0036 0.0036 143.0 0.0036 0.0036 163.5 0.0036 0.0036 185.0 0.0036 0.0036 208.0 0.0036 0.0036 232.5 0.0036 0.0036 258.5 0.0036 0.0036 286.0 0.0036 0.0036 331.0 0.0036 0.0036 396.0 0.0036 0.0036 468.5 0.0036 0.0036 549.5 0.0036 0.0036 639.0 0.0036 0.0036 738.0 0.0036 0.0036 847.5 0.0036 0.0036 968.5 0.0036 0.0036 1102.0 0.0036 0.0036 1249.5 0.0036 0.0036 1412.0 0.0036 0.0036 1590.5 0.0036 0.0036 1787.0 0.0036 0.0036 1945.0 0.0036 0.0036 2119.0 0.0036 0.0036 2369.0 0.0036 0.0036 2643.5 0.0036 0.0036 2945.0 0.0036 0.0036 3276.5 0.0036 0.0036 --1.4 -1.2 132 9.0 0.0006 0.0006 11.0 0.0006 0.0006 13.5 0.0006 0.0006 16.5 0.0006 0.0006 19.5 0.0006 0.0006 22.5 0.0006 0.0006 26.0 0.0006 0.0006 30.0 0.0006 0.0006 34.5 0.0006 0.0006 40.0 0.0006 0.0006 46.0 0.0006 0.0006 52.5 0.0006 0.0006 60.0 0.0006 0.0006 69.0 0.0006 0.0006 79.0 0.0006 0.0006 90.5 0.0006 0.0006 105.5 0.0006 0.0006 123.5 0.0006 0.0006 143.0 0.0006 0.0006 163.5 0.0006 0.0006 185.0 0.0006 0.0006 208.0 0.0006 0.0006 232.5 0.0006 0.0006 258.5 0.0006 0.0006 286.0 0.0006 0.0006 331.0 0.0006 0.0006 396.0 0.0006 0.0006 468.5 0.0006 0.0006 549.5 0.0006 0.0006 639.0 0.0006 0.0006 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0006 0.0006 1945.0 0.0006 0.0006 2119.0 0.0006 0.0006 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 --1.2 -1.0 132 9.0 0.0006 0.0006 11.0 0.0006 0.0006 13.5 0.0006 0.0006 16.5 0.0006 0.0006 19.5 0.0006 0.0006 22.5 0.0006 0.0006 26.0 0.0006 0.0006 30.0 0.0006 0.0006 34.5 0.0006 0.0006 40.0 0.0006 0.0006 46.0 0.0006 0.0006 52.5 0.0006 0.0006 60.0 0.0006 0.0006 69.0 0.0006 0.0006 79.0 0.0006 0.0006 90.5 0.0006 0.0006 105.5 0.0006 0.0006 123.5 0.0006 0.0006 143.0 0.0006 0.0006 163.5 0.0006 0.0006 185.0 0.0006 0.0006 208.0 0.0006 0.0006 232.5 0.0006 0.0006 258.5 0.0006 0.0006 286.0 0.0006 0.0006 331.0 0.0006 0.0006 396.0 0.0006 0.0006 468.5 0.0006 0.0006 549.5 0.0006 0.0006 639.0 0.0006 0.0006 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0006 0.0006 1945.0 0.0006 0.0006 2119.0 0.0006 0.0006 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 --1.0 -0.8 132 9.0 0.0006 0.0006 11.0 0.0006 0.0006 13.5 0.0006 0.0006 16.5 0.0006 0.0006 19.5 0.0006 0.0006 22.5 0.0006 0.0006 26.0 0.0006 0.0006 30.0 0.0006 0.0006 34.5 0.0006 0.0006 40.0 0.0006 0.0006 46.0 0.0006 0.0006 52.5 0.0006 0.0006 60.0 0.0006 0.0006 69.0 0.0006 0.0006 79.0 0.0006 0.0006 90.5 0.0006 0.0006 105.5 0.0006 0.0006 123.5 0.0006 0.0006 143.0 0.0006 0.0006 163.5 0.0006 0.0006 185.0 0.0006 0.0006 208.0 0.0006 0.0006 232.5 0.0006 0.0006 258.5 0.0006 0.0006 286.0 0.0006 0.0006 331.0 0.0006 0.0006 396.0 0.0006 0.0006 468.5 0.0006 0.0006 549.5 0.0006 0.0006 639.0 0.0006 0.0006 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0006 0.0006 1945.0 0.0006 0.0006 2119.0 0.0006 0.0006 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 --0.8 -0.6 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 --0.6 -0.4 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 --0.4 -0.2 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 --0.2 0.0 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 -0.0 0.2 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 -0.2 0.4 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 -0.4 0.6 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 -0.6 0.8 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 -0.8 1.0 132 9.0 0.0006 0.0006 11.0 0.0006 0.0006 13.5 0.0006 0.0006 16.5 0.0006 0.0006 19.5 0.0006 0.0006 22.5 0.0006 0.0006 26.0 0.0006 0.0006 30.0 0.0006 0.0006 34.5 0.0006 0.0006 40.0 0.0006 0.0006 46.0 0.0006 0.0006 52.5 0.0006 0.0006 60.0 0.0006 0.0006 69.0 0.0006 0.0006 79.0 0.0006 0.0006 90.5 0.0006 0.0006 105.5 0.0006 0.0006 123.5 0.0006 0.0006 143.0 0.0006 0.0006 163.5 0.0006 0.0006 185.0 0.0006 0.0006 208.0 0.0006 0.0006 232.5 0.0006 0.0006 258.5 0.0006 0.0006 286.0 0.0006 0.0006 331.0 0.0006 0.0006 396.0 0.0006 0.0006 468.5 0.0006 0.0006 549.5 0.0006 0.0006 639.0 0.0006 0.0006 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0006 0.0006 1945.0 0.0006 0.0006 2119.0 0.0006 0.0006 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -1.0 1.2 132 9.0 0.0006 0.0006 11.0 0.0006 0.0006 13.5 0.0006 0.0006 16.5 0.0006 0.0006 19.5 0.0006 0.0006 22.5 0.0006 0.0006 26.0 0.0006 0.0006 30.0 0.0006 0.0006 34.5 0.0006 0.0006 40.0 0.0006 0.0006 46.0 0.0006 0.0006 52.5 0.0006 0.0006 60.0 0.0006 0.0006 69.0 0.0006 0.0006 79.0 0.0006 0.0006 90.5 0.0006 0.0006 105.5 0.0006 0.0006 123.5 0.0006 0.0006 143.0 0.0006 0.0006 163.5 0.0006 0.0006 185.0 0.0006 0.0006 208.0 0.0006 0.0006 232.5 0.0006 0.0006 258.5 0.0006 0.0006 286.0 0.0006 0.0006 331.0 0.0006 0.0006 396.0 0.0006 0.0006 468.5 0.0006 0.0006 549.5 0.0006 0.0006 639.0 0.0006 0.0006 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0006 0.0006 1945.0 0.0006 0.0006 2119.0 0.0006 0.0006 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -1.2 1.4 132 9.0 0.0006 0.0006 11.0 0.0006 0.0006 13.5 0.0006 0.0006 16.5 0.0006 0.0006 19.5 0.0006 0.0006 22.5 0.0006 0.0006 26.0 0.0006 0.0006 30.0 0.0006 0.0006 34.5 0.0006 0.0006 40.0 0.0006 0.0006 46.0 0.0006 0.0006 52.5 0.0006 0.0006 60.0 0.0006 0.0006 69.0 0.0006 0.0006 79.0 0.0006 0.0006 90.5 0.0006 0.0006 105.5 0.0006 0.0006 123.5 0.0006 0.0006 143.0 0.0006 0.0006 163.5 0.0006 0.0006 185.0 0.0006 0.0006 208.0 0.0006 0.0006 232.5 0.0006 0.0006 258.5 0.0006 0.0006 286.0 0.0006 0.0006 331.0 0.0006 0.0006 396.0 0.0006 0.0006 468.5 0.0006 0.0006 549.5 0.0006 0.0006 639.0 0.0006 0.0006 738.0 0.0006 0.0006 847.5 0.0006 0.0006 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0006 0.0006 1787.0 0.0006 0.0006 1945.0 0.0006 0.0006 2119.0 0.0006 0.0006 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -1.4 1.6 132 9.0 0.0036 0.0036 11.0 0.0036 0.0036 13.5 0.0036 0.0036 16.5 0.0036 0.0036 19.5 0.0036 0.0036 22.5 0.0036 0.0036 26.0 0.0036 0.0036 30.0 0.0036 0.0036 34.5 0.0036 0.0036 40.0 0.0036 0.0036 46.0 0.0036 0.0036 52.5 0.0036 0.0036 60.0 0.0036 0.0036 69.0 0.0036 0.0036 79.0 0.0036 0.0036 90.5 0.0036 0.0036 105.5 0.0036 0.0036 123.5 0.0036 0.0036 143.0 0.0036 0.0036 163.5 0.0036 0.0036 185.0 0.0036 0.0036 208.0 0.0036 0.0036 232.5 0.0036 0.0036 258.5 0.0036 0.0036 286.0 0.0036 0.0036 331.0 0.0036 0.0036 396.0 0.0036 0.0036 468.5 0.0036 0.0036 549.5 0.0036 0.0036 639.0 0.0036 0.0036 738.0 0.0036 0.0036 847.5 0.0036 0.0036 968.5 0.0036 0.0036 1102.0 0.0036 0.0036 1249.5 0.0036 0.0036 1412.0 0.0036 0.0036 1590.5 0.0036 0.0036 1787.0 0.0036 0.0036 1945.0 0.0036 0.0036 2119.0 0.0036 0.0036 2369.0 0.0036 0.0036 2643.5 0.0036 0.0036 2945.0 0.0036 0.0036 3276.5 0.0036 0.0036 -1.6 1.8 132 9.0 0.0036 0.0036 11.0 0.0036 0.0036 13.5 0.0036 0.0036 16.5 0.0036 0.0036 19.5 0.0036 0.0036 22.5 0.0036 0.0036 26.0 0.0036 0.0036 30.0 0.0036 0.0036 34.5 0.0036 0.0036 40.0 0.0036 0.0036 46.0 0.0036 0.0036 52.5 0.0036 0.0036 60.0 0.0036 0.0036 69.0 0.0036 0.0036 79.0 0.0036 0.0036 90.5 0.0036 0.0036 105.5 0.0036 0.0036 123.5 0.0036 0.0036 143.0 0.0036 0.0036 163.5 0.0036 0.0036 185.0 0.0036 0.0036 208.0 0.0036 0.0036 232.5 0.0036 0.0036 258.5 0.0036 0.0036 286.0 0.0036 0.0036 331.0 0.0036 0.0036 396.0 0.0036 0.0036 468.5 0.0036 0.0036 549.5 0.0036 0.0036 639.0 0.0036 0.0036 738.0 0.0036 0.0036 847.5 0.0036 0.0036 968.5 0.0036 0.0036 1102.0 0.0036 0.0036 1249.5 0.0036 0.0036 1412.0 0.0036 0.0036 1590.5 0.0036 0.0036 1787.0 0.0036 0.0036 1945.0 0.0036 0.0036 2119.0 0.0036 0.0036 2369.0 0.0036 0.0036 2643.5 0.0036 0.0036 2945.0 0.0036 0.0036 3276.5 0.0036 0.0036 -1.8 2.0 132 9.0 0.0036 0.0036 11.0 0.0036 0.0036 13.5 0.0036 0.0036 16.5 0.0036 0.0036 19.5 0.0036 0.0036 22.5 0.0036 0.0036 26.0 0.0036 0.0036 30.0 0.0036 0.0036 34.5 0.0036 0.0036 40.0 0.0036 0.0036 46.0 0.0036 0.0036 52.5 0.0036 0.0036 60.0 0.0036 0.0036 69.0 0.0036 0.0036 79.0 0.0036 0.0036 90.5 0.0036 0.0036 105.5 0.0036 0.0036 123.5 0.0036 0.0036 143.0 0.0036 0.0036 163.5 0.0036 0.0036 185.0 0.0036 0.0036 208.0 0.0036 0.0036 232.5 0.0036 0.0036 258.5 0.0036 0.0036 286.0 0.0036 0.0036 331.0 0.0036 0.0036 396.0 0.0036 0.0036 468.5 0.0036 0.0036 549.5 0.0036 0.0036 639.0 0.0036 0.0036 738.0 0.0036 0.0036 847.5 0.0036 0.0036 968.5 0.0036 0.0036 1102.0 0.0036 0.0036 1249.5 0.0036 0.0036 1412.0 0.0036 0.0036 1590.5 0.0036 0.0036 1787.0 0.0036 0.0036 1945.0 0.0036 0.0036 2119.0 0.0036 0.0036 2369.0 0.0036 0.0036 2643.5 0.0036 0.0036 2945.0 0.0036 0.0036 3276.5 0.0036 0.0036 -2.0 2.2 132 9.0 0.0051 0.0051 11.0 0.0051 0.0051 13.5 0.0051 0.0051 16.5 0.0051 0.0051 19.5 0.0051 0.0051 22.5 0.0051 0.0051 26.0 0.0051 0.0051 30.0 0.0051 0.0051 34.5 0.0051 0.0051 40.0 0.0051 0.0051 46.0 0.0051 0.0051 52.5 0.0051 0.0051 60.0 0.0051 0.0051 69.0 0.0051 0.0051 79.0 0.0051 0.0051 90.5 0.0051 0.0051 105.5 0.0051 0.0051 123.5 0.0051 0.0051 143.0 0.0051 0.0051 163.5 0.0051 0.0051 185.0 0.0051 0.0051 208.0 0.0051 0.0051 232.5 0.0051 0.0051 258.5 0.0051 0.0051 286.0 0.0051 0.0051 331.0 0.0051 0.0051 396.0 0.0051 0.0051 468.5 0.0051 0.0051 549.5 0.0051 0.0051 639.0 0.0051 0.0051 738.0 0.0051 0.0051 847.5 0.0051 0.0051 968.5 0.0051 0.0051 1102.0 0.0051 0.0051 1249.5 0.0051 0.0051 1412.0 0.0051 0.0051 1590.5 0.0051 0.0051 1787.0 0.0051 0.0051 1945.0 0.0051 0.0051 2119.0 0.0051 0.0051 2369.0 0.0051 0.0051 2643.5 0.0051 0.0051 2945.0 0.0051 0.0051 3276.5 0.0051 0.0051 -2.2 2.4 132 9.0 0.0051 0.0051 11.0 0.0051 0.0051 13.5 0.0051 0.0051 16.5 0.0051 0.0051 19.5 0.0051 0.0051 22.5 0.0051 0.0051 26.0 0.0051 0.0051 30.0 0.0051 0.0051 34.5 0.0051 0.0051 40.0 0.0051 0.0051 46.0 0.0051 0.0051 52.5 0.0051 0.0051 60.0 0.0051 0.0051 69.0 0.0051 0.0051 79.0 0.0051 0.0051 90.5 0.0051 0.0051 105.5 0.0051 0.0051 123.5 0.0051 0.0051 143.0 0.0051 0.0051 163.5 0.0051 0.0051 185.0 0.0051 0.0051 208.0 0.0051 0.0051 232.5 0.0051 0.0051 258.5 0.0051 0.0051 286.0 0.0051 0.0051 331.0 0.0051 0.0051 396.0 0.0051 0.0051 468.5 0.0051 0.0051 549.5 0.0051 0.0051 639.0 0.0051 0.0051 738.0 0.0051 0.0051 847.5 0.0051 0.0051 968.5 0.0051 0.0051 1102.0 0.0051 0.0051 1249.5 0.0051 0.0051 1412.0 0.0051 0.0051 1590.5 0.0051 0.0051 1787.0 0.0051 0.0051 1945.0 0.0051 0.0051 2119.0 0.0051 0.0051 2369.0 0.0051 0.0051 2643.5 0.0051 0.0051 2945.0 0.0051 0.0051 3276.5 0.0051 0.0051 -2.4 2.6 132 9.0 0.0070 0.0070 11.0 0.0070 0.0070 13.5 0.0070 0.0070 16.5 0.0070 0.0070 19.5 0.0070 0.0070 22.5 0.0070 0.0070 26.0 0.0070 0.0070 30.0 0.0070 0.0070 34.5 0.0070 0.0070 40.0 0.0070 0.0070 46.0 0.0070 0.0070 52.5 0.0070 0.0070 60.0 0.0070 0.0070 69.0 0.0070 0.0070 79.0 0.0070 0.0070 90.5 0.0070 0.0070 105.5 0.0070 0.0070 123.5 0.0070 0.0070 143.0 0.0070 0.0070 163.5 0.0070 0.0070 185.0 0.0070 0.0070 208.0 0.0070 0.0070 232.5 0.0070 0.0070 258.5 0.0070 0.0070 286.0 0.0070 0.0070 331.0 0.0070 0.0070 396.0 0.0070 0.0070 468.5 0.0070 0.0070 549.5 0.0070 0.0070 639.0 0.0070 0.0070 738.0 0.0070 0.0070 847.5 0.0070 0.0070 968.5 0.0070 0.0070 1102.0 0.0070 0.0070 1249.5 0.0070 0.0070 1412.0 0.0070 0.0070 1590.5 0.0070 0.0070 1787.0 0.0070 0.0070 1945.0 0.0070 0.0070 2119.0 0.0070 0.0070 2369.0 0.0070 0.0070 2643.5 0.0070 0.0070 2945.0 0.0070 0.0070 3276.5 0.0070 0.0070 -2.6 2.8 132 9.0 0.0070 0.0070 11.0 0.0070 0.0070 13.5 0.0070 0.0070 16.5 0.0070 0.0070 19.5 0.0070 0.0070 22.5 0.0070 0.0070 26.0 0.0070 0.0070 30.0 0.0070 0.0070 34.5 0.0070 0.0070 40.0 0.0070 0.0070 46.0 0.0070 0.0070 52.5 0.0070 0.0070 60.0 0.0070 0.0070 69.0 0.0070 0.0070 79.0 0.0070 0.0070 90.5 0.0070 0.0070 105.5 0.0070 0.0070 123.5 0.0070 0.0070 143.0 0.0070 0.0070 163.5 0.0070 0.0070 185.0 0.0070 0.0070 208.0 0.0070 0.0070 232.5 0.0070 0.0070 258.5 0.0070 0.0070 286.0 0.0070 0.0070 331.0 0.0070 0.0070 396.0 0.0070 0.0070 468.5 0.0070 0.0070 549.5 0.0070 0.0070 639.0 0.0070 0.0070 738.0 0.0070 0.0070 847.5 0.0070 0.0070 968.5 0.0070 0.0070 1102.0 0.0070 0.0070 1249.5 0.0070 0.0070 1412.0 0.0070 0.0070 1590.5 0.0070 0.0070 1787.0 0.0070 0.0070 1945.0 0.0070 0.0070 2119.0 0.0070 0.0070 2369.0 0.0070 0.0070 2643.5 0.0070 0.0070 2945.0 0.0070 0.0070 3276.5 0.0070 0.0070 -2.8 3.0 132 9.0 0.0070 0.0070 11.0 0.0070 0.0070 13.5 0.0070 0.0070 16.5 0.0070 0.0070 19.5 0.0070 0.0070 22.5 0.0070 0.0070 26.0 0.0070 0.0070 30.0 0.0070 0.0070 34.5 0.0070 0.0070 40.0 0.0070 0.0070 46.0 0.0070 0.0070 52.5 0.0070 0.0070 60.0 0.0070 0.0070 69.0 0.0070 0.0070 79.0 0.0070 0.0070 90.5 0.0070 0.0070 105.5 0.0070 0.0070 123.5 0.0070 0.0070 143.0 0.0070 0.0070 163.5 0.0070 0.0070 185.0 0.0070 0.0070 208.0 0.0070 0.0070 232.5 0.0070 0.0070 258.5 0.0070 0.0070 286.0 0.0070 0.0070 331.0 0.0070 0.0070 396.0 0.0070 0.0070 468.5 0.0070 0.0070 549.5 0.0070 0.0070 639.0 0.0070 0.0070 738.0 0.0070 0.0070 847.5 0.0070 0.0070 968.5 0.0070 0.0070 1102.0 0.0070 0.0070 1249.5 0.0070 0.0070 1412.0 0.0070 0.0070 1590.5 0.0070 0.0070 1787.0 0.0070 0.0070 1945.0 0.0070 0.0070 2119.0 0.0070 0.0070 2369.0 0.0070 0.0070 2643.5 0.0070 0.0070 2945.0 0.0070 0.0070 3276.5 0.0070 0.0070 -3.0 3.5 132 9.0 0.0088 0.0088 11.0 0.0088 0.0088 13.5 0.0088 0.0088 16.5 0.0088 0.0088 19.5 0.0088 0.0088 22.5 0.0088 0.0088 26.0 0.0088 0.0088 30.0 0.0088 0.0088 34.5 0.0088 0.0088 40.0 0.0088 0.0088 46.0 0.0088 0.0088 52.5 0.0088 0.0088 60.0 0.0088 0.0088 69.0 0.0088 0.0088 79.0 0.0088 0.0088 90.5 0.0088 0.0088 105.5 0.0088 0.0088 123.5 0.0088 0.0088 143.0 0.0088 0.0088 163.5 0.0088 0.0088 185.0 0.0088 0.0088 208.0 0.0088 0.0088 232.5 0.0088 0.0088 258.5 0.0088 0.0088 286.0 0.0088 0.0088 331.0 0.0088 0.0088 396.0 0.0088 0.0088 468.5 0.0088 0.0088 549.5 0.0088 0.0088 639.0 0.0088 0.0088 738.0 0.0088 0.0088 847.5 0.0088 0.0088 968.5 0.0088 0.0088 1102.0 0.0088 0.0088 1249.5 0.0088 0.0088 1412.0 0.0088 0.0088 1590.5 0.0088 0.0088 1787.0 0.0088 0.0088 1945.0 0.0088 0.0088 2119.0 0.0088 0.0088 2369.0 0.0088 0.0088 2643.5 0.0088 0.0088 2945.0 0.0088 0.0088 3276.5 0.0088 0.0088 -3.5 4.0 132 9.0 0.0088 0.0088 11.0 0.0088 0.0088 13.5 0.0088 0.0088 16.5 0.0088 0.0088 19.5 0.0088 0.0088 22.5 0.0088 0.0088 26.0 0.0088 0.0088 30.0 0.0088 0.0088 34.5 0.0088 0.0088 40.0 0.0088 0.0088 46.0 0.0088 0.0088 52.5 0.0088 0.0088 60.0 0.0088 0.0088 69.0 0.0088 0.0088 79.0 0.0088 0.0088 90.5 0.0088 0.0088 105.5 0.0088 0.0088 123.5 0.0088 0.0088 143.0 0.0088 0.0088 163.5 0.0088 0.0088 185.0 0.0088 0.0088 208.0 0.0088 0.0088 232.5 0.0088 0.0088 258.5 0.0088 0.0088 286.0 0.0088 0.0088 331.0 0.0088 0.0088 396.0 0.0088 0.0088 468.5 0.0088 0.0088 549.5 0.0088 0.0088 639.0 0.0088 0.0088 738.0 0.0088 0.0088 847.5 0.0088 0.0088 968.5 0.0088 0.0088 1102.0 0.0088 0.0088 1249.5 0.0088 0.0088 1412.0 0.0088 0.0088 1590.5 0.0088 0.0088 1787.0 0.0088 0.0088 1945.0 0.0088 0.0088 2119.0 0.0088 0.0088 2369.0 0.0088 0.0088 2643.5 0.0088 0.0088 2945.0 0.0088 0.0088 3276.5 0.0088 0.0088 -4.0 4.4 132 9.0 0.0088 0.0088 11.0 0.0088 0.0088 13.5 0.0088 0.0088 16.5 0.0088 0.0088 19.5 0.0088 0.0088 22.5 0.0088 0.0088 26.0 0.0088 0.0088 30.0 0.0088 0.0088 34.5 0.0088 0.0088 40.0 0.0088 0.0088 46.0 0.0088 0.0088 52.5 0.0088 0.0088 60.0 0.0088 0.0088 69.0 0.0088 0.0088 79.0 0.0088 0.0088 90.5 0.0088 0.0088 105.5 0.0088 0.0088 123.5 0.0088 0.0088 143.0 0.0088 0.0088 163.5 0.0088 0.0088 185.0 0.0088 0.0088 208.0 0.0088 0.0088 232.5 0.0088 0.0088 258.5 0.0088 0.0088 286.0 0.0088 0.0088 331.0 0.0088 0.0088 396.0 0.0088 0.0088 468.5 0.0088 0.0088 549.5 0.0088 0.0088 639.0 0.0088 0.0088 738.0 0.0088 0.0088 847.5 0.0088 0.0088 968.5 0.0088 0.0088 1102.0 0.0088 0.0088 1249.5 0.0088 0.0088 1412.0 0.0088 0.0088 1590.5 0.0088 0.0088 1787.0 0.0088 0.0088 1945.0 0.0088 0.0088 2119.0 0.0088 0.0088 2369.0 0.0088 0.0088 2643.5 0.0088 0.0088 2945.0 0.0088 0.0088 3276.5 0.0088 0.0088 -4.4 5.0 132 9.0 0.0088 0.0088 11.0 0.0088 0.0088 13.5 0.0088 0.0088 16.5 0.0088 0.0088 19.5 0.0088 0.0088 22.5 0.0088 0.0088 26.0 0.0088 0.0088 30.0 0.0088 0.0088 34.5 0.0088 0.0088 40.0 0.0088 0.0088 46.0 0.0088 0.0088 52.5 0.0088 0.0088 60.0 0.0088 0.0088 69.0 0.0088 0.0088 79.0 0.0088 0.0088 90.5 0.0088 0.0088 105.5 0.0088 0.0088 123.5 0.0088 0.0088 143.0 0.0088 0.0088 163.5 0.0088 0.0088 185.0 0.0088 0.0088 208.0 0.0088 0.0088 232.5 0.0088 0.0088 258.5 0.0088 0.0088 286.0 0.0088 0.0088 331.0 0.0088 0.0088 396.0 0.0088 0.0088 468.5 0.0088 0.0088 549.5 0.0088 0.0088 639.0 0.0088 0.0088 738.0 0.0088 0.0088 847.5 0.0088 0.0088 968.5 0.0088 0.0088 1102.0 0.0088 0.0088 1249.5 0.0088 0.0088 1412.0 0.0088 0.0088 1590.5 0.0088 0.0088 1787.0 0.0088 0.0088 1945.0 0.0088 0.0088 2119.0 0.0088 0.0088 2369.0 0.0088 0.0088 2643.5 0.0088 0.0088 2945.0 0.0088 0.0088 3276.5 0.0088 0.0088 -5.0 5.4 132 9.0 0.0088 0.0088 11.0 0.0088 0.0088 13.5 0.0088 0.0088 16.5 0.0088 0.0088 19.5 0.0088 0.0088 22.5 0.0088 0.0088 26.0 0.0088 0.0088 30.0 0.0088 0.0088 34.5 0.0088 0.0088 40.0 0.0088 0.0088 46.0 0.0088 0.0088 52.5 0.0088 0.0088 60.0 0.0088 0.0088 69.0 0.0088 0.0088 79.0 0.0088 0.0088 90.5 0.0088 0.0088 105.5 0.0088 0.0088 123.5 0.0088 0.0088 143.0 0.0088 0.0088 163.5 0.0088 0.0088 185.0 0.0088 0.0088 208.0 0.0088 0.0088 232.5 0.0088 0.0088 258.5 0.0088 0.0088 286.0 0.0088 0.0088 331.0 0.0088 0.0088 396.0 0.0088 0.0088 468.5 0.0088 0.0088 549.5 0.0088 0.0088 639.0 0.0088 0.0088 738.0 0.0088 0.0088 847.5 0.0088 0.0088 968.5 0.0088 0.0088 1102.0 0.0088 0.0088 1249.5 0.0088 0.0088 1412.0 0.0088 0.0088 1590.5 0.0088 0.0088 1787.0 0.0088 0.0088 1945.0 0.0088 0.0088 2119.0 0.0088 0.0088 2369.0 0.0088 0.0088 2643.5 0.0088 0.0088 2945.0 0.0088 0.0088 3276.5 0.0088 0.0088 -[RelativeJEREC1] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --5.0 -4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.4 -4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.0 -3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.5 -3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.0 -2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.8 -2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.6 -2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.4 -2.2 132 9.0 0.0011 0.0011 11.0 0.0011 0.0011 13.5 0.0011 0.0011 16.5 0.0011 0.0011 19.5 0.0011 0.0011 22.5 0.0011 0.0011 26.0 0.0011 0.0011 30.0 0.0011 0.0011 34.5 0.0011 0.0011 40.0 0.0011 0.0011 46.0 0.0011 0.0011 52.5 0.0011 0.0011 60.0 0.0011 0.0011 69.0 0.0011 0.0011 79.0 0.0011 0.0011 90.5 0.0011 0.0011 105.5 0.0011 0.0011 123.5 0.0011 0.0011 143.0 0.0011 0.0011 163.5 0.0011 0.0011 185.0 0.0011 0.0011 208.0 0.0011 0.0011 232.5 0.0011 0.0011 258.5 0.0011 0.0011 286.0 0.0011 0.0011 331.0 0.0011 0.0011 396.0 0.0011 0.0011 468.5 0.0011 0.0011 549.5 0.0011 0.0011 639.0 0.0011 0.0011 738.0 0.0011 0.0011 847.5 0.0011 0.0011 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0011 0.0011 1412.0 0.0011 0.0011 1590.5 0.0011 0.0011 1787.0 0.0011 0.0011 1945.0 0.0011 0.0011 2119.0 0.0011 0.0011 2369.0 0.0011 0.0011 2643.5 0.0011 0.0011 2945.0 0.0011 0.0011 3276.5 0.0011 0.0011 --2.2 -2.0 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 --2.0 -1.8 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 --1.8 -1.6 132 9.0 0.0014 0.0014 11.0 0.0014 0.0014 13.5 0.0014 0.0014 16.5 0.0014 0.0014 19.5 0.0014 0.0014 22.5 0.0014 0.0014 26.0 0.0014 0.0014 30.0 0.0014 0.0014 34.5 0.0014 0.0014 40.0 0.0014 0.0014 46.0 0.0014 0.0014 52.5 0.0014 0.0014 60.0 0.0014 0.0014 69.0 0.0014 0.0014 79.0 0.0014 0.0014 90.5 0.0014 0.0014 105.5 0.0014 0.0014 123.5 0.0014 0.0014 143.0 0.0014 0.0014 163.5 0.0014 0.0014 185.0 0.0014 0.0014 208.0 0.0014 0.0014 232.5 0.0014 0.0014 258.5 0.0014 0.0014 286.0 0.0014 0.0014 331.0 0.0014 0.0014 396.0 0.0014 0.0014 468.5 0.0014 0.0014 549.5 0.0014 0.0014 639.0 0.0014 0.0014 738.0 0.0014 0.0014 847.5 0.0014 0.0014 968.5 0.0014 0.0014 1102.0 0.0014 0.0014 1249.5 0.0014 0.0014 1412.0 0.0014 0.0014 1590.5 0.0014 0.0014 1787.0 0.0014 0.0014 1945.0 0.0014 0.0014 2119.0 0.0014 0.0014 2369.0 0.0014 0.0014 2643.5 0.0014 0.0014 2945.0 0.0014 0.0014 3276.5 0.0014 0.0014 --1.6 -1.4 132 9.0 0.0009 0.0009 11.0 0.0009 0.0009 13.5 0.0009 0.0009 16.5 0.0009 0.0009 19.5 0.0009 0.0009 22.5 0.0009 0.0009 26.0 0.0009 0.0009 30.0 0.0009 0.0009 34.5 0.0009 0.0009 40.0 0.0009 0.0009 46.0 0.0009 0.0009 52.5 0.0009 0.0009 60.0 0.0009 0.0009 69.0 0.0009 0.0009 79.0 0.0009 0.0009 90.5 0.0009 0.0009 105.5 0.0009 0.0009 123.5 0.0009 0.0009 143.0 0.0009 0.0009 163.5 0.0009 0.0009 185.0 0.0009 0.0009 208.0 0.0009 0.0009 232.5 0.0009 0.0009 258.5 0.0009 0.0009 286.0 0.0009 0.0009 331.0 0.0009 0.0009 396.0 0.0009 0.0009 468.5 0.0009 0.0009 549.5 0.0009 0.0009 639.0 0.0009 0.0009 738.0 0.0009 0.0009 847.5 0.0009 0.0009 968.5 0.0009 0.0009 1102.0 0.0009 0.0009 1249.5 0.0009 0.0009 1412.0 0.0009 0.0009 1590.5 0.0009 0.0009 1787.0 0.0009 0.0009 1945.0 0.0009 0.0009 2119.0 0.0009 0.0009 2369.0 0.0009 0.0009 2643.5 0.0009 0.0009 2945.0 0.0009 0.0009 3276.5 0.0009 0.0009 --1.4 -1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.2 -1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.0 -0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.8 -0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.6 -0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.4 -0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.2 0.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.0 0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.2 0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.4 0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.6 0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.8 1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.0 1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.2 1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.4 1.6 132 9.0 0.0009 0.0009 11.0 0.0009 0.0009 13.5 0.0009 0.0009 16.5 0.0009 0.0009 19.5 0.0009 0.0009 22.5 0.0009 0.0009 26.0 0.0009 0.0009 30.0 0.0009 0.0009 34.5 0.0009 0.0009 40.0 0.0009 0.0009 46.0 0.0009 0.0009 52.5 0.0009 0.0009 60.0 0.0009 0.0009 69.0 0.0009 0.0009 79.0 0.0009 0.0009 90.5 0.0009 0.0009 105.5 0.0009 0.0009 123.5 0.0009 0.0009 143.0 0.0009 0.0009 163.5 0.0009 0.0009 185.0 0.0009 0.0009 208.0 0.0009 0.0009 232.5 0.0009 0.0009 258.5 0.0009 0.0009 286.0 0.0009 0.0009 331.0 0.0009 0.0009 396.0 0.0009 0.0009 468.5 0.0009 0.0009 549.5 0.0009 0.0009 639.0 0.0009 0.0009 738.0 0.0009 0.0009 847.5 0.0009 0.0009 968.5 0.0009 0.0009 1102.0 0.0009 0.0009 1249.5 0.0009 0.0009 1412.0 0.0009 0.0009 1590.5 0.0009 0.0009 1787.0 0.0009 0.0009 1945.0 0.0009 0.0009 2119.0 0.0009 0.0009 2369.0 0.0009 0.0009 2643.5 0.0009 0.0009 2945.0 0.0009 0.0009 3276.5 0.0009 0.0009 -1.6 1.8 132 9.0 0.0014 0.0014 11.0 0.0014 0.0014 13.5 0.0014 0.0014 16.5 0.0014 0.0014 19.5 0.0014 0.0014 22.5 0.0014 0.0014 26.0 0.0014 0.0014 30.0 0.0014 0.0014 34.5 0.0014 0.0014 40.0 0.0014 0.0014 46.0 0.0014 0.0014 52.5 0.0014 0.0014 60.0 0.0014 0.0014 69.0 0.0014 0.0014 79.0 0.0014 0.0014 90.5 0.0014 0.0014 105.5 0.0014 0.0014 123.5 0.0014 0.0014 143.0 0.0014 0.0014 163.5 0.0014 0.0014 185.0 0.0014 0.0014 208.0 0.0014 0.0014 232.5 0.0014 0.0014 258.5 0.0014 0.0014 286.0 0.0014 0.0014 331.0 0.0014 0.0014 396.0 0.0014 0.0014 468.5 0.0014 0.0014 549.5 0.0014 0.0014 639.0 0.0014 0.0014 738.0 0.0014 0.0014 847.5 0.0014 0.0014 968.5 0.0014 0.0014 1102.0 0.0014 0.0014 1249.5 0.0014 0.0014 1412.0 0.0014 0.0014 1590.5 0.0014 0.0014 1787.0 0.0014 0.0014 1945.0 0.0014 0.0014 2119.0 0.0014 0.0014 2369.0 0.0014 0.0014 2643.5 0.0014 0.0014 2945.0 0.0014 0.0014 3276.5 0.0014 0.0014 -1.8 2.0 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 -2.0 2.2 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 -2.2 2.4 132 9.0 0.0011 0.0011 11.0 0.0011 0.0011 13.5 0.0011 0.0011 16.5 0.0011 0.0011 19.5 0.0011 0.0011 22.5 0.0011 0.0011 26.0 0.0011 0.0011 30.0 0.0011 0.0011 34.5 0.0011 0.0011 40.0 0.0011 0.0011 46.0 0.0011 0.0011 52.5 0.0011 0.0011 60.0 0.0011 0.0011 69.0 0.0011 0.0011 79.0 0.0011 0.0011 90.5 0.0011 0.0011 105.5 0.0011 0.0011 123.5 0.0011 0.0011 143.0 0.0011 0.0011 163.5 0.0011 0.0011 185.0 0.0011 0.0011 208.0 0.0011 0.0011 232.5 0.0011 0.0011 258.5 0.0011 0.0011 286.0 0.0011 0.0011 331.0 0.0011 0.0011 396.0 0.0011 0.0011 468.5 0.0011 0.0011 549.5 0.0011 0.0011 639.0 0.0011 0.0011 738.0 0.0011 0.0011 847.5 0.0011 0.0011 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0011 0.0011 1412.0 0.0011 0.0011 1590.5 0.0011 0.0011 1787.0 0.0011 0.0011 1945.0 0.0011 0.0011 2119.0 0.0011 0.0011 2369.0 0.0011 0.0011 2643.5 0.0011 0.0011 2945.0 0.0011 0.0011 3276.5 0.0011 0.0011 -2.4 2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.6 2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.8 3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.0 3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.5 4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.0 4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.4 5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -5.0 5.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -[RelativeJEREC2] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --5.0 -4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.4 -4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.0 -3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.5 -3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.0 -2.8 132 9.0 0.0124 0.0124 11.0 0.0124 0.0124 13.5 0.0124 0.0124 16.5 0.0124 0.0124 19.5 0.0124 0.0124 22.5 0.0124 0.0124 26.0 0.0124 0.0124 30.0 0.0124 0.0124 34.5 0.0124 0.0124 40.0 0.0124 0.0124 46.0 0.0124 0.0124 52.5 0.0124 0.0124 60.0 0.0124 0.0124 69.0 0.0124 0.0124 79.0 0.0124 0.0124 90.5 0.0124 0.0124 105.5 0.0124 0.0124 123.5 0.0124 0.0124 143.0 0.0124 0.0124 163.5 0.0124 0.0124 185.0 0.0124 0.0124 208.0 0.0124 0.0124 232.5 0.0124 0.0124 258.5 0.0124 0.0124 286.0 0.0124 0.0124 331.0 0.0124 0.0124 396.0 0.0124 0.0124 468.5 0.0124 0.0124 549.5 0.0124 0.0124 639.0 0.0124 0.0124 738.0 0.0124 0.0124 847.5 0.0124 0.0124 968.5 0.0124 0.0124 1102.0 0.0124 0.0124 1249.5 0.0124 0.0124 1412.0 0.0124 0.0124 1590.5 0.0124 0.0124 1787.0 0.0124 0.0124 1945.0 0.0124 0.0124 2119.0 0.0124 0.0124 2369.0 0.0124 0.0124 2643.5 0.0124 0.0124 2945.0 0.0124 0.0124 3276.5 0.0124 0.0124 --2.8 -2.6 132 9.0 0.0057 0.0057 11.0 0.0057 0.0057 13.5 0.0057 0.0057 16.5 0.0057 0.0057 19.5 0.0057 0.0057 22.5 0.0057 0.0057 26.0 0.0057 0.0057 30.0 0.0057 0.0057 34.5 0.0057 0.0057 40.0 0.0057 0.0057 46.0 0.0057 0.0057 52.5 0.0057 0.0057 60.0 0.0057 0.0057 69.0 0.0057 0.0057 79.0 0.0057 0.0057 90.5 0.0057 0.0057 105.5 0.0057 0.0057 123.5 0.0057 0.0057 143.0 0.0057 0.0057 163.5 0.0057 0.0057 185.0 0.0057 0.0057 208.0 0.0057 0.0057 232.5 0.0057 0.0057 258.5 0.0057 0.0057 286.0 0.0057 0.0057 331.0 0.0057 0.0057 396.0 0.0057 0.0057 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0057 0.0057 738.0 0.0057 0.0057 847.5 0.0057 0.0057 968.5 0.0057 0.0057 1102.0 0.0057 0.0057 1249.5 0.0057 0.0057 1412.0 0.0057 0.0057 1590.5 0.0057 0.0057 1787.0 0.0057 0.0057 1945.0 0.0057 0.0057 2119.0 0.0057 0.0057 2369.0 0.0057 0.0057 2643.5 0.0057 0.0057 2945.0 0.0057 0.0057 3276.5 0.0057 0.0057 --2.6 -2.4 132 9.0 0.0057 0.0057 11.0 0.0057 0.0057 13.5 0.0057 0.0057 16.5 0.0057 0.0057 19.5 0.0057 0.0057 22.5 0.0057 0.0057 26.0 0.0057 0.0057 30.0 0.0057 0.0057 34.5 0.0057 0.0057 40.0 0.0057 0.0057 46.0 0.0057 0.0057 52.5 0.0057 0.0057 60.0 0.0057 0.0057 69.0 0.0057 0.0057 79.0 0.0057 0.0057 90.5 0.0057 0.0057 105.5 0.0057 0.0057 123.5 0.0057 0.0057 143.0 0.0057 0.0057 163.5 0.0057 0.0057 185.0 0.0057 0.0057 208.0 0.0057 0.0057 232.5 0.0057 0.0057 258.5 0.0057 0.0057 286.0 0.0057 0.0057 331.0 0.0057 0.0057 396.0 0.0057 0.0057 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0057 0.0057 738.0 0.0057 0.0057 847.5 0.0057 0.0057 968.5 0.0057 0.0057 1102.0 0.0057 0.0057 1249.5 0.0057 0.0057 1412.0 0.0057 0.0057 1590.5 0.0057 0.0057 1787.0 0.0057 0.0057 1945.0 0.0057 0.0057 2119.0 0.0057 0.0057 2369.0 0.0057 0.0057 2643.5 0.0057 0.0057 2945.0 0.0057 0.0057 3276.5 0.0057 0.0057 --2.4 -2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.2 -2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.0 -1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.8 -1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.6 -1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.4 -1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.2 -1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.0 -0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.8 -0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.6 -0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.4 -0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.2 0.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.0 0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.2 0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.4 0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.6 0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.8 1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.0 1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.2 1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.4 1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.6 1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.8 2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.0 2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.2 2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.4 2.6 132 9.0 0.0057 0.0057 11.0 0.0057 0.0057 13.5 0.0057 0.0057 16.5 0.0057 0.0057 19.5 0.0057 0.0057 22.5 0.0057 0.0057 26.0 0.0057 0.0057 30.0 0.0057 0.0057 34.5 0.0057 0.0057 40.0 0.0057 0.0057 46.0 0.0057 0.0057 52.5 0.0057 0.0057 60.0 0.0057 0.0057 69.0 0.0057 0.0057 79.0 0.0057 0.0057 90.5 0.0057 0.0057 105.5 0.0057 0.0057 123.5 0.0057 0.0057 143.0 0.0057 0.0057 163.5 0.0057 0.0057 185.0 0.0057 0.0057 208.0 0.0057 0.0057 232.5 0.0057 0.0057 258.5 0.0057 0.0057 286.0 0.0057 0.0057 331.0 0.0057 0.0057 396.0 0.0057 0.0057 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0057 0.0057 738.0 0.0057 0.0057 847.5 0.0057 0.0057 968.5 0.0057 0.0057 1102.0 0.0057 0.0057 1249.5 0.0057 0.0057 1412.0 0.0057 0.0057 1590.5 0.0057 0.0057 1787.0 0.0057 0.0057 1945.0 0.0057 0.0057 2119.0 0.0057 0.0057 2369.0 0.0057 0.0057 2643.5 0.0057 0.0057 2945.0 0.0057 0.0057 3276.5 0.0057 0.0057 -2.6 2.8 132 9.0 0.0057 0.0057 11.0 0.0057 0.0057 13.5 0.0057 0.0057 16.5 0.0057 0.0057 19.5 0.0057 0.0057 22.5 0.0057 0.0057 26.0 0.0057 0.0057 30.0 0.0057 0.0057 34.5 0.0057 0.0057 40.0 0.0057 0.0057 46.0 0.0057 0.0057 52.5 0.0057 0.0057 60.0 0.0057 0.0057 69.0 0.0057 0.0057 79.0 0.0057 0.0057 90.5 0.0057 0.0057 105.5 0.0057 0.0057 123.5 0.0057 0.0057 143.0 0.0057 0.0057 163.5 0.0057 0.0057 185.0 0.0057 0.0057 208.0 0.0057 0.0057 232.5 0.0057 0.0057 258.5 0.0057 0.0057 286.0 0.0057 0.0057 331.0 0.0057 0.0057 396.0 0.0057 0.0057 468.5 0.0057 0.0057 549.5 0.0057 0.0057 639.0 0.0057 0.0057 738.0 0.0057 0.0057 847.5 0.0057 0.0057 968.5 0.0057 0.0057 1102.0 0.0057 0.0057 1249.5 0.0057 0.0057 1412.0 0.0057 0.0057 1590.5 0.0057 0.0057 1787.0 0.0057 0.0057 1945.0 0.0057 0.0057 2119.0 0.0057 0.0057 2369.0 0.0057 0.0057 2643.5 0.0057 0.0057 2945.0 0.0057 0.0057 3276.5 0.0057 0.0057 -2.8 3.0 132 9.0 0.0124 0.0124 11.0 0.0124 0.0124 13.5 0.0124 0.0124 16.5 0.0124 0.0124 19.5 0.0124 0.0124 22.5 0.0124 0.0124 26.0 0.0124 0.0124 30.0 0.0124 0.0124 34.5 0.0124 0.0124 40.0 0.0124 0.0124 46.0 0.0124 0.0124 52.5 0.0124 0.0124 60.0 0.0124 0.0124 69.0 0.0124 0.0124 79.0 0.0124 0.0124 90.5 0.0124 0.0124 105.5 0.0124 0.0124 123.5 0.0124 0.0124 143.0 0.0124 0.0124 163.5 0.0124 0.0124 185.0 0.0124 0.0124 208.0 0.0124 0.0124 232.5 0.0124 0.0124 258.5 0.0124 0.0124 286.0 0.0124 0.0124 331.0 0.0124 0.0124 396.0 0.0124 0.0124 468.5 0.0124 0.0124 549.5 0.0124 0.0124 639.0 0.0124 0.0124 738.0 0.0124 0.0124 847.5 0.0124 0.0124 968.5 0.0124 0.0124 1102.0 0.0124 0.0124 1249.5 0.0124 0.0124 1412.0 0.0124 0.0124 1590.5 0.0124 0.0124 1787.0 0.0124 0.0124 1945.0 0.0124 0.0124 2119.0 0.0124 0.0124 2369.0 0.0124 0.0124 2643.5 0.0124 0.0124 2945.0 0.0124 0.0124 3276.5 0.0124 0.0124 -3.0 3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.5 4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.0 4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.4 5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -5.0 5.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -[RelativeJERHF] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0155 0.0155 11.0 0.0155 0.0155 13.5 0.0155 0.0155 16.5 0.0155 0.0155 19.5 0.0155 0.0155 22.5 0.0155 0.0155 26.0 0.0155 0.0155 30.0 0.0155 0.0155 34.5 0.0155 0.0155 40.0 0.0155 0.0155 46.0 0.0155 0.0155 52.5 0.0155 0.0155 60.0 0.0155 0.0155 69.0 0.0155 0.0155 79.0 0.0155 0.0155 90.5 0.0155 0.0155 105.5 0.0155 0.0155 123.5 0.0155 0.0155 143.0 0.0155 0.0155 163.5 0.0155 0.0155 185.0 0.0155 0.0155 208.0 0.0155 0.0155 232.5 0.0155 0.0155 258.5 0.0155 0.0155 286.0 0.0155 0.0155 331.0 0.0155 0.0155 396.0 0.0155 0.0155 468.5 0.0155 0.0155 549.5 0.0155 0.0155 639.0 0.0155 0.0155 738.0 0.0155 0.0155 847.5 0.0155 0.0155 968.5 0.0155 0.0155 1102.0 0.0155 0.0155 1249.5 0.0155 0.0155 1412.0 0.0155 0.0155 1590.5 0.0155 0.0155 1787.0 0.0155 0.0155 1945.0 0.0155 0.0155 2119.0 0.0155 0.0155 2369.0 0.0155 0.0155 2643.5 0.0155 0.0155 2945.0 0.0155 0.0155 3276.5 0.0155 0.0155 --5.0 -4.4 132 9.0 0.0155 0.0155 11.0 0.0155 0.0155 13.5 0.0155 0.0155 16.5 0.0155 0.0155 19.5 0.0155 0.0155 22.5 0.0155 0.0155 26.0 0.0155 0.0155 30.0 0.0155 0.0155 34.5 0.0155 0.0155 40.0 0.0155 0.0155 46.0 0.0155 0.0155 52.5 0.0155 0.0155 60.0 0.0155 0.0155 69.0 0.0155 0.0155 79.0 0.0155 0.0155 90.5 0.0155 0.0155 105.5 0.0155 0.0155 123.5 0.0155 0.0155 143.0 0.0155 0.0155 163.5 0.0155 0.0155 185.0 0.0155 0.0155 208.0 0.0155 0.0155 232.5 0.0155 0.0155 258.5 0.0155 0.0155 286.0 0.0155 0.0155 331.0 0.0155 0.0155 396.0 0.0155 0.0155 468.5 0.0155 0.0155 549.5 0.0155 0.0155 639.0 0.0155 0.0155 738.0 0.0155 0.0155 847.5 0.0155 0.0155 968.5 0.0155 0.0155 1102.0 0.0155 0.0155 1249.5 0.0155 0.0155 1412.0 0.0155 0.0155 1590.5 0.0155 0.0155 1787.0 0.0155 0.0155 1945.0 0.0155 0.0155 2119.0 0.0155 0.0155 2369.0 0.0155 0.0155 2643.5 0.0155 0.0155 2945.0 0.0155 0.0155 3276.5 0.0155 0.0155 --4.4 -4.0 132 9.0 0.0155 0.0155 11.0 0.0155 0.0155 13.5 0.0155 0.0155 16.5 0.0155 0.0155 19.5 0.0155 0.0155 22.5 0.0155 0.0155 26.0 0.0155 0.0155 30.0 0.0155 0.0155 34.5 0.0155 0.0155 40.0 0.0155 0.0155 46.0 0.0155 0.0155 52.5 0.0155 0.0155 60.0 0.0155 0.0155 69.0 0.0155 0.0155 79.0 0.0155 0.0155 90.5 0.0155 0.0155 105.5 0.0155 0.0155 123.5 0.0155 0.0155 143.0 0.0155 0.0155 163.5 0.0155 0.0155 185.0 0.0155 0.0155 208.0 0.0155 0.0155 232.5 0.0155 0.0155 258.5 0.0155 0.0155 286.0 0.0155 0.0155 331.0 0.0155 0.0155 396.0 0.0155 0.0155 468.5 0.0155 0.0155 549.5 0.0155 0.0155 639.0 0.0155 0.0155 738.0 0.0155 0.0155 847.5 0.0155 0.0155 968.5 0.0155 0.0155 1102.0 0.0155 0.0155 1249.5 0.0155 0.0155 1412.0 0.0155 0.0155 1590.5 0.0155 0.0155 1787.0 0.0155 0.0155 1945.0 0.0155 0.0155 2119.0 0.0155 0.0155 2369.0 0.0155 0.0155 2643.5 0.0155 0.0155 2945.0 0.0155 0.0155 3276.5 0.0155 0.0155 --4.0 -3.5 132 9.0 0.0155 0.0155 11.0 0.0155 0.0155 13.5 0.0155 0.0155 16.5 0.0155 0.0155 19.5 0.0155 0.0155 22.5 0.0155 0.0155 26.0 0.0155 0.0155 30.0 0.0155 0.0155 34.5 0.0155 0.0155 40.0 0.0155 0.0155 46.0 0.0155 0.0155 52.5 0.0155 0.0155 60.0 0.0155 0.0155 69.0 0.0155 0.0155 79.0 0.0155 0.0155 90.5 0.0155 0.0155 105.5 0.0155 0.0155 123.5 0.0155 0.0155 143.0 0.0155 0.0155 163.5 0.0155 0.0155 185.0 0.0155 0.0155 208.0 0.0155 0.0155 232.5 0.0155 0.0155 258.5 0.0155 0.0155 286.0 0.0155 0.0155 331.0 0.0155 0.0155 396.0 0.0155 0.0155 468.5 0.0155 0.0155 549.5 0.0155 0.0155 639.0 0.0155 0.0155 738.0 0.0155 0.0155 847.5 0.0155 0.0155 968.5 0.0155 0.0155 1102.0 0.0155 0.0155 1249.5 0.0155 0.0155 1412.0 0.0155 0.0155 1590.5 0.0155 0.0155 1787.0 0.0155 0.0155 1945.0 0.0155 0.0155 2119.0 0.0155 0.0155 2369.0 0.0155 0.0155 2643.5 0.0155 0.0155 2945.0 0.0155 0.0155 3276.5 0.0155 0.0155 --3.5 -3.0 132 9.0 0.0117 0.0117 11.0 0.0117 0.0117 13.5 0.0117 0.0117 16.5 0.0117 0.0117 19.5 0.0117 0.0117 22.5 0.0117 0.0117 26.0 0.0117 0.0117 30.0 0.0117 0.0117 34.5 0.0117 0.0117 40.0 0.0117 0.0117 46.0 0.0117 0.0117 52.5 0.0117 0.0117 60.0 0.0117 0.0117 69.0 0.0117 0.0117 79.0 0.0117 0.0117 90.5 0.0117 0.0117 105.5 0.0117 0.0117 123.5 0.0117 0.0117 143.0 0.0117 0.0117 163.5 0.0117 0.0117 185.0 0.0117 0.0117 208.0 0.0117 0.0117 232.5 0.0117 0.0117 258.5 0.0117 0.0117 286.0 0.0117 0.0117 331.0 0.0117 0.0117 396.0 0.0117 0.0117 468.5 0.0117 0.0117 549.5 0.0117 0.0117 639.0 0.0117 0.0117 738.0 0.0117 0.0117 847.5 0.0117 0.0117 968.5 0.0117 0.0117 1102.0 0.0117 0.0117 1249.5 0.0117 0.0117 1412.0 0.0117 0.0117 1590.5 0.0117 0.0117 1787.0 0.0117 0.0117 1945.0 0.0117 0.0117 2119.0 0.0117 0.0117 2369.0 0.0117 0.0117 2643.5 0.0117 0.0117 2945.0 0.0117 0.0117 3276.5 0.0117 0.0117 --3.0 -2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.8 -2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.6 -2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.4 -2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.2 -2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.0 -1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.8 -1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.6 -1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.4 -1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.2 -1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.0 -0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.8 -0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.6 -0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.4 -0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.2 0.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.0 0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.2 0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.4 0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.6 0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.8 1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.0 1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.2 1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.4 1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.6 1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.8 2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.0 2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.2 2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.4 2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.6 2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.8 3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.0 3.5 132 9.0 0.0117 0.0117 11.0 0.0117 0.0117 13.5 0.0117 0.0117 16.5 0.0117 0.0117 19.5 0.0117 0.0117 22.5 0.0117 0.0117 26.0 0.0117 0.0117 30.0 0.0117 0.0117 34.5 0.0117 0.0117 40.0 0.0117 0.0117 46.0 0.0117 0.0117 52.5 0.0117 0.0117 60.0 0.0117 0.0117 69.0 0.0117 0.0117 79.0 0.0117 0.0117 90.5 0.0117 0.0117 105.5 0.0117 0.0117 123.5 0.0117 0.0117 143.0 0.0117 0.0117 163.5 0.0117 0.0117 185.0 0.0117 0.0117 208.0 0.0117 0.0117 232.5 0.0117 0.0117 258.5 0.0117 0.0117 286.0 0.0117 0.0117 331.0 0.0117 0.0117 396.0 0.0117 0.0117 468.5 0.0117 0.0117 549.5 0.0117 0.0117 639.0 0.0117 0.0117 738.0 0.0117 0.0117 847.5 0.0117 0.0117 968.5 0.0117 0.0117 1102.0 0.0117 0.0117 1249.5 0.0117 0.0117 1412.0 0.0117 0.0117 1590.5 0.0117 0.0117 1787.0 0.0117 0.0117 1945.0 0.0117 0.0117 2119.0 0.0117 0.0117 2369.0 0.0117 0.0117 2643.5 0.0117 0.0117 2945.0 0.0117 0.0117 3276.5 0.0117 0.0117 -3.5 4.0 132 9.0 0.0155 0.0155 11.0 0.0155 0.0155 13.5 0.0155 0.0155 16.5 0.0155 0.0155 19.5 0.0155 0.0155 22.5 0.0155 0.0155 26.0 0.0155 0.0155 30.0 0.0155 0.0155 34.5 0.0155 0.0155 40.0 0.0155 0.0155 46.0 0.0155 0.0155 52.5 0.0155 0.0155 60.0 0.0155 0.0155 69.0 0.0155 0.0155 79.0 0.0155 0.0155 90.5 0.0155 0.0155 105.5 0.0155 0.0155 123.5 0.0155 0.0155 143.0 0.0155 0.0155 163.5 0.0155 0.0155 185.0 0.0155 0.0155 208.0 0.0155 0.0155 232.5 0.0155 0.0155 258.5 0.0155 0.0155 286.0 0.0155 0.0155 331.0 0.0155 0.0155 396.0 0.0155 0.0155 468.5 0.0155 0.0155 549.5 0.0155 0.0155 639.0 0.0155 0.0155 738.0 0.0155 0.0155 847.5 0.0155 0.0155 968.5 0.0155 0.0155 1102.0 0.0155 0.0155 1249.5 0.0155 0.0155 1412.0 0.0155 0.0155 1590.5 0.0155 0.0155 1787.0 0.0155 0.0155 1945.0 0.0155 0.0155 2119.0 0.0155 0.0155 2369.0 0.0155 0.0155 2643.5 0.0155 0.0155 2945.0 0.0155 0.0155 3276.5 0.0155 0.0155 -4.0 4.4 132 9.0 0.0155 0.0155 11.0 0.0155 0.0155 13.5 0.0155 0.0155 16.5 0.0155 0.0155 19.5 0.0155 0.0155 22.5 0.0155 0.0155 26.0 0.0155 0.0155 30.0 0.0155 0.0155 34.5 0.0155 0.0155 40.0 0.0155 0.0155 46.0 0.0155 0.0155 52.5 0.0155 0.0155 60.0 0.0155 0.0155 69.0 0.0155 0.0155 79.0 0.0155 0.0155 90.5 0.0155 0.0155 105.5 0.0155 0.0155 123.5 0.0155 0.0155 143.0 0.0155 0.0155 163.5 0.0155 0.0155 185.0 0.0155 0.0155 208.0 0.0155 0.0155 232.5 0.0155 0.0155 258.5 0.0155 0.0155 286.0 0.0155 0.0155 331.0 0.0155 0.0155 396.0 0.0155 0.0155 468.5 0.0155 0.0155 549.5 0.0155 0.0155 639.0 0.0155 0.0155 738.0 0.0155 0.0155 847.5 0.0155 0.0155 968.5 0.0155 0.0155 1102.0 0.0155 0.0155 1249.5 0.0155 0.0155 1412.0 0.0155 0.0155 1590.5 0.0155 0.0155 1787.0 0.0155 0.0155 1945.0 0.0155 0.0155 2119.0 0.0155 0.0155 2369.0 0.0155 0.0155 2643.5 0.0155 0.0155 2945.0 0.0155 0.0155 3276.5 0.0155 0.0155 -4.4 5.0 132 9.0 0.0155 0.0155 11.0 0.0155 0.0155 13.5 0.0155 0.0155 16.5 0.0155 0.0155 19.5 0.0155 0.0155 22.5 0.0155 0.0155 26.0 0.0155 0.0155 30.0 0.0155 0.0155 34.5 0.0155 0.0155 40.0 0.0155 0.0155 46.0 0.0155 0.0155 52.5 0.0155 0.0155 60.0 0.0155 0.0155 69.0 0.0155 0.0155 79.0 0.0155 0.0155 90.5 0.0155 0.0155 105.5 0.0155 0.0155 123.5 0.0155 0.0155 143.0 0.0155 0.0155 163.5 0.0155 0.0155 185.0 0.0155 0.0155 208.0 0.0155 0.0155 232.5 0.0155 0.0155 258.5 0.0155 0.0155 286.0 0.0155 0.0155 331.0 0.0155 0.0155 396.0 0.0155 0.0155 468.5 0.0155 0.0155 549.5 0.0155 0.0155 639.0 0.0155 0.0155 738.0 0.0155 0.0155 847.5 0.0155 0.0155 968.5 0.0155 0.0155 1102.0 0.0155 0.0155 1249.5 0.0155 0.0155 1412.0 0.0155 0.0155 1590.5 0.0155 0.0155 1787.0 0.0155 0.0155 1945.0 0.0155 0.0155 2119.0 0.0155 0.0155 2369.0 0.0155 0.0155 2643.5 0.0155 0.0155 2945.0 0.0155 0.0155 3276.5 0.0155 0.0155 -5.0 5.4 132 9.0 0.0155 0.0155 11.0 0.0155 0.0155 13.5 0.0155 0.0155 16.5 0.0155 0.0155 19.5 0.0155 0.0155 22.5 0.0155 0.0155 26.0 0.0155 0.0155 30.0 0.0155 0.0155 34.5 0.0155 0.0155 40.0 0.0155 0.0155 46.0 0.0155 0.0155 52.5 0.0155 0.0155 60.0 0.0155 0.0155 69.0 0.0155 0.0155 79.0 0.0155 0.0155 90.5 0.0155 0.0155 105.5 0.0155 0.0155 123.5 0.0155 0.0155 143.0 0.0155 0.0155 163.5 0.0155 0.0155 185.0 0.0155 0.0155 208.0 0.0155 0.0155 232.5 0.0155 0.0155 258.5 0.0155 0.0155 286.0 0.0155 0.0155 331.0 0.0155 0.0155 396.0 0.0155 0.0155 468.5 0.0155 0.0155 549.5 0.0155 0.0155 639.0 0.0155 0.0155 738.0 0.0155 0.0155 847.5 0.0155 0.0155 968.5 0.0155 0.0155 1102.0 0.0155 0.0155 1249.5 0.0155 0.0155 1412.0 0.0155 0.0155 1590.5 0.0155 0.0155 1787.0 0.0155 0.0155 1945.0 0.0155 0.0155 2119.0 0.0155 0.0155 2369.0 0.0155 0.0155 2643.5 0.0155 0.0155 2945.0 0.0155 0.0155 3276.5 0.0155 0.0155 -[RelativePtBB] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --5.0 -4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.4 -4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.0 -3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.5 -3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.0 -2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.8 -2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.6 -2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.4 -2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.2 -2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.0 -1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.8 -1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.6 -1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.4 -1.2 132 9.0 0.0006 0.0006 11.0 0.0006 0.0006 13.5 0.0006 0.0006 16.5 0.0006 0.0006 19.5 0.0006 0.0006 22.5 0.0006 0.0006 26.0 0.0006 0.0006 30.0 0.0006 0.0006 34.5 0.0006 0.0006 40.0 0.0006 0.0006 46.0 0.0006 0.0006 52.5 0.0006 0.0006 60.0 0.0006 0.0006 69.0 0.0005 0.0005 79.0 0.0005 0.0005 90.5 0.0005 0.0005 105.5 0.0004 0.0004 123.5 0.0004 0.0004 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0004 0.0004 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1945.0 0.0004 0.0004 2119.0 0.0004 0.0004 2369.0 0.0004 0.0004 2643.5 0.0004 0.0004 2945.0 0.0004 0.0004 3276.5 0.0004 0.0004 --1.2 -1.0 132 9.0 0.0047 0.0047 11.0 0.0047 0.0047 13.5 0.0047 0.0047 16.5 0.0047 0.0047 19.5 0.0047 0.0047 22.5 0.0047 0.0047 26.0 0.0047 0.0047 30.0 0.0047 0.0047 34.5 0.0047 0.0047 40.0 0.0047 0.0047 46.0 0.0047 0.0047 52.5 0.0046 0.0046 60.0 0.0043 0.0043 69.0 0.0039 0.0039 79.0 0.0036 0.0036 90.5 0.0033 0.0033 105.5 0.0030 0.0030 123.5 0.0026 0.0026 143.0 0.0023 0.0023 163.5 0.0020 0.0020 185.0 0.0017 0.0017 208.0 0.0014 0.0014 232.5 0.0012 0.0012 258.5 0.0009 0.0009 286.0 0.0007 0.0007 331.0 0.0004 0.0004 396.0 0.0001 0.0001 468.5 0.0004 0.0004 549.5 0.0008 0.0008 639.0 0.0011 0.0011 738.0 0.0015 0.0015 847.5 0.0018 0.0018 968.5 0.0021 0.0021 1102.0 0.0024 0.0024 1249.5 0.0027 0.0027 1412.0 0.0029 0.0029 1590.5 0.0030 0.0030 1787.0 0.0030 0.0030 1945.0 0.0030 0.0030 2119.0 0.0030 0.0030 2369.0 0.0030 0.0030 2643.5 0.0030 0.0030 2945.0 0.0030 0.0030 3276.5 0.0030 0.0030 --1.0 -0.8 132 9.0 0.0085 0.0085 11.0 0.0085 0.0085 13.5 0.0085 0.0085 16.5 0.0085 0.0085 19.5 0.0085 0.0085 22.5 0.0085 0.0085 26.0 0.0085 0.0085 30.0 0.0085 0.0085 34.5 0.0085 0.0085 40.0 0.0085 0.0085 46.0 0.0085 0.0085 52.5 0.0084 0.0084 60.0 0.0078 0.0078 69.0 0.0072 0.0072 79.0 0.0066 0.0066 90.5 0.0061 0.0061 105.5 0.0054 0.0054 123.5 0.0048 0.0048 143.0 0.0042 0.0042 163.5 0.0036 0.0036 185.0 0.0031 0.0031 208.0 0.0026 0.0026 232.5 0.0022 0.0022 258.5 0.0017 0.0017 286.0 0.0013 0.0013 331.0 0.0007 0.0007 396.0 0.0000 0.0000 468.5 0.0007 0.0007 549.5 0.0014 0.0014 639.0 0.0020 0.0020 738.0 0.0026 0.0026 847.5 0.0032 0.0032 968.5 0.0037 0.0037 1102.0 0.0042 0.0042 1249.5 0.0047 0.0047 1412.0 0.0052 0.0052 1590.5 0.0054 0.0054 1787.0 0.0054 0.0054 1945.0 0.0054 0.0054 2119.0 0.0054 0.0054 2369.0 0.0054 0.0054 2643.5 0.0054 0.0054 2945.0 0.0054 0.0054 3276.5 0.0054 0.0054 --0.8 -0.6 132 9.0 0.0104 0.0104 11.0 0.0104 0.0104 13.5 0.0104 0.0104 16.5 0.0104 0.0104 19.5 0.0104 0.0104 22.5 0.0104 0.0104 26.0 0.0104 0.0104 30.0 0.0104 0.0104 34.5 0.0104 0.0104 40.0 0.0104 0.0104 46.0 0.0104 0.0104 52.5 0.0102 0.0102 60.0 0.0095 0.0095 69.0 0.0088 0.0088 79.0 0.0082 0.0082 90.5 0.0075 0.0075 105.5 0.0067 0.0067 123.5 0.0059 0.0059 143.0 0.0052 0.0052 163.5 0.0046 0.0046 185.0 0.0039 0.0039 208.0 0.0034 0.0034 232.5 0.0028 0.0028 258.5 0.0023 0.0023 286.0 0.0018 0.0018 331.0 0.0011 0.0011 396.0 0.0002 0.0002 468.5 0.0006 0.0006 549.5 0.0014 0.0014 639.0 0.0021 0.0021 738.0 0.0028 0.0028 847.5 0.0035 0.0035 968.5 0.0042 0.0042 1102.0 0.0048 0.0048 1249.5 0.0054 0.0054 1412.0 0.0060 0.0060 1590.5 0.0062 0.0062 1787.0 0.0062 0.0062 1945.0 0.0062 0.0062 2119.0 0.0062 0.0062 2369.0 0.0062 0.0062 2643.5 0.0062 0.0062 2945.0 0.0062 0.0062 3276.5 0.0062 0.0062 --0.6 -0.4 132 9.0 0.0071 0.0071 11.0 0.0071 0.0071 13.5 0.0071 0.0071 16.5 0.0071 0.0071 19.5 0.0071 0.0071 22.5 0.0071 0.0071 26.0 0.0071 0.0071 30.0 0.0071 0.0071 34.5 0.0071 0.0071 40.0 0.0071 0.0071 46.0 0.0071 0.0071 52.5 0.0069 0.0069 60.0 0.0065 0.0065 69.0 0.0060 0.0060 79.0 0.0056 0.0056 90.5 0.0051 0.0051 105.5 0.0046 0.0046 123.5 0.0041 0.0041 143.0 0.0036 0.0036 163.5 0.0032 0.0032 185.0 0.0028 0.0028 208.0 0.0024 0.0024 232.5 0.0020 0.0020 258.5 0.0017 0.0017 286.0 0.0013 0.0013 331.0 0.0008 0.0008 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0008 0.0008 639.0 0.0013 0.0013 738.0 0.0018 0.0018 847.5 0.0022 0.0022 968.5 0.0027 0.0027 1102.0 0.0031 0.0031 1249.5 0.0035 0.0035 1412.0 0.0039 0.0039 1590.5 0.0040 0.0040 1787.0 0.0040 0.0040 1945.0 0.0040 0.0040 2119.0 0.0040 0.0040 2369.0 0.0040 0.0040 2643.5 0.0040 0.0040 2945.0 0.0040 0.0040 3276.5 0.0040 0.0040 --0.4 -0.2 132 9.0 0.0094 0.0094 11.0 0.0094 0.0094 13.5 0.0094 0.0094 16.5 0.0094 0.0094 19.5 0.0094 0.0094 22.5 0.0094 0.0094 26.0 0.0094 0.0094 30.0 0.0094 0.0094 34.5 0.0094 0.0094 40.0 0.0094 0.0094 46.0 0.0094 0.0094 52.5 0.0092 0.0092 60.0 0.0086 0.0086 69.0 0.0080 0.0080 79.0 0.0074 0.0074 90.5 0.0068 0.0068 105.5 0.0061 0.0061 123.5 0.0054 0.0054 143.0 0.0048 0.0048 163.5 0.0042 0.0042 185.0 0.0037 0.0037 208.0 0.0031 0.0031 232.5 0.0027 0.0027 258.5 0.0022 0.0022 286.0 0.0017 0.0017 331.0 0.0011 0.0011 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0011 0.0011 639.0 0.0018 0.0018 738.0 0.0024 0.0024 847.5 0.0030 0.0030 968.5 0.0036 0.0036 1102.0 0.0041 0.0041 1249.5 0.0047 0.0047 1412.0 0.0052 0.0052 1590.5 0.0054 0.0054 1787.0 0.0054 0.0054 1945.0 0.0054 0.0054 2119.0 0.0054 0.0054 2369.0 0.0054 0.0054 2643.5 0.0054 0.0054 2945.0 0.0054 0.0054 3276.5 0.0054 0.0054 --0.2 0.0 132 9.0 0.0038 0.0038 11.0 0.0038 0.0038 13.5 0.0038 0.0038 16.5 0.0038 0.0038 19.5 0.0038 0.0038 22.5 0.0038 0.0038 26.0 0.0038 0.0038 30.0 0.0038 0.0038 34.5 0.0038 0.0038 40.0 0.0038 0.0038 46.0 0.0038 0.0038 52.5 0.0037 0.0037 60.0 0.0035 0.0035 69.0 0.0032 0.0032 79.0 0.0030 0.0030 90.5 0.0027 0.0027 105.5 0.0025 0.0025 123.5 0.0022 0.0022 143.0 0.0019 0.0019 163.5 0.0017 0.0017 185.0 0.0015 0.0015 208.0 0.0013 0.0013 232.5 0.0011 0.0011 258.5 0.0009 0.0009 286.0 0.0007 0.0007 331.0 0.0005 0.0005 396.0 0.0001 0.0001 468.5 0.0002 0.0002 549.5 0.0004 0.0004 639.0 0.0007 0.0007 738.0 0.0010 0.0010 847.5 0.0012 0.0012 968.5 0.0014 0.0014 1102.0 0.0017 0.0017 1249.5 0.0019 0.0019 1412.0 0.0021 0.0021 1590.5 0.0022 0.0022 1787.0 0.0022 0.0022 1945.0 0.0022 0.0022 2119.0 0.0022 0.0022 2369.0 0.0022 0.0022 2643.5 0.0022 0.0022 2945.0 0.0022 0.0022 3276.5 0.0022 0.0022 -0.0 0.2 132 9.0 0.0038 0.0038 11.0 0.0038 0.0038 13.5 0.0038 0.0038 16.5 0.0038 0.0038 19.5 0.0038 0.0038 22.5 0.0038 0.0038 26.0 0.0038 0.0038 30.0 0.0038 0.0038 34.5 0.0038 0.0038 40.0 0.0038 0.0038 46.0 0.0038 0.0038 52.5 0.0037 0.0037 60.0 0.0035 0.0035 69.0 0.0032 0.0032 79.0 0.0030 0.0030 90.5 0.0027 0.0027 105.5 0.0025 0.0025 123.5 0.0022 0.0022 143.0 0.0019 0.0019 163.5 0.0017 0.0017 185.0 0.0015 0.0015 208.0 0.0013 0.0013 232.5 0.0011 0.0011 258.5 0.0009 0.0009 286.0 0.0007 0.0007 331.0 0.0005 0.0005 396.0 0.0001 0.0001 468.5 0.0002 0.0002 549.5 0.0004 0.0004 639.0 0.0007 0.0007 738.0 0.0010 0.0010 847.5 0.0012 0.0012 968.5 0.0014 0.0014 1102.0 0.0017 0.0017 1249.5 0.0019 0.0019 1412.0 0.0021 0.0021 1590.5 0.0022 0.0022 1787.0 0.0022 0.0022 1945.0 0.0022 0.0022 2119.0 0.0022 0.0022 2369.0 0.0022 0.0022 2643.5 0.0022 0.0022 2945.0 0.0022 0.0022 3276.5 0.0022 0.0022 -0.2 0.4 132 9.0 0.0094 0.0094 11.0 0.0094 0.0094 13.5 0.0094 0.0094 16.5 0.0094 0.0094 19.5 0.0094 0.0094 22.5 0.0094 0.0094 26.0 0.0094 0.0094 30.0 0.0094 0.0094 34.5 0.0094 0.0094 40.0 0.0094 0.0094 46.0 0.0094 0.0094 52.5 0.0092 0.0092 60.0 0.0086 0.0086 69.0 0.0080 0.0080 79.0 0.0074 0.0074 90.5 0.0068 0.0068 105.5 0.0061 0.0061 123.5 0.0054 0.0054 143.0 0.0048 0.0048 163.5 0.0042 0.0042 185.0 0.0037 0.0037 208.0 0.0031 0.0031 232.5 0.0027 0.0027 258.5 0.0022 0.0022 286.0 0.0017 0.0017 331.0 0.0011 0.0011 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0011 0.0011 639.0 0.0018 0.0018 738.0 0.0024 0.0024 847.5 0.0030 0.0030 968.5 0.0036 0.0036 1102.0 0.0041 0.0041 1249.5 0.0047 0.0047 1412.0 0.0052 0.0052 1590.5 0.0054 0.0054 1787.0 0.0054 0.0054 1945.0 0.0054 0.0054 2119.0 0.0054 0.0054 2369.0 0.0054 0.0054 2643.5 0.0054 0.0054 2945.0 0.0054 0.0054 3276.5 0.0054 0.0054 -0.4 0.6 132 9.0 0.0071 0.0071 11.0 0.0071 0.0071 13.5 0.0071 0.0071 16.5 0.0071 0.0071 19.5 0.0071 0.0071 22.5 0.0071 0.0071 26.0 0.0071 0.0071 30.0 0.0071 0.0071 34.5 0.0071 0.0071 40.0 0.0071 0.0071 46.0 0.0071 0.0071 52.5 0.0069 0.0069 60.0 0.0065 0.0065 69.0 0.0060 0.0060 79.0 0.0056 0.0056 90.5 0.0051 0.0051 105.5 0.0046 0.0046 123.5 0.0041 0.0041 143.0 0.0036 0.0036 163.5 0.0032 0.0032 185.0 0.0028 0.0028 208.0 0.0024 0.0024 232.5 0.0020 0.0020 258.5 0.0017 0.0017 286.0 0.0013 0.0013 331.0 0.0008 0.0008 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0008 0.0008 639.0 0.0013 0.0013 738.0 0.0018 0.0018 847.5 0.0022 0.0022 968.5 0.0027 0.0027 1102.0 0.0031 0.0031 1249.5 0.0035 0.0035 1412.0 0.0039 0.0039 1590.5 0.0040 0.0040 1787.0 0.0040 0.0040 1945.0 0.0040 0.0040 2119.0 0.0040 0.0040 2369.0 0.0040 0.0040 2643.5 0.0040 0.0040 2945.0 0.0040 0.0040 3276.5 0.0040 0.0040 -0.6 0.8 132 9.0 0.0104 0.0104 11.0 0.0104 0.0104 13.5 0.0104 0.0104 16.5 0.0104 0.0104 19.5 0.0104 0.0104 22.5 0.0104 0.0104 26.0 0.0104 0.0104 30.0 0.0104 0.0104 34.5 0.0104 0.0104 40.0 0.0104 0.0104 46.0 0.0104 0.0104 52.5 0.0102 0.0102 60.0 0.0095 0.0095 69.0 0.0088 0.0088 79.0 0.0082 0.0082 90.5 0.0075 0.0075 105.5 0.0067 0.0067 123.5 0.0059 0.0059 143.0 0.0052 0.0052 163.5 0.0046 0.0046 185.0 0.0039 0.0039 208.0 0.0034 0.0034 232.5 0.0028 0.0028 258.5 0.0023 0.0023 286.0 0.0018 0.0018 331.0 0.0011 0.0011 396.0 0.0002 0.0002 468.5 0.0006 0.0006 549.5 0.0014 0.0014 639.0 0.0021 0.0021 738.0 0.0028 0.0028 847.5 0.0035 0.0035 968.5 0.0042 0.0042 1102.0 0.0048 0.0048 1249.5 0.0054 0.0054 1412.0 0.0060 0.0060 1590.5 0.0062 0.0062 1787.0 0.0062 0.0062 1945.0 0.0062 0.0062 2119.0 0.0062 0.0062 2369.0 0.0062 0.0062 2643.5 0.0062 0.0062 2945.0 0.0062 0.0062 3276.5 0.0062 0.0062 -0.8 1.0 132 9.0 0.0085 0.0085 11.0 0.0085 0.0085 13.5 0.0085 0.0085 16.5 0.0085 0.0085 19.5 0.0085 0.0085 22.5 0.0085 0.0085 26.0 0.0085 0.0085 30.0 0.0085 0.0085 34.5 0.0085 0.0085 40.0 0.0085 0.0085 46.0 0.0085 0.0085 52.5 0.0084 0.0084 60.0 0.0078 0.0078 69.0 0.0072 0.0072 79.0 0.0066 0.0066 90.5 0.0061 0.0061 105.5 0.0054 0.0054 123.5 0.0048 0.0048 143.0 0.0042 0.0042 163.5 0.0036 0.0036 185.0 0.0031 0.0031 208.0 0.0026 0.0026 232.5 0.0022 0.0022 258.5 0.0017 0.0017 286.0 0.0013 0.0013 331.0 0.0007 0.0007 396.0 0.0000 0.0000 468.5 0.0007 0.0007 549.5 0.0014 0.0014 639.0 0.0020 0.0020 738.0 0.0026 0.0026 847.5 0.0032 0.0032 968.5 0.0037 0.0037 1102.0 0.0042 0.0042 1249.5 0.0047 0.0047 1412.0 0.0052 0.0052 1590.5 0.0054 0.0054 1787.0 0.0054 0.0054 1945.0 0.0054 0.0054 2119.0 0.0054 0.0054 2369.0 0.0054 0.0054 2643.5 0.0054 0.0054 2945.0 0.0054 0.0054 3276.5 0.0054 0.0054 -1.0 1.2 132 9.0 0.0047 0.0047 11.0 0.0047 0.0047 13.5 0.0047 0.0047 16.5 0.0047 0.0047 19.5 0.0047 0.0047 22.5 0.0047 0.0047 26.0 0.0047 0.0047 30.0 0.0047 0.0047 34.5 0.0047 0.0047 40.0 0.0047 0.0047 46.0 0.0047 0.0047 52.5 0.0046 0.0046 60.0 0.0043 0.0043 69.0 0.0039 0.0039 79.0 0.0036 0.0036 90.5 0.0033 0.0033 105.5 0.0030 0.0030 123.5 0.0026 0.0026 143.0 0.0023 0.0023 163.5 0.0020 0.0020 185.0 0.0017 0.0017 208.0 0.0014 0.0014 232.5 0.0012 0.0012 258.5 0.0009 0.0009 286.0 0.0007 0.0007 331.0 0.0004 0.0004 396.0 0.0001 0.0001 468.5 0.0004 0.0004 549.5 0.0008 0.0008 639.0 0.0011 0.0011 738.0 0.0015 0.0015 847.5 0.0018 0.0018 968.5 0.0021 0.0021 1102.0 0.0024 0.0024 1249.5 0.0027 0.0027 1412.0 0.0029 0.0029 1590.5 0.0030 0.0030 1787.0 0.0030 0.0030 1945.0 0.0030 0.0030 2119.0 0.0030 0.0030 2369.0 0.0030 0.0030 2643.5 0.0030 0.0030 2945.0 0.0030 0.0030 3276.5 0.0030 0.0030 -1.2 1.4 132 9.0 0.0006 0.0006 11.0 0.0006 0.0006 13.5 0.0006 0.0006 16.5 0.0006 0.0006 19.5 0.0006 0.0006 22.5 0.0006 0.0006 26.0 0.0006 0.0006 30.0 0.0006 0.0006 34.5 0.0006 0.0006 40.0 0.0006 0.0006 46.0 0.0006 0.0006 52.5 0.0006 0.0006 60.0 0.0006 0.0006 69.0 0.0005 0.0005 79.0 0.0005 0.0005 90.5 0.0005 0.0005 105.5 0.0004 0.0004 123.5 0.0004 0.0004 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0004 0.0004 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0004 0.0004 1787.0 0.0004 0.0004 1945.0 0.0004 0.0004 2119.0 0.0004 0.0004 2369.0 0.0004 0.0004 2643.5 0.0004 0.0004 2945.0 0.0004 0.0004 3276.5 0.0004 0.0004 -1.4 1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.6 1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.8 2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.0 2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.2 2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.4 2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.6 2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.8 3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.0 3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.5 4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.0 4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.4 5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -5.0 5.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -[RelativePtEC1] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --5.0 -4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.4 -4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.0 -3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.5 -3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.0 -2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.8 -2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.6 -2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.4 -2.2 132 9.0 -0.0089 -0.0089 11.0 -0.0089 -0.0089 13.5 -0.0089 -0.0089 16.5 -0.0089 -0.0089 19.5 -0.0089 -0.0089 22.5 -0.0089 -0.0089 26.0 -0.0089 -0.0089 30.0 -0.0089 -0.0089 34.5 -0.0089 -0.0089 40.0 -0.0089 -0.0089 46.0 -0.0089 -0.0089 52.5 -0.0086 -0.0086 60.0 -0.0079 -0.0079 69.0 -0.0072 -0.0072 79.0 -0.0064 -0.0064 90.5 -0.0057 -0.0057 105.5 -0.0049 -0.0049 123.5 -0.0040 -0.0040 143.0 -0.0032 -0.0032 163.5 -0.0025 -0.0025 185.0 -0.0018 -0.0018 208.0 -0.0011 -0.0011 232.5 -0.0005 -0.0005 258.5 0.0001 0.0001 286.0 0.0006 0.0006 331.0 0.0014 0.0014 396.0 0.0025 0.0025 468.5 0.0034 0.0034 549.5 0.0043 0.0043 639.0 0.0047 0.0047 738.0 0.0047 0.0047 847.5 0.0047 0.0047 968.5 0.0047 0.0047 1102.0 0.0047 0.0047 1249.5 0.0047 0.0047 1412.0 0.0047 0.0047 1590.5 0.0047 0.0047 1787.0 0.0047 0.0047 1945.0 0.0047 0.0047 2119.0 0.0047 0.0047 2369.0 0.0047 0.0047 2643.5 0.0047 0.0047 2945.0 0.0047 0.0047 3276.5 0.0047 0.0047 --2.2 -2.0 132 9.0 -0.0090 -0.0090 11.0 -0.0090 -0.0090 13.5 -0.0090 -0.0090 16.5 -0.0090 -0.0090 19.5 -0.0090 -0.0090 22.5 -0.0090 -0.0090 26.0 -0.0090 -0.0090 30.0 -0.0090 -0.0090 34.5 -0.0090 -0.0090 40.0 -0.0090 -0.0090 46.0 -0.0090 -0.0090 52.5 -0.0087 -0.0087 60.0 -0.0080 -0.0080 69.0 -0.0073 -0.0073 79.0 -0.0066 -0.0066 90.5 -0.0059 -0.0059 105.5 -0.0051 -0.0051 123.5 -0.0042 -0.0042 143.0 -0.0035 -0.0035 163.5 -0.0028 -0.0028 185.0 -0.0021 -0.0021 208.0 -0.0015 -0.0015 232.5 -0.0009 -0.0009 258.5 -0.0003 -0.0003 286.0 0.0002 0.0002 331.0 0.0010 0.0010 396.0 0.0020 0.0020 468.5 0.0029 0.0029 549.5 0.0038 0.0038 639.0 0.0046 0.0046 738.0 0.0054 0.0054 847.5 0.0058 0.0058 968.5 0.0058 0.0058 1102.0 0.0058 0.0058 1249.5 0.0058 0.0058 1412.0 0.0058 0.0058 1590.5 0.0058 0.0058 1787.0 0.0058 0.0058 1945.0 0.0058 0.0058 2119.0 0.0058 0.0058 2369.0 0.0058 0.0058 2643.5 0.0058 0.0058 2945.0 0.0058 0.0058 3276.5 0.0058 0.0058 --2.0 -1.8 132 9.0 -0.0054 -0.0054 11.0 -0.0054 -0.0054 13.5 -0.0054 -0.0054 16.5 -0.0054 -0.0054 19.5 -0.0054 -0.0054 22.5 -0.0054 -0.0054 26.0 -0.0054 -0.0054 30.0 -0.0054 -0.0054 34.5 -0.0054 -0.0054 40.0 -0.0054 -0.0054 46.0 -0.0054 -0.0054 52.5 -0.0053 -0.0053 60.0 -0.0049 -0.0049 69.0 -0.0045 -0.0045 79.0 -0.0041 -0.0041 90.5 -0.0037 -0.0037 105.5 -0.0032 -0.0032 123.5 -0.0027 -0.0027 143.0 -0.0023 -0.0023 163.5 -0.0019 -0.0019 185.0 -0.0015 -0.0015 208.0 -0.0012 -0.0012 232.5 -0.0009 -0.0009 258.5 -0.0006 -0.0006 286.0 -0.0003 -0.0003 331.0 0.0002 0.0002 396.0 0.0007 0.0007 468.5 0.0012 0.0012 549.5 0.0017 0.0017 639.0 0.0022 0.0022 738.0 0.0026 0.0026 847.5 0.0028 0.0028 968.5 0.0028 0.0028 1102.0 0.0028 0.0028 1249.5 0.0028 0.0028 1412.0 0.0028 0.0028 1590.5 0.0028 0.0028 1787.0 0.0028 0.0028 1945.0 0.0028 0.0028 2119.0 0.0028 0.0028 2369.0 0.0028 0.0028 2643.5 0.0028 0.0028 2945.0 0.0028 0.0028 3276.5 0.0028 0.0028 --1.8 -1.6 132 9.0 -0.0071 -0.0071 11.0 -0.0071 -0.0071 13.5 -0.0071 -0.0071 16.5 -0.0071 -0.0071 19.5 -0.0071 -0.0071 22.5 -0.0071 -0.0071 26.0 -0.0071 -0.0071 30.0 -0.0071 -0.0071 34.5 -0.0071 -0.0071 40.0 -0.0071 -0.0071 46.0 -0.0071 -0.0071 52.5 -0.0069 -0.0069 60.0 -0.0064 -0.0064 69.0 -0.0059 -0.0059 79.0 -0.0054 -0.0054 90.5 -0.0049 -0.0049 105.5 -0.0043 -0.0043 123.5 -0.0037 -0.0037 143.0 -0.0031 -0.0031 163.5 -0.0026 -0.0026 185.0 -0.0022 -0.0022 208.0 -0.0017 -0.0017 232.5 -0.0013 -0.0013 258.5 -0.0009 -0.0009 286.0 -0.0005 -0.0005 331.0 0.0001 0.0001 396.0 0.0008 0.0008 468.5 0.0014 0.0014 549.5 0.0020 0.0020 639.0 0.0026 0.0026 738.0 0.0032 0.0032 847.5 0.0037 0.0037 968.5 0.0042 0.0042 1102.0 0.0047 0.0047 1249.5 0.0047 0.0047 1412.0 0.0047 0.0047 1590.5 0.0047 0.0047 1787.0 0.0047 0.0047 1945.0 0.0047 0.0047 2119.0 0.0047 0.0047 2369.0 0.0047 0.0047 2643.5 0.0047 0.0047 2945.0 0.0047 0.0047 3276.5 0.0047 0.0047 --1.6 -1.4 132 9.0 -0.0040 -0.0040 11.0 -0.0040 -0.0040 13.5 -0.0040 -0.0040 16.5 -0.0040 -0.0040 19.5 -0.0040 -0.0040 22.5 -0.0040 -0.0040 26.0 -0.0040 -0.0040 30.0 -0.0040 -0.0040 34.5 -0.0040 -0.0040 40.0 -0.0040 -0.0040 46.0 -0.0040 -0.0040 52.5 -0.0039 -0.0039 60.0 -0.0037 -0.0037 69.0 -0.0034 -0.0034 79.0 -0.0031 -0.0031 90.5 -0.0028 -0.0028 105.5 -0.0025 -0.0025 123.5 -0.0022 -0.0022 143.0 -0.0018 -0.0018 163.5 -0.0016 -0.0016 185.0 -0.0013 -0.0013 208.0 -0.0011 -0.0011 232.5 -0.0008 -0.0008 258.5 -0.0006 -0.0006 286.0 -0.0004 -0.0004 331.0 -0.0001 -0.0001 396.0 0.0003 0.0003 468.5 0.0007 0.0007 549.5 0.0010 0.0010 639.0 0.0013 0.0013 738.0 0.0016 0.0016 847.5 0.0019 0.0019 968.5 0.0022 0.0022 1102.0 0.0024 0.0024 1249.5 0.0024 0.0024 1412.0 0.0024 0.0024 1590.5 0.0024 0.0024 1787.0 0.0024 0.0024 1945.0 0.0024 0.0024 2119.0 0.0024 0.0024 2369.0 0.0024 0.0024 2643.5 0.0024 0.0024 2945.0 0.0024 0.0024 3276.5 0.0024 0.0024 --1.4 -1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.2 -1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.0 -0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.8 -0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.6 -0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.4 -0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.2 0.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.0 0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.2 0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.4 0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.6 0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.8 1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.0 1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.2 1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.4 1.6 132 9.0 -0.0040 -0.0040 11.0 -0.0040 -0.0040 13.5 -0.0040 -0.0040 16.5 -0.0040 -0.0040 19.5 -0.0040 -0.0040 22.5 -0.0040 -0.0040 26.0 -0.0040 -0.0040 30.0 -0.0040 -0.0040 34.5 -0.0040 -0.0040 40.0 -0.0040 -0.0040 46.0 -0.0040 -0.0040 52.5 -0.0039 -0.0039 60.0 -0.0037 -0.0037 69.0 -0.0034 -0.0034 79.0 -0.0031 -0.0031 90.5 -0.0028 -0.0028 105.5 -0.0025 -0.0025 123.5 -0.0022 -0.0022 143.0 -0.0018 -0.0018 163.5 -0.0016 -0.0016 185.0 -0.0013 -0.0013 208.0 -0.0011 -0.0011 232.5 -0.0008 -0.0008 258.5 -0.0006 -0.0006 286.0 -0.0004 -0.0004 331.0 -0.0001 -0.0001 396.0 0.0003 0.0003 468.5 0.0007 0.0007 549.5 0.0010 0.0010 639.0 0.0013 0.0013 738.0 0.0016 0.0016 847.5 0.0019 0.0019 968.5 0.0022 0.0022 1102.0 0.0024 0.0024 1249.5 0.0024 0.0024 1412.0 0.0024 0.0024 1590.5 0.0024 0.0024 1787.0 0.0024 0.0024 1945.0 0.0024 0.0024 2119.0 0.0024 0.0024 2369.0 0.0024 0.0024 2643.5 0.0024 0.0024 2945.0 0.0024 0.0024 3276.5 0.0024 0.0024 -1.6 1.8 132 9.0 -0.0071 -0.0071 11.0 -0.0071 -0.0071 13.5 -0.0071 -0.0071 16.5 -0.0071 -0.0071 19.5 -0.0071 -0.0071 22.5 -0.0071 -0.0071 26.0 -0.0071 -0.0071 30.0 -0.0071 -0.0071 34.5 -0.0071 -0.0071 40.0 -0.0071 -0.0071 46.0 -0.0071 -0.0071 52.5 -0.0069 -0.0069 60.0 -0.0064 -0.0064 69.0 -0.0059 -0.0059 79.0 -0.0054 -0.0054 90.5 -0.0049 -0.0049 105.5 -0.0043 -0.0043 123.5 -0.0037 -0.0037 143.0 -0.0031 -0.0031 163.5 -0.0026 -0.0026 185.0 -0.0022 -0.0022 208.0 -0.0017 -0.0017 232.5 -0.0013 -0.0013 258.5 -0.0009 -0.0009 286.0 -0.0005 -0.0005 331.0 0.0001 0.0001 396.0 0.0008 0.0008 468.5 0.0014 0.0014 549.5 0.0020 0.0020 639.0 0.0026 0.0026 738.0 0.0032 0.0032 847.5 0.0037 0.0037 968.5 0.0042 0.0042 1102.0 0.0047 0.0047 1249.5 0.0047 0.0047 1412.0 0.0047 0.0047 1590.5 0.0047 0.0047 1787.0 0.0047 0.0047 1945.0 0.0047 0.0047 2119.0 0.0047 0.0047 2369.0 0.0047 0.0047 2643.5 0.0047 0.0047 2945.0 0.0047 0.0047 3276.5 0.0047 0.0047 -1.8 2.0 132 9.0 -0.0054 -0.0054 11.0 -0.0054 -0.0054 13.5 -0.0054 -0.0054 16.5 -0.0054 -0.0054 19.5 -0.0054 -0.0054 22.5 -0.0054 -0.0054 26.0 -0.0054 -0.0054 30.0 -0.0054 -0.0054 34.5 -0.0054 -0.0054 40.0 -0.0054 -0.0054 46.0 -0.0054 -0.0054 52.5 -0.0053 -0.0053 60.0 -0.0049 -0.0049 69.0 -0.0045 -0.0045 79.0 -0.0041 -0.0041 90.5 -0.0037 -0.0037 105.5 -0.0032 -0.0032 123.5 -0.0027 -0.0027 143.0 -0.0023 -0.0023 163.5 -0.0019 -0.0019 185.0 -0.0015 -0.0015 208.0 -0.0012 -0.0012 232.5 -0.0009 -0.0009 258.5 -0.0006 -0.0006 286.0 -0.0003 -0.0003 331.0 0.0002 0.0002 396.0 0.0007 0.0007 468.5 0.0012 0.0012 549.5 0.0017 0.0017 639.0 0.0022 0.0022 738.0 0.0026 0.0026 847.5 0.0028 0.0028 968.5 0.0028 0.0028 1102.0 0.0028 0.0028 1249.5 0.0028 0.0028 1412.0 0.0028 0.0028 1590.5 0.0028 0.0028 1787.0 0.0028 0.0028 1945.0 0.0028 0.0028 2119.0 0.0028 0.0028 2369.0 0.0028 0.0028 2643.5 0.0028 0.0028 2945.0 0.0028 0.0028 3276.5 0.0028 0.0028 -2.0 2.2 132 9.0 -0.0090 -0.0090 11.0 -0.0090 -0.0090 13.5 -0.0090 -0.0090 16.5 -0.0090 -0.0090 19.5 -0.0090 -0.0090 22.5 -0.0090 -0.0090 26.0 -0.0090 -0.0090 30.0 -0.0090 -0.0090 34.5 -0.0090 -0.0090 40.0 -0.0090 -0.0090 46.0 -0.0090 -0.0090 52.5 -0.0087 -0.0087 60.0 -0.0080 -0.0080 69.0 -0.0073 -0.0073 79.0 -0.0066 -0.0066 90.5 -0.0059 -0.0059 105.5 -0.0051 -0.0051 123.5 -0.0042 -0.0042 143.0 -0.0035 -0.0035 163.5 -0.0028 -0.0028 185.0 -0.0021 -0.0021 208.0 -0.0015 -0.0015 232.5 -0.0009 -0.0009 258.5 -0.0003 -0.0003 286.0 0.0002 0.0002 331.0 0.0010 0.0010 396.0 0.0020 0.0020 468.5 0.0029 0.0029 549.5 0.0038 0.0038 639.0 0.0046 0.0046 738.0 0.0054 0.0054 847.5 0.0058 0.0058 968.5 0.0058 0.0058 1102.0 0.0058 0.0058 1249.5 0.0058 0.0058 1412.0 0.0058 0.0058 1590.5 0.0058 0.0058 1787.0 0.0058 0.0058 1945.0 0.0058 0.0058 2119.0 0.0058 0.0058 2369.0 0.0058 0.0058 2643.5 0.0058 0.0058 2945.0 0.0058 0.0058 3276.5 0.0058 0.0058 -2.2 2.4 132 9.0 -0.0089 -0.0089 11.0 -0.0089 -0.0089 13.5 -0.0089 -0.0089 16.5 -0.0089 -0.0089 19.5 -0.0089 -0.0089 22.5 -0.0089 -0.0089 26.0 -0.0089 -0.0089 30.0 -0.0089 -0.0089 34.5 -0.0089 -0.0089 40.0 -0.0089 -0.0089 46.0 -0.0089 -0.0089 52.5 -0.0086 -0.0086 60.0 -0.0079 -0.0079 69.0 -0.0072 -0.0072 79.0 -0.0064 -0.0064 90.5 -0.0057 -0.0057 105.5 -0.0049 -0.0049 123.5 -0.0040 -0.0040 143.0 -0.0032 -0.0032 163.5 -0.0025 -0.0025 185.0 -0.0018 -0.0018 208.0 -0.0011 -0.0011 232.5 -0.0005 -0.0005 258.5 0.0001 0.0001 286.0 0.0006 0.0006 331.0 0.0014 0.0014 396.0 0.0025 0.0025 468.5 0.0034 0.0034 549.5 0.0043 0.0043 639.0 0.0047 0.0047 738.0 0.0047 0.0047 847.5 0.0047 0.0047 968.5 0.0047 0.0047 1102.0 0.0047 0.0047 1249.5 0.0047 0.0047 1412.0 0.0047 0.0047 1590.5 0.0047 0.0047 1787.0 0.0047 0.0047 1945.0 0.0047 0.0047 2119.0 0.0047 0.0047 2369.0 0.0047 0.0047 2643.5 0.0047 0.0047 2945.0 0.0047 0.0047 3276.5 0.0047 0.0047 -2.4 2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.6 2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.8 3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.0 3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.5 4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.0 4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.4 5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -5.0 5.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -[RelativePtEC2] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --5.0 -4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.4 -4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.0 -3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.5 -3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.0 -2.8 132 9.0 0.0077 0.0077 11.0 0.0077 0.0077 13.5 0.0077 0.0077 16.5 0.0077 0.0077 19.5 0.0077 0.0077 22.5 0.0077 0.0077 26.0 0.0077 0.0077 30.0 0.0077 0.0077 34.5 0.0077 0.0077 40.0 0.0077 0.0077 46.0 0.0077 0.0077 52.5 0.0074 0.0074 60.0 0.0064 0.0064 69.0 0.0054 0.0054 79.0 0.0045 0.0045 90.5 0.0035 0.0035 105.5 0.0024 0.0024 123.5 0.0013 0.0013 143.0 0.0003 0.0003 163.5 -0.0006 -0.0006 185.0 -0.0015 -0.0015 208.0 -0.0023 -0.0023 232.5 -0.0030 -0.0030 258.5 -0.0038 -0.0038 286.0 -0.0045 -0.0045 331.0 -0.0051 -0.0051 396.0 -0.0051 -0.0051 468.5 -0.0051 -0.0051 549.5 -0.0051 -0.0051 639.0 -0.0051 -0.0051 738.0 -0.0051 -0.0051 847.5 -0.0051 -0.0051 968.5 -0.0051 -0.0051 1102.0 -0.0051 -0.0051 1249.5 -0.0051 -0.0051 1412.0 -0.0051 -0.0051 1590.5 -0.0051 -0.0051 1787.0 -0.0051 -0.0051 1945.0 -0.0051 -0.0051 2119.0 -0.0051 -0.0051 2369.0 -0.0051 -0.0051 2643.5 -0.0051 -0.0051 2945.0 -0.0051 -0.0051 3276.5 -0.0051 -0.0051 --2.8 -2.6 132 9.0 -0.0151 -0.0151 11.0 -0.0151 -0.0151 13.5 -0.0151 -0.0151 16.5 -0.0151 -0.0151 19.5 -0.0151 -0.0151 22.5 -0.0151 -0.0151 26.0 -0.0151 -0.0151 30.0 -0.0151 -0.0151 34.5 -0.0151 -0.0151 40.0 -0.0151 -0.0151 46.0 -0.0151 -0.0151 52.5 -0.0147 -0.0147 60.0 -0.0132 -0.0132 69.0 -0.0117 -0.0117 79.0 -0.0102 -0.0102 90.5 -0.0087 -0.0087 105.5 -0.0070 -0.0070 123.5 -0.0053 -0.0053 143.0 -0.0036 -0.0036 163.5 -0.0021 -0.0021 185.0 -0.0007 -0.0007 208.0 0.0006 0.0006 232.5 0.0019 0.0019 258.5 0.0031 0.0031 286.0 0.0043 0.0043 331.0 0.0060 0.0060 396.0 0.0081 0.0081 468.5 0.0091 0.0091 549.5 0.0091 0.0091 639.0 0.0091 0.0091 738.0 0.0091 0.0091 847.5 0.0091 0.0091 968.5 0.0091 0.0091 1102.0 0.0091 0.0091 1249.5 0.0091 0.0091 1412.0 0.0091 0.0091 1590.5 0.0091 0.0091 1787.0 0.0091 0.0091 1945.0 0.0091 0.0091 2119.0 0.0091 0.0091 2369.0 0.0091 0.0091 2643.5 0.0091 0.0091 2945.0 0.0091 0.0091 3276.5 0.0091 0.0091 --2.6 -2.4 132 9.0 -0.0166 -0.0166 11.0 -0.0166 -0.0166 13.5 -0.0166 -0.0166 16.5 -0.0166 -0.0166 19.5 -0.0166 -0.0166 22.5 -0.0166 -0.0166 26.0 -0.0166 -0.0166 30.0 -0.0166 -0.0166 34.5 -0.0166 -0.0166 40.0 -0.0166 -0.0166 46.0 -0.0166 -0.0166 52.5 -0.0161 -0.0161 60.0 -0.0146 -0.0146 69.0 -0.0130 -0.0130 79.0 -0.0114 -0.0114 90.5 -0.0099 -0.0099 105.5 -0.0081 -0.0081 123.5 -0.0062 -0.0062 143.0 -0.0045 -0.0045 163.5 -0.0029 -0.0029 185.0 -0.0014 -0.0014 208.0 0.0000 0.0000 232.5 0.0014 0.0014 258.5 0.0027 0.0027 286.0 0.0039 0.0039 331.0 0.0058 0.0058 396.0 0.0080 0.0080 468.5 0.0095 0.0095 549.5 0.0103 0.0103 639.0 0.0106 0.0106 738.0 0.0106 0.0106 847.5 0.0106 0.0106 968.5 0.0106 0.0106 1102.0 0.0106 0.0106 1249.5 0.0106 0.0106 1412.0 0.0106 0.0106 1590.5 0.0106 0.0106 1787.0 0.0106 0.0106 1945.0 0.0106 0.0106 2119.0 0.0106 0.0106 2369.0 0.0106 0.0106 2643.5 0.0106 0.0106 2945.0 0.0106 0.0106 3276.5 0.0106 0.0106 --2.4 -2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.2 -2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.0 -1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.8 -1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.6 -1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.4 -1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.2 -1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.0 -0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.8 -0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.6 -0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.4 -0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.2 0.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.0 0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.2 0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.4 0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.6 0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.8 1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.0 1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.2 1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.4 1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.6 1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.8 2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.0 2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.2 2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.4 2.6 132 9.0 -0.0166 -0.0166 11.0 -0.0166 -0.0166 13.5 -0.0166 -0.0166 16.5 -0.0166 -0.0166 19.5 -0.0166 -0.0166 22.5 -0.0166 -0.0166 26.0 -0.0166 -0.0166 30.0 -0.0166 -0.0166 34.5 -0.0166 -0.0166 40.0 -0.0166 -0.0166 46.0 -0.0166 -0.0166 52.5 -0.0161 -0.0161 60.0 -0.0146 -0.0146 69.0 -0.0130 -0.0130 79.0 -0.0114 -0.0114 90.5 -0.0099 -0.0099 105.5 -0.0081 -0.0081 123.5 -0.0062 -0.0062 143.0 -0.0045 -0.0045 163.5 -0.0029 -0.0029 185.0 -0.0014 -0.0014 208.0 0.0000 0.0000 232.5 0.0014 0.0014 258.5 0.0027 0.0027 286.0 0.0039 0.0039 331.0 0.0058 0.0058 396.0 0.0080 0.0080 468.5 0.0095 0.0095 549.5 0.0103 0.0103 639.0 0.0106 0.0106 738.0 0.0106 0.0106 847.5 0.0106 0.0106 968.5 0.0106 0.0106 1102.0 0.0106 0.0106 1249.5 0.0106 0.0106 1412.0 0.0106 0.0106 1590.5 0.0106 0.0106 1787.0 0.0106 0.0106 1945.0 0.0106 0.0106 2119.0 0.0106 0.0106 2369.0 0.0106 0.0106 2643.5 0.0106 0.0106 2945.0 0.0106 0.0106 3276.5 0.0106 0.0106 -2.6 2.8 132 9.0 -0.0151 -0.0151 11.0 -0.0151 -0.0151 13.5 -0.0151 -0.0151 16.5 -0.0151 -0.0151 19.5 -0.0151 -0.0151 22.5 -0.0151 -0.0151 26.0 -0.0151 -0.0151 30.0 -0.0151 -0.0151 34.5 -0.0151 -0.0151 40.0 -0.0151 -0.0151 46.0 -0.0151 -0.0151 52.5 -0.0147 -0.0147 60.0 -0.0132 -0.0132 69.0 -0.0117 -0.0117 79.0 -0.0102 -0.0102 90.5 -0.0087 -0.0087 105.5 -0.0070 -0.0070 123.5 -0.0053 -0.0053 143.0 -0.0036 -0.0036 163.5 -0.0021 -0.0021 185.0 -0.0007 -0.0007 208.0 0.0006 0.0006 232.5 0.0019 0.0019 258.5 0.0031 0.0031 286.0 0.0043 0.0043 331.0 0.0060 0.0060 396.0 0.0081 0.0081 468.5 0.0091 0.0091 549.5 0.0091 0.0091 639.0 0.0091 0.0091 738.0 0.0091 0.0091 847.5 0.0091 0.0091 968.5 0.0091 0.0091 1102.0 0.0091 0.0091 1249.5 0.0091 0.0091 1412.0 0.0091 0.0091 1590.5 0.0091 0.0091 1787.0 0.0091 0.0091 1945.0 0.0091 0.0091 2119.0 0.0091 0.0091 2369.0 0.0091 0.0091 2643.5 0.0091 0.0091 2945.0 0.0091 0.0091 3276.5 0.0091 0.0091 -2.8 3.0 132 9.0 0.0077 0.0077 11.0 0.0077 0.0077 13.5 0.0077 0.0077 16.5 0.0077 0.0077 19.5 0.0077 0.0077 22.5 0.0077 0.0077 26.0 0.0077 0.0077 30.0 0.0077 0.0077 34.5 0.0077 0.0077 40.0 0.0077 0.0077 46.0 0.0077 0.0077 52.5 0.0074 0.0074 60.0 0.0064 0.0064 69.0 0.0054 0.0054 79.0 0.0045 0.0045 90.5 0.0035 0.0035 105.5 0.0024 0.0024 123.5 0.0013 0.0013 143.0 0.0003 0.0003 163.5 -0.0006 -0.0006 185.0 -0.0015 -0.0015 208.0 -0.0023 -0.0023 232.5 -0.0030 -0.0030 258.5 -0.0038 -0.0038 286.0 -0.0045 -0.0045 331.0 -0.0051 -0.0051 396.0 -0.0051 -0.0051 468.5 -0.0051 -0.0051 549.5 -0.0051 -0.0051 639.0 -0.0051 -0.0051 738.0 -0.0051 -0.0051 847.5 -0.0051 -0.0051 968.5 -0.0051 -0.0051 1102.0 -0.0051 -0.0051 1249.5 -0.0051 -0.0051 1412.0 -0.0051 -0.0051 1590.5 -0.0051 -0.0051 1787.0 -0.0051 -0.0051 1945.0 -0.0051 -0.0051 2119.0 -0.0051 -0.0051 2369.0 -0.0051 -0.0051 2643.5 -0.0051 -0.0051 2945.0 -0.0051 -0.0051 3276.5 -0.0051 -0.0051 -3.0 3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.5 4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.0 4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.4 5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -5.0 5.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -[RelativePtHF] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 -0.0210 -0.0210 11.0 -0.0210 -0.0210 13.5 -0.0210 -0.0210 16.5 -0.0210 -0.0210 19.5 -0.0210 -0.0210 22.5 -0.0210 -0.0210 26.0 -0.0210 -0.0210 30.0 -0.0210 -0.0210 34.5 -0.0210 -0.0210 40.0 -0.0210 -0.0210 46.0 -0.0210 -0.0210 52.5 -0.0210 -0.0210 60.0 -0.0210 -0.0210 69.0 -0.0210 -0.0210 79.0 -0.0210 -0.0210 90.5 -0.0210 -0.0210 105.5 -0.0210 -0.0210 123.5 -0.0210 -0.0210 143.0 -0.0210 -0.0210 163.5 -0.0210 -0.0210 185.0 -0.0210 -0.0210 208.0 -0.0210 -0.0210 232.5 -0.0210 -0.0210 258.5 -0.0210 -0.0210 286.0 -0.0210 -0.0210 331.0 -0.0210 -0.0210 396.0 -0.0210 -0.0210 468.5 -0.0210 -0.0210 549.5 -0.0210 -0.0210 639.0 -0.0210 -0.0210 738.0 -0.0210 -0.0210 847.5 -0.0210 -0.0210 968.5 -0.0210 -0.0210 1102.0 -0.0210 -0.0210 1249.5 -0.0210 -0.0210 1412.0 -0.0210 -0.0210 1590.5 -0.0210 -0.0210 1787.0 -0.0210 -0.0210 1945.0 -0.0210 -0.0210 2119.0 -0.0210 -0.0210 2369.0 -0.0210 -0.0210 2643.5 -0.0210 -0.0210 2945.0 -0.0210 -0.0210 3276.5 -0.0210 -0.0210 --5.0 -4.4 132 9.0 -0.0210 -0.0210 11.0 -0.0210 -0.0210 13.5 -0.0210 -0.0210 16.5 -0.0210 -0.0210 19.5 -0.0210 -0.0210 22.5 -0.0210 -0.0210 26.0 -0.0210 -0.0210 30.0 -0.0210 -0.0210 34.5 -0.0210 -0.0210 40.0 -0.0210 -0.0210 46.0 -0.0210 -0.0210 52.5 -0.0194 -0.0194 60.0 -0.0144 -0.0144 69.0 -0.0090 -0.0090 79.0 -0.0069 -0.0069 90.5 -0.0069 -0.0069 105.5 -0.0069 -0.0069 123.5 -0.0069 -0.0069 143.0 -0.0069 -0.0069 163.5 -0.0069 -0.0069 185.0 -0.0069 -0.0069 208.0 -0.0069 -0.0069 232.5 -0.0069 -0.0069 258.5 -0.0069 -0.0069 286.0 -0.0069 -0.0069 331.0 -0.0069 -0.0069 396.0 -0.0069 -0.0069 468.5 -0.0069 -0.0069 549.5 -0.0069 -0.0069 639.0 -0.0069 -0.0069 738.0 -0.0069 -0.0069 847.5 -0.0069 -0.0069 968.5 -0.0069 -0.0069 1102.0 -0.0069 -0.0069 1249.5 -0.0069 -0.0069 1412.0 -0.0069 -0.0069 1590.5 -0.0069 -0.0069 1787.0 -0.0069 -0.0069 1945.0 -0.0069 -0.0069 2119.0 -0.0069 -0.0069 2369.0 -0.0069 -0.0069 2643.5 -0.0069 -0.0069 2945.0 -0.0069 -0.0069 3276.5 -0.0069 -0.0069 --4.4 -4.0 132 9.0 -0.0210 -0.0210 11.0 -0.0210 -0.0210 13.5 -0.0210 -0.0210 16.5 -0.0210 -0.0210 19.5 -0.0210 -0.0210 22.5 -0.0210 -0.0210 26.0 -0.0210 -0.0210 30.0 -0.0210 -0.0210 34.5 -0.0210 -0.0210 40.0 -0.0210 -0.0210 46.0 -0.0210 -0.0210 52.5 -0.0194 -0.0194 60.0 -0.0144 -0.0144 69.0 -0.0090 -0.0090 79.0 -0.0037 -0.0037 90.5 0.0017 0.0017 105.5 0.0080 0.0080 123.5 0.0134 0.0134 143.0 0.0134 0.0134 163.5 0.0134 0.0134 185.0 0.0134 0.0134 208.0 0.0134 0.0134 232.5 0.0134 0.0134 258.5 0.0134 0.0134 286.0 0.0134 0.0134 331.0 0.0134 0.0134 396.0 0.0134 0.0134 468.5 0.0134 0.0134 549.5 0.0134 0.0134 639.0 0.0134 0.0134 738.0 0.0134 0.0134 847.5 0.0134 0.0134 968.5 0.0134 0.0134 1102.0 0.0134 0.0134 1249.5 0.0134 0.0134 1412.0 0.0134 0.0134 1590.5 0.0134 0.0134 1787.0 0.0134 0.0134 1945.0 0.0134 0.0134 2119.0 0.0134 0.0134 2369.0 0.0134 0.0134 2643.5 0.0134 0.0134 2945.0 0.0134 0.0134 3276.5 0.0134 0.0134 --4.0 -3.5 132 9.0 -0.0210 -0.0210 11.0 -0.0210 -0.0210 13.5 -0.0210 -0.0210 16.5 -0.0210 -0.0210 19.5 -0.0210 -0.0210 22.5 -0.0210 -0.0210 26.0 -0.0210 -0.0210 30.0 -0.0210 -0.0210 34.5 -0.0210 -0.0210 40.0 -0.0210 -0.0210 46.0 -0.0210 -0.0210 52.5 -0.0194 -0.0194 60.0 -0.0144 -0.0144 69.0 -0.0090 -0.0090 79.0 -0.0037 -0.0037 90.5 0.0017 0.0017 105.5 0.0080 0.0080 123.5 0.0146 0.0146 143.0 0.0155 0.0155 163.5 0.0155 0.0155 185.0 0.0155 0.0155 208.0 0.0155 0.0155 232.5 0.0155 0.0155 258.5 0.0155 0.0155 286.0 0.0155 0.0155 331.0 0.0155 0.0155 396.0 0.0155 0.0155 468.5 0.0155 0.0155 549.5 0.0155 0.0155 639.0 0.0155 0.0155 738.0 0.0155 0.0155 847.5 0.0155 0.0155 968.5 0.0155 0.0155 1102.0 0.0155 0.0155 1249.5 0.0155 0.0155 1412.0 0.0155 0.0155 1590.5 0.0155 0.0155 1787.0 0.0155 0.0155 1945.0 0.0155 0.0155 2119.0 0.0155 0.0155 2369.0 0.0155 0.0155 2643.5 0.0155 0.0155 2945.0 0.0155 0.0155 3276.5 0.0155 0.0155 --3.5 -3.0 132 9.0 0.0050 0.0050 11.0 0.0050 0.0050 13.5 0.0050 0.0050 16.5 0.0050 0.0050 19.5 0.0050 0.0050 22.5 0.0050 0.0050 26.0 0.0050 0.0050 30.0 0.0050 0.0050 34.5 0.0050 0.0050 40.0 0.0050 0.0050 46.0 0.0050 0.0050 52.5 0.0048 0.0048 60.0 0.0041 0.0041 69.0 0.0033 0.0033 79.0 0.0025 0.0025 90.5 0.0018 0.0018 105.5 0.0009 0.0009 123.5 0.0001 0.0001 143.0 -0.0007 -0.0007 163.5 -0.0015 -0.0015 185.0 -0.0022 -0.0022 208.0 -0.0028 -0.0028 232.5 -0.0034 -0.0034 258.5 -0.0034 -0.0034 286.0 -0.0034 -0.0034 331.0 -0.0034 -0.0034 396.0 -0.0034 -0.0034 468.5 -0.0034 -0.0034 549.5 -0.0034 -0.0034 639.0 -0.0034 -0.0034 738.0 -0.0034 -0.0034 847.5 -0.0034 -0.0034 968.5 -0.0034 -0.0034 1102.0 -0.0034 -0.0034 1249.5 -0.0034 -0.0034 1412.0 -0.0034 -0.0034 1590.5 -0.0034 -0.0034 1787.0 -0.0034 -0.0034 1945.0 -0.0034 -0.0034 2119.0 -0.0034 -0.0034 2369.0 -0.0034 -0.0034 2643.5 -0.0034 -0.0034 2945.0 -0.0034 -0.0034 3276.5 -0.0034 -0.0034 --3.0 -2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.8 -2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.6 -2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.4 -2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.2 -2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.0 -1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.8 -1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.6 -1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.4 -1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.2 -1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.0 -0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.8 -0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.6 -0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.4 -0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.2 0.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.0 0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.2 0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.4 0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.6 0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.8 1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.0 1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.2 1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.4 1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.6 1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.8 2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.0 2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.2 2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.4 2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.6 2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.8 3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.0 3.5 132 9.0 0.0050 0.0050 11.0 0.0050 0.0050 13.5 0.0050 0.0050 16.5 0.0050 0.0050 19.5 0.0050 0.0050 22.5 0.0050 0.0050 26.0 0.0050 0.0050 30.0 0.0050 0.0050 34.5 0.0050 0.0050 40.0 0.0050 0.0050 46.0 0.0050 0.0050 52.5 0.0048 0.0048 60.0 0.0041 0.0041 69.0 0.0033 0.0033 79.0 0.0025 0.0025 90.5 0.0018 0.0018 105.5 0.0009 0.0009 123.5 0.0001 0.0001 143.0 -0.0007 -0.0007 163.5 -0.0015 -0.0015 185.0 -0.0022 -0.0022 208.0 -0.0028 -0.0028 232.5 -0.0034 -0.0034 258.5 -0.0034 -0.0034 286.0 -0.0034 -0.0034 331.0 -0.0034 -0.0034 396.0 -0.0034 -0.0034 468.5 -0.0034 -0.0034 549.5 -0.0034 -0.0034 639.0 -0.0034 -0.0034 738.0 -0.0034 -0.0034 847.5 -0.0034 -0.0034 968.5 -0.0034 -0.0034 1102.0 -0.0034 -0.0034 1249.5 -0.0034 -0.0034 1412.0 -0.0034 -0.0034 1590.5 -0.0034 -0.0034 1787.0 -0.0034 -0.0034 1945.0 -0.0034 -0.0034 2119.0 -0.0034 -0.0034 2369.0 -0.0034 -0.0034 2643.5 -0.0034 -0.0034 2945.0 -0.0034 -0.0034 3276.5 -0.0034 -0.0034 -3.5 4.0 132 9.0 -0.0210 -0.0210 11.0 -0.0210 -0.0210 13.5 -0.0210 -0.0210 16.5 -0.0210 -0.0210 19.5 -0.0210 -0.0210 22.5 -0.0210 -0.0210 26.0 -0.0210 -0.0210 30.0 -0.0210 -0.0210 34.5 -0.0210 -0.0210 40.0 -0.0210 -0.0210 46.0 -0.0210 -0.0210 52.5 -0.0194 -0.0194 60.0 -0.0144 -0.0144 69.0 -0.0090 -0.0090 79.0 -0.0037 -0.0037 90.5 0.0017 0.0017 105.5 0.0080 0.0080 123.5 0.0146 0.0146 143.0 0.0155 0.0155 163.5 0.0155 0.0155 185.0 0.0155 0.0155 208.0 0.0155 0.0155 232.5 0.0155 0.0155 258.5 0.0155 0.0155 286.0 0.0155 0.0155 331.0 0.0155 0.0155 396.0 0.0155 0.0155 468.5 0.0155 0.0155 549.5 0.0155 0.0155 639.0 0.0155 0.0155 738.0 0.0155 0.0155 847.5 0.0155 0.0155 968.5 0.0155 0.0155 1102.0 0.0155 0.0155 1249.5 0.0155 0.0155 1412.0 0.0155 0.0155 1590.5 0.0155 0.0155 1787.0 0.0155 0.0155 1945.0 0.0155 0.0155 2119.0 0.0155 0.0155 2369.0 0.0155 0.0155 2643.5 0.0155 0.0155 2945.0 0.0155 0.0155 3276.5 0.0155 0.0155 -4.0 4.4 132 9.0 -0.0210 -0.0210 11.0 -0.0210 -0.0210 13.5 -0.0210 -0.0210 16.5 -0.0210 -0.0210 19.5 -0.0210 -0.0210 22.5 -0.0210 -0.0210 26.0 -0.0210 -0.0210 30.0 -0.0210 -0.0210 34.5 -0.0210 -0.0210 40.0 -0.0210 -0.0210 46.0 -0.0210 -0.0210 52.5 -0.0194 -0.0194 60.0 -0.0144 -0.0144 69.0 -0.0090 -0.0090 79.0 -0.0037 -0.0037 90.5 0.0017 0.0017 105.5 0.0080 0.0080 123.5 0.0134 0.0134 143.0 0.0134 0.0134 163.5 0.0134 0.0134 185.0 0.0134 0.0134 208.0 0.0134 0.0134 232.5 0.0134 0.0134 258.5 0.0134 0.0134 286.0 0.0134 0.0134 331.0 0.0134 0.0134 396.0 0.0134 0.0134 468.5 0.0134 0.0134 549.5 0.0134 0.0134 639.0 0.0134 0.0134 738.0 0.0134 0.0134 847.5 0.0134 0.0134 968.5 0.0134 0.0134 1102.0 0.0134 0.0134 1249.5 0.0134 0.0134 1412.0 0.0134 0.0134 1590.5 0.0134 0.0134 1787.0 0.0134 0.0134 1945.0 0.0134 0.0134 2119.0 0.0134 0.0134 2369.0 0.0134 0.0134 2643.5 0.0134 0.0134 2945.0 0.0134 0.0134 3276.5 0.0134 0.0134 -4.4 5.0 132 9.0 -0.0210 -0.0210 11.0 -0.0210 -0.0210 13.5 -0.0210 -0.0210 16.5 -0.0210 -0.0210 19.5 -0.0210 -0.0210 22.5 -0.0210 -0.0210 26.0 -0.0210 -0.0210 30.0 -0.0210 -0.0210 34.5 -0.0210 -0.0210 40.0 -0.0210 -0.0210 46.0 -0.0210 -0.0210 52.5 -0.0194 -0.0194 60.0 -0.0144 -0.0144 69.0 -0.0090 -0.0090 79.0 -0.0069 -0.0069 90.5 -0.0069 -0.0069 105.5 -0.0069 -0.0069 123.5 -0.0069 -0.0069 143.0 -0.0069 -0.0069 163.5 -0.0069 -0.0069 185.0 -0.0069 -0.0069 208.0 -0.0069 -0.0069 232.5 -0.0069 -0.0069 258.5 -0.0069 -0.0069 286.0 -0.0069 -0.0069 331.0 -0.0069 -0.0069 396.0 -0.0069 -0.0069 468.5 -0.0069 -0.0069 549.5 -0.0069 -0.0069 639.0 -0.0069 -0.0069 738.0 -0.0069 -0.0069 847.5 -0.0069 -0.0069 968.5 -0.0069 -0.0069 1102.0 -0.0069 -0.0069 1249.5 -0.0069 -0.0069 1412.0 -0.0069 -0.0069 1590.5 -0.0069 -0.0069 1787.0 -0.0069 -0.0069 1945.0 -0.0069 -0.0069 2119.0 -0.0069 -0.0069 2369.0 -0.0069 -0.0069 2643.5 -0.0069 -0.0069 2945.0 -0.0069 -0.0069 3276.5 -0.0069 -0.0069 -5.0 5.4 132 9.0 -0.0210 -0.0210 11.0 -0.0210 -0.0210 13.5 -0.0210 -0.0210 16.5 -0.0210 -0.0210 19.5 -0.0210 -0.0210 22.5 -0.0210 -0.0210 26.0 -0.0210 -0.0210 30.0 -0.0210 -0.0210 34.5 -0.0210 -0.0210 40.0 -0.0210 -0.0210 46.0 -0.0210 -0.0210 52.5 -0.0210 -0.0210 60.0 -0.0210 -0.0210 69.0 -0.0210 -0.0210 79.0 -0.0210 -0.0210 90.5 -0.0210 -0.0210 105.5 -0.0210 -0.0210 123.5 -0.0210 -0.0210 143.0 -0.0210 -0.0210 163.5 -0.0210 -0.0210 185.0 -0.0210 -0.0210 208.0 -0.0210 -0.0210 232.5 -0.0210 -0.0210 258.5 -0.0210 -0.0210 286.0 -0.0210 -0.0210 331.0 -0.0210 -0.0210 396.0 -0.0210 -0.0210 468.5 -0.0210 -0.0210 549.5 -0.0210 -0.0210 639.0 -0.0210 -0.0210 738.0 -0.0210 -0.0210 847.5 -0.0210 -0.0210 968.5 -0.0210 -0.0210 1102.0 -0.0210 -0.0210 1249.5 -0.0210 -0.0210 1412.0 -0.0210 -0.0210 1590.5 -0.0210 -0.0210 1787.0 -0.0210 -0.0210 1945.0 -0.0210 -0.0210 2119.0 -0.0210 -0.0210 2369.0 -0.0210 -0.0210 2643.5 -0.0210 -0.0210 2945.0 -0.0210 -0.0210 3276.5 -0.0210 -0.0210 -[RelativeFSR] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1945.0 0.0150 0.0150 2119.0 0.0150 0.0150 2369.0 0.0150 0.0150 2643.5 0.0150 0.0150 2945.0 0.0150 0.0150 3276.5 0.0150 0.0150 --5.0 -4.4 132 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1945.0 0.0150 0.0150 2119.0 0.0150 0.0150 2369.0 0.0150 0.0150 2643.5 0.0150 0.0150 2945.0 0.0150 0.0150 3276.5 0.0150 0.0150 --4.4 -4.0 132 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1945.0 0.0150 0.0150 2119.0 0.0150 0.0150 2369.0 0.0150 0.0150 2643.5 0.0150 0.0150 2945.0 0.0150 0.0150 3276.5 0.0150 0.0150 --4.0 -3.5 132 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1945.0 0.0150 0.0150 2119.0 0.0150 0.0150 2369.0 0.0150 0.0150 2643.5 0.0150 0.0150 2945.0 0.0150 0.0150 3276.5 0.0150 0.0150 --3.5 -3.0 132 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1945.0 0.0150 0.0150 2119.0 0.0150 0.0150 2369.0 0.0150 0.0150 2643.5 0.0150 0.0150 2945.0 0.0150 0.0150 3276.5 0.0150 0.0150 --3.0 -2.8 132 9.0 0.0082 0.0082 11.0 0.0082 0.0082 13.5 0.0082 0.0082 16.5 0.0082 0.0082 19.5 0.0082 0.0082 22.5 0.0082 0.0082 26.0 0.0082 0.0082 30.0 0.0082 0.0082 34.5 0.0082 0.0082 40.0 0.0082 0.0082 46.0 0.0082 0.0082 52.5 0.0082 0.0082 60.0 0.0082 0.0082 69.0 0.0082 0.0082 79.0 0.0082 0.0082 90.5 0.0082 0.0082 105.5 0.0082 0.0082 123.5 0.0082 0.0082 143.0 0.0082 0.0082 163.5 0.0082 0.0082 185.0 0.0082 0.0082 208.0 0.0082 0.0082 232.5 0.0082 0.0082 258.5 0.0082 0.0082 286.0 0.0082 0.0082 331.0 0.0082 0.0082 396.0 0.0082 0.0082 468.5 0.0082 0.0082 549.5 0.0082 0.0082 639.0 0.0082 0.0082 738.0 0.0082 0.0082 847.5 0.0082 0.0082 968.5 0.0082 0.0082 1102.0 0.0082 0.0082 1249.5 0.0082 0.0082 1412.0 0.0082 0.0082 1590.5 0.0082 0.0082 1787.0 0.0082 0.0082 1945.0 0.0082 0.0082 2119.0 0.0082 0.0082 2369.0 0.0082 0.0082 2643.5 0.0082 0.0082 2945.0 0.0082 0.0082 3276.5 0.0082 0.0082 --2.8 -2.6 132 9.0 0.0055 0.0055 11.0 0.0055 0.0055 13.5 0.0055 0.0055 16.5 0.0055 0.0055 19.5 0.0055 0.0055 22.5 0.0055 0.0055 26.0 0.0055 0.0055 30.0 0.0055 0.0055 34.5 0.0055 0.0055 40.0 0.0055 0.0055 46.0 0.0055 0.0055 52.5 0.0055 0.0055 60.0 0.0055 0.0055 69.0 0.0055 0.0055 79.0 0.0055 0.0055 90.5 0.0055 0.0055 105.5 0.0055 0.0055 123.5 0.0055 0.0055 143.0 0.0055 0.0055 163.5 0.0055 0.0055 185.0 0.0055 0.0055 208.0 0.0055 0.0055 232.5 0.0055 0.0055 258.5 0.0055 0.0055 286.0 0.0055 0.0055 331.0 0.0055 0.0055 396.0 0.0055 0.0055 468.5 0.0055 0.0055 549.5 0.0055 0.0055 639.0 0.0055 0.0055 738.0 0.0055 0.0055 847.5 0.0055 0.0055 968.5 0.0055 0.0055 1102.0 0.0055 0.0055 1249.5 0.0055 0.0055 1412.0 0.0055 0.0055 1590.5 0.0055 0.0055 1787.0 0.0055 0.0055 1945.0 0.0055 0.0055 2119.0 0.0055 0.0055 2369.0 0.0055 0.0055 2643.5 0.0055 0.0055 2945.0 0.0055 0.0055 3276.5 0.0055 0.0055 --2.6 -2.4 132 9.0 0.0037 0.0037 11.0 0.0037 0.0037 13.5 0.0037 0.0037 16.5 0.0037 0.0037 19.5 0.0037 0.0037 22.5 0.0037 0.0037 26.0 0.0037 0.0037 30.0 0.0037 0.0037 34.5 0.0037 0.0037 40.0 0.0037 0.0037 46.0 0.0037 0.0037 52.5 0.0037 0.0037 60.0 0.0037 0.0037 69.0 0.0037 0.0037 79.0 0.0037 0.0037 90.5 0.0037 0.0037 105.5 0.0037 0.0037 123.5 0.0037 0.0037 143.0 0.0037 0.0037 163.5 0.0037 0.0037 185.0 0.0037 0.0037 208.0 0.0037 0.0037 232.5 0.0037 0.0037 258.5 0.0037 0.0037 286.0 0.0037 0.0037 331.0 0.0037 0.0037 396.0 0.0037 0.0037 468.5 0.0037 0.0037 549.5 0.0037 0.0037 639.0 0.0037 0.0037 738.0 0.0037 0.0037 847.5 0.0037 0.0037 968.5 0.0037 0.0037 1102.0 0.0037 0.0037 1249.5 0.0037 0.0037 1412.0 0.0037 0.0037 1590.5 0.0037 0.0037 1787.0 0.0037 0.0037 1945.0 0.0037 0.0037 2119.0 0.0037 0.0037 2369.0 0.0037 0.0037 2643.5 0.0037 0.0037 2945.0 0.0037 0.0037 3276.5 0.0037 0.0037 --2.4 -2.2 132 9.0 0.0024 0.0024 11.0 0.0024 0.0024 13.5 0.0024 0.0024 16.5 0.0024 0.0024 19.5 0.0024 0.0024 22.5 0.0024 0.0024 26.0 0.0024 0.0024 30.0 0.0024 0.0024 34.5 0.0024 0.0024 40.0 0.0024 0.0024 46.0 0.0024 0.0024 52.5 0.0024 0.0024 60.0 0.0024 0.0024 69.0 0.0024 0.0024 79.0 0.0024 0.0024 90.5 0.0024 0.0024 105.5 0.0024 0.0024 123.5 0.0024 0.0024 143.0 0.0024 0.0024 163.5 0.0024 0.0024 185.0 0.0024 0.0024 208.0 0.0024 0.0024 232.5 0.0024 0.0024 258.5 0.0024 0.0024 286.0 0.0024 0.0024 331.0 0.0024 0.0024 396.0 0.0024 0.0024 468.5 0.0024 0.0024 549.5 0.0024 0.0024 639.0 0.0024 0.0024 738.0 0.0024 0.0024 847.5 0.0024 0.0024 968.5 0.0024 0.0024 1102.0 0.0024 0.0024 1249.5 0.0024 0.0024 1412.0 0.0024 0.0024 1590.5 0.0024 0.0024 1787.0 0.0024 0.0024 1945.0 0.0024 0.0024 2119.0 0.0024 0.0024 2369.0 0.0024 0.0024 2643.5 0.0024 0.0024 2945.0 0.0024 0.0024 3276.5 0.0024 0.0024 --2.2 -2.0 132 9.0 0.0016 0.0016 11.0 0.0016 0.0016 13.5 0.0016 0.0016 16.5 0.0016 0.0016 19.5 0.0016 0.0016 22.5 0.0016 0.0016 26.0 0.0016 0.0016 30.0 0.0016 0.0016 34.5 0.0016 0.0016 40.0 0.0016 0.0016 46.0 0.0016 0.0016 52.5 0.0016 0.0016 60.0 0.0016 0.0016 69.0 0.0016 0.0016 79.0 0.0016 0.0016 90.5 0.0016 0.0016 105.5 0.0016 0.0016 123.5 0.0016 0.0016 143.0 0.0016 0.0016 163.5 0.0016 0.0016 185.0 0.0016 0.0016 208.0 0.0016 0.0016 232.5 0.0016 0.0016 258.5 0.0016 0.0016 286.0 0.0016 0.0016 331.0 0.0016 0.0016 396.0 0.0016 0.0016 468.5 0.0016 0.0016 549.5 0.0016 0.0016 639.0 0.0016 0.0016 738.0 0.0016 0.0016 847.5 0.0016 0.0016 968.5 0.0016 0.0016 1102.0 0.0016 0.0016 1249.5 0.0016 0.0016 1412.0 0.0016 0.0016 1590.5 0.0016 0.0016 1787.0 0.0016 0.0016 1945.0 0.0016 0.0016 2119.0 0.0016 0.0016 2369.0 0.0016 0.0016 2643.5 0.0016 0.0016 2945.0 0.0016 0.0016 3276.5 0.0016 0.0016 --2.0 -1.8 132 9.0 0.0011 0.0011 11.0 0.0011 0.0011 13.5 0.0011 0.0011 16.5 0.0011 0.0011 19.5 0.0011 0.0011 22.5 0.0011 0.0011 26.0 0.0011 0.0011 30.0 0.0011 0.0011 34.5 0.0011 0.0011 40.0 0.0011 0.0011 46.0 0.0011 0.0011 52.5 0.0011 0.0011 60.0 0.0011 0.0011 69.0 0.0011 0.0011 79.0 0.0011 0.0011 90.5 0.0011 0.0011 105.5 0.0011 0.0011 123.5 0.0011 0.0011 143.0 0.0011 0.0011 163.5 0.0011 0.0011 185.0 0.0011 0.0011 208.0 0.0011 0.0011 232.5 0.0011 0.0011 258.5 0.0011 0.0011 286.0 0.0011 0.0011 331.0 0.0011 0.0011 396.0 0.0011 0.0011 468.5 0.0011 0.0011 549.5 0.0011 0.0011 639.0 0.0011 0.0011 738.0 0.0011 0.0011 847.5 0.0011 0.0011 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0011 0.0011 1412.0 0.0011 0.0011 1590.5 0.0011 0.0011 1787.0 0.0011 0.0011 1945.0 0.0011 0.0011 2119.0 0.0011 0.0011 2369.0 0.0011 0.0011 2643.5 0.0011 0.0011 2945.0 0.0011 0.0011 3276.5 0.0011 0.0011 --1.8 -1.6 132 9.0 0.0007 0.0007 11.0 0.0007 0.0007 13.5 0.0007 0.0007 16.5 0.0007 0.0007 19.5 0.0007 0.0007 22.5 0.0007 0.0007 26.0 0.0007 0.0007 30.0 0.0007 0.0007 34.5 0.0007 0.0007 40.0 0.0007 0.0007 46.0 0.0007 0.0007 52.5 0.0007 0.0007 60.0 0.0007 0.0007 69.0 0.0007 0.0007 79.0 0.0007 0.0007 90.5 0.0007 0.0007 105.5 0.0007 0.0007 123.5 0.0007 0.0007 143.0 0.0007 0.0007 163.5 0.0007 0.0007 185.0 0.0007 0.0007 208.0 0.0007 0.0007 232.5 0.0007 0.0007 258.5 0.0007 0.0007 286.0 0.0007 0.0007 331.0 0.0007 0.0007 396.0 0.0007 0.0007 468.5 0.0007 0.0007 549.5 0.0007 0.0007 639.0 0.0007 0.0007 738.0 0.0007 0.0007 847.5 0.0007 0.0007 968.5 0.0007 0.0007 1102.0 0.0007 0.0007 1249.5 0.0007 0.0007 1412.0 0.0007 0.0007 1590.5 0.0007 0.0007 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --1.6 -1.4 132 9.0 0.0005 0.0005 11.0 0.0005 0.0005 13.5 0.0005 0.0005 16.5 0.0005 0.0005 19.5 0.0005 0.0005 22.5 0.0005 0.0005 26.0 0.0005 0.0005 30.0 0.0005 0.0005 34.5 0.0005 0.0005 40.0 0.0005 0.0005 46.0 0.0005 0.0005 52.5 0.0005 0.0005 60.0 0.0005 0.0005 69.0 0.0005 0.0005 79.0 0.0005 0.0005 90.5 0.0005 0.0005 105.5 0.0005 0.0005 123.5 0.0005 0.0005 143.0 0.0005 0.0005 163.5 0.0005 0.0005 185.0 0.0005 0.0005 208.0 0.0005 0.0005 232.5 0.0005 0.0005 258.5 0.0005 0.0005 286.0 0.0005 0.0005 331.0 0.0005 0.0005 396.0 0.0005 0.0005 468.5 0.0005 0.0005 549.5 0.0005 0.0005 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1945.0 0.0005 0.0005 2119.0 0.0005 0.0005 2369.0 0.0005 0.0005 2643.5 0.0005 0.0005 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 --1.4 -1.2 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 --1.2 -1.0 132 9.0 0.0002 0.0002 11.0 0.0002 0.0002 13.5 0.0002 0.0002 16.5 0.0002 0.0002 19.5 0.0002 0.0002 22.5 0.0002 0.0002 26.0 0.0002 0.0002 30.0 0.0002 0.0002 34.5 0.0002 0.0002 40.0 0.0002 0.0002 46.0 0.0002 0.0002 52.5 0.0002 0.0002 60.0 0.0002 0.0002 69.0 0.0002 0.0002 79.0 0.0002 0.0002 90.5 0.0002 0.0002 105.5 0.0002 0.0002 123.5 0.0002 0.0002 143.0 0.0002 0.0002 163.5 0.0002 0.0002 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0002 0.0002 258.5 0.0002 0.0002 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0002 0.0002 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0002 0.0002 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1945.0 0.0002 0.0002 2119.0 0.0002 0.0002 2369.0 0.0002 0.0002 2643.5 0.0002 0.0002 2945.0 0.0002 0.0002 3276.5 0.0002 0.0002 --1.0 -0.8 132 9.0 0.0001 0.0001 11.0 0.0001 0.0001 13.5 0.0001 0.0001 16.5 0.0001 0.0001 19.5 0.0001 0.0001 22.5 0.0001 0.0001 26.0 0.0001 0.0001 30.0 0.0001 0.0001 34.5 0.0001 0.0001 40.0 0.0001 0.0001 46.0 0.0001 0.0001 52.5 0.0001 0.0001 60.0 0.0001 0.0001 69.0 0.0001 0.0001 79.0 0.0001 0.0001 90.5 0.0001 0.0001 105.5 0.0001 0.0001 123.5 0.0001 0.0001 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1945.0 0.0001 0.0001 2119.0 0.0001 0.0001 2369.0 0.0001 0.0001 2643.5 0.0001 0.0001 2945.0 0.0001 0.0001 3276.5 0.0001 0.0001 --0.8 -0.6 132 9.0 0.0001 0.0001 11.0 0.0001 0.0001 13.5 0.0001 0.0001 16.5 0.0001 0.0001 19.5 0.0001 0.0001 22.5 0.0001 0.0001 26.0 0.0001 0.0001 30.0 0.0001 0.0001 34.5 0.0001 0.0001 40.0 0.0001 0.0001 46.0 0.0001 0.0001 52.5 0.0001 0.0001 60.0 0.0001 0.0001 69.0 0.0001 0.0001 79.0 0.0001 0.0001 90.5 0.0001 0.0001 105.5 0.0001 0.0001 123.5 0.0001 0.0001 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1945.0 0.0001 0.0001 2119.0 0.0001 0.0001 2369.0 0.0001 0.0001 2643.5 0.0001 0.0001 2945.0 0.0001 0.0001 3276.5 0.0001 0.0001 --0.6 -0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.4 -0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.2 0.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.0 0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.2 0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.4 0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.6 0.8 132 9.0 0.0001 0.0001 11.0 0.0001 0.0001 13.5 0.0001 0.0001 16.5 0.0001 0.0001 19.5 0.0001 0.0001 22.5 0.0001 0.0001 26.0 0.0001 0.0001 30.0 0.0001 0.0001 34.5 0.0001 0.0001 40.0 0.0001 0.0001 46.0 0.0001 0.0001 52.5 0.0001 0.0001 60.0 0.0001 0.0001 69.0 0.0001 0.0001 79.0 0.0001 0.0001 90.5 0.0001 0.0001 105.5 0.0001 0.0001 123.5 0.0001 0.0001 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1945.0 0.0001 0.0001 2119.0 0.0001 0.0001 2369.0 0.0001 0.0001 2643.5 0.0001 0.0001 2945.0 0.0001 0.0001 3276.5 0.0001 0.0001 -0.8 1.0 132 9.0 0.0001 0.0001 11.0 0.0001 0.0001 13.5 0.0001 0.0001 16.5 0.0001 0.0001 19.5 0.0001 0.0001 22.5 0.0001 0.0001 26.0 0.0001 0.0001 30.0 0.0001 0.0001 34.5 0.0001 0.0001 40.0 0.0001 0.0001 46.0 0.0001 0.0001 52.5 0.0001 0.0001 60.0 0.0001 0.0001 69.0 0.0001 0.0001 79.0 0.0001 0.0001 90.5 0.0001 0.0001 105.5 0.0001 0.0001 123.5 0.0001 0.0001 143.0 0.0001 0.0001 163.5 0.0001 0.0001 185.0 0.0001 0.0001 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1945.0 0.0001 0.0001 2119.0 0.0001 0.0001 2369.0 0.0001 0.0001 2643.5 0.0001 0.0001 2945.0 0.0001 0.0001 3276.5 0.0001 0.0001 -1.0 1.2 132 9.0 0.0002 0.0002 11.0 0.0002 0.0002 13.5 0.0002 0.0002 16.5 0.0002 0.0002 19.5 0.0002 0.0002 22.5 0.0002 0.0002 26.0 0.0002 0.0002 30.0 0.0002 0.0002 34.5 0.0002 0.0002 40.0 0.0002 0.0002 46.0 0.0002 0.0002 52.5 0.0002 0.0002 60.0 0.0002 0.0002 69.0 0.0002 0.0002 79.0 0.0002 0.0002 90.5 0.0002 0.0002 105.5 0.0002 0.0002 123.5 0.0002 0.0002 143.0 0.0002 0.0002 163.5 0.0002 0.0002 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0002 0.0002 258.5 0.0002 0.0002 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0002 0.0002 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0002 0.0002 847.5 0.0002 0.0002 968.5 0.0002 0.0002 1102.0 0.0002 0.0002 1249.5 0.0002 0.0002 1412.0 0.0002 0.0002 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1945.0 0.0002 0.0002 2119.0 0.0002 0.0002 2369.0 0.0002 0.0002 2643.5 0.0002 0.0002 2945.0 0.0002 0.0002 3276.5 0.0002 0.0002 -1.2 1.4 132 9.0 0.0003 0.0003 11.0 0.0003 0.0003 13.5 0.0003 0.0003 16.5 0.0003 0.0003 19.5 0.0003 0.0003 22.5 0.0003 0.0003 26.0 0.0003 0.0003 30.0 0.0003 0.0003 34.5 0.0003 0.0003 40.0 0.0003 0.0003 46.0 0.0003 0.0003 52.5 0.0003 0.0003 60.0 0.0003 0.0003 69.0 0.0003 0.0003 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 -1.4 1.6 132 9.0 0.0005 0.0005 11.0 0.0005 0.0005 13.5 0.0005 0.0005 16.5 0.0005 0.0005 19.5 0.0005 0.0005 22.5 0.0005 0.0005 26.0 0.0005 0.0005 30.0 0.0005 0.0005 34.5 0.0005 0.0005 40.0 0.0005 0.0005 46.0 0.0005 0.0005 52.5 0.0005 0.0005 60.0 0.0005 0.0005 69.0 0.0005 0.0005 79.0 0.0005 0.0005 90.5 0.0005 0.0005 105.5 0.0005 0.0005 123.5 0.0005 0.0005 143.0 0.0005 0.0005 163.5 0.0005 0.0005 185.0 0.0005 0.0005 208.0 0.0005 0.0005 232.5 0.0005 0.0005 258.5 0.0005 0.0005 286.0 0.0005 0.0005 331.0 0.0005 0.0005 396.0 0.0005 0.0005 468.5 0.0005 0.0005 549.5 0.0005 0.0005 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0005 0.0005 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1945.0 0.0005 0.0005 2119.0 0.0005 0.0005 2369.0 0.0005 0.0005 2643.5 0.0005 0.0005 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 -1.6 1.8 132 9.0 0.0007 0.0007 11.0 0.0007 0.0007 13.5 0.0007 0.0007 16.5 0.0007 0.0007 19.5 0.0007 0.0007 22.5 0.0007 0.0007 26.0 0.0007 0.0007 30.0 0.0007 0.0007 34.5 0.0007 0.0007 40.0 0.0007 0.0007 46.0 0.0007 0.0007 52.5 0.0007 0.0007 60.0 0.0007 0.0007 69.0 0.0007 0.0007 79.0 0.0007 0.0007 90.5 0.0007 0.0007 105.5 0.0007 0.0007 123.5 0.0007 0.0007 143.0 0.0007 0.0007 163.5 0.0007 0.0007 185.0 0.0007 0.0007 208.0 0.0007 0.0007 232.5 0.0007 0.0007 258.5 0.0007 0.0007 286.0 0.0007 0.0007 331.0 0.0007 0.0007 396.0 0.0007 0.0007 468.5 0.0007 0.0007 549.5 0.0007 0.0007 639.0 0.0007 0.0007 738.0 0.0007 0.0007 847.5 0.0007 0.0007 968.5 0.0007 0.0007 1102.0 0.0007 0.0007 1249.5 0.0007 0.0007 1412.0 0.0007 0.0007 1590.5 0.0007 0.0007 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -1.8 2.0 132 9.0 0.0011 0.0011 11.0 0.0011 0.0011 13.5 0.0011 0.0011 16.5 0.0011 0.0011 19.5 0.0011 0.0011 22.5 0.0011 0.0011 26.0 0.0011 0.0011 30.0 0.0011 0.0011 34.5 0.0011 0.0011 40.0 0.0011 0.0011 46.0 0.0011 0.0011 52.5 0.0011 0.0011 60.0 0.0011 0.0011 69.0 0.0011 0.0011 79.0 0.0011 0.0011 90.5 0.0011 0.0011 105.5 0.0011 0.0011 123.5 0.0011 0.0011 143.0 0.0011 0.0011 163.5 0.0011 0.0011 185.0 0.0011 0.0011 208.0 0.0011 0.0011 232.5 0.0011 0.0011 258.5 0.0011 0.0011 286.0 0.0011 0.0011 331.0 0.0011 0.0011 396.0 0.0011 0.0011 468.5 0.0011 0.0011 549.5 0.0011 0.0011 639.0 0.0011 0.0011 738.0 0.0011 0.0011 847.5 0.0011 0.0011 968.5 0.0011 0.0011 1102.0 0.0011 0.0011 1249.5 0.0011 0.0011 1412.0 0.0011 0.0011 1590.5 0.0011 0.0011 1787.0 0.0011 0.0011 1945.0 0.0011 0.0011 2119.0 0.0011 0.0011 2369.0 0.0011 0.0011 2643.5 0.0011 0.0011 2945.0 0.0011 0.0011 3276.5 0.0011 0.0011 -2.0 2.2 132 9.0 0.0016 0.0016 11.0 0.0016 0.0016 13.5 0.0016 0.0016 16.5 0.0016 0.0016 19.5 0.0016 0.0016 22.5 0.0016 0.0016 26.0 0.0016 0.0016 30.0 0.0016 0.0016 34.5 0.0016 0.0016 40.0 0.0016 0.0016 46.0 0.0016 0.0016 52.5 0.0016 0.0016 60.0 0.0016 0.0016 69.0 0.0016 0.0016 79.0 0.0016 0.0016 90.5 0.0016 0.0016 105.5 0.0016 0.0016 123.5 0.0016 0.0016 143.0 0.0016 0.0016 163.5 0.0016 0.0016 185.0 0.0016 0.0016 208.0 0.0016 0.0016 232.5 0.0016 0.0016 258.5 0.0016 0.0016 286.0 0.0016 0.0016 331.0 0.0016 0.0016 396.0 0.0016 0.0016 468.5 0.0016 0.0016 549.5 0.0016 0.0016 639.0 0.0016 0.0016 738.0 0.0016 0.0016 847.5 0.0016 0.0016 968.5 0.0016 0.0016 1102.0 0.0016 0.0016 1249.5 0.0016 0.0016 1412.0 0.0016 0.0016 1590.5 0.0016 0.0016 1787.0 0.0016 0.0016 1945.0 0.0016 0.0016 2119.0 0.0016 0.0016 2369.0 0.0016 0.0016 2643.5 0.0016 0.0016 2945.0 0.0016 0.0016 3276.5 0.0016 0.0016 -2.2 2.4 132 9.0 0.0024 0.0024 11.0 0.0024 0.0024 13.5 0.0024 0.0024 16.5 0.0024 0.0024 19.5 0.0024 0.0024 22.5 0.0024 0.0024 26.0 0.0024 0.0024 30.0 0.0024 0.0024 34.5 0.0024 0.0024 40.0 0.0024 0.0024 46.0 0.0024 0.0024 52.5 0.0024 0.0024 60.0 0.0024 0.0024 69.0 0.0024 0.0024 79.0 0.0024 0.0024 90.5 0.0024 0.0024 105.5 0.0024 0.0024 123.5 0.0024 0.0024 143.0 0.0024 0.0024 163.5 0.0024 0.0024 185.0 0.0024 0.0024 208.0 0.0024 0.0024 232.5 0.0024 0.0024 258.5 0.0024 0.0024 286.0 0.0024 0.0024 331.0 0.0024 0.0024 396.0 0.0024 0.0024 468.5 0.0024 0.0024 549.5 0.0024 0.0024 639.0 0.0024 0.0024 738.0 0.0024 0.0024 847.5 0.0024 0.0024 968.5 0.0024 0.0024 1102.0 0.0024 0.0024 1249.5 0.0024 0.0024 1412.0 0.0024 0.0024 1590.5 0.0024 0.0024 1787.0 0.0024 0.0024 1945.0 0.0024 0.0024 2119.0 0.0024 0.0024 2369.0 0.0024 0.0024 2643.5 0.0024 0.0024 2945.0 0.0024 0.0024 3276.5 0.0024 0.0024 -2.4 2.6 132 9.0 0.0037 0.0037 11.0 0.0037 0.0037 13.5 0.0037 0.0037 16.5 0.0037 0.0037 19.5 0.0037 0.0037 22.5 0.0037 0.0037 26.0 0.0037 0.0037 30.0 0.0037 0.0037 34.5 0.0037 0.0037 40.0 0.0037 0.0037 46.0 0.0037 0.0037 52.5 0.0037 0.0037 60.0 0.0037 0.0037 69.0 0.0037 0.0037 79.0 0.0037 0.0037 90.5 0.0037 0.0037 105.5 0.0037 0.0037 123.5 0.0037 0.0037 143.0 0.0037 0.0037 163.5 0.0037 0.0037 185.0 0.0037 0.0037 208.0 0.0037 0.0037 232.5 0.0037 0.0037 258.5 0.0037 0.0037 286.0 0.0037 0.0037 331.0 0.0037 0.0037 396.0 0.0037 0.0037 468.5 0.0037 0.0037 549.5 0.0037 0.0037 639.0 0.0037 0.0037 738.0 0.0037 0.0037 847.5 0.0037 0.0037 968.5 0.0037 0.0037 1102.0 0.0037 0.0037 1249.5 0.0037 0.0037 1412.0 0.0037 0.0037 1590.5 0.0037 0.0037 1787.0 0.0037 0.0037 1945.0 0.0037 0.0037 2119.0 0.0037 0.0037 2369.0 0.0037 0.0037 2643.5 0.0037 0.0037 2945.0 0.0037 0.0037 3276.5 0.0037 0.0037 -2.6 2.8 132 9.0 0.0055 0.0055 11.0 0.0055 0.0055 13.5 0.0055 0.0055 16.5 0.0055 0.0055 19.5 0.0055 0.0055 22.5 0.0055 0.0055 26.0 0.0055 0.0055 30.0 0.0055 0.0055 34.5 0.0055 0.0055 40.0 0.0055 0.0055 46.0 0.0055 0.0055 52.5 0.0055 0.0055 60.0 0.0055 0.0055 69.0 0.0055 0.0055 79.0 0.0055 0.0055 90.5 0.0055 0.0055 105.5 0.0055 0.0055 123.5 0.0055 0.0055 143.0 0.0055 0.0055 163.5 0.0055 0.0055 185.0 0.0055 0.0055 208.0 0.0055 0.0055 232.5 0.0055 0.0055 258.5 0.0055 0.0055 286.0 0.0055 0.0055 331.0 0.0055 0.0055 396.0 0.0055 0.0055 468.5 0.0055 0.0055 549.5 0.0055 0.0055 639.0 0.0055 0.0055 738.0 0.0055 0.0055 847.5 0.0055 0.0055 968.5 0.0055 0.0055 1102.0 0.0055 0.0055 1249.5 0.0055 0.0055 1412.0 0.0055 0.0055 1590.5 0.0055 0.0055 1787.0 0.0055 0.0055 1945.0 0.0055 0.0055 2119.0 0.0055 0.0055 2369.0 0.0055 0.0055 2643.5 0.0055 0.0055 2945.0 0.0055 0.0055 3276.5 0.0055 0.0055 -2.8 3.0 132 9.0 0.0082 0.0082 11.0 0.0082 0.0082 13.5 0.0082 0.0082 16.5 0.0082 0.0082 19.5 0.0082 0.0082 22.5 0.0082 0.0082 26.0 0.0082 0.0082 30.0 0.0082 0.0082 34.5 0.0082 0.0082 40.0 0.0082 0.0082 46.0 0.0082 0.0082 52.5 0.0082 0.0082 60.0 0.0082 0.0082 69.0 0.0082 0.0082 79.0 0.0082 0.0082 90.5 0.0082 0.0082 105.5 0.0082 0.0082 123.5 0.0082 0.0082 143.0 0.0082 0.0082 163.5 0.0082 0.0082 185.0 0.0082 0.0082 208.0 0.0082 0.0082 232.5 0.0082 0.0082 258.5 0.0082 0.0082 286.0 0.0082 0.0082 331.0 0.0082 0.0082 396.0 0.0082 0.0082 468.5 0.0082 0.0082 549.5 0.0082 0.0082 639.0 0.0082 0.0082 738.0 0.0082 0.0082 847.5 0.0082 0.0082 968.5 0.0082 0.0082 1102.0 0.0082 0.0082 1249.5 0.0082 0.0082 1412.0 0.0082 0.0082 1590.5 0.0082 0.0082 1787.0 0.0082 0.0082 1945.0 0.0082 0.0082 2119.0 0.0082 0.0082 2369.0 0.0082 0.0082 2643.5 0.0082 0.0082 2945.0 0.0082 0.0082 3276.5 0.0082 0.0082 -3.0 3.5 132 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1945.0 0.0150 0.0150 2119.0 0.0150 0.0150 2369.0 0.0150 0.0150 2643.5 0.0150 0.0150 2945.0 0.0150 0.0150 3276.5 0.0150 0.0150 -3.5 4.0 132 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1945.0 0.0150 0.0150 2119.0 0.0150 0.0150 2369.0 0.0150 0.0150 2643.5 0.0150 0.0150 2945.0 0.0150 0.0150 3276.5 0.0150 0.0150 -4.0 4.4 132 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1945.0 0.0150 0.0150 2119.0 0.0150 0.0150 2369.0 0.0150 0.0150 2643.5 0.0150 0.0150 2945.0 0.0150 0.0150 3276.5 0.0150 0.0150 -4.4 5.0 132 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1945.0 0.0150 0.0150 2119.0 0.0150 0.0150 2369.0 0.0150 0.0150 2643.5 0.0150 0.0150 2945.0 0.0150 0.0150 3276.5 0.0150 0.0150 -5.0 5.4 132 9.0 0.0150 0.0150 11.0 0.0150 0.0150 13.5 0.0150 0.0150 16.5 0.0150 0.0150 19.5 0.0150 0.0150 22.5 0.0150 0.0150 26.0 0.0150 0.0150 30.0 0.0150 0.0150 34.5 0.0150 0.0150 40.0 0.0150 0.0150 46.0 0.0150 0.0150 52.5 0.0150 0.0150 60.0 0.0150 0.0150 69.0 0.0150 0.0150 79.0 0.0150 0.0150 90.5 0.0150 0.0150 105.5 0.0150 0.0150 123.5 0.0150 0.0150 143.0 0.0150 0.0150 163.5 0.0150 0.0150 185.0 0.0150 0.0150 208.0 0.0150 0.0150 232.5 0.0150 0.0150 258.5 0.0150 0.0150 286.0 0.0150 0.0150 331.0 0.0150 0.0150 396.0 0.0150 0.0150 468.5 0.0150 0.0150 549.5 0.0150 0.0150 639.0 0.0150 0.0150 738.0 0.0150 0.0150 847.5 0.0150 0.0150 968.5 0.0150 0.0150 1102.0 0.0150 0.0150 1249.5 0.0150 0.0150 1412.0 0.0150 0.0150 1590.5 0.0150 0.0150 1787.0 0.0150 0.0150 1945.0 0.0150 0.0150 2119.0 0.0150 0.0150 2369.0 0.0150 0.0150 2643.5 0.0150 0.0150 2945.0 0.0150 0.0150 3276.5 0.0150 0.0150 -[RelativeStatEC2] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --5.0 -4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.4 -4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.0 -3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.5 -3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.0 -2.8 132 9.0 0.0135 0.0135 11.0 0.0135 0.0135 13.5 0.0135 0.0135 16.5 0.0135 0.0135 19.5 0.0135 0.0135 22.5 0.0135 0.0135 26.0 0.0135 0.0135 30.0 0.0135 0.0135 34.5 0.0135 0.0135 40.0 0.0135 0.0135 46.0 0.0135 0.0135 52.5 0.0135 0.0135 60.0 0.0135 0.0135 69.0 0.0135 0.0135 79.0 0.0135 0.0135 90.5 0.0135 0.0135 105.5 0.0135 0.0135 123.5 0.0135 0.0135 143.0 0.0135 0.0135 163.5 0.0135 0.0135 185.0 0.0135 0.0135 208.0 0.0135 0.0135 232.5 0.0135 0.0135 258.5 0.0135 0.0135 286.0 0.0135 0.0135 331.0 0.0135 0.0135 396.0 0.0135 0.0135 468.5 0.0135 0.0135 549.5 0.0135 0.0135 639.0 0.0135 0.0135 738.0 0.0135 0.0135 847.5 0.0135 0.0135 968.5 0.0135 0.0135 1102.0 0.0135 0.0135 1249.5 0.0135 0.0135 1412.0 0.0135 0.0135 1590.5 0.0135 0.0135 1787.0 0.0135 0.0135 1945.0 0.0135 0.0135 2119.0 0.0135 0.0135 2369.0 0.0135 0.0135 2643.5 0.0135 0.0135 2945.0 0.0135 0.0135 3276.5 0.0135 0.0135 --2.8 -2.6 132 9.0 0.0029 0.0029 11.0 0.0029 0.0029 13.5 0.0029 0.0029 16.5 0.0029 0.0029 19.5 0.0029 0.0029 22.5 0.0029 0.0029 26.0 0.0029 0.0029 30.0 0.0029 0.0029 34.5 0.0029 0.0029 40.0 0.0029 0.0029 46.0 0.0029 0.0029 52.5 0.0029 0.0029 60.0 0.0029 0.0029 69.0 0.0029 0.0029 79.0 0.0029 0.0029 90.5 0.0029 0.0029 105.5 0.0029 0.0029 123.5 0.0029 0.0029 143.0 0.0029 0.0029 163.5 0.0029 0.0029 185.0 0.0029 0.0029 208.0 0.0029 0.0029 232.5 0.0029 0.0029 258.5 0.0029 0.0029 286.0 0.0029 0.0029 331.0 0.0029 0.0029 396.0 0.0029 0.0029 468.5 0.0029 0.0029 549.5 0.0029 0.0029 639.0 0.0029 0.0029 738.0 0.0029 0.0029 847.5 0.0029 0.0029 968.5 0.0029 0.0029 1102.0 0.0029 0.0029 1249.5 0.0029 0.0029 1412.0 0.0029 0.0029 1590.5 0.0029 0.0029 1787.0 0.0029 0.0029 1945.0 0.0029 0.0029 2119.0 0.0029 0.0029 2369.0 0.0029 0.0029 2643.5 0.0029 0.0029 2945.0 0.0029 0.0029 3276.5 0.0029 0.0029 --2.6 -2.4 132 9.0 0.0029 0.0029 11.0 0.0029 0.0029 13.5 0.0029 0.0029 16.5 0.0029 0.0029 19.5 0.0029 0.0029 22.5 0.0029 0.0029 26.0 0.0029 0.0029 30.0 0.0029 0.0029 34.5 0.0029 0.0029 40.0 0.0029 0.0029 46.0 0.0029 0.0029 52.5 0.0029 0.0029 60.0 0.0029 0.0029 69.0 0.0029 0.0029 79.0 0.0029 0.0029 90.5 0.0029 0.0029 105.5 0.0029 0.0029 123.5 0.0029 0.0029 143.0 0.0029 0.0029 163.5 0.0029 0.0029 185.0 0.0029 0.0029 208.0 0.0029 0.0029 232.5 0.0029 0.0029 258.5 0.0029 0.0029 286.0 0.0029 0.0029 331.0 0.0029 0.0029 396.0 0.0029 0.0029 468.5 0.0029 0.0029 549.5 0.0029 0.0029 639.0 0.0029 0.0029 738.0 0.0029 0.0029 847.5 0.0029 0.0029 968.5 0.0029 0.0029 1102.0 0.0029 0.0029 1249.5 0.0029 0.0029 1412.0 0.0029 0.0029 1590.5 0.0029 0.0029 1787.0 0.0029 0.0029 1945.0 0.0029 0.0029 2119.0 0.0029 0.0029 2369.0 0.0029 0.0029 2643.5 0.0029 0.0029 2945.0 0.0029 0.0029 3276.5 0.0029 0.0029 --2.4 -2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.2 -2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.0 -1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.8 -1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.6 -1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.4 -1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.2 -1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.0 -0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.8 -0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.6 -0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.4 -0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.2 0.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.0 0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.2 0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.4 0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.6 0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.8 1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.0 1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.2 1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.4 1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.6 1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.8 2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.0 2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.2 2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.4 2.6 132 9.0 0.0029 0.0029 11.0 0.0029 0.0029 13.5 0.0029 0.0029 16.5 0.0029 0.0029 19.5 0.0029 0.0029 22.5 0.0029 0.0029 26.0 0.0029 0.0029 30.0 0.0029 0.0029 34.5 0.0029 0.0029 40.0 0.0029 0.0029 46.0 0.0029 0.0029 52.5 0.0029 0.0029 60.0 0.0029 0.0029 69.0 0.0029 0.0029 79.0 0.0029 0.0029 90.5 0.0029 0.0029 105.5 0.0029 0.0029 123.5 0.0029 0.0029 143.0 0.0029 0.0029 163.5 0.0029 0.0029 185.0 0.0029 0.0029 208.0 0.0029 0.0029 232.5 0.0029 0.0029 258.5 0.0029 0.0029 286.0 0.0029 0.0029 331.0 0.0029 0.0029 396.0 0.0029 0.0029 468.5 0.0029 0.0029 549.5 0.0029 0.0029 639.0 0.0029 0.0029 738.0 0.0029 0.0029 847.5 0.0029 0.0029 968.5 0.0029 0.0029 1102.0 0.0029 0.0029 1249.5 0.0029 0.0029 1412.0 0.0029 0.0029 1590.5 0.0029 0.0029 1787.0 0.0029 0.0029 1945.0 0.0029 0.0029 2119.0 0.0029 0.0029 2369.0 0.0029 0.0029 2643.5 0.0029 0.0029 2945.0 0.0029 0.0029 3276.5 0.0029 0.0029 -2.6 2.8 132 9.0 0.0029 0.0029 11.0 0.0029 0.0029 13.5 0.0029 0.0029 16.5 0.0029 0.0029 19.5 0.0029 0.0029 22.5 0.0029 0.0029 26.0 0.0029 0.0029 30.0 0.0029 0.0029 34.5 0.0029 0.0029 40.0 0.0029 0.0029 46.0 0.0029 0.0029 52.5 0.0029 0.0029 60.0 0.0029 0.0029 69.0 0.0029 0.0029 79.0 0.0029 0.0029 90.5 0.0029 0.0029 105.5 0.0029 0.0029 123.5 0.0029 0.0029 143.0 0.0029 0.0029 163.5 0.0029 0.0029 185.0 0.0029 0.0029 208.0 0.0029 0.0029 232.5 0.0029 0.0029 258.5 0.0029 0.0029 286.0 0.0029 0.0029 331.0 0.0029 0.0029 396.0 0.0029 0.0029 468.5 0.0029 0.0029 549.5 0.0029 0.0029 639.0 0.0029 0.0029 738.0 0.0029 0.0029 847.5 0.0029 0.0029 968.5 0.0029 0.0029 1102.0 0.0029 0.0029 1249.5 0.0029 0.0029 1412.0 0.0029 0.0029 1590.5 0.0029 0.0029 1787.0 0.0029 0.0029 1945.0 0.0029 0.0029 2119.0 0.0029 0.0029 2369.0 0.0029 0.0029 2643.5 0.0029 0.0029 2945.0 0.0029 0.0029 3276.5 0.0029 0.0029 -2.8 3.0 132 9.0 0.0135 0.0135 11.0 0.0135 0.0135 13.5 0.0135 0.0135 16.5 0.0135 0.0135 19.5 0.0135 0.0135 22.5 0.0135 0.0135 26.0 0.0135 0.0135 30.0 0.0135 0.0135 34.5 0.0135 0.0135 40.0 0.0135 0.0135 46.0 0.0135 0.0135 52.5 0.0135 0.0135 60.0 0.0135 0.0135 69.0 0.0135 0.0135 79.0 0.0135 0.0135 90.5 0.0135 0.0135 105.5 0.0135 0.0135 123.5 0.0135 0.0135 143.0 0.0135 0.0135 163.5 0.0135 0.0135 185.0 0.0135 0.0135 208.0 0.0135 0.0135 232.5 0.0135 0.0135 258.5 0.0135 0.0135 286.0 0.0135 0.0135 331.0 0.0135 0.0135 396.0 0.0135 0.0135 468.5 0.0135 0.0135 549.5 0.0135 0.0135 639.0 0.0135 0.0135 738.0 0.0135 0.0135 847.5 0.0135 0.0135 968.5 0.0135 0.0135 1102.0 0.0135 0.0135 1249.5 0.0135 0.0135 1412.0 0.0135 0.0135 1590.5 0.0135 0.0135 1787.0 0.0135 0.0135 1945.0 0.0135 0.0135 2119.0 0.0135 0.0135 2369.0 0.0135 0.0135 2643.5 0.0135 0.0135 2945.0 0.0135 0.0135 3276.5 0.0135 0.0135 -3.0 3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.5 4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.0 4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.4 5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -5.0 5.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -[RelativeStatHF] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0248 0.0248 11.0 0.0248 0.0248 13.5 0.0248 0.0248 16.5 0.0248 0.0248 19.5 0.0248 0.0248 22.5 0.0248 0.0248 26.0 0.0248 0.0248 30.0 0.0248 0.0248 34.5 0.0248 0.0248 40.0 0.0248 0.0248 46.0 0.0248 0.0248 52.5 0.0248 0.0248 60.0 0.0248 0.0248 69.0 0.0248 0.0248 79.0 0.0248 0.0248 90.5 0.0248 0.0248 105.5 0.0248 0.0248 123.5 0.0248 0.0248 143.0 0.0248 0.0248 163.5 0.0248 0.0248 185.0 0.0248 0.0248 208.0 0.0248 0.0248 232.5 0.0248 0.0248 258.5 0.0248 0.0248 286.0 0.0248 0.0248 331.0 0.0248 0.0248 396.0 0.0248 0.0248 468.5 0.0248 0.0248 549.5 0.0248 0.0248 639.0 0.0248 0.0248 738.0 0.0248 0.0248 847.5 0.0248 0.0248 968.5 0.0248 0.0248 1102.0 0.0248 0.0248 1249.5 0.0248 0.0248 1412.0 0.0248 0.0248 1590.5 0.0248 0.0248 1787.0 0.0248 0.0248 1945.0 0.0248 0.0248 2119.0 0.0248 0.0248 2369.0 0.0248 0.0248 2643.5 0.0248 0.0248 2945.0 0.0248 0.0248 3276.5 0.0248 0.0248 --5.0 -4.4 132 9.0 0.0248 0.0248 11.0 0.0248 0.0248 13.5 0.0248 0.0248 16.5 0.0248 0.0248 19.5 0.0248 0.0248 22.5 0.0248 0.0248 26.0 0.0248 0.0248 30.0 0.0248 0.0248 34.5 0.0248 0.0248 40.0 0.0248 0.0248 46.0 0.0248 0.0248 52.5 0.0248 0.0248 60.0 0.0248 0.0248 69.0 0.0248 0.0248 79.0 0.0248 0.0248 90.5 0.0248 0.0248 105.5 0.0248 0.0248 123.5 0.0248 0.0248 143.0 0.0248 0.0248 163.5 0.0248 0.0248 185.0 0.0248 0.0248 208.0 0.0248 0.0248 232.5 0.0248 0.0248 258.5 0.0248 0.0248 286.0 0.0248 0.0248 331.0 0.0248 0.0248 396.0 0.0248 0.0248 468.5 0.0248 0.0248 549.5 0.0248 0.0248 639.0 0.0248 0.0248 738.0 0.0248 0.0248 847.5 0.0248 0.0248 968.5 0.0248 0.0248 1102.0 0.0248 0.0248 1249.5 0.0248 0.0248 1412.0 0.0248 0.0248 1590.5 0.0248 0.0248 1787.0 0.0248 0.0248 1945.0 0.0248 0.0248 2119.0 0.0248 0.0248 2369.0 0.0248 0.0248 2643.5 0.0248 0.0248 2945.0 0.0248 0.0248 3276.5 0.0248 0.0248 --4.4 -4.0 132 9.0 0.0248 0.0248 11.0 0.0248 0.0248 13.5 0.0248 0.0248 16.5 0.0248 0.0248 19.5 0.0248 0.0248 22.5 0.0248 0.0248 26.0 0.0248 0.0248 30.0 0.0248 0.0248 34.5 0.0248 0.0248 40.0 0.0248 0.0248 46.0 0.0248 0.0248 52.5 0.0248 0.0248 60.0 0.0248 0.0248 69.0 0.0248 0.0248 79.0 0.0248 0.0248 90.5 0.0248 0.0248 105.5 0.0248 0.0248 123.5 0.0248 0.0248 143.0 0.0248 0.0248 163.5 0.0248 0.0248 185.0 0.0248 0.0248 208.0 0.0248 0.0248 232.5 0.0248 0.0248 258.5 0.0248 0.0248 286.0 0.0248 0.0248 331.0 0.0248 0.0248 396.0 0.0248 0.0248 468.5 0.0248 0.0248 549.5 0.0248 0.0248 639.0 0.0248 0.0248 738.0 0.0248 0.0248 847.5 0.0248 0.0248 968.5 0.0248 0.0248 1102.0 0.0248 0.0248 1249.5 0.0248 0.0248 1412.0 0.0248 0.0248 1590.5 0.0248 0.0248 1787.0 0.0248 0.0248 1945.0 0.0248 0.0248 2119.0 0.0248 0.0248 2369.0 0.0248 0.0248 2643.5 0.0248 0.0248 2945.0 0.0248 0.0248 3276.5 0.0248 0.0248 --4.0 -3.5 132 9.0 0.0248 0.0248 11.0 0.0248 0.0248 13.5 0.0248 0.0248 16.5 0.0248 0.0248 19.5 0.0248 0.0248 22.5 0.0248 0.0248 26.0 0.0248 0.0248 30.0 0.0248 0.0248 34.5 0.0248 0.0248 40.0 0.0248 0.0248 46.0 0.0248 0.0248 52.5 0.0248 0.0248 60.0 0.0248 0.0248 69.0 0.0248 0.0248 79.0 0.0248 0.0248 90.5 0.0248 0.0248 105.5 0.0248 0.0248 123.5 0.0248 0.0248 143.0 0.0248 0.0248 163.5 0.0248 0.0248 185.0 0.0248 0.0248 208.0 0.0248 0.0248 232.5 0.0248 0.0248 258.5 0.0248 0.0248 286.0 0.0248 0.0248 331.0 0.0248 0.0248 396.0 0.0248 0.0248 468.5 0.0248 0.0248 549.5 0.0248 0.0248 639.0 0.0248 0.0248 738.0 0.0248 0.0248 847.5 0.0248 0.0248 968.5 0.0248 0.0248 1102.0 0.0248 0.0248 1249.5 0.0248 0.0248 1412.0 0.0248 0.0248 1590.5 0.0248 0.0248 1787.0 0.0248 0.0248 1945.0 0.0248 0.0248 2119.0 0.0248 0.0248 2369.0 0.0248 0.0248 2643.5 0.0248 0.0248 2945.0 0.0248 0.0248 3276.5 0.0248 0.0248 --3.5 -3.0 132 9.0 0.0104 0.0104 11.0 0.0104 0.0104 13.5 0.0104 0.0104 16.5 0.0104 0.0104 19.5 0.0104 0.0104 22.5 0.0104 0.0104 26.0 0.0104 0.0104 30.0 0.0104 0.0104 34.5 0.0104 0.0104 40.0 0.0104 0.0104 46.0 0.0104 0.0104 52.5 0.0104 0.0104 60.0 0.0104 0.0104 69.0 0.0104 0.0104 79.0 0.0104 0.0104 90.5 0.0104 0.0104 105.5 0.0104 0.0104 123.5 0.0104 0.0104 143.0 0.0104 0.0104 163.5 0.0104 0.0104 185.0 0.0104 0.0104 208.0 0.0104 0.0104 232.5 0.0104 0.0104 258.5 0.0104 0.0104 286.0 0.0104 0.0104 331.0 0.0104 0.0104 396.0 0.0104 0.0104 468.5 0.0104 0.0104 549.5 0.0104 0.0104 639.0 0.0104 0.0104 738.0 0.0104 0.0104 847.5 0.0104 0.0104 968.5 0.0104 0.0104 1102.0 0.0104 0.0104 1249.5 0.0104 0.0104 1412.0 0.0104 0.0104 1590.5 0.0104 0.0104 1787.0 0.0104 0.0104 1945.0 0.0104 0.0104 2119.0 0.0104 0.0104 2369.0 0.0104 0.0104 2643.5 0.0104 0.0104 2945.0 0.0104 0.0104 3276.5 0.0104 0.0104 --3.0 -2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.8 -2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.6 -2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.4 -2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.2 -2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.0 -1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.8 -1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.6 -1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.4 -1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.2 -1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.0 -0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.8 -0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.6 -0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.4 -0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.2 0.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.0 0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.2 0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.4 0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.6 0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.8 1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.0 1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.2 1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.4 1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.6 1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.8 2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.0 2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.2 2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.4 2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.6 2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.8 3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.0 3.5 132 9.0 0.0104 0.0104 11.0 0.0104 0.0104 13.5 0.0104 0.0104 16.5 0.0104 0.0104 19.5 0.0104 0.0104 22.5 0.0104 0.0104 26.0 0.0104 0.0104 30.0 0.0104 0.0104 34.5 0.0104 0.0104 40.0 0.0104 0.0104 46.0 0.0104 0.0104 52.5 0.0104 0.0104 60.0 0.0104 0.0104 69.0 0.0104 0.0104 79.0 0.0104 0.0104 90.5 0.0104 0.0104 105.5 0.0104 0.0104 123.5 0.0104 0.0104 143.0 0.0104 0.0104 163.5 0.0104 0.0104 185.0 0.0104 0.0104 208.0 0.0104 0.0104 232.5 0.0104 0.0104 258.5 0.0104 0.0104 286.0 0.0104 0.0104 331.0 0.0104 0.0104 396.0 0.0104 0.0104 468.5 0.0104 0.0104 549.5 0.0104 0.0104 639.0 0.0104 0.0104 738.0 0.0104 0.0104 847.5 0.0104 0.0104 968.5 0.0104 0.0104 1102.0 0.0104 0.0104 1249.5 0.0104 0.0104 1412.0 0.0104 0.0104 1590.5 0.0104 0.0104 1787.0 0.0104 0.0104 1945.0 0.0104 0.0104 2119.0 0.0104 0.0104 2369.0 0.0104 0.0104 2643.5 0.0104 0.0104 2945.0 0.0104 0.0104 3276.5 0.0104 0.0104 -3.5 4.0 132 9.0 0.0248 0.0248 11.0 0.0248 0.0248 13.5 0.0248 0.0248 16.5 0.0248 0.0248 19.5 0.0248 0.0248 22.5 0.0248 0.0248 26.0 0.0248 0.0248 30.0 0.0248 0.0248 34.5 0.0248 0.0248 40.0 0.0248 0.0248 46.0 0.0248 0.0248 52.5 0.0248 0.0248 60.0 0.0248 0.0248 69.0 0.0248 0.0248 79.0 0.0248 0.0248 90.5 0.0248 0.0248 105.5 0.0248 0.0248 123.5 0.0248 0.0248 143.0 0.0248 0.0248 163.5 0.0248 0.0248 185.0 0.0248 0.0248 208.0 0.0248 0.0248 232.5 0.0248 0.0248 258.5 0.0248 0.0248 286.0 0.0248 0.0248 331.0 0.0248 0.0248 396.0 0.0248 0.0248 468.5 0.0248 0.0248 549.5 0.0248 0.0248 639.0 0.0248 0.0248 738.0 0.0248 0.0248 847.5 0.0248 0.0248 968.5 0.0248 0.0248 1102.0 0.0248 0.0248 1249.5 0.0248 0.0248 1412.0 0.0248 0.0248 1590.5 0.0248 0.0248 1787.0 0.0248 0.0248 1945.0 0.0248 0.0248 2119.0 0.0248 0.0248 2369.0 0.0248 0.0248 2643.5 0.0248 0.0248 2945.0 0.0248 0.0248 3276.5 0.0248 0.0248 -4.0 4.4 132 9.0 0.0248 0.0248 11.0 0.0248 0.0248 13.5 0.0248 0.0248 16.5 0.0248 0.0248 19.5 0.0248 0.0248 22.5 0.0248 0.0248 26.0 0.0248 0.0248 30.0 0.0248 0.0248 34.5 0.0248 0.0248 40.0 0.0248 0.0248 46.0 0.0248 0.0248 52.5 0.0248 0.0248 60.0 0.0248 0.0248 69.0 0.0248 0.0248 79.0 0.0248 0.0248 90.5 0.0248 0.0248 105.5 0.0248 0.0248 123.5 0.0248 0.0248 143.0 0.0248 0.0248 163.5 0.0248 0.0248 185.0 0.0248 0.0248 208.0 0.0248 0.0248 232.5 0.0248 0.0248 258.5 0.0248 0.0248 286.0 0.0248 0.0248 331.0 0.0248 0.0248 396.0 0.0248 0.0248 468.5 0.0248 0.0248 549.5 0.0248 0.0248 639.0 0.0248 0.0248 738.0 0.0248 0.0248 847.5 0.0248 0.0248 968.5 0.0248 0.0248 1102.0 0.0248 0.0248 1249.5 0.0248 0.0248 1412.0 0.0248 0.0248 1590.5 0.0248 0.0248 1787.0 0.0248 0.0248 1945.0 0.0248 0.0248 2119.0 0.0248 0.0248 2369.0 0.0248 0.0248 2643.5 0.0248 0.0248 2945.0 0.0248 0.0248 3276.5 0.0248 0.0248 -4.4 5.0 132 9.0 0.0248 0.0248 11.0 0.0248 0.0248 13.5 0.0248 0.0248 16.5 0.0248 0.0248 19.5 0.0248 0.0248 22.5 0.0248 0.0248 26.0 0.0248 0.0248 30.0 0.0248 0.0248 34.5 0.0248 0.0248 40.0 0.0248 0.0248 46.0 0.0248 0.0248 52.5 0.0248 0.0248 60.0 0.0248 0.0248 69.0 0.0248 0.0248 79.0 0.0248 0.0248 90.5 0.0248 0.0248 105.5 0.0248 0.0248 123.5 0.0248 0.0248 143.0 0.0248 0.0248 163.5 0.0248 0.0248 185.0 0.0248 0.0248 208.0 0.0248 0.0248 232.5 0.0248 0.0248 258.5 0.0248 0.0248 286.0 0.0248 0.0248 331.0 0.0248 0.0248 396.0 0.0248 0.0248 468.5 0.0248 0.0248 549.5 0.0248 0.0248 639.0 0.0248 0.0248 738.0 0.0248 0.0248 847.5 0.0248 0.0248 968.5 0.0248 0.0248 1102.0 0.0248 0.0248 1249.5 0.0248 0.0248 1412.0 0.0248 0.0248 1590.5 0.0248 0.0248 1787.0 0.0248 0.0248 1945.0 0.0248 0.0248 2119.0 0.0248 0.0248 2369.0 0.0248 0.0248 2643.5 0.0248 0.0248 2945.0 0.0248 0.0248 3276.5 0.0248 0.0248 -5.0 5.4 132 9.0 0.0248 0.0248 11.0 0.0248 0.0248 13.5 0.0248 0.0248 16.5 0.0248 0.0248 19.5 0.0248 0.0248 22.5 0.0248 0.0248 26.0 0.0248 0.0248 30.0 0.0248 0.0248 34.5 0.0248 0.0248 40.0 0.0248 0.0248 46.0 0.0248 0.0248 52.5 0.0248 0.0248 60.0 0.0248 0.0248 69.0 0.0248 0.0248 79.0 0.0248 0.0248 90.5 0.0248 0.0248 105.5 0.0248 0.0248 123.5 0.0248 0.0248 143.0 0.0248 0.0248 163.5 0.0248 0.0248 185.0 0.0248 0.0248 208.0 0.0248 0.0248 232.5 0.0248 0.0248 258.5 0.0248 0.0248 286.0 0.0248 0.0248 331.0 0.0248 0.0248 396.0 0.0248 0.0248 468.5 0.0248 0.0248 549.5 0.0248 0.0248 639.0 0.0248 0.0248 738.0 0.0248 0.0248 847.5 0.0248 0.0248 968.5 0.0248 0.0248 1102.0 0.0248 0.0248 1249.5 0.0248 0.0248 1412.0 0.0248 0.0248 1590.5 0.0248 0.0248 1787.0 0.0248 0.0248 1945.0 0.0248 0.0248 2119.0 0.0248 0.0248 2369.0 0.0248 0.0248 2643.5 0.0248 0.0248 2945.0 0.0248 0.0248 3276.5 0.0248 0.0248 -[PileUpDataMC] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 -0.0079 -0.0079 11.0 -0.0068 -0.0068 13.5 -0.0058 -0.0058 16.5 -0.0049 -0.0049 19.5 -0.0043 -0.0043 22.5 -0.0038 -0.0038 26.0 -0.0033 -0.0033 30.0 -0.0030 -0.0030 34.5 -0.0026 -0.0026 40.0 -0.0023 -0.0023 46.0 -0.0021 -0.0021 52.5 -0.0019 -0.0019 60.0 -0.0017 -0.0017 69.0 -0.0015 -0.0015 79.0 -0.0013 -0.0013 90.5 -0.0012 -0.0012 105.5 -0.0011 -0.0011 123.5 -0.0009 -0.0009 143.0 -0.0008 -0.0008 163.5 -0.0007 -0.0007 185.0 -0.0007 -0.0007 208.0 -0.0006 -0.0006 232.5 -0.0006 -0.0006 258.5 -0.0005 -0.0005 286.0 -0.0005 -0.0005 331.0 -0.0004 -0.0004 396.0 -0.0004 -0.0004 468.5 -0.0003 -0.0003 549.5 -0.0003 -0.0003 639.0 -0.0002 -0.0002 738.0 -0.0002 -0.0002 847.5 -0.0002 -0.0002 968.5 -0.0002 -0.0002 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1945.0 -0.0001 -0.0001 2119.0 -0.0001 -0.0001 2369.0 -0.0001 -0.0001 2643.5 -0.0001 -0.0001 2945.0 -0.0001 -0.0001 3276.5 -0.0001 -0.0001 --5.0 -4.4 132 9.0 -0.0020 -0.0020 11.0 -0.0017 -0.0017 13.5 -0.0014 -0.0014 16.5 -0.0012 -0.0012 19.5 -0.0010 -0.0010 22.5 -0.0009 -0.0009 26.0 -0.0008 -0.0008 30.0 -0.0007 -0.0007 34.5 -0.0006 -0.0006 40.0 -0.0005 -0.0005 46.0 -0.0005 -0.0005 52.5 -0.0004 -0.0004 60.0 -0.0004 -0.0004 69.0 -0.0003 -0.0003 79.0 -0.0003 -0.0003 90.5 -0.0002 -0.0002 105.5 -0.0002 -0.0002 123.5 -0.0002 -0.0002 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0001 -0.0001 208.0 -0.0001 -0.0001 232.5 -0.0001 -0.0001 258.5 -0.0001 -0.0001 286.0 -0.0001 -0.0001 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0000 -0.0000 738.0 -0.0000 -0.0000 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1945.0 -0.0000 -0.0000 2119.0 -0.0000 -0.0000 2369.0 -0.0000 -0.0000 2643.5 -0.0000 -0.0000 2945.0 -0.0000 -0.0000 3276.5 -0.0000 -0.0000 --4.4 -4.0 132 9.0 0.0093 0.0093 11.0 0.0077 0.0077 13.5 0.0063 0.0063 16.5 0.0051 0.0051 19.5 0.0043 0.0043 22.5 0.0037 0.0037 26.0 0.0032 0.0032 30.0 0.0028 0.0028 34.5 0.0024 0.0024 40.0 0.0021 0.0021 46.0 0.0018 0.0018 52.5 0.0016 0.0016 60.0 0.0014 0.0014 69.0 0.0013 0.0013 79.0 0.0011 0.0011 90.5 0.0010 0.0010 105.5 0.0008 0.0008 123.5 0.0007 0.0007 143.0 0.0006 0.0006 163.5 0.0006 0.0006 185.0 0.0005 0.0005 208.0 0.0005 0.0005 232.5 0.0004 0.0004 258.5 0.0004 0.0004 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1945.0 0.0001 0.0001 2119.0 0.0001 0.0001 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.0 -3.5 132 9.0 0.0343 0.0343 11.0 0.0284 0.0284 13.5 0.0231 0.0231 16.5 0.0187 0.0187 19.5 0.0156 0.0156 22.5 0.0134 0.0134 26.0 0.0115 0.0115 30.0 0.0099 0.0099 34.5 0.0086 0.0086 40.0 0.0074 0.0074 46.0 0.0064 0.0064 52.5 0.0056 0.0056 60.0 0.0049 0.0049 69.0 0.0043 0.0043 79.0 0.0038 0.0038 90.5 0.0033 0.0033 105.5 0.0029 0.0029 123.5 0.0025 0.0025 143.0 0.0021 0.0021 163.5 0.0019 0.0019 185.0 0.0017 0.0017 208.0 0.0015 0.0015 232.5 0.0014 0.0014 258.5 0.0012 0.0012 286.0 0.0011 0.0011 331.0 0.0010 0.0010 396.0 0.0008 0.0008 468.5 0.0007 0.0007 549.5 0.0006 0.0006 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0004 0.0004 968.5 0.0004 0.0004 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1945.0 0.0002 0.0002 2119.0 0.0002 0.0002 2369.0 0.0002 0.0002 2643.5 0.0001 0.0001 2945.0 0.0001 0.0001 3276.5 0.0001 0.0001 --3.5 -3.0 132 9.0 0.0449 0.0449 11.0 0.0374 0.0374 13.5 0.0306 0.0306 16.5 0.0250 0.0250 19.5 0.0211 0.0211 22.5 0.0183 0.0183 26.0 0.0158 0.0158 30.0 0.0137 0.0137 34.5 0.0120 0.0120 40.0 0.0103 0.0103 46.0 0.0090 0.0090 52.5 0.0079 0.0079 60.0 0.0069 0.0069 69.0 0.0060 0.0060 79.0 0.0053 0.0053 90.5 0.0046 0.0046 105.5 0.0040 0.0040 123.5 0.0034 0.0034 143.0 0.0030 0.0030 163.5 0.0026 0.0026 185.0 0.0023 0.0023 208.0 0.0021 0.0021 232.5 0.0019 0.0019 258.5 0.0017 0.0017 286.0 0.0016 0.0016 331.0 0.0014 0.0014 396.0 0.0012 0.0012 468.5 0.0010 0.0010 549.5 0.0009 0.0009 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0002 0.0002 2643.5 0.0002 0.0002 2945.0 0.0002 0.0002 3276.5 0.0002 0.0002 --3.0 -2.8 132 9.0 -0.0073 -0.0073 11.0 -0.0060 -0.0060 13.5 -0.0049 -0.0049 16.5 -0.0039 -0.0039 19.5 -0.0033 -0.0033 22.5 -0.0028 -0.0028 26.0 -0.0024 -0.0024 30.0 -0.0021 -0.0021 34.5 -0.0018 -0.0018 40.0 -0.0016 -0.0016 46.0 -0.0013 -0.0013 52.5 -0.0012 -0.0012 60.0 -0.0010 -0.0010 69.0 -0.0009 -0.0009 79.0 -0.0008 -0.0008 90.5 -0.0007 -0.0007 105.5 -0.0006 -0.0006 123.5 -0.0005 -0.0005 143.0 -0.0004 -0.0004 163.5 -0.0004 -0.0004 185.0 -0.0003 -0.0003 208.0 -0.0003 -0.0003 232.5 -0.0003 -0.0003 258.5 -0.0002 -0.0002 286.0 -0.0002 -0.0002 331.0 -0.0002 -0.0002 396.0 -0.0002 -0.0002 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1945.0 -0.0000 -0.0000 2119.0 -0.0000 -0.0000 2369.0 -0.0000 -0.0000 2643.5 -0.0000 -0.0000 2945.0 -0.0000 -0.0000 3276.5 -0.0000 -0.0000 --2.8 -2.6 132 9.0 -0.0306 -0.0306 11.0 -0.0253 -0.0253 13.5 -0.0205 -0.0205 16.5 -0.0165 -0.0165 19.5 -0.0139 -0.0139 22.5 -0.0119 -0.0119 26.0 -0.0102 -0.0102 30.0 -0.0088 -0.0088 34.5 -0.0077 -0.0077 40.0 -0.0066 -0.0066 46.0 -0.0058 -0.0058 52.5 -0.0051 -0.0051 60.0 -0.0045 -0.0045 69.0 -0.0039 -0.0039 79.0 -0.0034 -0.0034 90.5 -0.0030 -0.0030 105.5 -0.0026 -0.0026 123.5 -0.0022 -0.0022 143.0 -0.0019 -0.0019 163.5 -0.0017 -0.0017 185.0 -0.0015 -0.0015 208.0 -0.0013 -0.0013 232.5 -0.0012 -0.0012 258.5 -0.0011 -0.0011 286.0 -0.0010 -0.0010 331.0 -0.0008 -0.0008 396.0 -0.0007 -0.0007 468.5 -0.0006 -0.0006 549.5 -0.0005 -0.0005 639.0 -0.0004 -0.0004 738.0 -0.0004 -0.0004 847.5 -0.0003 -0.0003 968.5 -0.0003 -0.0003 1102.0 -0.0003 -0.0003 1249.5 -0.0002 -0.0002 1412.0 -0.0002 -0.0002 1590.5 -0.0002 -0.0002 1787.0 -0.0002 -0.0002 1945.0 -0.0002 -0.0002 2119.0 -0.0001 -0.0001 2369.0 -0.0001 -0.0001 2643.5 -0.0001 -0.0001 2945.0 -0.0001 -0.0001 3276.5 -0.0001 -0.0001 --2.6 -2.4 132 9.0 -0.0456 -0.0456 11.0 -0.0389 -0.0389 13.5 -0.0325 -0.0325 16.5 -0.0271 -0.0271 19.5 -0.0234 -0.0234 22.5 -0.0206 -0.0206 26.0 -0.0181 -0.0181 30.0 -0.0160 -0.0160 34.5 -0.0142 -0.0142 40.0 -0.0125 -0.0125 46.0 -0.0111 -0.0111 52.5 -0.0100 -0.0100 60.0 -0.0089 -0.0089 69.0 -0.0079 -0.0079 79.0 -0.0070 -0.0070 90.5 -0.0063 -0.0063 105.5 -0.0055 -0.0055 123.5 -0.0048 -0.0048 143.0 -0.0042 -0.0042 163.5 -0.0038 -0.0038 185.0 -0.0034 -0.0034 208.0 -0.0030 -0.0030 232.5 -0.0028 -0.0028 258.5 -0.0025 -0.0025 286.0 -0.0023 -0.0023 331.0 -0.0020 -0.0020 396.0 -0.0017 -0.0017 468.5 -0.0015 -0.0015 549.5 -0.0013 -0.0013 639.0 -0.0011 -0.0011 738.0 -0.0010 -0.0010 847.5 -0.0009 -0.0009 968.5 -0.0008 -0.0008 1102.0 -0.0007 -0.0007 1249.5 -0.0006 -0.0006 1412.0 -0.0006 -0.0006 1590.5 -0.0005 -0.0005 1787.0 -0.0005 -0.0005 1945.0 -0.0004 -0.0004 2119.0 -0.0004 -0.0004 2369.0 -0.0004 -0.0004 2643.5 -0.0003 -0.0003 2945.0 -0.0003 -0.0003 3276.5 -0.0003 -0.0003 --2.4 -2.2 132 9.0 -0.0210 -0.0210 11.0 -0.0186 -0.0186 13.5 -0.0163 -0.0163 16.5 -0.0141 -0.0141 19.5 -0.0125 -0.0125 22.5 -0.0112 -0.0112 26.0 -0.0100 -0.0100 30.0 -0.0090 -0.0090 34.5 -0.0081 -0.0081 40.0 -0.0072 -0.0072 46.0 -0.0065 -0.0065 52.5 -0.0058 -0.0058 60.0 -0.0053 -0.0053 69.0 -0.0047 -0.0047 79.0 -0.0042 -0.0042 90.5 -0.0038 -0.0038 105.5 -0.0034 -0.0034 123.5 -0.0030 -0.0030 143.0 -0.0027 -0.0027 163.5 -0.0024 -0.0024 185.0 -0.0021 -0.0021 208.0 -0.0020 -0.0020 232.5 -0.0018 -0.0018 258.5 -0.0016 -0.0016 286.0 -0.0015 -0.0015 331.0 -0.0013 -0.0013 396.0 -0.0011 -0.0011 468.5 -0.0010 -0.0010 549.5 -0.0009 -0.0009 639.0 -0.0007 -0.0007 738.0 -0.0007 -0.0007 847.5 -0.0006 -0.0006 968.5 -0.0005 -0.0005 1102.0 -0.0005 -0.0005 1249.5 -0.0004 -0.0004 1412.0 -0.0004 -0.0004 1590.5 -0.0003 -0.0003 1787.0 -0.0003 -0.0003 1945.0 -0.0003 -0.0003 2119.0 -0.0003 -0.0003 2369.0 -0.0002 -0.0002 2643.5 -0.0002 -0.0002 2945.0 -0.0002 -0.0002 3276.5 -0.0002 -0.0002 --2.2 -2.0 132 9.0 -0.0104 -0.0104 11.0 -0.0092 -0.0092 13.5 -0.0081 -0.0081 16.5 -0.0071 -0.0071 19.5 -0.0063 -0.0063 22.5 -0.0057 -0.0057 26.0 -0.0051 -0.0051 30.0 -0.0046 -0.0046 34.5 -0.0041 -0.0041 40.0 -0.0037 -0.0037 46.0 -0.0033 -0.0033 52.5 -0.0030 -0.0030 60.0 -0.0027 -0.0027 69.0 -0.0024 -0.0024 79.0 -0.0021 -0.0021 90.5 -0.0019 -0.0019 105.5 -0.0017 -0.0017 123.5 -0.0015 -0.0015 143.0 -0.0013 -0.0013 163.5 -0.0012 -0.0012 185.0 -0.0011 -0.0011 208.0 -0.0010 -0.0010 232.5 -0.0009 -0.0009 258.5 -0.0008 -0.0008 286.0 -0.0008 -0.0008 331.0 -0.0007 -0.0007 396.0 -0.0006 -0.0006 468.5 -0.0005 -0.0005 549.5 -0.0004 -0.0004 639.0 -0.0004 -0.0004 738.0 -0.0003 -0.0003 847.5 -0.0003 -0.0003 968.5 -0.0003 -0.0003 1102.0 -0.0002 -0.0002 1249.5 -0.0002 -0.0002 1412.0 -0.0002 -0.0002 1590.5 -0.0002 -0.0002 1787.0 -0.0002 -0.0002 1945.0 -0.0001 -0.0001 2119.0 -0.0001 -0.0001 2369.0 -0.0001 -0.0001 2643.5 -0.0001 -0.0001 2945.0 -0.0001 -0.0001 3276.5 -0.0001 -0.0001 --2.0 -1.8 132 9.0 0.0002 0.0002 11.0 0.0001 0.0001 13.5 0.0001 0.0001 16.5 0.0001 0.0001 19.5 0.0001 0.0001 22.5 0.0001 0.0001 26.0 0.0001 0.0001 30.0 0.0001 0.0001 34.5 0.0001 0.0001 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.8 -1.6 132 9.0 0.0027 0.0027 11.0 0.0023 0.0023 13.5 0.0019 0.0019 16.5 0.0016 0.0016 19.5 0.0014 0.0014 22.5 0.0012 0.0012 26.0 0.0011 0.0011 30.0 0.0009 0.0009 34.5 0.0008 0.0008 40.0 0.0007 0.0007 46.0 0.0006 0.0006 52.5 0.0006 0.0006 60.0 0.0005 0.0005 69.0 0.0004 0.0004 79.0 0.0004 0.0004 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0002 0.0002 163.5 0.0002 0.0002 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.6 -1.4 132 9.0 0.0034 0.0034 11.0 0.0029 0.0029 13.5 0.0024 0.0024 16.5 0.0020 0.0020 19.5 0.0017 0.0017 22.5 0.0015 0.0015 26.0 0.0013 0.0013 30.0 0.0012 0.0012 34.5 0.0010 0.0010 40.0 0.0009 0.0009 46.0 0.0008 0.0008 52.5 0.0007 0.0007 60.0 0.0006 0.0006 69.0 0.0005 0.0005 79.0 0.0005 0.0005 90.5 0.0004 0.0004 105.5 0.0004 0.0004 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0002 0.0002 258.5 0.0002 0.0002 286.0 0.0002 0.0002 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.4 -1.2 132 9.0 0.0037 0.0037 11.0 0.0031 0.0031 13.5 0.0026 0.0026 16.5 0.0022 0.0022 19.5 0.0019 0.0019 22.5 0.0017 0.0017 26.0 0.0015 0.0015 30.0 0.0013 0.0013 34.5 0.0012 0.0012 40.0 0.0011 0.0011 46.0 0.0009 0.0009 52.5 0.0008 0.0008 60.0 0.0007 0.0007 69.0 0.0007 0.0007 79.0 0.0006 0.0006 90.5 0.0005 0.0005 105.5 0.0005 0.0005 123.5 0.0004 0.0004 143.0 0.0004 0.0004 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0002 0.0002 258.5 0.0002 0.0002 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.2 -1.0 132 9.0 0.0031 0.0031 11.0 0.0026 0.0026 13.5 0.0022 0.0022 16.5 0.0019 0.0019 19.5 0.0016 0.0016 22.5 0.0014 0.0014 26.0 0.0013 0.0013 30.0 0.0011 0.0011 34.5 0.0010 0.0010 40.0 0.0009 0.0009 46.0 0.0008 0.0008 52.5 0.0007 0.0007 60.0 0.0006 0.0006 69.0 0.0005 0.0005 79.0 0.0005 0.0005 90.5 0.0004 0.0004 105.5 0.0004 0.0004 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0002 0.0002 258.5 0.0002 0.0002 286.0 0.0002 0.0002 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.0 -0.8 132 9.0 0.0026 0.0026 11.0 0.0022 0.0022 13.5 0.0018 0.0018 16.5 0.0015 0.0015 19.5 0.0013 0.0013 22.5 0.0011 0.0011 26.0 0.0010 0.0010 30.0 0.0009 0.0009 34.5 0.0008 0.0008 40.0 0.0007 0.0007 46.0 0.0006 0.0006 52.5 0.0005 0.0005 60.0 0.0005 0.0005 69.0 0.0004 0.0004 79.0 0.0004 0.0004 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0002 0.0002 163.5 0.0002 0.0002 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.8 -0.6 132 9.0 0.0024 0.0024 11.0 0.0020 0.0020 13.5 0.0017 0.0017 16.5 0.0014 0.0014 19.5 0.0012 0.0012 22.5 0.0011 0.0011 26.0 0.0009 0.0009 30.0 0.0008 0.0008 34.5 0.0007 0.0007 40.0 0.0006 0.0006 46.0 0.0006 0.0006 52.5 0.0005 0.0005 60.0 0.0004 0.0004 69.0 0.0004 0.0004 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0002 0.0002 143.0 0.0002 0.0002 163.5 0.0002 0.0002 185.0 0.0002 0.0002 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.6 -0.4 132 9.0 0.0043 0.0043 11.0 0.0036 0.0036 13.5 0.0030 0.0030 16.5 0.0025 0.0025 19.5 0.0021 0.0021 22.5 0.0019 0.0019 26.0 0.0016 0.0016 30.0 0.0014 0.0014 34.5 0.0013 0.0013 40.0 0.0011 0.0011 46.0 0.0010 0.0010 52.5 0.0009 0.0009 60.0 0.0008 0.0008 69.0 0.0007 0.0007 79.0 0.0006 0.0006 90.5 0.0005 0.0005 105.5 0.0005 0.0005 123.5 0.0004 0.0004 143.0 0.0004 0.0004 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0002 0.0002 258.5 0.0002 0.0002 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.4 -0.2 132 9.0 0.0053 0.0053 11.0 0.0044 0.0044 13.5 0.0037 0.0037 16.5 0.0031 0.0031 19.5 0.0026 0.0026 22.5 0.0023 0.0023 26.0 0.0020 0.0020 30.0 0.0018 0.0018 34.5 0.0016 0.0016 40.0 0.0014 0.0014 46.0 0.0012 0.0012 52.5 0.0011 0.0011 60.0 0.0010 0.0010 69.0 0.0008 0.0008 79.0 0.0008 0.0008 90.5 0.0007 0.0007 105.5 0.0006 0.0006 123.5 0.0005 0.0005 143.0 0.0004 0.0004 163.5 0.0004 0.0004 185.0 0.0004 0.0004 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0002 0.0002 468.5 0.0002 0.0002 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.2 0.0 132 9.0 0.0066 0.0066 11.0 0.0056 0.0056 13.5 0.0046 0.0046 16.5 0.0038 0.0038 19.5 0.0033 0.0033 22.5 0.0029 0.0029 26.0 0.0025 0.0025 30.0 0.0022 0.0022 34.5 0.0020 0.0020 40.0 0.0017 0.0017 46.0 0.0015 0.0015 52.5 0.0013 0.0013 60.0 0.0012 0.0012 69.0 0.0011 0.0011 79.0 0.0009 0.0009 90.5 0.0008 0.0008 105.5 0.0007 0.0007 123.5 0.0006 0.0006 143.0 0.0006 0.0006 163.5 0.0005 0.0005 185.0 0.0004 0.0004 208.0 0.0004 0.0004 232.5 0.0004 0.0004 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0002 0.0002 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1945.0 0.0001 0.0001 2119.0 0.0001 0.0001 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.0 0.2 132 9.0 0.0066 0.0066 11.0 0.0056 0.0056 13.5 0.0046 0.0046 16.5 0.0038 0.0038 19.5 0.0033 0.0033 22.5 0.0029 0.0029 26.0 0.0025 0.0025 30.0 0.0022 0.0022 34.5 0.0020 0.0020 40.0 0.0017 0.0017 46.0 0.0015 0.0015 52.5 0.0013 0.0013 60.0 0.0012 0.0012 69.0 0.0011 0.0011 79.0 0.0009 0.0009 90.5 0.0008 0.0008 105.5 0.0007 0.0007 123.5 0.0006 0.0006 143.0 0.0006 0.0006 163.5 0.0005 0.0005 185.0 0.0004 0.0004 208.0 0.0004 0.0004 232.5 0.0004 0.0004 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0002 0.0002 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1945.0 0.0001 0.0001 2119.0 0.0001 0.0001 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.2 0.4 132 9.0 0.0053 0.0053 11.0 0.0044 0.0044 13.5 0.0037 0.0037 16.5 0.0031 0.0031 19.5 0.0026 0.0026 22.5 0.0023 0.0023 26.0 0.0020 0.0020 30.0 0.0018 0.0018 34.5 0.0016 0.0016 40.0 0.0014 0.0014 46.0 0.0012 0.0012 52.5 0.0011 0.0011 60.0 0.0010 0.0010 69.0 0.0008 0.0008 79.0 0.0008 0.0008 90.5 0.0007 0.0007 105.5 0.0006 0.0006 123.5 0.0005 0.0005 143.0 0.0004 0.0004 163.5 0.0004 0.0004 185.0 0.0004 0.0004 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0002 0.0002 468.5 0.0002 0.0002 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.4 0.6 132 9.0 0.0043 0.0043 11.0 0.0036 0.0036 13.5 0.0030 0.0030 16.5 0.0025 0.0025 19.5 0.0021 0.0021 22.5 0.0019 0.0019 26.0 0.0016 0.0016 30.0 0.0014 0.0014 34.5 0.0013 0.0013 40.0 0.0011 0.0011 46.0 0.0010 0.0010 52.5 0.0009 0.0009 60.0 0.0008 0.0008 69.0 0.0007 0.0007 79.0 0.0006 0.0006 90.5 0.0005 0.0005 105.5 0.0005 0.0005 123.5 0.0004 0.0004 143.0 0.0004 0.0004 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0002 0.0002 258.5 0.0002 0.0002 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.6 0.8 132 9.0 0.0024 0.0024 11.0 0.0020 0.0020 13.5 0.0017 0.0017 16.5 0.0014 0.0014 19.5 0.0012 0.0012 22.5 0.0011 0.0011 26.0 0.0009 0.0009 30.0 0.0008 0.0008 34.5 0.0007 0.0007 40.0 0.0006 0.0006 46.0 0.0006 0.0006 52.5 0.0005 0.0005 60.0 0.0004 0.0004 69.0 0.0004 0.0004 79.0 0.0003 0.0003 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0002 0.0002 143.0 0.0002 0.0002 163.5 0.0002 0.0002 185.0 0.0002 0.0002 208.0 0.0001 0.0001 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.8 1.0 132 9.0 0.0026 0.0026 11.0 0.0022 0.0022 13.5 0.0018 0.0018 16.5 0.0015 0.0015 19.5 0.0013 0.0013 22.5 0.0011 0.0011 26.0 0.0010 0.0010 30.0 0.0009 0.0009 34.5 0.0008 0.0008 40.0 0.0007 0.0007 46.0 0.0006 0.0006 52.5 0.0005 0.0005 60.0 0.0005 0.0005 69.0 0.0004 0.0004 79.0 0.0004 0.0004 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0002 0.0002 163.5 0.0002 0.0002 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.0 1.2 132 9.0 0.0031 0.0031 11.0 0.0026 0.0026 13.5 0.0022 0.0022 16.5 0.0019 0.0019 19.5 0.0016 0.0016 22.5 0.0014 0.0014 26.0 0.0013 0.0013 30.0 0.0011 0.0011 34.5 0.0010 0.0010 40.0 0.0009 0.0009 46.0 0.0008 0.0008 52.5 0.0007 0.0007 60.0 0.0006 0.0006 69.0 0.0005 0.0005 79.0 0.0005 0.0005 90.5 0.0004 0.0004 105.5 0.0004 0.0004 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0002 0.0002 258.5 0.0002 0.0002 286.0 0.0002 0.0002 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.2 1.4 132 9.0 0.0037 0.0037 11.0 0.0031 0.0031 13.5 0.0026 0.0026 16.5 0.0022 0.0022 19.5 0.0019 0.0019 22.5 0.0017 0.0017 26.0 0.0015 0.0015 30.0 0.0013 0.0013 34.5 0.0012 0.0012 40.0 0.0011 0.0011 46.0 0.0009 0.0009 52.5 0.0008 0.0008 60.0 0.0007 0.0007 69.0 0.0007 0.0007 79.0 0.0006 0.0006 90.5 0.0005 0.0005 105.5 0.0005 0.0005 123.5 0.0004 0.0004 143.0 0.0004 0.0004 163.5 0.0003 0.0003 185.0 0.0003 0.0003 208.0 0.0003 0.0003 232.5 0.0002 0.0002 258.5 0.0002 0.0002 286.0 0.0002 0.0002 331.0 0.0002 0.0002 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.4 1.6 132 9.0 0.0034 0.0034 11.0 0.0029 0.0029 13.5 0.0024 0.0024 16.5 0.0020 0.0020 19.5 0.0017 0.0017 22.5 0.0015 0.0015 26.0 0.0013 0.0013 30.0 0.0012 0.0012 34.5 0.0010 0.0010 40.0 0.0009 0.0009 46.0 0.0008 0.0008 52.5 0.0007 0.0007 60.0 0.0006 0.0006 69.0 0.0005 0.0005 79.0 0.0005 0.0005 90.5 0.0004 0.0004 105.5 0.0004 0.0004 123.5 0.0003 0.0003 143.0 0.0003 0.0003 163.5 0.0003 0.0003 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0002 0.0002 258.5 0.0002 0.0002 286.0 0.0002 0.0002 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.6 1.8 132 9.0 0.0027 0.0027 11.0 0.0023 0.0023 13.5 0.0019 0.0019 16.5 0.0016 0.0016 19.5 0.0014 0.0014 22.5 0.0012 0.0012 26.0 0.0011 0.0011 30.0 0.0009 0.0009 34.5 0.0008 0.0008 40.0 0.0007 0.0007 46.0 0.0006 0.0006 52.5 0.0006 0.0006 60.0 0.0005 0.0005 69.0 0.0004 0.0004 79.0 0.0004 0.0004 90.5 0.0003 0.0003 105.5 0.0003 0.0003 123.5 0.0003 0.0003 143.0 0.0002 0.0002 163.5 0.0002 0.0002 185.0 0.0002 0.0002 208.0 0.0002 0.0002 232.5 0.0001 0.0001 258.5 0.0001 0.0001 286.0 0.0001 0.0001 331.0 0.0001 0.0001 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0001 0.0001 639.0 0.0001 0.0001 738.0 0.0001 0.0001 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.8 2.0 132 9.0 0.0002 0.0002 11.0 0.0001 0.0001 13.5 0.0001 0.0001 16.5 0.0001 0.0001 19.5 0.0001 0.0001 22.5 0.0001 0.0001 26.0 0.0001 0.0001 30.0 0.0001 0.0001 34.5 0.0001 0.0001 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.0 2.2 132 9.0 -0.0104 -0.0104 11.0 -0.0092 -0.0092 13.5 -0.0081 -0.0081 16.5 -0.0071 -0.0071 19.5 -0.0063 -0.0063 22.5 -0.0057 -0.0057 26.0 -0.0051 -0.0051 30.0 -0.0046 -0.0046 34.5 -0.0041 -0.0041 40.0 -0.0037 -0.0037 46.0 -0.0033 -0.0033 52.5 -0.0030 -0.0030 60.0 -0.0027 -0.0027 69.0 -0.0024 -0.0024 79.0 -0.0021 -0.0021 90.5 -0.0019 -0.0019 105.5 -0.0017 -0.0017 123.5 -0.0015 -0.0015 143.0 -0.0013 -0.0013 163.5 -0.0012 -0.0012 185.0 -0.0011 -0.0011 208.0 -0.0010 -0.0010 232.5 -0.0009 -0.0009 258.5 -0.0008 -0.0008 286.0 -0.0008 -0.0008 331.0 -0.0007 -0.0007 396.0 -0.0006 -0.0006 468.5 -0.0005 -0.0005 549.5 -0.0004 -0.0004 639.0 -0.0004 -0.0004 738.0 -0.0003 -0.0003 847.5 -0.0003 -0.0003 968.5 -0.0003 -0.0003 1102.0 -0.0002 -0.0002 1249.5 -0.0002 -0.0002 1412.0 -0.0002 -0.0002 1590.5 -0.0002 -0.0002 1787.0 -0.0002 -0.0002 1945.0 -0.0001 -0.0001 2119.0 -0.0001 -0.0001 2369.0 -0.0001 -0.0001 2643.5 -0.0001 -0.0001 2945.0 -0.0001 -0.0001 3276.5 -0.0001 -0.0001 -2.2 2.4 132 9.0 -0.0210 -0.0210 11.0 -0.0186 -0.0186 13.5 -0.0163 -0.0163 16.5 -0.0141 -0.0141 19.5 -0.0125 -0.0125 22.5 -0.0112 -0.0112 26.0 -0.0100 -0.0100 30.0 -0.0090 -0.0090 34.5 -0.0081 -0.0081 40.0 -0.0072 -0.0072 46.0 -0.0065 -0.0065 52.5 -0.0058 -0.0058 60.0 -0.0053 -0.0053 69.0 -0.0047 -0.0047 79.0 -0.0042 -0.0042 90.5 -0.0038 -0.0038 105.5 -0.0034 -0.0034 123.5 -0.0030 -0.0030 143.0 -0.0027 -0.0027 163.5 -0.0024 -0.0024 185.0 -0.0021 -0.0021 208.0 -0.0020 -0.0020 232.5 -0.0018 -0.0018 258.5 -0.0016 -0.0016 286.0 -0.0015 -0.0015 331.0 -0.0013 -0.0013 396.0 -0.0011 -0.0011 468.5 -0.0010 -0.0010 549.5 -0.0009 -0.0009 639.0 -0.0007 -0.0007 738.0 -0.0007 -0.0007 847.5 -0.0006 -0.0006 968.5 -0.0005 -0.0005 1102.0 -0.0005 -0.0005 1249.5 -0.0004 -0.0004 1412.0 -0.0004 -0.0004 1590.5 -0.0003 -0.0003 1787.0 -0.0003 -0.0003 1945.0 -0.0003 -0.0003 2119.0 -0.0003 -0.0003 2369.0 -0.0002 -0.0002 2643.5 -0.0002 -0.0002 2945.0 -0.0002 -0.0002 3276.5 -0.0002 -0.0002 -2.4 2.6 132 9.0 -0.0456 -0.0456 11.0 -0.0389 -0.0389 13.5 -0.0325 -0.0325 16.5 -0.0271 -0.0271 19.5 -0.0234 -0.0234 22.5 -0.0206 -0.0206 26.0 -0.0181 -0.0181 30.0 -0.0160 -0.0160 34.5 -0.0142 -0.0142 40.0 -0.0125 -0.0125 46.0 -0.0111 -0.0111 52.5 -0.0100 -0.0100 60.0 -0.0089 -0.0089 69.0 -0.0079 -0.0079 79.0 -0.0070 -0.0070 90.5 -0.0063 -0.0063 105.5 -0.0055 -0.0055 123.5 -0.0048 -0.0048 143.0 -0.0042 -0.0042 163.5 -0.0038 -0.0038 185.0 -0.0034 -0.0034 208.0 -0.0030 -0.0030 232.5 -0.0028 -0.0028 258.5 -0.0025 -0.0025 286.0 -0.0023 -0.0023 331.0 -0.0020 -0.0020 396.0 -0.0017 -0.0017 468.5 -0.0015 -0.0015 549.5 -0.0013 -0.0013 639.0 -0.0011 -0.0011 738.0 -0.0010 -0.0010 847.5 -0.0009 -0.0009 968.5 -0.0008 -0.0008 1102.0 -0.0007 -0.0007 1249.5 -0.0006 -0.0006 1412.0 -0.0006 -0.0006 1590.5 -0.0005 -0.0005 1787.0 -0.0005 -0.0005 1945.0 -0.0004 -0.0004 2119.0 -0.0004 -0.0004 2369.0 -0.0004 -0.0004 2643.5 -0.0003 -0.0003 2945.0 -0.0003 -0.0003 3276.5 -0.0003 -0.0003 -2.6 2.8 132 9.0 -0.0306 -0.0306 11.0 -0.0253 -0.0253 13.5 -0.0205 -0.0205 16.5 -0.0165 -0.0165 19.5 -0.0139 -0.0139 22.5 -0.0119 -0.0119 26.0 -0.0102 -0.0102 30.0 -0.0088 -0.0088 34.5 -0.0077 -0.0077 40.0 -0.0066 -0.0066 46.0 -0.0058 -0.0058 52.5 -0.0051 -0.0051 60.0 -0.0045 -0.0045 69.0 -0.0039 -0.0039 79.0 -0.0034 -0.0034 90.5 -0.0030 -0.0030 105.5 -0.0026 -0.0026 123.5 -0.0022 -0.0022 143.0 -0.0019 -0.0019 163.5 -0.0017 -0.0017 185.0 -0.0015 -0.0015 208.0 -0.0013 -0.0013 232.5 -0.0012 -0.0012 258.5 -0.0011 -0.0011 286.0 -0.0010 -0.0010 331.0 -0.0008 -0.0008 396.0 -0.0007 -0.0007 468.5 -0.0006 -0.0006 549.5 -0.0005 -0.0005 639.0 -0.0004 -0.0004 738.0 -0.0004 -0.0004 847.5 -0.0003 -0.0003 968.5 -0.0003 -0.0003 1102.0 -0.0003 -0.0003 1249.5 -0.0002 -0.0002 1412.0 -0.0002 -0.0002 1590.5 -0.0002 -0.0002 1787.0 -0.0002 -0.0002 1945.0 -0.0002 -0.0002 2119.0 -0.0001 -0.0001 2369.0 -0.0001 -0.0001 2643.5 -0.0001 -0.0001 2945.0 -0.0001 -0.0001 3276.5 -0.0001 -0.0001 -2.8 3.0 132 9.0 -0.0073 -0.0073 11.0 -0.0060 -0.0060 13.5 -0.0049 -0.0049 16.5 -0.0039 -0.0039 19.5 -0.0033 -0.0033 22.5 -0.0028 -0.0028 26.0 -0.0024 -0.0024 30.0 -0.0021 -0.0021 34.5 -0.0018 -0.0018 40.0 -0.0016 -0.0016 46.0 -0.0013 -0.0013 52.5 -0.0012 -0.0012 60.0 -0.0010 -0.0010 69.0 -0.0009 -0.0009 79.0 -0.0008 -0.0008 90.5 -0.0007 -0.0007 105.5 -0.0006 -0.0006 123.5 -0.0005 -0.0005 143.0 -0.0004 -0.0004 163.5 -0.0004 -0.0004 185.0 -0.0003 -0.0003 208.0 -0.0003 -0.0003 232.5 -0.0003 -0.0003 258.5 -0.0002 -0.0002 286.0 -0.0002 -0.0002 331.0 -0.0002 -0.0002 396.0 -0.0002 -0.0002 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0001 -0.0001 738.0 -0.0001 -0.0001 847.5 -0.0001 -0.0001 968.5 -0.0001 -0.0001 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1945.0 -0.0000 -0.0000 2119.0 -0.0000 -0.0000 2369.0 -0.0000 -0.0000 2643.5 -0.0000 -0.0000 2945.0 -0.0000 -0.0000 3276.5 -0.0000 -0.0000 -3.0 3.5 132 9.0 0.0449 0.0449 11.0 0.0374 0.0374 13.5 0.0306 0.0306 16.5 0.0250 0.0250 19.5 0.0211 0.0211 22.5 0.0183 0.0183 26.0 0.0158 0.0158 30.0 0.0137 0.0137 34.5 0.0120 0.0120 40.0 0.0103 0.0103 46.0 0.0090 0.0090 52.5 0.0079 0.0079 60.0 0.0069 0.0069 69.0 0.0060 0.0060 79.0 0.0053 0.0053 90.5 0.0046 0.0046 105.5 0.0040 0.0040 123.5 0.0034 0.0034 143.0 0.0030 0.0030 163.5 0.0026 0.0026 185.0 0.0023 0.0023 208.0 0.0021 0.0021 232.5 0.0019 0.0019 258.5 0.0017 0.0017 286.0 0.0016 0.0016 331.0 0.0014 0.0014 396.0 0.0012 0.0012 468.5 0.0010 0.0010 549.5 0.0009 0.0009 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0006 0.0006 968.5 0.0005 0.0005 1102.0 0.0005 0.0005 1249.5 0.0004 0.0004 1412.0 0.0004 0.0004 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0002 0.0002 2643.5 0.0002 0.0002 2945.0 0.0002 0.0002 3276.5 0.0002 0.0002 -3.5 4.0 132 9.0 0.0343 0.0343 11.0 0.0284 0.0284 13.5 0.0231 0.0231 16.5 0.0187 0.0187 19.5 0.0156 0.0156 22.5 0.0134 0.0134 26.0 0.0115 0.0115 30.0 0.0099 0.0099 34.5 0.0086 0.0086 40.0 0.0074 0.0074 46.0 0.0064 0.0064 52.5 0.0056 0.0056 60.0 0.0049 0.0049 69.0 0.0043 0.0043 79.0 0.0038 0.0038 90.5 0.0033 0.0033 105.5 0.0029 0.0029 123.5 0.0025 0.0025 143.0 0.0021 0.0021 163.5 0.0019 0.0019 185.0 0.0017 0.0017 208.0 0.0015 0.0015 232.5 0.0014 0.0014 258.5 0.0012 0.0012 286.0 0.0011 0.0011 331.0 0.0010 0.0010 396.0 0.0008 0.0008 468.5 0.0007 0.0007 549.5 0.0006 0.0006 639.0 0.0005 0.0005 738.0 0.0005 0.0005 847.5 0.0004 0.0004 968.5 0.0004 0.0004 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0002 0.0002 1787.0 0.0002 0.0002 1945.0 0.0002 0.0002 2119.0 0.0002 0.0002 2369.0 0.0002 0.0002 2643.5 0.0001 0.0001 2945.0 0.0001 0.0001 3276.5 0.0001 0.0001 -4.0 4.4 132 9.0 0.0093 0.0093 11.0 0.0077 0.0077 13.5 0.0063 0.0063 16.5 0.0051 0.0051 19.5 0.0043 0.0043 22.5 0.0037 0.0037 26.0 0.0032 0.0032 30.0 0.0028 0.0028 34.5 0.0024 0.0024 40.0 0.0021 0.0021 46.0 0.0018 0.0018 52.5 0.0016 0.0016 60.0 0.0014 0.0014 69.0 0.0013 0.0013 79.0 0.0011 0.0011 90.5 0.0010 0.0010 105.5 0.0008 0.0008 123.5 0.0007 0.0007 143.0 0.0006 0.0006 163.5 0.0006 0.0006 185.0 0.0005 0.0005 208.0 0.0005 0.0005 232.5 0.0004 0.0004 258.5 0.0004 0.0004 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0002 0.0002 549.5 0.0002 0.0002 639.0 0.0002 0.0002 738.0 0.0001 0.0001 847.5 0.0001 0.0001 968.5 0.0001 0.0001 1102.0 0.0001 0.0001 1249.5 0.0001 0.0001 1412.0 0.0001 0.0001 1590.5 0.0001 0.0001 1787.0 0.0001 0.0001 1945.0 0.0001 0.0001 2119.0 0.0001 0.0001 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.4 5.0 132 9.0 -0.0020 -0.0020 11.0 -0.0017 -0.0017 13.5 -0.0014 -0.0014 16.5 -0.0012 -0.0012 19.5 -0.0010 -0.0010 22.5 -0.0009 -0.0009 26.0 -0.0008 -0.0008 30.0 -0.0007 -0.0007 34.5 -0.0006 -0.0006 40.0 -0.0005 -0.0005 46.0 -0.0005 -0.0005 52.5 -0.0004 -0.0004 60.0 -0.0004 -0.0004 69.0 -0.0003 -0.0003 79.0 -0.0003 -0.0003 90.5 -0.0002 -0.0002 105.5 -0.0002 -0.0002 123.5 -0.0002 -0.0002 143.0 -0.0002 -0.0002 163.5 -0.0001 -0.0001 185.0 -0.0001 -0.0001 208.0 -0.0001 -0.0001 232.5 -0.0001 -0.0001 258.5 -0.0001 -0.0001 286.0 -0.0001 -0.0001 331.0 -0.0001 -0.0001 396.0 -0.0001 -0.0001 468.5 -0.0001 -0.0001 549.5 -0.0001 -0.0001 639.0 -0.0000 -0.0000 738.0 -0.0000 -0.0000 847.5 -0.0000 -0.0000 968.5 -0.0000 -0.0000 1102.0 -0.0000 -0.0000 1249.5 -0.0000 -0.0000 1412.0 -0.0000 -0.0000 1590.5 -0.0000 -0.0000 1787.0 -0.0000 -0.0000 1945.0 -0.0000 -0.0000 2119.0 -0.0000 -0.0000 2369.0 -0.0000 -0.0000 2643.5 -0.0000 -0.0000 2945.0 -0.0000 -0.0000 3276.5 -0.0000 -0.0000 -5.0 5.4 132 9.0 -0.0079 -0.0079 11.0 -0.0068 -0.0068 13.5 -0.0058 -0.0058 16.5 -0.0049 -0.0049 19.5 -0.0043 -0.0043 22.5 -0.0038 -0.0038 26.0 -0.0033 -0.0033 30.0 -0.0030 -0.0030 34.5 -0.0026 -0.0026 40.0 -0.0023 -0.0023 46.0 -0.0021 -0.0021 52.5 -0.0019 -0.0019 60.0 -0.0017 -0.0017 69.0 -0.0015 -0.0015 79.0 -0.0013 -0.0013 90.5 -0.0012 -0.0012 105.5 -0.0011 -0.0011 123.5 -0.0009 -0.0009 143.0 -0.0008 -0.0008 163.5 -0.0007 -0.0007 185.0 -0.0007 -0.0007 208.0 -0.0006 -0.0006 232.5 -0.0006 -0.0006 258.5 -0.0005 -0.0005 286.0 -0.0005 -0.0005 331.0 -0.0004 -0.0004 396.0 -0.0004 -0.0004 468.5 -0.0003 -0.0003 549.5 -0.0003 -0.0003 639.0 -0.0002 -0.0002 738.0 -0.0002 -0.0002 847.5 -0.0002 -0.0002 968.5 -0.0002 -0.0002 1102.0 -0.0001 -0.0001 1249.5 -0.0001 -0.0001 1412.0 -0.0001 -0.0001 1590.5 -0.0001 -0.0001 1787.0 -0.0001 -0.0001 1945.0 -0.0001 -0.0001 2119.0 -0.0001 -0.0001 2369.0 -0.0001 -0.0001 2643.5 -0.0001 -0.0001 2945.0 -0.0001 -0.0001 3276.5 -0.0001 -0.0001 -[PileUpPtBB] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 -0.0085 -0.0085 11.0 -0.0030 -0.0030 13.5 0.0021 0.0021 16.5 0.0062 0.0062 19.5 0.0087 0.0087 22.5 0.0104 0.0104 26.0 0.0115 0.0115 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0128 0.0128 46.0 0.0127 0.0127 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0098 0.0098 123.5 0.0091 0.0091 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0073 0.0073 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0056 0.0056 331.0 0.0051 0.0051 396.0 0.0045 0.0045 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0026 0.0026 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 --5.0 -4.4 132 9.0 -0.0085 -0.0085 11.0 -0.0030 -0.0030 13.5 0.0021 0.0021 16.5 0.0062 0.0062 19.5 0.0087 0.0087 22.5 0.0104 0.0104 26.0 0.0115 0.0115 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0128 0.0128 46.0 0.0127 0.0127 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0098 0.0098 123.5 0.0091 0.0091 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0073 0.0073 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0056 0.0056 331.0 0.0051 0.0051 396.0 0.0045 0.0045 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0026 0.0026 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 --4.4 -4.0 132 9.0 -0.0605 -0.0605 11.0 -0.0512 -0.0512 13.5 -0.0416 -0.0416 16.5 -0.0329 -0.0329 19.5 -0.0264 -0.0264 22.5 -0.0216 -0.0216 26.0 -0.0173 -0.0173 30.0 -0.0137 -0.0137 34.5 -0.0107 -0.0107 40.0 -0.0080 -0.0080 46.0 -0.0059 -0.0059 52.5 -0.0043 -0.0043 60.0 -0.0029 -0.0029 69.0 -0.0017 -0.0017 79.0 -0.0008 -0.0008 90.5 -0.0001 -0.0001 105.5 0.0006 0.0006 123.5 0.0010 0.0010 143.0 0.0013 0.0013 163.5 0.0015 0.0015 185.0 0.0016 0.0016 208.0 0.0017 0.0017 232.5 0.0018 0.0018 258.5 0.0018 0.0018 286.0 0.0018 0.0018 331.0 0.0017 0.0017 396.0 0.0017 0.0017 468.5 0.0016 0.0016 549.5 0.0015 0.0015 639.0 0.0014 0.0014 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 --4.0 -3.5 132 9.0 -0.0415 -0.0415 11.0 -0.0342 -0.0342 13.5 -0.0266 -0.0266 16.5 -0.0196 -0.0196 19.5 -0.0144 -0.0144 22.5 -0.0105 -0.0105 26.0 -0.0071 -0.0071 30.0 -0.0043 -0.0043 34.5 -0.0020 -0.0020 40.0 -0.0000 -0.0000 46.0 0.0014 0.0014 52.5 0.0025 0.0025 60.0 0.0033 0.0033 69.0 0.0039 0.0039 79.0 0.0043 0.0043 90.5 0.0045 0.0045 105.5 0.0047 0.0047 123.5 0.0047 0.0047 143.0 0.0046 0.0046 163.5 0.0045 0.0045 185.0 0.0043 0.0043 208.0 0.0042 0.0042 232.5 0.0040 0.0040 258.5 0.0038 0.0038 286.0 0.0037 0.0037 331.0 0.0034 0.0034 396.0 0.0031 0.0031 468.5 0.0028 0.0028 549.5 0.0026 0.0026 639.0 0.0024 0.0024 738.0 0.0022 0.0022 847.5 0.0020 0.0020 968.5 0.0018 0.0018 1102.0 0.0017 0.0017 1249.5 0.0015 0.0015 1412.0 0.0014 0.0014 1590.5 0.0013 0.0013 1787.0 0.0012 0.0012 1945.0 0.0011 0.0011 2119.0 0.0010 0.0010 2369.0 0.0010 0.0010 2643.5 0.0009 0.0009 2945.0 0.0008 0.0008 3276.5 0.0008 0.0008 --3.5 -3.0 132 9.0 -0.0298 -0.0298 11.0 -0.0208 -0.0208 13.5 -0.0115 -0.0115 16.5 -0.0031 -0.0031 19.5 0.0029 0.0029 22.5 0.0072 0.0072 26.0 0.0109 0.0109 30.0 0.0138 0.0138 34.5 0.0159 0.0159 40.0 0.0175 0.0175 46.0 0.0185 0.0185 52.5 0.0189 0.0189 60.0 0.0190 0.0190 69.0 0.0188 0.0188 79.0 0.0184 0.0184 90.5 0.0177 0.0177 105.5 0.0168 0.0168 123.5 0.0158 0.0158 143.0 0.0148 0.0148 163.5 0.0138 0.0138 185.0 0.0129 0.0129 208.0 0.0121 0.0121 232.5 0.0113 0.0113 258.5 0.0107 0.0107 286.0 0.0101 0.0101 331.0 0.0092 0.0092 396.0 0.0082 0.0082 468.5 0.0074 0.0074 549.5 0.0066 0.0066 639.0 0.0060 0.0060 738.0 0.0054 0.0054 847.5 0.0049 0.0049 968.5 0.0044 0.0044 1102.0 0.0040 0.0040 1249.5 0.0037 0.0037 1412.0 0.0034 0.0034 1590.5 0.0031 0.0031 1787.0 0.0028 0.0028 1945.0 0.0026 0.0026 2119.0 0.0025 0.0025 2369.0 0.0023 0.0023 2643.5 0.0021 0.0021 2945.0 0.0019 0.0019 3276.5 0.0017 0.0017 --3.0 -2.8 132 9.0 -0.0268 -0.0268 11.0 -0.0232 -0.0232 13.5 -0.0193 -0.0193 16.5 -0.0157 -0.0157 19.5 -0.0128 -0.0128 22.5 -0.0106 -0.0106 26.0 -0.0086 -0.0086 30.0 -0.0069 -0.0069 34.5 -0.0054 -0.0054 40.0 -0.0041 -0.0041 46.0 -0.0030 -0.0030 52.5 -0.0022 -0.0022 60.0 -0.0014 -0.0014 69.0 -0.0008 -0.0008 79.0 -0.0003 -0.0003 90.5 0.0001 0.0001 105.5 0.0004 0.0004 123.5 0.0007 0.0007 143.0 0.0008 0.0008 163.5 0.0009 0.0009 185.0 0.0010 0.0010 208.0 0.0010 0.0010 232.5 0.0010 0.0010 258.5 0.0010 0.0010 286.0 0.0010 0.0010 331.0 0.0010 0.0010 396.0 0.0009 0.0009 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1945.0 0.0004 0.0004 2119.0 0.0004 0.0004 2369.0 0.0004 0.0004 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 --2.8 -2.6 132 9.0 -0.0111 -0.0111 11.0 -0.0075 -0.0075 13.5 -0.0039 -0.0039 16.5 -0.0007 -0.0007 19.5 0.0016 0.0016 22.5 0.0032 0.0032 26.0 0.0045 0.0045 30.0 0.0055 0.0055 34.5 0.0062 0.0062 40.0 0.0068 0.0068 46.0 0.0071 0.0071 52.5 0.0072 0.0072 60.0 0.0072 0.0072 69.0 0.0072 0.0072 79.0 0.0070 0.0070 90.5 0.0068 0.0068 105.5 0.0064 0.0064 123.5 0.0061 0.0061 143.0 0.0057 0.0057 163.5 0.0053 0.0053 185.0 0.0050 0.0050 208.0 0.0047 0.0047 232.5 0.0044 0.0044 258.5 0.0041 0.0041 286.0 0.0039 0.0039 331.0 0.0035 0.0035 396.0 0.0031 0.0031 468.5 0.0028 0.0028 549.5 0.0025 0.0025 639.0 0.0023 0.0023 738.0 0.0020 0.0020 847.5 0.0018 0.0018 968.5 0.0017 0.0017 1102.0 0.0015 0.0015 1249.5 0.0014 0.0014 1412.0 0.0013 0.0013 1590.5 0.0012 0.0012 1787.0 0.0011 0.0011 1945.0 0.0010 0.0010 2119.0 0.0009 0.0009 2369.0 0.0009 0.0009 2643.5 0.0008 0.0008 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --2.6 -2.4 132 9.0 -0.1491 -0.1491 11.0 -0.1230 -0.1230 13.5 -0.0966 -0.0966 16.5 -0.0734 -0.0734 19.5 -0.0568 -0.0568 22.5 -0.0446 -0.0446 26.0 -0.0341 -0.0341 30.0 -0.0253 -0.0253 34.5 -0.0182 -0.0182 40.0 -0.0120 -0.0120 46.0 -0.0073 -0.0073 52.5 -0.0037 -0.0037 60.0 -0.0007 -0.0007 69.0 0.0017 0.0017 79.0 0.0035 0.0035 90.5 0.0049 0.0049 105.5 0.0060 0.0060 123.5 0.0067 0.0067 143.0 0.0071 0.0071 163.5 0.0072 0.0072 185.0 0.0072 0.0072 208.0 0.0071 0.0071 232.5 0.0070 0.0070 258.5 0.0068 0.0068 286.0 0.0066 0.0066 331.0 0.0062 0.0062 396.0 0.0057 0.0057 468.5 0.0053 0.0053 549.5 0.0049 0.0049 639.0 0.0045 0.0045 738.0 0.0041 0.0041 847.5 0.0038 0.0038 968.5 0.0035 0.0035 1102.0 0.0032 0.0032 1249.5 0.0030 0.0030 1412.0 0.0027 0.0027 1590.5 0.0025 0.0025 1787.0 0.0023 0.0023 1945.0 0.0022 0.0022 2119.0 0.0021 0.0021 2369.0 0.0019 0.0019 2643.5 0.0018 0.0018 2945.0 0.0016 0.0016 3276.5 0.0015 0.0015 --2.4 -2.2 132 9.0 -0.2125 -0.2125 11.0 -0.1721 -0.1721 13.5 -0.1340 -0.1340 16.5 -0.1022 -0.1022 19.5 -0.0798 -0.0798 22.5 -0.0636 -0.0636 26.0 -0.0497 -0.0497 30.0 -0.0382 -0.0382 34.5 -0.0289 -0.0289 40.0 -0.0209 -0.0209 46.0 -0.0148 -0.0148 52.5 -0.0102 -0.0102 60.0 -0.0064 -0.0064 69.0 -0.0032 -0.0032 79.0 -0.0008 -0.0008 90.5 0.0011 0.0011 105.5 0.0027 0.0027 123.5 0.0038 0.0038 143.0 0.0046 0.0046 163.5 0.0050 0.0050 185.0 0.0053 0.0053 208.0 0.0054 0.0054 232.5 0.0054 0.0054 258.5 0.0054 0.0054 286.0 0.0053 0.0053 331.0 0.0051 0.0051 396.0 0.0048 0.0048 468.5 0.0045 0.0045 549.5 0.0042 0.0042 639.0 0.0039 0.0039 738.0 0.0036 0.0036 847.5 0.0034 0.0034 968.5 0.0031 0.0031 1102.0 0.0029 0.0029 1249.5 0.0027 0.0027 1412.0 0.0025 0.0025 1590.5 0.0023 0.0023 1787.0 0.0021 0.0021 1945.0 0.0020 0.0020 2119.0 0.0019 0.0019 2369.0 0.0017 0.0017 2643.5 0.0016 0.0016 2945.0 0.0015 0.0015 3276.5 0.0014 0.0014 --2.2 -2.0 132 9.0 -0.2041 -0.2041 11.0 -0.1649 -0.1649 13.5 -0.1289 -0.1289 16.5 -0.0990 -0.0990 19.5 -0.0781 -0.0781 22.5 -0.0628 -0.0628 26.0 -0.0496 -0.0496 30.0 -0.0386 -0.0386 34.5 -0.0296 -0.0296 40.0 -0.0218 -0.0218 46.0 -0.0159 -0.0159 52.5 -0.0113 -0.0113 60.0 -0.0076 -0.0076 69.0 -0.0045 -0.0045 79.0 -0.0021 -0.0021 90.5 -0.0002 -0.0002 105.5 0.0014 0.0014 123.5 0.0025 0.0025 143.0 0.0033 0.0033 163.5 0.0038 0.0038 185.0 0.0041 0.0041 208.0 0.0043 0.0043 232.5 0.0044 0.0044 258.5 0.0044 0.0044 286.0 0.0044 0.0044 331.0 0.0043 0.0043 396.0 0.0040 0.0040 468.5 0.0038 0.0038 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0031 0.0031 847.5 0.0029 0.0029 968.5 0.0027 0.0027 1102.0 0.0025 0.0025 1249.5 0.0023 0.0023 1412.0 0.0021 0.0021 1590.5 0.0020 0.0020 1787.0 0.0018 0.0018 1945.0 0.0017 0.0017 2119.0 0.0016 0.0016 2369.0 0.0015 0.0015 2643.5 0.0014 0.0014 2945.0 0.0013 0.0013 3276.5 0.0012 0.0012 --2.0 -1.8 132 9.0 -0.1498 -0.1498 11.0 -0.1233 -0.1233 13.5 -0.0990 -0.0990 16.5 -0.0785 -0.0785 19.5 -0.0638 -0.0638 22.5 -0.0529 -0.0529 26.0 -0.0434 -0.0434 30.0 -0.0353 -0.0353 34.5 -0.0285 -0.0285 40.0 -0.0225 -0.0225 46.0 -0.0177 -0.0177 52.5 -0.0140 -0.0140 60.0 -0.0108 -0.0108 69.0 -0.0081 -0.0081 79.0 -0.0059 -0.0059 90.5 -0.0042 -0.0042 105.5 -0.0026 -0.0026 123.5 -0.0014 -0.0014 143.0 -0.0005 -0.0005 163.5 0.0001 0.0001 185.0 0.0006 0.0006 208.0 0.0009 0.0009 232.5 0.0011 0.0011 258.5 0.0013 0.0013 286.0 0.0014 0.0014 331.0 0.0015 0.0015 396.0 0.0016 0.0016 468.5 0.0016 0.0016 549.5 0.0016 0.0016 639.0 0.0015 0.0015 738.0 0.0014 0.0014 847.5 0.0014 0.0014 968.5 0.0013 0.0013 1102.0 0.0012 0.0012 1249.5 0.0011 0.0011 1412.0 0.0011 0.0011 1590.5 0.0010 0.0010 1787.0 0.0009 0.0009 1945.0 0.0009 0.0009 2119.0 0.0008 0.0008 2369.0 0.0008 0.0008 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0006 0.0006 --1.8 -1.6 132 9.0 -0.1106 -0.1106 11.0 -0.0931 -0.0931 13.5 -0.0767 -0.0767 16.5 -0.0625 -0.0625 19.5 -0.0521 -0.0521 22.5 -0.0443 -0.0443 26.0 -0.0373 -0.0373 30.0 -0.0313 -0.0313 34.5 -0.0262 -0.0262 40.0 -0.0215 -0.0215 46.0 -0.0178 -0.0178 52.5 -0.0148 -0.0148 60.0 -0.0121 -0.0121 69.0 -0.0098 -0.0098 79.0 -0.0080 -0.0080 90.5 -0.0064 -0.0064 105.5 -0.0050 -0.0050 123.5 -0.0038 -0.0038 143.0 -0.0029 -0.0029 163.5 -0.0022 -0.0022 185.0 -0.0017 -0.0017 208.0 -0.0013 -0.0013 232.5 -0.0010 -0.0010 258.5 -0.0007 -0.0007 286.0 -0.0005 -0.0005 331.0 -0.0003 -0.0003 396.0 -0.0000 -0.0000 468.5 0.0001 0.0001 549.5 0.0002 0.0002 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0002 0.0002 --1.6 -1.4 132 9.0 -0.0970 -0.0970 11.0 -0.0811 -0.0811 13.5 -0.0662 -0.0662 16.5 -0.0534 -0.0534 19.5 -0.0440 -0.0440 22.5 -0.0370 -0.0370 26.0 -0.0307 -0.0307 30.0 -0.0254 -0.0254 34.5 -0.0208 -0.0208 40.0 -0.0168 -0.0168 46.0 -0.0135 -0.0135 52.5 -0.0109 -0.0109 60.0 -0.0087 -0.0087 69.0 -0.0068 -0.0068 79.0 -0.0053 -0.0053 90.5 -0.0040 -0.0040 105.5 -0.0029 -0.0029 123.5 -0.0019 -0.0019 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0004 -0.0004 208.0 -0.0001 -0.0001 232.5 0.0001 0.0001 258.5 0.0003 0.0003 286.0 0.0004 0.0004 331.0 0.0006 0.0006 396.0 0.0007 0.0007 468.5 0.0007 0.0007 549.5 0.0007 0.0007 639.0 0.0007 0.0007 738.0 0.0007 0.0007 847.5 0.0007 0.0007 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1945.0 0.0005 0.0005 2119.0 0.0005 0.0005 2369.0 0.0004 0.0004 2643.5 0.0004 0.0004 2945.0 0.0004 0.0004 3276.5 0.0004 0.0004 --1.4 -1.2 132 9.0 -0.0940 -0.0940 11.0 -0.0749 -0.0749 13.5 -0.0573 -0.0573 16.5 -0.0426 -0.0426 19.5 -0.0323 -0.0323 22.5 -0.0248 -0.0248 26.0 -0.0183 -0.0183 30.0 -0.0129 -0.0129 34.5 -0.0085 -0.0085 40.0 -0.0047 -0.0047 46.0 -0.0019 -0.0019 52.5 0.0002 0.0002 60.0 0.0019 0.0019 69.0 0.0032 0.0032 79.0 0.0042 0.0042 90.5 0.0048 0.0048 105.5 0.0053 0.0053 123.5 0.0056 0.0056 143.0 0.0057 0.0057 163.5 0.0056 0.0056 185.0 0.0055 0.0055 208.0 0.0054 0.0054 232.5 0.0052 0.0052 258.5 0.0051 0.0051 286.0 0.0049 0.0049 331.0 0.0046 0.0046 396.0 0.0042 0.0042 468.5 0.0039 0.0039 549.5 0.0035 0.0035 639.0 0.0032 0.0032 738.0 0.0030 0.0030 847.5 0.0027 0.0027 968.5 0.0025 0.0025 1102.0 0.0023 0.0023 1249.5 0.0021 0.0021 1412.0 0.0019 0.0019 1590.5 0.0018 0.0018 1787.0 0.0016 0.0016 1945.0 0.0015 0.0015 2119.0 0.0014 0.0014 2369.0 0.0013 0.0013 2643.5 0.0012 0.0012 2945.0 0.0011 0.0011 3276.5 0.0010 0.0010 --1.2 -1.0 132 9.0 -0.0930 -0.0930 11.0 -0.0746 -0.0746 13.5 -0.0576 -0.0576 16.5 -0.0433 -0.0433 19.5 -0.0332 -0.0332 22.5 -0.0258 -0.0258 26.0 -0.0195 -0.0195 30.0 -0.0141 -0.0141 34.5 -0.0098 -0.0098 40.0 -0.0061 -0.0061 46.0 -0.0032 -0.0032 52.5 -0.0011 -0.0011 60.0 0.0006 0.0006 69.0 0.0020 0.0020 79.0 0.0030 0.0030 90.5 0.0037 0.0037 105.5 0.0043 0.0043 123.5 0.0046 0.0046 143.0 0.0048 0.0048 163.5 0.0048 0.0048 185.0 0.0048 0.0048 208.0 0.0047 0.0047 232.5 0.0046 0.0046 258.5 0.0045 0.0045 286.0 0.0043 0.0043 331.0 0.0041 0.0041 396.0 0.0038 0.0038 468.5 0.0035 0.0035 549.5 0.0032 0.0032 639.0 0.0029 0.0029 738.0 0.0027 0.0027 847.5 0.0025 0.0025 968.5 0.0023 0.0023 1102.0 0.0021 0.0021 1249.5 0.0019 0.0019 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0010 0.0010 --1.0 -0.8 132 9.0 -0.0853 -0.0853 11.0 -0.0696 -0.0696 13.5 -0.0548 -0.0548 16.5 -0.0424 -0.0424 19.5 -0.0335 -0.0335 22.5 -0.0269 -0.0269 26.0 -0.0213 -0.0213 30.0 -0.0165 -0.0165 34.5 -0.0126 -0.0126 40.0 -0.0092 -0.0092 46.0 -0.0065 -0.0065 52.5 -0.0045 -0.0045 60.0 -0.0028 -0.0028 69.0 -0.0014 -0.0014 79.0 -0.0003 -0.0003 90.5 0.0005 0.0005 105.5 0.0012 0.0012 123.5 0.0017 0.0017 143.0 0.0021 0.0021 163.5 0.0023 0.0023 185.0 0.0024 0.0024 208.0 0.0025 0.0025 232.5 0.0025 0.0025 258.5 0.0025 0.0025 286.0 0.0024 0.0024 331.0 0.0024 0.0024 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0020 0.0020 639.0 0.0018 0.0018 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0014 0.0014 1249.5 0.0013 0.0013 1412.0 0.0012 0.0012 1590.5 0.0011 0.0011 1787.0 0.0010 0.0010 1945.0 0.0009 0.0009 2119.0 0.0009 0.0009 2369.0 0.0008 0.0008 2643.5 0.0008 0.0008 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --0.8 -0.6 132 9.0 -0.0813 -0.0813 11.0 -0.0669 -0.0669 13.5 -0.0532 -0.0532 16.5 -0.0416 -0.0416 19.5 -0.0334 -0.0334 22.5 -0.0273 -0.0273 26.0 -0.0220 -0.0220 30.0 -0.0175 -0.0175 34.5 -0.0138 -0.0138 40.0 -0.0106 -0.0106 46.0 -0.0080 -0.0080 52.5 -0.0060 -0.0060 60.0 -0.0044 -0.0044 69.0 -0.0030 -0.0030 79.0 -0.0019 -0.0019 90.5 -0.0010 -0.0010 105.5 -0.0002 -0.0002 123.5 0.0004 0.0004 143.0 0.0008 0.0008 163.5 0.0011 0.0011 185.0 0.0013 0.0013 208.0 0.0014 0.0014 232.5 0.0015 0.0015 258.5 0.0015 0.0015 286.0 0.0015 0.0015 331.0 0.0015 0.0015 396.0 0.0015 0.0015 468.5 0.0014 0.0014 549.5 0.0014 0.0014 639.0 0.0013 0.0013 738.0 0.0012 0.0012 847.5 0.0011 0.0011 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0009 0.0009 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 --0.6 -0.4 132 9.0 -0.0781 -0.0781 11.0 -0.0640 -0.0640 13.5 -0.0506 -0.0506 16.5 -0.0393 -0.0393 19.5 -0.0313 -0.0313 22.5 -0.0255 -0.0255 26.0 -0.0204 -0.0204 30.0 -0.0161 -0.0161 34.5 -0.0126 -0.0126 40.0 -0.0095 -0.0095 46.0 -0.0071 -0.0071 52.5 -0.0052 -0.0052 60.0 -0.0037 -0.0037 69.0 -0.0023 -0.0023 79.0 -0.0013 -0.0013 90.5 -0.0005 -0.0005 105.5 0.0002 0.0002 123.5 0.0007 0.0007 143.0 0.0011 0.0011 163.5 0.0013 0.0013 185.0 0.0015 0.0015 208.0 0.0016 0.0016 232.5 0.0017 0.0017 258.5 0.0017 0.0017 286.0 0.0017 0.0017 331.0 0.0017 0.0017 396.0 0.0016 0.0016 468.5 0.0015 0.0015 549.5 0.0015 0.0015 639.0 0.0014 0.0014 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 --0.4 -0.2 132 9.0 -0.0799 -0.0799 11.0 -0.0653 -0.0653 13.5 -0.0515 -0.0515 16.5 -0.0399 -0.0399 19.5 -0.0316 -0.0316 22.5 -0.0256 -0.0256 26.0 -0.0204 -0.0204 30.0 -0.0160 -0.0160 34.5 -0.0124 -0.0124 40.0 -0.0092 -0.0092 46.0 -0.0068 -0.0068 52.5 -0.0048 -0.0048 60.0 -0.0033 -0.0033 69.0 -0.0019 -0.0019 79.0 -0.0009 -0.0009 90.5 -0.0001 -0.0001 105.5 0.0006 0.0006 123.5 0.0011 0.0011 143.0 0.0015 0.0015 163.5 0.0017 0.0017 185.0 0.0018 0.0018 208.0 0.0019 0.0019 232.5 0.0019 0.0019 258.5 0.0020 0.0020 286.0 0.0020 0.0020 331.0 0.0019 0.0019 396.0 0.0018 0.0018 468.5 0.0017 0.0017 549.5 0.0016 0.0016 639.0 0.0015 0.0015 738.0 0.0014 0.0014 847.5 0.0013 0.0013 968.5 0.0012 0.0012 1102.0 0.0011 0.0011 1249.5 0.0011 0.0011 1412.0 0.0010 0.0010 1590.5 0.0009 0.0009 1787.0 0.0008 0.0008 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 --0.2 0.0 132 9.0 -0.0755 -0.0755 11.0 -0.0614 -0.0614 13.5 -0.0480 -0.0480 16.5 -0.0369 -0.0369 19.5 -0.0290 -0.0290 22.5 -0.0232 -0.0232 26.0 -0.0183 -0.0183 30.0 -0.0141 -0.0141 34.5 -0.0108 -0.0108 40.0 -0.0078 -0.0078 46.0 -0.0055 -0.0055 52.5 -0.0037 -0.0037 60.0 -0.0023 -0.0023 69.0 -0.0011 -0.0011 79.0 -0.0001 -0.0001 90.5 0.0006 0.0006 105.5 0.0012 0.0012 123.5 0.0016 0.0016 143.0 0.0019 0.0019 163.5 0.0021 0.0021 185.0 0.0022 0.0022 208.0 0.0022 0.0022 232.5 0.0022 0.0022 258.5 0.0022 0.0022 286.0 0.0022 0.0022 331.0 0.0021 0.0021 396.0 0.0020 0.0020 468.5 0.0019 0.0019 549.5 0.0018 0.0018 639.0 0.0016 0.0016 738.0 0.0015 0.0015 847.5 0.0014 0.0014 968.5 0.0013 0.0013 1102.0 0.0012 0.0012 1249.5 0.0011 0.0011 1412.0 0.0010 0.0010 1590.5 0.0010 0.0010 1787.0 0.0009 0.0009 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -0.0 0.2 132 9.0 -0.0755 -0.0755 11.0 -0.0614 -0.0614 13.5 -0.0480 -0.0480 16.5 -0.0369 -0.0369 19.5 -0.0290 -0.0290 22.5 -0.0232 -0.0232 26.0 -0.0183 -0.0183 30.0 -0.0141 -0.0141 34.5 -0.0108 -0.0108 40.0 -0.0078 -0.0078 46.0 -0.0055 -0.0055 52.5 -0.0037 -0.0037 60.0 -0.0023 -0.0023 69.0 -0.0011 -0.0011 79.0 -0.0001 -0.0001 90.5 0.0006 0.0006 105.5 0.0012 0.0012 123.5 0.0016 0.0016 143.0 0.0019 0.0019 163.5 0.0021 0.0021 185.0 0.0022 0.0022 208.0 0.0022 0.0022 232.5 0.0022 0.0022 258.5 0.0022 0.0022 286.0 0.0022 0.0022 331.0 0.0021 0.0021 396.0 0.0020 0.0020 468.5 0.0019 0.0019 549.5 0.0018 0.0018 639.0 0.0016 0.0016 738.0 0.0015 0.0015 847.5 0.0014 0.0014 968.5 0.0013 0.0013 1102.0 0.0012 0.0012 1249.5 0.0011 0.0011 1412.0 0.0010 0.0010 1590.5 0.0010 0.0010 1787.0 0.0009 0.0009 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -0.2 0.4 132 9.0 -0.0799 -0.0799 11.0 -0.0653 -0.0653 13.5 -0.0515 -0.0515 16.5 -0.0399 -0.0399 19.5 -0.0316 -0.0316 22.5 -0.0256 -0.0256 26.0 -0.0204 -0.0204 30.0 -0.0160 -0.0160 34.5 -0.0124 -0.0124 40.0 -0.0092 -0.0092 46.0 -0.0068 -0.0068 52.5 -0.0048 -0.0048 60.0 -0.0033 -0.0033 69.0 -0.0019 -0.0019 79.0 -0.0009 -0.0009 90.5 -0.0001 -0.0001 105.5 0.0006 0.0006 123.5 0.0011 0.0011 143.0 0.0015 0.0015 163.5 0.0017 0.0017 185.0 0.0018 0.0018 208.0 0.0019 0.0019 232.5 0.0019 0.0019 258.5 0.0020 0.0020 286.0 0.0020 0.0020 331.0 0.0019 0.0019 396.0 0.0018 0.0018 468.5 0.0017 0.0017 549.5 0.0016 0.0016 639.0 0.0015 0.0015 738.0 0.0014 0.0014 847.5 0.0013 0.0013 968.5 0.0012 0.0012 1102.0 0.0011 0.0011 1249.5 0.0011 0.0011 1412.0 0.0010 0.0010 1590.5 0.0009 0.0009 1787.0 0.0008 0.0008 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -0.4 0.6 132 9.0 -0.0781 -0.0781 11.0 -0.0640 -0.0640 13.5 -0.0506 -0.0506 16.5 -0.0393 -0.0393 19.5 -0.0313 -0.0313 22.5 -0.0255 -0.0255 26.0 -0.0204 -0.0204 30.0 -0.0161 -0.0161 34.5 -0.0126 -0.0126 40.0 -0.0095 -0.0095 46.0 -0.0071 -0.0071 52.5 -0.0052 -0.0052 60.0 -0.0037 -0.0037 69.0 -0.0023 -0.0023 79.0 -0.0013 -0.0013 90.5 -0.0005 -0.0005 105.5 0.0002 0.0002 123.5 0.0007 0.0007 143.0 0.0011 0.0011 163.5 0.0013 0.0013 185.0 0.0015 0.0015 208.0 0.0016 0.0016 232.5 0.0017 0.0017 258.5 0.0017 0.0017 286.0 0.0017 0.0017 331.0 0.0017 0.0017 396.0 0.0016 0.0016 468.5 0.0015 0.0015 549.5 0.0015 0.0015 639.0 0.0014 0.0014 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 -0.6 0.8 132 9.0 -0.0813 -0.0813 11.0 -0.0669 -0.0669 13.5 -0.0532 -0.0532 16.5 -0.0416 -0.0416 19.5 -0.0334 -0.0334 22.5 -0.0273 -0.0273 26.0 -0.0220 -0.0220 30.0 -0.0175 -0.0175 34.5 -0.0138 -0.0138 40.0 -0.0106 -0.0106 46.0 -0.0080 -0.0080 52.5 -0.0060 -0.0060 60.0 -0.0044 -0.0044 69.0 -0.0030 -0.0030 79.0 -0.0019 -0.0019 90.5 -0.0010 -0.0010 105.5 -0.0002 -0.0002 123.5 0.0004 0.0004 143.0 0.0008 0.0008 163.5 0.0011 0.0011 185.0 0.0013 0.0013 208.0 0.0014 0.0014 232.5 0.0015 0.0015 258.5 0.0015 0.0015 286.0 0.0015 0.0015 331.0 0.0015 0.0015 396.0 0.0015 0.0015 468.5 0.0014 0.0014 549.5 0.0014 0.0014 639.0 0.0013 0.0013 738.0 0.0012 0.0012 847.5 0.0011 0.0011 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0009 0.0009 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 -0.8 1.0 132 9.0 -0.0853 -0.0853 11.0 -0.0696 -0.0696 13.5 -0.0548 -0.0548 16.5 -0.0424 -0.0424 19.5 -0.0335 -0.0335 22.5 -0.0269 -0.0269 26.0 -0.0213 -0.0213 30.0 -0.0165 -0.0165 34.5 -0.0126 -0.0126 40.0 -0.0092 -0.0092 46.0 -0.0065 -0.0065 52.5 -0.0045 -0.0045 60.0 -0.0028 -0.0028 69.0 -0.0014 -0.0014 79.0 -0.0003 -0.0003 90.5 0.0005 0.0005 105.5 0.0012 0.0012 123.5 0.0017 0.0017 143.0 0.0021 0.0021 163.5 0.0023 0.0023 185.0 0.0024 0.0024 208.0 0.0025 0.0025 232.5 0.0025 0.0025 258.5 0.0025 0.0025 286.0 0.0024 0.0024 331.0 0.0024 0.0024 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0020 0.0020 639.0 0.0018 0.0018 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0014 0.0014 1249.5 0.0013 0.0013 1412.0 0.0012 0.0012 1590.5 0.0011 0.0011 1787.0 0.0010 0.0010 1945.0 0.0009 0.0009 2119.0 0.0009 0.0009 2369.0 0.0008 0.0008 2643.5 0.0008 0.0008 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -1.0 1.2 132 9.0 -0.0930 -0.0930 11.0 -0.0746 -0.0746 13.5 -0.0576 -0.0576 16.5 -0.0433 -0.0433 19.5 -0.0332 -0.0332 22.5 -0.0258 -0.0258 26.0 -0.0195 -0.0195 30.0 -0.0141 -0.0141 34.5 -0.0098 -0.0098 40.0 -0.0061 -0.0061 46.0 -0.0032 -0.0032 52.5 -0.0011 -0.0011 60.0 0.0006 0.0006 69.0 0.0020 0.0020 79.0 0.0030 0.0030 90.5 0.0037 0.0037 105.5 0.0043 0.0043 123.5 0.0046 0.0046 143.0 0.0048 0.0048 163.5 0.0048 0.0048 185.0 0.0048 0.0048 208.0 0.0047 0.0047 232.5 0.0046 0.0046 258.5 0.0045 0.0045 286.0 0.0043 0.0043 331.0 0.0041 0.0041 396.0 0.0038 0.0038 468.5 0.0035 0.0035 549.5 0.0032 0.0032 639.0 0.0029 0.0029 738.0 0.0027 0.0027 847.5 0.0025 0.0025 968.5 0.0023 0.0023 1102.0 0.0021 0.0021 1249.5 0.0019 0.0019 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0010 0.0010 -1.2 1.4 132 9.0 -0.0940 -0.0940 11.0 -0.0749 -0.0749 13.5 -0.0573 -0.0573 16.5 -0.0426 -0.0426 19.5 -0.0323 -0.0323 22.5 -0.0248 -0.0248 26.0 -0.0183 -0.0183 30.0 -0.0129 -0.0129 34.5 -0.0085 -0.0085 40.0 -0.0047 -0.0047 46.0 -0.0019 -0.0019 52.5 0.0002 0.0002 60.0 0.0019 0.0019 69.0 0.0032 0.0032 79.0 0.0042 0.0042 90.5 0.0048 0.0048 105.5 0.0053 0.0053 123.5 0.0056 0.0056 143.0 0.0057 0.0057 163.5 0.0056 0.0056 185.0 0.0055 0.0055 208.0 0.0054 0.0054 232.5 0.0052 0.0052 258.5 0.0051 0.0051 286.0 0.0049 0.0049 331.0 0.0046 0.0046 396.0 0.0042 0.0042 468.5 0.0039 0.0039 549.5 0.0035 0.0035 639.0 0.0032 0.0032 738.0 0.0030 0.0030 847.5 0.0027 0.0027 968.5 0.0025 0.0025 1102.0 0.0023 0.0023 1249.5 0.0021 0.0021 1412.0 0.0019 0.0019 1590.5 0.0018 0.0018 1787.0 0.0016 0.0016 1945.0 0.0015 0.0015 2119.0 0.0014 0.0014 2369.0 0.0013 0.0013 2643.5 0.0012 0.0012 2945.0 0.0011 0.0011 3276.5 0.0010 0.0010 -1.4 1.6 132 9.0 -0.0970 -0.0970 11.0 -0.0811 -0.0811 13.5 -0.0662 -0.0662 16.5 -0.0534 -0.0534 19.5 -0.0440 -0.0440 22.5 -0.0370 -0.0370 26.0 -0.0307 -0.0307 30.0 -0.0254 -0.0254 34.5 -0.0208 -0.0208 40.0 -0.0168 -0.0168 46.0 -0.0135 -0.0135 52.5 -0.0109 -0.0109 60.0 -0.0087 -0.0087 69.0 -0.0068 -0.0068 79.0 -0.0053 -0.0053 90.5 -0.0040 -0.0040 105.5 -0.0029 -0.0029 123.5 -0.0019 -0.0019 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0004 -0.0004 208.0 -0.0001 -0.0001 232.5 0.0001 0.0001 258.5 0.0003 0.0003 286.0 0.0004 0.0004 331.0 0.0006 0.0006 396.0 0.0007 0.0007 468.5 0.0007 0.0007 549.5 0.0007 0.0007 639.0 0.0007 0.0007 738.0 0.0007 0.0007 847.5 0.0007 0.0007 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1945.0 0.0005 0.0005 2119.0 0.0005 0.0005 2369.0 0.0004 0.0004 2643.5 0.0004 0.0004 2945.0 0.0004 0.0004 3276.5 0.0004 0.0004 -1.6 1.8 132 9.0 -0.1106 -0.1106 11.0 -0.0931 -0.0931 13.5 -0.0767 -0.0767 16.5 -0.0625 -0.0625 19.5 -0.0521 -0.0521 22.5 -0.0443 -0.0443 26.0 -0.0373 -0.0373 30.0 -0.0313 -0.0313 34.5 -0.0262 -0.0262 40.0 -0.0215 -0.0215 46.0 -0.0178 -0.0178 52.5 -0.0148 -0.0148 60.0 -0.0121 -0.0121 69.0 -0.0098 -0.0098 79.0 -0.0080 -0.0080 90.5 -0.0064 -0.0064 105.5 -0.0050 -0.0050 123.5 -0.0038 -0.0038 143.0 -0.0029 -0.0029 163.5 -0.0022 -0.0022 185.0 -0.0017 -0.0017 208.0 -0.0013 -0.0013 232.5 -0.0010 -0.0010 258.5 -0.0007 -0.0007 286.0 -0.0005 -0.0005 331.0 -0.0003 -0.0003 396.0 -0.0000 -0.0000 468.5 0.0001 0.0001 549.5 0.0002 0.0002 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0002 0.0002 -1.8 2.0 132 9.0 -0.1498 -0.1498 11.0 -0.1233 -0.1233 13.5 -0.0990 -0.0990 16.5 -0.0785 -0.0785 19.5 -0.0638 -0.0638 22.5 -0.0529 -0.0529 26.0 -0.0434 -0.0434 30.0 -0.0353 -0.0353 34.5 -0.0285 -0.0285 40.0 -0.0225 -0.0225 46.0 -0.0177 -0.0177 52.5 -0.0140 -0.0140 60.0 -0.0108 -0.0108 69.0 -0.0081 -0.0081 79.0 -0.0059 -0.0059 90.5 -0.0042 -0.0042 105.5 -0.0026 -0.0026 123.5 -0.0014 -0.0014 143.0 -0.0005 -0.0005 163.5 0.0001 0.0001 185.0 0.0006 0.0006 208.0 0.0009 0.0009 232.5 0.0011 0.0011 258.5 0.0013 0.0013 286.0 0.0014 0.0014 331.0 0.0015 0.0015 396.0 0.0016 0.0016 468.5 0.0016 0.0016 549.5 0.0016 0.0016 639.0 0.0015 0.0015 738.0 0.0014 0.0014 847.5 0.0014 0.0014 968.5 0.0013 0.0013 1102.0 0.0012 0.0012 1249.5 0.0011 0.0011 1412.0 0.0011 0.0011 1590.5 0.0010 0.0010 1787.0 0.0009 0.0009 1945.0 0.0009 0.0009 2119.0 0.0008 0.0008 2369.0 0.0008 0.0008 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0006 0.0006 -2.0 2.2 132 9.0 -0.2041 -0.2041 11.0 -0.1649 -0.1649 13.5 -0.1289 -0.1289 16.5 -0.0990 -0.0990 19.5 -0.0781 -0.0781 22.5 -0.0628 -0.0628 26.0 -0.0496 -0.0496 30.0 -0.0386 -0.0386 34.5 -0.0296 -0.0296 40.0 -0.0218 -0.0218 46.0 -0.0159 -0.0159 52.5 -0.0113 -0.0113 60.0 -0.0076 -0.0076 69.0 -0.0045 -0.0045 79.0 -0.0021 -0.0021 90.5 -0.0002 -0.0002 105.5 0.0014 0.0014 123.5 0.0025 0.0025 143.0 0.0033 0.0033 163.5 0.0038 0.0038 185.0 0.0041 0.0041 208.0 0.0043 0.0043 232.5 0.0044 0.0044 258.5 0.0044 0.0044 286.0 0.0044 0.0044 331.0 0.0043 0.0043 396.0 0.0040 0.0040 468.5 0.0038 0.0038 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0031 0.0031 847.5 0.0029 0.0029 968.5 0.0027 0.0027 1102.0 0.0025 0.0025 1249.5 0.0023 0.0023 1412.0 0.0021 0.0021 1590.5 0.0020 0.0020 1787.0 0.0018 0.0018 1945.0 0.0017 0.0017 2119.0 0.0016 0.0016 2369.0 0.0015 0.0015 2643.5 0.0014 0.0014 2945.0 0.0013 0.0013 3276.5 0.0012 0.0012 -2.2 2.4 132 9.0 -0.2125 -0.2125 11.0 -0.1721 -0.1721 13.5 -0.1340 -0.1340 16.5 -0.1022 -0.1022 19.5 -0.0798 -0.0798 22.5 -0.0636 -0.0636 26.0 -0.0497 -0.0497 30.0 -0.0382 -0.0382 34.5 -0.0289 -0.0289 40.0 -0.0209 -0.0209 46.0 -0.0148 -0.0148 52.5 -0.0102 -0.0102 60.0 -0.0064 -0.0064 69.0 -0.0032 -0.0032 79.0 -0.0008 -0.0008 90.5 0.0011 0.0011 105.5 0.0027 0.0027 123.5 0.0038 0.0038 143.0 0.0046 0.0046 163.5 0.0050 0.0050 185.0 0.0053 0.0053 208.0 0.0054 0.0054 232.5 0.0054 0.0054 258.5 0.0054 0.0054 286.0 0.0053 0.0053 331.0 0.0051 0.0051 396.0 0.0048 0.0048 468.5 0.0045 0.0045 549.5 0.0042 0.0042 639.0 0.0039 0.0039 738.0 0.0036 0.0036 847.5 0.0034 0.0034 968.5 0.0031 0.0031 1102.0 0.0029 0.0029 1249.5 0.0027 0.0027 1412.0 0.0025 0.0025 1590.5 0.0023 0.0023 1787.0 0.0021 0.0021 1945.0 0.0020 0.0020 2119.0 0.0019 0.0019 2369.0 0.0017 0.0017 2643.5 0.0016 0.0016 2945.0 0.0015 0.0015 3276.5 0.0014 0.0014 -2.4 2.6 132 9.0 -0.1491 -0.1491 11.0 -0.1230 -0.1230 13.5 -0.0966 -0.0966 16.5 -0.0734 -0.0734 19.5 -0.0568 -0.0568 22.5 -0.0446 -0.0446 26.0 -0.0341 -0.0341 30.0 -0.0253 -0.0253 34.5 -0.0182 -0.0182 40.0 -0.0120 -0.0120 46.0 -0.0073 -0.0073 52.5 -0.0037 -0.0037 60.0 -0.0007 -0.0007 69.0 0.0017 0.0017 79.0 0.0035 0.0035 90.5 0.0049 0.0049 105.5 0.0060 0.0060 123.5 0.0067 0.0067 143.0 0.0071 0.0071 163.5 0.0072 0.0072 185.0 0.0072 0.0072 208.0 0.0071 0.0071 232.5 0.0070 0.0070 258.5 0.0068 0.0068 286.0 0.0066 0.0066 331.0 0.0062 0.0062 396.0 0.0057 0.0057 468.5 0.0053 0.0053 549.5 0.0049 0.0049 639.0 0.0045 0.0045 738.0 0.0041 0.0041 847.5 0.0038 0.0038 968.5 0.0035 0.0035 1102.0 0.0032 0.0032 1249.5 0.0030 0.0030 1412.0 0.0027 0.0027 1590.5 0.0025 0.0025 1787.0 0.0023 0.0023 1945.0 0.0022 0.0022 2119.0 0.0021 0.0021 2369.0 0.0019 0.0019 2643.5 0.0018 0.0018 2945.0 0.0016 0.0016 3276.5 0.0015 0.0015 -2.6 2.8 132 9.0 -0.0111 -0.0111 11.0 -0.0075 -0.0075 13.5 -0.0039 -0.0039 16.5 -0.0007 -0.0007 19.5 0.0016 0.0016 22.5 0.0032 0.0032 26.0 0.0045 0.0045 30.0 0.0055 0.0055 34.5 0.0062 0.0062 40.0 0.0068 0.0068 46.0 0.0071 0.0071 52.5 0.0072 0.0072 60.0 0.0072 0.0072 69.0 0.0072 0.0072 79.0 0.0070 0.0070 90.5 0.0068 0.0068 105.5 0.0064 0.0064 123.5 0.0061 0.0061 143.0 0.0057 0.0057 163.5 0.0053 0.0053 185.0 0.0050 0.0050 208.0 0.0047 0.0047 232.5 0.0044 0.0044 258.5 0.0041 0.0041 286.0 0.0039 0.0039 331.0 0.0035 0.0035 396.0 0.0031 0.0031 468.5 0.0028 0.0028 549.5 0.0025 0.0025 639.0 0.0023 0.0023 738.0 0.0020 0.0020 847.5 0.0018 0.0018 968.5 0.0017 0.0017 1102.0 0.0015 0.0015 1249.5 0.0014 0.0014 1412.0 0.0013 0.0013 1590.5 0.0012 0.0012 1787.0 0.0011 0.0011 1945.0 0.0010 0.0010 2119.0 0.0009 0.0009 2369.0 0.0009 0.0009 2643.5 0.0008 0.0008 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -2.8 3.0 132 9.0 -0.0268 -0.0268 11.0 -0.0232 -0.0232 13.5 -0.0193 -0.0193 16.5 -0.0157 -0.0157 19.5 -0.0128 -0.0128 22.5 -0.0106 -0.0106 26.0 -0.0086 -0.0086 30.0 -0.0069 -0.0069 34.5 -0.0054 -0.0054 40.0 -0.0041 -0.0041 46.0 -0.0030 -0.0030 52.5 -0.0022 -0.0022 60.0 -0.0014 -0.0014 69.0 -0.0008 -0.0008 79.0 -0.0003 -0.0003 90.5 0.0001 0.0001 105.5 0.0004 0.0004 123.5 0.0007 0.0007 143.0 0.0008 0.0008 163.5 0.0009 0.0009 185.0 0.0010 0.0010 208.0 0.0010 0.0010 232.5 0.0010 0.0010 258.5 0.0010 0.0010 286.0 0.0010 0.0010 331.0 0.0010 0.0010 396.0 0.0009 0.0009 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1945.0 0.0004 0.0004 2119.0 0.0004 0.0004 2369.0 0.0004 0.0004 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 -3.0 3.5 132 9.0 -0.0298 -0.0298 11.0 -0.0208 -0.0208 13.5 -0.0115 -0.0115 16.5 -0.0031 -0.0031 19.5 0.0029 0.0029 22.5 0.0072 0.0072 26.0 0.0109 0.0109 30.0 0.0138 0.0138 34.5 0.0159 0.0159 40.0 0.0175 0.0175 46.0 0.0185 0.0185 52.5 0.0189 0.0189 60.0 0.0190 0.0190 69.0 0.0188 0.0188 79.0 0.0184 0.0184 90.5 0.0177 0.0177 105.5 0.0168 0.0168 123.5 0.0158 0.0158 143.0 0.0148 0.0148 163.5 0.0138 0.0138 185.0 0.0129 0.0129 208.0 0.0121 0.0121 232.5 0.0113 0.0113 258.5 0.0107 0.0107 286.0 0.0101 0.0101 331.0 0.0092 0.0092 396.0 0.0082 0.0082 468.5 0.0074 0.0074 549.5 0.0066 0.0066 639.0 0.0060 0.0060 738.0 0.0054 0.0054 847.5 0.0049 0.0049 968.5 0.0044 0.0044 1102.0 0.0040 0.0040 1249.5 0.0037 0.0037 1412.0 0.0034 0.0034 1590.5 0.0031 0.0031 1787.0 0.0028 0.0028 1945.0 0.0026 0.0026 2119.0 0.0025 0.0025 2369.0 0.0023 0.0023 2643.5 0.0021 0.0021 2945.0 0.0019 0.0019 3276.5 0.0017 0.0017 -3.5 4.0 132 9.0 -0.0415 -0.0415 11.0 -0.0342 -0.0342 13.5 -0.0266 -0.0266 16.5 -0.0196 -0.0196 19.5 -0.0144 -0.0144 22.5 -0.0105 -0.0105 26.0 -0.0071 -0.0071 30.0 -0.0043 -0.0043 34.5 -0.0020 -0.0020 40.0 -0.0000 -0.0000 46.0 0.0014 0.0014 52.5 0.0025 0.0025 60.0 0.0033 0.0033 69.0 0.0039 0.0039 79.0 0.0043 0.0043 90.5 0.0045 0.0045 105.5 0.0047 0.0047 123.5 0.0047 0.0047 143.0 0.0046 0.0046 163.5 0.0045 0.0045 185.0 0.0043 0.0043 208.0 0.0042 0.0042 232.5 0.0040 0.0040 258.5 0.0038 0.0038 286.0 0.0037 0.0037 331.0 0.0034 0.0034 396.0 0.0031 0.0031 468.5 0.0028 0.0028 549.5 0.0026 0.0026 639.0 0.0024 0.0024 738.0 0.0022 0.0022 847.5 0.0020 0.0020 968.5 0.0018 0.0018 1102.0 0.0017 0.0017 1249.5 0.0015 0.0015 1412.0 0.0014 0.0014 1590.5 0.0013 0.0013 1787.0 0.0012 0.0012 1945.0 0.0011 0.0011 2119.0 0.0010 0.0010 2369.0 0.0010 0.0010 2643.5 0.0009 0.0009 2945.0 0.0008 0.0008 3276.5 0.0008 0.0008 -4.0 4.4 132 9.0 -0.0605 -0.0605 11.0 -0.0512 -0.0512 13.5 -0.0416 -0.0416 16.5 -0.0329 -0.0329 19.5 -0.0264 -0.0264 22.5 -0.0216 -0.0216 26.0 -0.0173 -0.0173 30.0 -0.0137 -0.0137 34.5 -0.0107 -0.0107 40.0 -0.0080 -0.0080 46.0 -0.0059 -0.0059 52.5 -0.0043 -0.0043 60.0 -0.0029 -0.0029 69.0 -0.0017 -0.0017 79.0 -0.0008 -0.0008 90.5 -0.0001 -0.0001 105.5 0.0006 0.0006 123.5 0.0010 0.0010 143.0 0.0013 0.0013 163.5 0.0015 0.0015 185.0 0.0016 0.0016 208.0 0.0017 0.0017 232.5 0.0018 0.0018 258.5 0.0018 0.0018 286.0 0.0018 0.0018 331.0 0.0017 0.0017 396.0 0.0017 0.0017 468.5 0.0016 0.0016 549.5 0.0015 0.0015 639.0 0.0014 0.0014 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 -4.4 5.0 132 9.0 -0.0085 -0.0085 11.0 -0.0030 -0.0030 13.5 0.0021 0.0021 16.5 0.0062 0.0062 19.5 0.0087 0.0087 22.5 0.0104 0.0104 26.0 0.0115 0.0115 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0128 0.0128 46.0 0.0127 0.0127 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0098 0.0098 123.5 0.0091 0.0091 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0073 0.0073 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0056 0.0056 331.0 0.0051 0.0051 396.0 0.0045 0.0045 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0026 0.0026 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 -5.0 5.4 132 9.0 -0.0085 -0.0085 11.0 -0.0030 -0.0030 13.5 0.0021 0.0021 16.5 0.0062 0.0062 19.5 0.0087 0.0087 22.5 0.0104 0.0104 26.0 0.0115 0.0115 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0128 0.0128 46.0 0.0127 0.0127 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0098 0.0098 123.5 0.0091 0.0091 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0073 0.0073 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0056 0.0056 331.0 0.0051 0.0051 396.0 0.0045 0.0045 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0026 0.0026 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 -[PileUpPtEC] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 -0.0085 -0.0085 11.0 -0.0030 -0.0030 13.5 0.0021 0.0021 16.5 0.0062 0.0062 19.5 0.0087 0.0087 22.5 0.0104 0.0104 26.0 0.0115 0.0115 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0128 0.0128 46.0 0.0127 0.0127 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0098 0.0098 123.5 0.0091 0.0091 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0073 0.0073 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0056 0.0056 331.0 0.0051 0.0051 396.0 0.0045 0.0045 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0026 0.0026 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 --5.0 -4.4 132 9.0 -0.0085 -0.0085 11.0 -0.0030 -0.0030 13.5 0.0021 0.0021 16.5 0.0062 0.0062 19.5 0.0087 0.0087 22.5 0.0104 0.0104 26.0 0.0115 0.0115 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0128 0.0128 46.0 0.0127 0.0127 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0098 0.0098 123.5 0.0091 0.0091 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0073 0.0073 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0056 0.0056 331.0 0.0051 0.0051 396.0 0.0045 0.0045 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0026 0.0026 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 --4.4 -4.0 132 9.0 -0.0605 -0.0605 11.0 -0.0512 -0.0512 13.5 -0.0416 -0.0416 16.5 -0.0329 -0.0329 19.5 -0.0264 -0.0264 22.5 -0.0216 -0.0216 26.0 -0.0173 -0.0173 30.0 -0.0137 -0.0137 34.5 -0.0107 -0.0107 40.0 -0.0080 -0.0080 46.0 -0.0059 -0.0059 52.5 -0.0043 -0.0043 60.0 -0.0029 -0.0029 69.0 -0.0017 -0.0017 79.0 -0.0008 -0.0008 90.5 -0.0001 -0.0001 105.5 0.0006 0.0006 123.5 0.0010 0.0010 143.0 0.0013 0.0013 163.5 0.0015 0.0015 185.0 0.0016 0.0016 208.0 0.0017 0.0017 232.5 0.0018 0.0018 258.5 0.0018 0.0018 286.0 0.0018 0.0018 331.0 0.0017 0.0017 396.0 0.0017 0.0017 468.5 0.0016 0.0016 549.5 0.0015 0.0015 639.0 0.0014 0.0014 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 --4.0 -3.5 132 9.0 -0.0415 -0.0415 11.0 -0.0342 -0.0342 13.5 -0.0266 -0.0266 16.5 -0.0196 -0.0196 19.5 -0.0144 -0.0144 22.5 -0.0105 -0.0105 26.0 -0.0071 -0.0071 30.0 -0.0043 -0.0043 34.5 -0.0020 -0.0020 40.0 -0.0000 -0.0000 46.0 0.0014 0.0014 52.5 0.0025 0.0025 60.0 0.0033 0.0033 69.0 0.0039 0.0039 79.0 0.0043 0.0043 90.5 0.0045 0.0045 105.5 0.0047 0.0047 123.5 0.0047 0.0047 143.0 0.0046 0.0046 163.5 0.0045 0.0045 185.0 0.0043 0.0043 208.0 0.0042 0.0042 232.5 0.0040 0.0040 258.5 0.0038 0.0038 286.0 0.0037 0.0037 331.0 0.0034 0.0034 396.0 0.0031 0.0031 468.5 0.0028 0.0028 549.5 0.0026 0.0026 639.0 0.0024 0.0024 738.0 0.0022 0.0022 847.5 0.0020 0.0020 968.5 0.0018 0.0018 1102.0 0.0017 0.0017 1249.5 0.0015 0.0015 1412.0 0.0014 0.0014 1590.5 0.0013 0.0013 1787.0 0.0012 0.0012 1945.0 0.0011 0.0011 2119.0 0.0010 0.0010 2369.0 0.0010 0.0010 2643.5 0.0009 0.0009 2945.0 0.0008 0.0008 3276.5 0.0008 0.0008 --3.5 -3.0 132 9.0 -0.0298 -0.0298 11.0 -0.0208 -0.0208 13.5 -0.0115 -0.0115 16.5 -0.0031 -0.0031 19.5 0.0029 0.0029 22.5 0.0072 0.0072 26.0 0.0109 0.0109 30.0 0.0138 0.0138 34.5 0.0159 0.0159 40.0 0.0175 0.0175 46.0 0.0185 0.0185 52.5 0.0189 0.0189 60.0 0.0190 0.0190 69.0 0.0188 0.0188 79.0 0.0184 0.0184 90.5 0.0177 0.0177 105.5 0.0168 0.0168 123.5 0.0158 0.0158 143.0 0.0148 0.0148 163.5 0.0138 0.0138 185.0 0.0129 0.0129 208.0 0.0121 0.0121 232.5 0.0113 0.0113 258.5 0.0107 0.0107 286.0 0.0101 0.0101 331.0 0.0092 0.0092 396.0 0.0082 0.0082 468.5 0.0074 0.0074 549.5 0.0066 0.0066 639.0 0.0060 0.0060 738.0 0.0054 0.0054 847.5 0.0049 0.0049 968.5 0.0044 0.0044 1102.0 0.0040 0.0040 1249.5 0.0037 0.0037 1412.0 0.0034 0.0034 1590.5 0.0031 0.0031 1787.0 0.0028 0.0028 1945.0 0.0026 0.0026 2119.0 0.0025 0.0025 2369.0 0.0023 0.0023 2643.5 0.0021 0.0021 2945.0 0.0019 0.0019 3276.5 0.0017 0.0017 --3.0 -2.8 132 9.0 -0.0268 -0.0268 11.0 -0.0232 -0.0232 13.5 -0.0193 -0.0193 16.5 -0.0157 -0.0157 19.5 -0.0128 -0.0128 22.5 -0.0106 -0.0106 26.0 -0.0086 -0.0086 30.0 -0.0069 -0.0069 34.5 -0.0054 -0.0054 40.0 -0.0041 -0.0041 46.0 -0.0030 -0.0030 52.5 -0.0022 -0.0022 60.0 -0.0014 -0.0014 69.0 -0.0008 -0.0008 79.0 -0.0003 -0.0003 90.5 0.0001 0.0001 105.5 0.0004 0.0004 123.5 0.0007 0.0007 143.0 0.0008 0.0008 163.5 0.0009 0.0009 185.0 0.0010 0.0010 208.0 0.0010 0.0010 232.5 0.0010 0.0010 258.5 0.0010 0.0010 286.0 0.0010 0.0010 331.0 0.0010 0.0010 396.0 0.0009 0.0009 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1945.0 0.0004 0.0004 2119.0 0.0004 0.0004 2369.0 0.0004 0.0004 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 --2.8 -2.6 132 9.0 -0.0111 -0.0111 11.0 -0.0075 -0.0075 13.5 -0.0039 -0.0039 16.5 -0.0007 -0.0007 19.5 0.0016 0.0016 22.5 0.0032 0.0032 26.0 0.0045 0.0045 30.0 0.0055 0.0055 34.5 0.0062 0.0062 40.0 0.0068 0.0068 46.0 0.0071 0.0071 52.5 0.0072 0.0072 60.0 0.0072 0.0072 69.0 0.0072 0.0072 79.0 0.0070 0.0070 90.5 0.0068 0.0068 105.5 0.0064 0.0064 123.5 0.0061 0.0061 143.0 0.0057 0.0057 163.5 0.0053 0.0053 185.0 0.0050 0.0050 208.0 0.0047 0.0047 232.5 0.0044 0.0044 258.5 0.0041 0.0041 286.0 0.0039 0.0039 331.0 0.0035 0.0035 396.0 0.0031 0.0031 468.5 0.0028 0.0028 549.5 0.0025 0.0025 639.0 0.0023 0.0023 738.0 0.0020 0.0020 847.5 0.0018 0.0018 968.5 0.0017 0.0017 1102.0 0.0015 0.0015 1249.5 0.0014 0.0014 1412.0 0.0013 0.0013 1590.5 0.0012 0.0012 1787.0 0.0011 0.0011 1945.0 0.0010 0.0010 2119.0 0.0009 0.0009 2369.0 0.0009 0.0009 2643.5 0.0008 0.0008 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --2.6 -2.4 132 9.0 -0.1491 -0.1491 11.0 -0.1230 -0.1230 13.5 -0.0966 -0.0966 16.5 -0.0734 -0.0734 19.5 -0.0568 -0.0568 22.5 -0.0446 -0.0446 26.0 -0.0341 -0.0341 30.0 -0.0253 -0.0253 34.5 -0.0182 -0.0182 40.0 -0.0120 -0.0120 46.0 -0.0073 -0.0073 52.5 -0.0037 -0.0037 60.0 -0.0007 -0.0007 69.0 0.0017 0.0017 79.0 0.0035 0.0035 90.5 0.0049 0.0049 105.5 0.0060 0.0060 123.5 0.0067 0.0067 143.0 0.0071 0.0071 163.5 0.0072 0.0072 185.0 0.0072 0.0072 208.0 0.0071 0.0071 232.5 0.0070 0.0070 258.5 0.0068 0.0068 286.0 0.0066 0.0066 331.0 0.0062 0.0062 396.0 0.0057 0.0057 468.5 0.0053 0.0053 549.5 0.0049 0.0049 639.0 0.0045 0.0045 738.0 0.0041 0.0041 847.5 0.0038 0.0038 968.5 0.0035 0.0035 1102.0 0.0032 0.0032 1249.5 0.0030 0.0030 1412.0 0.0027 0.0027 1590.5 0.0025 0.0025 1787.0 0.0023 0.0023 1945.0 0.0022 0.0022 2119.0 0.0021 0.0021 2369.0 0.0019 0.0019 2643.5 0.0018 0.0018 2945.0 0.0016 0.0016 3276.5 0.0015 0.0015 --2.4 -2.2 132 9.0 -0.2125 -0.2125 11.0 -0.1721 -0.1721 13.5 -0.1340 -0.1340 16.5 -0.1022 -0.1022 19.5 -0.0798 -0.0798 22.5 -0.0636 -0.0636 26.0 -0.0497 -0.0497 30.0 -0.0382 -0.0382 34.5 -0.0289 -0.0289 40.0 -0.0209 -0.0209 46.0 -0.0148 -0.0148 52.5 -0.0102 -0.0102 60.0 -0.0064 -0.0064 69.0 -0.0032 -0.0032 79.0 -0.0008 -0.0008 90.5 0.0011 0.0011 105.5 0.0027 0.0027 123.5 0.0038 0.0038 143.0 0.0046 0.0046 163.5 0.0050 0.0050 185.0 0.0053 0.0053 208.0 0.0054 0.0054 232.5 0.0054 0.0054 258.5 0.0054 0.0054 286.0 0.0053 0.0053 331.0 0.0051 0.0051 396.0 0.0048 0.0048 468.5 0.0045 0.0045 549.5 0.0042 0.0042 639.0 0.0039 0.0039 738.0 0.0036 0.0036 847.5 0.0034 0.0034 968.5 0.0031 0.0031 1102.0 0.0029 0.0029 1249.5 0.0027 0.0027 1412.0 0.0025 0.0025 1590.5 0.0023 0.0023 1787.0 0.0021 0.0021 1945.0 0.0020 0.0020 2119.0 0.0019 0.0019 2369.0 0.0017 0.0017 2643.5 0.0016 0.0016 2945.0 0.0015 0.0015 3276.5 0.0014 0.0014 --2.2 -2.0 132 9.0 -0.2041 -0.2041 11.0 -0.1649 -0.1649 13.5 -0.1289 -0.1289 16.5 -0.0990 -0.0990 19.5 -0.0781 -0.0781 22.5 -0.0628 -0.0628 26.0 -0.0496 -0.0496 30.0 -0.0386 -0.0386 34.5 -0.0296 -0.0296 40.0 -0.0218 -0.0218 46.0 -0.0159 -0.0159 52.5 -0.0113 -0.0113 60.0 -0.0076 -0.0076 69.0 -0.0045 -0.0045 79.0 -0.0021 -0.0021 90.5 -0.0002 -0.0002 105.5 0.0014 0.0014 123.5 0.0025 0.0025 143.0 0.0033 0.0033 163.5 0.0038 0.0038 185.0 0.0041 0.0041 208.0 0.0043 0.0043 232.5 0.0044 0.0044 258.5 0.0044 0.0044 286.0 0.0044 0.0044 331.0 0.0043 0.0043 396.0 0.0040 0.0040 468.5 0.0038 0.0038 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0031 0.0031 847.5 0.0029 0.0029 968.5 0.0027 0.0027 1102.0 0.0025 0.0025 1249.5 0.0023 0.0023 1412.0 0.0021 0.0021 1590.5 0.0020 0.0020 1787.0 0.0018 0.0018 1945.0 0.0017 0.0017 2119.0 0.0016 0.0016 2369.0 0.0015 0.0015 2643.5 0.0014 0.0014 2945.0 0.0013 0.0013 3276.5 0.0012 0.0012 --2.0 -1.8 132 9.0 -0.1498 -0.1498 11.0 -0.1233 -0.1233 13.5 -0.0990 -0.0990 16.5 -0.0785 -0.0785 19.5 -0.0638 -0.0638 22.5 -0.0529 -0.0529 26.0 -0.0434 -0.0434 30.0 -0.0353 -0.0353 34.5 -0.0285 -0.0285 40.0 -0.0225 -0.0225 46.0 -0.0177 -0.0177 52.5 -0.0140 -0.0140 60.0 -0.0108 -0.0108 69.0 -0.0081 -0.0081 79.0 -0.0059 -0.0059 90.5 -0.0042 -0.0042 105.5 -0.0026 -0.0026 123.5 -0.0014 -0.0014 143.0 -0.0005 -0.0005 163.5 0.0001 0.0001 185.0 0.0006 0.0006 208.0 0.0009 0.0009 232.5 0.0011 0.0011 258.5 0.0013 0.0013 286.0 0.0014 0.0014 331.0 0.0015 0.0015 396.0 0.0016 0.0016 468.5 0.0016 0.0016 549.5 0.0016 0.0016 639.0 0.0015 0.0015 738.0 0.0014 0.0014 847.5 0.0014 0.0014 968.5 0.0013 0.0013 1102.0 0.0012 0.0012 1249.5 0.0011 0.0011 1412.0 0.0011 0.0011 1590.5 0.0010 0.0010 1787.0 0.0009 0.0009 1945.0 0.0009 0.0009 2119.0 0.0008 0.0008 2369.0 0.0008 0.0008 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0006 0.0006 --1.8 -1.6 132 9.0 -0.1106 -0.1106 11.0 -0.0931 -0.0931 13.5 -0.0767 -0.0767 16.5 -0.0625 -0.0625 19.5 -0.0521 -0.0521 22.5 -0.0443 -0.0443 26.0 -0.0373 -0.0373 30.0 -0.0313 -0.0313 34.5 -0.0262 -0.0262 40.0 -0.0215 -0.0215 46.0 -0.0178 -0.0178 52.5 -0.0148 -0.0148 60.0 -0.0121 -0.0121 69.0 -0.0098 -0.0098 79.0 -0.0080 -0.0080 90.5 -0.0064 -0.0064 105.5 -0.0050 -0.0050 123.5 -0.0038 -0.0038 143.0 -0.0029 -0.0029 163.5 -0.0022 -0.0022 185.0 -0.0017 -0.0017 208.0 -0.0013 -0.0013 232.5 -0.0010 -0.0010 258.5 -0.0007 -0.0007 286.0 -0.0005 -0.0005 331.0 -0.0003 -0.0003 396.0 -0.0000 -0.0000 468.5 0.0001 0.0001 549.5 0.0002 0.0002 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0002 0.0002 --1.6 -1.4 132 9.0 -0.0970 -0.0970 11.0 -0.0811 -0.0811 13.5 -0.0662 -0.0662 16.5 -0.0534 -0.0534 19.5 -0.0440 -0.0440 22.5 -0.0370 -0.0370 26.0 -0.0307 -0.0307 30.0 -0.0254 -0.0254 34.5 -0.0208 -0.0208 40.0 -0.0168 -0.0168 46.0 -0.0135 -0.0135 52.5 -0.0109 -0.0109 60.0 -0.0087 -0.0087 69.0 -0.0068 -0.0068 79.0 -0.0053 -0.0053 90.5 -0.0040 -0.0040 105.5 -0.0029 -0.0029 123.5 -0.0019 -0.0019 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0004 -0.0004 208.0 -0.0001 -0.0001 232.5 0.0001 0.0001 258.5 0.0003 0.0003 286.0 0.0004 0.0004 331.0 0.0006 0.0006 396.0 0.0007 0.0007 468.5 0.0007 0.0007 549.5 0.0007 0.0007 639.0 0.0007 0.0007 738.0 0.0007 0.0007 847.5 0.0007 0.0007 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1945.0 0.0005 0.0005 2119.0 0.0005 0.0005 2369.0 0.0004 0.0004 2643.5 0.0004 0.0004 2945.0 0.0004 0.0004 3276.5 0.0004 0.0004 --1.4 -1.2 132 9.0 -0.0940 -0.0940 11.0 -0.0749 -0.0749 13.5 -0.0573 -0.0573 16.5 -0.0426 -0.0426 19.5 -0.0323 -0.0323 22.5 -0.0248 -0.0248 26.0 -0.0183 -0.0183 30.0 -0.0129 -0.0129 34.5 -0.0085 -0.0085 40.0 -0.0047 -0.0047 46.0 -0.0019 -0.0019 52.5 0.0002 0.0002 60.0 0.0019 0.0019 69.0 0.0032 0.0032 79.0 0.0042 0.0042 90.5 0.0048 0.0048 105.5 0.0053 0.0053 123.5 0.0056 0.0056 143.0 0.0057 0.0057 163.5 0.0056 0.0056 185.0 0.0055 0.0055 208.0 0.0054 0.0054 232.5 0.0052 0.0052 258.5 0.0051 0.0051 286.0 0.0049 0.0049 331.0 0.0046 0.0046 396.0 0.0042 0.0042 468.5 0.0039 0.0039 549.5 0.0035 0.0035 639.0 0.0032 0.0032 738.0 0.0030 0.0030 847.5 0.0027 0.0027 968.5 0.0025 0.0025 1102.0 0.0023 0.0023 1249.5 0.0021 0.0021 1412.0 0.0019 0.0019 1590.5 0.0018 0.0018 1787.0 0.0016 0.0016 1945.0 0.0015 0.0015 2119.0 0.0014 0.0014 2369.0 0.0013 0.0013 2643.5 0.0012 0.0012 2945.0 0.0011 0.0011 3276.5 0.0010 0.0010 --1.2 -1.0 132 9.0 -0.0930 -0.0930 11.0 -0.0746 -0.0746 13.5 -0.0576 -0.0576 16.5 -0.0433 -0.0433 19.5 -0.0332 -0.0332 22.5 -0.0258 -0.0258 26.0 -0.0195 -0.0195 30.0 -0.0141 -0.0141 34.5 -0.0098 -0.0098 40.0 -0.0061 -0.0061 46.0 -0.0032 -0.0032 52.5 -0.0011 -0.0011 60.0 0.0006 0.0006 69.0 0.0020 0.0020 79.0 0.0030 0.0030 90.5 0.0037 0.0037 105.5 0.0043 0.0043 123.5 0.0046 0.0046 143.0 0.0048 0.0048 163.5 0.0048 0.0048 185.0 0.0048 0.0048 208.0 0.0047 0.0047 232.5 0.0046 0.0046 258.5 0.0045 0.0045 286.0 0.0043 0.0043 331.0 0.0041 0.0041 396.0 0.0038 0.0038 468.5 0.0035 0.0035 549.5 0.0032 0.0032 639.0 0.0029 0.0029 738.0 0.0027 0.0027 847.5 0.0025 0.0025 968.5 0.0023 0.0023 1102.0 0.0021 0.0021 1249.5 0.0019 0.0019 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0010 0.0010 --1.0 -0.8 132 9.0 -0.0853 -0.0853 11.0 -0.0696 -0.0696 13.5 -0.0548 -0.0548 16.5 -0.0424 -0.0424 19.5 -0.0335 -0.0335 22.5 -0.0269 -0.0269 26.0 -0.0213 -0.0213 30.0 -0.0165 -0.0165 34.5 -0.0126 -0.0126 40.0 -0.0092 -0.0092 46.0 -0.0065 -0.0065 52.5 -0.0045 -0.0045 60.0 -0.0028 -0.0028 69.0 -0.0014 -0.0014 79.0 -0.0003 -0.0003 90.5 0.0005 0.0005 105.5 0.0012 0.0012 123.5 0.0017 0.0017 143.0 0.0021 0.0021 163.5 0.0023 0.0023 185.0 0.0024 0.0024 208.0 0.0025 0.0025 232.5 0.0025 0.0025 258.5 0.0025 0.0025 286.0 0.0024 0.0024 331.0 0.0024 0.0024 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0020 0.0020 639.0 0.0018 0.0018 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0014 0.0014 1249.5 0.0013 0.0013 1412.0 0.0012 0.0012 1590.5 0.0011 0.0011 1787.0 0.0010 0.0010 1945.0 0.0009 0.0009 2119.0 0.0009 0.0009 2369.0 0.0008 0.0008 2643.5 0.0008 0.0008 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --0.8 -0.6 132 9.0 -0.0813 -0.0813 11.0 -0.0669 -0.0669 13.5 -0.0532 -0.0532 16.5 -0.0416 -0.0416 19.5 -0.0334 -0.0334 22.5 -0.0273 -0.0273 26.0 -0.0220 -0.0220 30.0 -0.0175 -0.0175 34.5 -0.0138 -0.0138 40.0 -0.0106 -0.0106 46.0 -0.0080 -0.0080 52.5 -0.0060 -0.0060 60.0 -0.0044 -0.0044 69.0 -0.0030 -0.0030 79.0 -0.0019 -0.0019 90.5 -0.0010 -0.0010 105.5 -0.0002 -0.0002 123.5 0.0004 0.0004 143.0 0.0008 0.0008 163.5 0.0011 0.0011 185.0 0.0013 0.0013 208.0 0.0014 0.0014 232.5 0.0015 0.0015 258.5 0.0015 0.0015 286.0 0.0015 0.0015 331.0 0.0015 0.0015 396.0 0.0015 0.0015 468.5 0.0014 0.0014 549.5 0.0014 0.0014 639.0 0.0013 0.0013 738.0 0.0012 0.0012 847.5 0.0011 0.0011 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0009 0.0009 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 --0.6 -0.4 132 9.0 -0.0781 -0.0781 11.0 -0.0640 -0.0640 13.5 -0.0506 -0.0506 16.5 -0.0393 -0.0393 19.5 -0.0313 -0.0313 22.5 -0.0255 -0.0255 26.0 -0.0204 -0.0204 30.0 -0.0161 -0.0161 34.5 -0.0126 -0.0126 40.0 -0.0095 -0.0095 46.0 -0.0071 -0.0071 52.5 -0.0052 -0.0052 60.0 -0.0037 -0.0037 69.0 -0.0023 -0.0023 79.0 -0.0013 -0.0013 90.5 -0.0005 -0.0005 105.5 0.0002 0.0002 123.5 0.0007 0.0007 143.0 0.0011 0.0011 163.5 0.0013 0.0013 185.0 0.0015 0.0015 208.0 0.0016 0.0016 232.5 0.0017 0.0017 258.5 0.0017 0.0017 286.0 0.0017 0.0017 331.0 0.0017 0.0017 396.0 0.0016 0.0016 468.5 0.0015 0.0015 549.5 0.0015 0.0015 639.0 0.0014 0.0014 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 --0.4 -0.2 132 9.0 -0.0799 -0.0799 11.0 -0.0653 -0.0653 13.5 -0.0515 -0.0515 16.5 -0.0399 -0.0399 19.5 -0.0316 -0.0316 22.5 -0.0256 -0.0256 26.0 -0.0204 -0.0204 30.0 -0.0160 -0.0160 34.5 -0.0124 -0.0124 40.0 -0.0092 -0.0092 46.0 -0.0068 -0.0068 52.5 -0.0048 -0.0048 60.0 -0.0033 -0.0033 69.0 -0.0019 -0.0019 79.0 -0.0009 -0.0009 90.5 -0.0001 -0.0001 105.5 0.0006 0.0006 123.5 0.0011 0.0011 143.0 0.0015 0.0015 163.5 0.0017 0.0017 185.0 0.0018 0.0018 208.0 0.0019 0.0019 232.5 0.0019 0.0019 258.5 0.0020 0.0020 286.0 0.0020 0.0020 331.0 0.0019 0.0019 396.0 0.0018 0.0018 468.5 0.0017 0.0017 549.5 0.0016 0.0016 639.0 0.0015 0.0015 738.0 0.0014 0.0014 847.5 0.0013 0.0013 968.5 0.0012 0.0012 1102.0 0.0011 0.0011 1249.5 0.0011 0.0011 1412.0 0.0010 0.0010 1590.5 0.0009 0.0009 1787.0 0.0008 0.0008 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 --0.2 0.0 132 9.0 -0.0755 -0.0755 11.0 -0.0614 -0.0614 13.5 -0.0480 -0.0480 16.5 -0.0369 -0.0369 19.5 -0.0290 -0.0290 22.5 -0.0232 -0.0232 26.0 -0.0183 -0.0183 30.0 -0.0141 -0.0141 34.5 -0.0108 -0.0108 40.0 -0.0078 -0.0078 46.0 -0.0055 -0.0055 52.5 -0.0037 -0.0037 60.0 -0.0023 -0.0023 69.0 -0.0011 -0.0011 79.0 -0.0001 -0.0001 90.5 0.0006 0.0006 105.5 0.0012 0.0012 123.5 0.0016 0.0016 143.0 0.0019 0.0019 163.5 0.0021 0.0021 185.0 0.0022 0.0022 208.0 0.0022 0.0022 232.5 0.0022 0.0022 258.5 0.0022 0.0022 286.0 0.0022 0.0022 331.0 0.0021 0.0021 396.0 0.0020 0.0020 468.5 0.0019 0.0019 549.5 0.0018 0.0018 639.0 0.0016 0.0016 738.0 0.0015 0.0015 847.5 0.0014 0.0014 968.5 0.0013 0.0013 1102.0 0.0012 0.0012 1249.5 0.0011 0.0011 1412.0 0.0010 0.0010 1590.5 0.0010 0.0010 1787.0 0.0009 0.0009 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -0.0 0.2 132 9.0 -0.0755 -0.0755 11.0 -0.0614 -0.0614 13.5 -0.0480 -0.0480 16.5 -0.0369 -0.0369 19.5 -0.0290 -0.0290 22.5 -0.0232 -0.0232 26.0 -0.0183 -0.0183 30.0 -0.0141 -0.0141 34.5 -0.0108 -0.0108 40.0 -0.0078 -0.0078 46.0 -0.0055 -0.0055 52.5 -0.0037 -0.0037 60.0 -0.0023 -0.0023 69.0 -0.0011 -0.0011 79.0 -0.0001 -0.0001 90.5 0.0006 0.0006 105.5 0.0012 0.0012 123.5 0.0016 0.0016 143.0 0.0019 0.0019 163.5 0.0021 0.0021 185.0 0.0022 0.0022 208.0 0.0022 0.0022 232.5 0.0022 0.0022 258.5 0.0022 0.0022 286.0 0.0022 0.0022 331.0 0.0021 0.0021 396.0 0.0020 0.0020 468.5 0.0019 0.0019 549.5 0.0018 0.0018 639.0 0.0016 0.0016 738.0 0.0015 0.0015 847.5 0.0014 0.0014 968.5 0.0013 0.0013 1102.0 0.0012 0.0012 1249.5 0.0011 0.0011 1412.0 0.0010 0.0010 1590.5 0.0010 0.0010 1787.0 0.0009 0.0009 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -0.2 0.4 132 9.0 -0.0799 -0.0799 11.0 -0.0653 -0.0653 13.5 -0.0515 -0.0515 16.5 -0.0399 -0.0399 19.5 -0.0316 -0.0316 22.5 -0.0256 -0.0256 26.0 -0.0204 -0.0204 30.0 -0.0160 -0.0160 34.5 -0.0124 -0.0124 40.0 -0.0092 -0.0092 46.0 -0.0068 -0.0068 52.5 -0.0048 -0.0048 60.0 -0.0033 -0.0033 69.0 -0.0019 -0.0019 79.0 -0.0009 -0.0009 90.5 -0.0001 -0.0001 105.5 0.0006 0.0006 123.5 0.0011 0.0011 143.0 0.0015 0.0015 163.5 0.0017 0.0017 185.0 0.0018 0.0018 208.0 0.0019 0.0019 232.5 0.0019 0.0019 258.5 0.0020 0.0020 286.0 0.0020 0.0020 331.0 0.0019 0.0019 396.0 0.0018 0.0018 468.5 0.0017 0.0017 549.5 0.0016 0.0016 639.0 0.0015 0.0015 738.0 0.0014 0.0014 847.5 0.0013 0.0013 968.5 0.0012 0.0012 1102.0 0.0011 0.0011 1249.5 0.0011 0.0011 1412.0 0.0010 0.0010 1590.5 0.0009 0.0009 1787.0 0.0008 0.0008 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -0.4 0.6 132 9.0 -0.0781 -0.0781 11.0 -0.0640 -0.0640 13.5 -0.0506 -0.0506 16.5 -0.0393 -0.0393 19.5 -0.0313 -0.0313 22.5 -0.0255 -0.0255 26.0 -0.0204 -0.0204 30.0 -0.0161 -0.0161 34.5 -0.0126 -0.0126 40.0 -0.0095 -0.0095 46.0 -0.0071 -0.0071 52.5 -0.0052 -0.0052 60.0 -0.0037 -0.0037 69.0 -0.0023 -0.0023 79.0 -0.0013 -0.0013 90.5 -0.0005 -0.0005 105.5 0.0002 0.0002 123.5 0.0007 0.0007 143.0 0.0011 0.0011 163.5 0.0013 0.0013 185.0 0.0015 0.0015 208.0 0.0016 0.0016 232.5 0.0017 0.0017 258.5 0.0017 0.0017 286.0 0.0017 0.0017 331.0 0.0017 0.0017 396.0 0.0016 0.0016 468.5 0.0015 0.0015 549.5 0.0015 0.0015 639.0 0.0014 0.0014 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 -0.6 0.8 132 9.0 -0.0813 -0.0813 11.0 -0.0669 -0.0669 13.5 -0.0532 -0.0532 16.5 -0.0416 -0.0416 19.5 -0.0334 -0.0334 22.5 -0.0273 -0.0273 26.0 -0.0220 -0.0220 30.0 -0.0175 -0.0175 34.5 -0.0138 -0.0138 40.0 -0.0106 -0.0106 46.0 -0.0080 -0.0080 52.5 -0.0060 -0.0060 60.0 -0.0044 -0.0044 69.0 -0.0030 -0.0030 79.0 -0.0019 -0.0019 90.5 -0.0010 -0.0010 105.5 -0.0002 -0.0002 123.5 0.0004 0.0004 143.0 0.0008 0.0008 163.5 0.0011 0.0011 185.0 0.0013 0.0013 208.0 0.0014 0.0014 232.5 0.0015 0.0015 258.5 0.0015 0.0015 286.0 0.0015 0.0015 331.0 0.0015 0.0015 396.0 0.0015 0.0015 468.5 0.0014 0.0014 549.5 0.0014 0.0014 639.0 0.0013 0.0013 738.0 0.0012 0.0012 847.5 0.0011 0.0011 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0009 0.0009 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 -0.8 1.0 132 9.0 -0.0853 -0.0853 11.0 -0.0696 -0.0696 13.5 -0.0548 -0.0548 16.5 -0.0424 -0.0424 19.5 -0.0335 -0.0335 22.5 -0.0269 -0.0269 26.0 -0.0213 -0.0213 30.0 -0.0165 -0.0165 34.5 -0.0126 -0.0126 40.0 -0.0092 -0.0092 46.0 -0.0065 -0.0065 52.5 -0.0045 -0.0045 60.0 -0.0028 -0.0028 69.0 -0.0014 -0.0014 79.0 -0.0003 -0.0003 90.5 0.0005 0.0005 105.5 0.0012 0.0012 123.5 0.0017 0.0017 143.0 0.0021 0.0021 163.5 0.0023 0.0023 185.0 0.0024 0.0024 208.0 0.0025 0.0025 232.5 0.0025 0.0025 258.5 0.0025 0.0025 286.0 0.0024 0.0024 331.0 0.0024 0.0024 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0020 0.0020 639.0 0.0018 0.0018 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0014 0.0014 1249.5 0.0013 0.0013 1412.0 0.0012 0.0012 1590.5 0.0011 0.0011 1787.0 0.0010 0.0010 1945.0 0.0009 0.0009 2119.0 0.0009 0.0009 2369.0 0.0008 0.0008 2643.5 0.0008 0.0008 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -1.0 1.2 132 9.0 -0.0930 -0.0930 11.0 -0.0746 -0.0746 13.5 -0.0576 -0.0576 16.5 -0.0433 -0.0433 19.5 -0.0332 -0.0332 22.5 -0.0258 -0.0258 26.0 -0.0195 -0.0195 30.0 -0.0141 -0.0141 34.5 -0.0098 -0.0098 40.0 -0.0061 -0.0061 46.0 -0.0032 -0.0032 52.5 -0.0011 -0.0011 60.0 0.0006 0.0006 69.0 0.0020 0.0020 79.0 0.0030 0.0030 90.5 0.0037 0.0037 105.5 0.0043 0.0043 123.5 0.0046 0.0046 143.0 0.0048 0.0048 163.5 0.0048 0.0048 185.0 0.0048 0.0048 208.0 0.0047 0.0047 232.5 0.0046 0.0046 258.5 0.0045 0.0045 286.0 0.0043 0.0043 331.0 0.0041 0.0041 396.0 0.0038 0.0038 468.5 0.0035 0.0035 549.5 0.0032 0.0032 639.0 0.0029 0.0029 738.0 0.0027 0.0027 847.5 0.0025 0.0025 968.5 0.0023 0.0023 1102.0 0.0021 0.0021 1249.5 0.0019 0.0019 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0010 0.0010 -1.2 1.4 132 9.0 -0.0940 -0.0940 11.0 -0.0749 -0.0749 13.5 -0.0573 -0.0573 16.5 -0.0426 -0.0426 19.5 -0.0323 -0.0323 22.5 -0.0248 -0.0248 26.0 -0.0183 -0.0183 30.0 -0.0129 -0.0129 34.5 -0.0085 -0.0085 40.0 -0.0047 -0.0047 46.0 -0.0019 -0.0019 52.5 0.0002 0.0002 60.0 0.0019 0.0019 69.0 0.0032 0.0032 79.0 0.0042 0.0042 90.5 0.0048 0.0048 105.5 0.0053 0.0053 123.5 0.0056 0.0056 143.0 0.0057 0.0057 163.5 0.0056 0.0056 185.0 0.0055 0.0055 208.0 0.0054 0.0054 232.5 0.0052 0.0052 258.5 0.0051 0.0051 286.0 0.0049 0.0049 331.0 0.0046 0.0046 396.0 0.0042 0.0042 468.5 0.0039 0.0039 549.5 0.0035 0.0035 639.0 0.0032 0.0032 738.0 0.0030 0.0030 847.5 0.0027 0.0027 968.5 0.0025 0.0025 1102.0 0.0023 0.0023 1249.5 0.0021 0.0021 1412.0 0.0019 0.0019 1590.5 0.0018 0.0018 1787.0 0.0016 0.0016 1945.0 0.0015 0.0015 2119.0 0.0014 0.0014 2369.0 0.0013 0.0013 2643.5 0.0012 0.0012 2945.0 0.0011 0.0011 3276.5 0.0010 0.0010 -1.4 1.6 132 9.0 -0.0970 -0.0970 11.0 -0.0811 -0.0811 13.5 -0.0662 -0.0662 16.5 -0.0534 -0.0534 19.5 -0.0440 -0.0440 22.5 -0.0370 -0.0370 26.0 -0.0307 -0.0307 30.0 -0.0254 -0.0254 34.5 -0.0208 -0.0208 40.0 -0.0168 -0.0168 46.0 -0.0135 -0.0135 52.5 -0.0109 -0.0109 60.0 -0.0087 -0.0087 69.0 -0.0068 -0.0068 79.0 -0.0053 -0.0053 90.5 -0.0040 -0.0040 105.5 -0.0029 -0.0029 123.5 -0.0019 -0.0019 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0004 -0.0004 208.0 -0.0001 -0.0001 232.5 0.0001 0.0001 258.5 0.0003 0.0003 286.0 0.0004 0.0004 331.0 0.0006 0.0006 396.0 0.0007 0.0007 468.5 0.0007 0.0007 549.5 0.0007 0.0007 639.0 0.0007 0.0007 738.0 0.0007 0.0007 847.5 0.0007 0.0007 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1945.0 0.0005 0.0005 2119.0 0.0005 0.0005 2369.0 0.0004 0.0004 2643.5 0.0004 0.0004 2945.0 0.0004 0.0004 3276.5 0.0004 0.0004 -1.6 1.8 132 9.0 -0.1106 -0.1106 11.0 -0.0931 -0.0931 13.5 -0.0767 -0.0767 16.5 -0.0625 -0.0625 19.5 -0.0521 -0.0521 22.5 -0.0443 -0.0443 26.0 -0.0373 -0.0373 30.0 -0.0313 -0.0313 34.5 -0.0262 -0.0262 40.0 -0.0215 -0.0215 46.0 -0.0178 -0.0178 52.5 -0.0148 -0.0148 60.0 -0.0121 -0.0121 69.0 -0.0098 -0.0098 79.0 -0.0080 -0.0080 90.5 -0.0064 -0.0064 105.5 -0.0050 -0.0050 123.5 -0.0038 -0.0038 143.0 -0.0029 -0.0029 163.5 -0.0022 -0.0022 185.0 -0.0017 -0.0017 208.0 -0.0013 -0.0013 232.5 -0.0010 -0.0010 258.5 -0.0007 -0.0007 286.0 -0.0005 -0.0005 331.0 -0.0003 -0.0003 396.0 -0.0000 -0.0000 468.5 0.0001 0.0001 549.5 0.0002 0.0002 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0002 0.0002 -1.8 2.0 132 9.0 -0.1498 -0.1498 11.0 -0.1233 -0.1233 13.5 -0.0990 -0.0990 16.5 -0.0785 -0.0785 19.5 -0.0638 -0.0638 22.5 -0.0529 -0.0529 26.0 -0.0434 -0.0434 30.0 -0.0353 -0.0353 34.5 -0.0285 -0.0285 40.0 -0.0225 -0.0225 46.0 -0.0177 -0.0177 52.5 -0.0140 -0.0140 60.0 -0.0108 -0.0108 69.0 -0.0081 -0.0081 79.0 -0.0059 -0.0059 90.5 -0.0042 -0.0042 105.5 -0.0026 -0.0026 123.5 -0.0014 -0.0014 143.0 -0.0005 -0.0005 163.5 0.0001 0.0001 185.0 0.0006 0.0006 208.0 0.0009 0.0009 232.5 0.0011 0.0011 258.5 0.0013 0.0013 286.0 0.0014 0.0014 331.0 0.0015 0.0015 396.0 0.0016 0.0016 468.5 0.0016 0.0016 549.5 0.0016 0.0016 639.0 0.0015 0.0015 738.0 0.0014 0.0014 847.5 0.0014 0.0014 968.5 0.0013 0.0013 1102.0 0.0012 0.0012 1249.5 0.0011 0.0011 1412.0 0.0011 0.0011 1590.5 0.0010 0.0010 1787.0 0.0009 0.0009 1945.0 0.0009 0.0009 2119.0 0.0008 0.0008 2369.0 0.0008 0.0008 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0006 0.0006 -2.0 2.2 132 9.0 -0.2041 -0.2041 11.0 -0.1649 -0.1649 13.5 -0.1289 -0.1289 16.5 -0.0990 -0.0990 19.5 -0.0781 -0.0781 22.5 -0.0628 -0.0628 26.0 -0.0496 -0.0496 30.0 -0.0386 -0.0386 34.5 -0.0296 -0.0296 40.0 -0.0218 -0.0218 46.0 -0.0159 -0.0159 52.5 -0.0113 -0.0113 60.0 -0.0076 -0.0076 69.0 -0.0045 -0.0045 79.0 -0.0021 -0.0021 90.5 -0.0002 -0.0002 105.5 0.0014 0.0014 123.5 0.0025 0.0025 143.0 0.0033 0.0033 163.5 0.0038 0.0038 185.0 0.0041 0.0041 208.0 0.0043 0.0043 232.5 0.0044 0.0044 258.5 0.0044 0.0044 286.0 0.0044 0.0044 331.0 0.0043 0.0043 396.0 0.0040 0.0040 468.5 0.0038 0.0038 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0031 0.0031 847.5 0.0029 0.0029 968.5 0.0027 0.0027 1102.0 0.0025 0.0025 1249.5 0.0023 0.0023 1412.0 0.0021 0.0021 1590.5 0.0020 0.0020 1787.0 0.0018 0.0018 1945.0 0.0017 0.0017 2119.0 0.0016 0.0016 2369.0 0.0015 0.0015 2643.5 0.0014 0.0014 2945.0 0.0013 0.0013 3276.5 0.0012 0.0012 -2.2 2.4 132 9.0 -0.2125 -0.2125 11.0 -0.1721 -0.1721 13.5 -0.1340 -0.1340 16.5 -0.1022 -0.1022 19.5 -0.0798 -0.0798 22.5 -0.0636 -0.0636 26.0 -0.0497 -0.0497 30.0 -0.0382 -0.0382 34.5 -0.0289 -0.0289 40.0 -0.0209 -0.0209 46.0 -0.0148 -0.0148 52.5 -0.0102 -0.0102 60.0 -0.0064 -0.0064 69.0 -0.0032 -0.0032 79.0 -0.0008 -0.0008 90.5 0.0011 0.0011 105.5 0.0027 0.0027 123.5 0.0038 0.0038 143.0 0.0046 0.0046 163.5 0.0050 0.0050 185.0 0.0053 0.0053 208.0 0.0054 0.0054 232.5 0.0054 0.0054 258.5 0.0054 0.0054 286.0 0.0053 0.0053 331.0 0.0051 0.0051 396.0 0.0048 0.0048 468.5 0.0045 0.0045 549.5 0.0042 0.0042 639.0 0.0039 0.0039 738.0 0.0036 0.0036 847.5 0.0034 0.0034 968.5 0.0031 0.0031 1102.0 0.0029 0.0029 1249.5 0.0027 0.0027 1412.0 0.0025 0.0025 1590.5 0.0023 0.0023 1787.0 0.0021 0.0021 1945.0 0.0020 0.0020 2119.0 0.0019 0.0019 2369.0 0.0017 0.0017 2643.5 0.0016 0.0016 2945.0 0.0015 0.0015 3276.5 0.0014 0.0014 -2.4 2.6 132 9.0 -0.1491 -0.1491 11.0 -0.1230 -0.1230 13.5 -0.0966 -0.0966 16.5 -0.0734 -0.0734 19.5 -0.0568 -0.0568 22.5 -0.0446 -0.0446 26.0 -0.0341 -0.0341 30.0 -0.0253 -0.0253 34.5 -0.0182 -0.0182 40.0 -0.0120 -0.0120 46.0 -0.0073 -0.0073 52.5 -0.0037 -0.0037 60.0 -0.0007 -0.0007 69.0 0.0017 0.0017 79.0 0.0035 0.0035 90.5 0.0049 0.0049 105.5 0.0060 0.0060 123.5 0.0067 0.0067 143.0 0.0071 0.0071 163.5 0.0072 0.0072 185.0 0.0072 0.0072 208.0 0.0071 0.0071 232.5 0.0070 0.0070 258.5 0.0068 0.0068 286.0 0.0066 0.0066 331.0 0.0062 0.0062 396.0 0.0057 0.0057 468.5 0.0053 0.0053 549.5 0.0049 0.0049 639.0 0.0045 0.0045 738.0 0.0041 0.0041 847.5 0.0038 0.0038 968.5 0.0035 0.0035 1102.0 0.0032 0.0032 1249.5 0.0030 0.0030 1412.0 0.0027 0.0027 1590.5 0.0025 0.0025 1787.0 0.0023 0.0023 1945.0 0.0022 0.0022 2119.0 0.0021 0.0021 2369.0 0.0019 0.0019 2643.5 0.0018 0.0018 2945.0 0.0016 0.0016 3276.5 0.0015 0.0015 -2.6 2.8 132 9.0 -0.0111 -0.0111 11.0 -0.0075 -0.0075 13.5 -0.0039 -0.0039 16.5 -0.0007 -0.0007 19.5 0.0016 0.0016 22.5 0.0032 0.0032 26.0 0.0045 0.0045 30.0 0.0055 0.0055 34.5 0.0062 0.0062 40.0 0.0068 0.0068 46.0 0.0071 0.0071 52.5 0.0072 0.0072 60.0 0.0072 0.0072 69.0 0.0072 0.0072 79.0 0.0070 0.0070 90.5 0.0068 0.0068 105.5 0.0064 0.0064 123.5 0.0061 0.0061 143.0 0.0057 0.0057 163.5 0.0053 0.0053 185.0 0.0050 0.0050 208.0 0.0047 0.0047 232.5 0.0044 0.0044 258.5 0.0041 0.0041 286.0 0.0039 0.0039 331.0 0.0035 0.0035 396.0 0.0031 0.0031 468.5 0.0028 0.0028 549.5 0.0025 0.0025 639.0 0.0023 0.0023 738.0 0.0020 0.0020 847.5 0.0018 0.0018 968.5 0.0017 0.0017 1102.0 0.0015 0.0015 1249.5 0.0014 0.0014 1412.0 0.0013 0.0013 1590.5 0.0012 0.0012 1787.0 0.0011 0.0011 1945.0 0.0010 0.0010 2119.0 0.0009 0.0009 2369.0 0.0009 0.0009 2643.5 0.0008 0.0008 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -2.8 3.0 132 9.0 -0.0268 -0.0268 11.0 -0.0232 -0.0232 13.5 -0.0193 -0.0193 16.5 -0.0157 -0.0157 19.5 -0.0128 -0.0128 22.5 -0.0106 -0.0106 26.0 -0.0086 -0.0086 30.0 -0.0069 -0.0069 34.5 -0.0054 -0.0054 40.0 -0.0041 -0.0041 46.0 -0.0030 -0.0030 52.5 -0.0022 -0.0022 60.0 -0.0014 -0.0014 69.0 -0.0008 -0.0008 79.0 -0.0003 -0.0003 90.5 0.0001 0.0001 105.5 0.0004 0.0004 123.5 0.0007 0.0007 143.0 0.0008 0.0008 163.5 0.0009 0.0009 185.0 0.0010 0.0010 208.0 0.0010 0.0010 232.5 0.0010 0.0010 258.5 0.0010 0.0010 286.0 0.0010 0.0010 331.0 0.0010 0.0010 396.0 0.0009 0.0009 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1945.0 0.0004 0.0004 2119.0 0.0004 0.0004 2369.0 0.0004 0.0004 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 -3.0 3.5 132 9.0 -0.0298 -0.0298 11.0 -0.0208 -0.0208 13.5 -0.0115 -0.0115 16.5 -0.0031 -0.0031 19.5 0.0029 0.0029 22.5 0.0072 0.0072 26.0 0.0109 0.0109 30.0 0.0138 0.0138 34.5 0.0159 0.0159 40.0 0.0175 0.0175 46.0 0.0185 0.0185 52.5 0.0189 0.0189 60.0 0.0190 0.0190 69.0 0.0188 0.0188 79.0 0.0184 0.0184 90.5 0.0177 0.0177 105.5 0.0168 0.0168 123.5 0.0158 0.0158 143.0 0.0148 0.0148 163.5 0.0138 0.0138 185.0 0.0129 0.0129 208.0 0.0121 0.0121 232.5 0.0113 0.0113 258.5 0.0107 0.0107 286.0 0.0101 0.0101 331.0 0.0092 0.0092 396.0 0.0082 0.0082 468.5 0.0074 0.0074 549.5 0.0066 0.0066 639.0 0.0060 0.0060 738.0 0.0054 0.0054 847.5 0.0049 0.0049 968.5 0.0044 0.0044 1102.0 0.0040 0.0040 1249.5 0.0037 0.0037 1412.0 0.0034 0.0034 1590.5 0.0031 0.0031 1787.0 0.0028 0.0028 1945.0 0.0026 0.0026 2119.0 0.0025 0.0025 2369.0 0.0023 0.0023 2643.5 0.0021 0.0021 2945.0 0.0019 0.0019 3276.5 0.0017 0.0017 -3.5 4.0 132 9.0 -0.0415 -0.0415 11.0 -0.0342 -0.0342 13.5 -0.0266 -0.0266 16.5 -0.0196 -0.0196 19.5 -0.0144 -0.0144 22.5 -0.0105 -0.0105 26.0 -0.0071 -0.0071 30.0 -0.0043 -0.0043 34.5 -0.0020 -0.0020 40.0 -0.0000 -0.0000 46.0 0.0014 0.0014 52.5 0.0025 0.0025 60.0 0.0033 0.0033 69.0 0.0039 0.0039 79.0 0.0043 0.0043 90.5 0.0045 0.0045 105.5 0.0047 0.0047 123.5 0.0047 0.0047 143.0 0.0046 0.0046 163.5 0.0045 0.0045 185.0 0.0043 0.0043 208.0 0.0042 0.0042 232.5 0.0040 0.0040 258.5 0.0038 0.0038 286.0 0.0037 0.0037 331.0 0.0034 0.0034 396.0 0.0031 0.0031 468.5 0.0028 0.0028 549.5 0.0026 0.0026 639.0 0.0024 0.0024 738.0 0.0022 0.0022 847.5 0.0020 0.0020 968.5 0.0018 0.0018 1102.0 0.0017 0.0017 1249.5 0.0015 0.0015 1412.0 0.0014 0.0014 1590.5 0.0013 0.0013 1787.0 0.0012 0.0012 1945.0 0.0011 0.0011 2119.0 0.0010 0.0010 2369.0 0.0010 0.0010 2643.5 0.0009 0.0009 2945.0 0.0008 0.0008 3276.5 0.0008 0.0008 -4.0 4.4 132 9.0 -0.0605 -0.0605 11.0 -0.0512 -0.0512 13.5 -0.0416 -0.0416 16.5 -0.0329 -0.0329 19.5 -0.0264 -0.0264 22.5 -0.0216 -0.0216 26.0 -0.0173 -0.0173 30.0 -0.0137 -0.0137 34.5 -0.0107 -0.0107 40.0 -0.0080 -0.0080 46.0 -0.0059 -0.0059 52.5 -0.0043 -0.0043 60.0 -0.0029 -0.0029 69.0 -0.0017 -0.0017 79.0 -0.0008 -0.0008 90.5 -0.0001 -0.0001 105.5 0.0006 0.0006 123.5 0.0010 0.0010 143.0 0.0013 0.0013 163.5 0.0015 0.0015 185.0 0.0016 0.0016 208.0 0.0017 0.0017 232.5 0.0018 0.0018 258.5 0.0018 0.0018 286.0 0.0018 0.0018 331.0 0.0017 0.0017 396.0 0.0017 0.0017 468.5 0.0016 0.0016 549.5 0.0015 0.0015 639.0 0.0014 0.0014 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 -4.4 5.0 132 9.0 -0.0085 -0.0085 11.0 -0.0030 -0.0030 13.5 0.0021 0.0021 16.5 0.0062 0.0062 19.5 0.0087 0.0087 22.5 0.0104 0.0104 26.0 0.0115 0.0115 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0128 0.0128 46.0 0.0127 0.0127 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0098 0.0098 123.5 0.0091 0.0091 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0073 0.0073 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0056 0.0056 331.0 0.0051 0.0051 396.0 0.0045 0.0045 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0026 0.0026 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 -5.0 5.4 132 9.0 -0.0085 -0.0085 11.0 -0.0030 -0.0030 13.5 0.0021 0.0021 16.5 0.0062 0.0062 19.5 0.0087 0.0087 22.5 0.0104 0.0104 26.0 0.0115 0.0115 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0128 0.0128 46.0 0.0127 0.0127 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0098 0.0098 123.5 0.0091 0.0091 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0073 0.0073 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0056 0.0056 331.0 0.0051 0.0051 396.0 0.0045 0.0045 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0026 0.0026 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 -[PileUpPtHF] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 -0.0085 -0.0085 11.0 -0.0030 -0.0030 13.5 0.0021 0.0021 16.5 0.0062 0.0062 19.5 0.0087 0.0087 22.5 0.0104 0.0104 26.0 0.0115 0.0115 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0128 0.0128 46.0 0.0127 0.0127 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0098 0.0098 123.5 0.0091 0.0091 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0073 0.0073 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0056 0.0056 331.0 0.0051 0.0051 396.0 0.0045 0.0045 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0026 0.0026 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 --5.0 -4.4 132 9.0 -0.0085 -0.0085 11.0 -0.0030 -0.0030 13.5 0.0021 0.0021 16.5 0.0062 0.0062 19.5 0.0087 0.0087 22.5 0.0104 0.0104 26.0 0.0115 0.0115 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0128 0.0128 46.0 0.0127 0.0127 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0098 0.0098 123.5 0.0091 0.0091 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0073 0.0073 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0056 0.0056 331.0 0.0051 0.0051 396.0 0.0045 0.0045 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0026 0.0026 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 --4.4 -4.0 132 9.0 -0.0605 -0.0605 11.0 -0.0512 -0.0512 13.5 -0.0416 -0.0416 16.5 -0.0329 -0.0329 19.5 -0.0264 -0.0264 22.5 -0.0216 -0.0216 26.0 -0.0173 -0.0173 30.0 -0.0137 -0.0137 34.5 -0.0107 -0.0107 40.0 -0.0080 -0.0080 46.0 -0.0059 -0.0059 52.5 -0.0043 -0.0043 60.0 -0.0029 -0.0029 69.0 -0.0017 -0.0017 79.0 -0.0008 -0.0008 90.5 -0.0001 -0.0001 105.5 0.0006 0.0006 123.5 0.0010 0.0010 143.0 0.0013 0.0013 163.5 0.0015 0.0015 185.0 0.0016 0.0016 208.0 0.0017 0.0017 232.5 0.0018 0.0018 258.5 0.0018 0.0018 286.0 0.0018 0.0018 331.0 0.0017 0.0017 396.0 0.0017 0.0017 468.5 0.0016 0.0016 549.5 0.0015 0.0015 639.0 0.0014 0.0014 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 --4.0 -3.5 132 9.0 -0.0415 -0.0415 11.0 -0.0342 -0.0342 13.5 -0.0266 -0.0266 16.5 -0.0196 -0.0196 19.5 -0.0144 -0.0144 22.5 -0.0105 -0.0105 26.0 -0.0071 -0.0071 30.0 -0.0043 -0.0043 34.5 -0.0020 -0.0020 40.0 -0.0000 -0.0000 46.0 0.0014 0.0014 52.5 0.0025 0.0025 60.0 0.0033 0.0033 69.0 0.0039 0.0039 79.0 0.0043 0.0043 90.5 0.0045 0.0045 105.5 0.0047 0.0047 123.5 0.0047 0.0047 143.0 0.0046 0.0046 163.5 0.0045 0.0045 185.0 0.0043 0.0043 208.0 0.0042 0.0042 232.5 0.0040 0.0040 258.5 0.0038 0.0038 286.0 0.0037 0.0037 331.0 0.0034 0.0034 396.0 0.0031 0.0031 468.5 0.0028 0.0028 549.5 0.0026 0.0026 639.0 0.0024 0.0024 738.0 0.0022 0.0022 847.5 0.0020 0.0020 968.5 0.0018 0.0018 1102.0 0.0017 0.0017 1249.5 0.0015 0.0015 1412.0 0.0014 0.0014 1590.5 0.0013 0.0013 1787.0 0.0012 0.0012 1945.0 0.0011 0.0011 2119.0 0.0010 0.0010 2369.0 0.0010 0.0010 2643.5 0.0009 0.0009 2945.0 0.0008 0.0008 3276.5 0.0008 0.0008 --3.5 -3.0 132 9.0 -0.0298 -0.0298 11.0 -0.0208 -0.0208 13.5 -0.0115 -0.0115 16.5 -0.0031 -0.0031 19.5 0.0029 0.0029 22.5 0.0072 0.0072 26.0 0.0109 0.0109 30.0 0.0138 0.0138 34.5 0.0159 0.0159 40.0 0.0175 0.0175 46.0 0.0185 0.0185 52.5 0.0189 0.0189 60.0 0.0190 0.0190 69.0 0.0188 0.0188 79.0 0.0184 0.0184 90.5 0.0177 0.0177 105.5 0.0168 0.0168 123.5 0.0158 0.0158 143.0 0.0148 0.0148 163.5 0.0138 0.0138 185.0 0.0129 0.0129 208.0 0.0121 0.0121 232.5 0.0113 0.0113 258.5 0.0107 0.0107 286.0 0.0101 0.0101 331.0 0.0092 0.0092 396.0 0.0082 0.0082 468.5 0.0074 0.0074 549.5 0.0066 0.0066 639.0 0.0060 0.0060 738.0 0.0054 0.0054 847.5 0.0049 0.0049 968.5 0.0044 0.0044 1102.0 0.0040 0.0040 1249.5 0.0037 0.0037 1412.0 0.0034 0.0034 1590.5 0.0031 0.0031 1787.0 0.0028 0.0028 1945.0 0.0026 0.0026 2119.0 0.0025 0.0025 2369.0 0.0023 0.0023 2643.5 0.0021 0.0021 2945.0 0.0019 0.0019 3276.5 0.0017 0.0017 --3.0 -2.8 132 9.0 -0.0268 -0.0268 11.0 -0.0232 -0.0232 13.5 -0.0193 -0.0193 16.5 -0.0157 -0.0157 19.5 -0.0128 -0.0128 22.5 -0.0106 -0.0106 26.0 -0.0086 -0.0086 30.0 -0.0069 -0.0069 34.5 -0.0054 -0.0054 40.0 -0.0041 -0.0041 46.0 -0.0030 -0.0030 52.5 -0.0022 -0.0022 60.0 -0.0014 -0.0014 69.0 -0.0008 -0.0008 79.0 -0.0003 -0.0003 90.5 0.0001 0.0001 105.5 0.0004 0.0004 123.5 0.0007 0.0007 143.0 0.0008 0.0008 163.5 0.0009 0.0009 185.0 0.0010 0.0010 208.0 0.0010 0.0010 232.5 0.0010 0.0010 258.5 0.0010 0.0010 286.0 0.0010 0.0010 331.0 0.0010 0.0010 396.0 0.0009 0.0009 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1945.0 0.0004 0.0004 2119.0 0.0004 0.0004 2369.0 0.0004 0.0004 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 --2.8 -2.6 132 9.0 -0.0111 -0.0111 11.0 -0.0075 -0.0075 13.5 -0.0039 -0.0039 16.5 -0.0007 -0.0007 19.5 0.0016 0.0016 22.5 0.0032 0.0032 26.0 0.0045 0.0045 30.0 0.0055 0.0055 34.5 0.0062 0.0062 40.0 0.0068 0.0068 46.0 0.0071 0.0071 52.5 0.0072 0.0072 60.0 0.0072 0.0072 69.0 0.0072 0.0072 79.0 0.0070 0.0070 90.5 0.0068 0.0068 105.5 0.0064 0.0064 123.5 0.0061 0.0061 143.0 0.0057 0.0057 163.5 0.0053 0.0053 185.0 0.0050 0.0050 208.0 0.0047 0.0047 232.5 0.0044 0.0044 258.5 0.0041 0.0041 286.0 0.0039 0.0039 331.0 0.0035 0.0035 396.0 0.0031 0.0031 468.5 0.0028 0.0028 549.5 0.0025 0.0025 639.0 0.0023 0.0023 738.0 0.0020 0.0020 847.5 0.0018 0.0018 968.5 0.0017 0.0017 1102.0 0.0015 0.0015 1249.5 0.0014 0.0014 1412.0 0.0013 0.0013 1590.5 0.0012 0.0012 1787.0 0.0011 0.0011 1945.0 0.0010 0.0010 2119.0 0.0009 0.0009 2369.0 0.0009 0.0009 2643.5 0.0008 0.0008 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --2.6 -2.4 132 9.0 -0.1491 -0.1491 11.0 -0.1230 -0.1230 13.5 -0.0966 -0.0966 16.5 -0.0734 -0.0734 19.5 -0.0568 -0.0568 22.5 -0.0446 -0.0446 26.0 -0.0341 -0.0341 30.0 -0.0253 -0.0253 34.5 -0.0182 -0.0182 40.0 -0.0120 -0.0120 46.0 -0.0073 -0.0073 52.5 -0.0037 -0.0037 60.0 -0.0007 -0.0007 69.0 0.0017 0.0017 79.0 0.0035 0.0035 90.5 0.0049 0.0049 105.5 0.0060 0.0060 123.5 0.0067 0.0067 143.0 0.0071 0.0071 163.5 0.0072 0.0072 185.0 0.0072 0.0072 208.0 0.0071 0.0071 232.5 0.0070 0.0070 258.5 0.0068 0.0068 286.0 0.0066 0.0066 331.0 0.0062 0.0062 396.0 0.0057 0.0057 468.5 0.0053 0.0053 549.5 0.0049 0.0049 639.0 0.0045 0.0045 738.0 0.0041 0.0041 847.5 0.0038 0.0038 968.5 0.0035 0.0035 1102.0 0.0032 0.0032 1249.5 0.0030 0.0030 1412.0 0.0027 0.0027 1590.5 0.0025 0.0025 1787.0 0.0023 0.0023 1945.0 0.0022 0.0022 2119.0 0.0021 0.0021 2369.0 0.0019 0.0019 2643.5 0.0018 0.0018 2945.0 0.0016 0.0016 3276.5 0.0015 0.0015 --2.4 -2.2 132 9.0 -0.2125 -0.2125 11.0 -0.1721 -0.1721 13.5 -0.1340 -0.1340 16.5 -0.1022 -0.1022 19.5 -0.0798 -0.0798 22.5 -0.0636 -0.0636 26.0 -0.0497 -0.0497 30.0 -0.0382 -0.0382 34.5 -0.0289 -0.0289 40.0 -0.0209 -0.0209 46.0 -0.0148 -0.0148 52.5 -0.0102 -0.0102 60.0 -0.0064 -0.0064 69.0 -0.0032 -0.0032 79.0 -0.0008 -0.0008 90.5 0.0011 0.0011 105.5 0.0027 0.0027 123.5 0.0038 0.0038 143.0 0.0046 0.0046 163.5 0.0050 0.0050 185.0 0.0053 0.0053 208.0 0.0054 0.0054 232.5 0.0054 0.0054 258.5 0.0054 0.0054 286.0 0.0053 0.0053 331.0 0.0051 0.0051 396.0 0.0048 0.0048 468.5 0.0045 0.0045 549.5 0.0042 0.0042 639.0 0.0039 0.0039 738.0 0.0036 0.0036 847.5 0.0034 0.0034 968.5 0.0031 0.0031 1102.0 0.0029 0.0029 1249.5 0.0027 0.0027 1412.0 0.0025 0.0025 1590.5 0.0023 0.0023 1787.0 0.0021 0.0021 1945.0 0.0020 0.0020 2119.0 0.0019 0.0019 2369.0 0.0017 0.0017 2643.5 0.0016 0.0016 2945.0 0.0015 0.0015 3276.5 0.0014 0.0014 --2.2 -2.0 132 9.0 -0.2041 -0.2041 11.0 -0.1649 -0.1649 13.5 -0.1289 -0.1289 16.5 -0.0990 -0.0990 19.5 -0.0781 -0.0781 22.5 -0.0628 -0.0628 26.0 -0.0496 -0.0496 30.0 -0.0386 -0.0386 34.5 -0.0296 -0.0296 40.0 -0.0218 -0.0218 46.0 -0.0159 -0.0159 52.5 -0.0113 -0.0113 60.0 -0.0076 -0.0076 69.0 -0.0045 -0.0045 79.0 -0.0021 -0.0021 90.5 -0.0002 -0.0002 105.5 0.0014 0.0014 123.5 0.0025 0.0025 143.0 0.0033 0.0033 163.5 0.0038 0.0038 185.0 0.0041 0.0041 208.0 0.0043 0.0043 232.5 0.0044 0.0044 258.5 0.0044 0.0044 286.0 0.0044 0.0044 331.0 0.0043 0.0043 396.0 0.0040 0.0040 468.5 0.0038 0.0038 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0031 0.0031 847.5 0.0029 0.0029 968.5 0.0027 0.0027 1102.0 0.0025 0.0025 1249.5 0.0023 0.0023 1412.0 0.0021 0.0021 1590.5 0.0020 0.0020 1787.0 0.0018 0.0018 1945.0 0.0017 0.0017 2119.0 0.0016 0.0016 2369.0 0.0015 0.0015 2643.5 0.0014 0.0014 2945.0 0.0013 0.0013 3276.5 0.0012 0.0012 --2.0 -1.8 132 9.0 -0.1498 -0.1498 11.0 -0.1233 -0.1233 13.5 -0.0990 -0.0990 16.5 -0.0785 -0.0785 19.5 -0.0638 -0.0638 22.5 -0.0529 -0.0529 26.0 -0.0434 -0.0434 30.0 -0.0353 -0.0353 34.5 -0.0285 -0.0285 40.0 -0.0225 -0.0225 46.0 -0.0177 -0.0177 52.5 -0.0140 -0.0140 60.0 -0.0108 -0.0108 69.0 -0.0081 -0.0081 79.0 -0.0059 -0.0059 90.5 -0.0042 -0.0042 105.5 -0.0026 -0.0026 123.5 -0.0014 -0.0014 143.0 -0.0005 -0.0005 163.5 0.0001 0.0001 185.0 0.0006 0.0006 208.0 0.0009 0.0009 232.5 0.0011 0.0011 258.5 0.0013 0.0013 286.0 0.0014 0.0014 331.0 0.0015 0.0015 396.0 0.0016 0.0016 468.5 0.0016 0.0016 549.5 0.0016 0.0016 639.0 0.0015 0.0015 738.0 0.0014 0.0014 847.5 0.0014 0.0014 968.5 0.0013 0.0013 1102.0 0.0012 0.0012 1249.5 0.0011 0.0011 1412.0 0.0011 0.0011 1590.5 0.0010 0.0010 1787.0 0.0009 0.0009 1945.0 0.0009 0.0009 2119.0 0.0008 0.0008 2369.0 0.0008 0.0008 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0006 0.0006 --1.8 -1.6 132 9.0 -0.1106 -0.1106 11.0 -0.0931 -0.0931 13.5 -0.0767 -0.0767 16.5 -0.0625 -0.0625 19.5 -0.0521 -0.0521 22.5 -0.0443 -0.0443 26.0 -0.0373 -0.0373 30.0 -0.0313 -0.0313 34.5 -0.0262 -0.0262 40.0 -0.0215 -0.0215 46.0 -0.0178 -0.0178 52.5 -0.0148 -0.0148 60.0 -0.0121 -0.0121 69.0 -0.0098 -0.0098 79.0 -0.0080 -0.0080 90.5 -0.0064 -0.0064 105.5 -0.0050 -0.0050 123.5 -0.0038 -0.0038 143.0 -0.0029 -0.0029 163.5 -0.0022 -0.0022 185.0 -0.0017 -0.0017 208.0 -0.0013 -0.0013 232.5 -0.0010 -0.0010 258.5 -0.0007 -0.0007 286.0 -0.0005 -0.0005 331.0 -0.0003 -0.0003 396.0 -0.0000 -0.0000 468.5 0.0001 0.0001 549.5 0.0002 0.0002 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0002 0.0002 --1.6 -1.4 132 9.0 -0.0970 -0.0970 11.0 -0.0811 -0.0811 13.5 -0.0662 -0.0662 16.5 -0.0534 -0.0534 19.5 -0.0440 -0.0440 22.5 -0.0370 -0.0370 26.0 -0.0307 -0.0307 30.0 -0.0254 -0.0254 34.5 -0.0208 -0.0208 40.0 -0.0168 -0.0168 46.0 -0.0135 -0.0135 52.5 -0.0109 -0.0109 60.0 -0.0087 -0.0087 69.0 -0.0068 -0.0068 79.0 -0.0053 -0.0053 90.5 -0.0040 -0.0040 105.5 -0.0029 -0.0029 123.5 -0.0019 -0.0019 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0004 -0.0004 208.0 -0.0001 -0.0001 232.5 0.0001 0.0001 258.5 0.0003 0.0003 286.0 0.0004 0.0004 331.0 0.0006 0.0006 396.0 0.0007 0.0007 468.5 0.0007 0.0007 549.5 0.0007 0.0007 639.0 0.0007 0.0007 738.0 0.0007 0.0007 847.5 0.0007 0.0007 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1945.0 0.0005 0.0005 2119.0 0.0005 0.0005 2369.0 0.0004 0.0004 2643.5 0.0004 0.0004 2945.0 0.0004 0.0004 3276.5 0.0004 0.0004 --1.4 -1.2 132 9.0 -0.0940 -0.0940 11.0 -0.0749 -0.0749 13.5 -0.0573 -0.0573 16.5 -0.0426 -0.0426 19.5 -0.0323 -0.0323 22.5 -0.0248 -0.0248 26.0 -0.0183 -0.0183 30.0 -0.0129 -0.0129 34.5 -0.0085 -0.0085 40.0 -0.0047 -0.0047 46.0 -0.0019 -0.0019 52.5 0.0002 0.0002 60.0 0.0019 0.0019 69.0 0.0032 0.0032 79.0 0.0042 0.0042 90.5 0.0048 0.0048 105.5 0.0053 0.0053 123.5 0.0056 0.0056 143.0 0.0057 0.0057 163.5 0.0056 0.0056 185.0 0.0055 0.0055 208.0 0.0054 0.0054 232.5 0.0052 0.0052 258.5 0.0051 0.0051 286.0 0.0049 0.0049 331.0 0.0046 0.0046 396.0 0.0042 0.0042 468.5 0.0039 0.0039 549.5 0.0035 0.0035 639.0 0.0032 0.0032 738.0 0.0030 0.0030 847.5 0.0027 0.0027 968.5 0.0025 0.0025 1102.0 0.0023 0.0023 1249.5 0.0021 0.0021 1412.0 0.0019 0.0019 1590.5 0.0018 0.0018 1787.0 0.0016 0.0016 1945.0 0.0015 0.0015 2119.0 0.0014 0.0014 2369.0 0.0013 0.0013 2643.5 0.0012 0.0012 2945.0 0.0011 0.0011 3276.5 0.0010 0.0010 --1.2 -1.0 132 9.0 -0.0930 -0.0930 11.0 -0.0746 -0.0746 13.5 -0.0576 -0.0576 16.5 -0.0433 -0.0433 19.5 -0.0332 -0.0332 22.5 -0.0258 -0.0258 26.0 -0.0195 -0.0195 30.0 -0.0141 -0.0141 34.5 -0.0098 -0.0098 40.0 -0.0061 -0.0061 46.0 -0.0032 -0.0032 52.5 -0.0011 -0.0011 60.0 0.0006 0.0006 69.0 0.0020 0.0020 79.0 0.0030 0.0030 90.5 0.0037 0.0037 105.5 0.0043 0.0043 123.5 0.0046 0.0046 143.0 0.0048 0.0048 163.5 0.0048 0.0048 185.0 0.0048 0.0048 208.0 0.0047 0.0047 232.5 0.0046 0.0046 258.5 0.0045 0.0045 286.0 0.0043 0.0043 331.0 0.0041 0.0041 396.0 0.0038 0.0038 468.5 0.0035 0.0035 549.5 0.0032 0.0032 639.0 0.0029 0.0029 738.0 0.0027 0.0027 847.5 0.0025 0.0025 968.5 0.0023 0.0023 1102.0 0.0021 0.0021 1249.5 0.0019 0.0019 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0010 0.0010 --1.0 -0.8 132 9.0 -0.0853 -0.0853 11.0 -0.0696 -0.0696 13.5 -0.0548 -0.0548 16.5 -0.0424 -0.0424 19.5 -0.0335 -0.0335 22.5 -0.0269 -0.0269 26.0 -0.0213 -0.0213 30.0 -0.0165 -0.0165 34.5 -0.0126 -0.0126 40.0 -0.0092 -0.0092 46.0 -0.0065 -0.0065 52.5 -0.0045 -0.0045 60.0 -0.0028 -0.0028 69.0 -0.0014 -0.0014 79.0 -0.0003 -0.0003 90.5 0.0005 0.0005 105.5 0.0012 0.0012 123.5 0.0017 0.0017 143.0 0.0021 0.0021 163.5 0.0023 0.0023 185.0 0.0024 0.0024 208.0 0.0025 0.0025 232.5 0.0025 0.0025 258.5 0.0025 0.0025 286.0 0.0024 0.0024 331.0 0.0024 0.0024 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0020 0.0020 639.0 0.0018 0.0018 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0014 0.0014 1249.5 0.0013 0.0013 1412.0 0.0012 0.0012 1590.5 0.0011 0.0011 1787.0 0.0010 0.0010 1945.0 0.0009 0.0009 2119.0 0.0009 0.0009 2369.0 0.0008 0.0008 2643.5 0.0008 0.0008 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --0.8 -0.6 132 9.0 -0.0813 -0.0813 11.0 -0.0669 -0.0669 13.5 -0.0532 -0.0532 16.5 -0.0416 -0.0416 19.5 -0.0334 -0.0334 22.5 -0.0273 -0.0273 26.0 -0.0220 -0.0220 30.0 -0.0175 -0.0175 34.5 -0.0138 -0.0138 40.0 -0.0106 -0.0106 46.0 -0.0080 -0.0080 52.5 -0.0060 -0.0060 60.0 -0.0044 -0.0044 69.0 -0.0030 -0.0030 79.0 -0.0019 -0.0019 90.5 -0.0010 -0.0010 105.5 -0.0002 -0.0002 123.5 0.0004 0.0004 143.0 0.0008 0.0008 163.5 0.0011 0.0011 185.0 0.0013 0.0013 208.0 0.0014 0.0014 232.5 0.0015 0.0015 258.5 0.0015 0.0015 286.0 0.0015 0.0015 331.0 0.0015 0.0015 396.0 0.0015 0.0015 468.5 0.0014 0.0014 549.5 0.0014 0.0014 639.0 0.0013 0.0013 738.0 0.0012 0.0012 847.5 0.0011 0.0011 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0009 0.0009 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 --0.6 -0.4 132 9.0 -0.0781 -0.0781 11.0 -0.0640 -0.0640 13.5 -0.0506 -0.0506 16.5 -0.0393 -0.0393 19.5 -0.0313 -0.0313 22.5 -0.0255 -0.0255 26.0 -0.0204 -0.0204 30.0 -0.0161 -0.0161 34.5 -0.0126 -0.0126 40.0 -0.0095 -0.0095 46.0 -0.0071 -0.0071 52.5 -0.0052 -0.0052 60.0 -0.0037 -0.0037 69.0 -0.0023 -0.0023 79.0 -0.0013 -0.0013 90.5 -0.0005 -0.0005 105.5 0.0002 0.0002 123.5 0.0007 0.0007 143.0 0.0011 0.0011 163.5 0.0013 0.0013 185.0 0.0015 0.0015 208.0 0.0016 0.0016 232.5 0.0017 0.0017 258.5 0.0017 0.0017 286.0 0.0017 0.0017 331.0 0.0017 0.0017 396.0 0.0016 0.0016 468.5 0.0015 0.0015 549.5 0.0015 0.0015 639.0 0.0014 0.0014 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 --0.4 -0.2 132 9.0 -0.0799 -0.0799 11.0 -0.0653 -0.0653 13.5 -0.0515 -0.0515 16.5 -0.0399 -0.0399 19.5 -0.0316 -0.0316 22.5 -0.0256 -0.0256 26.0 -0.0204 -0.0204 30.0 -0.0160 -0.0160 34.5 -0.0124 -0.0124 40.0 -0.0092 -0.0092 46.0 -0.0068 -0.0068 52.5 -0.0048 -0.0048 60.0 -0.0033 -0.0033 69.0 -0.0019 -0.0019 79.0 -0.0009 -0.0009 90.5 -0.0001 -0.0001 105.5 0.0006 0.0006 123.5 0.0011 0.0011 143.0 0.0015 0.0015 163.5 0.0017 0.0017 185.0 0.0018 0.0018 208.0 0.0019 0.0019 232.5 0.0019 0.0019 258.5 0.0020 0.0020 286.0 0.0020 0.0020 331.0 0.0019 0.0019 396.0 0.0018 0.0018 468.5 0.0017 0.0017 549.5 0.0016 0.0016 639.0 0.0015 0.0015 738.0 0.0014 0.0014 847.5 0.0013 0.0013 968.5 0.0012 0.0012 1102.0 0.0011 0.0011 1249.5 0.0011 0.0011 1412.0 0.0010 0.0010 1590.5 0.0009 0.0009 1787.0 0.0008 0.0008 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 --0.2 0.0 132 9.0 -0.0755 -0.0755 11.0 -0.0614 -0.0614 13.5 -0.0480 -0.0480 16.5 -0.0369 -0.0369 19.5 -0.0290 -0.0290 22.5 -0.0232 -0.0232 26.0 -0.0183 -0.0183 30.0 -0.0141 -0.0141 34.5 -0.0108 -0.0108 40.0 -0.0078 -0.0078 46.0 -0.0055 -0.0055 52.5 -0.0037 -0.0037 60.0 -0.0023 -0.0023 69.0 -0.0011 -0.0011 79.0 -0.0001 -0.0001 90.5 0.0006 0.0006 105.5 0.0012 0.0012 123.5 0.0016 0.0016 143.0 0.0019 0.0019 163.5 0.0021 0.0021 185.0 0.0022 0.0022 208.0 0.0022 0.0022 232.5 0.0022 0.0022 258.5 0.0022 0.0022 286.0 0.0022 0.0022 331.0 0.0021 0.0021 396.0 0.0020 0.0020 468.5 0.0019 0.0019 549.5 0.0018 0.0018 639.0 0.0016 0.0016 738.0 0.0015 0.0015 847.5 0.0014 0.0014 968.5 0.0013 0.0013 1102.0 0.0012 0.0012 1249.5 0.0011 0.0011 1412.0 0.0010 0.0010 1590.5 0.0010 0.0010 1787.0 0.0009 0.0009 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -0.0 0.2 132 9.0 -0.0755 -0.0755 11.0 -0.0614 -0.0614 13.5 -0.0480 -0.0480 16.5 -0.0369 -0.0369 19.5 -0.0290 -0.0290 22.5 -0.0232 -0.0232 26.0 -0.0183 -0.0183 30.0 -0.0141 -0.0141 34.5 -0.0108 -0.0108 40.0 -0.0078 -0.0078 46.0 -0.0055 -0.0055 52.5 -0.0037 -0.0037 60.0 -0.0023 -0.0023 69.0 -0.0011 -0.0011 79.0 -0.0001 -0.0001 90.5 0.0006 0.0006 105.5 0.0012 0.0012 123.5 0.0016 0.0016 143.0 0.0019 0.0019 163.5 0.0021 0.0021 185.0 0.0022 0.0022 208.0 0.0022 0.0022 232.5 0.0022 0.0022 258.5 0.0022 0.0022 286.0 0.0022 0.0022 331.0 0.0021 0.0021 396.0 0.0020 0.0020 468.5 0.0019 0.0019 549.5 0.0018 0.0018 639.0 0.0016 0.0016 738.0 0.0015 0.0015 847.5 0.0014 0.0014 968.5 0.0013 0.0013 1102.0 0.0012 0.0012 1249.5 0.0011 0.0011 1412.0 0.0010 0.0010 1590.5 0.0010 0.0010 1787.0 0.0009 0.0009 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -0.2 0.4 132 9.0 -0.0799 -0.0799 11.0 -0.0653 -0.0653 13.5 -0.0515 -0.0515 16.5 -0.0399 -0.0399 19.5 -0.0316 -0.0316 22.5 -0.0256 -0.0256 26.0 -0.0204 -0.0204 30.0 -0.0160 -0.0160 34.5 -0.0124 -0.0124 40.0 -0.0092 -0.0092 46.0 -0.0068 -0.0068 52.5 -0.0048 -0.0048 60.0 -0.0033 -0.0033 69.0 -0.0019 -0.0019 79.0 -0.0009 -0.0009 90.5 -0.0001 -0.0001 105.5 0.0006 0.0006 123.5 0.0011 0.0011 143.0 0.0015 0.0015 163.5 0.0017 0.0017 185.0 0.0018 0.0018 208.0 0.0019 0.0019 232.5 0.0019 0.0019 258.5 0.0020 0.0020 286.0 0.0020 0.0020 331.0 0.0019 0.0019 396.0 0.0018 0.0018 468.5 0.0017 0.0017 549.5 0.0016 0.0016 639.0 0.0015 0.0015 738.0 0.0014 0.0014 847.5 0.0013 0.0013 968.5 0.0012 0.0012 1102.0 0.0011 0.0011 1249.5 0.0011 0.0011 1412.0 0.0010 0.0010 1590.5 0.0009 0.0009 1787.0 0.0008 0.0008 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -0.4 0.6 132 9.0 -0.0781 -0.0781 11.0 -0.0640 -0.0640 13.5 -0.0506 -0.0506 16.5 -0.0393 -0.0393 19.5 -0.0313 -0.0313 22.5 -0.0255 -0.0255 26.0 -0.0204 -0.0204 30.0 -0.0161 -0.0161 34.5 -0.0126 -0.0126 40.0 -0.0095 -0.0095 46.0 -0.0071 -0.0071 52.5 -0.0052 -0.0052 60.0 -0.0037 -0.0037 69.0 -0.0023 -0.0023 79.0 -0.0013 -0.0013 90.5 -0.0005 -0.0005 105.5 0.0002 0.0002 123.5 0.0007 0.0007 143.0 0.0011 0.0011 163.5 0.0013 0.0013 185.0 0.0015 0.0015 208.0 0.0016 0.0016 232.5 0.0017 0.0017 258.5 0.0017 0.0017 286.0 0.0017 0.0017 331.0 0.0017 0.0017 396.0 0.0016 0.0016 468.5 0.0015 0.0015 549.5 0.0015 0.0015 639.0 0.0014 0.0014 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 -0.6 0.8 132 9.0 -0.0813 -0.0813 11.0 -0.0669 -0.0669 13.5 -0.0532 -0.0532 16.5 -0.0416 -0.0416 19.5 -0.0334 -0.0334 22.5 -0.0273 -0.0273 26.0 -0.0220 -0.0220 30.0 -0.0175 -0.0175 34.5 -0.0138 -0.0138 40.0 -0.0106 -0.0106 46.0 -0.0080 -0.0080 52.5 -0.0060 -0.0060 60.0 -0.0044 -0.0044 69.0 -0.0030 -0.0030 79.0 -0.0019 -0.0019 90.5 -0.0010 -0.0010 105.5 -0.0002 -0.0002 123.5 0.0004 0.0004 143.0 0.0008 0.0008 163.5 0.0011 0.0011 185.0 0.0013 0.0013 208.0 0.0014 0.0014 232.5 0.0015 0.0015 258.5 0.0015 0.0015 286.0 0.0015 0.0015 331.0 0.0015 0.0015 396.0 0.0015 0.0015 468.5 0.0014 0.0014 549.5 0.0014 0.0014 639.0 0.0013 0.0013 738.0 0.0012 0.0012 847.5 0.0011 0.0011 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0009 0.0009 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 -0.8 1.0 132 9.0 -0.0853 -0.0853 11.0 -0.0696 -0.0696 13.5 -0.0548 -0.0548 16.5 -0.0424 -0.0424 19.5 -0.0335 -0.0335 22.5 -0.0269 -0.0269 26.0 -0.0213 -0.0213 30.0 -0.0165 -0.0165 34.5 -0.0126 -0.0126 40.0 -0.0092 -0.0092 46.0 -0.0065 -0.0065 52.5 -0.0045 -0.0045 60.0 -0.0028 -0.0028 69.0 -0.0014 -0.0014 79.0 -0.0003 -0.0003 90.5 0.0005 0.0005 105.5 0.0012 0.0012 123.5 0.0017 0.0017 143.0 0.0021 0.0021 163.5 0.0023 0.0023 185.0 0.0024 0.0024 208.0 0.0025 0.0025 232.5 0.0025 0.0025 258.5 0.0025 0.0025 286.0 0.0024 0.0024 331.0 0.0024 0.0024 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0020 0.0020 639.0 0.0018 0.0018 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0014 0.0014 1249.5 0.0013 0.0013 1412.0 0.0012 0.0012 1590.5 0.0011 0.0011 1787.0 0.0010 0.0010 1945.0 0.0009 0.0009 2119.0 0.0009 0.0009 2369.0 0.0008 0.0008 2643.5 0.0008 0.0008 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -1.0 1.2 132 9.0 -0.0930 -0.0930 11.0 -0.0746 -0.0746 13.5 -0.0576 -0.0576 16.5 -0.0433 -0.0433 19.5 -0.0332 -0.0332 22.5 -0.0258 -0.0258 26.0 -0.0195 -0.0195 30.0 -0.0141 -0.0141 34.5 -0.0098 -0.0098 40.0 -0.0061 -0.0061 46.0 -0.0032 -0.0032 52.5 -0.0011 -0.0011 60.0 0.0006 0.0006 69.0 0.0020 0.0020 79.0 0.0030 0.0030 90.5 0.0037 0.0037 105.5 0.0043 0.0043 123.5 0.0046 0.0046 143.0 0.0048 0.0048 163.5 0.0048 0.0048 185.0 0.0048 0.0048 208.0 0.0047 0.0047 232.5 0.0046 0.0046 258.5 0.0045 0.0045 286.0 0.0043 0.0043 331.0 0.0041 0.0041 396.0 0.0038 0.0038 468.5 0.0035 0.0035 549.5 0.0032 0.0032 639.0 0.0029 0.0029 738.0 0.0027 0.0027 847.5 0.0025 0.0025 968.5 0.0023 0.0023 1102.0 0.0021 0.0021 1249.5 0.0019 0.0019 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0010 0.0010 -1.2 1.4 132 9.0 -0.0940 -0.0940 11.0 -0.0749 -0.0749 13.5 -0.0573 -0.0573 16.5 -0.0426 -0.0426 19.5 -0.0323 -0.0323 22.5 -0.0248 -0.0248 26.0 -0.0183 -0.0183 30.0 -0.0129 -0.0129 34.5 -0.0085 -0.0085 40.0 -0.0047 -0.0047 46.0 -0.0019 -0.0019 52.5 0.0002 0.0002 60.0 0.0019 0.0019 69.0 0.0032 0.0032 79.0 0.0042 0.0042 90.5 0.0048 0.0048 105.5 0.0053 0.0053 123.5 0.0056 0.0056 143.0 0.0057 0.0057 163.5 0.0056 0.0056 185.0 0.0055 0.0055 208.0 0.0054 0.0054 232.5 0.0052 0.0052 258.5 0.0051 0.0051 286.0 0.0049 0.0049 331.0 0.0046 0.0046 396.0 0.0042 0.0042 468.5 0.0039 0.0039 549.5 0.0035 0.0035 639.0 0.0032 0.0032 738.0 0.0030 0.0030 847.5 0.0027 0.0027 968.5 0.0025 0.0025 1102.0 0.0023 0.0023 1249.5 0.0021 0.0021 1412.0 0.0019 0.0019 1590.5 0.0018 0.0018 1787.0 0.0016 0.0016 1945.0 0.0015 0.0015 2119.0 0.0014 0.0014 2369.0 0.0013 0.0013 2643.5 0.0012 0.0012 2945.0 0.0011 0.0011 3276.5 0.0010 0.0010 -1.4 1.6 132 9.0 -0.0970 -0.0970 11.0 -0.0811 -0.0811 13.5 -0.0662 -0.0662 16.5 -0.0534 -0.0534 19.5 -0.0440 -0.0440 22.5 -0.0370 -0.0370 26.0 -0.0307 -0.0307 30.0 -0.0254 -0.0254 34.5 -0.0208 -0.0208 40.0 -0.0168 -0.0168 46.0 -0.0135 -0.0135 52.5 -0.0109 -0.0109 60.0 -0.0087 -0.0087 69.0 -0.0068 -0.0068 79.0 -0.0053 -0.0053 90.5 -0.0040 -0.0040 105.5 -0.0029 -0.0029 123.5 -0.0019 -0.0019 143.0 -0.0012 -0.0012 163.5 -0.0007 -0.0007 185.0 -0.0004 -0.0004 208.0 -0.0001 -0.0001 232.5 0.0001 0.0001 258.5 0.0003 0.0003 286.0 0.0004 0.0004 331.0 0.0006 0.0006 396.0 0.0007 0.0007 468.5 0.0007 0.0007 549.5 0.0007 0.0007 639.0 0.0007 0.0007 738.0 0.0007 0.0007 847.5 0.0007 0.0007 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1945.0 0.0005 0.0005 2119.0 0.0005 0.0005 2369.0 0.0004 0.0004 2643.5 0.0004 0.0004 2945.0 0.0004 0.0004 3276.5 0.0004 0.0004 -1.6 1.8 132 9.0 -0.1106 -0.1106 11.0 -0.0931 -0.0931 13.5 -0.0767 -0.0767 16.5 -0.0625 -0.0625 19.5 -0.0521 -0.0521 22.5 -0.0443 -0.0443 26.0 -0.0373 -0.0373 30.0 -0.0313 -0.0313 34.5 -0.0262 -0.0262 40.0 -0.0215 -0.0215 46.0 -0.0178 -0.0178 52.5 -0.0148 -0.0148 60.0 -0.0121 -0.0121 69.0 -0.0098 -0.0098 79.0 -0.0080 -0.0080 90.5 -0.0064 -0.0064 105.5 -0.0050 -0.0050 123.5 -0.0038 -0.0038 143.0 -0.0029 -0.0029 163.5 -0.0022 -0.0022 185.0 -0.0017 -0.0017 208.0 -0.0013 -0.0013 232.5 -0.0010 -0.0010 258.5 -0.0007 -0.0007 286.0 -0.0005 -0.0005 331.0 -0.0003 -0.0003 396.0 -0.0000 -0.0000 468.5 0.0001 0.0001 549.5 0.0002 0.0002 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0002 0.0002 -1.8 2.0 132 9.0 -0.1498 -0.1498 11.0 -0.1233 -0.1233 13.5 -0.0990 -0.0990 16.5 -0.0785 -0.0785 19.5 -0.0638 -0.0638 22.5 -0.0529 -0.0529 26.0 -0.0434 -0.0434 30.0 -0.0353 -0.0353 34.5 -0.0285 -0.0285 40.0 -0.0225 -0.0225 46.0 -0.0177 -0.0177 52.5 -0.0140 -0.0140 60.0 -0.0108 -0.0108 69.0 -0.0081 -0.0081 79.0 -0.0059 -0.0059 90.5 -0.0042 -0.0042 105.5 -0.0026 -0.0026 123.5 -0.0014 -0.0014 143.0 -0.0005 -0.0005 163.5 0.0001 0.0001 185.0 0.0006 0.0006 208.0 0.0009 0.0009 232.5 0.0011 0.0011 258.5 0.0013 0.0013 286.0 0.0014 0.0014 331.0 0.0015 0.0015 396.0 0.0016 0.0016 468.5 0.0016 0.0016 549.5 0.0016 0.0016 639.0 0.0015 0.0015 738.0 0.0014 0.0014 847.5 0.0014 0.0014 968.5 0.0013 0.0013 1102.0 0.0012 0.0012 1249.5 0.0011 0.0011 1412.0 0.0011 0.0011 1590.5 0.0010 0.0010 1787.0 0.0009 0.0009 1945.0 0.0009 0.0009 2119.0 0.0008 0.0008 2369.0 0.0008 0.0008 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0006 0.0006 -2.0 2.2 132 9.0 -0.2041 -0.2041 11.0 -0.1649 -0.1649 13.5 -0.1289 -0.1289 16.5 -0.0990 -0.0990 19.5 -0.0781 -0.0781 22.5 -0.0628 -0.0628 26.0 -0.0496 -0.0496 30.0 -0.0386 -0.0386 34.5 -0.0296 -0.0296 40.0 -0.0218 -0.0218 46.0 -0.0159 -0.0159 52.5 -0.0113 -0.0113 60.0 -0.0076 -0.0076 69.0 -0.0045 -0.0045 79.0 -0.0021 -0.0021 90.5 -0.0002 -0.0002 105.5 0.0014 0.0014 123.5 0.0025 0.0025 143.0 0.0033 0.0033 163.5 0.0038 0.0038 185.0 0.0041 0.0041 208.0 0.0043 0.0043 232.5 0.0044 0.0044 258.5 0.0044 0.0044 286.0 0.0044 0.0044 331.0 0.0043 0.0043 396.0 0.0040 0.0040 468.5 0.0038 0.0038 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0031 0.0031 847.5 0.0029 0.0029 968.5 0.0027 0.0027 1102.0 0.0025 0.0025 1249.5 0.0023 0.0023 1412.0 0.0021 0.0021 1590.5 0.0020 0.0020 1787.0 0.0018 0.0018 1945.0 0.0017 0.0017 2119.0 0.0016 0.0016 2369.0 0.0015 0.0015 2643.5 0.0014 0.0014 2945.0 0.0013 0.0013 3276.5 0.0012 0.0012 -2.2 2.4 132 9.0 -0.2125 -0.2125 11.0 -0.1721 -0.1721 13.5 -0.1340 -0.1340 16.5 -0.1022 -0.1022 19.5 -0.0798 -0.0798 22.5 -0.0636 -0.0636 26.0 -0.0497 -0.0497 30.0 -0.0382 -0.0382 34.5 -0.0289 -0.0289 40.0 -0.0209 -0.0209 46.0 -0.0148 -0.0148 52.5 -0.0102 -0.0102 60.0 -0.0064 -0.0064 69.0 -0.0032 -0.0032 79.0 -0.0008 -0.0008 90.5 0.0011 0.0011 105.5 0.0027 0.0027 123.5 0.0038 0.0038 143.0 0.0046 0.0046 163.5 0.0050 0.0050 185.0 0.0053 0.0053 208.0 0.0054 0.0054 232.5 0.0054 0.0054 258.5 0.0054 0.0054 286.0 0.0053 0.0053 331.0 0.0051 0.0051 396.0 0.0048 0.0048 468.5 0.0045 0.0045 549.5 0.0042 0.0042 639.0 0.0039 0.0039 738.0 0.0036 0.0036 847.5 0.0034 0.0034 968.5 0.0031 0.0031 1102.0 0.0029 0.0029 1249.5 0.0027 0.0027 1412.0 0.0025 0.0025 1590.5 0.0023 0.0023 1787.0 0.0021 0.0021 1945.0 0.0020 0.0020 2119.0 0.0019 0.0019 2369.0 0.0017 0.0017 2643.5 0.0016 0.0016 2945.0 0.0015 0.0015 3276.5 0.0014 0.0014 -2.4 2.6 132 9.0 -0.1491 -0.1491 11.0 -0.1230 -0.1230 13.5 -0.0966 -0.0966 16.5 -0.0734 -0.0734 19.5 -0.0568 -0.0568 22.5 -0.0446 -0.0446 26.0 -0.0341 -0.0341 30.0 -0.0253 -0.0253 34.5 -0.0182 -0.0182 40.0 -0.0120 -0.0120 46.0 -0.0073 -0.0073 52.5 -0.0037 -0.0037 60.0 -0.0007 -0.0007 69.0 0.0017 0.0017 79.0 0.0035 0.0035 90.5 0.0049 0.0049 105.5 0.0060 0.0060 123.5 0.0067 0.0067 143.0 0.0071 0.0071 163.5 0.0072 0.0072 185.0 0.0072 0.0072 208.0 0.0071 0.0071 232.5 0.0070 0.0070 258.5 0.0068 0.0068 286.0 0.0066 0.0066 331.0 0.0062 0.0062 396.0 0.0057 0.0057 468.5 0.0053 0.0053 549.5 0.0049 0.0049 639.0 0.0045 0.0045 738.0 0.0041 0.0041 847.5 0.0038 0.0038 968.5 0.0035 0.0035 1102.0 0.0032 0.0032 1249.5 0.0030 0.0030 1412.0 0.0027 0.0027 1590.5 0.0025 0.0025 1787.0 0.0023 0.0023 1945.0 0.0022 0.0022 2119.0 0.0021 0.0021 2369.0 0.0019 0.0019 2643.5 0.0018 0.0018 2945.0 0.0016 0.0016 3276.5 0.0015 0.0015 -2.6 2.8 132 9.0 -0.0111 -0.0111 11.0 -0.0075 -0.0075 13.5 -0.0039 -0.0039 16.5 -0.0007 -0.0007 19.5 0.0016 0.0016 22.5 0.0032 0.0032 26.0 0.0045 0.0045 30.0 0.0055 0.0055 34.5 0.0062 0.0062 40.0 0.0068 0.0068 46.0 0.0071 0.0071 52.5 0.0072 0.0072 60.0 0.0072 0.0072 69.0 0.0072 0.0072 79.0 0.0070 0.0070 90.5 0.0068 0.0068 105.5 0.0064 0.0064 123.5 0.0061 0.0061 143.0 0.0057 0.0057 163.5 0.0053 0.0053 185.0 0.0050 0.0050 208.0 0.0047 0.0047 232.5 0.0044 0.0044 258.5 0.0041 0.0041 286.0 0.0039 0.0039 331.0 0.0035 0.0035 396.0 0.0031 0.0031 468.5 0.0028 0.0028 549.5 0.0025 0.0025 639.0 0.0023 0.0023 738.0 0.0020 0.0020 847.5 0.0018 0.0018 968.5 0.0017 0.0017 1102.0 0.0015 0.0015 1249.5 0.0014 0.0014 1412.0 0.0013 0.0013 1590.5 0.0012 0.0012 1787.0 0.0011 0.0011 1945.0 0.0010 0.0010 2119.0 0.0009 0.0009 2369.0 0.0009 0.0009 2643.5 0.0008 0.0008 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -2.8 3.0 132 9.0 -0.0268 -0.0268 11.0 -0.0232 -0.0232 13.5 -0.0193 -0.0193 16.5 -0.0157 -0.0157 19.5 -0.0128 -0.0128 22.5 -0.0106 -0.0106 26.0 -0.0086 -0.0086 30.0 -0.0069 -0.0069 34.5 -0.0054 -0.0054 40.0 -0.0041 -0.0041 46.0 -0.0030 -0.0030 52.5 -0.0022 -0.0022 60.0 -0.0014 -0.0014 69.0 -0.0008 -0.0008 79.0 -0.0003 -0.0003 90.5 0.0001 0.0001 105.5 0.0004 0.0004 123.5 0.0007 0.0007 143.0 0.0008 0.0008 163.5 0.0009 0.0009 185.0 0.0010 0.0010 208.0 0.0010 0.0010 232.5 0.0010 0.0010 258.5 0.0010 0.0010 286.0 0.0010 0.0010 331.0 0.0010 0.0010 396.0 0.0009 0.0009 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1945.0 0.0004 0.0004 2119.0 0.0004 0.0004 2369.0 0.0004 0.0004 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 -3.0 3.5 132 9.0 -0.0298 -0.0298 11.0 -0.0208 -0.0208 13.5 -0.0115 -0.0115 16.5 -0.0031 -0.0031 19.5 0.0029 0.0029 22.5 0.0072 0.0072 26.0 0.0109 0.0109 30.0 0.0138 0.0138 34.5 0.0159 0.0159 40.0 0.0175 0.0175 46.0 0.0185 0.0185 52.5 0.0189 0.0189 60.0 0.0190 0.0190 69.0 0.0188 0.0188 79.0 0.0184 0.0184 90.5 0.0177 0.0177 105.5 0.0168 0.0168 123.5 0.0158 0.0158 143.0 0.0148 0.0148 163.5 0.0138 0.0138 185.0 0.0129 0.0129 208.0 0.0121 0.0121 232.5 0.0113 0.0113 258.5 0.0107 0.0107 286.0 0.0101 0.0101 331.0 0.0092 0.0092 396.0 0.0082 0.0082 468.5 0.0074 0.0074 549.5 0.0066 0.0066 639.0 0.0060 0.0060 738.0 0.0054 0.0054 847.5 0.0049 0.0049 968.5 0.0044 0.0044 1102.0 0.0040 0.0040 1249.5 0.0037 0.0037 1412.0 0.0034 0.0034 1590.5 0.0031 0.0031 1787.0 0.0028 0.0028 1945.0 0.0026 0.0026 2119.0 0.0025 0.0025 2369.0 0.0023 0.0023 2643.5 0.0021 0.0021 2945.0 0.0019 0.0019 3276.5 0.0017 0.0017 -3.5 4.0 132 9.0 -0.0415 -0.0415 11.0 -0.0342 -0.0342 13.5 -0.0266 -0.0266 16.5 -0.0196 -0.0196 19.5 -0.0144 -0.0144 22.5 -0.0105 -0.0105 26.0 -0.0071 -0.0071 30.0 -0.0043 -0.0043 34.5 -0.0020 -0.0020 40.0 -0.0000 -0.0000 46.0 0.0014 0.0014 52.5 0.0025 0.0025 60.0 0.0033 0.0033 69.0 0.0039 0.0039 79.0 0.0043 0.0043 90.5 0.0045 0.0045 105.5 0.0047 0.0047 123.5 0.0047 0.0047 143.0 0.0046 0.0046 163.5 0.0045 0.0045 185.0 0.0043 0.0043 208.0 0.0042 0.0042 232.5 0.0040 0.0040 258.5 0.0038 0.0038 286.0 0.0037 0.0037 331.0 0.0034 0.0034 396.0 0.0031 0.0031 468.5 0.0028 0.0028 549.5 0.0026 0.0026 639.0 0.0024 0.0024 738.0 0.0022 0.0022 847.5 0.0020 0.0020 968.5 0.0018 0.0018 1102.0 0.0017 0.0017 1249.5 0.0015 0.0015 1412.0 0.0014 0.0014 1590.5 0.0013 0.0013 1787.0 0.0012 0.0012 1945.0 0.0011 0.0011 2119.0 0.0010 0.0010 2369.0 0.0010 0.0010 2643.5 0.0009 0.0009 2945.0 0.0008 0.0008 3276.5 0.0008 0.0008 -4.0 4.4 132 9.0 -0.0605 -0.0605 11.0 -0.0512 -0.0512 13.5 -0.0416 -0.0416 16.5 -0.0329 -0.0329 19.5 -0.0264 -0.0264 22.5 -0.0216 -0.0216 26.0 -0.0173 -0.0173 30.0 -0.0137 -0.0137 34.5 -0.0107 -0.0107 40.0 -0.0080 -0.0080 46.0 -0.0059 -0.0059 52.5 -0.0043 -0.0043 60.0 -0.0029 -0.0029 69.0 -0.0017 -0.0017 79.0 -0.0008 -0.0008 90.5 -0.0001 -0.0001 105.5 0.0006 0.0006 123.5 0.0010 0.0010 143.0 0.0013 0.0013 163.5 0.0015 0.0015 185.0 0.0016 0.0016 208.0 0.0017 0.0017 232.5 0.0018 0.0018 258.5 0.0018 0.0018 286.0 0.0018 0.0018 331.0 0.0017 0.0017 396.0 0.0017 0.0017 468.5 0.0016 0.0016 549.5 0.0015 0.0015 639.0 0.0014 0.0014 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 -4.4 5.0 132 9.0 -0.0085 -0.0085 11.0 -0.0030 -0.0030 13.5 0.0021 0.0021 16.5 0.0062 0.0062 19.5 0.0087 0.0087 22.5 0.0104 0.0104 26.0 0.0115 0.0115 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0128 0.0128 46.0 0.0127 0.0127 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0098 0.0098 123.5 0.0091 0.0091 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0073 0.0073 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0056 0.0056 331.0 0.0051 0.0051 396.0 0.0045 0.0045 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0026 0.0026 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 -5.0 5.4 132 9.0 -0.0085 -0.0085 11.0 -0.0030 -0.0030 13.5 0.0021 0.0021 16.5 0.0062 0.0062 19.5 0.0087 0.0087 22.5 0.0104 0.0104 26.0 0.0115 0.0115 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0128 0.0128 46.0 0.0127 0.0127 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0098 0.0098 123.5 0.0091 0.0091 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0073 0.0073 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0056 0.0056 331.0 0.0051 0.0051 396.0 0.0045 0.0045 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0026 0.0026 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 -[PileUpBias] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --5.0 -4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.4 -4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --4.0 -3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.5 -3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --3.0 -2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.8 -2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.6 -2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.4 -2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.2 -2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --2.0 -1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.8 -1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.6 -1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.4 -1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.2 -1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --1.0 -0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.8 -0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.6 -0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.4 -0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 --0.2 0.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.0 0.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.2 0.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.4 0.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.6 0.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -0.8 1.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.0 1.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.2 1.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.4 1.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.6 1.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -1.8 2.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.0 2.2 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.2 2.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.4 2.6 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.6 2.8 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -2.8 3.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.0 3.5 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -3.5 4.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.0 4.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -4.4 5.0 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -5.0 5.4 132 9.0 0.0000 0.0000 11.0 0.0000 0.0000 13.5 0.0000 0.0000 16.5 0.0000 0.0000 19.5 0.0000 0.0000 22.5 0.0000 0.0000 26.0 0.0000 0.0000 30.0 0.0000 0.0000 34.5 0.0000 0.0000 40.0 0.0000 0.0000 46.0 0.0000 0.0000 52.5 0.0000 0.0000 60.0 0.0000 0.0000 69.0 0.0000 0.0000 79.0 0.0000 0.0000 90.5 0.0000 0.0000 105.5 0.0000 0.0000 123.5 0.0000 0.0000 143.0 0.0000 0.0000 163.5 0.0000 0.0000 185.0 0.0000 0.0000 208.0 0.0000 0.0000 232.5 0.0000 0.0000 258.5 0.0000 0.0000 286.0 0.0000 0.0000 331.0 0.0000 0.0000 396.0 0.0000 0.0000 468.5 0.0000 0.0000 549.5 0.0000 0.0000 639.0 0.0000 0.0000 738.0 0.0000 0.0000 847.5 0.0000 0.0000 968.5 0.0000 0.0000 1102.0 0.0000 0.0000 1249.5 0.0000 0.0000 1412.0 0.0000 0.0000 1590.5 0.0000 0.0000 1787.0 0.0000 0.0000 1945.0 0.0000 0.0000 2119.0 0.0000 0.0000 2369.0 0.0000 0.0000 2643.5 0.0000 0.0000 2945.0 0.0000 0.0000 3276.5 0.0000 0.0000 -[SubTotalPileUp] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0116 0.0116 11.0 0.0074 0.0074 13.5 0.0062 0.0062 16.5 0.0079 0.0079 19.5 0.0097 0.0097 22.5 0.0110 0.0110 26.0 0.0120 0.0120 30.0 0.0126 0.0126 34.5 0.0130 0.0130 40.0 0.0131 0.0131 46.0 0.0129 0.0129 52.5 0.0126 0.0126 60.0 0.0122 0.0122 69.0 0.0117 0.0117 79.0 0.0112 0.0112 90.5 0.0106 0.0106 105.5 0.0099 0.0099 123.5 0.0092 0.0092 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0074 0.0074 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0057 0.0057 331.0 0.0051 0.0051 396.0 0.0046 0.0046 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0027 0.0027 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 --5.0 -4.4 132 9.0 0.0087 0.0087 11.0 0.0034 0.0034 13.5 0.0026 0.0026 16.5 0.0063 0.0063 19.5 0.0088 0.0088 22.5 0.0104 0.0104 26.0 0.0116 0.0116 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0129 0.0129 46.0 0.0128 0.0128 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0098 0.0098 123.5 0.0091 0.0091 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0073 0.0073 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0056 0.0056 331.0 0.0051 0.0051 396.0 0.0045 0.0045 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0026 0.0026 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 --4.4 -4.0 132 9.0 0.0612 0.0612 11.0 0.0518 0.0518 13.5 0.0421 0.0421 16.5 0.0333 0.0333 19.5 0.0268 0.0268 22.5 0.0219 0.0219 26.0 0.0176 0.0176 30.0 0.0140 0.0140 34.5 0.0110 0.0110 40.0 0.0083 0.0083 46.0 0.0062 0.0062 52.5 0.0046 0.0046 60.0 0.0032 0.0032 69.0 0.0021 0.0021 79.0 0.0014 0.0014 90.5 0.0010 0.0010 105.5 0.0010 0.0010 123.5 0.0013 0.0013 143.0 0.0015 0.0015 163.5 0.0016 0.0016 185.0 0.0017 0.0017 208.0 0.0018 0.0018 232.5 0.0018 0.0018 258.5 0.0018 0.0018 286.0 0.0018 0.0018 331.0 0.0018 0.0018 396.0 0.0017 0.0017 468.5 0.0016 0.0016 549.5 0.0015 0.0015 639.0 0.0014 0.0014 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 --4.0 -3.5 132 9.0 0.0538 0.0538 11.0 0.0445 0.0445 13.5 0.0352 0.0352 16.5 0.0271 0.0271 19.5 0.0213 0.0213 22.5 0.0171 0.0171 26.0 0.0136 0.0136 30.0 0.0108 0.0108 34.5 0.0088 0.0088 40.0 0.0074 0.0074 46.0 0.0066 0.0066 52.5 0.0061 0.0061 60.0 0.0059 0.0059 69.0 0.0058 0.0058 79.0 0.0057 0.0057 90.5 0.0056 0.0056 105.5 0.0055 0.0055 123.5 0.0053 0.0053 143.0 0.0051 0.0051 163.5 0.0049 0.0049 185.0 0.0046 0.0046 208.0 0.0044 0.0044 232.5 0.0042 0.0042 258.5 0.0040 0.0040 286.0 0.0038 0.0038 331.0 0.0036 0.0036 396.0 0.0032 0.0032 468.5 0.0029 0.0029 549.5 0.0027 0.0027 639.0 0.0024 0.0024 738.0 0.0022 0.0022 847.5 0.0020 0.0020 968.5 0.0018 0.0018 1102.0 0.0017 0.0017 1249.5 0.0016 0.0016 1412.0 0.0014 0.0014 1590.5 0.0013 0.0013 1787.0 0.0012 0.0012 1945.0 0.0011 0.0011 2119.0 0.0011 0.0011 2369.0 0.0010 0.0010 2643.5 0.0009 0.0009 2945.0 0.0008 0.0008 3276.5 0.0008 0.0008 --3.5 -3.0 132 9.0 0.0539 0.0539 11.0 0.0428 0.0428 13.5 0.0327 0.0327 16.5 0.0252 0.0252 19.5 0.0213 0.0213 22.5 0.0197 0.0197 26.0 0.0192 0.0192 30.0 0.0195 0.0195 34.5 0.0199 0.0199 40.0 0.0203 0.0203 46.0 0.0205 0.0205 52.5 0.0205 0.0205 60.0 0.0203 0.0203 69.0 0.0198 0.0198 79.0 0.0191 0.0191 90.5 0.0183 0.0183 105.5 0.0173 0.0173 123.5 0.0162 0.0162 143.0 0.0151 0.0151 163.5 0.0140 0.0140 185.0 0.0131 0.0131 208.0 0.0123 0.0123 232.5 0.0115 0.0115 258.5 0.0108 0.0108 286.0 0.0102 0.0102 331.0 0.0093 0.0093 396.0 0.0083 0.0083 468.5 0.0074 0.0074 549.5 0.0067 0.0067 639.0 0.0060 0.0060 738.0 0.0054 0.0054 847.5 0.0049 0.0049 968.5 0.0045 0.0045 1102.0 0.0041 0.0041 1249.5 0.0037 0.0037 1412.0 0.0034 0.0034 1590.5 0.0031 0.0031 1787.0 0.0028 0.0028 1945.0 0.0026 0.0026 2119.0 0.0025 0.0025 2369.0 0.0023 0.0023 2643.5 0.0021 0.0021 2945.0 0.0019 0.0019 3276.5 0.0018 0.0018 --3.0 -2.8 132 9.0 0.0278 0.0278 11.0 0.0239 0.0239 13.5 0.0199 0.0199 16.5 0.0162 0.0162 19.5 0.0133 0.0133 22.5 0.0110 0.0110 26.0 0.0090 0.0090 30.0 0.0072 0.0072 34.5 0.0057 0.0057 40.0 0.0044 0.0044 46.0 0.0033 0.0033 52.5 0.0025 0.0025 60.0 0.0018 0.0018 69.0 0.0012 0.0012 79.0 0.0009 0.0009 90.5 0.0007 0.0007 105.5 0.0007 0.0007 123.5 0.0008 0.0008 143.0 0.0009 0.0009 163.5 0.0010 0.0010 185.0 0.0010 0.0010 208.0 0.0011 0.0011 232.5 0.0011 0.0011 258.5 0.0011 0.0011 286.0 0.0010 0.0010 331.0 0.0010 0.0010 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1945.0 0.0004 0.0004 2119.0 0.0004 0.0004 2369.0 0.0004 0.0004 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 --2.8 -2.6 132 9.0 0.0326 0.0326 11.0 0.0264 0.0264 13.5 0.0208 0.0208 16.5 0.0166 0.0166 19.5 0.0139 0.0139 22.5 0.0123 0.0123 26.0 0.0112 0.0112 30.0 0.0104 0.0104 34.5 0.0099 0.0099 40.0 0.0095 0.0095 46.0 0.0091 0.0091 52.5 0.0088 0.0088 60.0 0.0085 0.0085 69.0 0.0081 0.0081 79.0 0.0078 0.0078 90.5 0.0074 0.0074 105.5 0.0069 0.0069 123.5 0.0064 0.0064 143.0 0.0060 0.0060 163.5 0.0056 0.0056 185.0 0.0052 0.0052 208.0 0.0049 0.0049 232.5 0.0045 0.0045 258.5 0.0042 0.0042 286.0 0.0040 0.0040 331.0 0.0036 0.0036 396.0 0.0032 0.0032 468.5 0.0029 0.0029 549.5 0.0026 0.0026 639.0 0.0023 0.0023 738.0 0.0021 0.0021 847.5 0.0019 0.0019 968.5 0.0017 0.0017 1102.0 0.0015 0.0015 1249.5 0.0014 0.0014 1412.0 0.0013 0.0013 1590.5 0.0012 0.0012 1787.0 0.0011 0.0011 1945.0 0.0010 0.0010 2119.0 0.0009 0.0009 2369.0 0.0009 0.0009 2643.5 0.0008 0.0008 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --2.6 -2.4 132 9.0 0.1559 0.1559 11.0 0.1290 0.1290 13.5 0.1019 0.1019 16.5 0.0782 0.0782 19.5 0.0614 0.0614 22.5 0.0491 0.0491 26.0 0.0386 0.0386 30.0 0.0300 0.0300 34.5 0.0231 0.0231 40.0 0.0174 0.0174 46.0 0.0133 0.0133 52.5 0.0106 0.0106 60.0 0.0089 0.0089 69.0 0.0081 0.0081 79.0 0.0079 0.0079 90.5 0.0080 0.0080 105.5 0.0081 0.0081 123.5 0.0082 0.0082 143.0 0.0082 0.0082 163.5 0.0082 0.0082 185.0 0.0080 0.0080 208.0 0.0078 0.0078 232.5 0.0075 0.0075 258.5 0.0072 0.0072 286.0 0.0070 0.0070 331.0 0.0065 0.0065 396.0 0.0060 0.0060 468.5 0.0055 0.0055 549.5 0.0050 0.0050 639.0 0.0046 0.0046 738.0 0.0042 0.0042 847.5 0.0039 0.0039 968.5 0.0036 0.0036 1102.0 0.0033 0.0033 1249.5 0.0030 0.0030 1412.0 0.0028 0.0028 1590.5 0.0026 0.0026 1787.0 0.0024 0.0024 1945.0 0.0022 0.0022 2119.0 0.0021 0.0021 2369.0 0.0019 0.0019 2643.5 0.0018 0.0018 2945.0 0.0016 0.0016 3276.5 0.0015 0.0015 --2.4 -2.2 132 9.0 0.2135 0.2135 11.0 0.1732 0.1732 13.5 0.1350 0.1350 16.5 0.1031 0.1031 19.5 0.0808 0.0808 22.5 0.0646 0.0646 26.0 0.0507 0.0507 30.0 0.0392 0.0392 34.5 0.0300 0.0300 40.0 0.0221 0.0221 46.0 0.0162 0.0162 52.5 0.0118 0.0118 60.0 0.0083 0.0083 69.0 0.0057 0.0057 79.0 0.0043 0.0043 90.5 0.0040 0.0040 105.5 0.0043 0.0043 123.5 0.0048 0.0048 143.0 0.0053 0.0053 163.5 0.0055 0.0055 185.0 0.0057 0.0057 208.0 0.0057 0.0057 232.5 0.0057 0.0057 258.5 0.0056 0.0056 286.0 0.0055 0.0055 331.0 0.0053 0.0053 396.0 0.0050 0.0050 468.5 0.0046 0.0046 549.5 0.0043 0.0043 639.0 0.0040 0.0040 738.0 0.0037 0.0037 847.5 0.0034 0.0034 968.5 0.0032 0.0032 1102.0 0.0029 0.0029 1249.5 0.0027 0.0027 1412.0 0.0025 0.0025 1590.5 0.0023 0.0023 1787.0 0.0021 0.0021 1945.0 0.0020 0.0020 2119.0 0.0019 0.0019 2369.0 0.0018 0.0018 2643.5 0.0016 0.0016 2945.0 0.0015 0.0015 3276.5 0.0014 0.0014 --2.2 -2.0 132 9.0 0.2044 0.2044 11.0 0.1652 0.1652 13.5 0.1291 0.1291 16.5 0.0993 0.0993 19.5 0.0783 0.0783 22.5 0.0630 0.0630 26.0 0.0498 0.0498 30.0 0.0388 0.0388 34.5 0.0299 0.0299 40.0 0.0221 0.0221 46.0 0.0162 0.0162 52.5 0.0117 0.0117 60.0 0.0080 0.0080 69.0 0.0051 0.0051 79.0 0.0030 0.0030 90.5 0.0019 0.0019 105.5 0.0022 0.0022 123.5 0.0030 0.0030 143.0 0.0036 0.0036 163.5 0.0040 0.0040 185.0 0.0043 0.0043 208.0 0.0044 0.0044 232.5 0.0045 0.0045 258.5 0.0045 0.0045 286.0 0.0044 0.0044 331.0 0.0043 0.0043 396.0 0.0041 0.0041 468.5 0.0038 0.0038 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0031 0.0031 847.5 0.0029 0.0029 968.5 0.0027 0.0027 1102.0 0.0025 0.0025 1249.5 0.0023 0.0023 1412.0 0.0021 0.0021 1590.5 0.0020 0.0020 1787.0 0.0018 0.0018 1945.0 0.0017 0.0017 2119.0 0.0016 0.0016 2369.0 0.0015 0.0015 2643.5 0.0014 0.0014 2945.0 0.0013 0.0013 3276.5 0.0012 0.0012 --2.0 -1.8 132 9.0 0.1498 0.1498 11.0 0.1233 0.1233 13.5 0.0990 0.0990 16.5 0.0785 0.0785 19.5 0.0638 0.0638 22.5 0.0529 0.0529 26.0 0.0434 0.0434 30.0 0.0353 0.0353 34.5 0.0285 0.0285 40.0 0.0225 0.0225 46.0 0.0177 0.0177 52.5 0.0140 0.0140 60.0 0.0108 0.0108 69.0 0.0081 0.0081 79.0 0.0059 0.0059 90.5 0.0042 0.0042 105.5 0.0026 0.0026 123.5 0.0014 0.0014 143.0 0.0005 0.0005 163.5 0.0001 0.0001 185.0 0.0006 0.0006 208.0 0.0009 0.0009 232.5 0.0011 0.0011 258.5 0.0013 0.0013 286.0 0.0014 0.0014 331.0 0.0015 0.0015 396.0 0.0016 0.0016 468.5 0.0016 0.0016 549.5 0.0016 0.0016 639.0 0.0015 0.0015 738.0 0.0014 0.0014 847.5 0.0014 0.0014 968.5 0.0013 0.0013 1102.0 0.0012 0.0012 1249.5 0.0011 0.0011 1412.0 0.0011 0.0011 1590.5 0.0010 0.0010 1787.0 0.0009 0.0009 1945.0 0.0009 0.0009 2119.0 0.0008 0.0008 2369.0 0.0008 0.0008 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0006 0.0006 --1.8 -1.6 132 9.0 0.1106 0.1106 11.0 0.0931 0.0931 13.5 0.0767 0.0767 16.5 0.0625 0.0625 19.5 0.0522 0.0522 22.5 0.0443 0.0443 26.0 0.0374 0.0374 30.0 0.0313 0.0313 34.5 0.0262 0.0262 40.0 0.0215 0.0215 46.0 0.0178 0.0178 52.5 0.0148 0.0148 60.0 0.0122 0.0122 69.0 0.0099 0.0099 79.0 0.0080 0.0080 90.5 0.0064 0.0064 105.5 0.0050 0.0050 123.5 0.0038 0.0038 143.0 0.0029 0.0029 163.5 0.0022 0.0022 185.0 0.0017 0.0017 208.0 0.0013 0.0013 232.5 0.0010 0.0010 258.5 0.0007 0.0007 286.0 0.0005 0.0005 331.0 0.0003 0.0003 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0002 0.0002 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0002 0.0002 --1.6 -1.4 132 9.0 0.0971 0.0971 11.0 0.0812 0.0812 13.5 0.0662 0.0662 16.5 0.0534 0.0534 19.5 0.0441 0.0441 22.5 0.0370 0.0370 26.0 0.0308 0.0308 30.0 0.0254 0.0254 34.5 0.0209 0.0209 40.0 0.0168 0.0168 46.0 0.0135 0.0135 52.5 0.0110 0.0110 60.0 0.0087 0.0087 69.0 0.0068 0.0068 79.0 0.0053 0.0053 90.5 0.0040 0.0040 105.5 0.0029 0.0029 123.5 0.0020 0.0020 143.0 0.0013 0.0013 163.5 0.0008 0.0008 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0002 0.0002 258.5 0.0003 0.0003 286.0 0.0004 0.0004 331.0 0.0006 0.0006 396.0 0.0007 0.0007 468.5 0.0007 0.0007 549.5 0.0007 0.0007 639.0 0.0007 0.0007 738.0 0.0007 0.0007 847.5 0.0007 0.0007 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1945.0 0.0005 0.0005 2119.0 0.0005 0.0005 2369.0 0.0004 0.0004 2643.5 0.0004 0.0004 2945.0 0.0004 0.0004 3276.5 0.0004 0.0004 --1.4 -1.2 132 9.0 0.0941 0.0941 11.0 0.0749 0.0749 13.5 0.0574 0.0574 16.5 0.0427 0.0427 19.5 0.0324 0.0324 22.5 0.0248 0.0248 26.0 0.0183 0.0183 30.0 0.0129 0.0129 34.5 0.0086 0.0086 40.0 0.0048 0.0048 46.0 0.0021 0.0021 52.5 0.0009 0.0009 60.0 0.0020 0.0020 69.0 0.0033 0.0033 79.0 0.0042 0.0042 90.5 0.0049 0.0049 105.5 0.0053 0.0053 123.5 0.0056 0.0056 143.0 0.0057 0.0057 163.5 0.0057 0.0057 185.0 0.0056 0.0056 208.0 0.0054 0.0054 232.5 0.0052 0.0052 258.5 0.0051 0.0051 286.0 0.0049 0.0049 331.0 0.0046 0.0046 396.0 0.0042 0.0042 468.5 0.0039 0.0039 549.5 0.0035 0.0035 639.0 0.0032 0.0032 738.0 0.0030 0.0030 847.5 0.0027 0.0027 968.5 0.0025 0.0025 1102.0 0.0023 0.0023 1249.5 0.0021 0.0021 1412.0 0.0019 0.0019 1590.5 0.0018 0.0018 1787.0 0.0016 0.0016 1945.0 0.0015 0.0015 2119.0 0.0014 0.0014 2369.0 0.0013 0.0013 2643.5 0.0012 0.0012 2945.0 0.0011 0.0011 3276.5 0.0010 0.0010 --1.2 -1.0 132 9.0 0.0931 0.0931 11.0 0.0746 0.0746 13.5 0.0576 0.0576 16.5 0.0434 0.0434 19.5 0.0333 0.0333 22.5 0.0259 0.0259 26.0 0.0195 0.0195 30.0 0.0142 0.0142 34.5 0.0099 0.0099 40.0 0.0061 0.0061 46.0 0.0033 0.0033 52.5 0.0013 0.0013 60.0 0.0009 0.0009 69.0 0.0021 0.0021 79.0 0.0030 0.0030 90.5 0.0038 0.0038 105.5 0.0043 0.0043 123.5 0.0046 0.0046 143.0 0.0048 0.0048 163.5 0.0048 0.0048 185.0 0.0048 0.0048 208.0 0.0047 0.0047 232.5 0.0046 0.0046 258.5 0.0045 0.0045 286.0 0.0043 0.0043 331.0 0.0041 0.0041 396.0 0.0038 0.0038 468.5 0.0035 0.0035 549.5 0.0032 0.0032 639.0 0.0029 0.0029 738.0 0.0027 0.0027 847.5 0.0025 0.0025 968.5 0.0023 0.0023 1102.0 0.0021 0.0021 1249.5 0.0019 0.0019 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0010 0.0010 --1.0 -0.8 132 9.0 0.0853 0.0853 11.0 0.0696 0.0696 13.5 0.0548 0.0548 16.5 0.0424 0.0424 19.5 0.0335 0.0335 22.5 0.0270 0.0270 26.0 0.0213 0.0213 30.0 0.0165 0.0165 34.5 0.0126 0.0126 40.0 0.0092 0.0092 46.0 0.0065 0.0065 52.5 0.0045 0.0045 60.0 0.0028 0.0028 69.0 0.0015 0.0015 79.0 0.0005 0.0005 90.5 0.0006 0.0006 105.5 0.0013 0.0013 123.5 0.0018 0.0018 143.0 0.0021 0.0021 163.5 0.0023 0.0023 185.0 0.0024 0.0024 208.0 0.0025 0.0025 232.5 0.0025 0.0025 258.5 0.0025 0.0025 286.0 0.0024 0.0024 331.0 0.0024 0.0024 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0020 0.0020 639.0 0.0018 0.0018 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0014 0.0014 1249.5 0.0013 0.0013 1412.0 0.0012 0.0012 1590.5 0.0011 0.0011 1787.0 0.0010 0.0010 1945.0 0.0009 0.0009 2119.0 0.0009 0.0009 2369.0 0.0008 0.0008 2643.5 0.0008 0.0008 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 --0.8 -0.6 132 9.0 0.0813 0.0813 11.0 0.0669 0.0669 13.5 0.0532 0.0532 16.5 0.0416 0.0416 19.5 0.0334 0.0334 22.5 0.0273 0.0273 26.0 0.0220 0.0220 30.0 0.0175 0.0175 34.5 0.0138 0.0138 40.0 0.0106 0.0106 46.0 0.0080 0.0080 52.5 0.0061 0.0061 60.0 0.0044 0.0044 69.0 0.0030 0.0030 79.0 0.0019 0.0019 90.5 0.0010 0.0010 105.5 0.0003 0.0003 123.5 0.0005 0.0005 143.0 0.0008 0.0008 163.5 0.0011 0.0011 185.0 0.0013 0.0013 208.0 0.0014 0.0014 232.5 0.0015 0.0015 258.5 0.0015 0.0015 286.0 0.0015 0.0015 331.0 0.0015 0.0015 396.0 0.0015 0.0015 468.5 0.0014 0.0014 549.5 0.0014 0.0014 639.0 0.0013 0.0013 738.0 0.0012 0.0012 847.5 0.0011 0.0011 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0009 0.0009 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 --0.6 -0.4 132 9.0 0.0782 0.0782 11.0 0.0641 0.0641 13.5 0.0507 0.0507 16.5 0.0394 0.0394 19.5 0.0314 0.0314 22.5 0.0256 0.0256 26.0 0.0205 0.0205 30.0 0.0162 0.0162 34.5 0.0127 0.0127 40.0 0.0096 0.0096 46.0 0.0072 0.0072 52.5 0.0053 0.0053 60.0 0.0037 0.0037 69.0 0.0024 0.0024 79.0 0.0015 0.0015 90.5 0.0007 0.0007 105.5 0.0005 0.0005 123.5 0.0009 0.0009 143.0 0.0012 0.0012 163.5 0.0014 0.0014 185.0 0.0015 0.0015 208.0 0.0016 0.0016 232.5 0.0017 0.0017 258.5 0.0017 0.0017 286.0 0.0017 0.0017 331.0 0.0017 0.0017 396.0 0.0016 0.0016 468.5 0.0015 0.0015 549.5 0.0015 0.0015 639.0 0.0014 0.0014 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 --0.4 -0.2 132 9.0 0.0801 0.0801 11.0 0.0654 0.0654 13.5 0.0516 0.0516 16.5 0.0400 0.0400 19.5 0.0318 0.0318 22.5 0.0257 0.0257 26.0 0.0205 0.0205 30.0 0.0161 0.0161 34.5 0.0125 0.0125 40.0 0.0093 0.0093 46.0 0.0069 0.0069 52.5 0.0050 0.0050 60.0 0.0034 0.0034 69.0 0.0021 0.0021 79.0 0.0012 0.0012 90.5 0.0007 0.0007 105.5 0.0008 0.0008 123.5 0.0012 0.0012 143.0 0.0015 0.0015 163.5 0.0017 0.0017 185.0 0.0019 0.0019 208.0 0.0019 0.0019 232.5 0.0020 0.0020 258.5 0.0020 0.0020 286.0 0.0020 0.0020 331.0 0.0019 0.0019 396.0 0.0018 0.0018 468.5 0.0017 0.0017 549.5 0.0016 0.0016 639.0 0.0015 0.0015 738.0 0.0014 0.0014 847.5 0.0013 0.0013 968.5 0.0012 0.0012 1102.0 0.0011 0.0011 1249.5 0.0011 0.0011 1412.0 0.0010 0.0010 1590.5 0.0009 0.0009 1787.0 0.0008 0.0008 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 --0.2 0.0 132 9.0 0.0758 0.0758 11.0 0.0616 0.0616 13.5 0.0482 0.0482 16.5 0.0371 0.0371 19.5 0.0292 0.0292 22.5 0.0234 0.0234 26.0 0.0185 0.0185 30.0 0.0143 0.0143 34.5 0.0109 0.0109 40.0 0.0080 0.0080 46.0 0.0057 0.0057 52.5 0.0040 0.0040 60.0 0.0026 0.0026 69.0 0.0015 0.0015 79.0 0.0009 0.0009 90.5 0.0010 0.0010 105.5 0.0014 0.0014 123.5 0.0018 0.0018 143.0 0.0020 0.0020 163.5 0.0021 0.0021 185.0 0.0022 0.0022 208.0 0.0023 0.0023 232.5 0.0023 0.0023 258.5 0.0022 0.0022 286.0 0.0022 0.0022 331.0 0.0021 0.0021 396.0 0.0020 0.0020 468.5 0.0019 0.0019 549.5 0.0018 0.0018 639.0 0.0016 0.0016 738.0 0.0015 0.0015 847.5 0.0014 0.0014 968.5 0.0013 0.0013 1102.0 0.0012 0.0012 1249.5 0.0011 0.0011 1412.0 0.0010 0.0010 1590.5 0.0010 0.0010 1787.0 0.0009 0.0009 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -0.0 0.2 132 9.0 0.0758 0.0758 11.0 0.0616 0.0616 13.5 0.0482 0.0482 16.5 0.0371 0.0371 19.5 0.0292 0.0292 22.5 0.0234 0.0234 26.0 0.0185 0.0185 30.0 0.0143 0.0143 34.5 0.0109 0.0109 40.0 0.0080 0.0080 46.0 0.0057 0.0057 52.5 0.0040 0.0040 60.0 0.0026 0.0026 69.0 0.0015 0.0015 79.0 0.0009 0.0009 90.5 0.0010 0.0010 105.5 0.0014 0.0014 123.5 0.0018 0.0018 143.0 0.0020 0.0020 163.5 0.0021 0.0021 185.0 0.0022 0.0022 208.0 0.0023 0.0023 232.5 0.0023 0.0023 258.5 0.0022 0.0022 286.0 0.0022 0.0022 331.0 0.0021 0.0021 396.0 0.0020 0.0020 468.5 0.0019 0.0019 549.5 0.0018 0.0018 639.0 0.0016 0.0016 738.0 0.0015 0.0015 847.5 0.0014 0.0014 968.5 0.0013 0.0013 1102.0 0.0012 0.0012 1249.5 0.0011 0.0011 1412.0 0.0010 0.0010 1590.5 0.0010 0.0010 1787.0 0.0009 0.0009 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0007 0.0007 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -0.2 0.4 132 9.0 0.0801 0.0801 11.0 0.0654 0.0654 13.5 0.0516 0.0516 16.5 0.0400 0.0400 19.5 0.0318 0.0318 22.5 0.0257 0.0257 26.0 0.0205 0.0205 30.0 0.0161 0.0161 34.5 0.0125 0.0125 40.0 0.0093 0.0093 46.0 0.0069 0.0069 52.5 0.0050 0.0050 60.0 0.0034 0.0034 69.0 0.0021 0.0021 79.0 0.0012 0.0012 90.5 0.0007 0.0007 105.5 0.0008 0.0008 123.5 0.0012 0.0012 143.0 0.0015 0.0015 163.5 0.0017 0.0017 185.0 0.0019 0.0019 208.0 0.0019 0.0019 232.5 0.0020 0.0020 258.5 0.0020 0.0020 286.0 0.0020 0.0020 331.0 0.0019 0.0019 396.0 0.0018 0.0018 468.5 0.0017 0.0017 549.5 0.0016 0.0016 639.0 0.0015 0.0015 738.0 0.0014 0.0014 847.5 0.0013 0.0013 968.5 0.0012 0.0012 1102.0 0.0011 0.0011 1249.5 0.0011 0.0011 1412.0 0.0010 0.0010 1590.5 0.0009 0.0009 1787.0 0.0008 0.0008 1945.0 0.0008 0.0008 2119.0 0.0008 0.0008 2369.0 0.0007 0.0007 2643.5 0.0006 0.0006 2945.0 0.0006 0.0006 3276.5 0.0006 0.0006 -0.4 0.6 132 9.0 0.0782 0.0782 11.0 0.0641 0.0641 13.5 0.0507 0.0507 16.5 0.0394 0.0394 19.5 0.0314 0.0314 22.5 0.0256 0.0256 26.0 0.0205 0.0205 30.0 0.0162 0.0162 34.5 0.0127 0.0127 40.0 0.0096 0.0096 46.0 0.0072 0.0072 52.5 0.0053 0.0053 60.0 0.0037 0.0037 69.0 0.0024 0.0024 79.0 0.0015 0.0015 90.5 0.0007 0.0007 105.5 0.0005 0.0005 123.5 0.0009 0.0009 143.0 0.0012 0.0012 163.5 0.0014 0.0014 185.0 0.0015 0.0015 208.0 0.0016 0.0016 232.5 0.0017 0.0017 258.5 0.0017 0.0017 286.0 0.0017 0.0017 331.0 0.0017 0.0017 396.0 0.0016 0.0016 468.5 0.0015 0.0015 549.5 0.0015 0.0015 639.0 0.0014 0.0014 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 -0.6 0.8 132 9.0 0.0813 0.0813 11.0 0.0669 0.0669 13.5 0.0532 0.0532 16.5 0.0416 0.0416 19.5 0.0334 0.0334 22.5 0.0273 0.0273 26.0 0.0220 0.0220 30.0 0.0175 0.0175 34.5 0.0138 0.0138 40.0 0.0106 0.0106 46.0 0.0080 0.0080 52.5 0.0061 0.0061 60.0 0.0044 0.0044 69.0 0.0030 0.0030 79.0 0.0019 0.0019 90.5 0.0010 0.0010 105.5 0.0003 0.0003 123.5 0.0005 0.0005 143.0 0.0008 0.0008 163.5 0.0011 0.0011 185.0 0.0013 0.0013 208.0 0.0014 0.0014 232.5 0.0015 0.0015 258.5 0.0015 0.0015 286.0 0.0015 0.0015 331.0 0.0015 0.0015 396.0 0.0015 0.0015 468.5 0.0014 0.0014 549.5 0.0014 0.0014 639.0 0.0013 0.0013 738.0 0.0012 0.0012 847.5 0.0011 0.0011 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0009 0.0009 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0007 0.0007 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 -0.8 1.0 132 9.0 0.0853 0.0853 11.0 0.0696 0.0696 13.5 0.0548 0.0548 16.5 0.0424 0.0424 19.5 0.0335 0.0335 22.5 0.0270 0.0270 26.0 0.0213 0.0213 30.0 0.0165 0.0165 34.5 0.0126 0.0126 40.0 0.0092 0.0092 46.0 0.0065 0.0065 52.5 0.0045 0.0045 60.0 0.0028 0.0028 69.0 0.0015 0.0015 79.0 0.0005 0.0005 90.5 0.0006 0.0006 105.5 0.0013 0.0013 123.5 0.0018 0.0018 143.0 0.0021 0.0021 163.5 0.0023 0.0023 185.0 0.0024 0.0024 208.0 0.0025 0.0025 232.5 0.0025 0.0025 258.5 0.0025 0.0025 286.0 0.0024 0.0024 331.0 0.0024 0.0024 396.0 0.0022 0.0022 468.5 0.0021 0.0021 549.5 0.0020 0.0020 639.0 0.0018 0.0018 738.0 0.0017 0.0017 847.5 0.0016 0.0016 968.5 0.0015 0.0015 1102.0 0.0014 0.0014 1249.5 0.0013 0.0013 1412.0 0.0012 0.0012 1590.5 0.0011 0.0011 1787.0 0.0010 0.0010 1945.0 0.0009 0.0009 2119.0 0.0009 0.0009 2369.0 0.0008 0.0008 2643.5 0.0008 0.0008 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -1.0 1.2 132 9.0 0.0931 0.0931 11.0 0.0746 0.0746 13.5 0.0576 0.0576 16.5 0.0434 0.0434 19.5 0.0333 0.0333 22.5 0.0259 0.0259 26.0 0.0195 0.0195 30.0 0.0142 0.0142 34.5 0.0099 0.0099 40.0 0.0061 0.0061 46.0 0.0033 0.0033 52.5 0.0013 0.0013 60.0 0.0009 0.0009 69.0 0.0021 0.0021 79.0 0.0030 0.0030 90.5 0.0038 0.0038 105.5 0.0043 0.0043 123.5 0.0046 0.0046 143.0 0.0048 0.0048 163.5 0.0048 0.0048 185.0 0.0048 0.0048 208.0 0.0047 0.0047 232.5 0.0046 0.0046 258.5 0.0045 0.0045 286.0 0.0043 0.0043 331.0 0.0041 0.0041 396.0 0.0038 0.0038 468.5 0.0035 0.0035 549.5 0.0032 0.0032 639.0 0.0029 0.0029 738.0 0.0027 0.0027 847.5 0.0025 0.0025 968.5 0.0023 0.0023 1102.0 0.0021 0.0021 1249.5 0.0019 0.0019 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0010 0.0010 -1.2 1.4 132 9.0 0.0941 0.0941 11.0 0.0749 0.0749 13.5 0.0574 0.0574 16.5 0.0427 0.0427 19.5 0.0324 0.0324 22.5 0.0248 0.0248 26.0 0.0183 0.0183 30.0 0.0129 0.0129 34.5 0.0086 0.0086 40.0 0.0048 0.0048 46.0 0.0021 0.0021 52.5 0.0009 0.0009 60.0 0.0020 0.0020 69.0 0.0033 0.0033 79.0 0.0042 0.0042 90.5 0.0049 0.0049 105.5 0.0053 0.0053 123.5 0.0056 0.0056 143.0 0.0057 0.0057 163.5 0.0057 0.0057 185.0 0.0056 0.0056 208.0 0.0054 0.0054 232.5 0.0052 0.0052 258.5 0.0051 0.0051 286.0 0.0049 0.0049 331.0 0.0046 0.0046 396.0 0.0042 0.0042 468.5 0.0039 0.0039 549.5 0.0035 0.0035 639.0 0.0032 0.0032 738.0 0.0030 0.0030 847.5 0.0027 0.0027 968.5 0.0025 0.0025 1102.0 0.0023 0.0023 1249.5 0.0021 0.0021 1412.0 0.0019 0.0019 1590.5 0.0018 0.0018 1787.0 0.0016 0.0016 1945.0 0.0015 0.0015 2119.0 0.0014 0.0014 2369.0 0.0013 0.0013 2643.5 0.0012 0.0012 2945.0 0.0011 0.0011 3276.5 0.0010 0.0010 -1.4 1.6 132 9.0 0.0971 0.0971 11.0 0.0812 0.0812 13.5 0.0662 0.0662 16.5 0.0534 0.0534 19.5 0.0441 0.0441 22.5 0.0370 0.0370 26.0 0.0308 0.0308 30.0 0.0254 0.0254 34.5 0.0209 0.0209 40.0 0.0168 0.0168 46.0 0.0135 0.0135 52.5 0.0110 0.0110 60.0 0.0087 0.0087 69.0 0.0068 0.0068 79.0 0.0053 0.0053 90.5 0.0040 0.0040 105.5 0.0029 0.0029 123.5 0.0020 0.0020 143.0 0.0013 0.0013 163.5 0.0008 0.0008 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0002 0.0002 258.5 0.0003 0.0003 286.0 0.0004 0.0004 331.0 0.0006 0.0006 396.0 0.0007 0.0007 468.5 0.0007 0.0007 549.5 0.0007 0.0007 639.0 0.0007 0.0007 738.0 0.0007 0.0007 847.5 0.0007 0.0007 968.5 0.0007 0.0007 1102.0 0.0006 0.0006 1249.5 0.0006 0.0006 1412.0 0.0006 0.0006 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1945.0 0.0005 0.0005 2119.0 0.0005 0.0005 2369.0 0.0004 0.0004 2643.5 0.0004 0.0004 2945.0 0.0004 0.0004 3276.5 0.0004 0.0004 -1.6 1.8 132 9.0 0.1106 0.1106 11.0 0.0931 0.0931 13.5 0.0767 0.0767 16.5 0.0625 0.0625 19.5 0.0522 0.0522 22.5 0.0443 0.0443 26.0 0.0374 0.0374 30.0 0.0313 0.0313 34.5 0.0262 0.0262 40.0 0.0215 0.0215 46.0 0.0178 0.0178 52.5 0.0148 0.0148 60.0 0.0122 0.0122 69.0 0.0099 0.0099 79.0 0.0080 0.0080 90.5 0.0064 0.0064 105.5 0.0050 0.0050 123.5 0.0038 0.0038 143.0 0.0029 0.0029 163.5 0.0022 0.0022 185.0 0.0017 0.0017 208.0 0.0013 0.0013 232.5 0.0010 0.0010 258.5 0.0007 0.0007 286.0 0.0005 0.0005 331.0 0.0003 0.0003 396.0 0.0001 0.0001 468.5 0.0001 0.0001 549.5 0.0002 0.0002 639.0 0.0003 0.0003 738.0 0.0003 0.0003 847.5 0.0003 0.0003 968.5 0.0003 0.0003 1102.0 0.0003 0.0003 1249.5 0.0003 0.0003 1412.0 0.0003 0.0003 1590.5 0.0003 0.0003 1787.0 0.0003 0.0003 1945.0 0.0003 0.0003 2119.0 0.0003 0.0003 2369.0 0.0003 0.0003 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0002 0.0002 -1.8 2.0 132 9.0 0.1498 0.1498 11.0 0.1233 0.1233 13.5 0.0990 0.0990 16.5 0.0785 0.0785 19.5 0.0638 0.0638 22.5 0.0529 0.0529 26.0 0.0434 0.0434 30.0 0.0353 0.0353 34.5 0.0285 0.0285 40.0 0.0225 0.0225 46.0 0.0177 0.0177 52.5 0.0140 0.0140 60.0 0.0108 0.0108 69.0 0.0081 0.0081 79.0 0.0059 0.0059 90.5 0.0042 0.0042 105.5 0.0026 0.0026 123.5 0.0014 0.0014 143.0 0.0005 0.0005 163.5 0.0001 0.0001 185.0 0.0006 0.0006 208.0 0.0009 0.0009 232.5 0.0011 0.0011 258.5 0.0013 0.0013 286.0 0.0014 0.0014 331.0 0.0015 0.0015 396.0 0.0016 0.0016 468.5 0.0016 0.0016 549.5 0.0016 0.0016 639.0 0.0015 0.0015 738.0 0.0014 0.0014 847.5 0.0014 0.0014 968.5 0.0013 0.0013 1102.0 0.0012 0.0012 1249.5 0.0011 0.0011 1412.0 0.0011 0.0011 1590.5 0.0010 0.0010 1787.0 0.0009 0.0009 1945.0 0.0009 0.0009 2119.0 0.0008 0.0008 2369.0 0.0008 0.0008 2643.5 0.0007 0.0007 2945.0 0.0007 0.0007 3276.5 0.0006 0.0006 -2.0 2.2 132 9.0 0.2044 0.2044 11.0 0.1652 0.1652 13.5 0.1291 0.1291 16.5 0.0993 0.0993 19.5 0.0783 0.0783 22.5 0.0630 0.0630 26.0 0.0498 0.0498 30.0 0.0388 0.0388 34.5 0.0299 0.0299 40.0 0.0221 0.0221 46.0 0.0162 0.0162 52.5 0.0117 0.0117 60.0 0.0080 0.0080 69.0 0.0051 0.0051 79.0 0.0030 0.0030 90.5 0.0019 0.0019 105.5 0.0022 0.0022 123.5 0.0030 0.0030 143.0 0.0036 0.0036 163.5 0.0040 0.0040 185.0 0.0043 0.0043 208.0 0.0044 0.0044 232.5 0.0045 0.0045 258.5 0.0045 0.0045 286.0 0.0044 0.0044 331.0 0.0043 0.0043 396.0 0.0041 0.0041 468.5 0.0038 0.0038 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0031 0.0031 847.5 0.0029 0.0029 968.5 0.0027 0.0027 1102.0 0.0025 0.0025 1249.5 0.0023 0.0023 1412.0 0.0021 0.0021 1590.5 0.0020 0.0020 1787.0 0.0018 0.0018 1945.0 0.0017 0.0017 2119.0 0.0016 0.0016 2369.0 0.0015 0.0015 2643.5 0.0014 0.0014 2945.0 0.0013 0.0013 3276.5 0.0012 0.0012 -2.2 2.4 132 9.0 0.2135 0.2135 11.0 0.1732 0.1732 13.5 0.1350 0.1350 16.5 0.1031 0.1031 19.5 0.0808 0.0808 22.5 0.0646 0.0646 26.0 0.0507 0.0507 30.0 0.0392 0.0392 34.5 0.0300 0.0300 40.0 0.0221 0.0221 46.0 0.0162 0.0162 52.5 0.0118 0.0118 60.0 0.0083 0.0083 69.0 0.0057 0.0057 79.0 0.0043 0.0043 90.5 0.0040 0.0040 105.5 0.0043 0.0043 123.5 0.0048 0.0048 143.0 0.0053 0.0053 163.5 0.0055 0.0055 185.0 0.0057 0.0057 208.0 0.0057 0.0057 232.5 0.0057 0.0057 258.5 0.0056 0.0056 286.0 0.0055 0.0055 331.0 0.0053 0.0053 396.0 0.0050 0.0050 468.5 0.0046 0.0046 549.5 0.0043 0.0043 639.0 0.0040 0.0040 738.0 0.0037 0.0037 847.5 0.0034 0.0034 968.5 0.0032 0.0032 1102.0 0.0029 0.0029 1249.5 0.0027 0.0027 1412.0 0.0025 0.0025 1590.5 0.0023 0.0023 1787.0 0.0021 0.0021 1945.0 0.0020 0.0020 2119.0 0.0019 0.0019 2369.0 0.0018 0.0018 2643.5 0.0016 0.0016 2945.0 0.0015 0.0015 3276.5 0.0014 0.0014 -2.4 2.6 132 9.0 0.1559 0.1559 11.0 0.1290 0.1290 13.5 0.1019 0.1019 16.5 0.0782 0.0782 19.5 0.0614 0.0614 22.5 0.0491 0.0491 26.0 0.0386 0.0386 30.0 0.0300 0.0300 34.5 0.0231 0.0231 40.0 0.0174 0.0174 46.0 0.0133 0.0133 52.5 0.0106 0.0106 60.0 0.0089 0.0089 69.0 0.0081 0.0081 79.0 0.0079 0.0079 90.5 0.0080 0.0080 105.5 0.0081 0.0081 123.5 0.0082 0.0082 143.0 0.0082 0.0082 163.5 0.0082 0.0082 185.0 0.0080 0.0080 208.0 0.0078 0.0078 232.5 0.0075 0.0075 258.5 0.0072 0.0072 286.0 0.0070 0.0070 331.0 0.0065 0.0065 396.0 0.0060 0.0060 468.5 0.0055 0.0055 549.5 0.0050 0.0050 639.0 0.0046 0.0046 738.0 0.0042 0.0042 847.5 0.0039 0.0039 968.5 0.0036 0.0036 1102.0 0.0033 0.0033 1249.5 0.0030 0.0030 1412.0 0.0028 0.0028 1590.5 0.0026 0.0026 1787.0 0.0024 0.0024 1945.0 0.0022 0.0022 2119.0 0.0021 0.0021 2369.0 0.0019 0.0019 2643.5 0.0018 0.0018 2945.0 0.0016 0.0016 3276.5 0.0015 0.0015 -2.6 2.8 132 9.0 0.0326 0.0326 11.0 0.0264 0.0264 13.5 0.0208 0.0208 16.5 0.0166 0.0166 19.5 0.0139 0.0139 22.5 0.0123 0.0123 26.0 0.0112 0.0112 30.0 0.0104 0.0104 34.5 0.0099 0.0099 40.0 0.0095 0.0095 46.0 0.0091 0.0091 52.5 0.0088 0.0088 60.0 0.0085 0.0085 69.0 0.0081 0.0081 79.0 0.0078 0.0078 90.5 0.0074 0.0074 105.5 0.0069 0.0069 123.5 0.0064 0.0064 143.0 0.0060 0.0060 163.5 0.0056 0.0056 185.0 0.0052 0.0052 208.0 0.0049 0.0049 232.5 0.0045 0.0045 258.5 0.0042 0.0042 286.0 0.0040 0.0040 331.0 0.0036 0.0036 396.0 0.0032 0.0032 468.5 0.0029 0.0029 549.5 0.0026 0.0026 639.0 0.0023 0.0023 738.0 0.0021 0.0021 847.5 0.0019 0.0019 968.5 0.0017 0.0017 1102.0 0.0015 0.0015 1249.5 0.0014 0.0014 1412.0 0.0013 0.0013 1590.5 0.0012 0.0012 1787.0 0.0011 0.0011 1945.0 0.0010 0.0010 2119.0 0.0009 0.0009 2369.0 0.0009 0.0009 2643.5 0.0008 0.0008 2945.0 0.0007 0.0007 3276.5 0.0007 0.0007 -2.8 3.0 132 9.0 0.0278 0.0278 11.0 0.0239 0.0239 13.5 0.0199 0.0199 16.5 0.0162 0.0162 19.5 0.0133 0.0133 22.5 0.0110 0.0110 26.0 0.0090 0.0090 30.0 0.0072 0.0072 34.5 0.0057 0.0057 40.0 0.0044 0.0044 46.0 0.0033 0.0033 52.5 0.0025 0.0025 60.0 0.0018 0.0018 69.0 0.0012 0.0012 79.0 0.0009 0.0009 90.5 0.0007 0.0007 105.5 0.0007 0.0007 123.5 0.0008 0.0008 143.0 0.0009 0.0009 163.5 0.0010 0.0010 185.0 0.0010 0.0010 208.0 0.0011 0.0011 232.5 0.0011 0.0011 258.5 0.0011 0.0011 286.0 0.0010 0.0010 331.0 0.0010 0.0010 396.0 0.0010 0.0010 468.5 0.0009 0.0009 549.5 0.0008 0.0008 639.0 0.0008 0.0008 738.0 0.0007 0.0007 847.5 0.0007 0.0007 968.5 0.0006 0.0006 1102.0 0.0006 0.0006 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0004 0.0004 1945.0 0.0004 0.0004 2119.0 0.0004 0.0004 2369.0 0.0004 0.0004 2643.5 0.0003 0.0003 2945.0 0.0003 0.0003 3276.5 0.0003 0.0003 -3.0 3.5 132 9.0 0.0539 0.0539 11.0 0.0428 0.0428 13.5 0.0327 0.0327 16.5 0.0252 0.0252 19.5 0.0213 0.0213 22.5 0.0197 0.0197 26.0 0.0192 0.0192 30.0 0.0195 0.0195 34.5 0.0199 0.0199 40.0 0.0203 0.0203 46.0 0.0205 0.0205 52.5 0.0205 0.0205 60.0 0.0203 0.0203 69.0 0.0198 0.0198 79.0 0.0191 0.0191 90.5 0.0183 0.0183 105.5 0.0173 0.0173 123.5 0.0162 0.0162 143.0 0.0151 0.0151 163.5 0.0140 0.0140 185.0 0.0131 0.0131 208.0 0.0123 0.0123 232.5 0.0115 0.0115 258.5 0.0108 0.0108 286.0 0.0102 0.0102 331.0 0.0093 0.0093 396.0 0.0083 0.0083 468.5 0.0074 0.0074 549.5 0.0067 0.0067 639.0 0.0060 0.0060 738.0 0.0054 0.0054 847.5 0.0049 0.0049 968.5 0.0045 0.0045 1102.0 0.0041 0.0041 1249.5 0.0037 0.0037 1412.0 0.0034 0.0034 1590.5 0.0031 0.0031 1787.0 0.0028 0.0028 1945.0 0.0026 0.0026 2119.0 0.0025 0.0025 2369.0 0.0023 0.0023 2643.5 0.0021 0.0021 2945.0 0.0019 0.0019 3276.5 0.0018 0.0018 -3.5 4.0 132 9.0 0.0538 0.0538 11.0 0.0445 0.0445 13.5 0.0352 0.0352 16.5 0.0271 0.0271 19.5 0.0213 0.0213 22.5 0.0171 0.0171 26.0 0.0136 0.0136 30.0 0.0108 0.0108 34.5 0.0088 0.0088 40.0 0.0074 0.0074 46.0 0.0066 0.0066 52.5 0.0061 0.0061 60.0 0.0059 0.0059 69.0 0.0058 0.0058 79.0 0.0057 0.0057 90.5 0.0056 0.0056 105.5 0.0055 0.0055 123.5 0.0053 0.0053 143.0 0.0051 0.0051 163.5 0.0049 0.0049 185.0 0.0046 0.0046 208.0 0.0044 0.0044 232.5 0.0042 0.0042 258.5 0.0040 0.0040 286.0 0.0038 0.0038 331.0 0.0036 0.0036 396.0 0.0032 0.0032 468.5 0.0029 0.0029 549.5 0.0027 0.0027 639.0 0.0024 0.0024 738.0 0.0022 0.0022 847.5 0.0020 0.0020 968.5 0.0018 0.0018 1102.0 0.0017 0.0017 1249.5 0.0016 0.0016 1412.0 0.0014 0.0014 1590.5 0.0013 0.0013 1787.0 0.0012 0.0012 1945.0 0.0011 0.0011 2119.0 0.0011 0.0011 2369.0 0.0010 0.0010 2643.5 0.0009 0.0009 2945.0 0.0008 0.0008 3276.5 0.0008 0.0008 -4.0 4.4 132 9.0 0.0612 0.0612 11.0 0.0518 0.0518 13.5 0.0421 0.0421 16.5 0.0333 0.0333 19.5 0.0268 0.0268 22.5 0.0219 0.0219 26.0 0.0176 0.0176 30.0 0.0140 0.0140 34.5 0.0110 0.0110 40.0 0.0083 0.0083 46.0 0.0062 0.0062 52.5 0.0046 0.0046 60.0 0.0032 0.0032 69.0 0.0021 0.0021 79.0 0.0014 0.0014 90.5 0.0010 0.0010 105.5 0.0010 0.0010 123.5 0.0013 0.0013 143.0 0.0015 0.0015 163.5 0.0016 0.0016 185.0 0.0017 0.0017 208.0 0.0018 0.0018 232.5 0.0018 0.0018 258.5 0.0018 0.0018 286.0 0.0018 0.0018 331.0 0.0018 0.0018 396.0 0.0017 0.0017 468.5 0.0016 0.0016 549.5 0.0015 0.0015 639.0 0.0014 0.0014 738.0 0.0013 0.0013 847.5 0.0012 0.0012 968.5 0.0011 0.0011 1102.0 0.0010 0.0010 1249.5 0.0010 0.0010 1412.0 0.0009 0.0009 1590.5 0.0008 0.0008 1787.0 0.0008 0.0008 1945.0 0.0007 0.0007 2119.0 0.0007 0.0007 2369.0 0.0006 0.0006 2643.5 0.0006 0.0006 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 -4.4 5.0 132 9.0 0.0087 0.0087 11.0 0.0034 0.0034 13.5 0.0026 0.0026 16.5 0.0063 0.0063 19.5 0.0088 0.0088 22.5 0.0104 0.0104 26.0 0.0116 0.0116 30.0 0.0123 0.0123 34.5 0.0127 0.0127 40.0 0.0129 0.0129 46.0 0.0128 0.0128 52.5 0.0125 0.0125 60.0 0.0121 0.0121 69.0 0.0116 0.0116 79.0 0.0111 0.0111 90.5 0.0105 0.0105 105.5 0.0098 0.0098 123.5 0.0091 0.0091 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0073 0.0073 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0056 0.0056 331.0 0.0051 0.0051 396.0 0.0045 0.0045 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0026 0.0026 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 -5.0 5.4 132 9.0 0.0116 0.0116 11.0 0.0074 0.0074 13.5 0.0062 0.0062 16.5 0.0079 0.0079 19.5 0.0097 0.0097 22.5 0.0110 0.0110 26.0 0.0120 0.0120 30.0 0.0126 0.0126 34.5 0.0130 0.0130 40.0 0.0131 0.0131 46.0 0.0129 0.0129 52.5 0.0126 0.0126 60.0 0.0122 0.0122 69.0 0.0117 0.0117 79.0 0.0112 0.0112 90.5 0.0106 0.0106 105.5 0.0099 0.0099 123.5 0.0092 0.0092 143.0 0.0085 0.0085 163.5 0.0079 0.0079 185.0 0.0074 0.0074 208.0 0.0069 0.0069 232.5 0.0064 0.0064 258.5 0.0060 0.0060 286.0 0.0057 0.0057 331.0 0.0051 0.0051 396.0 0.0046 0.0046 468.5 0.0041 0.0041 549.5 0.0036 0.0036 639.0 0.0033 0.0033 738.0 0.0029 0.0029 847.5 0.0027 0.0027 968.5 0.0024 0.0024 1102.0 0.0022 0.0022 1249.5 0.0020 0.0020 1412.0 0.0018 0.0018 1590.5 0.0016 0.0016 1787.0 0.0015 0.0015 1945.0 0.0014 0.0014 2119.0 0.0013 0.0013 2369.0 0.0012 0.0012 2643.5 0.0011 0.0011 2945.0 0.0010 0.0010 3276.5 0.0009 0.0009 -[SubTotalRelative] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0390 0.0390 11.0 0.0390 0.0390 13.5 0.0390 0.0390 16.5 0.0390 0.0390 19.5 0.0390 0.0390 22.5 0.0390 0.0390 26.0 0.0390 0.0390 30.0 0.0390 0.0390 34.5 0.0390 0.0390 40.0 0.0390 0.0390 46.0 0.0390 0.0390 52.5 0.0390 0.0390 60.0 0.0390 0.0390 69.0 0.0390 0.0390 79.0 0.0390 0.0390 90.5 0.0390 0.0390 105.5 0.0390 0.0390 123.5 0.0390 0.0390 143.0 0.0390 0.0390 163.5 0.0390 0.0390 185.0 0.0390 0.0390 208.0 0.0390 0.0390 232.5 0.0390 0.0390 258.5 0.0390 0.0390 286.0 0.0390 0.0390 331.0 0.0390 0.0390 396.0 0.0390 0.0390 468.5 0.0390 0.0390 549.5 0.0390 0.0390 639.0 0.0390 0.0390 738.0 0.0390 0.0390 847.5 0.0390 0.0390 968.5 0.0390 0.0390 1102.0 0.0390 0.0390 1249.5 0.0390 0.0390 1412.0 0.0390 0.0390 1590.5 0.0390 0.0390 1787.0 0.0390 0.0390 1945.0 0.0390 0.0390 2119.0 0.0390 0.0390 2369.0 0.0390 0.0390 2643.5 0.0390 0.0390 2945.0 0.0390 0.0390 3276.5 0.0390 0.0390 --5.0 -4.4 132 9.0 0.0390 0.0390 11.0 0.0390 0.0390 13.5 0.0390 0.0390 16.5 0.0390 0.0390 19.5 0.0390 0.0390 22.5 0.0390 0.0390 26.0 0.0390 0.0390 30.0 0.0390 0.0390 34.5 0.0390 0.0390 40.0 0.0390 0.0390 46.0 0.0390 0.0390 52.5 0.0381 0.0381 60.0 0.0359 0.0359 69.0 0.0341 0.0341 79.0 0.0336 0.0336 90.5 0.0336 0.0336 105.5 0.0336 0.0336 123.5 0.0336 0.0336 143.0 0.0336 0.0336 163.5 0.0336 0.0336 185.0 0.0336 0.0336 208.0 0.0336 0.0336 232.5 0.0336 0.0336 258.5 0.0336 0.0336 286.0 0.0336 0.0336 331.0 0.0336 0.0336 396.0 0.0336 0.0336 468.5 0.0336 0.0336 549.5 0.0336 0.0336 639.0 0.0336 0.0336 738.0 0.0336 0.0336 847.5 0.0336 0.0336 968.5 0.0336 0.0336 1102.0 0.0336 0.0336 1249.5 0.0336 0.0336 1412.0 0.0336 0.0336 1590.5 0.0336 0.0336 1787.0 0.0336 0.0336 1945.0 0.0336 0.0336 2119.0 0.0336 0.0336 2369.0 0.0336 0.0336 2643.5 0.0336 0.0336 2945.0 0.0336 0.0336 3276.5 0.0336 0.0336 --4.4 -4.0 132 9.0 0.0390 0.0390 11.0 0.0390 0.0390 13.5 0.0390 0.0390 16.5 0.0390 0.0390 19.5 0.0390 0.0390 22.5 0.0390 0.0390 26.0 0.0390 0.0390 30.0 0.0390 0.0390 34.5 0.0390 0.0390 40.0 0.0390 0.0390 46.0 0.0390 0.0390 52.5 0.0381 0.0381 60.0 0.0359 0.0359 69.0 0.0341 0.0341 79.0 0.0331 0.0331 90.5 0.0329 0.0329 105.5 0.0338 0.0338 123.5 0.0355 0.0355 143.0 0.0355 0.0355 163.5 0.0355 0.0355 185.0 0.0355 0.0355 208.0 0.0355 0.0355 232.5 0.0355 0.0355 258.5 0.0355 0.0355 286.0 0.0355 0.0355 331.0 0.0355 0.0355 396.0 0.0355 0.0355 468.5 0.0355 0.0355 549.5 0.0355 0.0355 639.0 0.0355 0.0355 738.0 0.0355 0.0355 847.5 0.0355 0.0355 968.5 0.0355 0.0355 1102.0 0.0355 0.0355 1249.5 0.0355 0.0355 1412.0 0.0355 0.0355 1590.5 0.0355 0.0355 1787.0 0.0355 0.0355 1945.0 0.0355 0.0355 2119.0 0.0355 0.0355 2369.0 0.0355 0.0355 2643.5 0.0355 0.0355 2945.0 0.0355 0.0355 3276.5 0.0355 0.0355 --4.0 -3.5 132 9.0 0.0390 0.0390 11.0 0.0390 0.0390 13.5 0.0390 0.0390 16.5 0.0390 0.0390 19.5 0.0390 0.0390 22.5 0.0390 0.0390 26.0 0.0390 0.0390 30.0 0.0390 0.0390 34.5 0.0390 0.0390 40.0 0.0390 0.0390 46.0 0.0390 0.0390 52.5 0.0381 0.0381 60.0 0.0359 0.0359 69.0 0.0341 0.0341 79.0 0.0331 0.0331 90.5 0.0329 0.0329 105.5 0.0338 0.0338 123.5 0.0360 0.0360 143.0 0.0363 0.0363 163.5 0.0363 0.0363 185.0 0.0363 0.0363 208.0 0.0363 0.0363 232.5 0.0363 0.0363 258.5 0.0363 0.0363 286.0 0.0363 0.0363 331.0 0.0363 0.0363 396.0 0.0363 0.0363 468.5 0.0363 0.0363 549.5 0.0363 0.0363 639.0 0.0363 0.0363 738.0 0.0363 0.0363 847.5 0.0363 0.0363 968.5 0.0363 0.0363 1102.0 0.0363 0.0363 1249.5 0.0363 0.0363 1412.0 0.0363 0.0363 1590.5 0.0363 0.0363 1787.0 0.0363 0.0363 1945.0 0.0363 0.0363 2119.0 0.0363 0.0363 2369.0 0.0363 0.0363 2643.5 0.0363 0.0363 2945.0 0.0363 0.0363 3276.5 0.0363 0.0363 --3.5 -3.0 132 9.0 0.0223 0.0223 11.0 0.0223 0.0223 13.5 0.0223 0.0223 16.5 0.0223 0.0223 19.5 0.0223 0.0223 22.5 0.0223 0.0223 26.0 0.0223 0.0223 30.0 0.0223 0.0223 34.5 0.0223 0.0223 40.0 0.0223 0.0223 46.0 0.0223 0.0223 52.5 0.0222 0.0222 60.0 0.0221 0.0221 69.0 0.0220 0.0220 79.0 0.0219 0.0219 90.5 0.0218 0.0218 105.5 0.0217 0.0217 123.5 0.0217 0.0217 143.0 0.0217 0.0217 163.5 0.0218 0.0218 185.0 0.0218 0.0218 208.0 0.0219 0.0219 232.5 0.0220 0.0220 258.5 0.0220 0.0220 286.0 0.0220 0.0220 331.0 0.0220 0.0220 396.0 0.0220 0.0220 468.5 0.0220 0.0220 549.5 0.0220 0.0220 639.0 0.0220 0.0220 738.0 0.0220 0.0220 847.5 0.0220 0.0220 968.5 0.0220 0.0220 1102.0 0.0220 0.0220 1249.5 0.0220 0.0220 1412.0 0.0220 0.0220 1590.5 0.0220 0.0220 1787.0 0.0220 0.0220 1945.0 0.0220 0.0220 2119.0 0.0220 0.0220 2369.0 0.0220 0.0220 2643.5 0.0220 0.0220 2945.0 0.0220 0.0220 3276.5 0.0220 0.0220 --3.0 -2.8 132 9.0 0.0215 0.0215 11.0 0.0215 0.0215 13.5 0.0215 0.0215 16.5 0.0215 0.0215 19.5 0.0215 0.0215 22.5 0.0215 0.0215 26.0 0.0215 0.0215 30.0 0.0215 0.0215 34.5 0.0215 0.0215 40.0 0.0215 0.0215 46.0 0.0215 0.0215 52.5 0.0214 0.0214 60.0 0.0210 0.0210 69.0 0.0208 0.0208 79.0 0.0205 0.0205 90.5 0.0204 0.0204 105.5 0.0202 0.0202 123.5 0.0201 0.0201 143.0 0.0201 0.0201 163.5 0.0201 0.0201 185.0 0.0201 0.0201 208.0 0.0202 0.0202 232.5 0.0203 0.0203 258.5 0.0204 0.0204 286.0 0.0205 0.0205 331.0 0.0207 0.0207 396.0 0.0207 0.0207 468.5 0.0207 0.0207 549.5 0.0207 0.0207 639.0 0.0207 0.0207 738.0 0.0207 0.0207 847.5 0.0207 0.0207 968.5 0.0207 0.0207 1102.0 0.0207 0.0207 1249.5 0.0207 0.0207 1412.0 0.0207 0.0207 1590.5 0.0207 0.0207 1787.0 0.0207 0.0207 1945.0 0.0207 0.0207 2119.0 0.0207 0.0207 2369.0 0.0207 0.0207 2643.5 0.0207 0.0207 2945.0 0.0207 0.0207 3276.5 0.0207 0.0207 --2.8 -2.6 132 9.0 0.0173 0.0173 11.0 0.0173 0.0173 13.5 0.0173 0.0173 16.5 0.0173 0.0173 19.5 0.0173 0.0173 22.5 0.0173 0.0173 26.0 0.0173 0.0173 30.0 0.0173 0.0173 34.5 0.0173 0.0173 40.0 0.0173 0.0173 46.0 0.0173 0.0173 52.5 0.0169 0.0169 60.0 0.0157 0.0157 69.0 0.0144 0.0144 79.0 0.0133 0.0133 90.5 0.0121 0.0121 105.5 0.0110 0.0110 123.5 0.0100 0.0100 143.0 0.0092 0.0092 163.5 0.0087 0.0087 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0087 0.0087 258.5 0.0090 0.0090 286.0 0.0095 0.0095 331.0 0.0104 0.0104 396.0 0.0117 0.0117 468.5 0.0124 0.0124 549.5 0.0124 0.0124 639.0 0.0124 0.0124 738.0 0.0124 0.0124 847.5 0.0124 0.0124 968.5 0.0124 0.0124 1102.0 0.0124 0.0124 1249.5 0.0124 0.0124 1412.0 0.0124 0.0124 1590.5 0.0124 0.0124 1787.0 0.0124 0.0124 1945.0 0.0124 0.0124 2119.0 0.0124 0.0124 2369.0 0.0124 0.0124 2643.5 0.0124 0.0124 2945.0 0.0124 0.0124 3276.5 0.0124 0.0124 --2.6 -2.4 132 9.0 0.0182 0.0182 11.0 0.0182 0.0182 13.5 0.0182 0.0182 16.5 0.0182 0.0182 19.5 0.0182 0.0182 22.5 0.0182 0.0182 26.0 0.0182 0.0182 30.0 0.0182 0.0182 34.5 0.0182 0.0182 40.0 0.0182 0.0182 46.0 0.0182 0.0182 52.5 0.0177 0.0177 60.0 0.0164 0.0164 69.0 0.0150 0.0150 79.0 0.0136 0.0136 90.5 0.0123 0.0123 105.5 0.0109 0.0109 123.5 0.0096 0.0096 143.0 0.0086 0.0086 163.5 0.0079 0.0079 185.0 0.0075 0.0075 208.0 0.0074 0.0074 232.5 0.0075 0.0075 258.5 0.0079 0.0079 286.0 0.0084 0.0084 331.0 0.0094 0.0094 396.0 0.0109 0.0109 468.5 0.0120 0.0120 549.5 0.0127 0.0127 639.0 0.0129 0.0129 738.0 0.0129 0.0129 847.5 0.0129 0.0129 968.5 0.0129 0.0129 1102.0 0.0129 0.0129 1249.5 0.0129 0.0129 1412.0 0.0129 0.0129 1590.5 0.0129 0.0129 1787.0 0.0129 0.0129 1945.0 0.0129 0.0129 2119.0 0.0129 0.0129 2369.0 0.0129 0.0129 2643.5 0.0129 0.0129 2945.0 0.0129 0.0129 3276.5 0.0129 0.0129 --2.4 -2.2 132 9.0 0.0093 0.0093 11.0 0.0093 0.0093 13.5 0.0093 0.0093 16.5 0.0093 0.0093 19.5 0.0093 0.0093 22.5 0.0093 0.0093 26.0 0.0093 0.0093 30.0 0.0093 0.0093 34.5 0.0093 0.0093 40.0 0.0093 0.0093 46.0 0.0093 0.0093 52.5 0.0090 0.0090 60.0 0.0084 0.0084 69.0 0.0076 0.0076 79.0 0.0070 0.0070 90.5 0.0063 0.0063 105.5 0.0056 0.0056 123.5 0.0048 0.0048 143.0 0.0042 0.0042 163.5 0.0036 0.0036 185.0 0.0032 0.0032 208.0 0.0029 0.0029 232.5 0.0027 0.0027 258.5 0.0027 0.0027 286.0 0.0028 0.0028 331.0 0.0031 0.0031 396.0 0.0036 0.0036 468.5 0.0043 0.0043 549.5 0.0051 0.0051 639.0 0.0054 0.0054 738.0 0.0054 0.0054 847.5 0.0054 0.0054 968.5 0.0054 0.0054 1102.0 0.0054 0.0054 1249.5 0.0054 0.0054 1412.0 0.0054 0.0054 1590.5 0.0054 0.0054 1787.0 0.0054 0.0054 1945.0 0.0054 0.0054 2119.0 0.0054 0.0054 2369.0 0.0054 0.0054 2643.5 0.0054 0.0054 2945.0 0.0054 0.0054 3276.5 0.0054 0.0054 --2.2 -2.0 132 9.0 0.0091 0.0091 11.0 0.0091 0.0091 13.5 0.0091 0.0091 16.5 0.0091 0.0091 19.5 0.0091 0.0091 22.5 0.0091 0.0091 26.0 0.0091 0.0091 30.0 0.0091 0.0091 34.5 0.0091 0.0091 40.0 0.0091 0.0091 46.0 0.0091 0.0091 52.5 0.0089 0.0089 60.0 0.0082 0.0082 69.0 0.0075 0.0075 79.0 0.0068 0.0068 90.5 0.0061 0.0061 105.5 0.0053 0.0053 123.5 0.0046 0.0046 143.0 0.0038 0.0038 163.5 0.0032 0.0032 185.0 0.0027 0.0027 208.0 0.0022 0.0022 232.5 0.0019 0.0019 258.5 0.0017 0.0017 286.0 0.0017 0.0017 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0033 0.0033 549.5 0.0041 0.0041 639.0 0.0049 0.0049 738.0 0.0056 0.0056 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1945.0 0.0060 0.0060 2119.0 0.0060 0.0060 2369.0 0.0060 0.0060 2643.5 0.0060 0.0060 2945.0 0.0060 0.0060 3276.5 0.0060 0.0060 --2.0 -1.8 132 9.0 0.0055 0.0055 11.0 0.0055 0.0055 13.5 0.0055 0.0055 16.5 0.0055 0.0055 19.5 0.0055 0.0055 22.5 0.0055 0.0055 26.0 0.0055 0.0055 30.0 0.0055 0.0055 34.5 0.0055 0.0055 40.0 0.0055 0.0055 46.0 0.0055 0.0055 52.5 0.0054 0.0054 60.0 0.0050 0.0050 69.0 0.0046 0.0046 79.0 0.0042 0.0042 90.5 0.0038 0.0038 105.5 0.0034 0.0034 123.5 0.0030 0.0030 143.0 0.0026 0.0026 163.5 0.0022 0.0022 185.0 0.0019 0.0019 208.0 0.0016 0.0016 232.5 0.0014 0.0014 258.5 0.0012 0.0012 286.0 0.0011 0.0011 331.0 0.0011 0.0011 396.0 0.0013 0.0013 468.5 0.0017 0.0017 549.5 0.0020 0.0020 639.0 0.0024 0.0024 738.0 0.0028 0.0028 847.5 0.0030 0.0030 968.5 0.0030 0.0030 1102.0 0.0030 0.0030 1249.5 0.0030 0.0030 1412.0 0.0030 0.0030 1590.5 0.0030 0.0030 1787.0 0.0030 0.0030 1945.0 0.0030 0.0030 2119.0 0.0030 0.0030 2369.0 0.0030 0.0030 2643.5 0.0030 0.0030 2945.0 0.0030 0.0030 3276.5 0.0030 0.0030 --1.8 -1.6 132 9.0 0.0072 0.0072 11.0 0.0072 0.0072 13.5 0.0072 0.0072 16.5 0.0072 0.0072 19.5 0.0072 0.0072 22.5 0.0072 0.0072 26.0 0.0072 0.0072 30.0 0.0072 0.0072 34.5 0.0072 0.0072 40.0 0.0072 0.0072 46.0 0.0072 0.0072 52.5 0.0071 0.0071 60.0 0.0066 0.0066 69.0 0.0061 0.0061 79.0 0.0056 0.0056 90.5 0.0051 0.0051 105.5 0.0046 0.0046 123.5 0.0040 0.0040 143.0 0.0035 0.0035 163.5 0.0030 0.0030 185.0 0.0027 0.0027 208.0 0.0023 0.0023 232.5 0.0020 0.0020 258.5 0.0018 0.0018 286.0 0.0016 0.0016 331.0 0.0016 0.0016 396.0 0.0017 0.0017 468.5 0.0021 0.0021 549.5 0.0026 0.0026 639.0 0.0030 0.0030 738.0 0.0035 0.0035 847.5 0.0040 0.0040 968.5 0.0045 0.0045 1102.0 0.0049 0.0049 1249.5 0.0049 0.0049 1412.0 0.0049 0.0049 1590.5 0.0049 0.0049 1787.0 0.0049 0.0049 1945.0 0.0049 0.0049 2119.0 0.0049 0.0049 2369.0 0.0049 0.0049 2643.5 0.0049 0.0049 2945.0 0.0049 0.0049 3276.5 0.0049 0.0049 --1.6 -1.4 132 9.0 0.0041 0.0041 11.0 0.0041 0.0041 13.5 0.0041 0.0041 16.5 0.0041 0.0041 19.5 0.0041 0.0041 22.5 0.0041 0.0041 26.0 0.0041 0.0041 30.0 0.0041 0.0041 34.5 0.0041 0.0041 40.0 0.0041 0.0041 46.0 0.0041 0.0041 52.5 0.0041 0.0041 60.0 0.0038 0.0038 69.0 0.0035 0.0035 79.0 0.0032 0.0032 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0021 0.0021 163.5 0.0018 0.0018 185.0 0.0016 0.0016 208.0 0.0014 0.0014 232.5 0.0013 0.0013 258.5 0.0011 0.0011 286.0 0.0010 0.0010 331.0 0.0010 0.0010 396.0 0.0010 0.0010 468.5 0.0012 0.0012 549.5 0.0014 0.0014 639.0 0.0016 0.0016 738.0 0.0019 0.0019 847.5 0.0022 0.0022 968.5 0.0024 0.0024 1102.0 0.0026 0.0026 1249.5 0.0026 0.0026 1412.0 0.0026 0.0026 1590.5 0.0026 0.0026 1787.0 0.0026 0.0026 1945.0 0.0026 0.0026 2119.0 0.0026 0.0026 2369.0 0.0026 0.0026 2643.5 0.0026 0.0026 2945.0 0.0026 0.0026 3276.5 0.0026 0.0026 --1.4 -1.2 132 9.0 0.0007 0.0007 11.0 0.0007 0.0007 13.5 0.0007 0.0007 16.5 0.0007 0.0007 19.5 0.0007 0.0007 22.5 0.0007 0.0007 26.0 0.0007 0.0007 30.0 0.0007 0.0007 34.5 0.0007 0.0007 40.0 0.0007 0.0007 46.0 0.0007 0.0007 52.5 0.0007 0.0007 60.0 0.0007 0.0007 69.0 0.0006 0.0006 79.0 0.0006 0.0006 90.5 0.0005 0.0005 105.5 0.0005 0.0005 123.5 0.0005 0.0005 143.0 0.0004 0.0004 163.5 0.0004 0.0004 185.0 0.0004 0.0004 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0004 0.0004 847.5 0.0004 0.0004 968.5 0.0004 0.0004 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1945.0 0.0005 0.0005 2119.0 0.0005 0.0005 2369.0 0.0005 0.0005 2643.5 0.0005 0.0005 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 --1.2 -1.0 132 9.0 0.0047 0.0047 11.0 0.0047 0.0047 13.5 0.0047 0.0047 16.5 0.0047 0.0047 19.5 0.0047 0.0047 22.5 0.0047 0.0047 26.0 0.0047 0.0047 30.0 0.0047 0.0047 34.5 0.0047 0.0047 40.0 0.0047 0.0047 46.0 0.0047 0.0047 52.5 0.0046 0.0046 60.0 0.0043 0.0043 69.0 0.0039 0.0039 79.0 0.0036 0.0036 90.5 0.0033 0.0033 105.5 0.0030 0.0030 123.5 0.0026 0.0026 143.0 0.0023 0.0023 163.5 0.0020 0.0020 185.0 0.0017 0.0017 208.0 0.0014 0.0014 232.5 0.0012 0.0012 258.5 0.0009 0.0009 286.0 0.0007 0.0007 331.0 0.0004 0.0004 396.0 0.0002 0.0002 468.5 0.0005 0.0005 549.5 0.0008 0.0008 639.0 0.0012 0.0012 738.0 0.0015 0.0015 847.5 0.0018 0.0018 968.5 0.0021 0.0021 1102.0 0.0024 0.0024 1249.5 0.0027 0.0027 1412.0 0.0029 0.0029 1590.5 0.0030 0.0030 1787.0 0.0030 0.0030 1945.0 0.0030 0.0030 2119.0 0.0030 0.0030 2369.0 0.0030 0.0030 2643.5 0.0030 0.0030 2945.0 0.0030 0.0030 3276.5 0.0030 0.0030 --1.0 -0.8 132 9.0 0.0085 0.0085 11.0 0.0085 0.0085 13.5 0.0085 0.0085 16.5 0.0085 0.0085 19.5 0.0085 0.0085 22.5 0.0085 0.0085 26.0 0.0085 0.0085 30.0 0.0085 0.0085 34.5 0.0085 0.0085 40.0 0.0085 0.0085 46.0 0.0085 0.0085 52.5 0.0084 0.0084 60.0 0.0078 0.0078 69.0 0.0072 0.0072 79.0 0.0067 0.0067 90.5 0.0061 0.0061 105.5 0.0054 0.0054 123.5 0.0048 0.0048 143.0 0.0042 0.0042 163.5 0.0036 0.0036 185.0 0.0031 0.0031 208.0 0.0026 0.0026 232.5 0.0022 0.0022 258.5 0.0017 0.0017 286.0 0.0013 0.0013 331.0 0.0007 0.0007 396.0 0.0001 0.0001 468.5 0.0007 0.0007 549.5 0.0014 0.0014 639.0 0.0020 0.0020 738.0 0.0026 0.0026 847.5 0.0032 0.0032 968.5 0.0037 0.0037 1102.0 0.0042 0.0042 1249.5 0.0047 0.0047 1412.0 0.0052 0.0052 1590.5 0.0054 0.0054 1787.0 0.0054 0.0054 1945.0 0.0054 0.0054 2119.0 0.0054 0.0054 2369.0 0.0054 0.0054 2643.5 0.0054 0.0054 2945.0 0.0054 0.0054 3276.5 0.0054 0.0054 --0.8 -0.6 132 9.0 0.0104 0.0104 11.0 0.0104 0.0104 13.5 0.0104 0.0104 16.5 0.0104 0.0104 19.5 0.0104 0.0104 22.5 0.0104 0.0104 26.0 0.0104 0.0104 30.0 0.0104 0.0104 34.5 0.0104 0.0104 40.0 0.0104 0.0104 46.0 0.0104 0.0104 52.5 0.0102 0.0102 60.0 0.0095 0.0095 69.0 0.0088 0.0088 79.0 0.0082 0.0082 90.5 0.0075 0.0075 105.5 0.0067 0.0067 123.5 0.0059 0.0059 143.0 0.0052 0.0052 163.5 0.0046 0.0046 185.0 0.0039 0.0039 208.0 0.0034 0.0034 232.5 0.0028 0.0028 258.5 0.0023 0.0023 286.0 0.0018 0.0018 331.0 0.0011 0.0011 396.0 0.0002 0.0002 468.5 0.0006 0.0006 549.5 0.0014 0.0014 639.0 0.0021 0.0021 738.0 0.0028 0.0028 847.5 0.0035 0.0035 968.5 0.0042 0.0042 1102.0 0.0048 0.0048 1249.5 0.0054 0.0054 1412.0 0.0060 0.0060 1590.5 0.0062 0.0062 1787.0 0.0062 0.0062 1945.0 0.0062 0.0062 2119.0 0.0062 0.0062 2369.0 0.0062 0.0062 2643.5 0.0062 0.0062 2945.0 0.0062 0.0062 3276.5 0.0062 0.0062 --0.6 -0.4 132 9.0 0.0071 0.0071 11.0 0.0071 0.0071 13.5 0.0071 0.0071 16.5 0.0071 0.0071 19.5 0.0071 0.0071 22.5 0.0071 0.0071 26.0 0.0071 0.0071 30.0 0.0071 0.0071 34.5 0.0071 0.0071 40.0 0.0071 0.0071 46.0 0.0071 0.0071 52.5 0.0069 0.0069 60.0 0.0065 0.0065 69.0 0.0060 0.0060 79.0 0.0056 0.0056 90.5 0.0051 0.0051 105.5 0.0046 0.0046 123.5 0.0041 0.0041 143.0 0.0036 0.0036 163.5 0.0032 0.0032 185.0 0.0028 0.0028 208.0 0.0024 0.0024 232.5 0.0020 0.0020 258.5 0.0017 0.0017 286.0 0.0013 0.0013 331.0 0.0008 0.0008 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0008 0.0008 639.0 0.0013 0.0013 738.0 0.0018 0.0018 847.5 0.0022 0.0022 968.5 0.0027 0.0027 1102.0 0.0031 0.0031 1249.5 0.0035 0.0035 1412.0 0.0039 0.0039 1590.5 0.0040 0.0040 1787.0 0.0040 0.0040 1945.0 0.0040 0.0040 2119.0 0.0040 0.0040 2369.0 0.0040 0.0040 2643.5 0.0040 0.0040 2945.0 0.0040 0.0040 3276.5 0.0040 0.0040 --0.4 -0.2 132 9.0 0.0094 0.0094 11.0 0.0094 0.0094 13.5 0.0094 0.0094 16.5 0.0094 0.0094 19.5 0.0094 0.0094 22.5 0.0094 0.0094 26.0 0.0094 0.0094 30.0 0.0094 0.0094 34.5 0.0094 0.0094 40.0 0.0094 0.0094 46.0 0.0094 0.0094 52.5 0.0092 0.0092 60.0 0.0086 0.0086 69.0 0.0080 0.0080 79.0 0.0074 0.0074 90.5 0.0068 0.0068 105.5 0.0061 0.0061 123.5 0.0054 0.0054 143.0 0.0048 0.0048 163.5 0.0042 0.0042 185.0 0.0037 0.0037 208.0 0.0031 0.0031 232.5 0.0027 0.0027 258.5 0.0022 0.0022 286.0 0.0017 0.0017 331.0 0.0011 0.0011 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0011 0.0011 639.0 0.0018 0.0018 738.0 0.0024 0.0024 847.5 0.0030 0.0030 968.5 0.0036 0.0036 1102.0 0.0041 0.0041 1249.5 0.0047 0.0047 1412.0 0.0052 0.0052 1590.5 0.0054 0.0054 1787.0 0.0054 0.0054 1945.0 0.0054 0.0054 2119.0 0.0054 0.0054 2369.0 0.0054 0.0054 2643.5 0.0054 0.0054 2945.0 0.0054 0.0054 3276.5 0.0054 0.0054 --0.2 0.0 132 9.0 0.0038 0.0038 11.0 0.0038 0.0038 13.5 0.0038 0.0038 16.5 0.0038 0.0038 19.5 0.0038 0.0038 22.5 0.0038 0.0038 26.0 0.0038 0.0038 30.0 0.0038 0.0038 34.5 0.0038 0.0038 40.0 0.0038 0.0038 46.0 0.0038 0.0038 52.5 0.0037 0.0037 60.0 0.0035 0.0035 69.0 0.0032 0.0032 79.0 0.0030 0.0030 90.5 0.0027 0.0027 105.5 0.0025 0.0025 123.5 0.0022 0.0022 143.0 0.0019 0.0019 163.5 0.0017 0.0017 185.0 0.0015 0.0015 208.0 0.0013 0.0013 232.5 0.0011 0.0011 258.5 0.0009 0.0009 286.0 0.0007 0.0007 331.0 0.0005 0.0005 396.0 0.0001 0.0001 468.5 0.0002 0.0002 549.5 0.0004 0.0004 639.0 0.0007 0.0007 738.0 0.0010 0.0010 847.5 0.0012 0.0012 968.5 0.0014 0.0014 1102.0 0.0017 0.0017 1249.5 0.0019 0.0019 1412.0 0.0021 0.0021 1590.5 0.0022 0.0022 1787.0 0.0022 0.0022 1945.0 0.0022 0.0022 2119.0 0.0022 0.0022 2369.0 0.0022 0.0022 2643.5 0.0022 0.0022 2945.0 0.0022 0.0022 3276.5 0.0022 0.0022 -0.0 0.2 132 9.0 0.0038 0.0038 11.0 0.0038 0.0038 13.5 0.0038 0.0038 16.5 0.0038 0.0038 19.5 0.0038 0.0038 22.5 0.0038 0.0038 26.0 0.0038 0.0038 30.0 0.0038 0.0038 34.5 0.0038 0.0038 40.0 0.0038 0.0038 46.0 0.0038 0.0038 52.5 0.0037 0.0037 60.0 0.0035 0.0035 69.0 0.0032 0.0032 79.0 0.0030 0.0030 90.5 0.0027 0.0027 105.5 0.0025 0.0025 123.5 0.0022 0.0022 143.0 0.0019 0.0019 163.5 0.0017 0.0017 185.0 0.0015 0.0015 208.0 0.0013 0.0013 232.5 0.0011 0.0011 258.5 0.0009 0.0009 286.0 0.0007 0.0007 331.0 0.0005 0.0005 396.0 0.0001 0.0001 468.5 0.0002 0.0002 549.5 0.0004 0.0004 639.0 0.0007 0.0007 738.0 0.0010 0.0010 847.5 0.0012 0.0012 968.5 0.0014 0.0014 1102.0 0.0017 0.0017 1249.5 0.0019 0.0019 1412.0 0.0021 0.0021 1590.5 0.0022 0.0022 1787.0 0.0022 0.0022 1945.0 0.0022 0.0022 2119.0 0.0022 0.0022 2369.0 0.0022 0.0022 2643.5 0.0022 0.0022 2945.0 0.0022 0.0022 3276.5 0.0022 0.0022 -0.2 0.4 132 9.0 0.0094 0.0094 11.0 0.0094 0.0094 13.5 0.0094 0.0094 16.5 0.0094 0.0094 19.5 0.0094 0.0094 22.5 0.0094 0.0094 26.0 0.0094 0.0094 30.0 0.0094 0.0094 34.5 0.0094 0.0094 40.0 0.0094 0.0094 46.0 0.0094 0.0094 52.5 0.0092 0.0092 60.0 0.0086 0.0086 69.0 0.0080 0.0080 79.0 0.0074 0.0074 90.5 0.0068 0.0068 105.5 0.0061 0.0061 123.5 0.0054 0.0054 143.0 0.0048 0.0048 163.5 0.0042 0.0042 185.0 0.0037 0.0037 208.0 0.0031 0.0031 232.5 0.0027 0.0027 258.5 0.0022 0.0022 286.0 0.0017 0.0017 331.0 0.0011 0.0011 396.0 0.0003 0.0003 468.5 0.0004 0.0004 549.5 0.0011 0.0011 639.0 0.0018 0.0018 738.0 0.0024 0.0024 847.5 0.0030 0.0030 968.5 0.0036 0.0036 1102.0 0.0041 0.0041 1249.5 0.0047 0.0047 1412.0 0.0052 0.0052 1590.5 0.0054 0.0054 1787.0 0.0054 0.0054 1945.0 0.0054 0.0054 2119.0 0.0054 0.0054 2369.0 0.0054 0.0054 2643.5 0.0054 0.0054 2945.0 0.0054 0.0054 3276.5 0.0054 0.0054 -0.4 0.6 132 9.0 0.0071 0.0071 11.0 0.0071 0.0071 13.5 0.0071 0.0071 16.5 0.0071 0.0071 19.5 0.0071 0.0071 22.5 0.0071 0.0071 26.0 0.0071 0.0071 30.0 0.0071 0.0071 34.5 0.0071 0.0071 40.0 0.0071 0.0071 46.0 0.0071 0.0071 52.5 0.0069 0.0069 60.0 0.0065 0.0065 69.0 0.0060 0.0060 79.0 0.0056 0.0056 90.5 0.0051 0.0051 105.5 0.0046 0.0046 123.5 0.0041 0.0041 143.0 0.0036 0.0036 163.5 0.0032 0.0032 185.0 0.0028 0.0028 208.0 0.0024 0.0024 232.5 0.0020 0.0020 258.5 0.0017 0.0017 286.0 0.0013 0.0013 331.0 0.0008 0.0008 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0008 0.0008 639.0 0.0013 0.0013 738.0 0.0018 0.0018 847.5 0.0022 0.0022 968.5 0.0027 0.0027 1102.0 0.0031 0.0031 1249.5 0.0035 0.0035 1412.0 0.0039 0.0039 1590.5 0.0040 0.0040 1787.0 0.0040 0.0040 1945.0 0.0040 0.0040 2119.0 0.0040 0.0040 2369.0 0.0040 0.0040 2643.5 0.0040 0.0040 2945.0 0.0040 0.0040 3276.5 0.0040 0.0040 -0.6 0.8 132 9.0 0.0104 0.0104 11.0 0.0104 0.0104 13.5 0.0104 0.0104 16.5 0.0104 0.0104 19.5 0.0104 0.0104 22.5 0.0104 0.0104 26.0 0.0104 0.0104 30.0 0.0104 0.0104 34.5 0.0104 0.0104 40.0 0.0104 0.0104 46.0 0.0104 0.0104 52.5 0.0102 0.0102 60.0 0.0095 0.0095 69.0 0.0088 0.0088 79.0 0.0082 0.0082 90.5 0.0075 0.0075 105.5 0.0067 0.0067 123.5 0.0059 0.0059 143.0 0.0052 0.0052 163.5 0.0046 0.0046 185.0 0.0039 0.0039 208.0 0.0034 0.0034 232.5 0.0028 0.0028 258.5 0.0023 0.0023 286.0 0.0018 0.0018 331.0 0.0011 0.0011 396.0 0.0002 0.0002 468.5 0.0006 0.0006 549.5 0.0014 0.0014 639.0 0.0021 0.0021 738.0 0.0028 0.0028 847.5 0.0035 0.0035 968.5 0.0042 0.0042 1102.0 0.0048 0.0048 1249.5 0.0054 0.0054 1412.0 0.0060 0.0060 1590.5 0.0062 0.0062 1787.0 0.0062 0.0062 1945.0 0.0062 0.0062 2119.0 0.0062 0.0062 2369.0 0.0062 0.0062 2643.5 0.0062 0.0062 2945.0 0.0062 0.0062 3276.5 0.0062 0.0062 -0.8 1.0 132 9.0 0.0085 0.0085 11.0 0.0085 0.0085 13.5 0.0085 0.0085 16.5 0.0085 0.0085 19.5 0.0085 0.0085 22.5 0.0085 0.0085 26.0 0.0085 0.0085 30.0 0.0085 0.0085 34.5 0.0085 0.0085 40.0 0.0085 0.0085 46.0 0.0085 0.0085 52.5 0.0084 0.0084 60.0 0.0078 0.0078 69.0 0.0072 0.0072 79.0 0.0067 0.0067 90.5 0.0061 0.0061 105.5 0.0054 0.0054 123.5 0.0048 0.0048 143.0 0.0042 0.0042 163.5 0.0036 0.0036 185.0 0.0031 0.0031 208.0 0.0026 0.0026 232.5 0.0022 0.0022 258.5 0.0017 0.0017 286.0 0.0013 0.0013 331.0 0.0007 0.0007 396.0 0.0001 0.0001 468.5 0.0007 0.0007 549.5 0.0014 0.0014 639.0 0.0020 0.0020 738.0 0.0026 0.0026 847.5 0.0032 0.0032 968.5 0.0037 0.0037 1102.0 0.0042 0.0042 1249.5 0.0047 0.0047 1412.0 0.0052 0.0052 1590.5 0.0054 0.0054 1787.0 0.0054 0.0054 1945.0 0.0054 0.0054 2119.0 0.0054 0.0054 2369.0 0.0054 0.0054 2643.5 0.0054 0.0054 2945.0 0.0054 0.0054 3276.5 0.0054 0.0054 -1.0 1.2 132 9.0 0.0047 0.0047 11.0 0.0047 0.0047 13.5 0.0047 0.0047 16.5 0.0047 0.0047 19.5 0.0047 0.0047 22.5 0.0047 0.0047 26.0 0.0047 0.0047 30.0 0.0047 0.0047 34.5 0.0047 0.0047 40.0 0.0047 0.0047 46.0 0.0047 0.0047 52.5 0.0046 0.0046 60.0 0.0043 0.0043 69.0 0.0039 0.0039 79.0 0.0036 0.0036 90.5 0.0033 0.0033 105.5 0.0030 0.0030 123.5 0.0026 0.0026 143.0 0.0023 0.0023 163.5 0.0020 0.0020 185.0 0.0017 0.0017 208.0 0.0014 0.0014 232.5 0.0012 0.0012 258.5 0.0009 0.0009 286.0 0.0007 0.0007 331.0 0.0004 0.0004 396.0 0.0002 0.0002 468.5 0.0005 0.0005 549.5 0.0008 0.0008 639.0 0.0012 0.0012 738.0 0.0015 0.0015 847.5 0.0018 0.0018 968.5 0.0021 0.0021 1102.0 0.0024 0.0024 1249.5 0.0027 0.0027 1412.0 0.0029 0.0029 1590.5 0.0030 0.0030 1787.0 0.0030 0.0030 1945.0 0.0030 0.0030 2119.0 0.0030 0.0030 2369.0 0.0030 0.0030 2643.5 0.0030 0.0030 2945.0 0.0030 0.0030 3276.5 0.0030 0.0030 -1.2 1.4 132 9.0 0.0007 0.0007 11.0 0.0007 0.0007 13.5 0.0007 0.0007 16.5 0.0007 0.0007 19.5 0.0007 0.0007 22.5 0.0007 0.0007 26.0 0.0007 0.0007 30.0 0.0007 0.0007 34.5 0.0007 0.0007 40.0 0.0007 0.0007 46.0 0.0007 0.0007 52.5 0.0007 0.0007 60.0 0.0007 0.0007 69.0 0.0006 0.0006 79.0 0.0006 0.0006 90.5 0.0005 0.0005 105.5 0.0005 0.0005 123.5 0.0005 0.0005 143.0 0.0004 0.0004 163.5 0.0004 0.0004 185.0 0.0004 0.0004 208.0 0.0003 0.0003 232.5 0.0003 0.0003 258.5 0.0003 0.0003 286.0 0.0003 0.0003 331.0 0.0003 0.0003 396.0 0.0003 0.0003 468.5 0.0003 0.0003 549.5 0.0003 0.0003 639.0 0.0003 0.0003 738.0 0.0004 0.0004 847.5 0.0004 0.0004 968.5 0.0004 0.0004 1102.0 0.0005 0.0005 1249.5 0.0005 0.0005 1412.0 0.0005 0.0005 1590.5 0.0005 0.0005 1787.0 0.0005 0.0005 1945.0 0.0005 0.0005 2119.0 0.0005 0.0005 2369.0 0.0005 0.0005 2643.5 0.0005 0.0005 2945.0 0.0005 0.0005 3276.5 0.0005 0.0005 -1.4 1.6 132 9.0 0.0041 0.0041 11.0 0.0041 0.0041 13.5 0.0041 0.0041 16.5 0.0041 0.0041 19.5 0.0041 0.0041 22.5 0.0041 0.0041 26.0 0.0041 0.0041 30.0 0.0041 0.0041 34.5 0.0041 0.0041 40.0 0.0041 0.0041 46.0 0.0041 0.0041 52.5 0.0041 0.0041 60.0 0.0038 0.0038 69.0 0.0035 0.0035 79.0 0.0032 0.0032 90.5 0.0030 0.0030 105.5 0.0027 0.0027 123.5 0.0024 0.0024 143.0 0.0021 0.0021 163.5 0.0018 0.0018 185.0 0.0016 0.0016 208.0 0.0014 0.0014 232.5 0.0013 0.0013 258.5 0.0011 0.0011 286.0 0.0010 0.0010 331.0 0.0010 0.0010 396.0 0.0010 0.0010 468.5 0.0012 0.0012 549.5 0.0014 0.0014 639.0 0.0016 0.0016 738.0 0.0019 0.0019 847.5 0.0022 0.0022 968.5 0.0024 0.0024 1102.0 0.0026 0.0026 1249.5 0.0026 0.0026 1412.0 0.0026 0.0026 1590.5 0.0026 0.0026 1787.0 0.0026 0.0026 1945.0 0.0026 0.0026 2119.0 0.0026 0.0026 2369.0 0.0026 0.0026 2643.5 0.0026 0.0026 2945.0 0.0026 0.0026 3276.5 0.0026 0.0026 -1.6 1.8 132 9.0 0.0072 0.0072 11.0 0.0072 0.0072 13.5 0.0072 0.0072 16.5 0.0072 0.0072 19.5 0.0072 0.0072 22.5 0.0072 0.0072 26.0 0.0072 0.0072 30.0 0.0072 0.0072 34.5 0.0072 0.0072 40.0 0.0072 0.0072 46.0 0.0072 0.0072 52.5 0.0071 0.0071 60.0 0.0066 0.0066 69.0 0.0061 0.0061 79.0 0.0056 0.0056 90.5 0.0051 0.0051 105.5 0.0046 0.0046 123.5 0.0040 0.0040 143.0 0.0035 0.0035 163.5 0.0030 0.0030 185.0 0.0027 0.0027 208.0 0.0023 0.0023 232.5 0.0020 0.0020 258.5 0.0018 0.0018 286.0 0.0016 0.0016 331.0 0.0016 0.0016 396.0 0.0017 0.0017 468.5 0.0021 0.0021 549.5 0.0026 0.0026 639.0 0.0030 0.0030 738.0 0.0035 0.0035 847.5 0.0040 0.0040 968.5 0.0045 0.0045 1102.0 0.0049 0.0049 1249.5 0.0049 0.0049 1412.0 0.0049 0.0049 1590.5 0.0049 0.0049 1787.0 0.0049 0.0049 1945.0 0.0049 0.0049 2119.0 0.0049 0.0049 2369.0 0.0049 0.0049 2643.5 0.0049 0.0049 2945.0 0.0049 0.0049 3276.5 0.0049 0.0049 -1.8 2.0 132 9.0 0.0055 0.0055 11.0 0.0055 0.0055 13.5 0.0055 0.0055 16.5 0.0055 0.0055 19.5 0.0055 0.0055 22.5 0.0055 0.0055 26.0 0.0055 0.0055 30.0 0.0055 0.0055 34.5 0.0055 0.0055 40.0 0.0055 0.0055 46.0 0.0055 0.0055 52.5 0.0054 0.0054 60.0 0.0050 0.0050 69.0 0.0046 0.0046 79.0 0.0042 0.0042 90.5 0.0038 0.0038 105.5 0.0034 0.0034 123.5 0.0030 0.0030 143.0 0.0026 0.0026 163.5 0.0022 0.0022 185.0 0.0019 0.0019 208.0 0.0016 0.0016 232.5 0.0014 0.0014 258.5 0.0012 0.0012 286.0 0.0011 0.0011 331.0 0.0011 0.0011 396.0 0.0013 0.0013 468.5 0.0017 0.0017 549.5 0.0020 0.0020 639.0 0.0024 0.0024 738.0 0.0028 0.0028 847.5 0.0030 0.0030 968.5 0.0030 0.0030 1102.0 0.0030 0.0030 1249.5 0.0030 0.0030 1412.0 0.0030 0.0030 1590.5 0.0030 0.0030 1787.0 0.0030 0.0030 1945.0 0.0030 0.0030 2119.0 0.0030 0.0030 2369.0 0.0030 0.0030 2643.5 0.0030 0.0030 2945.0 0.0030 0.0030 3276.5 0.0030 0.0030 -2.0 2.2 132 9.0 0.0091 0.0091 11.0 0.0091 0.0091 13.5 0.0091 0.0091 16.5 0.0091 0.0091 19.5 0.0091 0.0091 22.5 0.0091 0.0091 26.0 0.0091 0.0091 30.0 0.0091 0.0091 34.5 0.0091 0.0091 40.0 0.0091 0.0091 46.0 0.0091 0.0091 52.5 0.0089 0.0089 60.0 0.0082 0.0082 69.0 0.0075 0.0075 79.0 0.0068 0.0068 90.5 0.0061 0.0061 105.5 0.0053 0.0053 123.5 0.0046 0.0046 143.0 0.0038 0.0038 163.5 0.0032 0.0032 185.0 0.0027 0.0027 208.0 0.0022 0.0022 232.5 0.0019 0.0019 258.5 0.0017 0.0017 286.0 0.0017 0.0017 331.0 0.0019 0.0019 396.0 0.0026 0.0026 468.5 0.0033 0.0033 549.5 0.0041 0.0041 639.0 0.0049 0.0049 738.0 0.0056 0.0056 847.5 0.0060 0.0060 968.5 0.0060 0.0060 1102.0 0.0060 0.0060 1249.5 0.0060 0.0060 1412.0 0.0060 0.0060 1590.5 0.0060 0.0060 1787.0 0.0060 0.0060 1945.0 0.0060 0.0060 2119.0 0.0060 0.0060 2369.0 0.0060 0.0060 2643.5 0.0060 0.0060 2945.0 0.0060 0.0060 3276.5 0.0060 0.0060 -2.2 2.4 132 9.0 0.0093 0.0093 11.0 0.0093 0.0093 13.5 0.0093 0.0093 16.5 0.0093 0.0093 19.5 0.0093 0.0093 22.5 0.0093 0.0093 26.0 0.0093 0.0093 30.0 0.0093 0.0093 34.5 0.0093 0.0093 40.0 0.0093 0.0093 46.0 0.0093 0.0093 52.5 0.0090 0.0090 60.0 0.0084 0.0084 69.0 0.0076 0.0076 79.0 0.0070 0.0070 90.5 0.0063 0.0063 105.5 0.0056 0.0056 123.5 0.0048 0.0048 143.0 0.0042 0.0042 163.5 0.0036 0.0036 185.0 0.0032 0.0032 208.0 0.0029 0.0029 232.5 0.0027 0.0027 258.5 0.0027 0.0027 286.0 0.0028 0.0028 331.0 0.0031 0.0031 396.0 0.0036 0.0036 468.5 0.0043 0.0043 549.5 0.0051 0.0051 639.0 0.0054 0.0054 738.0 0.0054 0.0054 847.5 0.0054 0.0054 968.5 0.0054 0.0054 1102.0 0.0054 0.0054 1249.5 0.0054 0.0054 1412.0 0.0054 0.0054 1590.5 0.0054 0.0054 1787.0 0.0054 0.0054 1945.0 0.0054 0.0054 2119.0 0.0054 0.0054 2369.0 0.0054 0.0054 2643.5 0.0054 0.0054 2945.0 0.0054 0.0054 3276.5 0.0054 0.0054 -2.4 2.6 132 9.0 0.0182 0.0182 11.0 0.0182 0.0182 13.5 0.0182 0.0182 16.5 0.0182 0.0182 19.5 0.0182 0.0182 22.5 0.0182 0.0182 26.0 0.0182 0.0182 30.0 0.0182 0.0182 34.5 0.0182 0.0182 40.0 0.0182 0.0182 46.0 0.0182 0.0182 52.5 0.0177 0.0177 60.0 0.0164 0.0164 69.0 0.0150 0.0150 79.0 0.0136 0.0136 90.5 0.0123 0.0123 105.5 0.0109 0.0109 123.5 0.0096 0.0096 143.0 0.0086 0.0086 163.5 0.0079 0.0079 185.0 0.0075 0.0075 208.0 0.0074 0.0074 232.5 0.0075 0.0075 258.5 0.0079 0.0079 286.0 0.0084 0.0084 331.0 0.0094 0.0094 396.0 0.0109 0.0109 468.5 0.0120 0.0120 549.5 0.0127 0.0127 639.0 0.0129 0.0129 738.0 0.0129 0.0129 847.5 0.0129 0.0129 968.5 0.0129 0.0129 1102.0 0.0129 0.0129 1249.5 0.0129 0.0129 1412.0 0.0129 0.0129 1590.5 0.0129 0.0129 1787.0 0.0129 0.0129 1945.0 0.0129 0.0129 2119.0 0.0129 0.0129 2369.0 0.0129 0.0129 2643.5 0.0129 0.0129 2945.0 0.0129 0.0129 3276.5 0.0129 0.0129 -2.6 2.8 132 9.0 0.0173 0.0173 11.0 0.0173 0.0173 13.5 0.0173 0.0173 16.5 0.0173 0.0173 19.5 0.0173 0.0173 22.5 0.0173 0.0173 26.0 0.0173 0.0173 30.0 0.0173 0.0173 34.5 0.0173 0.0173 40.0 0.0173 0.0173 46.0 0.0173 0.0173 52.5 0.0169 0.0169 60.0 0.0157 0.0157 69.0 0.0144 0.0144 79.0 0.0133 0.0133 90.5 0.0121 0.0121 105.5 0.0110 0.0110 123.5 0.0100 0.0100 143.0 0.0092 0.0092 163.5 0.0087 0.0087 185.0 0.0085 0.0085 208.0 0.0085 0.0085 232.5 0.0087 0.0087 258.5 0.0090 0.0090 286.0 0.0095 0.0095 331.0 0.0104 0.0104 396.0 0.0117 0.0117 468.5 0.0124 0.0124 549.5 0.0124 0.0124 639.0 0.0124 0.0124 738.0 0.0124 0.0124 847.5 0.0124 0.0124 968.5 0.0124 0.0124 1102.0 0.0124 0.0124 1249.5 0.0124 0.0124 1412.0 0.0124 0.0124 1590.5 0.0124 0.0124 1787.0 0.0124 0.0124 1945.0 0.0124 0.0124 2119.0 0.0124 0.0124 2369.0 0.0124 0.0124 2643.5 0.0124 0.0124 2945.0 0.0124 0.0124 3276.5 0.0124 0.0124 -2.8 3.0 132 9.0 0.0215 0.0215 11.0 0.0215 0.0215 13.5 0.0215 0.0215 16.5 0.0215 0.0215 19.5 0.0215 0.0215 22.5 0.0215 0.0215 26.0 0.0215 0.0215 30.0 0.0215 0.0215 34.5 0.0215 0.0215 40.0 0.0215 0.0215 46.0 0.0215 0.0215 52.5 0.0214 0.0214 60.0 0.0210 0.0210 69.0 0.0208 0.0208 79.0 0.0205 0.0205 90.5 0.0204 0.0204 105.5 0.0202 0.0202 123.5 0.0201 0.0201 143.0 0.0201 0.0201 163.5 0.0201 0.0201 185.0 0.0201 0.0201 208.0 0.0202 0.0202 232.5 0.0203 0.0203 258.5 0.0204 0.0204 286.0 0.0205 0.0205 331.0 0.0207 0.0207 396.0 0.0207 0.0207 468.5 0.0207 0.0207 549.5 0.0207 0.0207 639.0 0.0207 0.0207 738.0 0.0207 0.0207 847.5 0.0207 0.0207 968.5 0.0207 0.0207 1102.0 0.0207 0.0207 1249.5 0.0207 0.0207 1412.0 0.0207 0.0207 1590.5 0.0207 0.0207 1787.0 0.0207 0.0207 1945.0 0.0207 0.0207 2119.0 0.0207 0.0207 2369.0 0.0207 0.0207 2643.5 0.0207 0.0207 2945.0 0.0207 0.0207 3276.5 0.0207 0.0207 -3.0 3.5 132 9.0 0.0223 0.0223 11.0 0.0223 0.0223 13.5 0.0223 0.0223 16.5 0.0223 0.0223 19.5 0.0223 0.0223 22.5 0.0223 0.0223 26.0 0.0223 0.0223 30.0 0.0223 0.0223 34.5 0.0223 0.0223 40.0 0.0223 0.0223 46.0 0.0223 0.0223 52.5 0.0222 0.0222 60.0 0.0221 0.0221 69.0 0.0220 0.0220 79.0 0.0219 0.0219 90.5 0.0218 0.0218 105.5 0.0217 0.0217 123.5 0.0217 0.0217 143.0 0.0217 0.0217 163.5 0.0218 0.0218 185.0 0.0218 0.0218 208.0 0.0219 0.0219 232.5 0.0220 0.0220 258.5 0.0220 0.0220 286.0 0.0220 0.0220 331.0 0.0220 0.0220 396.0 0.0220 0.0220 468.5 0.0220 0.0220 549.5 0.0220 0.0220 639.0 0.0220 0.0220 738.0 0.0220 0.0220 847.5 0.0220 0.0220 968.5 0.0220 0.0220 1102.0 0.0220 0.0220 1249.5 0.0220 0.0220 1412.0 0.0220 0.0220 1590.5 0.0220 0.0220 1787.0 0.0220 0.0220 1945.0 0.0220 0.0220 2119.0 0.0220 0.0220 2369.0 0.0220 0.0220 2643.5 0.0220 0.0220 2945.0 0.0220 0.0220 3276.5 0.0220 0.0220 -3.5 4.0 132 9.0 0.0390 0.0390 11.0 0.0390 0.0390 13.5 0.0390 0.0390 16.5 0.0390 0.0390 19.5 0.0390 0.0390 22.5 0.0390 0.0390 26.0 0.0390 0.0390 30.0 0.0390 0.0390 34.5 0.0390 0.0390 40.0 0.0390 0.0390 46.0 0.0390 0.0390 52.5 0.0381 0.0381 60.0 0.0359 0.0359 69.0 0.0341 0.0341 79.0 0.0331 0.0331 90.5 0.0329 0.0329 105.5 0.0338 0.0338 123.5 0.0360 0.0360 143.0 0.0363 0.0363 163.5 0.0363 0.0363 185.0 0.0363 0.0363 208.0 0.0363 0.0363 232.5 0.0363 0.0363 258.5 0.0363 0.0363 286.0 0.0363 0.0363 331.0 0.0363 0.0363 396.0 0.0363 0.0363 468.5 0.0363 0.0363 549.5 0.0363 0.0363 639.0 0.0363 0.0363 738.0 0.0363 0.0363 847.5 0.0363 0.0363 968.5 0.0363 0.0363 1102.0 0.0363 0.0363 1249.5 0.0363 0.0363 1412.0 0.0363 0.0363 1590.5 0.0363 0.0363 1787.0 0.0363 0.0363 1945.0 0.0363 0.0363 2119.0 0.0363 0.0363 2369.0 0.0363 0.0363 2643.5 0.0363 0.0363 2945.0 0.0363 0.0363 3276.5 0.0363 0.0363 -4.0 4.4 132 9.0 0.0390 0.0390 11.0 0.0390 0.0390 13.5 0.0390 0.0390 16.5 0.0390 0.0390 19.5 0.0390 0.0390 22.5 0.0390 0.0390 26.0 0.0390 0.0390 30.0 0.0390 0.0390 34.5 0.0390 0.0390 40.0 0.0390 0.0390 46.0 0.0390 0.0390 52.5 0.0381 0.0381 60.0 0.0359 0.0359 69.0 0.0341 0.0341 79.0 0.0331 0.0331 90.5 0.0329 0.0329 105.5 0.0338 0.0338 123.5 0.0355 0.0355 143.0 0.0355 0.0355 163.5 0.0355 0.0355 185.0 0.0355 0.0355 208.0 0.0355 0.0355 232.5 0.0355 0.0355 258.5 0.0355 0.0355 286.0 0.0355 0.0355 331.0 0.0355 0.0355 396.0 0.0355 0.0355 468.5 0.0355 0.0355 549.5 0.0355 0.0355 639.0 0.0355 0.0355 738.0 0.0355 0.0355 847.5 0.0355 0.0355 968.5 0.0355 0.0355 1102.0 0.0355 0.0355 1249.5 0.0355 0.0355 1412.0 0.0355 0.0355 1590.5 0.0355 0.0355 1787.0 0.0355 0.0355 1945.0 0.0355 0.0355 2119.0 0.0355 0.0355 2369.0 0.0355 0.0355 2643.5 0.0355 0.0355 2945.0 0.0355 0.0355 3276.5 0.0355 0.0355 -4.4 5.0 132 9.0 0.0390 0.0390 11.0 0.0390 0.0390 13.5 0.0390 0.0390 16.5 0.0390 0.0390 19.5 0.0390 0.0390 22.5 0.0390 0.0390 26.0 0.0390 0.0390 30.0 0.0390 0.0390 34.5 0.0390 0.0390 40.0 0.0390 0.0390 46.0 0.0390 0.0390 52.5 0.0381 0.0381 60.0 0.0359 0.0359 69.0 0.0341 0.0341 79.0 0.0336 0.0336 90.5 0.0336 0.0336 105.5 0.0336 0.0336 123.5 0.0336 0.0336 143.0 0.0336 0.0336 163.5 0.0336 0.0336 185.0 0.0336 0.0336 208.0 0.0336 0.0336 232.5 0.0336 0.0336 258.5 0.0336 0.0336 286.0 0.0336 0.0336 331.0 0.0336 0.0336 396.0 0.0336 0.0336 468.5 0.0336 0.0336 549.5 0.0336 0.0336 639.0 0.0336 0.0336 738.0 0.0336 0.0336 847.5 0.0336 0.0336 968.5 0.0336 0.0336 1102.0 0.0336 0.0336 1249.5 0.0336 0.0336 1412.0 0.0336 0.0336 1590.5 0.0336 0.0336 1787.0 0.0336 0.0336 1945.0 0.0336 0.0336 2119.0 0.0336 0.0336 2369.0 0.0336 0.0336 2643.5 0.0336 0.0336 2945.0 0.0336 0.0336 3276.5 0.0336 0.0336 -5.0 5.4 132 9.0 0.0390 0.0390 11.0 0.0390 0.0390 13.5 0.0390 0.0390 16.5 0.0390 0.0390 19.5 0.0390 0.0390 22.5 0.0390 0.0390 26.0 0.0390 0.0390 30.0 0.0390 0.0390 34.5 0.0390 0.0390 40.0 0.0390 0.0390 46.0 0.0390 0.0390 52.5 0.0390 0.0390 60.0 0.0390 0.0390 69.0 0.0390 0.0390 79.0 0.0390 0.0390 90.5 0.0390 0.0390 105.5 0.0390 0.0390 123.5 0.0390 0.0390 143.0 0.0390 0.0390 163.5 0.0390 0.0390 185.0 0.0390 0.0390 208.0 0.0390 0.0390 232.5 0.0390 0.0390 258.5 0.0390 0.0390 286.0 0.0390 0.0390 331.0 0.0390 0.0390 396.0 0.0390 0.0390 468.5 0.0390 0.0390 549.5 0.0390 0.0390 639.0 0.0390 0.0390 738.0 0.0390 0.0390 847.5 0.0390 0.0390 968.5 0.0390 0.0390 1102.0 0.0390 0.0390 1249.5 0.0390 0.0390 1412.0 0.0390 0.0390 1590.5 0.0390 0.0390 1787.0 0.0390 0.0390 1945.0 0.0390 0.0390 2119.0 0.0390 0.0390 2369.0 0.0390 0.0390 2643.5 0.0390 0.0390 2945.0 0.0390 0.0390 3276.5 0.0390 0.0390 -[SubTotalPt] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --5.0 -4.4 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --4.4 -4.0 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --4.0 -3.5 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --3.5 -3.0 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --3.0 -2.8 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --2.8 -2.6 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --2.6 -2.4 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --2.4 -2.2 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --2.2 -2.0 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --2.0 -1.8 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --1.8 -1.6 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --1.6 -1.4 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --1.4 -1.2 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --1.2 -1.0 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --1.0 -0.8 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --0.8 -0.6 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --0.6 -0.4 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --0.4 -0.2 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 --0.2 0.0 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -0.0 0.2 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -0.2 0.4 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -0.4 0.6 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -0.6 0.8 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -0.8 1.0 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -1.0 1.2 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -1.2 1.4 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -1.4 1.6 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -1.6 1.8 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -1.8 2.0 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -2.0 2.2 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -2.2 2.4 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -2.4 2.6 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -2.6 2.8 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -2.8 3.0 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -3.0 3.5 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -3.5 4.0 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -4.0 4.4 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -4.4 5.0 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -5.0 5.4 132 9.0 0.0154 0.0154 11.0 0.0171 0.0171 13.5 0.0184 0.0184 16.5 0.0185 0.0185 19.5 0.0178 0.0178 22.5 0.0168 0.0168 26.0 0.0157 0.0157 30.0 0.0144 0.0144 34.5 0.0131 0.0131 40.0 0.0118 0.0118 46.0 0.0105 0.0105 52.5 0.0093 0.0093 60.0 0.0082 0.0082 69.0 0.0071 0.0071 79.0 0.0060 0.0060 90.5 0.0050 0.0050 105.5 0.0039 0.0039 123.5 0.0029 0.0029 143.0 0.0020 0.0020 163.5 0.0011 0.0011 185.0 0.0004 0.0004 208.0 0.0002 0.0002 232.5 0.0008 0.0008 258.5 0.0014 0.0014 286.0 0.0019 0.0019 331.0 0.0026 0.0026 396.0 0.0034 0.0034 468.5 0.0042 0.0042 549.5 0.0049 0.0049 639.0 0.0055 0.0055 738.0 0.0061 0.0061 847.5 0.0067 0.0067 968.5 0.0072 0.0072 1102.0 0.0077 0.0077 1249.5 0.0082 0.0082 1412.0 0.0086 0.0086 1590.5 0.0091 0.0091 1787.0 0.0095 0.0095 1945.0 0.0098 0.0098 2119.0 0.0101 0.0101 2369.0 0.0105 0.0105 2643.5 0.0109 0.0109 2945.0 0.0112 0.0112 3276.5 0.0116 0.0116 -[SubTotalMC] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0633 0.0633 11.0 0.0602 0.0602 13.5 0.0577 0.0577 16.5 0.0554 0.0554 19.5 0.0536 0.0536 22.5 0.0521 0.0521 26.0 0.0507 0.0507 30.0 0.0495 0.0495 34.5 0.0484 0.0484 40.0 0.0473 0.0473 46.0 0.0465 0.0465 52.5 0.0457 0.0457 60.0 0.0450 0.0450 69.0 0.0444 0.0444 79.0 0.0439 0.0439 90.5 0.0434 0.0434 105.5 0.0430 0.0430 123.5 0.0426 0.0426 143.0 0.0423 0.0423 163.5 0.0420 0.0420 185.0 0.0418 0.0418 208.0 0.0417 0.0417 232.5 0.0415 0.0415 258.5 0.0414 0.0414 286.0 0.0414 0.0414 331.0 0.0412 0.0412 396.0 0.0412 0.0412 468.5 0.0411 0.0411 549.5 0.0412 0.0412 639.0 0.0413 0.0413 738.0 0.0414 0.0414 847.5 0.0415 0.0415 968.5 0.0416 0.0416 1102.0 0.0417 0.0417 1249.5 0.0419 0.0419 1412.0 0.0420 0.0420 1590.5 0.0421 0.0421 1787.0 0.0422 0.0422 1945.0 0.0423 0.0423 2119.0 0.0424 0.0424 2369.0 0.0425 0.0425 2643.5 0.0426 0.0426 2945.0 0.0427 0.0427 3276.5 0.0429 0.0429 --5.0 -4.4 132 9.0 0.0629 0.0629 11.0 0.0598 0.0598 13.5 0.0574 0.0574 16.5 0.0552 0.0552 19.5 0.0534 0.0534 22.5 0.0520 0.0520 26.0 0.0506 0.0506 30.0 0.0494 0.0494 34.5 0.0483 0.0483 40.0 0.0473 0.0473 46.0 0.0464 0.0464 52.5 0.0450 0.0450 60.0 0.0423 0.0423 69.0 0.0402 0.0402 79.0 0.0392 0.0392 90.5 0.0387 0.0387 105.5 0.0381 0.0381 123.5 0.0377 0.0377 143.0 0.0374 0.0374 163.5 0.0371 0.0371 185.0 0.0369 0.0369 208.0 0.0367 0.0367 232.5 0.0365 0.0365 258.5 0.0364 0.0364 286.0 0.0363 0.0363 331.0 0.0362 0.0362 396.0 0.0361 0.0361 468.5 0.0360 0.0360 549.5 0.0361 0.0361 639.0 0.0362 0.0362 738.0 0.0364 0.0364 847.5 0.0365 0.0365 968.5 0.0366 0.0366 1102.0 0.0367 0.0367 1249.5 0.0369 0.0369 1412.0 0.0370 0.0370 1590.5 0.0371 0.0371 1787.0 0.0373 0.0373 1945.0 0.0374 0.0374 2119.0 0.0375 0.0375 2369.0 0.0376 0.0376 2643.5 0.0377 0.0377 2945.0 0.0379 0.0379 3276.5 0.0380 0.0380 --4.4 -4.0 132 9.0 0.0635 0.0635 11.0 0.0603 0.0603 13.5 0.0577 0.0577 16.5 0.0554 0.0554 19.5 0.0536 0.0536 22.5 0.0521 0.0521 26.0 0.0507 0.0507 30.0 0.0495 0.0495 34.5 0.0484 0.0484 40.0 0.0473 0.0473 46.0 0.0464 0.0464 52.5 0.0450 0.0450 60.0 0.0424 0.0424 69.0 0.0402 0.0402 79.0 0.0387 0.0387 90.5 0.0381 0.0381 105.5 0.0384 0.0384 123.5 0.0394 0.0394 143.0 0.0391 0.0391 163.5 0.0388 0.0388 185.0 0.0386 0.0386 208.0 0.0384 0.0384 232.5 0.0383 0.0383 258.5 0.0381 0.0381 286.0 0.0381 0.0381 331.0 0.0379 0.0379 396.0 0.0378 0.0378 468.5 0.0378 0.0378 549.5 0.0379 0.0379 639.0 0.0380 0.0380 738.0 0.0381 0.0381 847.5 0.0382 0.0382 968.5 0.0384 0.0384 1102.0 0.0385 0.0385 1249.5 0.0386 0.0386 1412.0 0.0387 0.0387 1590.5 0.0389 0.0389 1787.0 0.0390 0.0390 1945.0 0.0391 0.0391 2119.0 0.0392 0.0392 2369.0 0.0393 0.0393 2643.5 0.0394 0.0394 2945.0 0.0396 0.0396 3276.5 0.0397 0.0397 --4.0 -3.5 132 9.0 0.0716 0.0716 11.0 0.0662 0.0662 13.5 0.0618 0.0618 16.5 0.0582 0.0582 19.5 0.0556 0.0556 22.5 0.0537 0.0537 26.0 0.0519 0.0519 30.0 0.0504 0.0504 34.5 0.0491 0.0491 40.0 0.0479 0.0479 46.0 0.0468 0.0468 52.5 0.0453 0.0453 60.0 0.0426 0.0426 69.0 0.0404 0.0404 79.0 0.0389 0.0389 90.5 0.0382 0.0382 105.5 0.0385 0.0385 123.5 0.0399 0.0399 143.0 0.0399 0.0399 163.5 0.0396 0.0396 185.0 0.0394 0.0394 208.0 0.0392 0.0392 232.5 0.0391 0.0391 258.5 0.0390 0.0390 286.0 0.0389 0.0389 331.0 0.0388 0.0388 396.0 0.0387 0.0387 468.5 0.0386 0.0386 549.5 0.0387 0.0387 639.0 0.0388 0.0388 738.0 0.0389 0.0389 847.5 0.0390 0.0390 968.5 0.0392 0.0392 1102.0 0.0393 0.0393 1249.5 0.0394 0.0394 1412.0 0.0395 0.0395 1590.5 0.0396 0.0396 1787.0 0.0398 0.0398 1945.0 0.0399 0.0399 2119.0 0.0400 0.0400 2369.0 0.0401 0.0401 2643.5 0.0402 0.0402 2945.0 0.0403 0.0403 3276.5 0.0405 0.0405 --3.5 -3.0 132 9.0 0.0703 0.0703 11.0 0.0629 0.0629 13.5 0.0566 0.0566 16.5 0.0514 0.0514 19.5 0.0477 0.0477 22.5 0.0449 0.0449 26.0 0.0423 0.0423 30.0 0.0401 0.0401 34.5 0.0381 0.0381 40.0 0.0363 0.0363 46.0 0.0348 0.0348 52.5 0.0335 0.0335 60.0 0.0323 0.0323 69.0 0.0312 0.0312 79.0 0.0302 0.0302 90.5 0.0294 0.0294 105.5 0.0286 0.0286 123.5 0.0279 0.0279 143.0 0.0274 0.0274 163.5 0.0270 0.0270 185.0 0.0267 0.0267 208.0 0.0265 0.0265 232.5 0.0263 0.0263 258.5 0.0261 0.0261 286.0 0.0260 0.0260 331.0 0.0258 0.0258 396.0 0.0257 0.0257 468.5 0.0256 0.0256 549.5 0.0257 0.0257 639.0 0.0259 0.0259 738.0 0.0260 0.0260 847.5 0.0262 0.0262 968.5 0.0264 0.0264 1102.0 0.0266 0.0266 1249.5 0.0267 0.0267 1412.0 0.0269 0.0269 1590.5 0.0271 0.0271 1787.0 0.0273 0.0273 1945.0 0.0274 0.0274 2119.0 0.0276 0.0276 2369.0 0.0277 0.0277 2643.5 0.0279 0.0279 2945.0 0.0281 0.0281 3276.5 0.0283 0.0283 --3.0 -2.8 132 9.0 0.0540 0.0540 11.0 0.0502 0.0502 13.5 0.0472 0.0472 16.5 0.0444 0.0444 19.5 0.0421 0.0421 22.5 0.0403 0.0403 26.0 0.0385 0.0385 30.0 0.0368 0.0368 34.5 0.0354 0.0354 40.0 0.0339 0.0339 46.0 0.0327 0.0327 52.5 0.0315 0.0315 60.0 0.0304 0.0304 69.0 0.0292 0.0292 79.0 0.0283 0.0283 90.5 0.0274 0.0274 105.5 0.0266 0.0266 123.5 0.0259 0.0259 143.0 0.0253 0.0253 163.5 0.0249 0.0249 185.0 0.0246 0.0246 208.0 0.0244 0.0244 232.5 0.0243 0.0243 258.5 0.0242 0.0242 286.0 0.0241 0.0241 331.0 0.0241 0.0241 396.0 0.0239 0.0239 468.5 0.0239 0.0239 549.5 0.0240 0.0240 639.0 0.0242 0.0242 738.0 0.0244 0.0244 847.5 0.0246 0.0246 968.5 0.0248 0.0248 1102.0 0.0249 0.0249 1249.5 0.0251 0.0251 1412.0 0.0253 0.0253 1590.5 0.0255 0.0255 1787.0 0.0257 0.0257 1945.0 0.0259 0.0259 2119.0 0.0260 0.0260 2369.0 0.0262 0.0262 2643.5 0.0264 0.0264 2945.0 0.0266 0.0266 3276.5 0.0268 0.0268 --2.8 -2.6 132 9.0 0.0603 0.0603 11.0 0.0545 0.0545 13.5 0.0496 0.0496 16.5 0.0455 0.0455 19.5 0.0424 0.0424 22.5 0.0399 0.0399 26.0 0.0377 0.0377 30.0 0.0356 0.0356 34.5 0.0338 0.0338 40.0 0.0321 0.0321 46.0 0.0306 0.0306 52.5 0.0291 0.0291 60.0 0.0273 0.0273 69.0 0.0254 0.0254 79.0 0.0238 0.0238 90.5 0.0222 0.0222 105.5 0.0206 0.0206 123.5 0.0192 0.0192 143.0 0.0181 0.0181 163.5 0.0172 0.0172 185.0 0.0166 0.0166 208.0 0.0162 0.0162 232.5 0.0159 0.0159 258.5 0.0158 0.0158 286.0 0.0159 0.0159 331.0 0.0161 0.0161 396.0 0.0168 0.0168 468.5 0.0172 0.0172 549.5 0.0174 0.0174 639.0 0.0176 0.0176 738.0 0.0179 0.0179 847.5 0.0181 0.0181 968.5 0.0184 0.0184 1102.0 0.0186 0.0186 1249.5 0.0189 0.0189 1412.0 0.0192 0.0192 1590.5 0.0194 0.0194 1787.0 0.0197 0.0197 1945.0 0.0198 0.0198 2119.0 0.0200 0.0200 2369.0 0.0203 0.0203 2643.5 0.0205 0.0205 2945.0 0.0208 0.0208 3276.5 0.0210 0.0210 --2.6 -2.4 132 9.0 0.0693 0.0693 11.0 0.0622 0.0622 13.5 0.0559 0.0559 16.5 0.0506 0.0506 19.5 0.0467 0.0467 22.5 0.0437 0.0437 26.0 0.0409 0.0409 30.0 0.0385 0.0385 34.5 0.0363 0.0363 40.0 0.0343 0.0343 46.0 0.0326 0.0326 52.5 0.0309 0.0309 60.0 0.0287 0.0287 69.0 0.0266 0.0266 79.0 0.0248 0.0248 90.5 0.0230 0.0230 105.5 0.0212 0.0212 123.5 0.0195 0.0195 143.0 0.0182 0.0182 163.5 0.0172 0.0172 185.0 0.0164 0.0164 208.0 0.0159 0.0159 232.5 0.0155 0.0155 258.5 0.0154 0.0154 286.0 0.0154 0.0154 331.0 0.0156 0.0156 396.0 0.0163 0.0163 468.5 0.0169 0.0169 549.5 0.0176 0.0176 639.0 0.0180 0.0180 738.0 0.0183 0.0183 847.5 0.0185 0.0185 968.5 0.0188 0.0188 1102.0 0.0190 0.0190 1249.5 0.0193 0.0193 1412.0 0.0195 0.0195 1590.5 0.0197 0.0197 1787.0 0.0200 0.0200 1945.0 0.0202 0.0202 2119.0 0.0204 0.0204 2369.0 0.0206 0.0206 2643.5 0.0209 0.0209 2945.0 0.0211 0.0211 3276.5 0.0213 0.0213 --2.4 -2.2 132 9.0 0.0539 0.0539 11.0 0.0494 0.0494 13.5 0.0455 0.0455 16.5 0.0419 0.0419 19.5 0.0390 0.0390 22.5 0.0366 0.0366 26.0 0.0343 0.0343 30.0 0.0322 0.0322 34.5 0.0302 0.0302 40.0 0.0283 0.0283 46.0 0.0266 0.0266 52.5 0.0251 0.0251 60.0 0.0235 0.0235 69.0 0.0219 0.0219 79.0 0.0205 0.0205 90.5 0.0192 0.0192 105.5 0.0178 0.0178 123.5 0.0166 0.0166 143.0 0.0155 0.0155 163.5 0.0146 0.0146 185.0 0.0139 0.0139 208.0 0.0133 0.0133 232.5 0.0128 0.0128 258.5 0.0125 0.0125 286.0 0.0122 0.0122 331.0 0.0119 0.0119 396.0 0.0117 0.0117 468.5 0.0117 0.0117 549.5 0.0123 0.0123 639.0 0.0128 0.0128 738.0 0.0131 0.0131 847.5 0.0135 0.0135 968.5 0.0138 0.0138 1102.0 0.0141 0.0141 1249.5 0.0145 0.0145 1412.0 0.0148 0.0148 1590.5 0.0151 0.0151 1787.0 0.0154 0.0154 1945.0 0.0157 0.0157 2119.0 0.0159 0.0159 2369.0 0.0162 0.0162 2643.5 0.0165 0.0165 2945.0 0.0169 0.0169 3276.5 0.0172 0.0172 --2.2 -2.0 132 9.0 0.0507 0.0507 11.0 0.0466 0.0466 13.5 0.0432 0.0432 16.5 0.0400 0.0400 19.5 0.0375 0.0375 22.5 0.0353 0.0353 26.0 0.0332 0.0332 30.0 0.0312 0.0312 34.5 0.0294 0.0294 40.0 0.0276 0.0276 46.0 0.0260 0.0260 52.5 0.0245 0.0245 60.0 0.0230 0.0230 69.0 0.0215 0.0215 79.0 0.0201 0.0201 90.5 0.0189 0.0189 105.5 0.0175 0.0175 123.5 0.0163 0.0163 143.0 0.0152 0.0152 163.5 0.0144 0.0144 185.0 0.0137 0.0137 208.0 0.0131 0.0131 232.5 0.0126 0.0126 258.5 0.0122 0.0122 286.0 0.0119 0.0119 331.0 0.0116 0.0116 396.0 0.0114 0.0114 468.5 0.0114 0.0114 549.5 0.0119 0.0119 639.0 0.0126 0.0126 738.0 0.0132 0.0132 847.5 0.0137 0.0137 968.5 0.0141 0.0141 1102.0 0.0144 0.0144 1249.5 0.0147 0.0147 1412.0 0.0151 0.0151 1590.5 0.0154 0.0154 1787.0 0.0157 0.0157 1945.0 0.0159 0.0159 2119.0 0.0162 0.0162 2369.0 0.0165 0.0165 2643.5 0.0168 0.0168 2945.0 0.0171 0.0171 3276.5 0.0174 0.0174 --2.0 -1.8 132 9.0 0.0489 0.0489 11.0 0.0450 0.0450 13.5 0.0417 0.0417 16.5 0.0386 0.0386 19.5 0.0360 0.0360 22.5 0.0339 0.0339 26.0 0.0318 0.0318 30.0 0.0298 0.0298 34.5 0.0279 0.0279 40.0 0.0261 0.0261 46.0 0.0245 0.0245 52.5 0.0230 0.0230 60.0 0.0216 0.0216 69.0 0.0202 0.0202 79.0 0.0189 0.0189 90.5 0.0178 0.0178 105.5 0.0166 0.0166 123.5 0.0154 0.0154 143.0 0.0145 0.0145 163.5 0.0137 0.0137 185.0 0.0130 0.0130 208.0 0.0124 0.0124 232.5 0.0120 0.0120 258.5 0.0116 0.0116 286.0 0.0112 0.0112 331.0 0.0109 0.0109 396.0 0.0105 0.0105 468.5 0.0104 0.0104 549.5 0.0108 0.0108 639.0 0.0112 0.0112 738.0 0.0117 0.0117 847.5 0.0122 0.0122 968.5 0.0125 0.0125 1102.0 0.0129 0.0129 1249.5 0.0133 0.0133 1412.0 0.0136 0.0136 1590.5 0.0140 0.0140 1787.0 0.0143 0.0143 1945.0 0.0146 0.0146 2119.0 0.0149 0.0149 2369.0 0.0152 0.0152 2643.5 0.0155 0.0155 2945.0 0.0158 0.0158 3276.5 0.0162 0.0162 --1.8 -1.6 132 9.0 0.0492 0.0492 11.0 0.0453 0.0453 13.5 0.0420 0.0420 16.5 0.0389 0.0389 19.5 0.0364 0.0364 22.5 0.0342 0.0342 26.0 0.0321 0.0321 30.0 0.0302 0.0302 34.5 0.0283 0.0283 40.0 0.0265 0.0265 46.0 0.0249 0.0249 52.5 0.0235 0.0235 60.0 0.0220 0.0220 69.0 0.0206 0.0206 79.0 0.0193 0.0193 90.5 0.0181 0.0181 105.5 0.0168 0.0168 123.5 0.0157 0.0157 143.0 0.0147 0.0147 163.5 0.0138 0.0138 185.0 0.0131 0.0131 208.0 0.0126 0.0126 232.5 0.0121 0.0121 258.5 0.0116 0.0116 286.0 0.0113 0.0113 331.0 0.0109 0.0109 396.0 0.0106 0.0106 468.5 0.0104 0.0104 549.5 0.0109 0.0109 639.0 0.0114 0.0114 738.0 0.0119 0.0119 847.5 0.0124 0.0124 968.5 0.0130 0.0130 1102.0 0.0135 0.0135 1249.5 0.0138 0.0138 1412.0 0.0142 0.0142 1590.5 0.0145 0.0145 1787.0 0.0149 0.0149 1945.0 0.0151 0.0151 2119.0 0.0153 0.0153 2369.0 0.0157 0.0157 2643.5 0.0160 0.0160 2945.0 0.0163 0.0163 3276.5 0.0166 0.0166 --1.6 -1.4 132 9.0 0.0489 0.0489 11.0 0.0449 0.0449 13.5 0.0416 0.0416 16.5 0.0385 0.0385 19.5 0.0359 0.0359 22.5 0.0337 0.0337 26.0 0.0316 0.0316 30.0 0.0296 0.0296 34.5 0.0277 0.0277 40.0 0.0259 0.0259 46.0 0.0242 0.0242 52.5 0.0228 0.0228 60.0 0.0214 0.0214 69.0 0.0200 0.0200 79.0 0.0188 0.0188 90.5 0.0176 0.0176 105.5 0.0164 0.0164 123.5 0.0153 0.0153 143.0 0.0144 0.0144 163.5 0.0136 0.0136 185.0 0.0130 0.0130 208.0 0.0124 0.0124 232.5 0.0120 0.0120 258.5 0.0116 0.0116 286.0 0.0112 0.0112 331.0 0.0108 0.0108 396.0 0.0105 0.0105 468.5 0.0103 0.0103 549.5 0.0107 0.0107 639.0 0.0111 0.0111 738.0 0.0115 0.0115 847.5 0.0120 0.0120 968.5 0.0124 0.0124 1102.0 0.0128 0.0128 1249.5 0.0132 0.0132 1412.0 0.0136 0.0136 1590.5 0.0139 0.0139 1787.0 0.0143 0.0143 1945.0 0.0145 0.0145 2119.0 0.0148 0.0148 2369.0 0.0151 0.0151 2643.5 0.0154 0.0154 2945.0 0.0158 0.0158 3276.5 0.0161 0.0161 --1.4 -1.2 132 9.0 0.0486 0.0486 11.0 0.0446 0.0446 13.5 0.0412 0.0412 16.5 0.0381 0.0381 19.5 0.0355 0.0355 22.5 0.0333 0.0333 26.0 0.0311 0.0311 30.0 0.0291 0.0291 34.5 0.0272 0.0272 40.0 0.0253 0.0253 46.0 0.0236 0.0236 52.5 0.0221 0.0221 60.0 0.0207 0.0207 69.0 0.0194 0.0194 79.0 0.0182 0.0182 90.5 0.0170 0.0170 105.5 0.0158 0.0158 123.5 0.0147 0.0147 143.0 0.0138 0.0138 163.5 0.0130 0.0130 185.0 0.0124 0.0124 208.0 0.0118 0.0118 232.5 0.0114 0.0114 258.5 0.0110 0.0110 286.0 0.0106 0.0106 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0100 0.0100 639.0 0.0104 0.0104 738.0 0.0108 0.0108 847.5 0.0112 0.0112 968.5 0.0116 0.0116 1102.0 0.0120 0.0120 1249.5 0.0124 0.0124 1412.0 0.0128 0.0128 1590.5 0.0132 0.0132 1787.0 0.0136 0.0136 1945.0 0.0138 0.0138 2119.0 0.0141 0.0141 2369.0 0.0145 0.0145 2643.5 0.0148 0.0148 2945.0 0.0152 0.0152 3276.5 0.0155 0.0155 --1.2 -1.0 132 9.0 0.0488 0.0488 11.0 0.0448 0.0448 13.5 0.0415 0.0415 16.5 0.0383 0.0383 19.5 0.0358 0.0358 22.5 0.0336 0.0336 26.0 0.0315 0.0315 30.0 0.0294 0.0294 34.5 0.0276 0.0276 40.0 0.0257 0.0257 46.0 0.0241 0.0241 52.5 0.0226 0.0226 60.0 0.0212 0.0212 69.0 0.0198 0.0198 79.0 0.0185 0.0185 90.5 0.0173 0.0173 105.5 0.0161 0.0161 123.5 0.0150 0.0150 143.0 0.0140 0.0140 163.5 0.0132 0.0132 185.0 0.0125 0.0125 208.0 0.0119 0.0119 232.5 0.0114 0.0114 258.5 0.0110 0.0110 286.0 0.0106 0.0106 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0100 0.0100 639.0 0.0105 0.0105 738.0 0.0109 0.0109 847.5 0.0114 0.0114 968.5 0.0118 0.0118 1102.0 0.0123 0.0123 1249.5 0.0127 0.0127 1412.0 0.0132 0.0132 1590.5 0.0135 0.0135 1787.0 0.0139 0.0139 1945.0 0.0142 0.0142 2119.0 0.0144 0.0144 2369.0 0.0148 0.0148 2643.5 0.0151 0.0151 2945.0 0.0154 0.0154 3276.5 0.0158 0.0158 --1.0 -0.8 132 9.0 0.0493 0.0493 11.0 0.0453 0.0453 13.5 0.0421 0.0421 16.5 0.0390 0.0390 19.5 0.0365 0.0365 22.5 0.0343 0.0343 26.0 0.0323 0.0323 30.0 0.0303 0.0303 34.5 0.0285 0.0285 40.0 0.0267 0.0267 46.0 0.0251 0.0251 52.5 0.0236 0.0236 60.0 0.0221 0.0221 69.0 0.0207 0.0207 79.0 0.0193 0.0193 90.5 0.0181 0.0181 105.5 0.0167 0.0167 123.5 0.0155 0.0155 143.0 0.0144 0.0144 163.5 0.0135 0.0135 185.0 0.0128 0.0128 208.0 0.0121 0.0121 232.5 0.0116 0.0116 258.5 0.0111 0.0111 286.0 0.0107 0.0107 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0101 0.0101 639.0 0.0106 0.0106 738.0 0.0111 0.0111 847.5 0.0117 0.0117 968.5 0.0122 0.0122 1102.0 0.0128 0.0128 1249.5 0.0133 0.0133 1412.0 0.0138 0.0138 1590.5 0.0143 0.0143 1787.0 0.0146 0.0146 1945.0 0.0148 0.0148 2119.0 0.0151 0.0151 2369.0 0.0154 0.0154 2643.5 0.0158 0.0158 2945.0 0.0161 0.0161 3276.5 0.0164 0.0164 --0.8 -0.6 132 9.0 0.0497 0.0497 11.0 0.0457 0.0457 13.5 0.0425 0.0425 16.5 0.0394 0.0394 19.5 0.0369 0.0369 22.5 0.0348 0.0348 26.0 0.0328 0.0328 30.0 0.0309 0.0309 34.5 0.0291 0.0291 40.0 0.0273 0.0273 46.0 0.0258 0.0258 52.5 0.0243 0.0243 60.0 0.0228 0.0228 69.0 0.0213 0.0213 79.0 0.0199 0.0199 90.5 0.0186 0.0186 105.5 0.0172 0.0172 123.5 0.0159 0.0159 143.0 0.0147 0.0147 163.5 0.0138 0.0138 185.0 0.0130 0.0130 208.0 0.0123 0.0123 232.5 0.0117 0.0117 258.5 0.0112 0.0112 286.0 0.0107 0.0107 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0100 0.0100 639.0 0.0106 0.0106 738.0 0.0112 0.0112 847.5 0.0118 0.0118 968.5 0.0123 0.0123 1102.0 0.0129 0.0129 1249.5 0.0135 0.0135 1412.0 0.0141 0.0141 1590.5 0.0146 0.0146 1787.0 0.0149 0.0149 1945.0 0.0151 0.0151 2119.0 0.0154 0.0154 2369.0 0.0157 0.0157 2643.5 0.0160 0.0160 2945.0 0.0163 0.0163 3276.5 0.0167 0.0167 --0.6 -0.4 132 9.0 0.0492 0.0492 11.0 0.0452 0.0452 13.5 0.0419 0.0419 16.5 0.0387 0.0387 19.5 0.0362 0.0362 22.5 0.0340 0.0340 26.0 0.0319 0.0319 30.0 0.0299 0.0299 34.5 0.0281 0.0281 40.0 0.0263 0.0263 46.0 0.0246 0.0246 52.5 0.0232 0.0232 60.0 0.0217 0.0217 69.0 0.0203 0.0203 79.0 0.0190 0.0190 90.5 0.0178 0.0178 105.5 0.0165 0.0165 123.5 0.0153 0.0153 143.0 0.0142 0.0142 163.5 0.0134 0.0134 185.0 0.0127 0.0127 208.0 0.0120 0.0120 232.5 0.0115 0.0115 258.5 0.0111 0.0111 286.0 0.0107 0.0107 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0100 0.0100 639.0 0.0105 0.0105 738.0 0.0109 0.0109 847.5 0.0114 0.0114 968.5 0.0119 0.0119 1102.0 0.0124 0.0124 1249.5 0.0129 0.0129 1412.0 0.0134 0.0134 1590.5 0.0138 0.0138 1787.0 0.0141 0.0141 1945.0 0.0144 0.0144 2119.0 0.0147 0.0147 2369.0 0.0150 0.0150 2643.5 0.0153 0.0153 2945.0 0.0157 0.0157 3276.5 0.0160 0.0160 --0.4 -0.2 132 9.0 0.0497 0.0497 11.0 0.0457 0.0457 13.5 0.0424 0.0424 16.5 0.0393 0.0393 19.5 0.0367 0.0367 22.5 0.0346 0.0346 26.0 0.0325 0.0325 30.0 0.0306 0.0306 34.5 0.0288 0.0288 40.0 0.0270 0.0270 46.0 0.0254 0.0254 52.5 0.0240 0.0240 60.0 0.0225 0.0225 69.0 0.0210 0.0210 79.0 0.0196 0.0196 90.5 0.0183 0.0183 105.5 0.0170 0.0170 123.5 0.0157 0.0157 143.0 0.0146 0.0146 163.5 0.0137 0.0137 185.0 0.0129 0.0129 208.0 0.0122 0.0122 232.5 0.0116 0.0116 258.5 0.0112 0.0112 286.0 0.0107 0.0107 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0100 0.0100 639.0 0.0105 0.0105 738.0 0.0111 0.0111 847.5 0.0116 0.0116 968.5 0.0122 0.0122 1102.0 0.0127 0.0127 1249.5 0.0133 0.0133 1412.0 0.0138 0.0138 1590.5 0.0142 0.0142 1787.0 0.0146 0.0146 1945.0 0.0148 0.0148 2119.0 0.0151 0.0151 2369.0 0.0154 0.0154 2643.5 0.0157 0.0157 2945.0 0.0161 0.0161 3276.5 0.0164 0.0164 --0.2 0.0 132 9.0 0.0491 0.0491 11.0 0.0450 0.0450 13.5 0.0416 0.0416 16.5 0.0384 0.0384 19.5 0.0358 0.0358 22.5 0.0336 0.0336 26.0 0.0314 0.0314 30.0 0.0294 0.0294 34.5 0.0275 0.0275 40.0 0.0256 0.0256 46.0 0.0239 0.0239 52.5 0.0225 0.0225 60.0 0.0210 0.0210 69.0 0.0196 0.0196 79.0 0.0184 0.0184 90.5 0.0172 0.0172 105.5 0.0160 0.0160 123.5 0.0149 0.0149 143.0 0.0139 0.0139 163.5 0.0131 0.0131 185.0 0.0125 0.0125 208.0 0.0119 0.0119 232.5 0.0114 0.0114 258.5 0.0110 0.0110 286.0 0.0106 0.0106 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0100 0.0100 639.0 0.0104 0.0104 738.0 0.0108 0.0108 847.5 0.0113 0.0113 968.5 0.0117 0.0117 1102.0 0.0121 0.0121 1249.5 0.0126 0.0126 1412.0 0.0130 0.0130 1590.5 0.0134 0.0134 1787.0 0.0137 0.0137 1945.0 0.0140 0.0140 2119.0 0.0143 0.0143 2369.0 0.0146 0.0146 2643.5 0.0150 0.0150 2945.0 0.0153 0.0153 3276.5 0.0156 0.0156 -0.0 0.2 132 9.0 0.0491 0.0491 11.0 0.0450 0.0450 13.5 0.0416 0.0416 16.5 0.0384 0.0384 19.5 0.0358 0.0358 22.5 0.0336 0.0336 26.0 0.0314 0.0314 30.0 0.0294 0.0294 34.5 0.0275 0.0275 40.0 0.0256 0.0256 46.0 0.0239 0.0239 52.5 0.0225 0.0225 60.0 0.0210 0.0210 69.0 0.0196 0.0196 79.0 0.0184 0.0184 90.5 0.0172 0.0172 105.5 0.0160 0.0160 123.5 0.0149 0.0149 143.0 0.0139 0.0139 163.5 0.0131 0.0131 185.0 0.0125 0.0125 208.0 0.0119 0.0119 232.5 0.0114 0.0114 258.5 0.0110 0.0110 286.0 0.0106 0.0106 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0100 0.0100 639.0 0.0104 0.0104 738.0 0.0108 0.0108 847.5 0.0113 0.0113 968.5 0.0117 0.0117 1102.0 0.0121 0.0121 1249.5 0.0126 0.0126 1412.0 0.0130 0.0130 1590.5 0.0134 0.0134 1787.0 0.0137 0.0137 1945.0 0.0140 0.0140 2119.0 0.0143 0.0143 2369.0 0.0146 0.0146 2643.5 0.0150 0.0150 2945.0 0.0153 0.0153 3276.5 0.0156 0.0156 -0.2 0.4 132 9.0 0.0497 0.0497 11.0 0.0457 0.0457 13.5 0.0424 0.0424 16.5 0.0393 0.0393 19.5 0.0367 0.0367 22.5 0.0346 0.0346 26.0 0.0325 0.0325 30.0 0.0306 0.0306 34.5 0.0288 0.0288 40.0 0.0270 0.0270 46.0 0.0254 0.0254 52.5 0.0240 0.0240 60.0 0.0225 0.0225 69.0 0.0210 0.0210 79.0 0.0196 0.0196 90.5 0.0183 0.0183 105.5 0.0170 0.0170 123.5 0.0157 0.0157 143.0 0.0146 0.0146 163.5 0.0137 0.0137 185.0 0.0129 0.0129 208.0 0.0122 0.0122 232.5 0.0116 0.0116 258.5 0.0112 0.0112 286.0 0.0107 0.0107 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0100 0.0100 639.0 0.0105 0.0105 738.0 0.0111 0.0111 847.5 0.0116 0.0116 968.5 0.0122 0.0122 1102.0 0.0127 0.0127 1249.5 0.0133 0.0133 1412.0 0.0138 0.0138 1590.5 0.0142 0.0142 1787.0 0.0146 0.0146 1945.0 0.0148 0.0148 2119.0 0.0151 0.0151 2369.0 0.0154 0.0154 2643.5 0.0157 0.0157 2945.0 0.0161 0.0161 3276.5 0.0164 0.0164 -0.4 0.6 132 9.0 0.0492 0.0492 11.0 0.0452 0.0452 13.5 0.0419 0.0419 16.5 0.0387 0.0387 19.5 0.0362 0.0362 22.5 0.0340 0.0340 26.0 0.0319 0.0319 30.0 0.0299 0.0299 34.5 0.0281 0.0281 40.0 0.0263 0.0263 46.0 0.0246 0.0246 52.5 0.0232 0.0232 60.0 0.0217 0.0217 69.0 0.0203 0.0203 79.0 0.0190 0.0190 90.5 0.0178 0.0178 105.5 0.0165 0.0165 123.5 0.0153 0.0153 143.0 0.0142 0.0142 163.5 0.0134 0.0134 185.0 0.0127 0.0127 208.0 0.0120 0.0120 232.5 0.0115 0.0115 258.5 0.0111 0.0111 286.0 0.0107 0.0107 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0100 0.0100 639.0 0.0105 0.0105 738.0 0.0109 0.0109 847.5 0.0114 0.0114 968.5 0.0119 0.0119 1102.0 0.0124 0.0124 1249.5 0.0129 0.0129 1412.0 0.0134 0.0134 1590.5 0.0138 0.0138 1787.0 0.0141 0.0141 1945.0 0.0144 0.0144 2119.0 0.0147 0.0147 2369.0 0.0150 0.0150 2643.5 0.0153 0.0153 2945.0 0.0157 0.0157 3276.5 0.0160 0.0160 -0.6 0.8 132 9.0 0.0497 0.0497 11.0 0.0457 0.0457 13.5 0.0425 0.0425 16.5 0.0394 0.0394 19.5 0.0369 0.0369 22.5 0.0348 0.0348 26.0 0.0328 0.0328 30.0 0.0309 0.0309 34.5 0.0291 0.0291 40.0 0.0273 0.0273 46.0 0.0258 0.0258 52.5 0.0243 0.0243 60.0 0.0228 0.0228 69.0 0.0213 0.0213 79.0 0.0199 0.0199 90.5 0.0186 0.0186 105.5 0.0172 0.0172 123.5 0.0159 0.0159 143.0 0.0147 0.0147 163.5 0.0138 0.0138 185.0 0.0130 0.0130 208.0 0.0123 0.0123 232.5 0.0117 0.0117 258.5 0.0112 0.0112 286.0 0.0107 0.0107 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0100 0.0100 639.0 0.0106 0.0106 738.0 0.0112 0.0112 847.5 0.0118 0.0118 968.5 0.0123 0.0123 1102.0 0.0129 0.0129 1249.5 0.0135 0.0135 1412.0 0.0141 0.0141 1590.5 0.0146 0.0146 1787.0 0.0149 0.0149 1945.0 0.0151 0.0151 2119.0 0.0154 0.0154 2369.0 0.0157 0.0157 2643.5 0.0160 0.0160 2945.0 0.0163 0.0163 3276.5 0.0167 0.0167 -0.8 1.0 132 9.0 0.0493 0.0493 11.0 0.0453 0.0453 13.5 0.0421 0.0421 16.5 0.0390 0.0390 19.5 0.0365 0.0365 22.5 0.0343 0.0343 26.0 0.0323 0.0323 30.0 0.0303 0.0303 34.5 0.0285 0.0285 40.0 0.0267 0.0267 46.0 0.0251 0.0251 52.5 0.0236 0.0236 60.0 0.0221 0.0221 69.0 0.0207 0.0207 79.0 0.0193 0.0193 90.5 0.0181 0.0181 105.5 0.0167 0.0167 123.5 0.0155 0.0155 143.0 0.0144 0.0144 163.5 0.0135 0.0135 185.0 0.0128 0.0128 208.0 0.0121 0.0121 232.5 0.0116 0.0116 258.5 0.0111 0.0111 286.0 0.0107 0.0107 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0101 0.0101 639.0 0.0106 0.0106 738.0 0.0111 0.0111 847.5 0.0117 0.0117 968.5 0.0122 0.0122 1102.0 0.0128 0.0128 1249.5 0.0133 0.0133 1412.0 0.0138 0.0138 1590.5 0.0143 0.0143 1787.0 0.0146 0.0146 1945.0 0.0148 0.0148 2119.0 0.0151 0.0151 2369.0 0.0154 0.0154 2643.5 0.0158 0.0158 2945.0 0.0161 0.0161 3276.5 0.0164 0.0164 -1.0 1.2 132 9.0 0.0488 0.0488 11.0 0.0448 0.0448 13.5 0.0415 0.0415 16.5 0.0383 0.0383 19.5 0.0358 0.0358 22.5 0.0336 0.0336 26.0 0.0315 0.0315 30.0 0.0294 0.0294 34.5 0.0276 0.0276 40.0 0.0257 0.0257 46.0 0.0241 0.0241 52.5 0.0226 0.0226 60.0 0.0212 0.0212 69.0 0.0198 0.0198 79.0 0.0185 0.0185 90.5 0.0173 0.0173 105.5 0.0161 0.0161 123.5 0.0150 0.0150 143.0 0.0140 0.0140 163.5 0.0132 0.0132 185.0 0.0125 0.0125 208.0 0.0119 0.0119 232.5 0.0114 0.0114 258.5 0.0110 0.0110 286.0 0.0106 0.0106 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0100 0.0100 639.0 0.0105 0.0105 738.0 0.0109 0.0109 847.5 0.0114 0.0114 968.5 0.0118 0.0118 1102.0 0.0123 0.0123 1249.5 0.0127 0.0127 1412.0 0.0132 0.0132 1590.5 0.0135 0.0135 1787.0 0.0139 0.0139 1945.0 0.0142 0.0142 2119.0 0.0144 0.0144 2369.0 0.0148 0.0148 2643.5 0.0151 0.0151 2945.0 0.0154 0.0154 3276.5 0.0158 0.0158 -1.2 1.4 132 9.0 0.0486 0.0486 11.0 0.0446 0.0446 13.5 0.0412 0.0412 16.5 0.0381 0.0381 19.5 0.0355 0.0355 22.5 0.0333 0.0333 26.0 0.0311 0.0311 30.0 0.0291 0.0291 34.5 0.0272 0.0272 40.0 0.0253 0.0253 46.0 0.0236 0.0236 52.5 0.0221 0.0221 60.0 0.0207 0.0207 69.0 0.0194 0.0194 79.0 0.0182 0.0182 90.5 0.0170 0.0170 105.5 0.0158 0.0158 123.5 0.0147 0.0147 143.0 0.0138 0.0138 163.5 0.0130 0.0130 185.0 0.0124 0.0124 208.0 0.0118 0.0118 232.5 0.0114 0.0114 258.5 0.0110 0.0110 286.0 0.0106 0.0106 331.0 0.0102 0.0102 396.0 0.0098 0.0098 468.5 0.0096 0.0096 549.5 0.0100 0.0100 639.0 0.0104 0.0104 738.0 0.0108 0.0108 847.5 0.0112 0.0112 968.5 0.0116 0.0116 1102.0 0.0120 0.0120 1249.5 0.0124 0.0124 1412.0 0.0128 0.0128 1590.5 0.0132 0.0132 1787.0 0.0136 0.0136 1945.0 0.0138 0.0138 2119.0 0.0141 0.0141 2369.0 0.0145 0.0145 2643.5 0.0148 0.0148 2945.0 0.0152 0.0152 3276.5 0.0155 0.0155 -1.4 1.6 132 9.0 0.0489 0.0489 11.0 0.0449 0.0449 13.5 0.0416 0.0416 16.5 0.0385 0.0385 19.5 0.0359 0.0359 22.5 0.0337 0.0337 26.0 0.0316 0.0316 30.0 0.0296 0.0296 34.5 0.0277 0.0277 40.0 0.0259 0.0259 46.0 0.0242 0.0242 52.5 0.0228 0.0228 60.0 0.0214 0.0214 69.0 0.0200 0.0200 79.0 0.0188 0.0188 90.5 0.0176 0.0176 105.5 0.0164 0.0164 123.5 0.0153 0.0153 143.0 0.0144 0.0144 163.5 0.0136 0.0136 185.0 0.0130 0.0130 208.0 0.0124 0.0124 232.5 0.0120 0.0120 258.5 0.0116 0.0116 286.0 0.0112 0.0112 331.0 0.0108 0.0108 396.0 0.0105 0.0105 468.5 0.0103 0.0103 549.5 0.0107 0.0107 639.0 0.0111 0.0111 738.0 0.0115 0.0115 847.5 0.0120 0.0120 968.5 0.0124 0.0124 1102.0 0.0128 0.0128 1249.5 0.0132 0.0132 1412.0 0.0136 0.0136 1590.5 0.0139 0.0139 1787.0 0.0143 0.0143 1945.0 0.0145 0.0145 2119.0 0.0148 0.0148 2369.0 0.0151 0.0151 2643.5 0.0154 0.0154 2945.0 0.0158 0.0158 3276.5 0.0161 0.0161 -1.6 1.8 132 9.0 0.0492 0.0492 11.0 0.0453 0.0453 13.5 0.0420 0.0420 16.5 0.0389 0.0389 19.5 0.0364 0.0364 22.5 0.0342 0.0342 26.0 0.0321 0.0321 30.0 0.0302 0.0302 34.5 0.0283 0.0283 40.0 0.0265 0.0265 46.0 0.0249 0.0249 52.5 0.0235 0.0235 60.0 0.0220 0.0220 69.0 0.0206 0.0206 79.0 0.0193 0.0193 90.5 0.0181 0.0181 105.5 0.0168 0.0168 123.5 0.0157 0.0157 143.0 0.0147 0.0147 163.5 0.0138 0.0138 185.0 0.0131 0.0131 208.0 0.0126 0.0126 232.5 0.0121 0.0121 258.5 0.0116 0.0116 286.0 0.0113 0.0113 331.0 0.0109 0.0109 396.0 0.0106 0.0106 468.5 0.0104 0.0104 549.5 0.0109 0.0109 639.0 0.0114 0.0114 738.0 0.0119 0.0119 847.5 0.0124 0.0124 968.5 0.0130 0.0130 1102.0 0.0135 0.0135 1249.5 0.0138 0.0138 1412.0 0.0142 0.0142 1590.5 0.0145 0.0145 1787.0 0.0149 0.0149 1945.0 0.0151 0.0151 2119.0 0.0153 0.0153 2369.0 0.0157 0.0157 2643.5 0.0160 0.0160 2945.0 0.0163 0.0163 3276.5 0.0166 0.0166 -1.8 2.0 132 9.0 0.0489 0.0489 11.0 0.0450 0.0450 13.5 0.0417 0.0417 16.5 0.0386 0.0386 19.5 0.0360 0.0360 22.5 0.0339 0.0339 26.0 0.0318 0.0318 30.0 0.0298 0.0298 34.5 0.0279 0.0279 40.0 0.0261 0.0261 46.0 0.0245 0.0245 52.5 0.0230 0.0230 60.0 0.0216 0.0216 69.0 0.0202 0.0202 79.0 0.0189 0.0189 90.5 0.0178 0.0178 105.5 0.0166 0.0166 123.5 0.0154 0.0154 143.0 0.0145 0.0145 163.5 0.0137 0.0137 185.0 0.0130 0.0130 208.0 0.0124 0.0124 232.5 0.0120 0.0120 258.5 0.0116 0.0116 286.0 0.0112 0.0112 331.0 0.0109 0.0109 396.0 0.0105 0.0105 468.5 0.0104 0.0104 549.5 0.0108 0.0108 639.0 0.0112 0.0112 738.0 0.0117 0.0117 847.5 0.0122 0.0122 968.5 0.0125 0.0125 1102.0 0.0129 0.0129 1249.5 0.0133 0.0133 1412.0 0.0136 0.0136 1590.5 0.0140 0.0140 1787.0 0.0143 0.0143 1945.0 0.0146 0.0146 2119.0 0.0149 0.0149 2369.0 0.0152 0.0152 2643.5 0.0155 0.0155 2945.0 0.0158 0.0158 3276.5 0.0162 0.0162 -2.0 2.2 132 9.0 0.0507 0.0507 11.0 0.0466 0.0466 13.5 0.0432 0.0432 16.5 0.0400 0.0400 19.5 0.0375 0.0375 22.5 0.0353 0.0353 26.0 0.0332 0.0332 30.0 0.0312 0.0312 34.5 0.0294 0.0294 40.0 0.0276 0.0276 46.0 0.0260 0.0260 52.5 0.0245 0.0245 60.0 0.0230 0.0230 69.0 0.0215 0.0215 79.0 0.0201 0.0201 90.5 0.0189 0.0189 105.5 0.0175 0.0175 123.5 0.0163 0.0163 143.0 0.0152 0.0152 163.5 0.0144 0.0144 185.0 0.0137 0.0137 208.0 0.0131 0.0131 232.5 0.0126 0.0126 258.5 0.0122 0.0122 286.0 0.0119 0.0119 331.0 0.0116 0.0116 396.0 0.0114 0.0114 468.5 0.0114 0.0114 549.5 0.0119 0.0119 639.0 0.0126 0.0126 738.0 0.0132 0.0132 847.5 0.0137 0.0137 968.5 0.0141 0.0141 1102.0 0.0144 0.0144 1249.5 0.0147 0.0147 1412.0 0.0151 0.0151 1590.5 0.0154 0.0154 1787.0 0.0157 0.0157 1945.0 0.0159 0.0159 2119.0 0.0162 0.0162 2369.0 0.0165 0.0165 2643.5 0.0168 0.0168 2945.0 0.0171 0.0171 3276.5 0.0174 0.0174 -2.2 2.4 132 9.0 0.0539 0.0539 11.0 0.0494 0.0494 13.5 0.0455 0.0455 16.5 0.0419 0.0419 19.5 0.0390 0.0390 22.5 0.0366 0.0366 26.0 0.0343 0.0343 30.0 0.0322 0.0322 34.5 0.0302 0.0302 40.0 0.0283 0.0283 46.0 0.0266 0.0266 52.5 0.0251 0.0251 60.0 0.0235 0.0235 69.0 0.0219 0.0219 79.0 0.0205 0.0205 90.5 0.0192 0.0192 105.5 0.0178 0.0178 123.5 0.0166 0.0166 143.0 0.0155 0.0155 163.5 0.0146 0.0146 185.0 0.0139 0.0139 208.0 0.0133 0.0133 232.5 0.0128 0.0128 258.5 0.0125 0.0125 286.0 0.0122 0.0122 331.0 0.0119 0.0119 396.0 0.0117 0.0117 468.5 0.0117 0.0117 549.5 0.0123 0.0123 639.0 0.0128 0.0128 738.0 0.0131 0.0131 847.5 0.0135 0.0135 968.5 0.0138 0.0138 1102.0 0.0141 0.0141 1249.5 0.0145 0.0145 1412.0 0.0148 0.0148 1590.5 0.0151 0.0151 1787.0 0.0154 0.0154 1945.0 0.0157 0.0157 2119.0 0.0159 0.0159 2369.0 0.0162 0.0162 2643.5 0.0165 0.0165 2945.0 0.0169 0.0169 3276.5 0.0172 0.0172 -2.4 2.6 132 9.0 0.0693 0.0693 11.0 0.0622 0.0622 13.5 0.0559 0.0559 16.5 0.0506 0.0506 19.5 0.0467 0.0467 22.5 0.0437 0.0437 26.0 0.0409 0.0409 30.0 0.0385 0.0385 34.5 0.0363 0.0363 40.0 0.0343 0.0343 46.0 0.0326 0.0326 52.5 0.0309 0.0309 60.0 0.0287 0.0287 69.0 0.0266 0.0266 79.0 0.0248 0.0248 90.5 0.0230 0.0230 105.5 0.0212 0.0212 123.5 0.0195 0.0195 143.0 0.0182 0.0182 163.5 0.0172 0.0172 185.0 0.0164 0.0164 208.0 0.0159 0.0159 232.5 0.0155 0.0155 258.5 0.0154 0.0154 286.0 0.0154 0.0154 331.0 0.0156 0.0156 396.0 0.0163 0.0163 468.5 0.0169 0.0169 549.5 0.0176 0.0176 639.0 0.0180 0.0180 738.0 0.0183 0.0183 847.5 0.0185 0.0185 968.5 0.0188 0.0188 1102.0 0.0190 0.0190 1249.5 0.0193 0.0193 1412.0 0.0195 0.0195 1590.5 0.0197 0.0197 1787.0 0.0200 0.0200 1945.0 0.0202 0.0202 2119.0 0.0204 0.0204 2369.0 0.0206 0.0206 2643.5 0.0209 0.0209 2945.0 0.0211 0.0211 3276.5 0.0213 0.0213 -2.6 2.8 132 9.0 0.0603 0.0603 11.0 0.0545 0.0545 13.5 0.0496 0.0496 16.5 0.0455 0.0455 19.5 0.0424 0.0424 22.5 0.0399 0.0399 26.0 0.0377 0.0377 30.0 0.0356 0.0356 34.5 0.0338 0.0338 40.0 0.0321 0.0321 46.0 0.0306 0.0306 52.5 0.0291 0.0291 60.0 0.0273 0.0273 69.0 0.0254 0.0254 79.0 0.0238 0.0238 90.5 0.0222 0.0222 105.5 0.0206 0.0206 123.5 0.0192 0.0192 143.0 0.0181 0.0181 163.5 0.0172 0.0172 185.0 0.0166 0.0166 208.0 0.0162 0.0162 232.5 0.0159 0.0159 258.5 0.0158 0.0158 286.0 0.0159 0.0159 331.0 0.0161 0.0161 396.0 0.0168 0.0168 468.5 0.0172 0.0172 549.5 0.0174 0.0174 639.0 0.0176 0.0176 738.0 0.0179 0.0179 847.5 0.0181 0.0181 968.5 0.0184 0.0184 1102.0 0.0186 0.0186 1249.5 0.0189 0.0189 1412.0 0.0192 0.0192 1590.5 0.0194 0.0194 1787.0 0.0197 0.0197 1945.0 0.0198 0.0198 2119.0 0.0200 0.0200 2369.0 0.0203 0.0203 2643.5 0.0205 0.0205 2945.0 0.0208 0.0208 3276.5 0.0210 0.0210 -2.8 3.0 132 9.0 0.0540 0.0540 11.0 0.0502 0.0502 13.5 0.0472 0.0472 16.5 0.0444 0.0444 19.5 0.0421 0.0421 22.5 0.0403 0.0403 26.0 0.0385 0.0385 30.0 0.0368 0.0368 34.5 0.0354 0.0354 40.0 0.0339 0.0339 46.0 0.0327 0.0327 52.5 0.0315 0.0315 60.0 0.0304 0.0304 69.0 0.0292 0.0292 79.0 0.0283 0.0283 90.5 0.0274 0.0274 105.5 0.0266 0.0266 123.5 0.0259 0.0259 143.0 0.0253 0.0253 163.5 0.0249 0.0249 185.0 0.0246 0.0246 208.0 0.0244 0.0244 232.5 0.0243 0.0243 258.5 0.0242 0.0242 286.0 0.0241 0.0241 331.0 0.0241 0.0241 396.0 0.0239 0.0239 468.5 0.0239 0.0239 549.5 0.0240 0.0240 639.0 0.0242 0.0242 738.0 0.0244 0.0244 847.5 0.0246 0.0246 968.5 0.0248 0.0248 1102.0 0.0249 0.0249 1249.5 0.0251 0.0251 1412.0 0.0253 0.0253 1590.5 0.0255 0.0255 1787.0 0.0257 0.0257 1945.0 0.0259 0.0259 2119.0 0.0260 0.0260 2369.0 0.0262 0.0262 2643.5 0.0264 0.0264 2945.0 0.0266 0.0266 3276.5 0.0268 0.0268 -3.0 3.5 132 9.0 0.0703 0.0703 11.0 0.0629 0.0629 13.5 0.0566 0.0566 16.5 0.0514 0.0514 19.5 0.0477 0.0477 22.5 0.0449 0.0449 26.0 0.0423 0.0423 30.0 0.0401 0.0401 34.5 0.0381 0.0381 40.0 0.0363 0.0363 46.0 0.0348 0.0348 52.5 0.0335 0.0335 60.0 0.0323 0.0323 69.0 0.0312 0.0312 79.0 0.0302 0.0302 90.5 0.0294 0.0294 105.5 0.0286 0.0286 123.5 0.0279 0.0279 143.0 0.0274 0.0274 163.5 0.0270 0.0270 185.0 0.0267 0.0267 208.0 0.0265 0.0265 232.5 0.0263 0.0263 258.5 0.0261 0.0261 286.0 0.0260 0.0260 331.0 0.0258 0.0258 396.0 0.0257 0.0257 468.5 0.0256 0.0256 549.5 0.0257 0.0257 639.0 0.0259 0.0259 738.0 0.0260 0.0260 847.5 0.0262 0.0262 968.5 0.0264 0.0264 1102.0 0.0266 0.0266 1249.5 0.0267 0.0267 1412.0 0.0269 0.0269 1590.5 0.0271 0.0271 1787.0 0.0273 0.0273 1945.0 0.0274 0.0274 2119.0 0.0276 0.0276 2369.0 0.0277 0.0277 2643.5 0.0279 0.0279 2945.0 0.0281 0.0281 3276.5 0.0283 0.0283 -3.5 4.0 132 9.0 0.0716 0.0716 11.0 0.0662 0.0662 13.5 0.0618 0.0618 16.5 0.0582 0.0582 19.5 0.0556 0.0556 22.5 0.0537 0.0537 26.0 0.0519 0.0519 30.0 0.0504 0.0504 34.5 0.0491 0.0491 40.0 0.0479 0.0479 46.0 0.0468 0.0468 52.5 0.0453 0.0453 60.0 0.0426 0.0426 69.0 0.0404 0.0404 79.0 0.0389 0.0389 90.5 0.0382 0.0382 105.5 0.0385 0.0385 123.5 0.0399 0.0399 143.0 0.0399 0.0399 163.5 0.0396 0.0396 185.0 0.0394 0.0394 208.0 0.0392 0.0392 232.5 0.0391 0.0391 258.5 0.0390 0.0390 286.0 0.0389 0.0389 331.0 0.0388 0.0388 396.0 0.0387 0.0387 468.5 0.0386 0.0386 549.5 0.0387 0.0387 639.0 0.0388 0.0388 738.0 0.0389 0.0389 847.5 0.0390 0.0390 968.5 0.0392 0.0392 1102.0 0.0393 0.0393 1249.5 0.0394 0.0394 1412.0 0.0395 0.0395 1590.5 0.0396 0.0396 1787.0 0.0398 0.0398 1945.0 0.0399 0.0399 2119.0 0.0400 0.0400 2369.0 0.0401 0.0401 2643.5 0.0402 0.0402 2945.0 0.0403 0.0403 3276.5 0.0405 0.0405 -4.0 4.4 132 9.0 0.0635 0.0635 11.0 0.0603 0.0603 13.5 0.0577 0.0577 16.5 0.0554 0.0554 19.5 0.0536 0.0536 22.5 0.0521 0.0521 26.0 0.0507 0.0507 30.0 0.0495 0.0495 34.5 0.0484 0.0484 40.0 0.0473 0.0473 46.0 0.0464 0.0464 52.5 0.0450 0.0450 60.0 0.0424 0.0424 69.0 0.0402 0.0402 79.0 0.0387 0.0387 90.5 0.0381 0.0381 105.5 0.0384 0.0384 123.5 0.0394 0.0394 143.0 0.0391 0.0391 163.5 0.0388 0.0388 185.0 0.0386 0.0386 208.0 0.0384 0.0384 232.5 0.0383 0.0383 258.5 0.0381 0.0381 286.0 0.0381 0.0381 331.0 0.0379 0.0379 396.0 0.0378 0.0378 468.5 0.0378 0.0378 549.5 0.0379 0.0379 639.0 0.0380 0.0380 738.0 0.0381 0.0381 847.5 0.0382 0.0382 968.5 0.0384 0.0384 1102.0 0.0385 0.0385 1249.5 0.0386 0.0386 1412.0 0.0387 0.0387 1590.5 0.0389 0.0389 1787.0 0.0390 0.0390 1945.0 0.0391 0.0391 2119.0 0.0392 0.0392 2369.0 0.0393 0.0393 2643.5 0.0394 0.0394 2945.0 0.0396 0.0396 3276.5 0.0397 0.0397 -4.4 5.0 132 9.0 0.0629 0.0629 11.0 0.0598 0.0598 13.5 0.0574 0.0574 16.5 0.0552 0.0552 19.5 0.0534 0.0534 22.5 0.0520 0.0520 26.0 0.0506 0.0506 30.0 0.0494 0.0494 34.5 0.0483 0.0483 40.0 0.0473 0.0473 46.0 0.0464 0.0464 52.5 0.0450 0.0450 60.0 0.0423 0.0423 69.0 0.0402 0.0402 79.0 0.0392 0.0392 90.5 0.0387 0.0387 105.5 0.0381 0.0381 123.5 0.0377 0.0377 143.0 0.0374 0.0374 163.5 0.0371 0.0371 185.0 0.0369 0.0369 208.0 0.0367 0.0367 232.5 0.0365 0.0365 258.5 0.0364 0.0364 286.0 0.0363 0.0363 331.0 0.0362 0.0362 396.0 0.0361 0.0361 468.5 0.0360 0.0360 549.5 0.0361 0.0361 639.0 0.0362 0.0362 738.0 0.0364 0.0364 847.5 0.0365 0.0365 968.5 0.0366 0.0366 1102.0 0.0367 0.0367 1249.5 0.0369 0.0369 1412.0 0.0370 0.0370 1590.5 0.0371 0.0371 1787.0 0.0373 0.0373 1945.0 0.0374 0.0374 2119.0 0.0375 0.0375 2369.0 0.0376 0.0376 2643.5 0.0377 0.0377 2945.0 0.0379 0.0379 3276.5 0.0380 0.0380 -5.0 5.4 132 9.0 0.0633 0.0633 11.0 0.0602 0.0602 13.5 0.0577 0.0577 16.5 0.0554 0.0554 19.5 0.0536 0.0536 22.5 0.0521 0.0521 26.0 0.0507 0.0507 30.0 0.0495 0.0495 34.5 0.0484 0.0484 40.0 0.0473 0.0473 46.0 0.0465 0.0465 52.5 0.0457 0.0457 60.0 0.0450 0.0450 69.0 0.0444 0.0444 79.0 0.0439 0.0439 90.5 0.0434 0.0434 105.5 0.0430 0.0430 123.5 0.0426 0.0426 143.0 0.0423 0.0423 163.5 0.0420 0.0420 185.0 0.0418 0.0418 208.0 0.0417 0.0417 232.5 0.0415 0.0415 258.5 0.0414 0.0414 286.0 0.0414 0.0414 331.0 0.0412 0.0412 396.0 0.0412 0.0412 468.5 0.0411 0.0411 549.5 0.0412 0.0412 639.0 0.0413 0.0413 738.0 0.0414 0.0414 847.5 0.0415 0.0415 968.5 0.0416 0.0416 1102.0 0.0417 0.0417 1249.5 0.0419 0.0419 1412.0 0.0420 0.0420 1590.5 0.0421 0.0421 1787.0 0.0422 0.0422 1945.0 0.0423 0.0423 2119.0 0.0424 0.0424 2369.0 0.0425 0.0425 2643.5 0.0426 0.0426 2945.0 0.0427 0.0427 3276.5 0.0429 0.0429 -[Total] -{1 JetEta 1 JetPt "" Correction JECSource} --5.4 -5.0 132 9.0 0.0639 0.0639 11.0 0.0603 0.0603 13.5 0.0577 0.0577 16.5 0.0557 0.0557 19.5 0.0543 0.0543 22.5 0.0531 0.0531 26.0 0.0520 0.0520 30.0 0.0510 0.0510 34.5 0.0500 0.0500 40.0 0.0490 0.0490 46.0 0.0482 0.0482 52.5 0.0474 0.0474 60.0 0.0466 0.0466 69.0 0.0459 0.0459 79.0 0.0453 0.0453 90.5 0.0447 0.0447 105.5 0.0441 0.0441 123.5 0.0436 0.0436 143.0 0.0431 0.0431 163.5 0.0428 0.0428 185.0 0.0425 0.0425 208.0 0.0422 0.0422 232.5 0.0420 0.0420 258.5 0.0419 0.0419 286.0 0.0417 0.0417 331.0 0.0416 0.0416 396.0 0.0414 0.0414 468.5 0.0413 0.0413 549.5 0.0413 0.0413 639.0 0.0414 0.0414 738.0 0.0415 0.0415 847.5 0.0416 0.0416 968.5 0.0417 0.0417 1102.0 0.0418 0.0418 1249.5 0.0419 0.0419 1412.0 0.0420 0.0420 1590.5 0.0421 0.0421 1787.0 0.0422 0.0422 1945.0 0.0423 0.0423 2119.0 0.0424 0.0424 2369.0 0.0425 0.0425 2643.5 0.0426 0.0426 2945.0 0.0427 0.0427 3276.5 0.0429 0.0429 --5.0 -4.4 132 9.0 0.0634 0.0634 11.0 0.0599 0.0599 13.5 0.0574 0.0574 16.5 0.0555 0.0555 19.5 0.0541 0.0541 22.5 0.0530 0.0530 26.0 0.0519 0.0519 30.0 0.0509 0.0509 34.5 0.0500 0.0500 40.0 0.0490 0.0490 46.0 0.0481 0.0481 52.5 0.0467 0.0467 60.0 0.0440 0.0440 69.0 0.0418 0.0418 79.0 0.0407 0.0407 90.5 0.0401 0.0401 105.5 0.0394 0.0394 123.5 0.0388 0.0388 143.0 0.0383 0.0383 163.5 0.0379 0.0379 185.0 0.0376 0.0376 208.0 0.0373 0.0373 232.5 0.0371 0.0371 258.5 0.0369 0.0369 286.0 0.0367 0.0367 331.0 0.0365 0.0365 396.0 0.0364 0.0364 468.5 0.0362 0.0362 549.5 0.0363 0.0363 639.0 0.0364 0.0364 738.0 0.0365 0.0365 847.5 0.0366 0.0366 968.5 0.0367 0.0367 1102.0 0.0368 0.0368 1249.5 0.0369 0.0369 1412.0 0.0370 0.0370 1590.5 0.0372 0.0372 1787.0 0.0373 0.0373 1945.0 0.0374 0.0374 2119.0 0.0375 0.0375 2369.0 0.0376 0.0376 2643.5 0.0378 0.0378 2945.0 0.0379 0.0379 3276.5 0.0380 0.0380 --4.4 -4.0 132 9.0 0.0877 0.0877 11.0 0.0791 0.0791 13.5 0.0711 0.0711 16.5 0.0644 0.0644 19.5 0.0597 0.0597 22.5 0.0564 0.0564 26.0 0.0536 0.0536 30.0 0.0513 0.0513 34.5 0.0495 0.0495 40.0 0.0480 0.0480 46.0 0.0468 0.0468 52.5 0.0452 0.0452 60.0 0.0425 0.0425 69.0 0.0402 0.0402 79.0 0.0387 0.0387 90.5 0.0381 0.0381 105.5 0.0384 0.0384 123.5 0.0394 0.0394 143.0 0.0391 0.0391 163.5 0.0388 0.0388 185.0 0.0386 0.0386 208.0 0.0384 0.0384 232.5 0.0383 0.0383 258.5 0.0382 0.0382 286.0 0.0381 0.0381 331.0 0.0380 0.0380 396.0 0.0379 0.0379 468.5 0.0378 0.0378 549.5 0.0379 0.0379 639.0 0.0380 0.0380 738.0 0.0381 0.0381 847.5 0.0382 0.0382 968.5 0.0384 0.0384 1102.0 0.0385 0.0385 1249.5 0.0386 0.0386 1412.0 0.0387 0.0387 1590.5 0.0389 0.0389 1787.0 0.0390 0.0390 1945.0 0.0391 0.0391 2119.0 0.0392 0.0392 2369.0 0.0393 0.0393 2643.5 0.0394 0.0394 2945.0 0.0396 0.0396 3276.5 0.0397 0.0397 --4.0 -3.5 132 9.0 0.0827 0.0827 11.0 0.0745 0.0745 13.5 0.0673 0.0673 16.5 0.0614 0.0614 19.5 0.0575 0.0575 22.5 0.0547 0.0547 26.0 0.0524 0.0524 30.0 0.0506 0.0506 34.5 0.0491 0.0491 40.0 0.0479 0.0479 46.0 0.0469 0.0469 52.5 0.0454 0.0454 60.0 0.0427 0.0427 69.0 0.0406 0.0406 79.0 0.0391 0.0391 90.5 0.0385 0.0385 105.5 0.0387 0.0387 123.5 0.0402 0.0402 143.0 0.0402 0.0402 163.5 0.0399 0.0399 185.0 0.0397 0.0397 208.0 0.0395 0.0395 232.5 0.0393 0.0393 258.5 0.0392 0.0392 286.0 0.0391 0.0391 331.0 0.0389 0.0389 396.0 0.0388 0.0388 468.5 0.0387 0.0387 549.5 0.0388 0.0388 639.0 0.0389 0.0389 738.0 0.0390 0.0390 847.5 0.0391 0.0391 968.5 0.0392 0.0392 1102.0 0.0393 0.0393 1249.5 0.0394 0.0394 1412.0 0.0395 0.0395 1590.5 0.0397 0.0397 1787.0 0.0398 0.0398 1945.0 0.0399 0.0399 2119.0 0.0400 0.0400 2369.0 0.0401 0.0401 2643.5 0.0402 0.0402 2945.0 0.0403 0.0403 3276.5 0.0405 0.0405 --3.5 -3.0 132 9.0 0.0763 0.0763 11.0 0.0662 0.0662 13.5 0.0578 0.0578 16.5 0.0515 0.0515 19.5 0.0478 0.0478 22.5 0.0455 0.0455 26.0 0.0437 0.0437 30.0 0.0424 0.0424 34.5 0.0413 0.0413 40.0 0.0403 0.0403 46.0 0.0394 0.0394 52.5 0.0385 0.0385 60.0 0.0375 0.0375 69.0 0.0364 0.0364 79.0 0.0353 0.0353 90.5 0.0343 0.0343 105.5 0.0331 0.0331 123.5 0.0320 0.0320 143.0 0.0311 0.0311 163.5 0.0303 0.0303 185.0 0.0296 0.0296 208.0 0.0291 0.0291 232.5 0.0287 0.0287 258.5 0.0282 0.0282 286.0 0.0279 0.0279 331.0 0.0274 0.0274 396.0 0.0269 0.0269 468.5 0.0266 0.0266 549.5 0.0265 0.0265 639.0 0.0265 0.0265 738.0 0.0266 0.0266 847.5 0.0267 0.0267 968.5 0.0268 0.0268 1102.0 0.0269 0.0269 1249.5 0.0270 0.0270 1412.0 0.0271 0.0271 1590.5 0.0273 0.0273 1787.0 0.0274 0.0274 1945.0 0.0275 0.0275 2119.0 0.0277 0.0277 2369.0 0.0278 0.0278 2643.5 0.0280 0.0280 2945.0 0.0282 0.0282 3276.5 0.0283 0.0283 --3.0 -2.8 132 9.0 0.0603 0.0603 11.0 0.0553 0.0553 13.5 0.0510 0.0510 16.5 0.0471 0.0471 19.5 0.0440 0.0440 22.5 0.0417 0.0417 26.0 0.0394 0.0394 30.0 0.0375 0.0375 34.5 0.0358 0.0358 40.0 0.0342 0.0342 46.0 0.0328 0.0328 52.5 0.0316 0.0316 60.0 0.0304 0.0304 69.0 0.0293 0.0293 79.0 0.0283 0.0283 90.5 0.0274 0.0274 105.5 0.0266 0.0266 123.5 0.0259 0.0259 143.0 0.0253 0.0253 163.5 0.0249 0.0249 185.0 0.0246 0.0246 208.0 0.0244 0.0244 232.5 0.0243 0.0243 258.5 0.0242 0.0242 286.0 0.0242 0.0242 331.0 0.0241 0.0241 396.0 0.0240 0.0240 468.5 0.0239 0.0239 549.5 0.0240 0.0240 639.0 0.0242 0.0242 738.0 0.0244 0.0244 847.5 0.0246 0.0246 968.5 0.0248 0.0248 1102.0 0.0249 0.0249 1249.5 0.0251 0.0251 1412.0 0.0253 0.0253 1590.5 0.0255 0.0255 1787.0 0.0257 0.0257 1945.0 0.0259 0.0259 2119.0 0.0260 0.0260 2369.0 0.0262 0.0262 2643.5 0.0264 0.0264 2945.0 0.0266 0.0266 3276.5 0.0268 0.0268 --2.8 -2.6 132 9.0 0.0613 0.0613 11.0 0.0550 0.0550 13.5 0.0498 0.0498 16.5 0.0455 0.0455 19.5 0.0424 0.0424 22.5 0.0401 0.0401 26.0 0.0380 0.0380 30.0 0.0361 0.0361 34.5 0.0344 0.0344 40.0 0.0328 0.0328 46.0 0.0314 0.0314 52.5 0.0300 0.0300 60.0 0.0282 0.0282 69.0 0.0264 0.0264 79.0 0.0248 0.0248 90.5 0.0232 0.0232 105.5 0.0216 0.0216 123.5 0.0201 0.0201 143.0 0.0189 0.0189 163.5 0.0180 0.0180 185.0 0.0173 0.0173 208.0 0.0168 0.0168 232.5 0.0165 0.0165 258.5 0.0164 0.0164 286.0 0.0163 0.0163 331.0 0.0165 0.0165 396.0 0.0171 0.0171 468.5 0.0174 0.0174 549.5 0.0176 0.0176 639.0 0.0178 0.0178 738.0 0.0180 0.0180 847.5 0.0182 0.0182 968.5 0.0185 0.0185 1102.0 0.0187 0.0187 1249.5 0.0190 0.0190 1412.0 0.0192 0.0192 1590.5 0.0194 0.0194 1787.0 0.0197 0.0197 1945.0 0.0199 0.0199 2119.0 0.0201 0.0201 2369.0 0.0203 0.0203 2643.5 0.0206 0.0206 2945.0 0.0208 0.0208 3276.5 0.0210 0.0210 --2.6 -2.4 132 9.0 0.1645 0.1645 11.0 0.1378 0.1378 13.5 0.1116 0.1116 16.5 0.0891 0.0891 19.5 0.0736 0.0736 22.5 0.0624 0.0624 26.0 0.0533 0.0533 30.0 0.0461 0.0461 34.5 0.0406 0.0406 40.0 0.0363 0.0363 46.0 0.0334 0.0334 52.5 0.0311 0.0311 60.0 0.0287 0.0287 69.0 0.0267 0.0267 79.0 0.0250 0.0250 90.5 0.0235 0.0235 105.5 0.0220 0.0220 123.5 0.0206 0.0206 143.0 0.0195 0.0195 163.5 0.0186 0.0186 185.0 0.0179 0.0179 208.0 0.0174 0.0174 232.5 0.0170 0.0170 258.5 0.0168 0.0168 286.0 0.0167 0.0167 331.0 0.0168 0.0168 396.0 0.0173 0.0173 468.5 0.0177 0.0177 549.5 0.0183 0.0183 639.0 0.0186 0.0186 738.0 0.0187 0.0187 847.5 0.0189 0.0189 968.5 0.0191 0.0191 1102.0 0.0193 0.0193 1249.5 0.0195 0.0195 1412.0 0.0197 0.0197 1590.5 0.0199 0.0199 1787.0 0.0201 0.0201 1945.0 0.0203 0.0203 2119.0 0.0205 0.0205 2369.0 0.0207 0.0207 2643.5 0.0209 0.0209 2945.0 0.0212 0.0212 3276.5 0.0214 0.0214 --2.4 -2.2 132 9.0 0.2192 0.2192 11.0 0.1791 0.1791 13.5 0.1415 0.1415 16.5 0.1104 0.1104 19.5 0.0889 0.0889 22.5 0.0734 0.0734 26.0 0.0604 0.0604 30.0 0.0499 0.0499 34.5 0.0418 0.0418 40.0 0.0352 0.0352 46.0 0.0305 0.0305 52.5 0.0271 0.0271 60.0 0.0244 0.0244 69.0 0.0222 0.0222 79.0 0.0205 0.0205 90.5 0.0192 0.0192 105.5 0.0180 0.0180 123.5 0.0170 0.0170 143.0 0.0162 0.0162 163.5 0.0155 0.0155 185.0 0.0149 0.0149 208.0 0.0144 0.0144 232.5 0.0139 0.0139 258.5 0.0136 0.0136 286.0 0.0133 0.0133 331.0 0.0129 0.0129 396.0 0.0126 0.0126 468.5 0.0126 0.0126 549.5 0.0130 0.0130 639.0 0.0134 0.0134 738.0 0.0136 0.0136 847.5 0.0139 0.0139 968.5 0.0141 0.0141 1102.0 0.0144 0.0144 1249.5 0.0147 0.0147 1412.0 0.0150 0.0150 1590.5 0.0153 0.0153 1787.0 0.0156 0.0156 1945.0 0.0158 0.0158 2119.0 0.0160 0.0160 2369.0 0.0163 0.0163 2643.5 0.0166 0.0166 2945.0 0.0169 0.0169 3276.5 0.0172 0.0172 --2.2 -2.0 132 9.0 0.2103 0.2103 11.0 0.1714 0.1714 13.5 0.1359 0.1359 16.5 0.1068 0.1068 19.5 0.0866 0.0866 22.5 0.0720 0.0720 26.0 0.0597 0.0597 30.0 0.0496 0.0496 34.5 0.0417 0.0417 40.0 0.0352 0.0352 46.0 0.0305 0.0305 52.5 0.0270 0.0270 60.0 0.0242 0.0242 69.0 0.0220 0.0220 79.0 0.0202 0.0202 90.5 0.0189 0.0189 105.5 0.0176 0.0176 123.5 0.0165 0.0165 143.0 0.0156 0.0156 163.5 0.0149 0.0149 185.0 0.0143 0.0143 208.0 0.0138 0.0138 232.5 0.0133 0.0133 258.5 0.0130 0.0130 286.0 0.0127 0.0127 331.0 0.0123 0.0123 396.0 0.0121 0.0121 468.5 0.0120 0.0120 549.5 0.0124 0.0124 639.0 0.0130 0.0130 738.0 0.0136 0.0136 847.5 0.0140 0.0140 968.5 0.0143 0.0143 1102.0 0.0146 0.0146 1249.5 0.0149 0.0149 1412.0 0.0152 0.0152 1590.5 0.0155 0.0155 1787.0 0.0158 0.0158 1945.0 0.0160 0.0160 2119.0 0.0162 0.0162 2369.0 0.0165 0.0165 2643.5 0.0168 0.0168 2945.0 0.0171 0.0171 3276.5 0.0174 0.0174 --2.0 -1.8 132 9.0 0.1576 0.1576 11.0 0.1313 0.1313 13.5 0.1074 0.1074 16.5 0.0874 0.0874 19.5 0.0733 0.0733 22.5 0.0629 0.0629 26.0 0.0538 0.0538 30.0 0.0462 0.0462 34.5 0.0399 0.0399 40.0 0.0344 0.0344 46.0 0.0302 0.0302 52.5 0.0269 0.0269 60.0 0.0241 0.0241 69.0 0.0218 0.0218 79.0 0.0199 0.0199 90.5 0.0183 0.0183 105.5 0.0168 0.0168 123.5 0.0155 0.0155 143.0 0.0145 0.0145 163.5 0.0137 0.0137 185.0 0.0130 0.0130 208.0 0.0125 0.0125 232.5 0.0120 0.0120 258.5 0.0116 0.0116 286.0 0.0113 0.0113 331.0 0.0110 0.0110 396.0 0.0106 0.0106 468.5 0.0105 0.0105 549.5 0.0109 0.0109 639.0 0.0113 0.0113 738.0 0.0118 0.0118 847.5 0.0122 0.0122 968.5 0.0126 0.0126 1102.0 0.0130 0.0130 1249.5 0.0133 0.0133 1412.0 0.0137 0.0137 1590.5 0.0140 0.0140 1787.0 0.0144 0.0144 1945.0 0.0146 0.0146 2119.0 0.0149 0.0149 2369.0 0.0152 0.0152 2643.5 0.0155 0.0155 2945.0 0.0159 0.0159 3276.5 0.0162 0.0162 --1.8 -1.6 132 9.0 0.1211 0.1211 11.0 0.1035 0.1035 13.5 0.0874 0.0874 16.5 0.0736 0.0736 19.5 0.0636 0.0636 22.5 0.0560 0.0560 26.0 0.0493 0.0493 30.0 0.0435 0.0435 34.5 0.0386 0.0386 40.0 0.0342 0.0342 46.0 0.0306 0.0306 52.5 0.0277 0.0277 60.0 0.0252 0.0252 69.0 0.0228 0.0228 79.0 0.0209 0.0209 90.5 0.0192 0.0192 105.5 0.0176 0.0176 123.5 0.0161 0.0161 143.0 0.0149 0.0149 163.5 0.0140 0.0140 185.0 0.0133 0.0133 208.0 0.0126 0.0126 232.5 0.0121 0.0121 258.5 0.0117 0.0117 286.0 0.0113 0.0113 331.0 0.0109 0.0109 396.0 0.0106 0.0106 468.5 0.0104 0.0104 549.5 0.0109 0.0109 639.0 0.0114 0.0114 738.0 0.0119 0.0119 847.5 0.0124 0.0124 968.5 0.0130 0.0130 1102.0 0.0135 0.0135 1249.5 0.0138 0.0138 1412.0 0.0142 0.0142 1590.5 0.0145 0.0145 1787.0 0.0149 0.0149 1945.0 0.0151 0.0151 2119.0 0.0154 0.0154 2369.0 0.0157 0.0157 2643.5 0.0160 0.0160 2945.0 0.0163 0.0163 3276.5 0.0166 0.0166 --1.6 -1.4 132 9.0 0.1087 0.1087 11.0 0.0927 0.0927 13.5 0.0782 0.0782 16.5 0.0658 0.0658 19.5 0.0568 0.0568 22.5 0.0500 0.0500 26.0 0.0441 0.0441 30.0 0.0390 0.0390 34.5 0.0347 0.0347 40.0 0.0308 0.0308 46.0 0.0277 0.0277 52.5 0.0253 0.0253 60.0 0.0231 0.0231 69.0 0.0211 0.0211 79.0 0.0195 0.0195 90.5 0.0181 0.0181 105.5 0.0167 0.0167 123.5 0.0154 0.0154 143.0 0.0144 0.0144 163.5 0.0136 0.0136 185.0 0.0130 0.0130 208.0 0.0124 0.0124 232.5 0.0120 0.0120 258.5 0.0116 0.0116 286.0 0.0112 0.0112 331.0 0.0109 0.0109 396.0 0.0105 0.0105 468.5 0.0103 0.0103 549.5 0.0107 0.0107 639.0 0.0111 0.0111 738.0 0.0116 0.0116 847.5 0.0120 0.0120 968.5 0.0124 0.0124 1102.0 0.0128 0.0128 1249.5 0.0132 0.0132 1412.0 0.0136 0.0136 1590.5 0.0139 0.0139 1787.0 0.0143 0.0143 1945.0 0.0145 0.0145 2119.0 0.0148 0.0148 2369.0 0.0151 0.0151 2643.5 0.0155 0.0155 2945.0 0.0158 0.0158 3276.5 0.0161 0.0161 --1.4 -1.2 132 9.0 0.1058 0.1058 11.0 0.0871 0.0871 13.5 0.0706 0.0706 16.5 0.0572 0.0572 19.5 0.0480 0.0480 22.5 0.0415 0.0415 26.0 0.0361 0.0361 30.0 0.0318 0.0318 34.5 0.0285 0.0285 40.0 0.0257 0.0257 46.0 0.0237 0.0237 52.5 0.0221 0.0221 60.0 0.0208 0.0208 69.0 0.0196 0.0196 79.0 0.0186 0.0186 90.5 0.0177 0.0177 105.5 0.0167 0.0167 123.5 0.0158 0.0158 143.0 0.0149 0.0149 163.5 0.0142 0.0142 185.0 0.0136 0.0136 208.0 0.0130 0.0130 232.5 0.0125 0.0125 258.5 0.0121 0.0121 286.0 0.0117 0.0117 331.0 0.0112 0.0112 396.0 0.0107 0.0107 468.5 0.0103 0.0103 549.5 0.0106 0.0106 639.0 0.0109 0.0109 738.0 0.0112 0.0112 847.5 0.0116 0.0116 968.5 0.0119 0.0119 1102.0 0.0123 0.0123 1249.5 0.0126 0.0126 1412.0 0.0130 0.0130 1590.5 0.0133 0.0133 1787.0 0.0137 0.0137 1945.0 0.0139 0.0139 2119.0 0.0142 0.0142 2369.0 0.0145 0.0145 2643.5 0.0149 0.0149 2945.0 0.0152 0.0152 3276.5 0.0155 0.0155 --1.2 -1.0 132 9.0 0.1051 0.1051 11.0 0.0870 0.0870 13.5 0.0710 0.0710 16.5 0.0578 0.0578 19.5 0.0488 0.0488 22.5 0.0424 0.0424 26.0 0.0370 0.0370 30.0 0.0327 0.0327 34.5 0.0293 0.0293 40.0 0.0264 0.0264 46.0 0.0243 0.0243 52.5 0.0226 0.0226 60.0 0.0212 0.0212 69.0 0.0199 0.0199 79.0 0.0187 0.0187 90.5 0.0177 0.0177 105.5 0.0167 0.0167 123.5 0.0157 0.0157 143.0 0.0148 0.0148 163.5 0.0140 0.0140 185.0 0.0134 0.0134 208.0 0.0128 0.0128 232.5 0.0123 0.0123 258.5 0.0119 0.0119 286.0 0.0115 0.0115 331.0 0.0110 0.0110 396.0 0.0105 0.0105 468.5 0.0102 0.0102 549.5 0.0105 0.0105 639.0 0.0109 0.0109 738.0 0.0112 0.0112 847.5 0.0116 0.0116 968.5 0.0120 0.0120 1102.0 0.0125 0.0125 1249.5 0.0129 0.0129 1412.0 0.0133 0.0133 1590.5 0.0136 0.0136 1787.0 0.0140 0.0140 1945.0 0.0142 0.0142 2119.0 0.0145 0.0145 2369.0 0.0148 0.0148 2643.5 0.0152 0.0152 2945.0 0.0155 0.0155 3276.5 0.0158 0.0158 --1.0 -0.8 132 9.0 0.0985 0.0985 11.0 0.0830 0.0830 13.5 0.0691 0.0691 16.5 0.0576 0.0576 19.5 0.0495 0.0495 22.5 0.0436 0.0436 26.0 0.0386 0.0386 30.0 0.0345 0.0345 34.5 0.0311 0.0311 40.0 0.0282 0.0282 46.0 0.0259 0.0259 52.5 0.0241 0.0241 60.0 0.0223 0.0223 69.0 0.0207 0.0207 79.0 0.0193 0.0193 90.5 0.0181 0.0181 105.5 0.0168 0.0168 123.5 0.0156 0.0156 143.0 0.0146 0.0146 163.5 0.0137 0.0137 185.0 0.0130 0.0130 208.0 0.0124 0.0124 232.5 0.0118 0.0118 258.5 0.0114 0.0114 286.0 0.0110 0.0110 331.0 0.0105 0.0105 396.0 0.0101 0.0101 468.5 0.0098 0.0098 549.5 0.0102 0.0102 639.0 0.0107 0.0107 738.0 0.0112 0.0112 847.5 0.0118 0.0118 968.5 0.0123 0.0123 1102.0 0.0128 0.0128 1249.5 0.0134 0.0134 1412.0 0.0139 0.0139 1590.5 0.0143 0.0143 1787.0 0.0146 0.0146 1945.0 0.0149 0.0149 2119.0 0.0151 0.0151 2369.0 0.0155 0.0155 2643.5 0.0158 0.0158 2945.0 0.0161 0.0161 3276.5 0.0164 0.0164 --0.8 -0.6 132 9.0 0.0952 0.0952 11.0 0.0810 0.0810 13.5 0.0681 0.0681 16.5 0.0573 0.0573 19.5 0.0498 0.0498 22.5 0.0443 0.0443 26.0 0.0395 0.0395 30.0 0.0355 0.0355 34.5 0.0322 0.0322 40.0 0.0293 0.0293 46.0 0.0270 0.0270 52.5 0.0251 0.0251 60.0 0.0232 0.0232 69.0 0.0215 0.0215 79.0 0.0200 0.0200 90.5 0.0186 0.0186 105.5 0.0172 0.0172 123.5 0.0159 0.0159 143.0 0.0148 0.0148 163.5 0.0138 0.0138 185.0 0.0130 0.0130 208.0 0.0124 0.0124 232.5 0.0118 0.0118 258.5 0.0113 0.0113 286.0 0.0109 0.0109 331.0 0.0104 0.0104 396.0 0.0099 0.0099 468.5 0.0097 0.0097 549.5 0.0101 0.0101 639.0 0.0107 0.0107 738.0 0.0112 0.0112 847.5 0.0118 0.0118 968.5 0.0124 0.0124 1102.0 0.0130 0.0130 1249.5 0.0136 0.0136 1412.0 0.0142 0.0142 1590.5 0.0146 0.0146 1787.0 0.0149 0.0149 1945.0 0.0152 0.0152 2119.0 0.0154 0.0154 2369.0 0.0157 0.0157 2643.5 0.0160 0.0160 2945.0 0.0164 0.0164 3276.5 0.0167 0.0167 --0.6 -0.4 132 9.0 0.0923 0.0923 11.0 0.0783 0.0783 13.5 0.0657 0.0657 16.5 0.0552 0.0552 19.5 0.0479 0.0479 22.5 0.0425 0.0425 26.0 0.0379 0.0379 30.0 0.0340 0.0340 34.5 0.0308 0.0308 40.0 0.0279 0.0279 46.0 0.0256 0.0256 52.5 0.0238 0.0238 60.0 0.0220 0.0220 69.0 0.0204 0.0204 79.0 0.0190 0.0190 90.5 0.0178 0.0178 105.5 0.0165 0.0165 123.5 0.0153 0.0153 143.0 0.0143 0.0143 163.5 0.0135 0.0135 185.0 0.0128 0.0128 208.0 0.0122 0.0122 232.5 0.0116 0.0116 258.5 0.0112 0.0112 286.0 0.0108 0.0108 331.0 0.0104 0.0104 396.0 0.0099 0.0099 468.5 0.0097 0.0097 549.5 0.0101 0.0101 639.0 0.0105 0.0105 738.0 0.0110 0.0110 847.5 0.0115 0.0115 968.5 0.0120 0.0120 1102.0 0.0125 0.0125 1249.5 0.0129 0.0129 1412.0 0.0134 0.0134 1590.5 0.0138 0.0138 1787.0 0.0142 0.0142 1945.0 0.0144 0.0144 2119.0 0.0147 0.0147 2369.0 0.0150 0.0150 2643.5 0.0153 0.0153 2945.0 0.0157 0.0157 3276.5 0.0160 0.0160 --0.4 -0.2 132 9.0 0.0941 0.0941 11.0 0.0797 0.0797 13.5 0.0667 0.0667 16.5 0.0560 0.0560 19.5 0.0485 0.0485 22.5 0.0431 0.0431 26.0 0.0384 0.0384 30.0 0.0345 0.0345 34.5 0.0313 0.0313 40.0 0.0285 0.0285 46.0 0.0263 0.0263 52.5 0.0245 0.0245 60.0 0.0227 0.0227 69.0 0.0210 0.0210 79.0 0.0196 0.0196 90.5 0.0183 0.0183 105.5 0.0170 0.0170 123.5 0.0157 0.0157 143.0 0.0147 0.0147 163.5 0.0138 0.0138 185.0 0.0130 0.0130 208.0 0.0124 0.0124 232.5 0.0118 0.0118 258.5 0.0113 0.0113 286.0 0.0109 0.0109 331.0 0.0104 0.0104 396.0 0.0100 0.0100 468.5 0.0097 0.0097 549.5 0.0101 0.0101 639.0 0.0106 0.0106 738.0 0.0112 0.0112 847.5 0.0117 0.0117 968.5 0.0122 0.0122 1102.0 0.0128 0.0128 1249.5 0.0133 0.0133 1412.0 0.0139 0.0139 1590.5 0.0143 0.0143 1787.0 0.0146 0.0146 1945.0 0.0149 0.0149 2119.0 0.0151 0.0151 2369.0 0.0154 0.0154 2643.5 0.0158 0.0158 2945.0 0.0161 0.0161 3276.5 0.0164 0.0164 --0.2 0.0 132 9.0 0.0901 0.0901 11.0 0.0761 0.0761 13.5 0.0635 0.0635 16.5 0.0532 0.0532 19.5 0.0460 0.0460 22.5 0.0408 0.0408 26.0 0.0363 0.0363 30.0 0.0326 0.0326 34.5 0.0295 0.0295 40.0 0.0268 0.0268 46.0 0.0246 0.0246 52.5 0.0228 0.0228 60.0 0.0212 0.0212 69.0 0.0197 0.0197 79.0 0.0184 0.0184 90.5 0.0172 0.0172 105.5 0.0161 0.0161 123.5 0.0150 0.0150 143.0 0.0141 0.0141 163.5 0.0133 0.0133 185.0 0.0126 0.0126 208.0 0.0121 0.0121 232.5 0.0116 0.0116 258.5 0.0112 0.0112 286.0 0.0108 0.0108 331.0 0.0104 0.0104 396.0 0.0100 0.0100 468.5 0.0098 0.0098 549.5 0.0101 0.0101 639.0 0.0105 0.0105 738.0 0.0109 0.0109 847.5 0.0114 0.0114 968.5 0.0118 0.0118 1102.0 0.0122 0.0122 1249.5 0.0126 0.0126 1412.0 0.0130 0.0130 1590.5 0.0134 0.0134 1787.0 0.0138 0.0138 1945.0 0.0140 0.0140 2119.0 0.0143 0.0143 2369.0 0.0146 0.0146 2643.5 0.0150 0.0150 2945.0 0.0153 0.0153 3276.5 0.0156 0.0156 -0.0 0.2 132 9.0 0.0901 0.0901 11.0 0.0761 0.0761 13.5 0.0635 0.0635 16.5 0.0532 0.0532 19.5 0.0460 0.0460 22.5 0.0408 0.0408 26.0 0.0363 0.0363 30.0 0.0326 0.0326 34.5 0.0295 0.0295 40.0 0.0268 0.0268 46.0 0.0246 0.0246 52.5 0.0228 0.0228 60.0 0.0212 0.0212 69.0 0.0197 0.0197 79.0 0.0184 0.0184 90.5 0.0172 0.0172 105.5 0.0161 0.0161 123.5 0.0150 0.0150 143.0 0.0141 0.0141 163.5 0.0133 0.0133 185.0 0.0126 0.0126 208.0 0.0121 0.0121 232.5 0.0116 0.0116 258.5 0.0112 0.0112 286.0 0.0108 0.0108 331.0 0.0104 0.0104 396.0 0.0100 0.0100 468.5 0.0098 0.0098 549.5 0.0101 0.0101 639.0 0.0105 0.0105 738.0 0.0109 0.0109 847.5 0.0114 0.0114 968.5 0.0118 0.0118 1102.0 0.0122 0.0122 1249.5 0.0126 0.0126 1412.0 0.0130 0.0130 1590.5 0.0134 0.0134 1787.0 0.0138 0.0138 1945.0 0.0140 0.0140 2119.0 0.0143 0.0143 2369.0 0.0146 0.0146 2643.5 0.0150 0.0150 2945.0 0.0153 0.0153 3276.5 0.0156 0.0156 -0.2 0.4 132 9.0 0.0941 0.0941 11.0 0.0797 0.0797 13.5 0.0667 0.0667 16.5 0.0560 0.0560 19.5 0.0485 0.0485 22.5 0.0431 0.0431 26.0 0.0384 0.0384 30.0 0.0345 0.0345 34.5 0.0313 0.0313 40.0 0.0285 0.0285 46.0 0.0263 0.0263 52.5 0.0245 0.0245 60.0 0.0227 0.0227 69.0 0.0210 0.0210 79.0 0.0196 0.0196 90.5 0.0183 0.0183 105.5 0.0170 0.0170 123.5 0.0157 0.0157 143.0 0.0147 0.0147 163.5 0.0138 0.0138 185.0 0.0130 0.0130 208.0 0.0124 0.0124 232.5 0.0118 0.0118 258.5 0.0113 0.0113 286.0 0.0109 0.0109 331.0 0.0104 0.0104 396.0 0.0100 0.0100 468.5 0.0097 0.0097 549.5 0.0101 0.0101 639.0 0.0106 0.0106 738.0 0.0112 0.0112 847.5 0.0117 0.0117 968.5 0.0122 0.0122 1102.0 0.0128 0.0128 1249.5 0.0133 0.0133 1412.0 0.0139 0.0139 1590.5 0.0143 0.0143 1787.0 0.0146 0.0146 1945.0 0.0149 0.0149 2119.0 0.0151 0.0151 2369.0 0.0154 0.0154 2643.5 0.0158 0.0158 2945.0 0.0161 0.0161 3276.5 0.0164 0.0164 -0.4 0.6 132 9.0 0.0923 0.0923 11.0 0.0783 0.0783 13.5 0.0657 0.0657 16.5 0.0552 0.0552 19.5 0.0479 0.0479 22.5 0.0425 0.0425 26.0 0.0379 0.0379 30.0 0.0340 0.0340 34.5 0.0308 0.0308 40.0 0.0279 0.0279 46.0 0.0256 0.0256 52.5 0.0238 0.0238 60.0 0.0220 0.0220 69.0 0.0204 0.0204 79.0 0.0190 0.0190 90.5 0.0178 0.0178 105.5 0.0165 0.0165 123.5 0.0153 0.0153 143.0 0.0143 0.0143 163.5 0.0135 0.0135 185.0 0.0128 0.0128 208.0 0.0122 0.0122 232.5 0.0116 0.0116 258.5 0.0112 0.0112 286.0 0.0108 0.0108 331.0 0.0104 0.0104 396.0 0.0099 0.0099 468.5 0.0097 0.0097 549.5 0.0101 0.0101 639.0 0.0105 0.0105 738.0 0.0110 0.0110 847.5 0.0115 0.0115 968.5 0.0120 0.0120 1102.0 0.0125 0.0125 1249.5 0.0129 0.0129 1412.0 0.0134 0.0134 1590.5 0.0138 0.0138 1787.0 0.0142 0.0142 1945.0 0.0144 0.0144 2119.0 0.0147 0.0147 2369.0 0.0150 0.0150 2643.5 0.0153 0.0153 2945.0 0.0157 0.0157 3276.5 0.0160 0.0160 -0.6 0.8 132 9.0 0.0952 0.0952 11.0 0.0810 0.0810 13.5 0.0681 0.0681 16.5 0.0573 0.0573 19.5 0.0498 0.0498 22.5 0.0443 0.0443 26.0 0.0395 0.0395 30.0 0.0355 0.0355 34.5 0.0322 0.0322 40.0 0.0293 0.0293 46.0 0.0270 0.0270 52.5 0.0251 0.0251 60.0 0.0232 0.0232 69.0 0.0215 0.0215 79.0 0.0200 0.0200 90.5 0.0186 0.0186 105.5 0.0172 0.0172 123.5 0.0159 0.0159 143.0 0.0148 0.0148 163.5 0.0138 0.0138 185.0 0.0130 0.0130 208.0 0.0124 0.0124 232.5 0.0118 0.0118 258.5 0.0113 0.0113 286.0 0.0109 0.0109 331.0 0.0104 0.0104 396.0 0.0099 0.0099 468.5 0.0097 0.0097 549.5 0.0101 0.0101 639.0 0.0107 0.0107 738.0 0.0112 0.0112 847.5 0.0118 0.0118 968.5 0.0124 0.0124 1102.0 0.0130 0.0130 1249.5 0.0136 0.0136 1412.0 0.0142 0.0142 1590.5 0.0146 0.0146 1787.0 0.0149 0.0149 1945.0 0.0152 0.0152 2119.0 0.0154 0.0154 2369.0 0.0157 0.0157 2643.5 0.0160 0.0160 2945.0 0.0164 0.0164 3276.5 0.0167 0.0167 -0.8 1.0 132 9.0 0.0985 0.0985 11.0 0.0830 0.0830 13.5 0.0691 0.0691 16.5 0.0576 0.0576 19.5 0.0495 0.0495 22.5 0.0436 0.0436 26.0 0.0386 0.0386 30.0 0.0345 0.0345 34.5 0.0311 0.0311 40.0 0.0282 0.0282 46.0 0.0259 0.0259 52.5 0.0241 0.0241 60.0 0.0223 0.0223 69.0 0.0207 0.0207 79.0 0.0193 0.0193 90.5 0.0181 0.0181 105.5 0.0168 0.0168 123.5 0.0156 0.0156 143.0 0.0146 0.0146 163.5 0.0137 0.0137 185.0 0.0130 0.0130 208.0 0.0124 0.0124 232.5 0.0118 0.0118 258.5 0.0114 0.0114 286.0 0.0110 0.0110 331.0 0.0105 0.0105 396.0 0.0101 0.0101 468.5 0.0098 0.0098 549.5 0.0102 0.0102 639.0 0.0107 0.0107 738.0 0.0112 0.0112 847.5 0.0118 0.0118 968.5 0.0123 0.0123 1102.0 0.0128 0.0128 1249.5 0.0134 0.0134 1412.0 0.0139 0.0139 1590.5 0.0143 0.0143 1787.0 0.0146 0.0146 1945.0 0.0149 0.0149 2119.0 0.0151 0.0151 2369.0 0.0155 0.0155 2643.5 0.0158 0.0158 2945.0 0.0161 0.0161 3276.5 0.0164 0.0164 -1.0 1.2 132 9.0 0.1051 0.1051 11.0 0.0870 0.0870 13.5 0.0710 0.0710 16.5 0.0578 0.0578 19.5 0.0488 0.0488 22.5 0.0424 0.0424 26.0 0.0370 0.0370 30.0 0.0327 0.0327 34.5 0.0293 0.0293 40.0 0.0264 0.0264 46.0 0.0243 0.0243 52.5 0.0226 0.0226 60.0 0.0212 0.0212 69.0 0.0199 0.0199 79.0 0.0187 0.0187 90.5 0.0177 0.0177 105.5 0.0167 0.0167 123.5 0.0157 0.0157 143.0 0.0148 0.0148 163.5 0.0140 0.0140 185.0 0.0134 0.0134 208.0 0.0128 0.0128 232.5 0.0123 0.0123 258.5 0.0119 0.0119 286.0 0.0115 0.0115 331.0 0.0110 0.0110 396.0 0.0105 0.0105 468.5 0.0102 0.0102 549.5 0.0105 0.0105 639.0 0.0109 0.0109 738.0 0.0112 0.0112 847.5 0.0116 0.0116 968.5 0.0120 0.0120 1102.0 0.0125 0.0125 1249.5 0.0129 0.0129 1412.0 0.0133 0.0133 1590.5 0.0136 0.0136 1787.0 0.0140 0.0140 1945.0 0.0142 0.0142 2119.0 0.0145 0.0145 2369.0 0.0148 0.0148 2643.5 0.0152 0.0152 2945.0 0.0155 0.0155 3276.5 0.0158 0.0158 -1.2 1.4 132 9.0 0.1058 0.1058 11.0 0.0871 0.0871 13.5 0.0706 0.0706 16.5 0.0572 0.0572 19.5 0.0480 0.0480 22.5 0.0415 0.0415 26.0 0.0361 0.0361 30.0 0.0318 0.0318 34.5 0.0285 0.0285 40.0 0.0257 0.0257 46.0 0.0237 0.0237 52.5 0.0221 0.0221 60.0 0.0208 0.0208 69.0 0.0196 0.0196 79.0 0.0186 0.0186 90.5 0.0177 0.0177 105.5 0.0167 0.0167 123.5 0.0158 0.0158 143.0 0.0149 0.0149 163.5 0.0142 0.0142 185.0 0.0136 0.0136 208.0 0.0130 0.0130 232.5 0.0125 0.0125 258.5 0.0121 0.0121 286.0 0.0117 0.0117 331.0 0.0112 0.0112 396.0 0.0107 0.0107 468.5 0.0103 0.0103 549.5 0.0106 0.0106 639.0 0.0109 0.0109 738.0 0.0112 0.0112 847.5 0.0116 0.0116 968.5 0.0119 0.0119 1102.0 0.0123 0.0123 1249.5 0.0126 0.0126 1412.0 0.0130 0.0130 1590.5 0.0133 0.0133 1787.0 0.0137 0.0137 1945.0 0.0139 0.0139 2119.0 0.0142 0.0142 2369.0 0.0145 0.0145 2643.5 0.0149 0.0149 2945.0 0.0152 0.0152 3276.5 0.0155 0.0155 -1.4 1.6 132 9.0 0.1087 0.1087 11.0 0.0927 0.0927 13.5 0.0782 0.0782 16.5 0.0658 0.0658 19.5 0.0568 0.0568 22.5 0.0500 0.0500 26.0 0.0441 0.0441 30.0 0.0390 0.0390 34.5 0.0347 0.0347 40.0 0.0308 0.0308 46.0 0.0277 0.0277 52.5 0.0253 0.0253 60.0 0.0231 0.0231 69.0 0.0211 0.0211 79.0 0.0195 0.0195 90.5 0.0181 0.0181 105.5 0.0167 0.0167 123.5 0.0154 0.0154 143.0 0.0144 0.0144 163.5 0.0136 0.0136 185.0 0.0130 0.0130 208.0 0.0124 0.0124 232.5 0.0120 0.0120 258.5 0.0116 0.0116 286.0 0.0112 0.0112 331.0 0.0109 0.0109 396.0 0.0105 0.0105 468.5 0.0103 0.0103 549.5 0.0107 0.0107 639.0 0.0111 0.0111 738.0 0.0116 0.0116 847.5 0.0120 0.0120 968.5 0.0124 0.0124 1102.0 0.0128 0.0128 1249.5 0.0132 0.0132 1412.0 0.0136 0.0136 1590.5 0.0139 0.0139 1787.0 0.0143 0.0143 1945.0 0.0145 0.0145 2119.0 0.0148 0.0148 2369.0 0.0151 0.0151 2643.5 0.0155 0.0155 2945.0 0.0158 0.0158 3276.5 0.0161 0.0161 -1.6 1.8 132 9.0 0.1211 0.1211 11.0 0.1035 0.1035 13.5 0.0874 0.0874 16.5 0.0736 0.0736 19.5 0.0636 0.0636 22.5 0.0560 0.0560 26.0 0.0493 0.0493 30.0 0.0435 0.0435 34.5 0.0386 0.0386 40.0 0.0342 0.0342 46.0 0.0306 0.0306 52.5 0.0277 0.0277 60.0 0.0252 0.0252 69.0 0.0228 0.0228 79.0 0.0209 0.0209 90.5 0.0192 0.0192 105.5 0.0176 0.0176 123.5 0.0161 0.0161 143.0 0.0149 0.0149 163.5 0.0140 0.0140 185.0 0.0133 0.0133 208.0 0.0126 0.0126 232.5 0.0121 0.0121 258.5 0.0117 0.0117 286.0 0.0113 0.0113 331.0 0.0109 0.0109 396.0 0.0106 0.0106 468.5 0.0104 0.0104 549.5 0.0109 0.0109 639.0 0.0114 0.0114 738.0 0.0119 0.0119 847.5 0.0124 0.0124 968.5 0.0130 0.0130 1102.0 0.0135 0.0135 1249.5 0.0138 0.0138 1412.0 0.0142 0.0142 1590.5 0.0145 0.0145 1787.0 0.0149 0.0149 1945.0 0.0151 0.0151 2119.0 0.0154 0.0154 2369.0 0.0157 0.0157 2643.5 0.0160 0.0160 2945.0 0.0163 0.0163 3276.5 0.0166 0.0166 -1.8 2.0 132 9.0 0.1576 0.1576 11.0 0.1313 0.1313 13.5 0.1074 0.1074 16.5 0.0874 0.0874 19.5 0.0733 0.0733 22.5 0.0629 0.0629 26.0 0.0538 0.0538 30.0 0.0462 0.0462 34.5 0.0399 0.0399 40.0 0.0344 0.0344 46.0 0.0302 0.0302 52.5 0.0269 0.0269 60.0 0.0241 0.0241 69.0 0.0218 0.0218 79.0 0.0199 0.0199 90.5 0.0183 0.0183 105.5 0.0168 0.0168 123.5 0.0155 0.0155 143.0 0.0145 0.0145 163.5 0.0137 0.0137 185.0 0.0130 0.0130 208.0 0.0125 0.0125 232.5 0.0120 0.0120 258.5 0.0116 0.0116 286.0 0.0113 0.0113 331.0 0.0110 0.0110 396.0 0.0106 0.0106 468.5 0.0105 0.0105 549.5 0.0109 0.0109 639.0 0.0113 0.0113 738.0 0.0118 0.0118 847.5 0.0122 0.0122 968.5 0.0126 0.0126 1102.0 0.0130 0.0130 1249.5 0.0133 0.0133 1412.0 0.0137 0.0137 1590.5 0.0140 0.0140 1787.0 0.0144 0.0144 1945.0 0.0146 0.0146 2119.0 0.0149 0.0149 2369.0 0.0152 0.0152 2643.5 0.0155 0.0155 2945.0 0.0159 0.0159 3276.5 0.0162 0.0162 -2.0 2.2 132 9.0 0.2103 0.2103 11.0 0.1714 0.1714 13.5 0.1359 0.1359 16.5 0.1068 0.1068 19.5 0.0866 0.0866 22.5 0.0720 0.0720 26.0 0.0597 0.0597 30.0 0.0496 0.0496 34.5 0.0417 0.0417 40.0 0.0352 0.0352 46.0 0.0305 0.0305 52.5 0.0270 0.0270 60.0 0.0242 0.0242 69.0 0.0220 0.0220 79.0 0.0202 0.0202 90.5 0.0189 0.0189 105.5 0.0176 0.0176 123.5 0.0165 0.0165 143.0 0.0156 0.0156 163.5 0.0149 0.0149 185.0 0.0143 0.0143 208.0 0.0138 0.0138 232.5 0.0133 0.0133 258.5 0.0130 0.0130 286.0 0.0127 0.0127 331.0 0.0123 0.0123 396.0 0.0121 0.0121 468.5 0.0120 0.0120 549.5 0.0124 0.0124 639.0 0.0130 0.0130 738.0 0.0136 0.0136 847.5 0.0140 0.0140 968.5 0.0143 0.0143 1102.0 0.0146 0.0146 1249.5 0.0149 0.0149 1412.0 0.0152 0.0152 1590.5 0.0155 0.0155 1787.0 0.0158 0.0158 1945.0 0.0160 0.0160 2119.0 0.0162 0.0162 2369.0 0.0165 0.0165 2643.5 0.0168 0.0168 2945.0 0.0171 0.0171 3276.5 0.0174 0.0174 -2.2 2.4 132 9.0 0.2192 0.2192 11.0 0.1791 0.1791 13.5 0.1415 0.1415 16.5 0.1104 0.1104 19.5 0.0889 0.0889 22.5 0.0734 0.0734 26.0 0.0604 0.0604 30.0 0.0499 0.0499 34.5 0.0418 0.0418 40.0 0.0352 0.0352 46.0 0.0305 0.0305 52.5 0.0271 0.0271 60.0 0.0244 0.0244 69.0 0.0222 0.0222 79.0 0.0205 0.0205 90.5 0.0192 0.0192 105.5 0.0180 0.0180 123.5 0.0170 0.0170 143.0 0.0162 0.0162 163.5 0.0155 0.0155 185.0 0.0149 0.0149 208.0 0.0144 0.0144 232.5 0.0139 0.0139 258.5 0.0136 0.0136 286.0 0.0133 0.0133 331.0 0.0129 0.0129 396.0 0.0126 0.0126 468.5 0.0126 0.0126 549.5 0.0130 0.0130 639.0 0.0134 0.0134 738.0 0.0136 0.0136 847.5 0.0139 0.0139 968.5 0.0141 0.0141 1102.0 0.0144 0.0144 1249.5 0.0147 0.0147 1412.0 0.0150 0.0150 1590.5 0.0153 0.0153 1787.0 0.0156 0.0156 1945.0 0.0158 0.0158 2119.0 0.0160 0.0160 2369.0 0.0163 0.0163 2643.5 0.0166 0.0166 2945.0 0.0169 0.0169 3276.5 0.0172 0.0172 -2.4 2.6 132 9.0 0.1645 0.1645 11.0 0.1378 0.1378 13.5 0.1116 0.1116 16.5 0.0891 0.0891 19.5 0.0736 0.0736 22.5 0.0624 0.0624 26.0 0.0533 0.0533 30.0 0.0461 0.0461 34.5 0.0406 0.0406 40.0 0.0363 0.0363 46.0 0.0334 0.0334 52.5 0.0311 0.0311 60.0 0.0287 0.0287 69.0 0.0267 0.0267 79.0 0.0250 0.0250 90.5 0.0235 0.0235 105.5 0.0220 0.0220 123.5 0.0206 0.0206 143.0 0.0195 0.0195 163.5 0.0186 0.0186 185.0 0.0179 0.0179 208.0 0.0174 0.0174 232.5 0.0170 0.0170 258.5 0.0168 0.0168 286.0 0.0167 0.0167 331.0 0.0168 0.0168 396.0 0.0173 0.0173 468.5 0.0177 0.0177 549.5 0.0183 0.0183 639.0 0.0186 0.0186 738.0 0.0187 0.0187 847.5 0.0189 0.0189 968.5 0.0191 0.0191 1102.0 0.0193 0.0193 1249.5 0.0195 0.0195 1412.0 0.0197 0.0197 1590.5 0.0199 0.0199 1787.0 0.0201 0.0201 1945.0 0.0203 0.0203 2119.0 0.0205 0.0205 2369.0 0.0207 0.0207 2643.5 0.0209 0.0209 2945.0 0.0212 0.0212 3276.5 0.0214 0.0214 -2.6 2.8 132 9.0 0.0613 0.0613 11.0 0.0550 0.0550 13.5 0.0498 0.0498 16.5 0.0455 0.0455 19.5 0.0424 0.0424 22.5 0.0401 0.0401 26.0 0.0380 0.0380 30.0 0.0361 0.0361 34.5 0.0344 0.0344 40.0 0.0328 0.0328 46.0 0.0314 0.0314 52.5 0.0300 0.0300 60.0 0.0282 0.0282 69.0 0.0264 0.0264 79.0 0.0248 0.0248 90.5 0.0232 0.0232 105.5 0.0216 0.0216 123.5 0.0201 0.0201 143.0 0.0189 0.0189 163.5 0.0180 0.0180 185.0 0.0173 0.0173 208.0 0.0168 0.0168 232.5 0.0165 0.0165 258.5 0.0164 0.0164 286.0 0.0163 0.0163 331.0 0.0165 0.0165 396.0 0.0171 0.0171 468.5 0.0174 0.0174 549.5 0.0176 0.0176 639.0 0.0178 0.0178 738.0 0.0180 0.0180 847.5 0.0182 0.0182 968.5 0.0185 0.0185 1102.0 0.0187 0.0187 1249.5 0.0190 0.0190 1412.0 0.0192 0.0192 1590.5 0.0194 0.0194 1787.0 0.0197 0.0197 1945.0 0.0199 0.0199 2119.0 0.0201 0.0201 2369.0 0.0203 0.0203 2643.5 0.0206 0.0206 2945.0 0.0208 0.0208 3276.5 0.0210 0.0210 -2.8 3.0 132 9.0 0.0603 0.0603 11.0 0.0553 0.0553 13.5 0.0510 0.0510 16.5 0.0471 0.0471 19.5 0.0440 0.0440 22.5 0.0417 0.0417 26.0 0.0394 0.0394 30.0 0.0375 0.0375 34.5 0.0358 0.0358 40.0 0.0342 0.0342 46.0 0.0328 0.0328 52.5 0.0316 0.0316 60.0 0.0304 0.0304 69.0 0.0293 0.0293 79.0 0.0283 0.0283 90.5 0.0274 0.0274 105.5 0.0266 0.0266 123.5 0.0259 0.0259 143.0 0.0253 0.0253 163.5 0.0249 0.0249 185.0 0.0246 0.0246 208.0 0.0244 0.0244 232.5 0.0243 0.0243 258.5 0.0242 0.0242 286.0 0.0242 0.0242 331.0 0.0241 0.0241 396.0 0.0240 0.0240 468.5 0.0239 0.0239 549.5 0.0240 0.0240 639.0 0.0242 0.0242 738.0 0.0244 0.0244 847.5 0.0246 0.0246 968.5 0.0248 0.0248 1102.0 0.0249 0.0249 1249.5 0.0251 0.0251 1412.0 0.0253 0.0253 1590.5 0.0255 0.0255 1787.0 0.0257 0.0257 1945.0 0.0259 0.0259 2119.0 0.0260 0.0260 2369.0 0.0262 0.0262 2643.5 0.0264 0.0264 2945.0 0.0266 0.0266 3276.5 0.0268 0.0268 -3.0 3.5 132 9.0 0.0763 0.0763 11.0 0.0662 0.0662 13.5 0.0578 0.0578 16.5 0.0515 0.0515 19.5 0.0478 0.0478 22.5 0.0455 0.0455 26.0 0.0437 0.0437 30.0 0.0424 0.0424 34.5 0.0413 0.0413 40.0 0.0403 0.0403 46.0 0.0394 0.0394 52.5 0.0385 0.0385 60.0 0.0375 0.0375 69.0 0.0364 0.0364 79.0 0.0353 0.0353 90.5 0.0343 0.0343 105.5 0.0331 0.0331 123.5 0.0320 0.0320 143.0 0.0311 0.0311 163.5 0.0303 0.0303 185.0 0.0296 0.0296 208.0 0.0291 0.0291 232.5 0.0287 0.0287 258.5 0.0282 0.0282 286.0 0.0279 0.0279 331.0 0.0274 0.0274 396.0 0.0269 0.0269 468.5 0.0266 0.0266 549.5 0.0265 0.0265 639.0 0.0265 0.0265 738.0 0.0266 0.0266 847.5 0.0267 0.0267 968.5 0.0268 0.0268 1102.0 0.0269 0.0269 1249.5 0.0270 0.0270 1412.0 0.0271 0.0271 1590.5 0.0273 0.0273 1787.0 0.0274 0.0274 1945.0 0.0275 0.0275 2119.0 0.0277 0.0277 2369.0 0.0278 0.0278 2643.5 0.0280 0.0280 2945.0 0.0282 0.0282 3276.5 0.0283 0.0283 -3.5 4.0 132 9.0 0.0827 0.0827 11.0 0.0745 0.0745 13.5 0.0673 0.0673 16.5 0.0614 0.0614 19.5 0.0575 0.0575 22.5 0.0547 0.0547 26.0 0.0524 0.0524 30.0 0.0506 0.0506 34.5 0.0491 0.0491 40.0 0.0479 0.0479 46.0 0.0469 0.0469 52.5 0.0454 0.0454 60.0 0.0427 0.0427 69.0 0.0406 0.0406 79.0 0.0391 0.0391 90.5 0.0385 0.0385 105.5 0.0387 0.0387 123.5 0.0402 0.0402 143.0 0.0402 0.0402 163.5 0.0399 0.0399 185.0 0.0397 0.0397 208.0 0.0395 0.0395 232.5 0.0393 0.0393 258.5 0.0392 0.0392 286.0 0.0391 0.0391 331.0 0.0389 0.0389 396.0 0.0388 0.0388 468.5 0.0387 0.0387 549.5 0.0388 0.0388 639.0 0.0389 0.0389 738.0 0.0390 0.0390 847.5 0.0391 0.0391 968.5 0.0392 0.0392 1102.0 0.0393 0.0393 1249.5 0.0394 0.0394 1412.0 0.0395 0.0395 1590.5 0.0397 0.0397 1787.0 0.0398 0.0398 1945.0 0.0399 0.0399 2119.0 0.0400 0.0400 2369.0 0.0401 0.0401 2643.5 0.0402 0.0402 2945.0 0.0403 0.0403 3276.5 0.0405 0.0405 -4.0 4.4 132 9.0 0.0877 0.0877 11.0 0.0791 0.0791 13.5 0.0711 0.0711 16.5 0.0644 0.0644 19.5 0.0597 0.0597 22.5 0.0564 0.0564 26.0 0.0536 0.0536 30.0 0.0513 0.0513 34.5 0.0495 0.0495 40.0 0.0480 0.0480 46.0 0.0468 0.0468 52.5 0.0452 0.0452 60.0 0.0425 0.0425 69.0 0.0402 0.0402 79.0 0.0387 0.0387 90.5 0.0381 0.0381 105.5 0.0384 0.0384 123.5 0.0394 0.0394 143.0 0.0391 0.0391 163.5 0.0388 0.0388 185.0 0.0386 0.0386 208.0 0.0384 0.0384 232.5 0.0383 0.0383 258.5 0.0382 0.0382 286.0 0.0381 0.0381 331.0 0.0380 0.0380 396.0 0.0379 0.0379 468.5 0.0378 0.0378 549.5 0.0379 0.0379 639.0 0.0380 0.0380 738.0 0.0381 0.0381 847.5 0.0382 0.0382 968.5 0.0384 0.0384 1102.0 0.0385 0.0385 1249.5 0.0386 0.0386 1412.0 0.0387 0.0387 1590.5 0.0389 0.0389 1787.0 0.0390 0.0390 1945.0 0.0391 0.0391 2119.0 0.0392 0.0392 2369.0 0.0393 0.0393 2643.5 0.0394 0.0394 2945.0 0.0396 0.0396 3276.5 0.0397 0.0397 -4.4 5.0 132 9.0 0.0634 0.0634 11.0 0.0599 0.0599 13.5 0.0574 0.0574 16.5 0.0555 0.0555 19.5 0.0541 0.0541 22.5 0.0530 0.0530 26.0 0.0519 0.0519 30.0 0.0509 0.0509 34.5 0.0500 0.0500 40.0 0.0490 0.0490 46.0 0.0481 0.0481 52.5 0.0467 0.0467 60.0 0.0440 0.0440 69.0 0.0418 0.0418 79.0 0.0407 0.0407 90.5 0.0401 0.0401 105.5 0.0394 0.0394 123.5 0.0388 0.0388 143.0 0.0383 0.0383 163.5 0.0379 0.0379 185.0 0.0376 0.0376 208.0 0.0373 0.0373 232.5 0.0371 0.0371 258.5 0.0369 0.0369 286.0 0.0367 0.0367 331.0 0.0365 0.0365 396.0 0.0364 0.0364 468.5 0.0362 0.0362 549.5 0.0363 0.0363 639.0 0.0364 0.0364 738.0 0.0365 0.0365 847.5 0.0366 0.0366 968.5 0.0367 0.0367 1102.0 0.0368 0.0368 1249.5 0.0369 0.0369 1412.0 0.0370 0.0370 1590.5 0.0372 0.0372 1787.0 0.0373 0.0373 1945.0 0.0374 0.0374 2119.0 0.0375 0.0375 2369.0 0.0376 0.0376 2643.5 0.0378 0.0378 2945.0 0.0379 0.0379 3276.5 0.0380 0.0380 -5.0 5.4 132 9.0 0.0639 0.0639 11.0 0.0603 0.0603 13.5 0.0577 0.0577 16.5 0.0557 0.0557 19.5 0.0543 0.0543 22.5 0.0531 0.0531 26.0 0.0520 0.0520 30.0 0.0510 0.0510 34.5 0.0500 0.0500 40.0 0.0490 0.0490 46.0 0.0482 0.0482 52.5 0.0474 0.0474 60.0 0.0466 0.0466 69.0 0.0459 0.0459 79.0 0.0453 0.0453 90.5 0.0447 0.0447 105.5 0.0441 0.0441 123.5 0.0436 0.0436 143.0 0.0431 0.0431 163.5 0.0428 0.0428 185.0 0.0425 0.0425 208.0 0.0422 0.0422 232.5 0.0420 0.0420 258.5 0.0419 0.0419 286.0 0.0417 0.0417 331.0 0.0416 0.0416 396.0 0.0414 0.0414 468.5 0.0413 0.0413 549.5 0.0413 0.0413 639.0 0.0414 0.0414 738.0 0.0415 0.0415 847.5 0.0416 0.0416 968.5 0.0417 0.0417 1102.0 0.0418 0.0418 1249.5 0.0419 0.0419 1412.0 0.0420 0.0420 1590.5 0.0421 0.0421 1787.0 0.0422 0.0422 1945.0 0.0423 0.0423 2119.0 0.0424 0.0424 2369.0 0.0425 0.0425 2643.5 0.0426 0.0426 2945.0 0.0427 0.0427 3276.5 0.0429 0.0429 diff --git a/PhysicsTools/PatUtils/interface/ObjectResolutionCalc.h b/PhysicsTools/PatUtils/interface/ObjectResolutionCalc.h index 8d1d37f186530..56b9cdcdcd843 100644 --- a/PhysicsTools/PatUtils/interface/ObjectResolutionCalc.h +++ b/PhysicsTools/PatUtils/interface/ObjectResolutionCalc.h @@ -12,11 +12,6 @@ \version $Id: ObjectResolutionCalc.h,v 1.5 2008/10/08 19:19:25 gpetrucc Exp $ */ -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/Utilities/interface/Exception.h" - #include "DataFormats/PatCandidates/interface/Electron.h" #include "DataFormats/PatCandidates/interface/Muon.h" #include "DataFormats/PatCandidates/interface/Tau.h" @@ -24,11 +19,9 @@ #include "DataFormats/PatCandidates/interface/Jet.h" #include "TF1.h" -#include "TH1.h" #include "TFile.h" -#include "TKey.h" -#include "TString.h" #include "TMultiLayerPerceptron.h" +#include "TString.h" namespace pat { diff --git a/PhysicsTools/PatUtils/python/tools/muonRecoMitigation.py b/PhysicsTools/PatUtils/python/tools/muonRecoMitigation.py index bcfd6bdfd1183..1694f7762c780 100644 --- a/PhysicsTools/PatUtils/python/tools/muonRecoMitigation.py +++ b/PhysicsTools/PatUtils/python/tools/muonRecoMitigation.py @@ -62,11 +62,13 @@ def muonRecoMitigation(process, # now cleaning ================================ cleanedPFCandCollection=cleanCollName+postfix + if runOnMiniAOD: - cleanedPFCandProducer = cms.EDProducer("CandPtrProjector", - src = cms.InputTag(pfCandCollection), - veto = cms.InputTag(badMuonCollection) - ) + import CommonTools.CandAlgos.candPtrProjector_cfi as _mod + cleanedPFCandProducer = _mod.candPtrProjector.clone( + src = pfCandCollection, + veto = badMuonCollection + ) else: cleanedPFCandProducer = cms.EDProducer("PFCandPtrProjector", src = cms.InputTag(pfCandCollection), diff --git a/PhysicsTools/PatUtils/python/tools/runMETCorrectionsAndUncertainties.py b/PhysicsTools/PatUtils/python/tools/runMETCorrectionsAndUncertainties.py index c8dad033f2f64..d13d19055248d 100644 --- a/PhysicsTools/PatUtils/python/tools/runMETCorrectionsAndUncertainties.py +++ b/PhysicsTools/PatUtils/python/tools/runMETCorrectionsAndUncertainties.py @@ -5,6 +5,7 @@ import PhysicsTools.PatAlgos.tools.helpers as configtools from PhysicsTools.PatAlgos.tools.helpers import getPatAlgosToolsTask, addToProcessAndTask from PhysicsTools.PatAlgos.tools.jetTools import switchJetCollection +import CommonTools.CandAlgos.candPtrProjector_cfi as _mod def isValidInputTag(input): @@ -833,17 +834,17 @@ def getMETUncertainties(self, process, metType, metModName, electronCollection, if not hasattr(process, "pfCandsForUnclusteredUnc"+postfix): #Jet projection == - pfCandsNoJets = cms.EDProducer("CandPtrProjector", + pfCandsNoJets = _mod.candPtrProjector.clone( src = pfCandCollection, - veto = copy.copy(jetCollection), + veto = jetCollection, ) addToProcessAndTask("pfCandsNoJets"+postfix, pfCandsNoJets, process, task) metUncSequence += getattr(process, "pfCandsNoJets"+postfix) #electron projection == - pfCandsNoJetsNoEle = cms.EDProducer("CandPtrProjector", - src = cms.InputTag("pfCandsNoJets"+postfix), - veto = copy.copy(electronCollection), + pfCandsNoJetsNoEle = _mod.candPtrProjector.clone( + src = "pfCandsNoJets"+postfix, + veto = electronCollection, ) if not self.getvalue("onMiniAOD"): pfCandsNoJetsNoEle.veto = "pfeGammaToCandidate:electrons" @@ -851,25 +852,25 @@ def getMETUncertainties(self, process, metType, metModName, electronCollection, metUncSequence += getattr(process, "pfCandsNoJetsNoEle"+postfix) #muon projection == - pfCandsNoJetsNoEleNoMu = cms.EDProducer("CandPtrProjector", - src = cms.InputTag("pfCandsNoJetsNoEle"+postfix), - veto = copy.copy(muonCollection), + pfCandsNoJetsNoEleNoMu = _mod.candPtrProjector.clone( + src = "pfCandsNoJetsNoEle"+postfix, + veto = muonCollection, ) addToProcessAndTask("pfCandsNoJetsNoEleNoMu"+postfix, pfCandsNoJetsNoEleNoMu, process, task) metUncSequence += getattr(process, "pfCandsNoJetsNoEleNoMu"+postfix) #tau projection == - pfCandsNoJetsNoEleNoMuNoTau = cms.EDProducer("CandPtrProjector", - src = cms.InputTag("pfCandsNoJetsNoEleNoMu"+postfix), - veto = copy.copy(tauCollection), + pfCandsNoJetsNoEleNoMuNoTau = _mod.candPtrProjector.clone( + src = "pfCandsNoJetsNoEleNoMu"+postfix, + veto = tauCollection, ) addToProcessAndTask("pfCandsNoJetsNoEleNoMuNoTau"+postfix, pfCandsNoJetsNoEleNoMuNoTau, process, task) metUncSequence += getattr(process, "pfCandsNoJetsNoEleNoMuNoTau"+postfix) #photon projection == - pfCandsForUnclusteredUnc = cms.EDProducer("CandPtrProjector", - src = cms.InputTag("pfCandsNoJetsNoEleNoMuNoTau"+postfix), - veto = copy.copy(photonCollection), + pfCandsForUnclusteredUnc = _mod.candPtrProjector.clone( + src = "pfCandsNoJetsNoEleNoMuNoTau"+postfix, + veto = photonCollection, ) if not self.getvalue("onMiniAOD"): pfCandsForUnclusteredUnc.veto = "pfeGammaToCandidate:photons" @@ -1350,9 +1351,9 @@ def getUnclusteredVariationsForMVAMET(self, process, var, val, metUncSequence, pfCandCollection = self._parameters["pfCandCollection"].value #top projection on jets - pfCandsNotInJets = cms.EDProducer("CandPtrProjector", + pfCandsNotInJets = _mod.candPtrProjector.clone( src = pfCandCollection, - veto = cms.InputTag("ak4PFJets") + veto = "ak4PFJets" ) setattr(process, "pfCandsNotInJetsUnclusteredEn"+var+postfix, pfCandsNotInJets) metUncSequence += getattr(process,"pfCandsNotInJetsUnclusteredEn"+var+postfix) @@ -1922,9 +1923,9 @@ def runFixEE2017(self,process,params,jets,cands,goodcolls,patMetModuleSequence,p ) addToProcessAndTask("pfcandidateClustered"+postfix, pfcandidateClustered, process, task) patMetModuleSequence += getattr(process,"pfcandidateClustered"+postfix) - pfcandidateForUnclusteredUnc = cms.EDProducer("CandPtrProjector", + pfcandidateForUnclusteredUnc = _mod.candPtrProjector.clone( src = cands, - veto = cms.InputTag("pfcandidateClustered"+postfix), + veto = "pfcandidateClustered"+postfix, ) addToProcessAndTask("pfcandidateForUnclusteredUnc"+postfix, pfcandidateForUnclusteredUnc, process, task) patMetModuleSequence += getattr(process,"pfcandidateForUnclusteredUnc"+postfix) @@ -1947,9 +1948,9 @@ def runFixEE2017(self,process,params,jets,cands,goodcolls,patMetModuleSequence,p ) addToProcessAndTask("superbad"+postfix, superbad, process, task) patMetModuleSequence += getattr(process,"superbad"+postfix) - pfCandidatesGoodEE2017 = cms.EDProducer("CandPtrProjector", + pfCandidatesGoodEE2017 = _mod.candPtrProjector.clone( src = cands, - veto = cms.InputTag("superbad"+postfix), + veto = "superbad"+postfix, ) addToProcessAndTask("pfCandidatesGoodEE2017"+postfix, pfCandidatesGoodEE2017, process, task) patMetModuleSequence += getattr(process,"pfCandidatesGoodEE2017"+postfix) diff --git a/PhysicsTools/PatUtils/src/ObjectResolutionCalc.cc b/PhysicsTools/PatUtils/src/ObjectResolutionCalc.cc index 744459a889b23..b93bfc5a5ecb3 100644 --- a/PhysicsTools/PatUtils/src/ObjectResolutionCalc.cc +++ b/PhysicsTools/PatUtils/src/ObjectResolutionCalc.cc @@ -3,6 +3,12 @@ #include "PhysicsTools/PatUtils/interface/ObjectResolutionCalc.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/Utilities/interface/Exception.h" + +#include "TH1.h" +#include "TKey.h" + using namespace pat; // constructor with path; default should not be used @@ -11,9 +17,10 @@ ObjectResolutionCalc::ObjectResolutionCalc(const TString& resopath, bool useNN = << ("ObjectResolutionCalc") << "=== Constructing a TopObjectResolutionCalc..."; resoFile_ = new TFile(resopath); if (!resoFile_) - edm::LogError("ObjectResolutionCalc") << "No resolutions fits for this file available: " << resopath << "..."; - TString resObsName[8] = {"_ares", "_bres", "_cres", "_dres", "_thres", "_phres", "_etres", "_etares"}; + throw edm::Exception(edm::errors::LogicError) + << "ObjectResolutionCalc: no resolutions fits for this file available: " << resopath << "..."; + TString resObsName[8] = {"_ares", "_bres", "_cres", "_dres", "_thres", "_phres", "_etres", "_etares"}; TList* keys = resoFile_->GetListOfKeys(); TIter nextitem(keys); TKey* key = nullptr; @@ -70,8 +77,10 @@ int ObjectResolutionCalc::etaBin(float eta) { int nrEtaBins = etaBinVals_.size() - 1; int bin = nrEtaBins - 1; for (int i = 0; i < nrEtaBins; i++) { - if (fabs(eta) > etaBinVals_[i] && fabs(eta) < etaBinVals_[i + 1]) + if (fabs(eta) > etaBinVals_[i] && fabs(eta) < etaBinVals_[i + 1]) { bin = i; + break; + } } return bin; } diff --git a/RecoEcal/EgammaClusterAlgos/src/SCEnergyCorrectorSemiParm.cc b/RecoEcal/EgammaClusterAlgos/src/SCEnergyCorrectorSemiParm.cc index edbbb9f10582e..e50ef324e3d67 100644 --- a/RecoEcal/EgammaClusterAlgos/src/SCEnergyCorrectorSemiParm.cc +++ b/RecoEcal/EgammaClusterAlgos/src/SCEnergyCorrectorSemiParm.cc @@ -206,7 +206,7 @@ std::vector SCEnergyCorrectorSemiParm::getRegDataECALV1(const reco::Super const double raw_energy = sc.rawEnergy(); const int numberOfClusters = sc.clusters().size(); - std::vector localCovariances = EcalClusterTools::localCovariances(seedCluster, recHits, caloTopo_); + const auto& localCovariances = EcalClusterTools::localCovariances(seedCluster, recHits, caloTopo_); const float eLeft = EcalClusterTools::eLeft(seedCluster, recHits, caloTopo_); const float eRight = EcalClusterTools::eRight(seedCluster, recHits, caloTopo_); diff --git a/RecoEcal/EgammaCoreTools/interface/EcalClusterLazyTools.h b/RecoEcal/EgammaCoreTools/interface/EcalClusterLazyTools.h index 6340700f80fa2..ac12a0e0efbd6 100644 --- a/RecoEcal/EgammaCoreTools/interface/EcalClusterLazyTools.h +++ b/RecoEcal/EgammaCoreTools/interface/EcalClusterLazyTools.h @@ -33,7 +33,9 @@ #include "CalibCalorimetry/EcalLaserCorrection/interface/EcalLaserDbRecord.h" #include "RecoLocalCalo/EcalRecAlgos/interface/EcalSeverityLevelAlgoRcd.h" #include "FWCore/Framework/interface/ConsumesCollector.h" - +#include "CondFormats/EcalObjects/interface/EcalPFRecHitThresholds.h" +#include "CondFormats/DataRecord/interface/EcalPFRecHitThresholdsRcd.h" +#include "RecoEgamma/EgammaTools/interface/EgammaLocalCovParamDefaults.h" #include class CaloTopology; @@ -265,12 +267,12 @@ class EcalClusterLazyToolsT : public EcalClusterLazyToolsBase { return ClusterTools::lat(cluster, getEcalRecHitCollection(cluster), geometry_, logW, w0); } - // return a vector v with v[0] = covEtaEta, v[1] = covEtaPhi, v[2] = covPhiPhi - std::vector covariances(const reco::BasicCluster &cluster, float w0 = 4.7) const { + // return an array v with v[0] = covEtaEta, v[1] = covEtaPhi, v[2] = covPhiPhi + std::array covariances(const reco::BasicCluster &cluster, float w0 = 4.7) const { return ClusterTools::covariances(cluster, getEcalRecHitCollection(cluster), topology_, geometry_, w0); } - // return a vector v with v[0] = covIEtaIEta, v[1] = covIEtaIPhi, v[2] = covIPhiIPhi + // return an array v with v[0] = covIEtaIEta, v[1] = covIEtaIPhi, v[2] = covIPhiIPhi // this function calculates differences in eta/phi in units of crystals not // global eta/phi this is gives better performance in the crack regions of // the calorimeter but gives otherwise identical results to covariances @@ -279,10 +281,15 @@ class EcalClusterLazyToolsT : public EcalClusterLazyToolsBase { // egamma, but so far covIPhiIPhi hasnt been studied extensively so there // could be a bug in the covIPhiIEta or covIPhiIPhi calculations. I dont // think there is but as it hasnt been heavily used, there might be one - std::vector localCovariances(const reco::BasicCluster &cluster, float w0 = 4.7) const { - return ClusterTools::localCovariances(cluster, getEcalRecHitCollection(cluster), topology_, w0); - } - std::vector scLocalCovariances(const reco::SuperCluster &cluster, float w0 = 4.7) const { + std::array localCovariances(const reco::BasicCluster &cluster, + float w0 = EgammaLocalCovParamDefaults::kRelEnCut, + const EcalPFRecHitThresholds *rhthresholds = nullptr, + float multEB = 0.0, + float multEE = 0.0) const { + return ClusterTools::localCovariances( + cluster, getEcalRecHitCollection(cluster), topology_, w0, rhthresholds, multEB, multEE); + } + std::array scLocalCovariances(const reco::SuperCluster &cluster, float w0 = 4.7) const { return ClusterTools::scLocalCovariances(cluster, getEcalRecHitCollection(cluster), topology_, w0); } double zernike20(const reco::BasicCluster &cluster, double R0 = 6.6, bool logW = true, float w0 = 4.7) const { diff --git a/RecoEcal/EgammaCoreTools/interface/EcalClusterTools.h b/RecoEcal/EgammaCoreTools/interface/EcalClusterTools.h index aa857e9976552..1a33b998444bd 100644 --- a/RecoEcal/EgammaCoreTools/interface/EcalClusterTools.h +++ b/RecoEcal/EgammaCoreTools/interface/EcalClusterTools.h @@ -55,6 +55,9 @@ #include "Geometry/CaloTopology/interface/CaloTopology.h" #include "Geometry/CaloGeometry/interface/CaloCellGeometry.h" #include "Geometry/EcalAlgo/interface/EcalBarrelGeometry.h" +#include "CondFormats/EcalObjects/interface/EcalPFRecHitThresholds.h" +#include "CondFormats/DataRecord/interface/EcalPFRecHitThresholdsRcd.h" +#include "RecoEgamma/EgammaTools/interface/EgammaLocalCovParamDefaults.h" class DetId; class CaloTopology; @@ -180,15 +183,14 @@ class EcalClusterToolsT { bool logW = true, float w0 = 4.7); - // return a vector v with v[0] = covEtaEta, v[1] = covEtaPhi, v[2] = covPhiPhi - - static std::vector covariances(const reco::BasicCluster &cluster, - const EcalRecHitCollection *recHits, - const CaloTopology *topology, - const CaloGeometry *geometry, - float w0 = 4.7); + // return an array v with v[0] = covEtaEta, v[1] = covEtaPhi, v[2] = covPhiPhi + static std::array covariances(const reco::BasicCluster &cluster, + const EcalRecHitCollection *recHits, + const CaloTopology *topology, + const CaloGeometry *geometry, + float w0 = 4.7); - // return a vector v with v[0] = covIEtaIEta, v[1] = covIEtaIPhi, v[2] = covIPhiIPhi + // return an array v with v[0] = covIEtaIEta, v[1] = covIEtaIPhi, v[2] = covIPhiIPhi //this function calculates differences in eta/phi in units of crystals not global eta/phi //this is gives better performance in the crack regions of the calorimeter but gives otherwise identical results to covariances function // except that it doesnt need an eta based correction funtion in the endcap @@ -196,15 +198,18 @@ class EcalClusterToolsT { // //Warning: covIEtaIEta has been studied by egamma, but so far covIPhiIPhi hasnt been studied extensively so there could be a bug in // the covIPhiIEta or covIPhiIPhi calculations. I dont think there is but as it hasnt been heavily used, there might be one - static std::vector localCovariances(const reco::BasicCluster &cluster, - const EcalRecHitCollection *recHits, - const CaloTopology *topology, - float w0 = 4.7); - - static std::vector scLocalCovariances(const reco::SuperCluster &cluster, + static std::array localCovariances(const reco::BasicCluster &cluster, const EcalRecHitCollection *recHits, const CaloTopology *topology, - float w0 = 4.7); + float w0 = EgammaLocalCovParamDefaults::kRelEnCut, + const EcalPFRecHitThresholds *thresholds = nullptr, + float multEB = 0.0, + float multEE = 0.0); + + static std::array scLocalCovariances(const reco::SuperCluster &cluster, + const EcalRecHitCollection *recHits, + const CaloTopology *topology, + float w0 = 4.7); // cluster second moments with respect to principal axes: static Cluster2ndMoments cluster2ndMoments(const reco::BasicCluster &basicCluster, @@ -954,11 +959,11 @@ std::pair EcalClusterToolsT::mean5x5PositionInXY(const reco: } template -std::vector EcalClusterToolsT::covariances(const reco::BasicCluster &cluster, - const EcalRecHitCollection *recHits, - const CaloTopology *topology, - const CaloGeometry *geometry, - float w0) { +std::array EcalClusterToolsT::covariances(const reco::BasicCluster &cluster, + const EcalRecHitCollection *recHits, + const CaloTopology *topology, + const CaloGeometry *geometry, + float w0) { float e_5x5 = e5x5(cluster, recHits, topology); float covEtaEta, covEtaPhi, covPhiPhi; if (e_5x5 >= 0.) { @@ -1019,10 +1024,7 @@ std::vector EcalClusterToolsT::covariances(const reco::BasicCluster covEtaPhi = 0; covPhiPhi = 0; } - std::vector v; - v.push_back(covEtaEta); - v.push_back(covEtaPhi); - v.push_back(covPhiPhi); + std::array v{{covEtaEta, covEtaPhi, covPhiPhi}}; return v; } @@ -1031,10 +1033,13 @@ std::vector EcalClusterToolsT::covariances(const reco::BasicCluster //it also does not require any eta correction function in the endcap //it is multipled by an approprate crystal size to ensure it gives similar values to covariances(...) template -std::vector EcalClusterToolsT::localCovariances(const reco::BasicCluster &cluster, - const EcalRecHitCollection *recHits, - const CaloTopology *topology, - float w0) { +std::array EcalClusterToolsT::localCovariances(const reco::BasicCluster &cluster, + const EcalRecHitCollection *recHits, + const CaloTopology *topology, + float w0, + const EcalPFRecHitThresholds *thresholds, + float multEB, + float multEE) { float e_5x5 = e5x5(cluster, recHits, topology); float covEtaEta, covEtaPhi, covPhiPhi; @@ -1059,12 +1064,27 @@ std::vector EcalClusterToolsT::localCovariances(const reco::BasicCl bool isBarrel = seedId.subdetId() == EcalBarrel; const double crysSize = isBarrel ? barrelCrysSize : endcapCrysSize; + float mult = isBarrel ? multEB : multEE; // we will multiply PF RecHit threshold by mult. + // mult = 1 should work reasonably well for noise cleaning. + // dedicated studies showed mult=1.25 works best for Run3 in endcap, where noise is high. + // If no noise cleaning is intended then put mult=0. CaloRectangle rectangle{-2, 2, -2, 2}; for (auto const &detId : rectangle(seedId, *topology)) { float frac = getFraction(v_id, detId); float energy = recHitEnergy(detId, recHits) * frac; - if (energy <= 0) + + if ((thresholds == nullptr) && (mult != 0.0)) { + throw cms::Exception("EmptyPFRechHitThresColl") + << "In EcalClusterTools::localCovariances, if EcalPFRecHitThresholds==nulptr, then multEB and multEE " + "should be 0 as well."; + } + float rhThres = 0.0; + if (thresholds != nullptr) { + rhThres = (*thresholds)[detId]; // access PFRechit thresholds for noise cleaning + } + + if (energy <= (rhThres * mult)) continue; float dEta = getNrCrysDiffInEta(detId, seedId) - mean5x5PosInNrCrysFromSeed.first; @@ -1101,10 +1121,7 @@ std::vector EcalClusterToolsT::localCovariances(const reco::BasicCl covEtaPhi = 0; covPhiPhi = 0; } - std::vector v; - v.push_back(covEtaEta); - v.push_back(covEtaPhi); - v.push_back(covPhiPhi); + std::array v{{covEtaEta, covEtaPhi, covPhiPhi}}; return v; } @@ -1360,10 +1377,10 @@ float EcalClusterToolsT::getDPhiEndcap(const DetId &crysId, float meanX, f } template -std::vector EcalClusterToolsT::scLocalCovariances(const reco::SuperCluster &cluster, - const EcalRecHitCollection *recHits, - const CaloTopology *topology, - float w0) { +std::array EcalClusterToolsT::scLocalCovariances(const reco::SuperCluster &cluster, + const EcalRecHitCollection *recHits, + const CaloTopology *topology, + float w0) { const reco::BasicCluster bcluster = *(cluster.seed()); float e_5x5 = e5x5(bcluster, recHits, topology); @@ -1429,11 +1446,7 @@ std::vector EcalClusterToolsT::scLocalCovariances(const reco::Super covPhiPhi = 0; } - std::vector v; - v.push_back(covEtaEta); - v.push_back(covEtaPhi); - v.push_back(covPhiPhi); - + std::array v{{covEtaEta, covEtaPhi, covPhiPhi}}; return v; } diff --git a/RecoEcal/EgammaCoreTools/test/testEcalClusterLazyTools.cc b/RecoEcal/EgammaCoreTools/test/testEcalClusterLazyTools.cc index 08fe5d34a6aeb..c1ba28100ac00 100644 --- a/RecoEcal/EgammaCoreTools/test/testEcalClusterLazyTools.cc +++ b/RecoEcal/EgammaCoreTools/test/testEcalClusterLazyTools.cc @@ -102,9 +102,9 @@ void testEcalClusterLazyTools::analyze(const edm::Event& ev, const edm::EventSet std::cout << std::endl; std::vector vLat = lazyTools.lat(clus); std::cout << "lat...................... " << vLat[0] << " " << vLat[1] << " " << vLat[2] << std::endl; - std::vector vCov = lazyTools.covariances(clus); + const auto& vCov = lazyTools.covariances(clus); std::cout << "covariances.............. " << vCov[0] << " " << vCov[1] << " " << vCov[2] << std::endl; - std::vector vLocCov = lazyTools.localCovariances(clus); + const auto& vLocCov = lazyTools.localCovariances(clus); std::cout << "local covariances........ " << vLocCov[0] << " " << vLocCov[1] << " " << vLocCov[2] << std::endl; std::cout << "zernike20................ " << lazyTools.zernike20(clus) << std::endl; std::cout << "zernike42................ " << lazyTools.zernike42(clus) << std::endl; @@ -132,9 +132,9 @@ void testEcalClusterLazyTools::analyze(const edm::Event& ev, const edm::EventSet std::cout << "e2nd..................... " << lazyTools.e2nd(clus) << std::endl; std::vector vLat = lazyTools.lat(clus); std::cout << "lat...................... " << vLat[0] << " " << vLat[1] << " " << vLat[2] << std::endl; - std::vector vCov = lazyTools.covariances(clus); + const auto& vCov = lazyTools.covariances(clus); std::cout << "covariances.............. " << vCov[0] << " " << vCov[1] << " " << vCov[2] << std::endl; - std::vector vLocCov = lazyTools.localCovariances(clus); + const auto& vLocCov = lazyTools.localCovariances(clus); std::cout << "local covariances........ " << vLocCov[0] << " " << vLocCov[1] << " " << vLocCov[2] << std::endl; std::cout << "zernike20................ " << lazyTools.zernike20(clus) << std::endl; std::cout << "zernike42................ " << lazyTools.zernike42(clus) << std::endl; diff --git a/RecoEcal/EgammaCoreTools/test/testEcalClusterTools.cc b/RecoEcal/EgammaCoreTools/test/testEcalClusterTools.cc index 84c330a09e8a9..922ae0160a6bb 100644 --- a/RecoEcal/EgammaCoreTools/test/testEcalClusterTools.cc +++ b/RecoEcal/EgammaCoreTools/test/testEcalClusterTools.cc @@ -116,9 +116,9 @@ void testEcalClusterTools::analyze(const edm::Event& ev, const edm::EventSetup& std::cout << std::endl; std::vector vLat = ClusterTools::lat(clus, ebRecHits, geometry); std::cout << "lat...................... " << vLat[0] << " " << vLat[1] << " " << vLat[2] << std::endl; - std::vector vCov = ClusterTools::covariances(clus, ebRecHits, topology, geometry); + const auto& vCov = ClusterTools::covariances(clus, ebRecHits, topology, geometry); std::cout << "covariances.............. " << vCov[0] << " " << vCov[1] << " " << vCov[2] << std::endl; - std::vector vLocCov = ClusterTools::localCovariances(clus, ebRecHits, topology); + const auto& vLocCov = ClusterTools::localCovariances(clus, ebRecHits, topology); std::cout << "local covariances........ " << vLocCov[0] << " " << vLocCov[1] << " " << vLocCov[2] << std::endl; std::cout << "zernike20................ " << ClusterTools::zernike20(clus, ebRecHits, geometry) << std::endl; std::cout << "zernike42................ " << ClusterTools::zernike42(clus, ebRecHits, geometry) << std::endl; @@ -150,9 +150,9 @@ void testEcalClusterTools::analyze(const edm::Event& ev, const edm::EventSetup& std::cout << "e2nd..................... " << ClusterTools::e2nd(clus, eeRecHits) << std::endl; std::vector vLat = ClusterTools::lat(clus, eeRecHits, geometry); std::cout << "lat...................... " << vLat[0] << " " << vLat[1] << " " << vLat[2] << std::endl; - std::vector vCov = ClusterTools::covariances(clus, eeRecHits, topology, geometry); + const auto& vCov = ClusterTools::covariances(clus, eeRecHits, topology, geometry); std::cout << "covariances.............. " << vCov[0] << " " << vCov[1] << " " << vCov[2] << std::endl; - std::vector vLocCov = ClusterTools::localCovariances(clus, eeRecHits, topology); + const auto& vLocCov = ClusterTools::localCovariances(clus, eeRecHits, topology); std::cout << "local covariances........ " << vLocCov[0] << " " << vLocCov[1] << " " << vLocCov[2] << std::endl; std::cout << "zernike20................ " << ClusterTools::zernike20(clus, eeRecHits, geometry) << std::endl; std::cout << "zernike42................ " << ClusterTools::zernike42(clus, eeRecHits, geometry) << std::endl; diff --git a/RecoEgamma/EgammaElectronAlgos/interface/GsfElectronAlgo.h b/RecoEgamma/EgammaElectronAlgos/interface/GsfElectronAlgo.h index d1c7d16d9a4d4..a54ff1f8b5771 100644 --- a/RecoEgamma/EgammaElectronAlgos/interface/GsfElectronAlgo.h +++ b/RecoEgamma/EgammaElectronAlgos/interface/GsfElectronAlgo.h @@ -46,6 +46,8 @@ #include "TrackingTools/MaterialEffects/interface/PropagatorWithMaterial.h" #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h" #include "RecoEgamma/EgammaElectronAlgos/interface/ConversionFinder.h" +#include "CondFormats/EcalObjects/interface/EcalPFRecHitThresholds.h" +#include "CondFormats/DataRecord/interface/EcalPFRecHitThresholdsRcd.h" class GsfElectronAlgo { public: @@ -144,6 +146,10 @@ class GsfElectronAlgo { // only make sense for ecal driven electrons bool seedFromTEC; + + // noise cleaning + double multThresEB; + double multThresEE; }; // Ecal rec hits @@ -218,7 +224,8 @@ class GsfElectronAlgo { double magneticFieldInTesla, const HeavyObjectCache*, egamma::conv::TrackTableView ctfTable, - egamma::conv::TrackTableView gsfTable); + egamma::conv::TrackTableView gsfTable, + EcalPFRecHitThresholds const& thresholds); void setCutBasedPreselectionFlag(reco::GsfElectron& ele, const reco::BeamSpot&) const; @@ -227,7 +234,8 @@ class GsfElectronAlgo { ElectronHcalHelper const& hcalHelper, EventData const& eventData, CaloTopology const& topology, - CaloGeometry const& geometry) const; + CaloGeometry const& geometry, + EcalPFRecHitThresholds const& thresholds) const; reco::GsfElectron::SaturationInfo calculateSaturationInfo(const reco::SuperClusterRef&, EventData const& eventData) const; @@ -247,6 +255,7 @@ class GsfElectronAlgo { const edm::ESGetToken caloTopologyToken_; const edm::ESGetToken trackerGeometryToken_; const edm::ESGetToken ecalSeveretyLevelAlgoToken_; + const edm::ESGetToken ecalPFRechitThresholdsToken_; // additional configuration and helpers ElectronHcalHelper hcalHelper_; diff --git a/RecoEgamma/EgammaElectronAlgos/src/GsfElectronAlgo.cc b/RecoEgamma/EgammaElectronAlgos/src/GsfElectronAlgo.cc index c2f6b5c4736ce..ce0e65664d260 100644 --- a/RecoEgamma/EgammaElectronAlgos/src/GsfElectronAlgo.cc +++ b/RecoEgamma/EgammaElectronAlgos/src/GsfElectronAlgo.cc @@ -25,6 +25,7 @@ #include "RecoEgamma/EgammaElectronAlgos/interface/GsfElectronAlgo.h" #include "RecoEgamma/EgammaElectronAlgos/interface/ecalClusterEnergyUncertaintyElectronSpecific.h" #include "CommonTools/Egamma/interface/ConversionTools.h" +#include "RecoEgamma/EgammaTools/interface/EgammaLocalCovParamDefaults.h" #include #include @@ -292,7 +293,8 @@ reco::GsfElectron::ShowerShape GsfElectronAlgo::calculateShowerShape(const reco: ElectronHcalHelper const& hcalHelper, EventData const& eventData, CaloTopology const& topology, - CaloGeometry const& geometry) const { + CaloGeometry const& geometry, + EcalPFRecHitThresholds const& thresholds) const { using ClusterTools = EcalClusterToolsT; reco::GsfElectron::ShowerShape showerShape; @@ -314,8 +316,19 @@ reco::GsfElectron::ShowerShape GsfElectronAlgo::calculateShowerShape(const reco: recHitSeverityToBeExcluded = cfg_.recHits.recHitSeverityToBeExcludedEndcaps; } - std::vector covariances = ClusterTools::covariances(seedCluster, recHits, &topology, &geometry); - std::vector localCovariances = ClusterTools::localCovariances(seedCluster, recHits, &topology); + const auto& covariances = ClusterTools::covariances(seedCluster, recHits, &topology, &geometry); + + // do noise-cleaning for full5x5, by passing per crystal PF recHit thresholds and mult values + // mult values for EB and EE were obtained by dedicated studies + const auto& localCovariances = full5x5 ? ClusterTools::localCovariances(seedCluster, + recHits, + &topology, + EgammaLocalCovParamDefaults::kRelEnCut, + &thresholds, + cfg_.cuts.multThresEB, + cfg_.cuts.multThresEE) + : ClusterTools::localCovariances(seedCluster, recHits, &topology); + showerShape.sigmaEtaEta = sqrt(covariances[0]); showerShape.sigmaIetaIeta = sqrt(localCovariances[0]); if (!edm::isNotFinite(localCovariances[2])) @@ -388,6 +401,7 @@ GsfElectronAlgo::GsfElectronAlgo(const Tokens& input, caloTopologyToken_{cc.esConsumes()}, trackerGeometryToken_{cc.esConsumes()}, ecalSeveretyLevelAlgoToken_{cc.esConsumes()}, + ecalPFRechitThresholdsToken_{cc.esConsumes()}, hcalHelper_{hcal, std::move(cc)}, crackCorrectionFunction_{std::forward>(crackCorrectionFunction)}, regHelper_{reg, cfg_.strategy.useEcalRegression, cfg_.strategy.useCombinationRegression, cc} @@ -528,6 +542,7 @@ reco::GsfElectronCollection GsfElectronAlgo::completeElectrons(edm::Event const& auto const& caloTopology = eventSetup.getData(caloTopologyToken_); auto const& trackerGeometry = eventSetup.getData(trackerGeometryToken_); auto const& ecalSeveretyLevelAlgo = eventSetup.getData(ecalSeveretyLevelAlgoToken_); + auto const& thresholds = eventSetup.getData(ecalPFRechitThresholdsToken_); // prepare access to hcal data hcalHelper_.beginEvent(event, eventSetup); @@ -580,7 +595,8 @@ reco::GsfElectronCollection GsfElectronAlgo::completeElectrons(edm::Event const& magneticFieldInTesla, hoc, ctfTrackTable.value(), - gsfTrackTable.value()); + gsfTrackTable.value(), + thresholds); } // loop over tracks return electrons; @@ -713,7 +729,8 @@ void GsfElectronAlgo::createElectron(reco::GsfElectronCollection& electrons, double magneticFieldInTesla, const GsfElectronAlgo::HeavyObjectCache* hoc, egamma::conv::TrackTableView ctfTable, - egamma::conv::TrackTableView gsfTable) { + egamma::conv::TrackTableView gsfTable, + EcalPFRecHitThresholds const& thresholds) { // charge ID int eleCharge; GsfElectron::ChargeInfo eleChargeInfo; @@ -842,9 +859,10 @@ void GsfElectronAlgo::createElectron(reco::GsfElectronCollection& electrons, reco::GsfElectron::ShowerShape showerShape; reco::GsfElectron::ShowerShape full5x5_showerShape; if (!EcalTools::isHGCalDet((DetId::Detector)region)) { - showerShape = calculateShowerShape(electronData.superClusterRef, hcalHelper_, eventData, topology, geometry); - full5x5_showerShape = - calculateShowerShape(electronData.superClusterRef, hcalHelper_, eventData, topology, geometry); + showerShape = calculateShowerShape( + electronData.superClusterRef, hcalHelper_, eventData, topology, geometry, thresholds); + full5x5_showerShape = calculateShowerShape( + electronData.superClusterRef, hcalHelper_, eventData, topology, geometry, thresholds); } //==================================================== diff --git a/RecoEgamma/EgammaElectronProducers/plugins/GsfElectronProducer.cc b/RecoEgamma/EgammaElectronProducers/plugins/GsfElectronProducer.cc index 65028e4630ac6..baec0e950e422 100644 --- a/RecoEgamma/EgammaElectronProducers/plugins/GsfElectronProducer.cc +++ b/RecoEgamma/EgammaElectronProducers/plugins/GsfElectronProducer.cc @@ -21,6 +21,7 @@ #include "RecoEgamma/EgammaElectronAlgos/interface/EgAmbiguityTools.h" #include "RecoEgamma/EgammaElectronAlgos/interface/ElectronUtilities.h" #include "RecoEgamma/EgammaElectronAlgos/interface/GsfElectronAlgo.h" +#include "RecoEgamma/EgammaTools/interface/EgammaLocalCovParamDefaults.h" using namespace reco; @@ -207,6 +208,8 @@ void GsfElectronProducer::fillDescriptions(edm::ConfigurationDescriptions& descr psd0.add("isFiducial", false); psd0.add("seedFromTEC", true); psd0.add("maxTIP", 999999999.0); + psd0.add("multThresEB", EgammaLocalCovParamDefaults::kMultThresEB); + psd0.add("multThresEE", EgammaLocalCovParamDefaults::kMultThresEE); // preselection parameters desc.add("preselection", psd0); } @@ -272,6 +275,8 @@ namespace { .isFiducial = pset.getParameter("isFiducial"), .maxTIP = pset.getParameter("maxTIP"), .seedFromTEC = pset.getParameter("seedFromTEC"), + .multThresEB = pset.getParameter("multThresEB"), + .multThresEE = pset.getParameter("multThresEE"), }; } }; // namespace diff --git a/RecoEgamma/EgammaHLTProducers/plugins/EgammaHLTClusterShapeProducer.cc b/RecoEgamma/EgammaHLTProducers/plugins/EgammaHLTClusterShapeProducer.cc index bdcbc7935fa7c..33c34ab4c7021 100644 --- a/RecoEgamma/EgammaHLTProducers/plugins/EgammaHLTClusterShapeProducer.cc +++ b/RecoEgamma/EgammaHLTProducers/plugins/EgammaHLTClusterShapeProducer.cc @@ -24,6 +24,7 @@ #include "RecoEcal/EgammaCoreTools/interface/EcalClusterLazyTools.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "RecoEgamma/EgammaTools/interface/EgammaLocalCovParamDefaults.h" class EgammaHLTClusterShapeProducer : public edm::global::EDProducer<> { public: @@ -40,7 +41,10 @@ class EgammaHLTClusterShapeProducer : public edm::global::EDProducer<> { const edm::EDGetTokenT ecalRechitEBToken_; const edm::EDGetTokenT ecalRechitEEToken_; const EcalClusterLazyTools::ESGetTokens ecalClusterLazyToolsESGetTokens_; + const edm::ESGetToken ecalPFRechitThresholdsToken_; const bool EtaOrIeta_; + const double multThresEB_; + const double multThresEE_; }; EgammaHLTClusterShapeProducer::EgammaHLTClusterShapeProducer(const edm::ParameterSet& config) @@ -48,10 +52,14 @@ EgammaHLTClusterShapeProducer::EgammaHLTClusterShapeProducer(const edm::Paramete ecalRechitEBToken_(consumes(config.getParameter("ecalRechitEB"))), ecalRechitEEToken_(consumes(config.getParameter("ecalRechitEE"))), ecalClusterLazyToolsESGetTokens_{consumesCollector()}, - EtaOrIeta_(config.getParameter("isIeta")) { + ecalPFRechitThresholdsToken_{esConsumes()}, + EtaOrIeta_(config.getParameter("isIeta")), + multThresEB_(config.getParameter("multThresEB")), + multThresEE_(config.getParameter("multThresEE")) { //register your products produces(); produces("sigmaIEtaIEta5x5"); + produces("sigmaIEtaIEta5x5NoiseCleaned"); } EgammaHLTClusterShapeProducer::~EgammaHLTClusterShapeProducer() {} @@ -62,6 +70,8 @@ void EgammaHLTClusterShapeProducer::fillDescriptions(edm::ConfigurationDescripti desc.add(("ecalRechitEB"), edm::InputTag("hltEcalRegionalEgammaRecHit", "EcalRecHitsEB")); desc.add(("ecalRechitEE"), edm::InputTag("hltEcalRegionalEgammaRecHit", "EcalRecHitsEE")); desc.add(("isIeta"), true); + desc.add(("multThresEB"), EgammaLocalCovParamDefaults::kMultThresEB); + desc.add(("multThresEE"), EgammaLocalCovParamDefaults::kMultThresEE); descriptions.add(("hltEgammaHLTClusterShapeProducer"), desc); } @@ -73,12 +83,14 @@ void EgammaHLTClusterShapeProducer::produce(edm::StreamID sid, iEvent.getByToken(recoEcalCandidateProducer_, recoecalcandHandle); auto const& ecalClusterLazyToolsESData = ecalClusterLazyToolsESGetTokens_.get(iSetup); + auto const& thresholds = iSetup.getData(ecalPFRechitThresholdsToken_); EcalClusterLazyTools lazyTools(iEvent, ecalClusterLazyToolsESData, ecalRechitEBToken_, ecalRechitEEToken_); noZS::EcalClusterLazyTools lazyTools5x5(iEvent, ecalClusterLazyToolsESData, ecalRechitEBToken_, ecalRechitEEToken_); reco::RecoEcalCandidateIsolationMap clshMap(recoecalcandHandle); reco::RecoEcalCandidateIsolationMap clsh5x5Map(recoecalcandHandle); + reco::RecoEcalCandidateIsolationMap clsh5x5NoiseCleanedMap(recoecalcandHandle); for (unsigned int iRecoEcalCand = 0; iRecoEcalCand < recoecalcandHandle->size(); iRecoEcalCand++) { reco::RecoEcalCandidateRef recoecalcandref(recoecalcandHandle, iRecoEcalCand); @@ -88,13 +100,12 @@ void EgammaHLTClusterShapeProducer::produce(edm::StreamID sid, continue; } - std::vector vCov; double sigmaee; if (EtaOrIeta_) { - vCov = lazyTools.localCovariances(*(recoecalcandref->superCluster()->seed())); + const auto& vCov = lazyTools.localCovariances(*(recoecalcandref->superCluster()->seed())); sigmaee = sqrt(vCov[0]); } else { - vCov = lazyTools.covariances(*(recoecalcandref->superCluster()->seed())); + const auto& vCov = lazyTools.covariances(*(recoecalcandref->superCluster()->seed())); sigmaee = sqrt(vCov[0]); double EtaSC = recoecalcandref->eta(); if (EtaSC > 1.479) @@ -102,12 +113,20 @@ void EgammaHLTClusterShapeProducer::produce(edm::StreamID sid, } double sigmaee5x5 = sqrt(lazyTools5x5.localCovariances(*(recoecalcandref->superCluster()->seed()))[0]); + double sigmaee5x5NoiseCleaned = sqrt(lazyTools5x5.localCovariances(*(recoecalcandref->superCluster()->seed()), + EgammaLocalCovParamDefaults::kRelEnCut, + &thresholds, + multThresEB_, + multThresEE_)[0]); clshMap.insert(recoecalcandref, sigmaee); clsh5x5Map.insert(recoecalcandref, sigmaee5x5); + clsh5x5NoiseCleanedMap.insert(recoecalcandref, sigmaee5x5NoiseCleaned); } iEvent.put(std::make_unique(clshMap)); iEvent.put(std::make_unique(clsh5x5Map), "sigmaIEtaIEta5x5"); + iEvent.put(std::make_unique(clsh5x5NoiseCleanedMap), + "sigmaIEtaIEta5x5NoiseCleaned"); } #include "FWCore/Framework/interface/MakerMacros.h" diff --git a/RecoEgamma/EgammaPhotonAlgos/src/OutInConversionSeedFinder.cc b/RecoEgamma/EgammaPhotonAlgos/src/OutInConversionSeedFinder.cc index 6dcf7a3c8ee47..e09fd9963d43c 100644 --- a/RecoEgamma/EgammaPhotonAlgos/src/OutInConversionSeedFinder.cc +++ b/RecoEgamma/EgammaPhotonAlgos/src/OutInConversionSeedFinder.cc @@ -170,18 +170,17 @@ void OutInConversionSeedFinder::makeSeeds(const reco::CaloClusterPtr& aBC) { void OutInConversionSeedFinder::fillClusterSeeds(const reco::CaloClusterPtr& bc) { theFirstMeasurements_.clear(); - FreeTrajectoryState fts; /// negative charge state - if (makeTrackState(-1).second) { - fts = makeTrackState(-1).first; - startSeed(fts); + auto const stateNeg = makeTrackState(-1); + if (stateNeg.second) { + startSeed(stateNeg.first); } /// positive charge state - if (makeTrackState(1).second) { - fts = makeTrackState(1).first; - startSeed(fts); + auto const statePos = makeTrackState(1); + if (statePos.second) { + startSeed(statePos.first); } theFirstMeasurements_.clear(); } @@ -203,6 +202,8 @@ std::pair OutInConversionSeedFinder::makeTrackState(i // compute momentum direction at calo double curvature = theMF_->inTesla(theBCPosition_).z() * c_light * 1.e-3 / momentumWithoutCurvature.perp(); curvature /= 100.; // in cm-1 !! + if (curvature == 0) + return result; LogDebug("OutInConversionSeedFinder") << "OutInConversionSeedFinder::makeTrackState gpOrigine " << gpOrigine.x() << " " << gpOrigine.y() << " " << gpOrigine.z() << " momentumWithoutCurvature " @@ -220,6 +221,8 @@ std::pair OutInConversionSeedFinder::makeTrackState(i //float u = rho + rho/d/d*(R*R-rho*rho) ; if (u <= R) result.second = true; + else + return result; double sinAlpha = 0.5 * u / R; if (sinAlpha > (1. - 10 * DBL_EPSILON)) diff --git a/RecoEgamma/EgammaPhotonProducers/python/gedPhotons_cfi.py b/RecoEgamma/EgammaPhotonProducers/python/gedPhotons_cfi.py index b9fcd06c97354..4c348242aedef 100644 --- a/RecoEgamma/EgammaPhotonProducers/python/gedPhotons_cfi.py +++ b/RecoEgamma/EgammaPhotonProducers/python/gedPhotons_cfi.py @@ -50,6 +50,8 @@ highEt = cms.double(100.), minR9Barrel = cms.double(0.94), minR9Endcap = cms.double(0.95), + multThresEB = cms.double(1.00), + multThresEE = cms.double(1.25), hOverEConeSize = cms.double(0.15), posCalc_x0 = cms.double(0.89), posCalc_t0_barl = cms.double(7.7), diff --git a/RecoEgamma/EgammaPhotonProducers/python/photons_cfi.py b/RecoEgamma/EgammaPhotonProducers/python/photons_cfi.py index 2eca73e0bdd52..b645058a20610 100644 --- a/RecoEgamma/EgammaPhotonProducers/python/photons_cfi.py +++ b/RecoEgamma/EgammaPhotonProducers/python/photons_cfi.py @@ -41,6 +41,8 @@ highEt = cms.double(100.), minR9Barrel = cms.double(0.94), minR9Endcap = cms.double(0.95), + multThresEB = cms.double(1.00), + multThresEE = cms.double(1.25), hOverEConeSize = cms.double(0.15), posCalc_x0 = cms.double(0.89), posCalc_t0_barl = cms.double(7.7), diff --git a/RecoEgamma/EgammaPhotonProducers/src/GEDPhotonProducer.cc b/RecoEgamma/EgammaPhotonProducers/src/GEDPhotonProducer.cc index 2c5c43c737a06..7db97f369c5c5 100644 --- a/RecoEgamma/EgammaPhotonProducers/src/GEDPhotonProducer.cc +++ b/RecoEgamma/EgammaPhotonProducers/src/GEDPhotonProducer.cc @@ -45,6 +45,9 @@ #include "RecoEgamma/PhotonIdentification/interface/PhotonMIPHaloTagger.h" #include "RecoLocalCalo/EcalRecAlgos/interface/EcalSeverityLevelAlgo.h" #include "RecoLocalCalo/EcalRecAlgos/interface/EcalSeverityLevelAlgoRcd.h" +#include "CondFormats/EcalObjects/interface/EcalPFRecHitThresholds.h" +#include "CondFormats/DataRecord/interface/EcalPFRecHitThresholdsRcd.h" +#include "RecoEgamma/EgammaTools/interface/EgammaLocalCovParamDefaults.h" class GEDPhotonProducer : public edm::stream::EDProducer<> { public: @@ -77,7 +80,8 @@ class GEDPhotonProducer : public edm::stream::EDProducer<> { CaloTowerCollection const* hcalTowers, const reco::VertexCollection& pvVertices, reco::PhotonCollection& outputCollection, - int& iSC); + int& iSC, + EcalPFRecHitThresholds const& thresholds); void fillPhotonCollection(edm::Event& evt, edm::EventSetup const& es, @@ -136,6 +140,8 @@ class GEDPhotonProducer : public edm::stream::EDProducer<> { std::vector severitiesexclEB_; std::vector severitiesexclEE_; + double multThresEB_; + double multThresEE_; double hOverEConeSize_; double maxHOverE_; double minSCEt_; @@ -163,6 +169,7 @@ class GEDPhotonProducer : public edm::stream::EDProducer<> { const edm::ESGetToken caloTopologyToken_; const edm::ESGetToken caloGeometryToken_; + const edm::ESGetToken ecalPFRechitThresholdsToken_; }; #include "FWCore/Framework/interface/MakerMacros.h" @@ -195,7 +202,8 @@ GEDPhotonProducer::GEDPhotonProducer(const edm::ParameterSet& config) ecalClusterESGetTokens_{consumesCollector()}, recoStep_(config.getParameter("reconstructionStep")), caloTopologyToken_{esConsumes()}, - caloGeometryToken_{esConsumes()} { + caloGeometryToken_{esConsumes()}, + ecalPFRechitThresholdsToken_{esConsumes()} { if (recoStep_.isFinal()) { photonProducerT_ = consumes(photonProducer_); pfCandidates_ = consumes(config.getParameter("pfCandidates")); @@ -238,6 +246,8 @@ GEDPhotonProducer::GEDPhotonProducer(const edm::ParameterSet& config) } // photonCollection_ = config.getParameter("outputPhotonCollection"); + multThresEB_ = config.getParameter("multThresEB"); + multThresEE_ = config.getParameter("multThresEE"); hOverEConeSize_ = config.getParameter("hOverEConeSize"); highEt_ = config.getParameter("highEt"); // R9 value to decide converted/unconverted @@ -410,6 +420,7 @@ void GEDPhotonProducer::produce(edm::Event& theEvent, const edm::EventSetup& eve caloGeom_ = &eventSetup.getData(caloGeometryToken_); auto const& topology = eventSetup.getData(caloTopologyToken_); + auto const& thresholds = eventSetup.getData(ecalPFRechitThresholdsToken_); // Get the primary event vertex const reco::VertexCollection dummyVC; @@ -439,7 +450,8 @@ void GEDPhotonProducer::produce(edm::Event& theEvent, const edm::EventSetup& eve //vtx, vertexCollection, *outputPhotonCollection_p, - iSC); + iSC, + thresholds); iSC = 0; if (validPhotonHandle && recoStep_.isFinal()) @@ -500,7 +512,8 @@ void GEDPhotonProducer::fillPhotonCollection(edm::Event& evt, CaloTowerCollection const* hcalTowers, const reco::VertexCollection& vertexCollection, reco::PhotonCollection& outputPhotonCollection, - int& iSC) { + int& iSC, + EcalPFRecHitThresholds const& thresholds) { const EcalRecHitCollection* hits = nullptr; std::vector preselCutValues; std::vector flags_, severitiesexcl_; @@ -583,11 +596,11 @@ void GEDPhotonProducer::fillPhotonCollection(edm::Event& evt, float e2x5 = (hits != nullptr ? EcalClusterTools::e2x5Max(*(scRef->seed()), hits, topology) : 0.f); float e3x3 = (hits != nullptr ? EcalClusterTools::e3x3(*(scRef->seed()), hits, topology) : 0.f); float e5x5 = (hits != nullptr ? EcalClusterTools::e5x5(*(scRef->seed()), hits, topology) : 0.f); - std::vector cov = - (hits != nullptr ? EcalClusterTools::covariances(*(scRef->seed()), hits, topology, caloGeom_) - : std::vector({0.f, 0.f, 0.f})); - std::vector locCov = (hits != nullptr ? EcalClusterTools::localCovariances(*(scRef->seed()), hits, topology) - : std::vector({0.f, 0.f, 0.f})); + const auto& cov = (hits != nullptr ? EcalClusterTools::covariances(*(scRef->seed()), hits, topology, caloGeom_) + : std::array({{0.f, 0.f, 0.f}})); + // fractional local covariances + const auto& locCov = (hits != nullptr ? EcalClusterTools::localCovariances(*(scRef->seed()), hits, topology) + : std::array({{0.f, 0.f, 0.f}})); float sigmaEtaEta = std::sqrt(cov[0]); float sigmaIetaIeta = std::sqrt(locCov[0]); @@ -599,12 +612,21 @@ void GEDPhotonProducer::fillPhotonCollection(edm::Event& evt, float full5x5_e2x5 = (hits != nullptr ? noZS::EcalClusterTools::e2x5Max(*(scRef->seed()), hits, topology) : 0.f); float full5x5_e3x3 = (hits != nullptr ? noZS::EcalClusterTools::e3x3(*(scRef->seed()), hits, topology) : 0.f); float full5x5_e5x5 = (hits != nullptr ? noZS::EcalClusterTools::e5x5(*(scRef->seed()), hits, topology) : 0.f); - std::vector full5x5_cov = + const auto& full5x5_cov = (hits != nullptr ? noZS::EcalClusterTools::covariances(*(scRef->seed()), hits, topology, caloGeom_) - : std::vector({0.f, 0.f, 0.f})); - std::vector full5x5_locCov = - (hits != nullptr ? noZS::EcalClusterTools::localCovariances(*(scRef->seed()), hits, topology) - : std::vector({0.f, 0.f, 0.f})); + : std::array({{0.f, 0.f, 0.f}})); + // for full5x5 local covariances, do noise-cleaning + // by passing per crystal PF recHit thresholds and mult values. + // mult values for EB and EE were obtained by dedicated studies. + const auto& full5x5_locCov = + (hits != nullptr ? noZS::EcalClusterTools::localCovariances(*(scRef->seed()), + hits, + topology, + EgammaLocalCovParamDefaults::kRelEnCut, + &thresholds, + multThresEB_, + multThresEE_) + : std::array({{0.f, 0.f, 0.f}})); float full5x5_sigmaEtaEta = sqrt(full5x5_cov[0]); float full5x5_sigmaIetaIeta = sqrt(full5x5_locCov[0]); diff --git a/RecoEgamma/EgammaPhotonProducers/src/PhotonProducer.cc b/RecoEgamma/EgammaPhotonProducers/src/PhotonProducer.cc index 6faf1cfc59efb..6b89d40905654 100644 --- a/RecoEgamma/EgammaPhotonProducers/src/PhotonProducer.cc +++ b/RecoEgamma/EgammaPhotonProducers/src/PhotonProducer.cc @@ -368,8 +368,8 @@ void PhotonProducer::fillPhotonCollection(edm::Event& evt, float e2x5 = EcalClusterTools::e2x5Max(*(scRef->seed()), &(*hits), &(*topology)); float e3x3 = EcalClusterTools::e3x3(*(scRef->seed()), &(*hits), &(*topology)); float e5x5 = EcalClusterTools::e5x5(*(scRef->seed()), &(*hits), &(*topology)); - std::vector cov = EcalClusterTools::covariances(*(scRef->seed()), &(*hits), &(*topology), geometry); - std::vector locCov = EcalClusterTools::localCovariances(*(scRef->seed()), &(*hits), &(*topology)); + const auto& cov = EcalClusterTools::covariances(*(scRef->seed()), &(*hits), &(*topology), geometry); + const auto& locCov = EcalClusterTools::localCovariances(*(scRef->seed()), &(*hits), &(*topology)); float sigmaEtaEta = sqrt(cov[0]); float sigmaIetaIeta = sqrt(locCov[0]); @@ -382,10 +382,8 @@ void PhotonProducer::fillPhotonCollection(edm::Event& evt, float full5x5_e2x5 = noZS::EcalClusterTools::e2x5Max(*(scRef->seed()), &(*hits), &(*topology)); float full5x5_e3x3 = noZS::EcalClusterTools::e3x3(*(scRef->seed()), &(*hits), &(*topology)); float full5x5_e5x5 = noZS::EcalClusterTools::e5x5(*(scRef->seed()), &(*hits), &(*topology)); - std::vector full5x5_cov = - noZS::EcalClusterTools::covariances(*(scRef->seed()), &(*hits), &(*topology), geometry); - std::vector full5x5_locCov = - noZS::EcalClusterTools::localCovariances(*(scRef->seed()), &(*hits), &(*topology)); + const auto& full5x5_cov = noZS::EcalClusterTools::covariances(*(scRef->seed()), &(*hits), &(*topology), geometry); + const auto& full5x5_locCov = noZS::EcalClusterTools::localCovariances(*(scRef->seed()), &(*hits), &(*topology)); float full5x5_sigmaEtaEta = sqrt(full5x5_cov[0]); float full5x5_sigmaIetaIeta = sqrt(full5x5_locCov[0]); diff --git a/RecoEgamma/EgammaTools/interface/EgammaLocalCovParamDefaults.h b/RecoEgamma/EgammaTools/interface/EgammaLocalCovParamDefaults.h new file mode 100644 index 0000000000000..d5b9d4cfad95a --- /dev/null +++ b/RecoEgamma/EgammaTools/interface/EgammaLocalCovParamDefaults.h @@ -0,0 +1,10 @@ +#ifndef RecoEgamma_EgammaTools_interface_EgammaLocalCovParamDefaults_h +#define RecoEgamma_EgammaTools_interface_EgammaLocalCovParamDefaults_h + +struct EgammaLocalCovParamDefaults { + static constexpr float kRelEnCut = 4.7; + static constexpr float kMultThresEB = 1.0; + static constexpr float kMultThresEE = 1.25; +}; + +#endif diff --git a/RecoEgamma/EgammaTools/python/calibratedEgammas_cff.py b/RecoEgamma/EgammaTools/python/calibratedEgammas_cff.py index e7ef2cbc63a6f..ff44536e2d599 100644 --- a/RecoEgamma/EgammaTools/python/calibratedEgammas_cff.py +++ b/RecoEgamma/EgammaTools/python/calibratedEgammas_cff.py @@ -1,9 +1,11 @@ import FWCore.ParameterSet.Config as cms -_correctionFile2016Legacy = "EgammaAnalysis/ElectronTools/data/ScalesSmearings/Legacy2016_07Aug2017_FineEtaR9_v3_ele_unc" -_correctionFile2017Nov17 = "EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2017_17Nov2017_v1_ele_unc" -_correctionFile2017UL = "EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2017_24Feb2020_runEtaR9Gain_v2" -_correctionFile2018UL = "EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2018_29Sep2020_RunFineEtaR9Gain" +_correctionFile2016Legacy = "EgammaAnalysis/ElectronTools/data/ScalesSmearings/Legacy2016_07Aug2017_FineEtaR9_v3_ele_unc" +_correctionFile2017Nov17 = "EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2017_17Nov2017_v1_ele_unc" +_correctionFile2016ULpreVFP = "EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2016_UltraLegacy_preVFP_RunFineEtaR9Gain" +_correctionFile2016ULpostVFP = "EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2016_UltraLegacy_postVFP_RunFineEtaR9Gain" +_correctionFile2017UL = "EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2017_24Feb2020_runEtaR9Gain_v2" +_correctionFile2018UL = "EgammaAnalysis/ElectronTools/data/ScalesSmearings/Run2018_29Sep2020_RunFineEtaR9Gain" calibratedEgammaSettings = cms.PSet(minEtToCalibrate = cms.double(5.0), semiDeterministic = cms.bool(True), @@ -12,6 +14,11 @@ recHitCollectionEE = cms.InputTag('reducedEcalRecHitsEE'), produceCalibratedObjs = cms.bool(True) ) +from Configuration.Eras.Modifier_run2_egamma_2016_cff import run2_egamma_2016 +from Configuration.Eras.Modifier_tracker_apv_vfp30_2016_cff import tracker_apv_vfp30_2016 +(run2_egamma_2016 & tracker_apv_vfp30_2016).toModify(calibratedEgammaSettings,correctionFile = _correctionFile2016ULpreVFP) +(run2_egamma_2016 & ~tracker_apv_vfp30_2016).toModify(calibratedEgammaSettings,correctionFile = _correctionFile2016ULpostVFP) + from Configuration.Eras.Modifier_run2_egamma_2017_cff import run2_egamma_2017 run2_egamma_2017.toModify(calibratedEgammaSettings,correctionFile = _correctionFile2017UL) diff --git a/RecoEgamma/EgammaTools/src/EcalRegressionData.cc b/RecoEgamma/EgammaTools/src/EcalRegressionData.cc index 42ac99b2f2d42..edf966558c9df 100644 --- a/RecoEgamma/EgammaTools/src/EcalRegressionData.cc +++ b/RecoEgamma/EgammaTools/src/EcalRegressionData.cc @@ -80,7 +80,7 @@ void EcalRegressionData::fill(const reco::SuperCluster& superClus, eBottom_ = EcalClusterTools::eBottom(*superClus.seed(), recHits, topology); eLeft_ = EcalClusterTools::eLeft(*superClus.seed(), recHits, topology); eRight_ = EcalClusterTools::eRight(*superClus.seed(), recHits, topology); - std::vector localCovs = EcalClusterTools::localCovariances(*superClus.seed(), recHits, topology); + const auto& localCovs = EcalClusterTools::localCovariances(*superClus.seed(), recHits, topology); sigmaIEtaIEta_ = edm::isNotFinite(localCovs[0]) ? 0. : std::sqrt(localCovs[0]); sigmaIPhiIPhi_ = edm::isNotFinite(localCovs[2]) ? 0. : std::sqrt(localCovs[2]); diff --git a/RecoEgamma/PhotonIdentification/BuildFile.xml b/RecoEgamma/PhotonIdentification/BuildFile.xml index 03f6ffe2f3600..29d94586d1bed 100644 --- a/RecoEgamma/PhotonIdentification/BuildFile.xml +++ b/RecoEgamma/PhotonIdentification/BuildFile.xml @@ -1,8 +1,6 @@ - - diff --git a/RecoEgamma/PhotonIdentification/plugins/BuildFile.xml b/RecoEgamma/PhotonIdentification/plugins/BuildFile.xml index d81ff4fbcff3f..ddf8358622548 100644 --- a/RecoEgamma/PhotonIdentification/plugins/BuildFile.xml +++ b/RecoEgamma/PhotonIdentification/plugins/BuildFile.xml @@ -7,6 +7,7 @@ + diff --git a/RecoEgamma/PhotonIdentification/plugins/PhotonIDValueMapProducer.cc b/RecoEgamma/PhotonIdentification/plugins/PhotonIDValueMapProducer.cc index 1c05588724292..dd6b52de18cb1 100644 --- a/RecoEgamma/PhotonIdentification/plugins/PhotonIDValueMapProducer.cc +++ b/RecoEgamma/PhotonIdentification/plugins/PhotonIDValueMapProducer.cc @@ -216,7 +216,7 @@ void PhotonIDValueMapProducer::produce(edm::StreamID, edm::Event& iEvent, const // and userFloats or lazy tools for miniAOD. From some point in 72X and on, one can // retrieve the full5x5 directly from the object with ->full5x5_sigmaIetaIeta() // for both formats. - std::vector vCov = lazyToolnoZS.localCovariances(seed); + const auto& vCov = lazyToolnoZS.localCovariances(seed); vars[0].push_back(edm::isNotFinite(vCov[0]) ? 0. : sqrt(vCov[0])); vars[1].push_back(vCov[1]); vars[2].push_back(lazyToolnoZS.e1x3(seed)); diff --git a/RecoHGCal/Configuration/python/RecoHGCal_EventContent_cff.py b/RecoHGCal/Configuration/python/RecoHGCal_EventContent_cff.py index 7e0076bb947bb..62ae794e85ecc 100644 --- a/RecoHGCal/Configuration/python/RecoHGCal_EventContent_cff.py +++ b/RecoHGCal/Configuration/python/RecoHGCal_EventContent_cff.py @@ -3,6 +3,7 @@ #AOD content TICL_AOD = cms.PSet( + # 13/04/2021 Felice: MultiClusters will be deprecated soon outputCommands = cms.untracked.vstring( 'keep *_ticlMultiClustersFromTrackstersEM_*_*', 'keep *_ticlMultiClustersFromTrackstersHAD_*_*', @@ -10,6 +11,7 @@ 'keep *_ticlMultiClustersFromTrackstersTrkEM_*_*', 'keep *_ticlMultiClustersFromTrackstersMIP_*_*', 'keep *_ticlMultiClustersFromTrackstersMerge_*_*', + 'keep *_ticlMultiClustersFromSimTracksters_*_*', ) ) @@ -35,6 +37,7 @@ # FEVT Content TICL_FEVT = cms.PSet( outputCommands = cms.untracked.vstring( + 'keep *_ticlSimTracksters_*_*', ) ) TICL_FEVT.outputCommands.extend(TICL_RECO.outputCommands) diff --git a/RecoHGCal/TICL/plugins/BuildFile.xml b/RecoHGCal/TICL/plugins/BuildFile.xml index 706b016c875a4..c3b923786d3f3 100644 --- a/RecoHGCal/TICL/plugins/BuildFile.xml +++ b/RecoHGCal/TICL/plugins/BuildFile.xml @@ -1,20 +1,36 @@ - - - - - - - + + - + + + + + - + + + + + + + + + + + + + + + + + + diff --git a/RecoHGCal/TICL/plugins/HGCDoublet.cc b/RecoHGCal/TICL/plugins/HGCDoublet.cc index cac2c4d1a52df..cec1229a6b8f0 100644 --- a/RecoHGCal/TICL/plugins/HGCDoublet.cc +++ b/RecoHGCal/TICL/plugins/HGCDoublet.cc @@ -110,9 +110,10 @@ int HGCDoublet::areAligned(double xi, auto minCosPointing_sq = minCosPointing * minCosPointing; bool isWithinLimitsPointing = (dot_pointing_sq > minCosPointing_sq * mag_pointing_sq * mag2sq); if (debug) { - LogDebug("HGCDoublet") << "-- Are Aligned -- dot_pointing_sq: " << dot_pointing * dot_pointing + LogDebug("HGCDoublet") << "Pointing direction: " << pointingDir << std::endl; + LogDebug("HGCDoublet") << "-- Are Aligned -- dot_pointing_sq: " << dot_pointing_sq << " mag_pointing_sq: " << mag_pointing_sq << " mag2sq: " << mag2sq - << " isWithinLimits: " << isWithinLimitsPointing << std::endl; + << " isWithinLimitsPointing: " << isWithinLimitsPointing << std::endl; } // by squaring cosTheta and multiplying by the squares of the magnitudes // an equivalent comparison is made without the division and square root which are costly FP ops. diff --git a/RecoHGCal/TICL/plugins/TrackstersFromSimClustersProducer.cc b/RecoHGCal/TICL/plugins/TrackstersFromSimClustersProducer.cc new file mode 100644 index 0000000000000..3b0a75ee1a283 --- /dev/null +++ b/RecoHGCal/TICL/plugins/TrackstersFromSimClustersProducer.cc @@ -0,0 +1,151 @@ +// Author: Felice Pantaleo - felice.pantaleo@cern.ch +// Date: 02/2021 + +// user include files + +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" + +#include "DataFormats/CaloRecHit/interface/CaloCluster.h" +#include "DataFormats/ParticleFlowReco/interface/PFCluster.h" + +#include "DataFormats/HGCalReco/interface/Trackster.h" + +#include "DataFormats/Common/interface/ValueMap.h" +#include "SimDataFormats/Associations/interface/LayerClusterToSimClusterAssociator.h" +#include "SimDataFormats/CaloAnalysis/interface/SimCluster.h" +#include "RecoLocalCalo/HGCalRecAlgos/interface/RecHitTools.h" + +#include "TrackstersPCA.h" +#include +#include +#include +using namespace ticl; + +namespace { + Trackster::ParticleType tracksterParticleTypeFromPdgId(int pdgId, int charge) { + if (pdgId == 111) { + return Trackster::ParticleType::neutral_pion; + } else { + pdgId = std::abs(pdgId); + if (pdgId == 22) { + return Trackster::ParticleType::photon; + } else if (pdgId == 11) { + return Trackster::ParticleType::electron; + } else if (pdgId == 13) { + return Trackster::ParticleType::muon; + } else { + bool isHadron = (pdgId > 100 and pdgId < 900) or (pdgId > 1000 and pdgId < 9000); + if (isHadron) { + if (charge != 0) { + return Trackster::ParticleType::charged_hadron; + } else { + return Trackster::ParticleType::neutral_hadron; + } + } else { + return Trackster::ParticleType::unknown; + } + } + } + } +} // namespace + +class TrackstersFromSimClustersProducer : public edm::stream::EDProducer<> { +public: + explicit TrackstersFromSimClustersProducer(const edm::ParameterSet&); + ~TrackstersFromSimClustersProducer() override {} + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + + void produce(edm::Event&, const edm::EventSetup&) override; + +private: + std::string detector_; + const bool doNose_ = false; + const edm::EDGetTokenT> clusters_token_; + const edm::EDGetTokenT>> clustersTime_token_; + const edm::EDGetTokenT> filtered_layerclusters_mask_token_; + + edm::EDGetTokenT> simclusters_token_; + + edm::InputTag associatorLayerClusterSimCluster_; + edm::EDGetTokenT associatorMapSimToReco_token_; + edm::ESGetToken geom_token_; + hgcal::RecHitTools rhtools_; +}; +DEFINE_FWK_MODULE(TrackstersFromSimClustersProducer); + +TrackstersFromSimClustersProducer::TrackstersFromSimClustersProducer(const edm::ParameterSet& ps) + : detector_(ps.getParameter("detector")), + doNose_(detector_ == "HFNose"), + clusters_token_(consumes>(ps.getParameter("layer_clusters"))), + clustersTime_token_( + consumes>>(ps.getParameter("time_layerclusters"))), + filtered_layerclusters_mask_token_(consumes>(ps.getParameter("filtered_mask"))), + simclusters_token_(consumes>(ps.getParameter("simclusters"))), + associatorLayerClusterSimCluster_(ps.getUntrackedParameter("layerClusterSimClusterAssociator")), + associatorMapSimToReco_token_( + consumes(associatorLayerClusterSimCluster_)), + geom_token_(esConsumes()) { + produces>(); + produces>(); +} + +void TrackstersFromSimClustersProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + // hgcalMultiClusters + edm::ParameterSetDescription desc; + desc.add("detector", "HGCAL"); + desc.add("layer_clusters", edm::InputTag("hgcalLayerClusters")); + desc.add("time_layerclusters", edm::InputTag("hgcalLayerClusters", "timeLayerCluster")); + desc.add("filtered_mask", edm::InputTag("filteredLayerClustersSimTracksters", "ticlSimTracksters")); + desc.add("simclusters", edm::InputTag("mix", "MergedCaloTruth")); + desc.addUntracked("layerClusterSimClusterAssociator", + edm::InputTag("layerClusterSimClusterAssociationProducer")); + descriptions.add("trackstersFromSimClustersProducer", desc); +} + +void TrackstersFromSimClustersProducer::produce(edm::Event& evt, const edm::EventSetup& es) { + auto result = std::make_unique>(); + auto output_mask = std::make_unique>(); + const auto& layerClusters = evt.get(clusters_token_); + const auto& layerClustersTimes = evt.get(clustersTime_token_); + const auto& inputClusterMask = evt.get(filtered_layerclusters_mask_token_); + output_mask->resize(layerClusters.size(), 1.f); + + const auto& simclusters = evt.get(simclusters_token_); + const auto& simToRecoColl = evt.get(associatorMapSimToReco_token_); + + const auto& geom = es.getData(geom_token_); + rhtools_.setGeometry(geom); + auto num_simclusters = simclusters.size(); + result->reserve(num_simclusters); + for (const auto& [key, values] : simToRecoColl) { + auto const& sc = *(key); + auto simClusterIndex = &sc - &simclusters[0]; + Trackster tmpTrackster; + tmpTrackster.zeroProbabilities(); + tmpTrackster.vertices().reserve(values.size()); + tmpTrackster.vertex_multiplicity().reserve(values.size()); + + for (auto const& [lc, energyScorePair] : values) { + if (inputClusterMask[lc.index()] > 0) { + tmpTrackster.vertices().push_back(lc.index()); + double fraction = energyScorePair.first / lc->energy(); + (*output_mask)[lc.index()] -= fraction; + tmpTrackster.vertex_multiplicity().push_back(static_cast(std::clamp(1. / fraction, 0., 255.))); + } + } + tmpTrackster.setIdProbability(tracksterParticleTypeFromPdgId(sc.pdgId(), sc.charge()), 1.f); + tmpTrackster.setSeed(key.id(), simClusterIndex); + result->emplace_back(tmpTrackster); + } + ticl::assignPCAtoTracksters( + *result, layerClusters, layerClustersTimes, rhtools_.getPositionLayer(rhtools_.lastLayerEE(doNose_)).z()); + evt.put(std::move(result)); + evt.put(std::move(output_mask)); +} diff --git a/RecoHGCal/TICL/plugins/TrackstersMergeProducer.cc b/RecoHGCal/TICL/plugins/TrackstersMergeProducer.cc index f20d616410385..7456d8b60c11f 100644 --- a/RecoHGCal/TICL/plugins/TrackstersMergeProducer.cc +++ b/RecoHGCal/TICL/plugins/TrackstersMergeProducer.cc @@ -32,7 +32,7 @@ class TrackstersMergeProducer : public edm::stream::EDProducer &, TracksterIterIndex); @@ -182,7 +182,6 @@ void TrackstersMergeProducer::produce(edm::Event &evt, const edm::EventSetup &es // associating seed to the index of the trackster in the merged collection and the iteration that found it std::map>> seedToTracksterAssociator; - std::vector iterMergedTracksters; edm::Handle> track_h; evt.getByToken(tracks_token_, track_h); const auto &tracks = *track_h; @@ -218,13 +217,12 @@ void TrackstersMergeProducer::produce(edm::Event &evt, const edm::EventSetup &es fillTile(tracksterTile, trackstersTRKEM, TracksterIterIndex::TRKEM); fillTile(tracksterTile, trackstersEM, TracksterIterIndex::EM); - fillTile(tracksterTile, trackstersTRK, TracksterIterIndex::TRK); + fillTile(tracksterTile, trackstersTRK, TracksterIterIndex::TRKHAD); fillTile(tracksterTile, trackstersHAD, TracksterIterIndex::HAD); auto totalNumberOfTracksters = trackstersTRKEM.size() + trackstersTRK.size() + trackstersEM.size() + trackstersHAD.size(); resultTrackstersMerged->reserve(totalNumberOfTracksters); - iterMergedTracksters.reserve(totalNumberOfTracksters); usedTrackstersMerged.resize(totalNumberOfTracksters, false); indexInMergedCollTRKEM.reserve(trackstersTRKEM.size()); indexInMergedCollEM.reserve(trackstersEM.size()); @@ -242,26 +240,22 @@ void TrackstersMergeProducer::produce(edm::Event &evt, const edm::EventSetup &es indexInMergedCollTRKEM.push_back(resultTrackstersMerged->size()); seedToTracksterAssociator[t.seedIndex()].emplace_back(resultTrackstersMerged->size(), TracksterIterIndex::TRKEM); resultTrackstersMerged->push_back(t); - iterMergedTracksters.push_back(TracksterIterIndex::TRKEM); } for (auto const &t : trackstersEM) { indexInMergedCollEM.push_back(resultTrackstersMerged->size()); resultTrackstersMerged->push_back(t); - iterMergedTracksters.push_back(TracksterIterIndex::EM); } for (auto const &t : trackstersTRK) { indexInMergedCollTRK.push_back(resultTrackstersMerged->size()); - seedToTracksterAssociator[t.seedIndex()].emplace_back(resultTrackstersMerged->size(), TracksterIterIndex::TRK); + seedToTracksterAssociator[t.seedIndex()].emplace_back(resultTrackstersMerged->size(), TracksterIterIndex::TRKHAD); resultTrackstersMerged->push_back(t); - iterMergedTracksters.push_back(TracksterIterIndex::TRK); } for (auto const &t : trackstersHAD) { indexInMergedCollHAD.push_back(resultTrackstersMerged->size()); resultTrackstersMerged->push_back(t); - iterMergedTracksters.push_back(TracksterIterIndex::HAD); } assignPCAtoTracksters(*resultTrackstersMerged, @@ -335,7 +329,7 @@ void TrackstersMergeProducer::produce(edm::Event &evt, const edm::EventSetup &es trackstersMergedHandle->at(tracksterIterationPair.first).raw_energy() > 0.) { if (tracksterIterationPair.second == TracksterIterIndex::TRKEM) { trackstersTRKEMwithSameSeed.push_back(tracksterIterationPair.first); - } else if (tracksterIterationPair.second == TracksterIterIndex::TRK) { + } else if (tracksterIterationPair.second == TracksterIterIndex::TRKHAD) { trackstersTRKwithSameSeed.push_back(tracksterIterationPair.first); } } diff --git a/RecoHGCal/TICL/plugins/TrackstersProducer.cc b/RecoHGCal/TICL/plugins/TrackstersProducer.cc index 38650eeab1211..a24cc86f49aca 100644 --- a/RecoHGCal/TICL/plugins/TrackstersProducer.cc +++ b/RecoHGCal/TICL/plugins/TrackstersProducer.cc @@ -55,6 +55,7 @@ class TrackstersProducer : public edm::stream::EDProducer layer_clusters_tiles_hfnose_token_; const edm::EDGetTokenT> seeding_regions_token_; const std::string itername_; + ticl::Trackster::IterationIndex iterIndex_; }; DEFINE_FWK_MODULE(TrackstersProducer); @@ -96,6 +97,18 @@ TrackstersProducer::TrackstersProducer(const edm::ParameterSet& ps, const Tracks } else { layer_clusters_tiles_token_ = consumes(ps.getParameter("layer_clusters_tiles")); } + + if (itername_ == "TrkEM") + iterIndex_ = ticl::Trackster::TRKEM; + else if (itername_ == "EM") + iterIndex_ = ticl::Trackster::EM; + else if (itername_ == "Trk") + iterIndex_ = ticl::Trackster::TRKHAD; + else if (itername_ == "HAD") + iterIndex_ = ticl::Trackster::HAD; + else if (itername_ == "MIP") + iterIndex_ = ticl::Trackster::MIP; + produces>(); produces>(); // Mask to be applied at the next iteration } @@ -179,8 +192,9 @@ void TrackstersProducer::produce(edm::Event& evt, const edm::EventSetup& es) { std::copy( std::begin(original_layerclusters_mask), std::end(original_layerclusters_mask), std::back_inserter(*output_mask)); - // Mask the used elements, accordingly - for (auto const& trackster : *result) { + for (auto& trackster : *result) { + trackster.setIteration(iterIndex_); + // Mask the used elements, accordingly for (auto const v : trackster.vertices()) { // TODO(rovere): for the moment we mask the layer cluster completely. In // the future, properly compute the fraction of usage. diff --git a/RecoHGCal/TICL/python/HADStep_cff.py b/RecoHGCal/TICL/python/HADStep_cff.py index 9af07d2e4faf4..655fadae45f3a 100644 --- a/RecoHGCal/TICL/python/HADStep_cff.py +++ b/RecoHGCal/TICL/python/HADStep_cff.py @@ -30,7 +30,7 @@ min_cos_theta = 0.866, # ~30 degrees min_cos_pointing = 0.819, # ~35 degrees max_delta_time = -1, - itername = "HADRONIC" + itername = "HAD" ) # MULTICLUSTERS diff --git a/RecoHGCal/TICL/python/SimTracksters_cff.py b/RecoHGCal/TICL/python/SimTracksters_cff.py new file mode 100644 index 0000000000000..8aa9d1a9fd8c7 --- /dev/null +++ b/RecoHGCal/TICL/python/SimTracksters_cff.py @@ -0,0 +1,31 @@ +import FWCore.ParameterSet.Config as cms + +from RecoHGCal.TICL.trackstersFromSimClustersProducer_cfi import trackstersFromSimClustersProducer as _trackstersFromSimClustersProducer +from RecoHGCal.TICL.multiClustersFromTrackstersProducer_cfi import multiClustersFromTrackstersProducer as _multiClustersFromTrackstersProducer +from RecoHGCal.TICL.filteredLayerClustersProducer_cfi import filteredLayerClustersProducer as _filteredLayerClustersProducer + + +# CA - PATTERN RECOGNITION + + +filteredLayerClustersSimTracksters = _filteredLayerClustersProducer.clone( + clusterFilter = "ClusterFilterByAlgoAndSize", + algo_number = 8, + min_cluster_size = 0, # inclusive + iteration_label = "ticlSimTracksters" +) + +ticlSimTracksters = _trackstersFromSimClustersProducer.clone( +) + +from Configuration.ProcessModifiers.premix_stage2_cff import premix_stage2 +premix_stage2.toModify(ticlSimTracksters, + simclusters = "mixData:MergedCaloTruth" +) + +ticlMultiClustersFromSimTracksters = _multiClustersFromTrackstersProducer.clone( + Tracksters = "ticlSimTracksters" +) + +ticlSimTrackstersTask = cms.Task(filteredLayerClustersSimTracksters, ticlSimTracksters, ticlMultiClustersFromSimTracksters) + diff --git a/RecoHGCal/TICL/python/TrkStep_cff.py b/RecoHGCal/TICL/python/TrkStep_cff.py index 739a7cafd5d2b..2529264542862 100644 --- a/RecoHGCal/TICL/python/TrkStep_cff.py +++ b/RecoHGCal/TICL/python/TrkStep_cff.py @@ -32,7 +32,7 @@ algo_verbosity = 2, oneTracksterPerTrackSeed = True, promoteEmptyRegionToTrackster = True, - itername = "TRK" + itername = "Trk" ) # MULTICLUSTERS diff --git a/RecoHGCal/TICL/python/iterativeTICL_cff.py b/RecoHGCal/TICL/python/iterativeTICL_cff.py index 9c961d580d09e..7ea82224b5611 100644 --- a/RecoHGCal/TICL/python/iterativeTICL_cff.py +++ b/RecoHGCal/TICL/python/iterativeTICL_cff.py @@ -5,6 +5,7 @@ from RecoHGCal.TICL.TrkStep_cff import * from RecoHGCal.TICL.EMStep_cff import * from RecoHGCal.TICL.HADStep_cff import * + from RecoHGCal.TICL.ticlLayerTileProducer_cfi import ticlLayerTileProducer from RecoHGCal.TICL.pfTICLProducer_cfi import pfTICLProducer as _pfTICLProducer from RecoHGCal.TICL.trackstersMergeProducer_cfi import trackstersMergeProducer as _trackstersMergeProducer @@ -22,14 +23,20 @@ pfTICL = _pfTICLProducer.clone() ticlPFTask = cms.Task(pfTICL) -iterTICLTask = cms.Task(ticlLayerTileTask - ,ticlTrkEMStepTask +ticlIterationsTask = cms.Task( + ticlTrkEMStepTask ,ticlEMStepTask ,ticlTrkStepTask ,ticlHADStepTask +) +ticlIterLabels = [_step.itername.value() for _iteration in ticlIterationsTask for _step in _iteration if (_step._TypedParameterizable__type == "TrackstersProducer")] + +iterTICLTask = cms.Task(ticlLayerTileTask + ,ticlIterationsTask ,ticlTracksterMergeTask ,ticlPFTask - ) +) +ticlIterLabelsMerge = ticlIterLabels + ["Merge"] ticlLayerTileHFNose = ticlLayerTileProducer.clone( detector = 'HFNose' diff --git a/RecoHGCal/TICL/test/BuildFile.xml b/RecoHGCal/TICL/test/BuildFile.xml index d6d0f32aecf71..257fd5f046ce3 100644 --- a/RecoHGCal/TICL/test/BuildFile.xml +++ b/RecoHGCal/TICL/test/BuildFile.xml @@ -4,9 +4,6 @@ - - - diff --git a/RecoJets/JetAnalyzers/src/CalcTopMassExample.cc b/RecoJets/JetAnalyzers/src/CalcTopMassExample.cc index 1b9257563a206..380d673e84894 100644 --- a/RecoJets/JetAnalyzers/src/CalcTopMassExample.cc +++ b/RecoJets/JetAnalyzers/src/CalcTopMassExample.cc @@ -32,10 +32,10 @@ #include "DataFormats/Common/interface/Ref.h" #include "DataFormats/Common/interface/getRef.h" -#include "SimDataFormats/JetMatching/interface/JetFlavour.h" -#include "SimDataFormats/JetMatching/interface/JetFlavourMatching.h" -#include "SimDataFormats/JetMatching/interface/MatchedPartons.h" -#include "SimDataFormats/JetMatching/interface/JetMatchedPartons.h" +#include "DataFormats/JetMatching/interface/JetFlavour.h" +#include "DataFormats/JetMatching/interface/JetFlavourMatching.h" +#include "DataFormats/JetMatching/interface/MatchedPartons.h" +#include "DataFormats/JetMatching/interface/JetMatchedPartons.h" #include "CommonTools/UtilAlgos/interface/TFileService.h" diff --git a/RecoLocalCalo/EcalRecAlgos/BuildFile.xml b/RecoLocalCalo/EcalRecAlgos/BuildFile.xml index b14fd8e0787f2..723cb21a33908 100644 --- a/RecoLocalCalo/EcalRecAlgos/BuildFile.xml +++ b/RecoLocalCalo/EcalRecAlgos/BuildFile.xml @@ -1,12 +1,9 @@ - - - diff --git a/RecoLocalCalo/EcalRecAlgos/interface/EcalLaserAPDPNRatiosGPU.h b/RecoLocalCalo/EcalRecAlgos/interface/EcalLaserAPDPNRatiosGPU.h deleted file mode 100644 index 4a6cd34fcd171..0000000000000 --- a/RecoLocalCalo/EcalRecAlgos/interface/EcalLaserAPDPNRatiosGPU.h +++ /dev/null @@ -1,53 +0,0 @@ -#ifndef RecoLocalCalo_EcalRecAlgos_interface_EcalLaserAPDPNRatiosGPU_h -#define RecoLocalCalo_EcalRecAlgos_interface_EcalLaserAPDPNRatiosGPU_h - -#include "CondFormats/EcalObjects/interface/EcalLaserAPDPNRatios.h" - -#ifndef __CUDACC__ -#include "HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h" -#include "HeterogeneousCore/CUDACore/interface/ESProduct.h" -#endif // __CUDACC__ - -class EcalLaserAPDPNRatiosGPU { -public: - struct Product { - ~Product(); - float *p1 = nullptr; - float *p2 = nullptr; - float *p3 = nullptr; - edm::TimeValue_t *t1 = nullptr; - edm::TimeValue_t *t2 = nullptr; - edm::TimeValue_t *t3 = nullptr; - }; - -#ifndef __CUDACC__ - - // - EcalLaserAPDPNRatiosGPU(EcalLaserAPDPNRatios const &); - - // will call dealloation for Product thru ~Product - ~EcalLaserAPDPNRatiosGPU() = default; - - // get device pointers - Product const &getProduct(cudaStream_t) const; - - // - static std::string name() { return std::string{"ecalLaserAPDPNRatiosGPU"}; } - -private: - // in the future, we need to arrange so to avoid this copy on the host - // store eb first then ee - std::vector > p1_; - std::vector > p2_; - std::vector > p3_; - - std::vector > t1_; - std::vector > t2_; - std::vector > t3_; - - cms::cuda::ESProduct product_; - -#endif // __CUDACC__ -}; - -#endif // RecoLocalCalo_EcalRecAlgos_interface_EcalLaserAPDPNRatiosGPU_h diff --git a/RecoLocalCalo/EcalRecAlgos/interface/EcalSamplesCorrelationGPU.h b/RecoLocalCalo/EcalRecAlgos/interface/EcalSamplesCorrelationGPU.h deleted file mode 100644 index e1dee2d505e6c..0000000000000 --- a/RecoLocalCalo/EcalRecAlgos/interface/EcalSamplesCorrelationGPU.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef RecoLocalCalo_EcalRecAlgos_interface_EcalSamplesCorrelationGPU_h -#define RecoLocalCalo_EcalRecAlgos_interface_EcalSamplesCorrelationGPU_h - -#include "CondFormats/EcalObjects/interface/EcalSamplesCorrelation.h" - -#ifndef __CUDACC__ -#include "HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h" -#include "HeterogeneousCore/CUDACore/interface/ESProduct.h" -#endif // __CUDACC__ - -class EcalSamplesCorrelationGPU { -public: - struct Product { - ~Product(); - double *EBG12SamplesCorrelation = nullptr, *EBG6SamplesCorrelation = nullptr, *EBG1SamplesCorrelation = nullptr; - double *EEG12SamplesCorrelation = nullptr, *EEG6SamplesCorrelation = nullptr, *EEG1SamplesCorrelation = nullptr; - }; - -#ifndef __CUDACC__ - // rearrange pedestals - EcalSamplesCorrelationGPU(EcalSamplesCorrelation const&); - - // will call dealloation for Product thru ~Product - ~EcalSamplesCorrelationGPU() = default; - - // get device pointers - Product const& getProduct(cudaStream_t) const; - - // - static std::string name() { return std::string{"ecalSamplesCorrelationGPU"}; } - -private: - std::vector const& EBG12SamplesCorrelation_; - std::vector const& EBG6SamplesCorrelation_; - std::vector const& EBG1SamplesCorrelation_; - std::vector const& EEG12SamplesCorrelation_; - std::vector const& EEG6SamplesCorrelation_; - std::vector const& EEG1SamplesCorrelation_; - - cms::cuda::ESProduct product_; -#endif // __CUDACC__ -}; - -#endif // RecoLocalCalo_EcalRecAlgos_interface_EcalSamplesCorrelationGPU_h diff --git a/RecoLocalCalo/EcalRecAlgos/interface/EcalTimeBiasCorrectionsGPU.h b/RecoLocalCalo/EcalRecAlgos/interface/EcalTimeBiasCorrectionsGPU.h deleted file mode 100644 index 9e2bf0aa18909..0000000000000 --- a/RecoLocalCalo/EcalRecAlgos/interface/EcalTimeBiasCorrectionsGPU.h +++ /dev/null @@ -1,49 +0,0 @@ -#ifndef RecoLocalCalo_EcalRecAlgos_interface_EcalTimeBiasCorrectionsGPU_h -#define RecoLocalCalo_EcalRecAlgos_interface_EcalTimeBiasCorrectionsGPU_h - -#include "CondFormats/EcalObjects/interface/EcalTimeBiasCorrections.h" - -#ifndef __CUDACC__ -#include "HeterogeneousCore/CUDAUtilities/interface/HostAllocator.h" -#include "HeterogeneousCore/CUDACore/interface/ESProduct.h" -#endif // __CUDACC__ - -class EcalTimeBiasCorrectionsGPU { -public: - struct Product { - ~Product(); - float *EBTimeCorrAmplitudeBins, *EBTimeCorrShiftBins; - float *EETimeCorrAmplitudeBins, *EETimeCorrShiftBins; - int EBTimeCorrAmplitudeBinsSize, EETimeCorrAmplitudeBinsSize; - }; - - // rearrange pedestals - EcalTimeBiasCorrectionsGPU(EcalTimeBiasCorrections const&); - -#ifndef __CUDACC__ - - // will call dealloation for Product thru ~Product - ~EcalTimeBiasCorrectionsGPU() = default; - - // get device pointers - Product const& getProduct(cudaStream_t) const; - - // - static std::string name() { return std::string{"ecalTimeBiasCorrectionsGPU"}; } -#endif // __CUDACC__ - - std::vector const& EBTimeCorrAmplitudeBins() const { return EBTimeCorrAmplitudeBins_; } - std::vector const& EETimeCorrAmplitudeBins() const { return EETimeCorrAmplitudeBins_; } - -private: - std::vector const& EBTimeCorrAmplitudeBins_; - std::vector const& EBTimeCorrShiftBins_; - std::vector const& EETimeCorrAmplitudeBins_; - std::vector const& EETimeCorrShiftBins_; - -#ifndef __CUDACC__ - cms::cuda::ESProduct product_; -#endif // __CUDACC__ -}; - -#endif // RecoLocalCalo_EcalRecAlgos_interface_EcalTimeBiasCorrectionsGPU_h diff --git a/RecoLocalCalo/EcalRecAlgos/src/EcalGainRatiosGPU.cc b/RecoLocalCalo/EcalRecAlgos/src/EcalGainRatiosGPU.cc deleted file mode 100644 index d5980d8a757aa..0000000000000 --- a/RecoLocalCalo/EcalRecAlgos/src/EcalGainRatiosGPU.cc +++ /dev/null @@ -1,52 +0,0 @@ -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalGainRatiosGPU.h" - -#include "FWCore/Utilities/interface/typelookup.h" -#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" - -EcalGainRatiosGPU::EcalGainRatiosGPU(EcalGainRatios const& values) - : gain12Over6_(values.size()), gain6Over1_(values.size()) { - // fill in eb - auto const& barrelValues = values.barrelItems(); - for (unsigned int i = 0; i < barrelValues.size(); i++) { - gain12Over6_[i] = barrelValues[i].gain12Over6(); - gain6Over1_[i] = barrelValues[i].gain6Over1(); - } - - // fill in ee - auto const& endcapValues = values.endcapItems(); - auto const offset = barrelValues.size(); - for (unsigned int i = 0; i < endcapValues.size(); i++) { - gain12Over6_[offset + i] = endcapValues[i].gain12Over6(); - gain6Over1_[offset + i] = endcapValues[i].gain6Over1(); - } -} - -EcalGainRatiosGPU::Product::~Product() { - // deallocation - cudaCheck(cudaFree(gain12Over6)); - cudaCheck(cudaFree(gain6Over1)); -} - -EcalGainRatiosGPU::Product const& EcalGainRatiosGPU::getProduct(cudaStream_t cudaStream) const { - auto const& product = product_.dataForCurrentDeviceAsync( - cudaStream, [this](EcalGainRatiosGPU::Product& product, cudaStream_t cudaStream) { - // malloc - cudaCheck(cudaMalloc((void**)&product.gain12Over6, this->gain12Over6_.size() * sizeof(float))); - cudaCheck(cudaMalloc((void**)&product.gain6Over1, this->gain6Over1_.size() * sizeof(float))); - // transfer - cudaCheck(cudaMemcpyAsync(product.gain12Over6, - this->gain12Over6_.data(), - this->gain12Over6_.size() * sizeof(float), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.gain6Over1, - this->gain6Over1_.data(), - this->gain6Over1_.size() * sizeof(float), - cudaMemcpyHostToDevice, - cudaStream)); - }); - - return product; -} - -TYPELOOKUP_DATA_REG(EcalGainRatiosGPU); diff --git a/RecoLocalCalo/EcalRecAlgos/src/EcalIntercalibConstantsGPU.cc b/RecoLocalCalo/EcalRecAlgos/src/EcalIntercalibConstantsGPU.cc deleted file mode 100644 index dec10cff57dd0..0000000000000 --- a/RecoLocalCalo/EcalRecAlgos/src/EcalIntercalibConstantsGPU.cc +++ /dev/null @@ -1,40 +0,0 @@ -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalIntercalibConstantsGPU.h" - -#include "FWCore/Utilities/interface/typelookup.h" -#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" - -EcalIntercalibConstantsGPU::EcalIntercalibConstantsGPU(EcalIntercalibConstants const& values) - : valuesEB_{values.barrelItems()}, valuesEE_{values.endcapItems()} {} - -EcalIntercalibConstantsGPU::Product::~Product() { - // deallocation - cudaCheck(cudaFree(values)); -} - -EcalIntercalibConstantsGPU::Product const& EcalIntercalibConstantsGPU::getProduct(cudaStream_t cudaStream) const { - auto const& product = product_.dataForCurrentDeviceAsync( - cudaStream, [this](EcalIntercalibConstantsGPU::Product& product, cudaStream_t cudaStream) { - // malloc - cudaCheck( - cudaMalloc((void**)&product.values, (this->valuesEB_.size() + this->valuesEE_.size()) * sizeof(float))); - - // offset in floats, not bytes - auto const offset = this->valuesEB_.size(); - - // transfer - cudaCheck(cudaMemcpyAsync(product.values, - this->valuesEB_.data(), - this->valuesEB_.size() * sizeof(float), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.values + offset, - this->valuesEE_.data(), - this->valuesEE_.size() * sizeof(float), - cudaMemcpyHostToDevice, - cudaStream)); - }); - - return product; -} - -TYPELOOKUP_DATA_REG(EcalIntercalibConstantsGPU); diff --git a/RecoLocalCalo/EcalRecAlgos/src/EcalLaserAPDPNRatiosGPU.cc b/RecoLocalCalo/EcalRecAlgos/src/EcalLaserAPDPNRatiosGPU.cc deleted file mode 100644 index 4aa92ea6750fe..0000000000000 --- a/RecoLocalCalo/EcalRecAlgos/src/EcalLaserAPDPNRatiosGPU.cc +++ /dev/null @@ -1,86 +0,0 @@ -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalLaserAPDPNRatiosGPU.h" - -#include "FWCore/Utilities/interface/typelookup.h" -#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" - -EcalLaserAPDPNRatiosGPU::EcalLaserAPDPNRatiosGPU(EcalLaserAPDPNRatios const& values) - : p1_(values.getLaserMap().size()), - p2_(values.getLaserMap().size()), - p3_(values.getLaserMap().size()), - t1_(values.getTimeMap().size()), - t2_(values.getTimeMap().size()), - t3_(values.getTimeMap().size()) { - // fill in eb - // auto const& barrelValues = values.barrelItems(); - for (unsigned int i = 0; i < values.getLaserMap().barrelItems().size(); i++) { - p1_[i] = values.getLaserMap().barrelItems()[i].p1; - p2_[i] = values.getLaserMap().barrelItems()[i].p2; - p3_[i] = values.getLaserMap().barrelItems()[i].p3; - } - - // fill in ee - // auto const& endcapValues = values.endcapItems(); - auto const offset_laser = values.getLaserMap().barrelItems().size(); - for (unsigned int i = 0; i < values.getLaserMap().endcapItems().size(); i++) { - p1_[offset_laser + i] = values.getLaserMap().endcapItems()[i].p1; - p2_[offset_laser + i] = values.getLaserMap().endcapItems()[i].p2; - p3_[offset_laser + i] = values.getLaserMap().endcapItems()[i].p3; - } - - // Time is a simple std::vector - // typedef std::vector EcalLaserTimeStampMap; - for (unsigned int i = 0; i < values.getTimeMap().size(); i++) { - t1_[i] = values.getTimeMap()[i].t1.value(); - t2_[i] = values.getTimeMap()[i].t2.value(); - t3_[i] = values.getTimeMap()[i].t3.value(); - } -} - -EcalLaserAPDPNRatiosGPU::Product::~Product() { - // deallocation - cudaCheck(cudaFree(p1)); - cudaCheck(cudaFree(p2)); - cudaCheck(cudaFree(p3)); - cudaCheck(cudaFree(t1)); - cudaCheck(cudaFree(t2)); - cudaCheck(cudaFree(t3)); -} - -EcalLaserAPDPNRatiosGPU::Product const& EcalLaserAPDPNRatiosGPU::getProduct(cudaStream_t cudaStream) const { - auto const& product = product_.dataForCurrentDeviceAsync( - cudaStream, [this](EcalLaserAPDPNRatiosGPU::Product& product, cudaStream_t cudaStream) { - // malloc - cudaCheck(cudaMalloc((void**)&product.p1, this->p1_.size() * sizeof(float))); - cudaCheck(cudaMalloc((void**)&product.p2, this->p2_.size() * sizeof(float))); - cudaCheck(cudaMalloc((void**)&product.p3, this->p3_.size() * sizeof(float))); - cudaCheck(cudaMalloc((void**)&product.t1, this->t1_.size() * sizeof(edm::TimeValue_t))); - cudaCheck(cudaMalloc((void**)&product.t2, this->t2_.size() * sizeof(edm::TimeValue_t))); - cudaCheck(cudaMalloc((void**)&product.t3, this->t3_.size() * sizeof(edm::TimeValue_t))); - // transfer - cudaCheck(cudaMemcpyAsync( - product.p1, this->p1_.data(), this->p1_.size() * sizeof(float), cudaMemcpyHostToDevice, cudaStream)); - cudaCheck(cudaMemcpyAsync( - product.p2, this->p2_.data(), this->p2_.size() * sizeof(float), cudaMemcpyHostToDevice, cudaStream)); - cudaCheck(cudaMemcpyAsync( - product.p3, this->p3_.data(), this->p3_.size() * sizeof(float), cudaMemcpyHostToDevice, cudaStream)); - cudaCheck(cudaMemcpyAsync(product.t1, - this->t1_.data(), - this->t1_.size() * sizeof(edm::TimeValue_t), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.t2, - this->t2_.data(), - this->t2_.size() * sizeof(edm::TimeValue_t), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.t3, - this->t3_.data(), - this->t3_.size() * sizeof(edm::TimeValue_t), - cudaMemcpyHostToDevice, - cudaStream)); - }); - - return product; -} - -TYPELOOKUP_DATA_REG(EcalLaserAPDPNRatiosGPU); diff --git a/RecoLocalCalo/EcalRecAlgos/src/EcalLaserAPDPNRatiosRefGPU.cc b/RecoLocalCalo/EcalRecAlgos/src/EcalLaserAPDPNRatiosRefGPU.cc deleted file mode 100644 index 8f77cf48fe1d1..0000000000000 --- a/RecoLocalCalo/EcalRecAlgos/src/EcalLaserAPDPNRatiosRefGPU.cc +++ /dev/null @@ -1,40 +0,0 @@ -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalLaserAPDPNRatiosRefGPU.h" - -#include "FWCore/Utilities/interface/typelookup.h" -#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" - -EcalLaserAPDPNRatiosRefGPU::EcalLaserAPDPNRatiosRefGPU(EcalLaserAPDPNRatiosRef const& values) - : valuesEB_{values.barrelItems()}, valuesEE_{values.endcapItems()} {} - -EcalLaserAPDPNRatiosRefGPU::Product::~Product() { - // deallocation - cudaCheck(cudaFree(values)); -} - -EcalLaserAPDPNRatiosRefGPU::Product const& EcalLaserAPDPNRatiosRefGPU::getProduct(cudaStream_t cudaStream) const { - auto const& product = product_.dataForCurrentDeviceAsync( - cudaStream, [this](EcalLaserAPDPNRatiosRefGPU::Product& product, cudaStream_t cudaStream) { - // malloc - cudaCheck( - cudaMalloc((void**)&product.values, (this->valuesEB_.size() + this->valuesEE_.size()) * sizeof(float))); - - // offset in floats, not bytes - auto const offset = this->valuesEB_.size(); - - // transfer - cudaCheck(cudaMemcpyAsync(product.values, - this->valuesEB_.data(), - this->valuesEB_.size() * sizeof(float), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.values + offset, - this->valuesEE_.data(), - this->valuesEE_.size() * sizeof(float), - cudaMemcpyHostToDevice, - cudaStream)); - }); - - return product; -} - -TYPELOOKUP_DATA_REG(EcalLaserAPDPNRatiosRefGPU); diff --git a/RecoLocalCalo/EcalRecAlgos/src/EcalLaserAlphasGPU.cc b/RecoLocalCalo/EcalRecAlgos/src/EcalLaserAlphasGPU.cc deleted file mode 100644 index 91de441bff683..0000000000000 --- a/RecoLocalCalo/EcalRecAlgos/src/EcalLaserAlphasGPU.cc +++ /dev/null @@ -1,40 +0,0 @@ -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalLaserAlphasGPU.h" - -#include "FWCore/Utilities/interface/typelookup.h" -#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" - -EcalLaserAlphasGPU::EcalLaserAlphasGPU(EcalLaserAlphas const& values) - : valuesEB_{values.barrelItems()}, valuesEE_{values.endcapItems()} {} - -EcalLaserAlphasGPU::Product::~Product() { - // deallocation - cudaCheck(cudaFree(values)); -} - -EcalLaserAlphasGPU::Product const& EcalLaserAlphasGPU::getProduct(cudaStream_t cudaStream) const { - auto const& product = product_.dataForCurrentDeviceAsync( - cudaStream, [this](EcalLaserAlphasGPU::Product& product, cudaStream_t cudaStream) { - // malloc - cudaCheck( - cudaMalloc((void**)&product.values, (this->valuesEB_.size() + this->valuesEE_.size()) * sizeof(float))); - - // offset in floats, not bytes - auto const offset = this->valuesEB_.size(); - - // transfer - cudaCheck(cudaMemcpyAsync(product.values, - this->valuesEB_.data(), - this->valuesEB_.size() * sizeof(float), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.values + offset, - this->valuesEE_.data(), - this->valuesEE_.size() * sizeof(float), - cudaMemcpyHostToDevice, - cudaStream)); - }); - - return product; -} - -TYPELOOKUP_DATA_REG(EcalLaserAlphasGPU); diff --git a/RecoLocalCalo/EcalRecAlgos/src/EcalLinearCorrectionsGPU.cc b/RecoLocalCalo/EcalRecAlgos/src/EcalLinearCorrectionsGPU.cc deleted file mode 100644 index 0af2a9044ab65..0000000000000 --- a/RecoLocalCalo/EcalRecAlgos/src/EcalLinearCorrectionsGPU.cc +++ /dev/null @@ -1,84 +0,0 @@ -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalLinearCorrectionsGPU.h" - -#include "FWCore/Utilities/interface/typelookup.h" -#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" - -EcalLinearCorrectionsGPU::EcalLinearCorrectionsGPU(EcalLinearCorrections const& values) - : p1_(values.getValueMap().size()), - p2_(values.getValueMap().size()), - p3_(values.getValueMap().size()), - t1_(values.getTimeMap().size()), - t2_(values.getTimeMap().size()), - t3_(values.getTimeMap().size()) { - // fill in eb - for (unsigned int i = 0; i < values.getValueMap().barrelItems().size(); i++) { - p1_[i] = values.getValueMap().barrelItems()[i].p1; - p2_[i] = values.getValueMap().barrelItems()[i].p2; - p3_[i] = values.getValueMap().barrelItems()[i].p3; - } - - // fill in ee - auto const offset_laser = values.getValueMap().barrelItems().size(); - for (unsigned int i = 0; i < values.getValueMap().endcapItems().size(); i++) { - p1_[offset_laser + i] = values.getValueMap().endcapItems()[i].p1; - p2_[offset_laser + i] = values.getValueMap().endcapItems()[i].p2; - p3_[offset_laser + i] = values.getValueMap().endcapItems()[i].p3; - } - - // Time is a simple std::vector - // typedef std::vector EcalLaserTimeStampMap; - for (unsigned int i = 0; i < values.getTimeMap().size(); i++) { - t1_[i] = values.getTimeMap()[i].t1.value(); - t2_[i] = values.getTimeMap()[i].t2.value(); - t3_[i] = values.getTimeMap()[i].t3.value(); - } -} - -EcalLinearCorrectionsGPU::Product::~Product() { - // deallocation - cudaCheck(cudaFree(p1)); - cudaCheck(cudaFree(p2)); - cudaCheck(cudaFree(p3)); - cudaCheck(cudaFree(t1)); - cudaCheck(cudaFree(t2)); - cudaCheck(cudaFree(t3)); -} - -EcalLinearCorrectionsGPU::Product const& EcalLinearCorrectionsGPU::getProduct(cudaStream_t cudaStream) const { - auto const& product = product_.dataForCurrentDeviceAsync( - cudaStream, [this](EcalLinearCorrectionsGPU::Product& product, cudaStream_t cudaStream) { - // malloc - cudaCheck(cudaMalloc((void**)&product.p1, this->p1_.size() * sizeof(float))); - cudaCheck(cudaMalloc((void**)&product.p2, this->p2_.size() * sizeof(float))); - cudaCheck(cudaMalloc((void**)&product.p3, this->p3_.size() * sizeof(float))); - cudaCheck(cudaMalloc((void**)&product.t1, this->t1_.size() * sizeof(edm::TimeValue_t))); - cudaCheck(cudaMalloc((void**)&product.t2, this->t2_.size() * sizeof(edm::TimeValue_t))); - cudaCheck(cudaMalloc((void**)&product.t3, this->t3_.size() * sizeof(edm::TimeValue_t))); - // transfer - cudaCheck(cudaMemcpyAsync( - product.p1, this->p1_.data(), this->p1_.size() * sizeof(float), cudaMemcpyHostToDevice, cudaStream)); - cudaCheck(cudaMemcpyAsync( - product.p2, this->p2_.data(), this->p2_.size() * sizeof(float), cudaMemcpyHostToDevice, cudaStream)); - cudaCheck(cudaMemcpyAsync( - product.p3, this->p3_.data(), this->p3_.size() * sizeof(float), cudaMemcpyHostToDevice, cudaStream)); - cudaCheck(cudaMemcpyAsync(product.t1, - this->t1_.data(), - this->t1_.size() * sizeof(edm::TimeValue_t), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.t2, - this->t2_.data(), - this->t2_.size() * sizeof(edm::TimeValue_t), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.t3, - this->t3_.data(), - this->t3_.size() * sizeof(edm::TimeValue_t), - cudaMemcpyHostToDevice, - cudaStream)); - }); - - return product; -} - -TYPELOOKUP_DATA_REG(EcalLinearCorrectionsGPU); diff --git a/RecoLocalCalo/EcalRecAlgos/src/EcalMultifitParametersGPU.cc b/RecoLocalCalo/EcalRecAlgos/src/EcalMultifitParametersGPU.cc deleted file mode 100644 index 010da6444b614..0000000000000 --- a/RecoLocalCalo/EcalRecAlgos/src/EcalMultifitParametersGPU.cc +++ /dev/null @@ -1,66 +0,0 @@ -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalMultifitParametersGPU.h" - -#include "FWCore/Utilities/interface/typelookup.h" -#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" - -EcalMultifitParametersGPU::EcalMultifitParametersGPU(edm::ParameterSet const& ps) { - auto const& amplitudeFitParametersEB = ps.getParameter>("EBamplitudeFitParameters"); - auto const& amplitudeFitParametersEE = ps.getParameter>("EEamplitudeFitParameters"); - auto const& timeFitParametersEB = ps.getParameter>("EBtimeFitParameters"); - auto const& timeFitParametersEE = ps.getParameter>("EEtimeFitParameters"); - - amplitudeFitParametersEB_.resize(amplitudeFitParametersEB.size()); - amplitudeFitParametersEE_.resize(amplitudeFitParametersEE.size()); - timeFitParametersEB_.resize(timeFitParametersEB.size()); - timeFitParametersEE_.resize(timeFitParametersEE.size()); - - std::copy(amplitudeFitParametersEB.begin(), amplitudeFitParametersEB.end(), amplitudeFitParametersEB_.begin()); - std::copy(amplitudeFitParametersEE.begin(), amplitudeFitParametersEE.end(), amplitudeFitParametersEE_.begin()); - std::copy(timeFitParametersEB.begin(), timeFitParametersEB.end(), timeFitParametersEB_.begin()); - std::copy(timeFitParametersEE.begin(), timeFitParametersEE.end(), timeFitParametersEE_.begin()); -} - -EcalMultifitParametersGPU::Product::~Product() { - cudaCheck(cudaFree(amplitudeFitParametersEB)); - cudaCheck(cudaFree(amplitudeFitParametersEE)); - cudaCheck(cudaFree(timeFitParametersEB)); - cudaCheck(cudaFree(timeFitParametersEE)); -} - -EcalMultifitParametersGPU::Product const& EcalMultifitParametersGPU::getProduct(cudaStream_t cudaStream) const { - auto const& product = product_.dataForCurrentDeviceAsync( - cudaStream, [this](EcalMultifitParametersGPU::Product& product, cudaStream_t cudaStream) { - // malloc - cudaCheck(cudaMalloc((void**)&product.amplitudeFitParametersEB, - this->amplitudeFitParametersEB_.size() * sizeof(double))); - cudaCheck(cudaMalloc((void**)&product.amplitudeFitParametersEE, - this->amplitudeFitParametersEE_.size() * sizeof(double))); - cudaCheck(cudaMalloc((void**)&product.timeFitParametersEB, this->timeFitParametersEB_.size() * sizeof(double))); - cudaCheck(cudaMalloc((void**)&product.timeFitParametersEE, this->timeFitParametersEE_.size() * sizeof(double))); - - // transfer - cudaCheck(cudaMemcpyAsync(product.amplitudeFitParametersEB, - this->amplitudeFitParametersEB_.data(), - this->amplitudeFitParametersEB_.size() * sizeof(double), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.amplitudeFitParametersEE, - this->amplitudeFitParametersEE_.data(), - this->amplitudeFitParametersEE_.size() * sizeof(double), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.timeFitParametersEB, - this->timeFitParametersEB_.data(), - this->timeFitParametersEB_.size() * sizeof(double), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.timeFitParametersEE, - this->timeFitParametersEE_.data(), - this->timeFitParametersEE_.size() * sizeof(double), - cudaMemcpyHostToDevice, - cudaStream)); - }); - return product; -} - -TYPELOOKUP_DATA_REG(EcalMultifitParametersGPU); diff --git a/RecoLocalCalo/EcalRecAlgos/src/EcalPedestalsGPU.cc b/RecoLocalCalo/EcalRecAlgos/src/EcalPedestalsGPU.cc deleted file mode 100644 index 9e3284cd9c7c8..0000000000000 --- a/RecoLocalCalo/EcalRecAlgos/src/EcalPedestalsGPU.cc +++ /dev/null @@ -1,94 +0,0 @@ -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalPedestalsGPU.h" - -#include "FWCore/Utilities/interface/typelookup.h" -#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" - -EcalPedestalsGPU::EcalPedestalsGPU(EcalPedestals const& pedestals) - : mean_x12_(pedestals.size()), - rms_x12_(pedestals.size()), - mean_x6_(pedestals.size()), - rms_x6_(pedestals.size()), - mean_x1_(pedestals.size()), - rms_x1_(pedestals.size()) { - // fill in eb - auto const& barrelValues = pedestals.barrelItems(); - for (unsigned int i = 0; i < barrelValues.size(); i++) { - mean_x12_[i] = barrelValues[i].mean_x12; - rms_x12_[i] = barrelValues[i].rms_x12; - mean_x6_[i] = barrelValues[i].mean_x6; - rms_x6_[i] = barrelValues[i].rms_x6; - mean_x1_[i] = barrelValues[i].mean_x1; - rms_x1_[i] = barrelValues[i].rms_x1; - } - - // fill in ee - auto const& endcapValues = pedestals.endcapItems(); - auto const offset = barrelValues.size(); - for (unsigned int i = 0; i < endcapValues.size(); i++) { - mean_x12_[offset + i] = endcapValues[i].mean_x12; - rms_x12_[offset + i] = endcapValues[i].rms_x12; - mean_x6_[offset + i] = endcapValues[i].mean_x6; - rms_x6_[offset + i] = endcapValues[i].rms_x6; - mean_x1_[offset + i] = endcapValues[i].mean_x1; - rms_x1_[offset + i] = endcapValues[i].rms_x1; - } -} - -EcalPedestalsGPU::Product::~Product() { - // deallocation - cudaCheck(cudaFree(mean_x12)); - cudaCheck(cudaFree(rms_x12)); - cudaCheck(cudaFree(mean_x6)); - cudaCheck(cudaFree(rms_x6)); - cudaCheck(cudaFree(mean_x1)); - cudaCheck(cudaFree(rms_x1)); -} - -EcalPedestalsGPU::Product const& EcalPedestalsGPU::getProduct(cudaStream_t cudaStream) const { - auto const& product = product_.dataForCurrentDeviceAsync( - cudaStream, [this](EcalPedestalsGPU::Product& product, cudaStream_t cudaStream) { - // malloc - cudaCheck(cudaMalloc((void**)&product.mean_x12, this->mean_x12_.size() * sizeof(float))); - cudaCheck(cudaMalloc((void**)&product.rms_x12, this->mean_x12_.size() * sizeof(float))); - cudaCheck(cudaMalloc((void**)&product.mean_x6, this->mean_x12_.size() * sizeof(float))); - cudaCheck(cudaMalloc((void**)&product.rms_x6, this->mean_x12_.size() * sizeof(float))); - cudaCheck(cudaMalloc((void**)&product.mean_x1, this->mean_x12_.size() * sizeof(float))); - cudaCheck(cudaMalloc((void**)&product.rms_x1, this->mean_x12_.size() * sizeof(float))); - - // transfer - cudaCheck(cudaMemcpyAsync(product.mean_x12, - this->mean_x12_.data(), - this->mean_x12_.size() * sizeof(float), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.rms_x12, - this->rms_x12_.data(), - this->rms_x12_.size() * sizeof(float), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.mean_x6, - this->mean_x6_.data(), - this->mean_x6_.size() * sizeof(float), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.rms_x6, - this->rms_x6_.data(), - this->rms_x6_.size() * sizeof(float), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.mean_x1, - this->mean_x1_.data(), - this->mean_x1_.size() * sizeof(float), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.rms_x1, - this->rms_x1_.data(), - this->rms_x1_.size() * sizeof(float), - cudaMemcpyHostToDevice, - cudaStream)); - }); - - return product; -} - -TYPELOOKUP_DATA_REG(EcalPedestalsGPU); diff --git a/RecoLocalCalo/EcalRecAlgos/src/EcalRecHitParametersGPU.cc b/RecoLocalCalo/EcalRecAlgos/src/EcalRecHitParametersGPU.cc deleted file mode 100644 index 0f6812d6d6ffe..0000000000000 --- a/RecoLocalCalo/EcalRecAlgos/src/EcalRecHitParametersGPU.cc +++ /dev/null @@ -1,82 +0,0 @@ -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalRecHitParametersGPU.h" - -#include "FWCore/Utilities/interface/typelookup.h" -#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" -#include "CommonTools/Utils/interface/StringToEnumValue.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalRechitChannelStatusGPU.h" -#include "DataFormats/EcalRecHit/interface/EcalRecHit.h" - -EcalRecHitParametersGPU::EcalRecHitParametersGPU(edm::ParameterSet const& ps) { - auto const& ChannelStatusToBeExcluded = StringToEnumValue( - ps.getParameter>("ChannelStatusToBeExcluded")); - - ChannelStatusToBeExcluded_.resize(ChannelStatusToBeExcluded.size()); - std::copy(ChannelStatusToBeExcluded.begin(), ChannelStatusToBeExcluded.end(), ChannelStatusToBeExcluded_.begin()); - - // https://github.com/cms-sw/cmssw/blob/266e21cfc9eb409b093e4cf064f4c0a24c6ac293/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitWorkerSimple.cc - - // Traslate string representation of flagsMapDBReco into enum values - const edm::ParameterSet& p = ps.getParameter("flagsMapDBReco"); - std::vector recoflagbitsStrings = p.getParameterNames(); - - for (unsigned int i = 0; i != recoflagbitsStrings.size(); ++i) { - EcalRecHit::Flags recoflagbit = (EcalRecHit::Flags)StringToEnumValue(recoflagbitsStrings[i]); - std::vector dbstatus_s = p.getParameter>(recoflagbitsStrings[i]); - // std::vector dbstatuses; - for (unsigned int j = 0; j != dbstatus_s.size(); ++j) { - EcalChannelStatusCode::Code dbstatus = - (EcalChannelStatusCode::Code)StringToEnumValue(dbstatus_s[j]); - expanded_v_DB_reco_flags_.push_back(dbstatus); - } - - expanded_Sizes_v_DB_reco_flags_.push_back(dbstatus_s.size()); - expanded_flagbit_v_DB_reco_flags_.push_back(recoflagbit); - } -} - -EcalRecHitParametersGPU::Product::~Product() { - cudaCheck(cudaFree(ChannelStatusToBeExcluded)); - cudaCheck(cudaFree(expanded_v_DB_reco_flags)); - cudaCheck(cudaFree(expanded_Sizes_v_DB_reco_flags)); - cudaCheck(cudaFree(expanded_flagbit_v_DB_reco_flags)); -} - -EcalRecHitParametersGPU::Product const& EcalRecHitParametersGPU::getProduct(cudaStream_t cudaStream) const { - auto const& product = product_.dataForCurrentDeviceAsync( - cudaStream, [this](EcalRecHitParametersGPU::Product& product, cudaStream_t cudaStream) { - // malloc - cudaCheck(cudaMalloc((void**)&product.ChannelStatusToBeExcluded, - this->ChannelStatusToBeExcluded_.size() * sizeof(int))); - cudaCheck(cudaMalloc((void**)&product.expanded_v_DB_reco_flags, - this->expanded_v_DB_reco_flags_.size() * sizeof(int))); - cudaCheck(cudaMalloc((void**)&product.expanded_Sizes_v_DB_reco_flags, - this->expanded_Sizes_v_DB_reco_flags_.size() * sizeof(uint32_t))); - cudaCheck(cudaMalloc((void**)&product.expanded_flagbit_v_DB_reco_flags, - this->expanded_flagbit_v_DB_reco_flags_.size() * sizeof(uint32_t))); - - // transfer - cudaCheck(cudaMemcpyAsync(product.ChannelStatusToBeExcluded, - this->ChannelStatusToBeExcluded_.data(), - this->ChannelStatusToBeExcluded_.size() * sizeof(int), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.expanded_v_DB_reco_flags, - this->expanded_v_DB_reco_flags_.data(), - this->expanded_v_DB_reco_flags_.size() * sizeof(int), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.expanded_Sizes_v_DB_reco_flags, - this->expanded_Sizes_v_DB_reco_flags_.data(), - this->expanded_Sizes_v_DB_reco_flags_.size() * sizeof(uint32_t), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.expanded_flagbit_v_DB_reco_flags, - this->expanded_flagbit_v_DB_reco_flags_.data(), - this->expanded_flagbit_v_DB_reco_flags_.size() * sizeof(uint32_t), - cudaMemcpyHostToDevice, - cudaStream)); - }); - return product; -} - -TYPELOOKUP_DATA_REG(EcalRecHitParametersGPU); diff --git a/RecoLocalCalo/EcalRecAlgos/src/EcalSamplesCorrelationGPU.cc b/RecoLocalCalo/EcalRecAlgos/src/EcalSamplesCorrelationGPU.cc deleted file mode 100644 index 2a98067f51d9e..0000000000000 --- a/RecoLocalCalo/EcalRecAlgos/src/EcalSamplesCorrelationGPU.cc +++ /dev/null @@ -1,76 +0,0 @@ -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalSamplesCorrelationGPU.h" - -#include "FWCore/Utilities/interface/typelookup.h" -#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" - -EcalSamplesCorrelationGPU::EcalSamplesCorrelationGPU(EcalSamplesCorrelation const& values) - : EBG12SamplesCorrelation_{values.EBG12SamplesCorrelation}, - EBG6SamplesCorrelation_{values.EBG6SamplesCorrelation}, - EBG1SamplesCorrelation_{values.EBG1SamplesCorrelation}, - EEG12SamplesCorrelation_{values.EEG12SamplesCorrelation}, - EEG6SamplesCorrelation_{values.EEG6SamplesCorrelation}, - EEG1SamplesCorrelation_{values.EEG1SamplesCorrelation} {} - -EcalSamplesCorrelationGPU::Product::~Product() { - // deallocation - cudaCheck(cudaFree(EBG12SamplesCorrelation)); - cudaCheck(cudaFree(EBG6SamplesCorrelation)); - cudaCheck(cudaFree(EBG1SamplesCorrelation)); - cudaCheck(cudaFree(EEG12SamplesCorrelation)); - cudaCheck(cudaFree(EEG6SamplesCorrelation)); - cudaCheck(cudaFree(EEG1SamplesCorrelation)); -} - -EcalSamplesCorrelationGPU::Product const& EcalSamplesCorrelationGPU::getProduct(cudaStream_t cudaStream) const { - auto const& product = product_.dataForCurrentDeviceAsync( - cudaStream, [this](EcalSamplesCorrelationGPU::Product& product, cudaStream_t cudaStream) { - // malloc - cudaCheck(cudaMalloc((void**)&product.EBG12SamplesCorrelation, - this->EBG12SamplesCorrelation_.size() * sizeof(double))); - cudaCheck( - cudaMalloc((void**)&product.EBG6SamplesCorrelation, this->EBG6SamplesCorrelation_.size() * sizeof(double))); - cudaCheck( - cudaMalloc((void**)&product.EBG1SamplesCorrelation, this->EBG1SamplesCorrelation_.size() * sizeof(double))); - cudaCheck(cudaMalloc((void**)&product.EEG12SamplesCorrelation, - this->EEG12SamplesCorrelation_.size() * sizeof(double))); - cudaCheck( - cudaMalloc((void**)&product.EEG6SamplesCorrelation, this->EEG6SamplesCorrelation_.size() * sizeof(double))); - cudaCheck( - cudaMalloc((void**)&product.EEG1SamplesCorrelation, this->EEG1SamplesCorrelation_.size() * sizeof(double))); - // transfer - cudaCheck(cudaMemcpyAsync(product.EBG12SamplesCorrelation, - this->EBG12SamplesCorrelation_.data(), - this->EBG12SamplesCorrelation_.size() * sizeof(double), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.EBG6SamplesCorrelation, - this->EBG6SamplesCorrelation_.data(), - this->EBG6SamplesCorrelation_.size() * sizeof(double), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.EBG1SamplesCorrelation, - this->EBG1SamplesCorrelation_.data(), - this->EBG1SamplesCorrelation_.size() * sizeof(double), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.EEG12SamplesCorrelation, - this->EEG12SamplesCorrelation_.data(), - this->EEG12SamplesCorrelation_.size() * sizeof(double), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.EEG6SamplesCorrelation, - this->EEG6SamplesCorrelation_.data(), - this->EEG6SamplesCorrelation_.size() * sizeof(double), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.EEG1SamplesCorrelation, - this->EEG1SamplesCorrelation_.data(), - this->EEG1SamplesCorrelation_.size() * sizeof(double), - cudaMemcpyHostToDevice, - cudaStream)); - }); - - return product; -} - -TYPELOOKUP_DATA_REG(EcalSamplesCorrelationGPU); diff --git a/RecoLocalCalo/EcalRecAlgos/src/EcalTimeBiasCorrectionsGPU.cc b/RecoLocalCalo/EcalRecAlgos/src/EcalTimeBiasCorrectionsGPU.cc deleted file mode 100644 index 9ab0a6302a9c4..0000000000000 --- a/RecoLocalCalo/EcalRecAlgos/src/EcalTimeBiasCorrectionsGPU.cc +++ /dev/null @@ -1,61 +0,0 @@ -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalTimeBiasCorrectionsGPU.h" - -#include "FWCore/Utilities/interface/typelookup.h" -#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" - -EcalTimeBiasCorrectionsGPU::EcalTimeBiasCorrectionsGPU(EcalTimeBiasCorrections const& values) - : EBTimeCorrAmplitudeBins_{values.EBTimeCorrAmplitudeBins}, - EBTimeCorrShiftBins_{values.EBTimeCorrShiftBins}, - EETimeCorrAmplitudeBins_{values.EETimeCorrAmplitudeBins}, - EETimeCorrShiftBins_{values.EETimeCorrShiftBins} {} - -EcalTimeBiasCorrectionsGPU::Product::~Product() { - // deallocation - cudaCheck(cudaFree(EBTimeCorrAmplitudeBins)); - cudaCheck(cudaFree(EBTimeCorrShiftBins)); - cudaCheck(cudaFree(EETimeCorrAmplitudeBins)); - cudaCheck(cudaFree(EETimeCorrShiftBins)); -} - -EcalTimeBiasCorrectionsGPU::Product const& EcalTimeBiasCorrectionsGPU::getProduct(cudaStream_t cudaStream) const { - auto const& product = product_.dataForCurrentDeviceAsync( - cudaStream, [this](EcalTimeBiasCorrectionsGPU::Product& product, cudaStream_t cudaStream) { - // to get the size of vectors later on - // should be removed and host conditions' objects used directly - product.EBTimeCorrAmplitudeBinsSize = this->EBTimeCorrAmplitudeBins_.size(); - product.EETimeCorrAmplitudeBinsSize = this->EETimeCorrAmplitudeBins_.size(); - - // malloc - cudaCheck(cudaMalloc((void**)&product.EBTimeCorrAmplitudeBins, - this->EBTimeCorrAmplitudeBins_.size() * sizeof(float))); - cudaCheck(cudaMalloc((void**)&product.EBTimeCorrShiftBins, this->EBTimeCorrShiftBins_.size() * sizeof(float))); - cudaCheck(cudaMalloc((void**)&product.EETimeCorrAmplitudeBins, - this->EETimeCorrAmplitudeBins_.size() * sizeof(float))); - cudaCheck(cudaMalloc((void**)&product.EETimeCorrShiftBins, this->EETimeCorrShiftBins_.size() * sizeof(float))); - // transfer - cudaCheck(cudaMemcpyAsync(product.EBTimeCorrAmplitudeBins, - this->EBTimeCorrAmplitudeBins_.data(), - this->EBTimeCorrAmplitudeBins_.size() * sizeof(float), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.EBTimeCorrShiftBins, - this->EBTimeCorrShiftBins_.data(), - this->EBTimeCorrShiftBins_.size() * sizeof(float), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.EETimeCorrAmplitudeBins, - this->EETimeCorrAmplitudeBins_.data(), - this->EETimeCorrAmplitudeBins_.size() * sizeof(float), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.EETimeCorrShiftBins, - this->EETimeCorrShiftBins_.data(), - this->EETimeCorrShiftBins_.size() * sizeof(float), - cudaMemcpyHostToDevice, - cudaStream)); - }); - - return product; -} - -TYPELOOKUP_DATA_REG(EcalTimeBiasCorrectionsGPU); diff --git a/RecoLocalCalo/EcalRecAlgos/src/EcalTimeCalibConstantsGPU.cc b/RecoLocalCalo/EcalRecAlgos/src/EcalTimeCalibConstantsGPU.cc deleted file mode 100644 index d724a33f1d4e1..0000000000000 --- a/RecoLocalCalo/EcalRecAlgos/src/EcalTimeCalibConstantsGPU.cc +++ /dev/null @@ -1,40 +0,0 @@ -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalTimeCalibConstantsGPU.h" - -#include "FWCore/Utilities/interface/typelookup.h" -#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" - -EcalTimeCalibConstantsGPU::EcalTimeCalibConstantsGPU(EcalTimeCalibConstants const& values) - : valuesEB_{values.barrelItems()}, valuesEE_{values.endcapItems()} {} - -EcalTimeCalibConstantsGPU::Product::~Product() { - // deallocation - cudaCheck(cudaFree(values)); -} - -EcalTimeCalibConstantsGPU::Product const& EcalTimeCalibConstantsGPU::getProduct(cudaStream_t cudaStream) const { - auto const& product = product_.dataForCurrentDeviceAsync( - cudaStream, [this](EcalTimeCalibConstantsGPU::Product& product, cudaStream_t cudaStream) { - // malloc - cudaCheck( - cudaMalloc((void**)&product.values, (this->valuesEB_.size() + this->valuesEE_.size()) * sizeof(float))); - - // offset in floats, not bytes - auto const offset = this->valuesEB_.size(); - - // transfer - cudaCheck(cudaMemcpyAsync(product.values, - this->valuesEB_.data(), - this->valuesEB_.size() * sizeof(float), - cudaMemcpyHostToDevice, - cudaStream)); - cudaCheck(cudaMemcpyAsync(product.values + offset, - this->valuesEE_.data(), - this->valuesEE_.size() * sizeof(float), - cudaMemcpyHostToDevice, - cudaStream)); - }); - - return product; -} - -TYPELOOKUP_DATA_REG(EcalTimeCalibConstantsGPU); diff --git a/RecoLocalCalo/EcalRecProducers/plugins/AmplitudeComputationCommonKernels.cu b/RecoLocalCalo/EcalRecProducers/plugins/AmplitudeComputationCommonKernels.cu index f1b1a53a78a30..5a6bb0577c45c 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/AmplitudeComputationCommonKernels.cu +++ b/RecoLocalCalo/EcalRecProducers/plugins/AmplitudeComputationCommonKernels.cu @@ -7,6 +7,7 @@ #include "CondFormats/EcalObjects/interface/EcalPulseShapes.h" #include "CondFormats/EcalObjects/interface/EcalSamplesCorrelation.h" #include "DataFormats/EcalDigi/interface/EcalDataFrame.h" +#include "DataFormats/EcalDigi/interface/EcalMGPASample.h" #include "DataFormats/EcalRecHit/interface/EcalUncalibratedRecHit.h" #include "DataFormats/Math/interface/approx_exp.h" #include "DataFormats/Math/interface/approx_log.h" @@ -113,8 +114,8 @@ namespace ecal { // // amplitudes // - int const adc = ecal::mgpa::adc(digis_in[inputTx]); - int const gainId = ecal::mgpa::gainId(digis_in[inputTx]); + int const adc = ecalMGPA::adc(digis_in[inputTx]); + int const gainId = ecalMGPA::gainId(digis_in[inputTx]); SampleVector::Scalar amplitude = 0.; SampleVector::Scalar pedestal = 0.; SampleVector::Scalar gainratio = 0.; diff --git a/RecoLocalCalo/EcalRecProducers/plugins/AmplitudeComputationCommonKernels.h b/RecoLocalCalo/EcalRecProducers/plugins/AmplitudeComputationCommonKernels.h index 479c623e83f62..1797fb6d2ec88 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/AmplitudeComputationCommonKernels.h +++ b/RecoLocalCalo/EcalRecProducers/plugins/AmplitudeComputationCommonKernels.h @@ -1,7 +1,6 @@ #ifndef RecoLocalCalo_EcalRecProducers_plugins_AmplitudeComputationCommonKernels_h #define RecoLocalCalo_EcalRecProducers_plugins_AmplitudeComputationCommonKernels_h -#include "Common.h" #include "DeclsForKernels.h" #include "EigenMatrixTypes_gpu.h" diff --git a/RecoLocalCalo/EcalRecProducers/plugins/AmplitudeComputationKernels.h b/RecoLocalCalo/EcalRecProducers/plugins/AmplitudeComputationKernels.h index b8202f75b653b..72ccf3b11a987 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/AmplitudeComputationKernels.h +++ b/RecoLocalCalo/EcalRecProducers/plugins/AmplitudeComputationKernels.h @@ -1,7 +1,6 @@ #ifndef RecoLocalCalo_EcalRecProducers_plugins_AmplitudeComputationKernels_h #define RecoLocalCalo_EcalRecProducers_plugins_AmplitudeComputationKernels_h -#include "Common.h" #include "DeclsForKernels.h" #include "EigenMatrixTypes_gpu.h" diff --git a/RecoLocalCalo/EcalRecProducers/plugins/Common.h b/RecoLocalCalo/EcalRecProducers/plugins/Common.h deleted file mode 100644 index 55f5f613ed356..0000000000000 --- a/RecoLocalCalo/EcalRecProducers/plugins/Common.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef RecoLocalCalo_EcalRecProducers_plugins_Common_h -#define RecoLocalCalo_EcalRecProducers_plugins_Common_h - -// a workaround for std::abs not being a constexpr function -namespace ecal { - - // temporary - namespace mgpa { - - constexpr int adc(uint16_t sample) { return sample & 0xfff; } - constexpr int gainId(uint16_t sample) { return (sample >> 12) & 0x3; } - - } // namespace mgpa - -} // namespace ecal - -#endif // RecoLocalCalo_EcalRecProducers_plugins_Common_h diff --git a/RecoLocalCalo/EcalRecProducers/plugins/DeclsForKernels.h b/RecoLocalCalo/EcalRecProducers/plugins/DeclsForKernels.h index cac63b6b30112..b1e1dafdb7496 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/DeclsForKernels.h +++ b/RecoLocalCalo/EcalRecProducers/plugins/DeclsForKernels.h @@ -13,26 +13,26 @@ #include "CondFormats/EcalObjects/interface/EcalChannelStatus.h" #include "CondFormats/EcalObjects/interface/EcalChannelStatusCode.h" #include "CondFormats/EcalObjects/interface/EcalGainRatios.h" +#include "CondFormats/EcalObjects/interface/EcalGainRatiosGPU.h" +#include "CondFormats/EcalObjects/interface/EcalIntercalibConstantsGPU.h" +#include "CondFormats/EcalObjects/interface/EcalLaserAPDPNRatiosGPU.h" +#include "CondFormats/EcalObjects/interface/EcalLaserAPDPNRatiosRefGPU.h" +#include "CondFormats/EcalObjects/interface/EcalLaserAlphasGPU.h" +#include "CondFormats/EcalObjects/interface/EcalLinearCorrectionsGPU.h" +#include "CondFormats/EcalObjects/interface/EcalMultifitParametersGPU.h" #include "CondFormats/EcalObjects/interface/EcalPedestals.h" +#include "CondFormats/EcalObjects/interface/EcalPedestalsGPU.h" +#include "CondFormats/EcalObjects/interface/EcalPulseCovariancesGPU.h" +#include "CondFormats/EcalObjects/interface/EcalPulseShapesGPU.h" +#include "CondFormats/EcalObjects/interface/EcalRechitADCToGeVConstantGPU.h" +#include "CondFormats/EcalObjects/interface/EcalRechitChannelStatusGPU.h" +#include "CondFormats/EcalObjects/interface/EcalSamplesCorrelationGPU.h" #include "CondFormats/EcalObjects/interface/EcalTimeBiasCorrections.h" +#include "CondFormats/EcalObjects/interface/EcalTimeBiasCorrectionsGPU.h" +#include "CondFormats/EcalObjects/interface/EcalTimeCalibConstantsGPU.h" #include "CondFormats/EcalObjects/interface/EcalTimeOffsetConstant.h" #include "CondFormats/EcalObjects/interface/EcalWeightSet.h" #include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalGainRatiosGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalIntercalibConstantsGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalLaserAPDPNRatiosGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalLaserAPDPNRatiosRefGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalLaserAlphasGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalLinearCorrectionsGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalMultifitParametersGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalPedestalsGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalPulseCovariancesGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalPulseShapesGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalRechitADCToGeVConstantGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalRechitChannelStatusGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalSamplesCorrelationGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalTimeBiasCorrectionsGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalTimeCalibConstantsGPU.h" #include "EigenMatrixTypes_gpu.h" @@ -67,11 +67,11 @@ namespace ecal { struct ConfigurationParameters { using type = double; // device ptrs - type *amplitudeFitParametersEB = nullptr, *amplitudeFitParametersEE = nullptr; + const type *amplitudeFitParametersEB = nullptr, *amplitudeFitParametersEE = nullptr; uint32_t timeFitParametersSizeEB, timeFitParametersSizeEE; // device ptrs - type *timeFitParametersEB = nullptr, *timeFitParametersEE = nullptr; + const type *timeFitParametersEB = nullptr, *timeFitParametersEE = nullptr; type timeFitLimitsFirstEB, timeFitLimitsFirstEE; type timeFitLimitsSecondEB, timeFitLimitsSecondEE; @@ -250,7 +250,7 @@ namespace ecal { // parameters that are read in the configuration file for rechit producer struct ConfigurationParameters { // device ptrs - int* ChannelStatusToBeExcluded = nullptr; + const int* ChannelStatusToBeExcluded = nullptr; uint32_t ChannelStatusToBeExcludedSize; bool killDeadChannels; @@ -267,9 +267,9 @@ namespace ecal { float EBLaserMAX; float EELaserMAX; - int* expanded_v_DB_reco_flags; - uint32_t* expanded_Sizes_v_DB_reco_flags; - uint32_t* expanded_flagbit_v_DB_reco_flags; + const int* expanded_v_DB_reco_flags; + const uint32_t* expanded_Sizes_v_DB_reco_flags; + const uint32_t* expanded_flagbit_v_DB_reco_flags; uint32_t expanded_v_DB_reco_flagsSize; uint32_t flagmask; diff --git a/RecoLocalCalo/EcalRecProducers/plugins/EcalESProducersGPUDefs.cc b/RecoLocalCalo/EcalRecProducers/plugins/EcalESProducersGPUDefs.cc index 3118d54c6a7e9..5bdadecc75ef8 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/EcalESProducersGPUDefs.cc +++ b/RecoLocalCalo/EcalRecProducers/plugins/EcalESProducersGPUDefs.cc @@ -12,22 +12,22 @@ #include "CondFormats/DataRecord/interface/EcalSamplesCorrelationRcd.h" #include "CondFormats/DataRecord/interface/EcalTimeBiasCorrectionsRcd.h" #include "CondFormats/DataRecord/interface/EcalTimeCalibConstantsRcd.h" +#include "CondFormats/EcalObjects/interface/EcalGainRatiosGPU.h" +#include "CondFormats/EcalObjects/interface/EcalIntercalibConstantsGPU.h" +#include "CondFormats/EcalObjects/interface/EcalLaserAPDPNRatiosGPU.h" +#include "CondFormats/EcalObjects/interface/EcalLaserAPDPNRatiosRefGPU.h" +#include "CondFormats/EcalObjects/interface/EcalLaserAlphasGPU.h" +#include "CondFormats/EcalObjects/interface/EcalLinearCorrectionsGPU.h" +#include "CondFormats/EcalObjects/interface/EcalPedestalsGPU.h" +#include "CondFormats/EcalObjects/interface/EcalPulseCovariancesGPU.h" +#include "CondFormats/EcalObjects/interface/EcalPulseShapesGPU.h" +#include "CondFormats/EcalObjects/interface/EcalRechitADCToGeVConstantGPU.h" +#include "CondFormats/EcalObjects/interface/EcalRechitChannelStatusGPU.h" +#include "CondFormats/EcalObjects/interface/EcalSamplesCorrelationGPU.h" +#include "CondFormats/EcalObjects/interface/EcalTimeBiasCorrectionsGPU.h" +#include "CondFormats/EcalObjects/interface/EcalTimeCalibConstantsGPU.h" #include "FWCore/Framework/interface/MakerMacros.h" #include "HeterogeneousCore/CUDACore/interface/ConvertingESProducerT.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalGainRatiosGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalIntercalibConstantsGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalLaserAPDPNRatiosGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalLaserAPDPNRatiosRefGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalLaserAlphasGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalLinearCorrectionsGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalPedestalsGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalPulseCovariancesGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalPulseShapesGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalRechitADCToGeVConstantGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalRechitChannelStatusGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalSamplesCorrelationGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalTimeBiasCorrectionsGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalTimeCalibConstantsGPU.h" using EcalPedestalsGPUESProducer = ConvertingESProducerT; diff --git a/RecoLocalCalo/EcalRecProducers/plugins/EcalMultifitParametersGPUESProducer.cc b/RecoLocalCalo/EcalRecProducers/plugins/EcalMultifitParametersGPUESProducer.cc index 1743df5aa945d..406f5507be5fc 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/EcalMultifitParametersGPUESProducer.cc +++ b/RecoLocalCalo/EcalRecProducers/plugins/EcalMultifitParametersGPUESProducer.cc @@ -2,6 +2,7 @@ #include #include +#include "CondFormats/EcalObjects/interface/EcalMultifitParametersGPU.h" #include "FWCore/Framework/interface/ESProducer.h" #include "FWCore/Framework/interface/ESProductHost.h" #include "FWCore/Framework/interface/ESTransientHandle.h" @@ -14,7 +15,6 @@ #include "FWCore/Utilities/interface/ReusableObjectHolder.h" #include "FWCore/Utilities/interface/typelookup.h" #include "HeterogeneousCore/CUDACore/interface/JobConfigurationGPURecord.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalMultifitParametersGPU.h" class EcalMultifitParametersGPUESProducer : public edm::ESProducer, public edm::EventSetupRecordIntervalFinder { public: diff --git a/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitBuilderKernels.cu b/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitBuilderKernels.cu index 6e1b2a66c2507..8e77a58b66f4a 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitBuilderKernels.cu +++ b/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitBuilderKernels.cu @@ -285,11 +285,9 @@ namespace ecal { // // Check for channels to be excluded from reconstruction // - // - // Default energy? Not to be updated if "ChannelStatusToBeExcluded" + // Default energy not to be updated if "ChannelStatusToBeExcluded" // Exploited later by the module "EcalRecHitConvertGPU2CPUFormat" - // - energy[inputCh] = -1; //---- AM: default, un-physical, ok + energy[inputCh] = -1; //un-physical default // truncate the chi2 if (chi2_in[inputCh] > 64) diff --git a/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitBuilderKernels.h b/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitBuilderKernels.h index cb9c7f435d7b3..8d468a0f7f1ec 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitBuilderKernels.h +++ b/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitBuilderKernels.h @@ -9,7 +9,6 @@ #include "CUDADataFormats/EcalRecHitSoA/interface/EcalUncalibratedRecHit.h" #include "DataFormats/Provenance/interface/Timestamp.h" -#include "Common.h" #include "DeclsForKernels.h" namespace ecal { diff --git a/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitConvertGPU2CPUFormat.cc b/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitConvertGPU2CPUFormat.cc index 6df36f4a8b592..b71747a57db78 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitConvertGPU2CPUFormat.cc +++ b/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitConvertGPU2CPUFormat.cc @@ -8,8 +8,6 @@ #include "FWCore/Framework/interface/stream/EDProducer.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "Common.h" - class EcalRecHitConvertGPU2CPUFormat : public edm::stream::EDProducer<> { public: explicit EcalRecHitConvertGPU2CPUFormat(edm::ParameterSet const& ps); diff --git a/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitParametersGPUESProducer.cc b/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitParametersGPUESProducer.cc index a63ed42cb2b70..8c6c8ce3ae236 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitParametersGPUESProducer.cc +++ b/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitParametersGPUESProducer.cc @@ -2,6 +2,7 @@ #include #include +#include "CondFormats/EcalObjects/interface/EcalRecHitParametersGPU.h" #include "FWCore/Framework/interface/ESProducer.h" #include "FWCore/Framework/interface/ESProductHost.h" #include "FWCore/Framework/interface/ESTransientHandle.h" @@ -14,7 +15,6 @@ #include "FWCore/Utilities/interface/ReusableObjectHolder.h" #include "FWCore/Utilities/interface/typelookup.h" #include "HeterogeneousCore/CUDACore/interface/JobConfigurationGPURecord.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalRecHitParametersGPU.h" class EcalRecHitParametersGPUESProducer : public edm::ESProducer, public edm::EventSetupRecordIntervalFinder { public: diff --git a/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitProducerGPU.cc b/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitProducerGPU.cc index a6dabd37f8439..38c142f4c41f2 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitProducerGPU.cc +++ b/RecoLocalCalo/EcalRecProducers/plugins/EcalRecHitProducerGPU.cc @@ -9,6 +9,14 @@ #include "CondFormats/DataRecord/interface/EcalLaserAPDPNRatiosRefRcd.h" #include "CondFormats/DataRecord/interface/EcalLaserAlphasRcd.h" #include "CondFormats/DataRecord/interface/EcalLinearCorrectionsRcd.h" +#include "CondFormats/EcalObjects/interface/EcalIntercalibConstantsGPU.h" +#include "CondFormats/EcalObjects/interface/EcalLaserAPDPNRatiosGPU.h" +#include "CondFormats/EcalObjects/interface/EcalLaserAPDPNRatiosRefGPU.h" +#include "CondFormats/EcalObjects/interface/EcalLaserAlphasGPU.h" +#include "CondFormats/EcalObjects/interface/EcalLinearCorrectionsGPU.h" +#include "CondFormats/EcalObjects/interface/EcalRecHitParametersGPU.h" +#include "CondFormats/EcalObjects/interface/EcalRechitADCToGeVConstantGPU.h" +#include "CondFormats/EcalObjects/interface/EcalRechitChannelStatusGPU.h" #include "DataFormats/EcalRecHit/interface/EcalRecHit.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" @@ -20,14 +28,6 @@ #include "HeterogeneousCore/CUDACore/interface/ScopedContext.h" #include "HeterogeneousCore/CUDAServices/interface/CUDAService.h" #include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalIntercalibConstantsGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalLaserAPDPNRatiosGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalLaserAPDPNRatiosRefGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalLaserAlphasGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalLinearCorrectionsGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalRecHitParametersGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalRechitADCToGeVConstantGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalRechitChannelStatusGPU.h" #include "EcalRecHitBuilderKernels.h" @@ -198,11 +198,11 @@ void EcalRecHitProducerGPU::acquire(edm::Event const& event, auto const& recHitParametersProduct = recHitParametersHandle_->getProduct(ctx.stream()); // set config ptrs : this is done to avoid changing things downstream - configParameters_.ChannelStatusToBeExcluded = recHitParametersProduct.ChannelStatusToBeExcluded; + configParameters_.ChannelStatusToBeExcluded = recHitParametersProduct.channelStatusToBeExcluded.get(); configParameters_.ChannelStatusToBeExcludedSize = std::get<0>(recHitParametersHandle_->getValues()).get().size(); - configParameters_.expanded_v_DB_reco_flags = recHitParametersProduct.expanded_v_DB_reco_flags; - configParameters_.expanded_Sizes_v_DB_reco_flags = recHitParametersProduct.expanded_Sizes_v_DB_reco_flags; - configParameters_.expanded_flagbit_v_DB_reco_flags = recHitParametersProduct.expanded_flagbit_v_DB_reco_flags; + configParameters_.expanded_v_DB_reco_flags = recHitParametersProduct.expanded_v_DB_reco_flags.get(); + configParameters_.expanded_Sizes_v_DB_reco_flags = recHitParametersProduct.expanded_Sizes_v_DB_reco_flags.get(); + configParameters_.expanded_flagbit_v_DB_reco_flags = recHitParametersProduct.expanded_flagbit_v_DB_reco_flags.get(); configParameters_.expanded_v_DB_reco_flagsSize = std::get<3>(recHitParametersHandle_->getValues()).get().size(); // bundle up conditions diff --git a/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitConvertGPU2CPUFormat.cc b/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitConvertGPU2CPUFormat.cc index f7e57a61fdd96..b26fbe3a0c572 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitConvertGPU2CPUFormat.cc +++ b/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitConvertGPU2CPUFormat.cc @@ -8,8 +8,6 @@ #include "FWCore/Framework/interface/stream/EDProducer.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "Common.h" - class EcalUncalibRecHitConvertGPU2CPUFormat : public edm::stream::EDProducer<> { public: explicit EcalUncalibRecHitConvertGPU2CPUFormat(edm::ParameterSet const& ps); diff --git a/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitMultiFitAlgoGPU.cu b/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitMultiFitAlgoGPU.cu index 9d5a8a2ad1bd3..6d4f0b9a24220 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitMultiFitAlgoGPU.cu +++ b/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitMultiFitAlgoGPU.cu @@ -15,7 +15,6 @@ #include "AmplitudeComputationCommonKernels.h" #include "AmplitudeComputationKernels.h" -#include "Common.h" #include "EcalUncalibRecHitMultiFitAlgoGPU.h" #include "TimeComputationKernels.h" @@ -262,10 +261,10 @@ namespace ecal { eventInputGPU.ebDigis.ids.get(), eventInputGPU.eeDigis.data.get(), eventInputGPU.eeDigis.ids.get(), - conditions.timeBiasCorrections.EBTimeCorrAmplitudeBins, - conditions.timeBiasCorrections.EETimeCorrAmplitudeBins, - conditions.timeBiasCorrections.EBTimeCorrShiftBins, - conditions.timeBiasCorrections.EETimeCorrShiftBins, + conditions.timeBiasCorrections.ebTimeCorrAmplitudeBins, + conditions.timeBiasCorrections.eeTimeCorrAmplitudeBins, + conditions.timeBiasCorrections.ebTimeCorrShiftBins, + conditions.timeBiasCorrections.eeTimeCorrShiftBins, scratch.timeMax.get(), scratch.timeError.get(), conditions.pedestals.rms_x12, @@ -276,8 +275,8 @@ namespace ecal { eventOutputGPU.recHitsEE.jitterError.get(), eventOutputGPU.recHitsEB.flags.get(), eventOutputGPU.recHitsEE.flags.get(), - conditions.timeBiasCorrections.EBTimeCorrAmplitudeBinsSize, - conditions.timeBiasCorrections.EETimeCorrAmplitudeBinsSize, + conditions.timeBiasCorrections.ebTimeCorrAmplitudeBinsSize, + conditions.timeBiasCorrections.eeTimeCorrAmplitudeBinsSize, configParameters.timeConstantTermEB, configParameters.timeConstantTermEE, conditions.timeOffsetConstant.getEBValue(), diff --git a/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitProducerGPU.cc b/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitProducerGPU.cc index a321f35144c39..3729bddde895f 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitProducerGPU.cc +++ b/RecoLocalCalo/EcalRecProducers/plugins/EcalUncalibRecHitProducerGPU.cc @@ -8,6 +8,14 @@ #include "CondFormats/DataRecord/interface/EcalTimeBiasCorrectionsRcd.h" #include "CondFormats/DataRecord/interface/EcalTimeCalibConstantsRcd.h" #include "CondFormats/DataRecord/interface/EcalTimeOffsetConstantRcd.h" +#include "CondFormats/EcalObjects/interface/EcalGainRatiosGPU.h" +#include "CondFormats/EcalObjects/interface/EcalMultifitParametersGPU.h" +#include "CondFormats/EcalObjects/interface/EcalPedestalsGPU.h" +#include "CondFormats/EcalObjects/interface/EcalPulseCovariancesGPU.h" +#include "CondFormats/EcalObjects/interface/EcalPulseShapesGPU.h" +#include "CondFormats/EcalObjects/interface/EcalSamplesCorrelationGPU.h" +#include "CondFormats/EcalObjects/interface/EcalTimeBiasCorrectionsGPU.h" +#include "CondFormats/EcalObjects/interface/EcalTimeCalibConstantsGPU.h" #include "CondFormats/EcalObjects/interface/EcalTimeOffsetConstant.h" #include "DataFormats/EcalDigi/interface/EcalDigiCollections.h" #include "FWCore/Framework/interface/Event.h" @@ -18,16 +26,7 @@ #include "HeterogeneousCore/CUDACore/interface/JobConfigurationGPURecord.h" #include "HeterogeneousCore/CUDACore/interface/ScopedContext.h" #include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalGainRatiosGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalMultifitParametersGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalPedestalsGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalPulseCovariancesGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalPulseShapesGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalSamplesCorrelationGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalTimeBiasCorrectionsGPU.h" -#include "RecoLocalCalo/EcalRecAlgos/interface/EcalTimeCalibConstantsGPU.h" - -#include "Common.h" + #include "DeclsForKernels.h" #include "EcalUncalibRecHitMultiFitAlgoGPU.h" @@ -229,10 +228,10 @@ void EcalUncalibRecHitProducerGPU::acquire(edm::Event const& event, auto const& multifitParameters = multifitParametersData.getProduct(ctx.stream()); // assign ptrs/values: this is done not to change how things look downstream - configParameters_.amplitudeFitParametersEB = multifitParameters.amplitudeFitParametersEB; - configParameters_.amplitudeFitParametersEE = multifitParameters.amplitudeFitParametersEE; - configParameters_.timeFitParametersEB = multifitParameters.timeFitParametersEB; - configParameters_.timeFitParametersEE = multifitParameters.timeFitParametersEE; + configParameters_.amplitudeFitParametersEB = multifitParameters.amplitudeFitParametersEB.get(); + configParameters_.amplitudeFitParametersEE = multifitParameters.amplitudeFitParametersEE.get(); + configParameters_.timeFitParametersEB = multifitParameters.timeFitParametersEB.get(); + configParameters_.timeFitParametersEE = multifitParameters.timeFitParametersEE.get(); configParameters_.timeFitParametersSizeEB = multifitParametersData.getValues()[2].get().size(); configParameters_.timeFitParametersSizeEE = multifitParametersData.getValues()[3].get().size(); diff --git a/RecoLocalCalo/EcalRecProducers/plugins/KernelHelpers.cu b/RecoLocalCalo/EcalRecProducers/plugins/KernelHelpers.cu index 5316ed87d6ecc..a05e69f7b0442 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/KernelHelpers.cu +++ b/RecoLocalCalo/EcalRecProducers/plugins/KernelHelpers.cu @@ -47,10 +47,6 @@ namespace ecal { return dccFromSm(ism); } - // - // ---- why on hell things are so complex and not simple ??? - // - __device__ int lm_channel(int iX, int iY) { static const int idx_[] = { // clang-format off diff --git a/RecoLocalCalo/EcalRecProducers/plugins/TimeComputationKernels.cu b/RecoLocalCalo/EcalRecProducers/plugins/TimeComputationKernels.cu index 9c2d2fc986c08..e67802f44c8df 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/TimeComputationKernels.cu +++ b/RecoLocalCalo/EcalRecProducers/plugins/TimeComputationKernels.cu @@ -4,12 +4,12 @@ #include #include "DataFormats/EcalDigi/interface/EcalDataFrame.h" +#include "DataFormats/EcalDigi/interface/EcalMGPASample.h" #include "DataFormats/EcalRecHit/interface/EcalUncalibratedRecHit.h" #include "DataFormats/Math/interface/approx_exp.h" #include "DataFormats/Math/interface/approx_log.h" #include "FWCore/Utilities/interface/CMSUnrollLoop.h" -#include "Common.h" #include "TimeComputationKernels.h" #include "KernelHelpers.h" @@ -693,8 +693,8 @@ namespace ecal { if (!use_sample(sample_mask, sample)) return; - const auto gainIdPrev = ecal::mgpa::gainId(digis[inputGtx - 1]); - const auto gainIdNext = ecal::mgpa::gainId(digis[inputGtx]); + const auto gainIdPrev = ecalMGPA::gainId(digis[inputGtx - 1]); + const auto gainIdNext = ecalMGPA::gainId(digis[inputGtx]); if (gainIdPrev >= 1 && gainIdPrev <= 3 && gainIdNext >= 1 && gainIdNext <= 3 && gainIdPrev < gainIdNext) { sample_values[gtx - 1] = 0; sample_value_errors[gtx - 1] = 1e+9; @@ -849,10 +849,10 @@ namespace ecal { ScalarType* shrSampleValueErrors = shrSampleValues + blockDim.x; // 0 and 1 sample values - const auto adc0 = ecal::mgpa::adc(digis[input_ch_start]); - const auto gainId0 = ecal::mgpa::gainId(digis[input_ch_start]); - const auto adc1 = ecal::mgpa::adc(digis[input_ch_start + 1]); - const auto gainId1 = ecal::mgpa::gainId(digis[input_ch_start + 1]); + const auto adc0 = ecalMGPA::adc(digis[input_ch_start]); + const auto gainId0 = ecalMGPA::gainId(digis[input_ch_start]); + const auto adc1 = ecalMGPA::adc(digis[input_ch_start + 1]); + const auto gainId1 = ecalMGPA::gainId(digis[input_ch_start + 1]); const auto did = DetId{dids[inputCh]}; const auto isBarrel = did.subdetId() == EcalBarrel; const auto sample_mask = did.subdetId() == EcalBarrel ? sample_maskEB : sample_maskEE; @@ -875,8 +875,8 @@ namespace ecal { } // ped subtracted and gain-renormalized samples. - const auto gainId = ecal::mgpa::gainId(digis[inputTx]); - const auto adc = ecal::mgpa::adc(digis[inputTx]); + const auto gainId = ecalMGPA::gainId(digis[inputTx]); + const auto adc = ecalMGPA::adc(digis[inputTx]); bool bad = false; SampleVector::Scalar sample_value, sample_value_error; @@ -1112,7 +1112,7 @@ namespace ecal { auto threshM = outOfTimeThreshG12m; if (amplitude > 3000.) { for (int isample = 0; isample < nsamples; isample++) { - int gainid = ecal::mgpa::gainId(digis[nsamples * inputGtx + isample]); + int gainid = ecalMGPA::gainId(digis[nsamples * inputGtx + isample]); if (gainid != 1) { threshP = outOfTimeThreshG61p; threshM = outOfTimeThreshG61m; diff --git a/RecoLocalCalo/EcalRecProducers/plugins/TimeComputationKernels.h b/RecoLocalCalo/EcalRecProducers/plugins/TimeComputationKernels.h index a9b1c69678abd..dea6bad26fa0d 100644 --- a/RecoLocalCalo/EcalRecProducers/plugins/TimeComputationKernels.h +++ b/RecoLocalCalo/EcalRecProducers/plugins/TimeComputationKernels.h @@ -9,7 +9,6 @@ #include "DataFormats/Math/interface/approx_exp.h" #include "DataFormats/Math/interface/approx_log.h" -#include "Common.h" #include "DeclsForKernels.h" #include "EigenMatrixTypes_gpu.h" diff --git a/RecoLocalCalo/HGCalRecProducers/BuildFile.xml b/RecoLocalCalo/HGCalRecProducers/BuildFile.xml index 291cf1fc01881..caf337a1ffdd6 100644 --- a/RecoLocalCalo/HGCalRecProducers/BuildFile.xml +++ b/RecoLocalCalo/HGCalRecProducers/BuildFile.xml @@ -1,7 +1,20 @@ + + + + + + + + + + + + + + - diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/BuildFile.xml b/RecoLocalCalo/HGCalRecProducers/plugins/BuildFile.xml index 318a924040fad..ddd7b85e4f9b0 100644 --- a/RecoLocalCalo/HGCalRecProducers/plugins/BuildFile.xml +++ b/RecoLocalCalo/HGCalRecProducers/plugins/BuildFile.xml @@ -1,12 +1,21 @@ - - - + + + + + + + + - - + + + + + + diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/EERecHitFromSoA.cc b/RecoLocalCalo/HGCalRecProducers/plugins/EERecHitFromSoA.cc new file mode 100644 index 0000000000000..1e4585d075def --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/plugins/EERecHitFromSoA.cc @@ -0,0 +1,58 @@ +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "DataFormats/HGCRecHit/interface/HGCRecHit.h" +#include "DataFormats/HGCRecHit/interface/HGCRecHitCollections.h" +#include "DataFormats/ForwardDetId/interface/HGCSiliconDetId.h" +#include "FWCore/Utilities/interface/EDGetToken.h" +#include "FWCore/Utilities/interface/EDPutToken.h" + +#include "CUDADataFormats/HGCal/interface/HGCRecHitCPUProduct.h" +#include "CUDADataFormats/HGCal/interface/ConstHGCRecHitSoA.h" + +class EERecHitFromSoA : public edm::stream::EDProducer<> { +public: + explicit EERecHitFromSoA(const edm::ParameterSet& ps); + ~EERecHitFromSoA() override; + + void produce(edm::Event&, const edm::EventSetup&) override; + void convert_soa_data_to_collection_(uint32_t, HGCRecHitCollection&, ConstHGCRecHitSoA*); + +private: + std::unique_ptr rechits_; + edm::EDGetTokenT recHitSoAToken_; + edm::EDPutTokenT recHitCollectionToken_; +}; + +EERecHitFromSoA::EERecHitFromSoA(const edm::ParameterSet& ps) { + recHitSoAToken_ = consumes(ps.getParameter("EERecHitSoATok")); + recHitCollectionToken_ = produces(); +} + +EERecHitFromSoA::~EERecHitFromSoA() {} + +void EERecHitFromSoA::produce(edm::Event& event, const edm::EventSetup& setup) { + const HGCRecHitCPUProduct& recHits = event.get(recHitSoAToken_); + ConstHGCRecHitSoA recHitsSoA = recHits.get(); + rechits_ = std::make_unique(); + convert_soa_data_to_collection_(recHits.nHits(), *rechits_, &recHitsSoA); + event.put(std::move(rechits_)); +} + +void EERecHitFromSoA::convert_soa_data_to_collection_(uint32_t nhits, + HGCRecHitCollection& rechits, + ConstHGCRecHitSoA* h_calibSoA) { + rechits.reserve(nhits); + for (uint i = 0; i < nhits; ++i) { + DetId id_converted(h_calibSoA->id_[i]); + rechits.emplace_back(id_converted, + h_calibSoA->energy_[i], + h_calibSoA->time_[i], + 0, + h_calibSoA->flagBits_[i], + h_calibSoA->son_[i], + h_calibSoA->timeError_[i]); + } +} + +#include "FWCore/Framework/interface/MakerMacros.h" +DEFINE_FWK_MODULE(EERecHitFromSoA); diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/EERecHitGPU.cc b/RecoLocalCalo/HGCalRecProducers/plugins/EERecHitGPU.cc new file mode 100644 index 0000000000000..aa0e41bd82b6c --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/plugins/EERecHitGPU.cc @@ -0,0 +1,145 @@ +#include +#include + +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "DataFormats/HGCRecHit/interface/HGCRecHitCollections.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/Utilities/interface/EDGetToken.h" +#include "FWCore/Utilities/interface/EDPutToken.h" +#include "FWCore/Utilities/interface/InputTag.h" + +#include "RecoLocalCalo/HGCalRecAlgos/interface/RecHitTools.h" + +#include "HeterogeneousCore/CUDACore/interface/ScopedContext.h" +#include "HeterogeneousCore/CUDACore/interface/ContextState.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" +#include "HeterogeneousCore/CUDAUtilities/interface/MessageLogger.h" + +#include "RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalRecHit.h" +#include "CUDADataFormats/HGCal/interface/HGCRecHitGPUProduct.h" +#include "CUDADataFormats/HGCal/interface/HGCUncalibRecHitDevice.h" +#include "CUDADataFormats/HGCal/interface/HGCUncalibRecHitHost.h" + +class EERecHitGPU : public edm::stream::EDProducer<> { +public: + explicit EERecHitGPU(const edm::ParameterSet &ps); + ~EERecHitGPU() override; + void beginRun(edm::Run const &, edm::EventSetup const &) override; + + void produce(edm::Event &, const edm::EventSetup &) override; + +private: + edm::EDGetTokenT uncalibRecHitCPUToken_; + edm::EDPutTokenT> recHitGPUToken_; + + std::unique_ptr rechits_; + + //constants + HGCeeUncalibRecHitConstantData cdata_; + HGCConstantVectorData vdata_; + + std::string assert_error_message_(std::string, const size_t &, const size_t &); + void assert_sizes_constants_(const HGCConstantVectorData &); + + //conditions (geometry, topology, ...) + std::unique_ptr tools_; + + //data processing + void convert_collection_data_to_soa_(const uint32_t &, const HGCeeUncalibratedRecHitCollection &); + void convert_constant_data_(KernelConstantData *); + + HGCRecHitGPUProduct prod_; + HGCUncalibRecHitDevice d_uncalib_; + HGCUncalibRecHitHost h_uncalib_; + + KernelConstantData *kcdata_; +}; + +EERecHitGPU::EERecHitGPU(const edm::ParameterSet &ps) + : uncalibRecHitCPUToken_{consumes( + ps.getParameter("HGCEEUncalibRecHitsTok"))}, + recHitGPUToken_{produces>()} { + cdata_.keV2DIGI_ = ps.getParameter("HGCEE_keV2DIGI"); + cdata_.xmin_ = ps.getParameter("minValSiPar"); //float + cdata_.xmax_ = ps.getParameter("maxValSiPar"); //float + cdata_.aterm_ = ps.getParameter("noiseSiPar"); //float + cdata_.cterm_ = ps.getParameter("constSiPar"); //float + vdata_.fCPerMIP_ = ps.getParameter>("HGCEE_fCPerMIP"); + vdata_.cce_ = ps.getParameter("HGCEE_cce").getParameter>("values"); + vdata_.noise_fC_ = ps.getParameter("HGCEE_noise_fC").getParameter>("values"); + vdata_.rcorr_ = ps.getParameter>("rcorr"); + vdata_.weights_ = ps.getParameter>("weights"); + cdata_.uncalib2GeV_ = 1e-6 / cdata_.keV2DIGI_; + assert_sizes_constants_(vdata_); + + kcdata_ = new KernelConstantData(cdata_, vdata_); + convert_constant_data_(kcdata_); + + tools_ = std::make_unique(); +} + +EERecHitGPU::~EERecHitGPU() { delete kcdata_; } + +std::string EERecHitGPU::assert_error_message_(std::string var, const size_t &s1, const size_t &s2) { + std::string str1 = "The '"; + std::string str2 = "' array must be of size "; + std::string str3 = " to hold the configuration data, but is of size "; + return str1 + var + str2 + std::to_string(s1) + str3 + std::to_string(s2); +} + +void EERecHitGPU::assert_sizes_constants_(const HGCConstantVectorData &vd) { + if (vdata_.fCPerMIP_.size() != HGCeeUncalibRecHitConstantData::ee_fCPerMIP) + edm::LogError("WrongSize") << this->assert_error_message_( + "fCPerMIP", HGCeeUncalibRecHitConstantData::ee_fCPerMIP, vdata_.fCPerMIP_.size()); + else if (vdata_.cce_.size() != HGCeeUncalibRecHitConstantData::ee_cce) + edm::LogError("WrongSize") << this->assert_error_message_( + "cce", HGCeeUncalibRecHitConstantData::ee_cce, vdata_.cce_.size()); + else if (vdata_.noise_fC_.size() != HGCeeUncalibRecHitConstantData::ee_noise_fC) + edm::LogError("WrongSize") << this->assert_error_message_( + "noise_fC", HGCeeUncalibRecHitConstantData::ee_noise_fC, vdata_.noise_fC_.size()); + else if (vdata_.rcorr_.size() != HGCeeUncalibRecHitConstantData::ee_rcorr) + edm::LogError("WrongSize") << this->assert_error_message_( + "rcorr", HGCeeUncalibRecHitConstantData::ee_rcorr, vdata_.rcorr_.size()); + else if (vdata_.weights_.size() != HGCeeUncalibRecHitConstantData::ee_weights) + edm::LogError("WrongSize") << this->assert_error_message_( + "weights", HGCeeUncalibRecHitConstantData::ee_weights, vdata_.weights_.size()); +} + +void EERecHitGPU::beginRun(edm::Run const &, edm::EventSetup const &setup) {} + +void EERecHitGPU::produce(edm::Event &event, const edm::EventSetup &setup) { + cms::cuda::ScopedContextProduce ctx{event.streamID()}; + + const auto &hits = event.get(uncalibRecHitCPUToken_); + const unsigned nhits(hits.size()); + rechits_ = std::make_unique(); + + if (nhits == 0) + edm::LogError("EERecHitGPU") << "WARNING: no input hits!"; + + prod_ = HGCRecHitGPUProduct(nhits, ctx.stream()); + d_uncalib_ = HGCUncalibRecHitDevice(nhits, ctx.stream()); + h_uncalib_ = HGCUncalibRecHitHost(nhits, hits, ctx.stream()); + + KernelManagerHGCalRecHit km(h_uncalib_.get(), d_uncalib_.get(), prod_.get()); + km.run_kernels(kcdata_, ctx.stream()); + + ctx.emplace(event, recHitGPUToken_, std::move(prod_)); +} + +void EERecHitGPU::convert_constant_data_(KernelConstantData *kcdata) { + for (size_t i = 0; i < kcdata->vdata_.fCPerMIP_.size(); ++i) + kcdata->data_.fCPerMIP_[i] = kcdata->vdata_.fCPerMIP_[i]; + for (size_t i = 0; i < kcdata->vdata_.cce_.size(); ++i) + kcdata->data_.cce_[i] = kcdata->vdata_.cce_[i]; + for (size_t i = 0; i < kcdata->vdata_.noise_fC_.size(); ++i) + kcdata->data_.noise_fC_[i] = kcdata->vdata_.noise_fC_[i]; + for (size_t i = 0; i < kcdata->vdata_.rcorr_.size(); ++i) + kcdata->data_.rcorr_[i] = kcdata->vdata_.rcorr_[i]; + for (size_t i = 0; i < kcdata->vdata_.weights_.size(); ++i) + kcdata->data_.weights_[i] = kcdata->vdata_.weights_[i]; +} + +#include "FWCore/Framework/interface/MakerMacros.h" +DEFINE_FWK_MODULE(EERecHitGPU); diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/EERecHitGPUtoSoA.cc b/RecoLocalCalo/HGCalRecProducers/plugins/EERecHitGPUtoSoA.cc new file mode 100644 index 0000000000000..4ef1d4530722d --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/plugins/EERecHitGPUtoSoA.cc @@ -0,0 +1,74 @@ +#include +#include +#include +#include + +#include "FWCore/Framework/interface/ESProducer.h" +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Utilities/interface/Exception.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" +#include "DataFormats/HGCRecHit/interface/HGCRecHit.h" +#include "DataFormats/HGCRecHit/interface/HGCRecHitCollections.h" +#include "DataFormats/ForwardDetId/interface/HGCSiliconDetId.h" +#include "FWCore/Utilities/interface/EDGetToken.h" +#include "FWCore/Utilities/interface/EDPutToken.h" +#include "FWCore/Utilities/interface/InputTag.h" + +#include "RecoLocalCalo/HGCalRecAlgos/interface/RecHitTools.h" +#include "Geometry/HGCalGeometry/interface/HGCalGeometry.h" +#include "Geometry/HGCalCommonData/interface/HGCalDDDConstants.h" +#include "Geometry/HGCalCommonData/interface/HGCalWaferIndex.h" + +#include "HeterogeneousCore/CUDACore/interface/ScopedContext.h" +#include "HeterogeneousCore/CUDACore/interface/ContextState.h" +#include "HeterogeneousCore/CUDAServices/interface/CUDAService.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" + +#include "FWCore/ServiceRegistry/interface/Service.h" +#include "CommonTools/UtilAlgos/interface/TFileService.h" +#include "RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalRecHit.h" + +#include "CUDADataFormats/HGCal/interface/HGCRecHitGPUProduct.h" +#include "CUDADataFormats/HGCal/interface/HGCRecHitCPUProduct.h" + +class EERecHitGPUtoSoA : public edm::stream::EDProducer { +public: + explicit EERecHitGPUtoSoA(const edm::ParameterSet& ps); + ~EERecHitGPUtoSoA() override; + + void acquire(edm::Event const&, edm::EventSetup const&, edm::WaitingTaskWithArenaHolder) override; + void produce(edm::Event&, const edm::EventSetup&) override; + +private: + cms::cuda::ContextState ctxState_; + edm::EDGetTokenT> recHitGPUToken_; + edm::EDPutTokenT recHitCPUSoAToken_; + + std::unique_ptr prodPtr_; +}; + +EERecHitGPUtoSoA::EERecHitGPUtoSoA(const edm::ParameterSet& ps) + : recHitGPUToken_{consumes>( + ps.getParameter("EERecHitGPUTok"))}, + recHitCPUSoAToken_(produces()) {} + +EERecHitGPUtoSoA::~EERecHitGPUtoSoA() {} + +void EERecHitGPUtoSoA::acquire(edm::Event const& event, + edm::EventSetup const& setup, + edm::WaitingTaskWithArenaHolder w) { + cms::cuda::ScopedContextAcquire ctx{event.streamID(), std::move(w)}; + const auto& gpuRecHits = ctx.get(event, recHitGPUToken_); + + prodPtr_ = std::make_unique(gpuRecHits.nHits(), ctx.stream()); + + HGCRecHitCPUProduct& prod_ = *prodPtr_; + KernelManagerHGCalRecHit km(prod_.get(), gpuRecHits.get()); + km.transfer_soa_to_host(ctx.stream()); +} + +void EERecHitGPUtoSoA::produce(edm::Event& event, const edm::EventSetup& setup) { event.put(std::move(prodPtr_)); } + +#include "FWCore/Framework/interface/MakerMacros.h" +DEFINE_FWK_MODULE(EERecHitGPUtoSoA); diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/HEBRecHitFromSoA.cc b/RecoLocalCalo/HGCalRecProducers/plugins/HEBRecHitFromSoA.cc new file mode 100644 index 0000000000000..25f520cdc4ced --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/plugins/HEBRecHitFromSoA.cc @@ -0,0 +1,60 @@ +#include + +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "DataFormats/HGCRecHit/interface/HGCRecHit.h" +#include "DataFormats/HGCRecHit/interface/HGCRecHitCollections.h" +#include "DataFormats/ForwardDetId/interface/HGCSiliconDetId.h" +#include "FWCore/Utilities/interface/EDGetToken.h" +#include "FWCore/Utilities/interface/EDPutToken.h" + +#include "CUDADataFormats/HGCal/interface/HGCRecHitCPUProduct.h" +#include "CUDADataFormats/HGCal/interface/ConstHGCRecHitSoA.h" + +class HEBRecHitFromSoA : public edm::stream::EDProducer<> { +public: + explicit HEBRecHitFromSoA(const edm::ParameterSet& ps); + ~HEBRecHitFromSoA() override; + + void produce(edm::Event&, const edm::EventSetup&) override; + void convert_soa_data_to_collection_(uint32_t, HGCRecHitCollection&, ConstHGCRecHitSoA*); + +private: + std::unique_ptr rechits_; + edm::EDGetTokenT recHitSoAToken_; + edm::EDPutTokenT recHitCollectionToken_; +}; + +HEBRecHitFromSoA::HEBRecHitFromSoA(const edm::ParameterSet& ps) { + recHitSoAToken_ = consumes(ps.getParameter("HEBRecHitSoATok")); + recHitCollectionToken_ = produces(); +} + +HEBRecHitFromSoA::~HEBRecHitFromSoA() {} + +void HEBRecHitFromSoA::produce(edm::Event& event, const edm::EventSetup& setup) { + const HGCRecHitCPUProduct& recHits = event.get(recHitSoAToken_); + ConstHGCRecHitSoA recHitsSoA = recHits.get(); + rechits_ = std::make_unique(); + convert_soa_data_to_collection_(recHits.nHits(), *rechits_, &recHitsSoA); + event.put(std::move(rechits_)); +} + +void HEBRecHitFromSoA::convert_soa_data_to_collection_(uint32_t nhits, + HGCRecHitCollection& rechits, + ConstHGCRecHitSoA* h_calibSoA) { + rechits.reserve(nhits); + for (uint i = 0; i < nhits; ++i) { + DetId id_converted(h_calibSoA->id_[i]); + rechits.emplace_back(id_converted, + h_calibSoA->energy_[i], + h_calibSoA->time_[i], + 0, + h_calibSoA->flagBits_[i], + h_calibSoA->son_[i], + h_calibSoA->timeError_[i]); + } +} + +#include "FWCore/Framework/interface/MakerMacros.h" +DEFINE_FWK_MODULE(HEBRecHitFromSoA); diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/HEBRecHitGPU.cc b/RecoLocalCalo/HGCalRecProducers/plugins/HEBRecHitGPU.cc new file mode 100644 index 0000000000000..b9c08de83d519 --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/plugins/HEBRecHitGPU.cc @@ -0,0 +1,119 @@ +#include +#include + +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "DataFormats/HGCRecHit/interface/HGCRecHitCollections.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/Utilities/interface/EDGetToken.h" +#include "FWCore/Utilities/interface/EDPutToken.h" +#include "FWCore/Utilities/interface/InputTag.h" + +#include "RecoLocalCalo/HGCalRecAlgos/interface/RecHitTools.h" + +#include "HeterogeneousCore/CUDACore/interface/ScopedContext.h" +#include "HeterogeneousCore/CUDACore/interface/ContextState.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" +#include "HeterogeneousCore/CUDAUtilities/interface/MessageLogger.h" + +#include "RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalRecHit.h" +#include "CUDADataFormats/HGCal/interface/HGCRecHitGPUProduct.h" +#include "CUDADataFormats/HGCal/interface/HGCUncalibRecHitDevice.h" +#include "CUDADataFormats/HGCal/interface/HGCUncalibRecHitHost.h" + +class HEBRecHitGPU : public edm::stream::EDProducer<> { +public: + explicit HEBRecHitGPU(const edm::ParameterSet &ps); + ~HEBRecHitGPU() override; + void beginRun(edm::Run const &, edm::EventSetup const &) override; + + void produce(edm::Event &, const edm::EventSetup &) override; + +private: + edm::EDGetTokenT uncalibRecHitCPUToken_; + edm::EDPutTokenT> recHitGPUToken_; + + std::unique_ptr rechits_; + + //constants + HGChebUncalibRecHitConstantData cdata_; + HGCConstantVectorData vdata_; + + //memory + std::string assert_error_message_(std::string, const size_t &); + void assert_sizes_constants_(const HGCConstantVectorData &); + + //conditions (geometry, topology, ...) + std::unique_ptr tools_; + + //data processing + void convert_collection_data_to_soa_(const uint32_t &, const HGChebUncalibratedRecHitCollection &); + void convert_constant_data_(KernelConstantData *); + + HGCRecHitGPUProduct prod_; + HGCUncalibRecHitDevice d_uncalib_; + HGCUncalibRecHitHost h_uncalib_; + + KernelConstantData *kcdata_; +}; + +HEBRecHitGPU::HEBRecHitGPU(const edm::ParameterSet &ps) + : uncalibRecHitCPUToken_{consumes( + ps.getParameter("HGCHEBUncalibRecHitsTok"))}, + recHitGPUToken_{produces>()} { + cdata_.keV2DIGI_ = ps.getParameter("HGCHEB_keV2DIGI"); + cdata_.noise_MIP_ = ps.getParameter("HGCHEB_noise_MIP").getParameter("noise_MIP"); + vdata_.weights_ = ps.getParameter>("weights"); + cdata_.uncalib2GeV_ = 1e-6 / cdata_.keV2DIGI_; + cdata_.layerOffset_ = 28; + assert_sizes_constants_(vdata_); + + kcdata_ = new KernelConstantData(cdata_, vdata_); + convert_constant_data_(kcdata_); + + tools_ = std::make_unique(); +} + +HEBRecHitGPU::~HEBRecHitGPU() { delete kcdata_; } + +std::string HEBRecHitGPU::assert_error_message_(std::string var, const size_t &s) { + std::string str1 = "The '"; + std::string str2 = "' array must be of size "; + std::string str3 = " to hold the configuration data."; + return str1 + var + str2 + std::to_string(s) + str3; +} + +void HEBRecHitGPU::assert_sizes_constants_(const HGCConstantVectorData &vd) { + if (vdata_.weights_.size() != HGChebUncalibRecHitConstantData::heb_weights) + edm::LogError("WrongSize") << this->assert_error_message_("weights", vdata_.fCPerMIP_.size()); +} + +void HEBRecHitGPU::beginRun(edm::Run const &, edm::EventSetup const &setup) {} + +void HEBRecHitGPU::produce(edm::Event &event, const edm::EventSetup &setup) { + cms::cuda::ScopedContextProduce ctx{event.streamID()}; + + const auto &hits = event.get(uncalibRecHitCPUToken_); + unsigned int nhits(hits.size()); + rechits_ = std::make_unique(); + + if (nhits == 0) + edm::LogError("HEBRecHitGPU") << "WARNING: no input hits!"; + + prod_ = HGCRecHitGPUProduct(nhits, ctx.stream()); + d_uncalib_ = HGCUncalibRecHitDevice(nhits, ctx.stream()); + h_uncalib_ = HGCUncalibRecHitHost(nhits, hits, ctx.stream()); + + KernelManagerHGCalRecHit km(h_uncalib_.get(), d_uncalib_.get(), prod_.get()); + km.run_kernels(kcdata_, ctx.stream()); + + ctx.emplace(event, recHitGPUToken_, std::move(prod_)); +} + +void HEBRecHitGPU::convert_constant_data_(KernelConstantData *kcdata) { + for (size_t i = 0; i < kcdata->vdata_.weights_.size(); ++i) + kcdata->data_.weights_[i] = kcdata->vdata_.weights_[i]; +} + +#include "FWCore/Framework/interface/MakerMacros.h" +DEFINE_FWK_MODULE(HEBRecHitGPU); diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/HEBRecHitGPUtoSoA.cc b/RecoLocalCalo/HGCalRecProducers/plugins/HEBRecHitGPUtoSoA.cc new file mode 100644 index 0000000000000..2322128fb09a3 --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/plugins/HEBRecHitGPUtoSoA.cc @@ -0,0 +1,73 @@ +#include +#include +#include +#include + +#include "FWCore/Framework/interface/ESProducer.h" +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Utilities/interface/Exception.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" +#include "DataFormats/HGCRecHit/interface/HGCRecHit.h" +#include "DataFormats/HGCRecHit/interface/HGCRecHitCollections.h" +#include "DataFormats/ForwardDetId/interface/HGCSiliconDetId.h" +#include "FWCore/Utilities/interface/EDGetToken.h" +#include "FWCore/Utilities/interface/EDPutToken.h" +#include "FWCore/Utilities/interface/InputTag.h" + +#include "RecoLocalCalo/HGCalRecAlgos/interface/RecHitTools.h" +#include "Geometry/HGCalGeometry/interface/HGCalGeometry.h" +#include "Geometry/HGCalCommonData/interface/HGCalDDDConstants.h" +#include "Geometry/HGCalCommonData/interface/HGCalWaferIndex.h" + +#include "HeterogeneousCore/CUDACore/interface/ScopedContext.h" +#include "HeterogeneousCore/CUDACore/interface/ContextState.h" +#include "HeterogeneousCore/CUDAServices/interface/CUDAService.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" + +#include "FWCore/ServiceRegistry/interface/Service.h" +#include "CommonTools/UtilAlgos/interface/TFileService.h" +#include "RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalRecHit.h" + +#include "CUDADataFormats/HGCal/interface/HGCRecHitGPUProduct.h" +#include "CUDADataFormats/HGCal/interface/HGCRecHitCPUProduct.h" + +class HEBRecHitGPUtoSoA : public edm::stream::EDProducer { +public: + explicit HEBRecHitGPUtoSoA(const edm::ParameterSet& ps); + ~HEBRecHitGPUtoSoA() override; + + void acquire(edm::Event const&, edm::EventSetup const&, edm::WaitingTaskWithArenaHolder) override; + void produce(edm::Event&, const edm::EventSetup&) override; + +private: + cms::cuda::ContextState ctxState_; + edm::EDGetTokenT> recHitGPUToken_; + edm::EDPutTokenT recHitCPUSoAToken_; + + std::unique_ptr prodPtr_; +}; + +HEBRecHitGPUtoSoA::HEBRecHitGPUtoSoA(const edm::ParameterSet& ps) + : recHitGPUToken_{consumes>( + ps.getParameter("HEBRecHitGPUTok"))}, + recHitCPUSoAToken_(produces()) {} + +HEBRecHitGPUtoSoA::~HEBRecHitGPUtoSoA() {} + +void HEBRecHitGPUtoSoA::acquire(edm::Event const& event, + edm::EventSetup const& setup, + edm::WaitingTaskWithArenaHolder w) { + cms::cuda::ScopedContextAcquire ctx{event.streamID(), std::move(w)}; + const auto& gpuRecHits = ctx.get(event, recHitGPUToken_); + + prodPtr_ = std::make_unique(gpuRecHits.nHits(), ctx.stream()); + + KernelManagerHGCalRecHit km((*prodPtr_).get(), gpuRecHits.get()); + km.transfer_soa_to_host(ctx.stream()); +} + +void HEBRecHitGPUtoSoA::produce(edm::Event& event, const edm::EventSetup& setup) { event.put(std::move(prodPtr_)); } + +#include "FWCore/Framework/interface/MakerMacros.h" +DEFINE_FWK_MODULE(HEBRecHitGPUtoSoA); diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/HEFRecHitFromSoA.cc b/RecoLocalCalo/HGCalRecProducers/plugins/HEFRecHitFromSoA.cc new file mode 100644 index 0000000000000..ca969f42c4d1a --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/plugins/HEFRecHitFromSoA.cc @@ -0,0 +1,58 @@ +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "DataFormats/HGCRecHit/interface/HGCRecHit.h" +#include "DataFormats/HGCRecHit/interface/HGCRecHitCollections.h" +#include "DataFormats/ForwardDetId/interface/HGCSiliconDetId.h" +#include "FWCore/Utilities/interface/EDGetToken.h" +#include "FWCore/Utilities/interface/EDPutToken.h" + +#include "CUDADataFormats/HGCal/interface/HGCRecHitCPUProduct.h" +#include "CUDADataFormats/HGCal/interface/ConstHGCRecHitSoA.h" + +class HEFRecHitFromSoA : public edm::stream::EDProducer<> { +public: + explicit HEFRecHitFromSoA(const edm::ParameterSet& ps); + ~HEFRecHitFromSoA() override; + + void produce(edm::Event&, const edm::EventSetup&) override; + void convert_soa_data_to_collection_(uint32_t, HGCRecHitCollection&, ConstHGCRecHitSoA*); + +private: + std::unique_ptr rechits_; + edm::EDGetTokenT recHitSoAToken_; + edm::EDPutTokenT recHitCollectionToken_; +}; + +HEFRecHitFromSoA::HEFRecHitFromSoA(const edm::ParameterSet& ps) { + recHitSoAToken_ = consumes(ps.getParameter("HEFRecHitSoATok")); + recHitCollectionToken_ = produces(); +} + +HEFRecHitFromSoA::~HEFRecHitFromSoA() {} + +void HEFRecHitFromSoA::produce(edm::Event& event, const edm::EventSetup& setup) { + const HGCRecHitCPUProduct& recHits = event.get(recHitSoAToken_); + ConstHGCRecHitSoA recHitsSoA = recHits.get(); + rechits_ = std::make_unique(); + convert_soa_data_to_collection_(recHits.nHits(), *rechits_, &recHitsSoA); + event.put(std::move(rechits_)); +} + +void HEFRecHitFromSoA::convert_soa_data_to_collection_(uint32_t nhits, + HGCRecHitCollection& rechits, + ConstHGCRecHitSoA* h_calibSoA) { + rechits.reserve(nhits); + for (uint i = 0; i < nhits; ++i) { + DetId id_converted(h_calibSoA->id_[i]); + rechits.emplace_back(id_converted, + h_calibSoA->energy_[i], + h_calibSoA->time_[i], + 0, + h_calibSoA->flagBits_[i], + h_calibSoA->son_[i], + h_calibSoA->timeError_[i]); + } +} + +#include "FWCore/Framework/interface/MakerMacros.h" +DEFINE_FWK_MODULE(HEFRecHitFromSoA); diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/HEFRecHitGPU.cc b/RecoLocalCalo/HGCalRecProducers/plugins/HEFRecHitGPU.cc new file mode 100644 index 0000000000000..7ceedccb5d28e --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/plugins/HEFRecHitGPU.cc @@ -0,0 +1,147 @@ +#include +#include + +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "DataFormats/HGCRecHit/interface/HGCRecHitCollections.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/Utilities/interface/EDGetToken.h" +#include "FWCore/Utilities/interface/EDPutToken.h" +#include "FWCore/Utilities/interface/InputTag.h" + +#include "RecoLocalCalo/HGCalRecAlgos/interface/RecHitTools.h" + +#include "HeterogeneousCore/CUDACore/interface/ScopedContext.h" +#include "HeterogeneousCore/CUDACore/interface/ContextState.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" +#include "HeterogeneousCore/CUDAUtilities/interface/MessageLogger.h" + +#include "RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalRecHit.h" +#include "CUDADataFormats/HGCal/interface/HGCRecHitGPUProduct.h" +#include "CUDADataFormats/HGCal/interface/HGCUncalibRecHitDevice.h" +#include "CUDADataFormats/HGCal/interface/HGCUncalibRecHitHost.h" + +class HEFRecHitGPU : public edm::stream::EDProducer<> { +public: + explicit HEFRecHitGPU(const edm::ParameterSet &ps); + ~HEFRecHitGPU() override; + void beginRun(edm::Run const &, edm::EventSetup const &) override; + + void produce(edm::Event &, const edm::EventSetup &) override; + +private: + edm::EDGetTokenT uncalibRecHitCPUToken_; + edm::EDPutTokenT> recHitGPUToken_; + + std::unique_ptr rechits_; + + //constants + HGChefUncalibRecHitConstantData cdata_; + HGCConstantVectorData vdata_; + + //memory + std::string assert_error_message_(std::string, const size_t &, const size_t &); + void assert_sizes_constants_(const HGCConstantVectorData &); + + //conditions (geometry, topology, ...) + std::unique_ptr tools_; + + //data processing + void convert_collection_data_to_soa_(const uint32_t &, const HGChefUncalibratedRecHitCollection &); + void convert_constant_data_(KernelConstantData *); + + HGCRecHitGPUProduct prod_; + HGCUncalibRecHitDevice d_uncalib_; + HGCUncalibRecHitHost h_uncalib_; + + KernelConstantData *kcdata_; +}; + +HEFRecHitGPU::HEFRecHitGPU(const edm::ParameterSet &ps) + : uncalibRecHitCPUToken_{consumes( + ps.getParameter("HGCHEFUncalibRecHitsTok"))}, + recHitGPUToken_{produces>()} { + cdata_.keV2DIGI_ = ps.getParameter("HGCHEF_keV2DIGI"); + cdata_.xmin_ = ps.getParameter("minValSiPar"); //float + cdata_.xmax_ = ps.getParameter("maxValSiPar"); //float + cdata_.aterm_ = ps.getParameter("noiseSiPar"); //float + cdata_.cterm_ = ps.getParameter("constSiPar"); //float + vdata_.fCPerMIP_ = ps.getParameter>("HGCHEF_fCPerMIP"); + vdata_.cce_ = ps.getParameter("HGCHEF_cce").getParameter>("values"); + vdata_.noise_fC_ = ps.getParameter("HGCHEF_noise_fC").getParameter>("values"); + vdata_.rcorr_ = ps.getParameter>("rcorr"); + vdata_.weights_ = ps.getParameter>("weights"); + cdata_.uncalib2GeV_ = 1e-6 / cdata_.keV2DIGI_; + cdata_.layerOffset_ = 28; + assert_sizes_constants_(vdata_); + + kcdata_ = new KernelConstantData(cdata_, vdata_); + convert_constant_data_(kcdata_); + + tools_ = std::make_unique(); +} + +HEFRecHitGPU::~HEFRecHitGPU() { delete kcdata_; } + +std::string HEFRecHitGPU::assert_error_message_(std::string var, const size_t &s1, const size_t &s2) { + std::string str1 = "The '"; + std::string str2 = "' array must be of size "; + std::string str3 = " to hold the configuration data, but is of size "; + return str1 + var + str2 + std::to_string(s1) + str3 + std::to_string(s2); +} + +void HEFRecHitGPU::assert_sizes_constants_(const HGCConstantVectorData &vd) { + if (vdata_.fCPerMIP_.size() != HGChefUncalibRecHitConstantData::hef_fCPerMIP) + edm::LogError("WrongSize") << this->assert_error_message_( + "fCPerMIP", HGChefUncalibRecHitConstantData::hef_fCPerMIP, vdata_.fCPerMIP_.size()); + else if (vdata_.cce_.size() != HGChefUncalibRecHitConstantData::hef_cce) + edm::LogError("WrongSize") << this->assert_error_message_( + "cce", HGChefUncalibRecHitConstantData::hef_cce, vdata_.cce_.size()); + else if (vdata_.noise_fC_.size() != HGChefUncalibRecHitConstantData::hef_noise_fC) + edm::LogError("WrongSize") << this->assert_error_message_( + "noise_fC", HGChefUncalibRecHitConstantData::hef_noise_fC, vdata_.noise_fC_.size()); + else if (vdata_.rcorr_.size() != HGChefUncalibRecHitConstantData::hef_rcorr) + edm::LogError("WrongSize") << this->assert_error_message_( + "rcorr", HGChefUncalibRecHitConstantData::hef_rcorr, vdata_.rcorr_.size()); + else if (vdata_.weights_.size() != HGChefUncalibRecHitConstantData::hef_weights) + edm::LogError("WrongSize") << this->assert_error_message_( + "weights", HGChefUncalibRecHitConstantData::hef_weights, vdata_.weights_.size()); +} + +void HEFRecHitGPU::beginRun(edm::Run const &, edm::EventSetup const &setup) {} + +void HEFRecHitGPU::produce(edm::Event &event, const edm::EventSetup &setup) { + cms::cuda::ScopedContextProduce ctx{event.streamID()}; + + const auto &hits = event.get(uncalibRecHitCPUToken_); + unsigned int nhits(hits.size()); + rechits_ = std::make_unique(); + + if (nhits == 0) + edm::LogError("HEFRecHitGPU") << "WARNING: no input hits!"; + + prod_ = HGCRecHitGPUProduct(nhits, ctx.stream()); + d_uncalib_ = HGCUncalibRecHitDevice(nhits, ctx.stream()); + h_uncalib_ = HGCUncalibRecHitHost(nhits, hits, ctx.stream()); + + KernelManagerHGCalRecHit km(h_uncalib_.get(), d_uncalib_.get(), prod_.get()); + km.run_kernels(kcdata_, ctx.stream()); + + ctx.emplace(event, recHitGPUToken_, std::move(prod_)); +} + +void HEFRecHitGPU::convert_constant_data_(KernelConstantData *kcdata) { + for (size_t i = 0; i < kcdata->vdata_.fCPerMIP_.size(); ++i) + kcdata->data_.fCPerMIP_[i] = kcdata->vdata_.fCPerMIP_[i]; + for (size_t i = 0; i < kcdata->vdata_.cce_.size(); ++i) + kcdata->data_.cce_[i] = kcdata->vdata_.cce_[i]; + for (size_t i = 0; i < kcdata->vdata_.noise_fC_.size(); ++i) + kcdata->data_.noise_fC_[i] = kcdata->vdata_.noise_fC_[i]; + for (size_t i = 0; i < kcdata->vdata_.rcorr_.size(); ++i) + kcdata->data_.rcorr_[i] = kcdata->vdata_.rcorr_[i]; + for (size_t i = 0; i < kcdata->vdata_.weights_.size(); ++i) + kcdata->data_.weights_[i] = kcdata->vdata_.weights_[i]; +} + +#include "FWCore/Framework/interface/MakerMacros.h" +DEFINE_FWK_MODULE(HEFRecHitGPU); diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/HEFRecHitGPUtoSoA.cc b/RecoLocalCalo/HGCalRecProducers/plugins/HEFRecHitGPUtoSoA.cc new file mode 100644 index 0000000000000..16a252fb33e48 --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/plugins/HEFRecHitGPUtoSoA.cc @@ -0,0 +1,73 @@ +#include +#include +#include +#include + +#include "FWCore/Framework/interface/ESProducer.h" +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Utilities/interface/Exception.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" +#include "DataFormats/HGCRecHit/interface/HGCRecHit.h" +#include "DataFormats/HGCRecHit/interface/HGCRecHitCollections.h" +#include "DataFormats/ForwardDetId/interface/HGCSiliconDetId.h" +#include "FWCore/Utilities/interface/EDGetToken.h" +#include "FWCore/Utilities/interface/EDPutToken.h" +#include "FWCore/Utilities/interface/InputTag.h" + +#include "RecoLocalCalo/HGCalRecAlgos/interface/RecHitTools.h" +#include "Geometry/HGCalGeometry/interface/HGCalGeometry.h" +#include "Geometry/HGCalCommonData/interface/HGCalDDDConstants.h" +#include "Geometry/HGCalCommonData/interface/HGCalWaferIndex.h" + +#include "HeterogeneousCore/CUDACore/interface/ScopedContext.h" +#include "HeterogeneousCore/CUDACore/interface/ContextState.h" +#include "HeterogeneousCore/CUDAServices/interface/CUDAService.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" + +#include "FWCore/ServiceRegistry/interface/Service.h" +#include "CommonTools/UtilAlgos/interface/TFileService.h" +#include "RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalRecHit.h" + +#include "CUDADataFormats/HGCal/interface/HGCRecHitGPUProduct.h" +#include "CUDADataFormats/HGCal/interface/HGCRecHitCPUProduct.h" + +class HEFRecHitGPUtoSoA : public edm::stream::EDProducer { +public: + explicit HEFRecHitGPUtoSoA(const edm::ParameterSet& ps); + ~HEFRecHitGPUtoSoA() override; + + void acquire(edm::Event const&, edm::EventSetup const&, edm::WaitingTaskWithArenaHolder) override; + void produce(edm::Event&, const edm::EventSetup&) override; + +private: + cms::cuda::ContextState ctxState_; + edm::EDGetTokenT> recHitGPUToken_; + edm::EDPutTokenT recHitCPUSoAToken_; + + std::unique_ptr prodPtr_; +}; + +HEFRecHitGPUtoSoA::HEFRecHitGPUtoSoA(const edm::ParameterSet& ps) + : recHitGPUToken_{consumes>( + ps.getParameter("HEFRecHitGPUTok"))}, + recHitCPUSoAToken_(produces()) {} + +HEFRecHitGPUtoSoA::~HEFRecHitGPUtoSoA() {} + +void HEFRecHitGPUtoSoA::acquire(edm::Event const& event, + edm::EventSetup const& setup, + edm::WaitingTaskWithArenaHolder w) { + cms::cuda::ScopedContextAcquire ctx{event.streamID(), std::move(w)}; + const auto& gpuRecHits = ctx.get(event, recHitGPUToken_); + + prodPtr_ = std::make_unique(gpuRecHits.nHits(), ctx.stream()); + + KernelManagerHGCalRecHit km((*prodPtr_).get(), gpuRecHits.get()); + km.transfer_soa_to_host(ctx.stream()); +} + +void HEFRecHitGPUtoSoA::produce(edm::Event& event, const edm::EventSetup& setup) { event.put(std::move(prodPtr_)); } + +#include "FWCore/Framework/interface/MakerMacros.h" +DEFINE_FWK_MODULE(HEFRecHitGPUtoSoA); diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/HGCalCellPositionsKernelImpl.cu b/RecoLocalCalo/HGCalRecProducers/plugins/HGCalCellPositionsKernelImpl.cu new file mode 100644 index 0000000000000..ecaaa177f9cdd --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/plugins/HGCalCellPositionsKernelImpl.cu @@ -0,0 +1,147 @@ +#include +#include +#include +#include "DataFormats/ForwardDetId/interface/HGCalDetId.h" +#include "RecoLocalCalo/HGCalRecProducers/plugins/HGCalCellPositionsKernelImpl.cuh" + +__global__ void fill_positions_from_detids( + const hgcal_conditions::HeterogeneousHEFCellPositionsConditionsESProduct* conds) { + unsigned int tid = blockDim.x * blockIdx.x + threadIdx.x; + + for (unsigned int i = tid; i < conds->nelems_posmap; i += blockDim.x * gridDim.x) { + HeterogeneousHGCSiliconDetId did(conds->posmap.detid[i]); + const float cU = static_cast(did.cellU()); + const float cV = static_cast(did.cellV()); + const float wU = static_cast(did.waferU()); + const float wV = static_cast(did.waferV()); + const float ncells = static_cast(did.nCellsSide()); + const int32_t layer = did.layer(); + + //based on `std::pair HGCalDDDConstants::locateCell(const HGCSiliconDetId&, bool) + const float r_x2 = conds->posmap.waferSize + conds->posmap.sensorSeparation; + const float r = 0.5f * r_x2; + const float sqrt3 = __fsqrt_rn(3.f); + const float rsqrt3 = __frsqrt_rn(3.f); //rsqrt: 1 / sqrt + const float R = r_x2 * rsqrt3; + const float n2 = ncells / 2.f; + const float yoff_abs = rsqrt3 * r_x2; + const float yoff = (layer % 2 == 1) ? yoff_abs : -1.f * yoff_abs; //CHANGE according to Sunanda's reply + float xpos = (-2.f * wU + wV) * r; + float ypos = yoff + (1.5f * wV * R); + const float R1 = __fdividef(conds->posmap.waferSize, 3.f * ncells); + const float r1_x2 = R1 * sqrt3; + xpos += (1.5f * (cV - ncells) + 1.f) * R1; + ypos += (cU - 0.5f * cV - n2) * r1_x2; + conds->posmap.x[i] = + xpos; // times side; multiply by -1 if one wants to obtain the position from the opposite endcap. CAREFUL WITH LATER DETECTOR ALIGNMENT!!! + conds->posmap.y[i] = ypos; + } +} + +__global__ void print_positions_from_detids( + const hgcal_conditions::HeterogeneousHEFCellPositionsConditionsESProduct* conds) { + unsigned int tid = blockDim.x * blockIdx.x + threadIdx.x; + + for (unsigned int i = tid; i < conds->nelems_posmap; i += blockDim.x * gridDim.x) { + HeterogeneousHGCSiliconDetId did(conds->posmap.detid[i]); + const int32_t layer = did.layer(); + float posz = conds->posmap.zLayer[layer - 1]; + printf("PosX: %lf\t PosY: %lf\t Posz: %lf\n", conds->posmap.x[i], conds->posmap.y[i], posz); + } +} + +//eventually this can also be written in parallel +__device__ unsigned map_cell_index(const float& cu, const float& cv, const unsigned& ncells_side) { + unsigned counter = 0; + //left side of wafer + for (int cellUmax = ncells_side, icellV = 0; cellUmax < 2 * ncells_side && icellV < ncells_side; + ++cellUmax, ++icellV) { + for (int icellU = 0; icellU <= cellUmax; ++icellU) { + if (cu == icellU and cv == icellV) + return counter; + else + counter += 1; + } + } + //right side of wafer + for (int cellUmin = 1, icellV = ncells_side; cellUmin <= ncells_side && icellV < 2 * ncells_side; + ++cellUmin, ++icellV) { + for (int icellU = cellUmin; icellU < 2 * ncells_side; ++icellU) { + if (cu == icellU and cv == icellV) + return counter; + else + counter += 1; + } + } + printf("ERROR: The cell was not found!"); + return 99; +} + +//returns the index of the positions of a specific cell +//performs several geometry-related shifts, and adds them at the end: +// 1) number of cells up to the layer being inspected +// 2) number of cells up to the waferUchunk in question, only in the layer being inspected +// 3) number of cells up to the waferV in question, only in the layer and waferUchunk being inspected +// 4) cell index within this layer, waferUchunk and waferV +//Note: a 'waferUchunk' represents the first dimension of a 2D squared grid of wafers, and includes multiple waferV +__device__ unsigned hash_function(const int32_t& l, + const int32_t& wU, + const int32_t& wV, + const int32_t& cu, + const int32_t& cv, + const int32_t& ncells_side, + const hgcal_conditions::HeterogeneousHEFCellPositionsConditionsESProduct* conds) { + const unsigned thislayer = l - conds->posmap.firstLayer; + const unsigned thisUwafer = wU - conds->posmap.waferMin; + const unsigned thisVwafer = wV - conds->posmap.waferMin; + const unsigned nwafers1D = conds->posmap.waferMax - conds->posmap.waferMin; + + //layer shift in terms of cell number + unsigned ncells_up_to_thislayer = 0; + for (unsigned q = 0; q < thislayer; ++q) + ncells_up_to_thislayer += conds->posmap.nCellsLayer[q]; + + //waferU shift in terms of cell number + unsigned ncells_up_to_thisUwafer = 0; + unsigned nwaferUchunks_up_to_this_layer = thislayer * nwafers1D; + for (unsigned q = 0; q < thisUwafer; ++q) + ncells_up_to_thisUwafer += conds->posmap.nCellsWaferUChunk[nwaferUchunks_up_to_this_layer + q]; + + //waferV shift in terms of cell number + unsigned ncells_up_to_thisVwafer = 0; + const unsigned nwafers_up_to_thisLayer = thislayer * nwafers1D * nwafers1D; + const unsigned nwafers_up_to_thisUwafer = thisUwafer * nwafers1D; + for (unsigned q = 0; q < thisVwafer; ++q) + ncells_up_to_thisVwafer += conds->posmap.nCellsHexagon[nwafers_up_to_thisLayer + nwafers_up_to_thisUwafer + q]; + + //cell shift in terms of cell number + const unsigned cell_shift = map_cell_index(cu, cv, ncells_side); + const unsigned shift_total = ncells_up_to_thislayer + ncells_up_to_thisUwafer + ncells_up_to_thisVwafer + cell_shift; + return shift_total; +} + +__global__ void test(uint32_t detid_test, + const hgcal_conditions::HeterogeneousHEFCellPositionsConditionsESProduct* conds) { + unsigned int tid = blockDim.x * blockIdx.x + threadIdx.x; + + if (tid == 0) { + //printf("Nelems: %u\n", static_cast(conds->nelems_posmap)); + for (unsigned i = 0; i < 1; ++i) { + HeterogeneousHGCSiliconDetId did(detid_test); // 2416969935, 2552165379, ... + const int32_t cU = did.cellU(); + const int32_t cV = did.cellV(); + const int32_t wU = did.waferU(); + const int32_t wV = did.waferV(); + const int32_t ncs = did.nCellsSide(); + + const int32_t layer = abs(did.layer()); //remove abs in case both endcaps are considered for x and y + const unsigned shift = hash_function(layer, wU, wV, cU, cV, ncs, conds); + //printf("id: cu: %d, cv: %d, wu: %d, wv: %d, ncells: %d, layer: %d\n", cU, cV, wU, wV, ncs, layer); + printf("id: %u | shift: %u | x: %lf y: %lf\n", + conds->posmap.detid[shift], + shift, + conds->posmap.x[shift], + conds->posmap.y[shift]); + } + } +} diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/HGCalCellPositionsKernelImpl.cuh b/RecoLocalCalo/HGCalRecProducers/plugins/HGCalCellPositionsKernelImpl.cuh new file mode 100644 index 0000000000000..6b3bfe3816c7a --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/plugins/HGCalCellPositionsKernelImpl.cuh @@ -0,0 +1,19 @@ +#ifndef RecoLocalCalo_HGCalESProducers_HGCalCellPositionsKernelImpl_cuh +#define RecoLocalCalo_HGCalESProducers_HGCalCellPositionsKernelImpl_cuh + +#include +#include + +#include "CUDADataFormats/HGCal/interface/HGCConditions.h" +#include "RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalCellPositions.h" + +__global__ +void fill_positions_from_detids(const hgcal_conditions::HeterogeneousHEFCellPositionsConditionsESProduct* conds); + +__global__ +void print_positions_from_detids(const hgcal_conditions::HeterogeneousHEFCellPositionsConditionsESProduct* conds); + +__global__ +void test(uint32_t detid_test, const hgcal_conditions::HeterogeneousHEFCellPositionsConditionsESProduct* conds); + +#endif //RecoLocalCalo_HGCalESProducers_HGCalCellPositionsKernelImpl_cuh diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/HGCalLayerClusterProducer.cc b/RecoLocalCalo/HGCalRecProducers/plugins/HGCalLayerClusterProducer.cc index fba15664ae202..804a310dcfcbf 100644 --- a/RecoLocalCalo/HGCalRecProducers/plugins/HGCalLayerClusterProducer.cc +++ b/RecoLocalCalo/HGCalRecProducers/plugins/HGCalLayerClusterProducer.cc @@ -247,4 +247,4 @@ void HGCalLayerClusterProducer::produce(edm::Event& evt, const edm::EventSetup& algo->reset(); } -#endif +#endif //__RecoLocalCalo_HGCRecProducers_HGCalLayerClusterProducer_H__ diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/HGCalRecHitKernelImpl.cu b/RecoLocalCalo/HGCalRecProducers/plugins/HGCalRecHitKernelImpl.cu new file mode 100644 index 0000000000000..bbde9358b9716 --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/plugins/HGCalRecHitKernelImpl.cu @@ -0,0 +1,163 @@ +#include +#include +#include +#include "DataFormats/HGCRecHit/interface/HGCRecHit.h" +#include "DataFormats/ForwardDetId/interface/HGCalDetId.h" +#include "HGCalRecHitKernelImpl.cuh" + +__device__ float get_weight_from_layer(const int32_t& layer, + const double (&weights)[HGChefUncalibRecHitConstantData::hef_weights]) { + return (float)weights[layer]; +} + +__device__ void make_rechit_silicon(unsigned tid, + HGCRecHitSoA dst_soa, + HGCUncalibRecHitSoA src_soa, + const float& weight, + const float& rcorr, + const float& cce_correction, + const float& sigmaNoiseGeV, + const float& xmin, + const float& xmax, + const float& aterm, + const float& cterm) { + dst_soa.id_[tid] = src_soa.id_[tid]; + dst_soa.energy_[tid] = src_soa.amplitude_[tid] * weight * 0.001f * __fdividef(rcorr, cce_correction); + dst_soa.time_[tid] = src_soa.jitter_[tid]; + + HeterogeneousHGCSiliconDetId detid(src_soa.id_[tid]); + dst_soa.flagBits_[tid] = 0 | (0x1 << HGCRecHit::kGood); + float son = __fdividef(dst_soa.energy_[tid], sigmaNoiseGeV); + float son_norm = fminf(32.f, son) / 32.f * ((1 << 8) - 1); + long int son_round = lroundf(son_norm); + //there is an extra 0.125 factor in HGCRecHit::signalOverSigmaNoise(), which should not affect CPU/GPU comparison + dst_soa.son_[tid] = static_cast(son_round); + + //get time resolution + //https://github.com/cms-sw/cmssw/blob/master/RecoLocalCalo/HGCalRecProducers/src/ComputeClusterTime.cc#L50 + /*Maxmin trick to avoid conditions within the kernel (having xmin < xmax) + 3 possibilities: 1) xval -> xmin -> xmax + 2) xmin -> xval -> xmax + 3) xmin -> xmax -> xval + The time error is calculated with the number in the middle. + */ + float denominator = fminf(fmaxf(son, xmin), xmax); + float div_ = __fdividef(aterm, denominator); + dst_soa.timeError_[tid] = dst_soa.time_[tid] < 0 ? -1 : __fsqrt_rn(div_ * div_ + cterm * cterm); + //if dst_soa.time_[tid] < 1 always, then the above conditional expression can be replaced by + //dst_soa.timeError_[tid] = fminf( fmaxf( dst_soa.time_[tid]-1, -1 ), sqrt( div_*div_ + cterm*cterm ) ) + //which is *not* conditional, and thus potentially faster; compare to HGCalRecHitWorkerSimple.cc +} + +__device__ void make_rechit_scintillator( + unsigned tid, HGCRecHitSoA dst_soa, HGCUncalibRecHitSoA src_soa, const float& weight, const float& sigmaNoiseGeV) { + dst_soa.id_[tid] = src_soa.id_[tid]; + dst_soa.energy_[tid] = src_soa.amplitude_[tid] * weight * 0.001f; + dst_soa.time_[tid] = src_soa.jitter_[tid]; + + HeterogeneousHGCScintillatorDetId detid(src_soa.id_[tid]); + dst_soa.flagBits_[tid] = 0 | (0x1 << HGCRecHit::kGood); + float son = __fdividef(dst_soa.energy_[tid], sigmaNoiseGeV); + float son_norm = fminf(32.f, son) / 32.f * ((1 << 8) - 1); + long int son_round = lroundf(son_norm); + //there is an extra 0.125 factor in HGCRecHit::signalOverSigmaNoise(), which should not affect CPU/GPU comparison + dst_soa.son_[tid] = static_cast(son_round); + dst_soa.timeError_[tid] = -1; +} + +__device__ float get_thickness_correction(const int& type, + const double (&rcorr)[HGChefUncalibRecHitConstantData::hef_rcorr]) { + return __fdividef(1.f, (float)rcorr[type]); +} + +__device__ float get_noise(const int& type, const double (&noise_fC)[HGChefUncalibRecHitConstantData::hef_noise_fC]) { + return (float)noise_fC[type]; +} + +__device__ float get_cce_correction(const int& type, const double (&cce)[HGChefUncalibRecHitConstantData::hef_cce]) { + return (float)cce[type]; +} + +__device__ float get_fCPerMIP(const int& type, + const double (&fCPerMIP)[HGChefUncalibRecHitConstantData::hef_fCPerMIP]) { + return (float)fCPerMIP[type]; +} + +__global__ void ee_to_rechit(HGCRecHitSoA dst_soa, + HGCUncalibRecHitSoA src_soa, + const HGCeeUncalibRecHitConstantData cdata, + int length) { + unsigned tid = blockDim.x * blockIdx.x + threadIdx.x; + + for (unsigned i = tid; i < length; i += blockDim.x * gridDim.x) { + HeterogeneousHGCSiliconDetId detid(src_soa.id_[i]); + int32_t layer = detid.layer(); + float weight = get_weight_from_layer(layer, cdata.weights_); + float rcorr = get_thickness_correction(detid.type(), cdata.rcorr_); + float noise = get_noise(detid.type(), cdata.noise_fC_); + float cce_correction = get_cce_correction(detid.type(), cdata.cce_); + float fCPerMIP = get_fCPerMIP(detid.type(), cdata.fCPerMIP_); + float sigmaNoiseGeV = 1e-3 * weight * rcorr * __fdividef(noise, fCPerMIP); + make_rechit_silicon(i, + dst_soa, + src_soa, + weight, + rcorr, + cce_correction, + sigmaNoiseGeV, + cdata.xmin_, + cdata.xmax_, + cdata.aterm_, + cdata.cterm_); + } + __syncthreads(); +} + +__global__ void hef_to_rechit(HGCRecHitSoA dst_soa, + HGCUncalibRecHitSoA src_soa, + const HGChefUncalibRecHitConstantData cdata, + int length) { + unsigned tid = blockDim.x * blockIdx.x + threadIdx.x; + for (unsigned i = tid; i < length; i += blockDim.x * gridDim.x) { + /*Uncomment the lines set to 1. as soon as those factors are centrally defined for the HSi. + CUDADataFormats/HGCal/interface/HGCUncalibRecHitsToRecHitsConstants.h maxsizes_constanats will perhaps have to be changed (change some 3's to 6's) + */ + HeterogeneousHGCSiliconDetId detid(src_soa.id_[i]); + int32_t layer = detid.layer() + cdata.layerOffset_; + float weight = get_weight_from_layer(layer, cdata.weights_); + float rcorr = 1.f; //get_thickness_correction(detid.type(), cdata.rcorr_); + float noise = get_noise(detid.type(), cdata.noise_fC_); + float cce_correction = 1.f; //get_cce_correction(detid.type(), cdata.cce_); + float fCPerMIP = get_fCPerMIP(detid.type(), cdata.fCPerMIP_); + float sigmaNoiseGeV = 1e-3 * weight * rcorr * __fdividef(noise, fCPerMIP); + make_rechit_silicon(i, + dst_soa, + src_soa, + weight, + rcorr, + cce_correction, + sigmaNoiseGeV, + cdata.xmin_, + cdata.xmax_, + cdata.aterm_, + cdata.cterm_); + } + __syncthreads(); +} + +__global__ void heb_to_rechit(HGCRecHitSoA dst_soa, + HGCUncalibRecHitSoA src_soa, + const HGChebUncalibRecHitConstantData cdata, + int length) { + unsigned tid = blockDim.x * blockIdx.x + threadIdx.x; + + for (unsigned i = tid; i < length; i += blockDim.x * gridDim.x) { + HeterogeneousHGCScintillatorDetId detid(src_soa.id_[i]); + int32_t layer = detid.layer() + cdata.layerOffset_; + float weight = get_weight_from_layer(layer, cdata.weights_); + float noise = cdata.noise_MIP_; + float sigmaNoiseGeV = 1e-3 * noise * weight; + make_rechit_scintillator(i, dst_soa, src_soa, weight, sigmaNoiseGeV); + } + __syncthreads(); +} diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/HGCalRecHitKernelImpl.cuh b/RecoLocalCalo/HGCalRecProducers/plugins/HGCalRecHitKernelImpl.cuh new file mode 100644 index 0000000000000..cca60cbbbadfd --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/plugins/HGCalRecHitKernelImpl.cuh @@ -0,0 +1,22 @@ +#ifndef RecoLocalCalo_HGCalRecProducers_HGCalRecHitKernelImpl_cuh +#define RecoLocalCalo_HGCalRecProducers_HGCalRecHitKernelImpl_cuh + +#include +#include + +#include "CUDADataFormats/HGCal/interface/HGCUncalibRecHitSoA.h" +#include "CUDADataFormats/HGCal/interface/HGCRecHitSoA.h" +#include "CUDADataFormats/HGCal/interface/HGCUncalibRecHitsToRecHitsConstants.h" + +#include "RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalRecHit.h" + +__global__ +void ee_to_rechit(HGCRecHitSoA dst_soa, HGCUncalibRecHitSoA src_soa, HGCeeUncalibRecHitConstantData cdata, int length); + +__global__ +void hef_to_rechit(HGCRecHitSoA dst_soa, HGCUncalibRecHitSoA src_soa, HGChefUncalibRecHitConstantData cdata, int length); + +__global__ +void heb_to_rechit(HGCRecHitSoA dst_soa, HGCUncalibRecHitSoA src_soa, HGChebUncalibRecHitConstantData cdata, int length); + +#endif //RecoLocalCalo_HGCalRecProducers_HGCalRecHitKernelImpl_cuh diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/HGCalRecHitWorkerSimple.cc b/RecoLocalCalo/HGCalRecProducers/plugins/HGCalRecHitWorkerSimple.cc index 24c1139719d2b..1640ae1e02334 100644 --- a/RecoLocalCalo/HGCalRecProducers/plugins/HGCalRecHitWorkerSimple.cc +++ b/RecoLocalCalo/HGCalRecProducers/plugins/HGCalRecHitWorkerSimple.cc @@ -171,6 +171,7 @@ bool HGCalRecHitWorkerSimple::run(const edm::Event& evt, break; } } + switch (idtype) { case hgcee: rechitMaker_->setADCToGeVConstant(float(hgceeUncalib2GeV_)); diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalEEConditions.cc b/RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalEEConditions.cc new file mode 100644 index 0000000000000..cb4d43f9d57d9 --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalEEConditions.cc @@ -0,0 +1,188 @@ +#include "RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalEEConditions.h" + +namespace { + double*& select_pointer_d(cp::HeterogeneousHGCalEEParameters* cpuObject, const unsigned& item) { + switch (item) { + case 0: + return cpuObject->cellFineX_; + case 1: + return cpuObject->cellFineY_; + case 2: + return cpuObject->cellCoarseX_; + case 3: + return cpuObject->cellCoarseY_; + default: + throw cms::Exception("HeterogeneousHGCalEEConditionsWrapper") << "select_pointer_d(heterogeneous): no item."; + return cpuObject->cellCoarseY_; + } + } + + const std::vector& select_pointer_d(const HGCalParameters* cpuObject, const unsigned& item) { + switch (item) { + case 0: + return cpuObject->cellFineX_; + case 1: + return cpuObject->cellFineY_; + case 2: + return cpuObject->cellCoarseX_; + case 3: + return cpuObject->cellCoarseY_; + default: + throw cms::Exception("HeterogeneousHGCalEEConditionsWrapper") + << "select_pointer_d(non-heterogeneous): no item."; + return cpuObject->cellCoarseY_; + } + } + + int32_t*& select_pointer_i(cp::HeterogeneousHGCalEEParameters* cpuObject, const unsigned& item) { + switch (item) { + case 4: + return cpuObject->waferTypeL_; + default: + throw cms::Exception("HeterogeneousHGCalEEConditionsWrapper") << "select_pointer_i(heterogeneous): no item."; + return cpuObject->waferTypeL_; + } + } + + const std::vector& select_pointer_i(const HGCalParameters* cpuObject, const unsigned& item) { + switch (item) { + case 4: + return cpuObject->waferTypeL_; + default: + throw cms::Exception("HeterogeneousHGCalEEConditionsWrapper") + << "select_pointer_i(non-heterogeneous): no item."; + return cpuObject->waferTypeL_; + } + } +} // namespace + +HeterogeneousHGCalEEConditionsWrapper::HeterogeneousHGCalEEConditionsWrapper(const HGCalParameters* cpuHGCalParameters) { + calculate_memory_bytes(cpuHGCalParameters); + + chunk_ = std::accumulate(this->sizes_.begin(), this->sizes_.end(), 0); //total memory required in bytes + cudaCheck(cudaMallocHost(&this->params_.cellFineX_, chunk_)); + + //store cumulative sum in bytes and convert it to sizes in units of C++ typesEE, i.e., number if items to be transferred to GPU + std::vector cumsum_sizes(this->sizes_.size() + 1, 0); //starting with zero + std::partial_sum(this->sizes_.begin(), this->sizes_.end(), cumsum_sizes.begin() + 1); + for (unsigned i(1); i < cumsum_sizes.size(); ++i) //start at second element (the first is zero) + { + unsigned typesEEsize(0); + if (cp::typesEE[i - 1] == cp::HeterogeneousHGCalEEParametersType::Double) + typesEEsize = sizeof(double); + else if (cp::typesEE[i - 1] == cp::HeterogeneousHGCalEEParametersType::Int32_t) + typesEEsize = sizeof(int32_t); + else + throw cms::Exception("HeterogeneousHGCalEEConditionsWrapper") << "Wrong HeterogeneousHGCalParameters type"; + cumsum_sizes[i] /= typesEEsize; + } + + for (unsigned j(0); j < this->sizes_.size(); ++j) { + //setting the pointers + if (j != 0) { + const unsigned jm1(j - 1); + if (cp::typesEE[jm1] == cp::HeterogeneousHGCalEEParametersType::Double and + cp::typesEE[j] == cp::HeterogeneousHGCalEEParametersType::Double) + ::select_pointer_d(&this->params_, j) = ::select_pointer_d(&this->params_, jm1) + this->sizes_[jm1]; + else if (cp::typesEE[jm1] == cp::HeterogeneousHGCalEEParametersType::Double and + cp::typesEE[j] == cp::HeterogeneousHGCalEEParametersType::Int32_t) + ::select_pointer_i(&this->params_, j) = + reinterpret_cast(::select_pointer_d(&this->params_, jm1) + this->sizes_[jm1]); + } + + //copying the pointers' content + for (unsigned i(cumsum_sizes[j]); i < cumsum_sizes[j + 1]; ++i) { + unsigned index(i - cumsum_sizes[j]); + if (cp::typesEE[j] == cp::HeterogeneousHGCalEEParametersType::Double) { + ::select_pointer_d(&this->params_, j)[index] = ::select_pointer_d(cpuHGCalParameters, j)[index]; + } else if (cp::typesEE[j] == cp::HeterogeneousHGCalEEParametersType::Int32_t) + ::select_pointer_i(&this->params_, j)[index] = ::select_pointer_i(cpuHGCalParameters, j)[index]; + else + throw cms::Exception("HeterogeneousHGCalEEConditionsWrapper") << "Wrong HeterogeneousHGCalParameters type"; + } + } +} + +void HeterogeneousHGCalEEConditionsWrapper::calculate_memory_bytes(const HGCalParameters* cpuHGCalParameters) { + size_t npointers = hgcal_conditions::parameters::typesEE.size(); + std::vector sizes(npointers); + for (unsigned i(0); i < npointers; ++i) { + if (cp::typesEE[i] == cp::HeterogeneousHGCalEEParametersType::Double) + sizes[i] = ::select_pointer_d(cpuHGCalParameters, i).size(); + else + sizes[i] = ::select_pointer_i(cpuHGCalParameters, i).size(); + } + + std::vector sizes_units(npointers); + for (unsigned i(0); i < npointers; ++i) { + if (cp::typesEE[i] == cp::HeterogeneousHGCalEEParametersType::Double) + sizes_units[i] = sizeof(double); + else if (cp::typesEE[i] == cp::HeterogeneousHGCalEEParametersType::Int32_t) + sizes_units[i] = sizeof(int32_t); + } + + //element by element multiplication + this->sizes_.resize(npointers); + std::transform(sizes.begin(), sizes.end(), sizes_units.begin(), this->sizes_.begin(), std::multiplies()); +} + +HeterogeneousHGCalEEConditionsWrapper::~HeterogeneousHGCalEEConditionsWrapper() { + cudaCheck(cudaFreeHost(this->params_.cellFineX_)); +} + +//I could use template specializations +//try to use std::variant in the future to avoid similar functions with different return values + +hgcal_conditions::HeterogeneousEEConditionsESProduct const* +HeterogeneousHGCalEEConditionsWrapper::getHeterogeneousConditionsESProductAsync(cudaStream_t stream) const { + // cms::cuda::ESProduct essentially holds an array of GPUData objects, + // one per device. If the data have already been transferred to the + // current device (or the transfer has been queued), the helper just + // returns a reference to that GPUData object. Otherwise, i.e. data are + // not yet on the current device, the helper calls the lambda to do the + // necessary memory allocations and to queue the transfers. + auto const& data = gpuData_.dataForCurrentDeviceAsync(stream, [this](GPUData& data, cudaStream_t stream) { + // Allocate the payload object on pinned host memory. + cudaCheck(cudaMallocHost(&data.host, sizeof(hgcal_conditions::HeterogeneousEEConditionsESProduct))); + // Allocate the payload array(s) on device memory. + cudaCheck(cudaMalloc(&(data.host->params.cellFineX_), chunk_)); + + // Allocate the payload object on the device memory. + cudaCheck(cudaMalloc(&data.device, sizeof(hgcal_conditions::HeterogeneousEEConditionsESProduct))); + // Transfer the payload, first the array(s) ... + cudaCheck(cudaMemcpyAsync( + data.host->params.cellFineX_, this->params_.cellFineX_, chunk_, cudaMemcpyHostToDevice, stream)); + + for (unsigned j(0); j < this->sizes_.size() - 1; ++j) { + if (cp::typesEE[j] == cp::HeterogeneousHGCalEEParametersType::Double and + cp::typesEE[j + 1] == cp::HeterogeneousHGCalEEParametersType::Double) + ::select_pointer_d(&(data.host->params), j + 1) = ::select_pointer_d(&(data.host->params), j) + this->sizes_[j]; + else if (cp::typesEE[j] == cp::HeterogeneousHGCalEEParametersType::Double and + cp::typesEE[j + 1] == cp::HeterogeneousHGCalEEParametersType::Int32_t) + ::select_pointer_i(&(data.host->params), j + 1) = + reinterpret_cast(::select_pointer_d(&(data.host->params), j) + this->sizes_[j]); + else + throw cms::Exception("HeterogeneousHGCalEEConditionsWrapper") + << "compare this functions' logic with hgcal_conditions::parameters::typesEE"; + } + + // ... and then the payload object + cudaCheck(cudaMemcpyAsync(data.device, + data.host, + sizeof(hgcal_conditions::HeterogeneousEEConditionsESProduct), + cudaMemcpyHostToDevice, + stream)); + }); //gpuData_.dataForCurrentDeviceAsync + + // Returns the payload object on the memory of the current device + return data.device; +} + +// Destructor frees all member pointers +HeterogeneousHGCalEEConditionsWrapper::GPUData::~GPUData() { + if (host != nullptr) { + cudaCheck(cudaFree(host->params.cellFineX_)); + cudaCheck(cudaFreeHost(host)); + } + cudaCheck(cudaFree(device)); +} diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalEEConditions.h b/RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalEEConditions.h new file mode 100644 index 0000000000000..9f44e4f13249e --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalEEConditions.h @@ -0,0 +1,59 @@ +#ifndef HeterogeneousHGCalEEConditions_h +#define HeterogeneousHGCalEEConditions_h + +#include //accumulate +#include + +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/Utilities/interface/Exception.h" +#include "HeterogeneousCore/CUDACore/interface/ESProduct.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" +#include "CUDADataFormats/HGCal/interface/HGCConditions.h" +#include "Geometry/HGCalCommonData/interface/HGCalDDDConstants.h" +#include "Geometry/HGCalCommonData/interface/HGCalParameters.h" +#include "RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalRecHit.h" + +namespace cp = hgcal_conditions::parameters; + +// Declare the wrapper ESProduct. The corresponding ESProducer should +// produce objects of this type. +class HeterogeneousHGCalEEConditionsWrapper { +public: + // Constructor takes the standard CPU ESProduct, and transforms the + // necessary data to array(s) in pinned host memory + HeterogeneousHGCalEEConditionsWrapper(const HGCalParameters *); + + // Deallocates all pinned host memory + ~HeterogeneousHGCalEEConditionsWrapper(); + + // Function to return the actual payload on the memory of the current device + hgcal_conditions::HeterogeneousEEConditionsESProduct const *getHeterogeneousConditionsESProductAsync( + cudaStream_t stream) const; + +private: + // Holds the data in pinned CPU memory + // Contrary to its non-heterogeneous counterpart (constructor argument) it is *not* a pointer (so to avoid an extra allocation) + cp::HeterogeneousHGCalEEParameters params_; + + std::vector sizes_; + size_t chunk_; + + void calculate_memory_bytes(const HGCalParameters *); + + // Helper struct to hold all information that has to be allocated and + // deallocated per device + struct GPUData { + // Destructor should free all member pointers + ~GPUData(); + // internal pointers are on device, struct itself is on CPU + hgcal_conditions::HeterogeneousEEConditionsESProduct *host = nullptr; + // internal pounters and struct are on device + hgcal_conditions::HeterogeneousEEConditionsESProduct *device = nullptr; + }; + + // Helper that takes care of complexity of transferring the data to + // multiple devices + cms::cuda::ESProduct gpuData_; +}; + +#endif //HeterogeneousHGCalEEConditions_h diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalHEBConditions.cc b/RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalHEBConditions.cc new file mode 100644 index 0000000000000..88cb155574b2e --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalHEBConditions.cc @@ -0,0 +1,177 @@ +#include "RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalHEBConditions.h" + +HeterogeneousHGCalHEBConditionsWrapper::HeterogeneousHGCalHEBConditionsWrapper( + const HGCalParameters* cpuHGCalParameters) { + calculate_memory_bytes(cpuHGCalParameters); + + chunk_ = std::accumulate(this->sizes_.begin(), this->sizes_.end(), 0); //total memory required in bytes + cudaCheck(cudaMallocHost(&this->params_.testD_, chunk_)); + + //store cumulative sum in bytes and convert it to sizes in units of C++ typesHEB, i.e., number if items to be transferred to GPU + std::vector cumsum_sizes(this->sizes_.size() + 1, 0); //starting with zero + std::partial_sum(this->sizes_.begin(), this->sizes_.end(), cumsum_sizes.begin() + 1); + for (unsigned int i = 1; i < cumsum_sizes.size(); ++i) //start at second element (the first is zero) + { + unsigned int typesHEBize = 0; + if (cp::typesHEB[i - 1] == cp::HeterogeneousHGCalHEBParametersType::Double) + typesHEBize = sizeof(double); + else if (cp::typesHEB[i - 1] == cp::HeterogeneousHGCalHEBParametersType::Int32_t) + typesHEBize = sizeof(int32_t); + else + throw cms::Exception("HeterogeneousHGCalHEBConditionsWrapper") << "Wrong HeterogeneousHGCalParameters type"; + cumsum_sizes[i] /= typesHEBize; + } + + for (unsigned int j = 0; j < this->sizes_.size(); ++j) { + //setting the pointers + if (j != 0) { + const unsigned int jm1 = j - 1; + if (cp::typesHEB[jm1] == cp::HeterogeneousHGCalHEBParametersType::Double and + cp::typesHEB[j] == cp::HeterogeneousHGCalHEBParametersType::Double) + select_pointer_d(&this->params_, j) = select_pointer_d(&this->params_, jm1) + this->sizes_[jm1]; + else if (cp::typesHEB[jm1] == cp::HeterogeneousHGCalHEBParametersType::Double and + cp::typesHEB[j] == cp::HeterogeneousHGCalHEBParametersType::Int32_t) + select_pointer_i(&this->params_, j) = + reinterpret_cast(select_pointer_d(&this->params_, jm1) + this->sizes_[jm1]); + } + + //copying the pointers' content + for (unsigned int i = cumsum_sizes[j]; i < cumsum_sizes[j + 1]; ++i) { + unsigned int index = i - cumsum_sizes[j]; + if (cp::typesHEB[j] == cp::HeterogeneousHGCalHEBParametersType::Double) { + select_pointer_d(&this->params_, j)[index] = select_pointer_d(cpuHGCalParameters, j)[index]; + } else if (cp::typesHEB[j] == cp::HeterogeneousHGCalHEBParametersType::Int32_t) + select_pointer_i(&this->params_, j)[index] = select_pointer_i(cpuHGCalParameters, j)[index]; + else + throw cms::Exception("HeterogeneousHGCalHEBConditionsWrapper") << "Wrong HeterogeneousHGCalParameters type"; + } + } +} + +void HeterogeneousHGCalHEBConditionsWrapper::calculate_memory_bytes(const HGCalParameters* cpuHGCalParameters) { + size_t npointers = hgcal_conditions::parameters::typesHEB.size(); + std::vector sizes(npointers); + for (unsigned int i = 0; i < npointers; ++i) { + if (cp::typesHEB[i] == cp::HeterogeneousHGCalHEBParametersType::Double) + sizes[i] = select_pointer_d(cpuHGCalParameters, i).size(); + else + sizes[i] = select_pointer_i(cpuHGCalParameters, i).size(); + } + + std::vector sizes_units(npointers); + for (unsigned int i = 0; i < npointers; ++i) { + if (cp::typesHEB[i] == cp::HeterogeneousHGCalHEBParametersType::Double) + sizes_units[i] = sizeof(double); + else if (cp::typesHEB[i] == cp::HeterogeneousHGCalHEBParametersType::Int32_t) + sizes_units[i] = sizeof(int32_t); + } + + //element by element multiplication + this->sizes_.resize(npointers); + std::transform(sizes.begin(), sizes.end(), sizes_units.begin(), this->sizes_.begin(), std::multiplies()); +} + +HeterogeneousHGCalHEBConditionsWrapper::~HeterogeneousHGCalHEBConditionsWrapper() { + cudaCheck(cudaFreeHost(this->params_.testD_)); +} + +//I could use template specializations +//try to use std::variant in the future to avoid similar functions with different return values +double*& HeterogeneousHGCalHEBConditionsWrapper::select_pointer_d(cp::HeterogeneousHGCalHEBParameters* cpuObject, + const unsigned int& item) const { + switch (item) { + case 0: + return cpuObject->testD_; + default: + throw cms::Exception("HeterogeneousHGCalHEBConditionsWrapper") << "select_pointer_d(heterogeneous): no item."; + return cpuObject->testD_; + } +} + +std::vector HeterogeneousHGCalHEBConditionsWrapper::select_pointer_d(const HGCalParameters* cpuObject, + const unsigned int& item) const { + switch (item) { + case 0: + return cpuObject->cellFineX_; + default: + throw cms::Exception("HeterogeneousHGCalHEBConditionsWrapper") << "select_pointer_d(non-heterogeneous): no item."; + return cpuObject->cellFineX_; + } +} + +int32_t*& HeterogeneousHGCalHEBConditionsWrapper::select_pointer_i(cp::HeterogeneousHGCalHEBParameters* cpuObject, + const unsigned int& item) const { + switch (item) { + case 1: + return cpuObject->testI_; + default: + throw cms::Exception("HeterogeneousHGCalHEBConditionsWrapper") << "select_pointer_i(heterogeneous): no item."; + return cpuObject->testI_; + } +} + +std::vector HeterogeneousHGCalHEBConditionsWrapper::select_pointer_i(const HGCalParameters* cpuObject, + const unsigned int& item) const { + switch (item) { + case 4: + return cpuObject->waferTypeL_; + default: + throw cms::Exception("HeterogeneousHGCalHEBConditionsWrapper") << "select_pointer_i(non-heterogeneous): no item."; + return cpuObject->waferTypeL_; + } +} + +hgcal_conditions::HeterogeneousHEBConditionsESProduct const* +HeterogeneousHGCalHEBConditionsWrapper::getHeterogeneousConditionsESProductAsync(cudaStream_t stream) const { + // cms::cuda::ESProduct essentially holds an array of GPUData objects, + // one per device. If the data have already been transferred to the + // current device (or the transfer has been queued), the helper just + // returns a reference to that GPUData object. Otherwise, i.e. data are + // not yet on the current device, the helper calls the lambda to do the + // necessary memory allocations and to queue the transfers. + auto const& data = gpuData_.dataForCurrentDeviceAsync(stream, [this](GPUData& data, cudaStream_t stream) { + // Allocate the payload object on pinned host memory. + cudaCheck(cudaMallocHost(&data.host, sizeof(hgcal_conditions::HeterogeneousHEBConditionsESProduct))); + // Allocate the payload array(s) on device memory. + cudaCheck(cudaMalloc(&(data.host->params.testD_), chunk_)); + + // Allocate the payload object on the device memory. + cudaCheck(cudaMalloc(&data.device, sizeof(hgcal_conditions::HeterogeneousHEBConditionsESProduct))); + // Transfer the payload, first the array(s) ... + cudaCheck(cudaMemcpyAsync(data.host->params.testD_, this->params_.testD_, chunk_, cudaMemcpyHostToDevice, stream)); + + for (unsigned int j = 0; j < this->sizes_.size() - 1; ++j) { + if (cp::typesHEB[j] == cp::HeterogeneousHGCalHEBParametersType::Double and + cp::typesHEB[j + 1] == cp::HeterogeneousHGCalHEBParametersType::Double) + select_pointer_d(&(data.host->params), j + 1) = select_pointer_d(&(data.host->params), j) + this->sizes_[j]; + else if (cp::typesHEB[j] == cp::HeterogeneousHGCalHEBParametersType::Double and + cp::typesHEB[j + 1] == cp::HeterogeneousHGCalHEBParametersType::Int32_t) + select_pointer_i(&(data.host->params), j + 1) = + reinterpret_cast(select_pointer_d(&(data.host->params), j) + this->sizes_[j]); + else + throw cms::Exception("HeterogeneousHGCalHEBConditionsWrapper") + << "compare this functions' logic with hgcal_conditions::parameters::typesHEB"; + } + + // ... and then the payload object + cudaCheck(cudaMemcpyAsync(data.device, + data.host, + sizeof(hgcal_conditions::HeterogeneousHEBConditionsESProduct), + cudaMemcpyHostToDevice, + stream)); + }); //gpuData_.dataForCurrentDeviceAsync + + // Returns the payload object on the memory of the current device + return data.device; +} + +// Destructor frees all member pointers +HeterogeneousHGCalHEBConditionsWrapper::GPUData::~GPUData() { + if (host != nullptr) { + cudaCheck(cudaFree(host->params.testD_)); + cudaCheck(cudaFreeHost(host)); + } + cudaCheck(cudaFree(device)); +} + +//template double*& HeterogeneousHGCalHEBConditionsWrapper::select_pointer_d(cp::HeterogeneousHGCalParameters*, const unsigned int&) const; diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalHEBConditions.h b/RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalHEBConditions.h new file mode 100644 index 0000000000000..a16b13872cdea --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalHEBConditions.h @@ -0,0 +1,62 @@ +#ifndef HeterogeneousHGCalHEBConditions_h +#define HeterogeneousHGCalHEBConditions_h + +#include //accumulate +#include + +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "HeterogeneousCore/CUDACore/interface/ESProduct.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" +#include "CUDADataFormats/HGCal/interface/HGCConditions.h" +#include "Geometry/HGCalCommonData/interface/HGCalDDDConstants.h" +#include "Geometry/HGCalCommonData/interface/HGCalParameters.h" +#include "RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalRecHit.h" + +namespace cp = hgcal_conditions::parameters; + +// Declare the wrapper ESProduct. The corresponding ESProducer should +// produce objects of this type. +class HeterogeneousHGCalHEBConditionsWrapper { +public: + // Constructor takes the standard CPU ESProduct, and transforms the + // necessary data to array(s) in pinned host memory + HeterogeneousHGCalHEBConditionsWrapper(const HGCalParameters *); + + // Deallocates all pinned host memory + ~HeterogeneousHGCalHEBConditionsWrapper(); + + // Function to return the actual payload on the memory of the current device + hgcal_conditions::HeterogeneousHEBConditionsESProduct const *getHeterogeneousConditionsESProductAsync( + cudaStream_t stream) const; + +private: + // Holds the data in pinned CPU memory + // Contrary to its non-heterogeneous counterpart (constructor argument) it is *not* a pointer (so to avoid an extra allocation) + cp::HeterogeneousHGCalHEBParameters params_; + + std::vector sizes_; + size_t chunk_; + + void calculate_memory_bytes(const HGCalParameters *); + double *&select_pointer_d(cp::HeterogeneousHGCalHEBParameters *, const unsigned int &) const; + std::vector select_pointer_d(const HGCalParameters *, const unsigned int &) const; + int32_t *&select_pointer_i(cp::HeterogeneousHGCalHEBParameters *, const unsigned int &) const; + std::vector select_pointer_i(const HGCalParameters *, const unsigned int &) const; + + // Helper struct to hold all information that has to be allocated and + // deallocated per device + struct GPUData { + // Destructor should free all member pointers + ~GPUData(); + // internal pointers are on device, struct itself is on CPU + hgcal_conditions::HeterogeneousHEBConditionsESProduct *host = nullptr; + // internal pounters and struct are on device + hgcal_conditions::HeterogeneousHEBConditionsESProduct *device = nullptr; + }; + + // Helper that takes care of complexity of transferring the data to + // multiple devices + cms::cuda::ESProduct gpuData_; +}; + +#endif //HeterogeneousHGCalHEBConditions_h diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalHEFCellPositionsConditions.cc b/RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalHEFCellPositionsConditions.cc new file mode 100644 index 0000000000000..d8074c58a7927 --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalHEFCellPositionsConditions.cc @@ -0,0 +1,304 @@ +#include "CondFormats/HGCalObjects/interface/HeterogeneousHGCalHEFCellPositionsConditions.h" + +HeterogeneousHGCalHEFCellPositionsConditions::HeterogeneousHGCalHEFCellPositionsConditions( + cpos::HGCalPositionsMapping* cpuPos) { + //HGCalPositions as defined in hgcal_conditions::positions + this->sizes_ = calculate_memory_bytes_(cpuPos); + this->chunk_ = allocate_memory_(this->sizes_); + transfer_data_to_heterogeneous_pointers_(this->sizes_, cpuPos); + transfer_data_to_heterogeneous_vars_(cpuPos); +} + +size_t HeterogeneousHGCalHEFCellPositionsConditions::allocate_memory_(const std::vector& sz) { + size_t chunk = std::accumulate(sz.begin(), sz.end(), 0); //total memory required in bytes + cudaCheck(cudaMallocHost(&this->posmap_.x, chunk)); + return chunk; +} + +void HeterogeneousHGCalHEFCellPositionsConditions::transfer_data_to_heterogeneous_pointers_( + const std::vector& sz, cpos::HGCalPositionsMapping* cpuPos) { + //store cumulative sum in bytes and convert it to sizes in units of C++ typesHEF, i.e., number if items to be transferred to GPU + std::vector cumsum_sizes(sz.size() + 1, 0); //starting with zero + std::partial_sum(sz.begin(), sz.end(), cumsum_sizes.begin() + 1); + for (unsigned int i = 1; i < cumsum_sizes.size(); ++i) //start at second element (the first is zero) + { + size_t types_size = 0; + if (cpos::types[i - 1] == cpos::HeterogeneousHGCalPositionsType::Float) + types_size = sizeof(float); + else if (cpos::types[i - 1] == cpos::HeterogeneousHGCalPositionsType::Int32_t) + types_size = sizeof(int32_t); + else if (cpos::types[i - 1] == cpos::HeterogeneousHGCalPositionsType::Uint32_t) + types_size = sizeof(uint32_t); + else + throw cms::Exception("HeterogeneousHGCalHEFCellPositionsConditions") + << "Wrong HeterogeneousHGCalPositionsMapping type"; + cumsum_sizes[i] /= types_size; + } + + for (unsigned int j = 0; j < sz.size(); ++j) { + //setting the pointers + if (j != 0) { + const unsigned int jm1 = j - 1; + const size_t shift = cumsum_sizes[j] - cumsum_sizes[jm1]; + if (cpos::types[jm1] == cpos::HeterogeneousHGCalPositionsType::Float and + cpos::types[j] == cpos::HeterogeneousHGCalPositionsType::Float) + select_pointer_f_(&this->posmap_, j) = select_pointer_f_(&this->posmap_, jm1) + shift; + else if (cpos::types[jm1] == cpos::HeterogeneousHGCalPositionsType::Float and + cpos::types[j] == cpos::HeterogeneousHGCalPositionsType::Int32_t) + select_pointer_i_(&this->posmap_, j) = + reinterpret_cast(select_pointer_f_(&this->posmap_, jm1) + shift); + else if (cpos::types[jm1] == cpos::HeterogeneousHGCalPositionsType::Int32_t and + cpos::types[j] == cpos::HeterogeneousHGCalPositionsType::Int32_t) + select_pointer_i_(&this->posmap_, j) = select_pointer_i_(&this->posmap_, jm1) + shift; + else if (cpos::types[jm1] == cpos::HeterogeneousHGCalPositionsType::Int32_t and + cpos::types[j] == cpos::HeterogeneousHGCalPositionsType::Uint32_t) + select_pointer_u_(&this->posmap_, j) = + reinterpret_cast(select_pointer_i_(&this->posmap_, jm1) + shift); + else + throw cms::Exception("HeterogeneousHGCalHEFCellPositionsConditions") + << "Wrong HeterogeneousHGCalPositionsMapping type"; + } + + //copying the pointers' content + if (j >= + this->number_position_arrays) //required due to the assymetry between cpos::HeterogeneousHGCalPositionsMapping and cpos::HGCalPositionsMapping + { + for (unsigned int i = cumsum_sizes[j]; i < cumsum_sizes[j + 1]; ++i) { + unsigned int index = i - cumsum_sizes[j]; + if (cpos::types[j] == cpos::HeterogeneousHGCalPositionsType::Float) { + select_pointer_f_(&this->posmap_, j)[index] = + select_pointer_f_(cpuPos, j - this->number_position_arrays)[index]; + } else if (cpos::types[j] == cpos::HeterogeneousHGCalPositionsType::Int32_t) { + select_pointer_i_(&this->posmap_, j)[index] = + select_pointer_i_(cpuPos, j - this->number_position_arrays)[index]; + } else if (cpos::types[j] == cpos::HeterogeneousHGCalPositionsType::Uint32_t) { + select_pointer_u_(&this->posmap_, j)[index] = + select_pointer_u_(cpuPos, j - this->number_position_arrays)[index]; + } else + throw cms::Exception("HeterogeneousHGCalHEFCellPositionsConditions") + << "Wrong HeterogeneousHGCalPositions type"; + } + } + } +} + +void HeterogeneousHGCalHEFCellPositionsConditions::transfer_data_to_heterogeneous_vars_( + const cpos::HGCalPositionsMapping* cpuPos) { + this->posmap_.waferSize = cpuPos->waferSize; + this->posmap_.sensorSeparation = cpuPos->sensorSeparation; + this->posmap_.firstLayer = cpuPos->firstLayer; + this->posmap_.lastLayer = cpuPos->lastLayer; + this->posmap_.waferMin = cpuPos->waferMin; + this->posmap_.waferMax = cpuPos->waferMax; + this->nelems_posmap_ = cpuPos->detid.size(); +} + +std::vector HeterogeneousHGCalHEFCellPositionsConditions::calculate_memory_bytes_( + cpos::HGCalPositionsMapping* cpuPos) { + size_t npointers = cpos::types.size(); + std::vector sizes(npointers); + for (unsigned int i = 0; i < npointers; ++i) { + const unsigned detid_index = 4; + const unsigned nlayers_index = 3; + if (cpos::types[i] == cpos::HeterogeneousHGCalPositionsType::Float and (i == 0 or i == 1)) + sizes[i] = select_pointer_u_(cpuPos, detid_index) + .size(); //x and y position array will have the same size as the detid array + else if (cpos::types[i] == cpos::HeterogeneousHGCalPositionsType::Float and i == 2) + sizes[i] = select_pointer_i_(cpuPos, nlayers_index).size(); //z position's size is equal to the #layers + else if (cpos::types[i] == cpos::HeterogeneousHGCalPositionsType::Float and i > 2) + throw cms::Exception("HeterogeneousHGCalHEFCellPositionsConditions") + << "Wrong HeterogeneousHGCalPositions type (Float)"; + else if (cpos::types[i] == cpos::HeterogeneousHGCalPositionsType::Int32_t) + sizes[i] = select_pointer_i_(cpuPos, i - this->number_position_arrays).size(); + else if (cpos::types[i] == cpos::HeterogeneousHGCalPositionsType::Uint32_t) + sizes[i] = select_pointer_u_(cpuPos, detid_index).size(); + } + + std::vector sizes_units(npointers); + for (unsigned int i = 0; i < npointers; ++i) { + if (cpos::types[i] == cpos::HeterogeneousHGCalPositionsType::Float) + sizes_units[i] = sizeof(float); + else if (cpos::types[i] == cpos::HeterogeneousHGCalPositionsType::Int32_t) + sizes_units[i] = sizeof(int32_t); + else if (cpos::types[i] == cpos::HeterogeneousHGCalPositionsType::Uint32_t) + sizes_units[i] = sizeof(uint32_t); + } + + //element by element multiplication + this->sizes_.resize(npointers); + std::transform(sizes.begin(), sizes.end(), sizes_units.begin(), this->sizes_.begin(), std::multiplies()); + return this->sizes_; +} + +HeterogeneousHGCalHEFCellPositionsConditions::~HeterogeneousHGCalHEFCellPositionsConditions() { + cudaCheck(cudaFreeHost(this->posmap_.x)); +} + +//I could use template specializations +//try to use std::variant in the future to avoid similar functions with different return values +float*& HeterogeneousHGCalHEFCellPositionsConditions::select_pointer_f_( + cpos::HeterogeneousHGCalPositionsMapping* cpuObject, const unsigned int& item) const { + switch (item) { + case 0: + return cpuObject->x; + case 1: + return cpuObject->y; + case 2: + return cpuObject->zLayer; + default: + throw cms::Exception("HeterogeneousHGCalHEFCellPositionsConditions") + << "select_pointer_f(heterogeneous): no item (typed " << item << ")."; + return cpuObject->x; + } +} + +std::vector& HeterogeneousHGCalHEFCellPositionsConditions::select_pointer_f_( + cpos::HGCalPositionsMapping* cpuObject, const unsigned int& item) { + switch (item) { + case 0: + return cpuObject->zLayer; + default: + throw cms::Exception("HeterogeneousHGCalHEFCellPositionsConditions") + << "select_pointer_f(non-heterogeneous): no item (typed " << item << ")."; + return cpuObject->zLayer; + } +} + +int32_t*& HeterogeneousHGCalHEFCellPositionsConditions::select_pointer_i_( + cpos::HeterogeneousHGCalPositionsMapping* cpuObject, const unsigned int& item) const { + switch (item) { + case 3: + return cpuObject->nCellsLayer; + case 4: + return cpuObject->nCellsWaferUChunk; + case 5: + return cpuObject->nCellsHexagon; + default: + throw cms::Exception("HeterogeneousHGCalHEFCellPositionsConditions") + << "select_pointer_i(heterogeneous): no item (typed " << item << ")."; + return cpuObject->nCellsHexagon; + } +} + +std::vector& HeterogeneousHGCalHEFCellPositionsConditions::select_pointer_i_( + cpos::HGCalPositionsMapping* cpuObject, const unsigned int& item) { + switch (item) { + case 1: + return cpuObject->nCellsLayer; + case 2: + return cpuObject->nCellsWaferUChunk; + case 3: + return cpuObject->nCellsHexagon; + default: + throw cms::Exception("HeterogeneousHGCalHEFCellPositionsConditions") + << "select_pointer_i(non-heterogeneous): no item (typed " << item << ")."; + return cpuObject->nCellsHexagon; + } +} + +uint32_t*& HeterogeneousHGCalHEFCellPositionsConditions::select_pointer_u_( + cpos::HeterogeneousHGCalPositionsMapping* cpuObject, const unsigned int& item) const { + switch (item) { + case 6: + return cpuObject->detid; + default: + throw cms::Exception("HeterogeneousHGCalHEFCellPositionsConditions") + << "select_pointer_u(heterogeneous): no item (typed " << item << ")."; + return cpuObject->detid; + } +} + +std::vector& HeterogeneousHGCalHEFCellPositionsConditions::select_pointer_u_( + cpos::HGCalPositionsMapping* cpuObject, const unsigned int& item) { + switch (item) { + case 4: + return cpuObject->detid; + default: + throw cms::Exception("HeterogeneousHGCalHEFCellPositionsConditions") + << "select_pointer_u(non-heterogeneous): no item (typed " << item << ")."; + return cpuObject->detid; + } +} + +hgcal_conditions::HeterogeneousHEFCellPositionsConditionsESProduct const* +HeterogeneousHGCalHEFCellPositionsConditions::getHeterogeneousConditionsESProductAsync(cudaStream_t stream) const { + // cms::cuda::ESProduct essentially holds an array of GPUData objects, + // one per device. If the data have already been transferred to the + // current device (or the transfer has been queued), the helper just + // returns a reference to that GPUData object. Otherwise, i.e. data are + // not yet on the current device, the helper calls the lambda to do the + // necessary memory allocations and to queue the transfers. + auto const& data = gpuData_.dataForCurrentDeviceAsync(stream, [this](GPUData& data, cudaStream_t stream) { + // Allocate the payload object on pinned host memory. + cudaCheck(cudaMallocHost(&data.host, sizeof(hgcal_conditions::HeterogeneousHEFCellPositionsConditionsESProduct))); + // Allocate the payload array(s) on device memory. + cudaCheck(cudaMalloc(&(data.host->posmap.x), this->chunk_)); + // Complete the host-side information on the payload + data.host->posmap.waferSize = this->posmap_.waferSize; + data.host->posmap.sensorSeparation = this->posmap_.sensorSeparation; + data.host->posmap.firstLayer = this->posmap_.firstLayer; + data.host->posmap.lastLayer = this->posmap_.lastLayer; + data.host->posmap.waferMax = this->posmap_.waferMax; + data.host->posmap.waferMin = this->posmap_.waferMin; + data.host->nelems_posmap = this->nelems_posmap_; + + //(set the pointers of the positions' mapping) + size_t sfloat = sizeof(float); + size_t sint32 = sizeof(int32_t); + for (unsigned int j = 0; j < this->sizes_.size() - 1; ++j) { + if (cpos::types[j] == cpos::HeterogeneousHGCalPositionsType::Float and + cpos::types[j + 1] == cpos::HeterogeneousHGCalPositionsType::Float) + select_pointer_f_(&(data.host->posmap), j + 1) = + select_pointer_f_(&(data.host->posmap), j) + (this->sizes_[j] / sfloat); + else if (cpos::types[j] == cpos::HeterogeneousHGCalPositionsType::Float and + cpos::types[j + 1] == cpos::HeterogeneousHGCalPositionsType::Int32_t) + select_pointer_i_(&(data.host->posmap), j + 1) = + reinterpret_cast(select_pointer_f_(&(data.host->posmap), j) + (this->sizes_[j] / sfloat)); + else if (cpos::types[j] == cpos::HeterogeneousHGCalPositionsType::Int32_t and + cpos::types[j + 1] == cpos::HeterogeneousHGCalPositionsType::Int32_t) + select_pointer_i_(&(data.host->posmap), j + 1) = + select_pointer_i_(&(data.host->posmap), j) + (this->sizes_[j] / sint32); + else if (cpos::types[j] == cpos::HeterogeneousHGCalPositionsType::Int32_t and + cpos::types[j + 1] == cpos::HeterogeneousHGCalPositionsType::Uint32_t) + select_pointer_u_(&(data.host->posmap), j + 1) = + reinterpret_cast(select_pointer_i_(&(data.host->posmap), j) + (this->sizes_[j] / sint32)); + } + + // Allocate the payload object on the device memory. + cudaCheck(cudaMalloc(&data.device, sizeof(hgcal_conditions::HeterogeneousHEFCellPositionsConditionsESProduct))); + + // Transfer the payload, first the array(s) ... + //Important: The transfer does *not* start at posmap.x because the positions are not known in the CPU side! + size_t non_position_memory_size_to_transfer = + this->chunk_ - this->number_position_arrays * this->nelems_posmap_ * + sfloat; //size in bytes occupied by the non-position information + cudaCheck(cudaMemcpyAsync(data.host->posmap.zLayer, + this->posmap_.zLayer, + non_position_memory_size_to_transfer, + cudaMemcpyHostToDevice, + stream)); + + // ... and then the payload object + cudaCheck(cudaMemcpyAsync(data.device, + data.host, + sizeof(hgcal_conditions::HeterogeneousHEFCellPositionsConditionsESProduct), + cudaMemcpyHostToDevice, + stream)); + + //Fill x and y positions in the GPU + KernelManagerHGCalCellPositions km(this->nelems_posmap_); + km.fill_positions(data.device); + }); //gpuData_.dataForCurrentDeviceAsync + + // Returns the payload object on the memory of the current device + return data.device; +} + +// Destructor frees all member pointers +HeterogeneousHGCalHEFCellPositionsConditions::GPUData::~GPUData() { + if (host != nullptr) { + cudaCheck(cudaFree(host->posmap.x)); + cudaCheck(cudaFreeHost(host)); + } + cudaCheck(cudaFree(device)); +} diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalHEFCellPositionsFiller.cc b/RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalHEFCellPositionsFiller.cc new file mode 100644 index 0000000000000..1980eb9d4a4f3 --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalHEFCellPositionsFiller.cc @@ -0,0 +1,98 @@ +#include "RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalHEFCellPositionsFiller.h" + +HeterogeneousHGCalHEFCellPositionsFiller::HeterogeneousHGCalHEFCellPositionsFiller(const edm::ParameterSet& ps) { + geometryToken_ = setWhatProduced(this).consumesFrom( + edm::ESInputTag{"", "HGCalHESiliconSensitive"}); + posmap_ = new hgcal_conditions::positions::HGCalPositionsMapping(); +} + +HeterogeneousHGCalHEFCellPositionsFiller::~HeterogeneousHGCalHEFCellPositionsFiller() { delete posmap_; } + +//the geometry is not required if the layer offset is hardcoded (potential speed-up) +void HeterogeneousHGCalHEFCellPositionsFiller::set_conditions_() { + //fill the CPU position structure from the geometry + posmap_->zLayer.clear(); + posmap_->nCellsLayer.clear(); + posmap_->nCellsWaferUChunk.clear(); + posmap_->nCellsHexagon.clear(); + posmap_->detid.clear(); + + int nlayers = ddd_->lastLayer(true) - ddd_->firstLayer() + 1; + int upper_estimate_wafer_number_1D = 2 * nlayers * (ddd_->waferMax() - ddd_->waferMin()); + int upper_estimate_wafer_number_2D = upper_estimate_wafer_number_1D * (ddd_->waferMax() - ddd_->waferMin()); + int upper_estimate_cell_number = upper_estimate_wafer_number_2D * 3 * 12 * 12; + posmap_->zLayer.resize(nlayers * 2); + posmap_->nCellsLayer.reserve(nlayers * 2); + posmap_->nCellsWaferUChunk.reserve(upper_estimate_wafer_number_1D); + posmap_->nCellsHexagon.reserve(upper_estimate_wafer_number_2D); + posmap_->detid.reserve(upper_estimate_cell_number); + //set position-related variables + posmap_->waferSize = static_cast(params_->waferSize_); + posmap_->sensorSeparation = static_cast(params_->sensorSeparation_); + posmap_->firstLayer = ddd_->firstLayer(); + assert(posmap_->firstLayer == 1); //otherwise the loop over the layers has to be changed + posmap_->lastLayer = ddd_->lastLayer(true); + posmap_->waferMin = ddd_->waferMin(); + posmap_->waferMax = ddd_->waferMax(); + + unsigned sumCellsLayer, sumCellsWaferUChunk; + + //store detids following a geometry ordering + for (int ilayer = 1; ilayer <= posmap_->lastLayer; ++ilayer) { + sumCellsLayer = 0; + posmap_->zLayer[ilayer - 1] = static_cast(ddd_->waferZ(ilayer, true)); //originally a double + posmap_->zLayer[ilayer - 1 + nlayers] = static_cast(ddd_->waferZ(ilayer, true)); //originally a double + + for (int iwaferU = posmap_->waferMin; iwaferU < posmap_->waferMax; ++iwaferU) { + sumCellsWaferUChunk = 0; + + for (int iwaferV = posmap_->waferMin; iwaferV < posmap_->waferMax; ++iwaferV) { + //0: fine; 1: coarseThin; 2: coarseThick (as defined in DataFormats/ForwardDetId/interface/HGCSiliconDetId.h) + int type_ = ddd_->waferType(ilayer, iwaferU, iwaferV); + + int nCellsHexSide = ddd_->numberCellsHexagon(ilayer, iwaferU, iwaferV, false); + int nCellsHexTotal = ddd_->numberCellsHexagon(ilayer, iwaferU, iwaferV, true); + sumCellsLayer += nCellsHexTotal; + sumCellsWaferUChunk += nCellsHexTotal; + posmap_->nCellsHexagon.push_back(nCellsHexTotal); + + //left side of wafer + for (int cellUmax = nCellsHexSide, icellV = 0; cellUmax < 2 * nCellsHexSide and icellV < nCellsHexSide; + ++cellUmax, ++icellV) { + for (int icellU = 0; icellU <= cellUmax; ++icellU) { + HGCSiliconDetId detid_(DetId::HGCalHSi, 1, type_, ilayer, iwaferU, iwaferV, icellU, icellV); + posmap_->detid.push_back(detid_.rawId()); + } + } + //right side of wafer + for (int cellUmin = 1, icellV = nCellsHexSide; cellUmin <= nCellsHexSide and icellV < 2 * nCellsHexSide; + ++cellUmin, ++icellV) { + for (int icellU = cellUmin; icellU < 2 * nCellsHexSide; ++icellU) { + HGCSiliconDetId detid_(DetId::HGCalHSi, 1, type_, ilayer, iwaferU, iwaferV, icellU, icellV); + posmap_->detid.push_back(detid_.rawId()); + } + } + } + posmap_->nCellsWaferUChunk.push_back(sumCellsWaferUChunk); + } + posmap_->nCellsLayer.push_back(sumCellsLayer); + } +} + +std::unique_ptr HeterogeneousHGCalHEFCellPositionsFiller::produce( + const HeterogeneousHGCalHEFCellPositionsConditionsRecord& iRecord) { + auto geom = iRecord.getTransientHandle(geometryToken_); + ddd_ = &(geom->topology().dddConstants()); + params_ = ddd_->getParameter(); + + set_conditions_(); + + std::unique_ptr up = + std::make_unique(posmap_); + return up; +} + +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Utilities/interface/typelookup.h" +#include "FWCore/Framework/interface/eventsetuprecord_registration_macro.h" +DEFINE_FWK_EVENTSETUP_MODULE(HeterogeneousHGCalHEFCellPositionsFiller); diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalHEFCellPositionsFiller.h b/RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalHEFCellPositionsFiller.h new file mode 100644 index 0000000000000..8a83430b03b1d --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalHEFCellPositionsFiller.h @@ -0,0 +1,54 @@ +#ifndef RecoLocalCalo_HGCalESProducers_HeterogeneousHGCalHEFCellPositionsFiller_h +#define RecoLocalCalo_HGCalESProducers_HeterogeneousHGCalHEFCellPositionsFiller_h + +#include +#include +#include +#include +#include + +#include "FWCore/Framework/interface/ESProducer.h" +#include "FWCore/Utilities/interface/EDGetToken.h" +#include "FWCore/Utilities/interface/EDPutToken.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/ESTransientHandle.h" +#include "FWCore/Framework/interface/ModuleFactory.h" +#include "FWCore/Utilities/interface/InputTag.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Utilities/interface/Exception.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" + +#include "Geometry/HGCalGeometry/interface/HGCalGeometry.h" +#include "Geometry/HGCalCommonData/interface/HGCalDDDConstants.h" +#include "Geometry/HGCalCommonData/interface/HGCalWaferIndex.h" + +#include "CondFormats/HGCalObjects/interface/HeterogeneousHGCalHEFCellPositionsConditions.h" +#include "CondFormats/DataRecord/interface/HeterogeneousHGCalHEFCellPositionsConditionsRecord.h" +#include "RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalCellPositions.h" + +class HeterogeneousHGCalHEFCellPositionsFiller : public edm::ESProducer { +public: + explicit HeterogeneousHGCalHEFCellPositionsFiller(const edm::ParameterSet&); + ~HeterogeneousHGCalHEFCellPositionsFiller() override; + std::unique_ptr produce( + const HeterogeneousHGCalHEFCellPositionsConditionsRecord&); + +private: + edm::ESGetToken geometryToken_; + + //cms::cuda::ContextState ctxState_; + + //conditions (geometry, topology, ...) + //void geometryCallback(const IdealGeometryRecord&); + void set_conditions_(); + + const hgcal_conditions::HeterogeneousHEFCellPositionsConditionsESProduct* d_conds = nullptr; + hgcal_conditions::positions::HGCalPositionsMapping* posmap_; + + const HGCalDDDConstants* ddd_ = nullptr; + const HGCalParameters* params_ = nullptr; +}; + +#endif //RecoLocalCalo_HGCalESProducers_HeterogeneousHGCalHEFCellPositionsFiller_h diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalHEFConditions.cc b/RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalHEFConditions.cc new file mode 100644 index 0000000000000..cc7cad636f947 --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalHEFConditions.cc @@ -0,0 +1,206 @@ +#include "RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalHEFConditions.h" + +HeterogeneousHGCalHEFConditionsWrapper::HeterogeneousHGCalHEFConditionsWrapper( + const HGCalParameters* cpuHGCalParameters) { + //HGCalParameters as defined in CMSSW + this->sizes_params_ = calculate_memory_bytes_params_(cpuHGCalParameters); + this->chunk_params_ = allocate_memory_params_(this->sizes_params_); + transfer_data_to_heterogeneous_pointers_params_(this->sizes_params_, cpuHGCalParameters); +} + +size_t HeterogeneousHGCalHEFConditionsWrapper::allocate_memory_params_(const std::vector& sz) { + size_t chunk_ = std::accumulate(sz.begin(), sz.end(), 0); //total memory required in bytes + cudaCheck(cudaMallocHost(&this->params_.cellFineX_, chunk_)); + return chunk_; +} + +void HeterogeneousHGCalHEFConditionsWrapper::transfer_data_to_heterogeneous_pointers_params_( + const std::vector& sz, const HGCalParameters* cpuParams) { + //store cumulative sum in bytes and convert it to sizes in units of C++ typesHEF, i.e., number if items to be transferred to GPU + std::vector cumsum_sizes(sz.size() + 1, 0); //starting with zero + std::partial_sum(sz.begin(), sz.end(), cumsum_sizes.begin() + 1); + for (unsigned int i = 1; i < cumsum_sizes.size(); ++i) //start at second element (the first is zero) + { + size_t typesHEFsize = 0; + if (cpar::typesHEF[i - 1] == cpar::HeterogeneousHGCalHEFParametersType::Double) + typesHEFsize = sizeof(double); + else if (cpar::typesHEF[i - 1] == cpar::HeterogeneousHGCalHEFParametersType::Int32_t) + typesHEFsize = sizeof(int32_t); + else + throw cms::Exception("HeterogeneousHGCalHEFConditionsWrapper") << "Wrong HeterogeneousHGCalParameters type"; + cumsum_sizes[i] /= typesHEFsize; + } + + for (unsigned int j = 0; j < sz.size(); ++j) { + //setting the pointers + if (j != 0) { + const unsigned int jm1 = j - 1; + const size_t shift = cumsum_sizes[j] - cumsum_sizes[jm1]; + if (cpar::typesHEF[jm1] == cpar::HeterogeneousHGCalHEFParametersType::Double and + cpar::typesHEF[j] == cpar::HeterogeneousHGCalHEFParametersType::Double) + select_pointer_d_(&this->params_, j) = select_pointer_d_(&this->params_, jm1) + shift; + else if (cpar::typesHEF[jm1] == cpar::HeterogeneousHGCalHEFParametersType::Double and + cpar::typesHEF[j] == cpar::HeterogeneousHGCalHEFParametersType::Int32_t) + select_pointer_i_(&this->params_, j) = + reinterpret_cast(select_pointer_d_(&this->params_, jm1) + shift); + } + + //copying the pointers' content + for (unsigned int i = cumsum_sizes[j]; i < cumsum_sizes[j + 1]; ++i) { + unsigned int index = i - cumsum_sizes[j]; + if (cpar::typesHEF[j] == cpar::HeterogeneousHGCalHEFParametersType::Double) { + select_pointer_d_(&this->params_, j)[index] = select_pointer_d_(cpuParams, j)[index]; + } else if (cpar::typesHEF[j] == cpar::HeterogeneousHGCalHEFParametersType::Int32_t) { + select_pointer_i_(&this->params_, j)[index] = select_pointer_i_(cpuParams, j)[index]; + } else + throw cms::Exception("HeterogeneousHGCalHEFConditionsWrapper") << "Wrong HeterogeneousHGCalParameters type"; + } + } +} + +std::vector HeterogeneousHGCalHEFConditionsWrapper::calculate_memory_bytes_params_( + const HGCalParameters* cpuParams) { + size_t npointers = hgcal_conditions::parameters::typesHEF.size(); + std::vector sizes(npointers); + for (unsigned int i = 0; i < npointers; ++i) { + if (cpar::typesHEF[i] == cpar::HeterogeneousHGCalHEFParametersType::Double) + sizes[i] = select_pointer_d_(cpuParams, i).size(); + else + sizes[i] = select_pointer_i_(cpuParams, i).size(); + } + + std::vector sizes_units(npointers); + for (unsigned int i = 0; i < npointers; ++i) { + if (cpar::typesHEF[i] == cpar::HeterogeneousHGCalHEFParametersType::Double) + sizes_units[i] = sizeof(double); + else if (cpar::typesHEF[i] == cpar::HeterogeneousHGCalHEFParametersType::Int32_t) + sizes_units[i] = sizeof(int32_t); + } + + //element by element multiplication + this->sizes_params_.resize(npointers); + std::transform( + sizes.begin(), sizes.end(), sizes_units.begin(), this->sizes_params_.begin(), std::multiplies()); + return this->sizes_params_; +} + +HeterogeneousHGCalHEFConditionsWrapper::~HeterogeneousHGCalHEFConditionsWrapper() { + cudaCheck(cudaFreeHost(this->params_.cellFineX_)); +} + +//I could use template specializations +//try to use std::variant in the future to avoid similar functions with different return values +double*& HeterogeneousHGCalHEFConditionsWrapper::select_pointer_d_(cpar::HeterogeneousHGCalHEFParameters* cpuObject, + const unsigned int& item) const { + switch (item) { + case 0: + return cpuObject->cellFineX_; + case 1: + return cpuObject->cellFineY_; + case 2: + return cpuObject->cellCoarseX_; + case 3: + return cpuObject->cellCoarseY_; + default: + edm::LogError("HeterogeneousHGCalHEFConditionsWrapper") << "select_pointer_d(heterogeneous): no item."; + return cpuObject->cellCoarseY_; + } +} + +std::vector HeterogeneousHGCalHEFConditionsWrapper::select_pointer_d_(const HGCalParameters* cpuObject, + const unsigned int& item) const { + switch (item) { + case 0: + return cpuObject->cellFineX_; + case 1: + return cpuObject->cellFineY_; + case 2: + return cpuObject->cellCoarseX_; + case 3: + return cpuObject->cellCoarseY_; + default: + edm::LogError("HeterogeneousHGCalHEFConditionsWrapper") << "select_pointer_d(non-heterogeneous): no item."; + return cpuObject->cellCoarseY_; + } +} + +int32_t*& HeterogeneousHGCalHEFConditionsWrapper::select_pointer_i_(cpar::HeterogeneousHGCalHEFParameters* cpuObject, + const unsigned int& item) const { + switch (item) { + case 4: + return cpuObject->waferTypeL_; + default: + edm::LogError("HeterogeneousHGCalHEFConditionsWrapper") << "select_pointer_i(heterogeneous): no item."; + return cpuObject->waferTypeL_; + } +} + +std::vector HeterogeneousHGCalHEFConditionsWrapper::select_pointer_i_(const HGCalParameters* cpuObject, + const unsigned int& item) const { + switch (item) { + case 4: + return cpuObject->waferTypeL_; + default: + edm::LogError("HeterogeneousHGCalHEFConditionsWrapper") << "select_pointer_i(non-heterogeneous): no item."; + return cpuObject->waferTypeL_; + } +} + +hgcal_conditions::HeterogeneousHEFConditionsESProduct const* +HeterogeneousHGCalHEFConditionsWrapper::getHeterogeneousConditionsESProductAsync(cudaStream_t stream) const { + // cms::cuda::ESProduct essentially holds an array of GPUData objects, + // one per device. If the data have already been transferred to the + // current device (or the transfer has been queued), the helper just + // returns a reference to that GPUData object. Otherwise, i.e. data are + // not yet on the current device, the helper calls the lambda to do the + // necessary memory allocations and to queue the transfers. + auto const& data = gpuData_.dataForCurrentDeviceAsync(stream, [this](GPUData& data, cudaStream_t stream) { + // Allocate the payload object on pinned host memory. + cudaCheck(cudaMallocHost(&data.host, sizeof(hgcal_conditions::HeterogeneousHEFConditionsESProduct))); + // Allocate the payload array(s) on device memory. + cudaCheck(cudaMalloc(&(data.host->params.cellFineX_), chunk_params_)); + + // Complete the host-side information on the payload + + //(set the pointers of the parameters) + size_t sdouble = sizeof(double); + for (unsigned int j = 0; j < this->sizes_params_.size() - 1; ++j) { + if (cpar::typesHEF[j] == cpar::HeterogeneousHGCalHEFParametersType::Double and + cpar::typesHEF[j + 1] == cpar::HeterogeneousHGCalHEFParametersType::Double) + select_pointer_d_(&(data.host->params), j + 1) = + select_pointer_d_(&(data.host->params), j) + (this->sizes_params_[j] / sdouble); + else if (cpar::typesHEF[j] == cpar::HeterogeneousHGCalHEFParametersType::Double and + cpar::typesHEF[j + 1] == cpar::HeterogeneousHGCalHEFParametersType::Int32_t) + select_pointer_i_(&(data.host->params), j + 1) = + reinterpret_cast(select_pointer_d_(&(data.host->params), j) + (this->sizes_params_[j] / sdouble)); + else + throw cms::Exception("HeterogeneousHGCalHEFConditionsWrapper") + << "compare this functions' logic with hgcal_conditions::parameters::typesHEF"; + } + + // Allocate the payload object on the device memory. + cudaCheck(cudaMalloc(&data.device, sizeof(hgcal_conditions::HeterogeneousHEFConditionsESProduct))); + // Transfer the payload, first the array(s) ... + cudaCheck(cudaMemcpyAsync( + data.host->params.cellFineX_, this->params_.cellFineX_, chunk_params_, cudaMemcpyHostToDevice, stream)); + + // ... and then the payload object + cudaCheck(cudaMemcpyAsync(data.device, + data.host, + sizeof(hgcal_conditions::HeterogeneousHEFConditionsESProduct), + cudaMemcpyHostToDevice, + stream)); + }); //gpuData_.dataForCurrentDeviceAsync + + // Returns the payload object on the memory of the current device + return data.device; +} + +// Destructor frees all member pointers +HeterogeneousHGCalHEFConditionsWrapper::GPUData::~GPUData() { + if (host != nullptr) { + cudaCheck(cudaFree(host->params.cellFineX_)); + cudaCheck(cudaFreeHost(host)); + } + cudaCheck(cudaFree(device)); +} diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalHEFConditions.h b/RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalHEFConditions.h new file mode 100644 index 0000000000000..b1bfdb7ee52a7 --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/plugins/HeterogeneousHGCalHEFConditions.h @@ -0,0 +1,68 @@ +#ifndef RecoLocalCalo_HGCRecProducers_HeterogeneousHGCalHEFConditions_h +#define RecoLocalCalo_HGCRecProducers_HeterogeneousHGCalHEFConditions_h + +#include //accumulate +#include + +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "HeterogeneousCore/CUDACore/interface/ESProduct.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" +#include "CUDADataFormats/HGCal/interface/HGCConditions.h" +#include "Geometry/HGCalCommonData/interface/HGCalDDDConstants.h" +#include "Geometry/HGCalCommonData/interface/HGCalParameters.h" +#include "RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalRecHit.h" + +namespace cpar = hgcal_conditions::parameters; + +// Declare the wrapper ESProduct. The corresponding ESProducer should +// produce objects of this type. +class HeterogeneousHGCalHEFConditionsWrapper { +public: + // Constructor takes the standard CPU ESProduct, and transforms the + // necessary data to array(s) in pinned host memory + HeterogeneousHGCalHEFConditionsWrapper(const HGCalParameters *); + + // Deallocates all pinned host memory + ~HeterogeneousHGCalHEFConditionsWrapper(); + + // Function to return the actual payload on the memory of the current device + hgcal_conditions::HeterogeneousHEFConditionsESProduct const *getHeterogeneousConditionsESProductAsync( + cudaStream_t stream) const; + +private: + // Holds the data in pinned CPU memory + // Contrary to its non-heterogeneous counterpart (constructor argument) it is *not* a pointer (so to avoid an extra allocation) + cpar::HeterogeneousHGCalHEFParameters params_; + + std::vector sizes_params_; + size_t chunk_params_; + + std::vector calculate_memory_bytes_params_(const HGCalParameters *); + size_t allocate_memory_params_(const std::vector &); + void transfer_data_to_heterogeneous_pointers_params_(const std::vector &, const HGCalParameters *); + + /*methods for managing SoA's pointers*/ + //double + double *&select_pointer_d_(cpar::HeterogeneousHGCalHEFParameters *, const unsigned int &) const; + std::vector select_pointer_d_(const HGCalParameters *, const unsigned int &) const; + //int32_t + int32_t *&select_pointer_i_(cpar::HeterogeneousHGCalHEFParameters *, const unsigned int &) const; + std::vector select_pointer_i_(const HGCalParameters *, const unsigned int &) const; + + // Helper struct to hold all information that has to be allocated and + // deallocated per device + struct GPUData { + // Destructor should free all member pointers + ~GPUData(); + // internal pointers are on device, struct itself is on CPU + hgcal_conditions::HeterogeneousHEFConditionsESProduct *host = nullptr; + // internal pounters and struct are on device + hgcal_conditions::HeterogeneousHEFConditionsESProduct *device = nullptr; + }; + + // Helper that takes care of complexity of transferring the data to + // multiple devices + cms::cuda::ESProduct gpuData_; +}; + +#endif //RecoLocalCalo_HGCRecProducers_HeterogeneousHGCalHEFConditions_h diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalCellPositions.cu b/RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalCellPositions.cu new file mode 100644 index 0000000000000..3aa8d8ae0d8af --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalCellPositions.cu @@ -0,0 +1,24 @@ +#include +#include +#include +#include "RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalCellPositions.h" +#include "RecoLocalCalo/HGCalRecProducers/plugins/HGCalCellPositionsKernelImpl.cuh" + +namespace { //kernel parameters + dim3 nb_celpos_; + constexpr dim3 nt_celpos_(256); +} // namespace + +KernelManagerHGCalCellPositions::KernelManagerHGCalCellPositions(const size_t& nelems) { + ::nb_celpos_ = (nelems + ::nt_celpos_.x - 1) / ::nt_celpos_.x; +} + +void KernelManagerHGCalCellPositions::fill_positions( + const hgcal_conditions::HeterogeneousHEFCellPositionsConditionsESProduct* d_conds) { + fill_positions_from_detids<<<::nb_celpos_, ::nt_celpos_>>>(d_conds); +} + +void KernelManagerHGCalCellPositions::test_cell_positions( + unsigned id, const hgcal_conditions::HeterogeneousHEFCellPositionsConditionsESProduct* d_conds) { + test<<<::nb_celpos_, ::nt_celpos_>>>(id, d_conds); +} diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalCellPositions.h b/RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalCellPositions.h new file mode 100644 index 0000000000000..dbc662700e145 --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalCellPositions.h @@ -0,0 +1,32 @@ +#ifndef RecoLocalCalo_HGCalESProducers_KernelManagerHGCalCellPositions_h +#define RecoLocalCalo_HGCalESProducers_KernelManagerHGCalCellPositions_h + +#include "FWCore/Utilities/interface/Exception.h" +#include "HeterogeneousCore/CUDAUtilities/interface/MessageLogger.h" +#include "DataFormats/DetId/interface/DetId.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCompat.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" +#include "RecoLocalCalo/HGCalRecProducers/plugins/HGCalCellPositionsKernelImpl.cuh" +#include "CUDADataFormats/HGCal/interface/HGCConditions.h" + +#include +#include //std::swap +#include +#include +#include + +/* +#ifdef __CUDA_ARCH__ +extern __constant__ uint32_t calo_rechit_masks[]; +#endif +*/ + +class KernelManagerHGCalCellPositions { +public: + KernelManagerHGCalCellPositions(const size_t&); + + void fill_positions(const hgcal_conditions::HeterogeneousHEFCellPositionsConditionsESProduct*); + void test_cell_positions(unsigned, const hgcal_conditions::HeterogeneousHEFCellPositionsConditionsESProduct*); +}; + +#endif //RecoLocalCalo_HGCalESProducers_KernelManagerHGCalCellPositions_h diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalRecHit.cu b/RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalRecHit.cu new file mode 100644 index 0000000000000..4daaa5c0247f3 --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalRecHit.cu @@ -0,0 +1,62 @@ +#include +#include +#include +#include "RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalRecHit.h" +#include "RecoLocalCalo/HGCalRecProducers/plugins/HGCalRecHitKernelImpl.cuh" + +namespace { //kernel parameters + dim3 nb_rechits_; + constexpr dim3 nt_rechits_(1024); +} // namespace + +KernelManagerHGCalRecHit::KernelManagerHGCalRecHit(const HGCUncalibRecHitSoA& h_uncalibSoA, + const HGCUncalibRecHitSoA& d_uncalibSoA, + const HGCRecHitSoA& d_calibSoA) + : h_uncalibSoA_(h_uncalibSoA), d_uncalibSoA_(d_uncalibSoA), d_calibSoA_(d_calibSoA) { + nhits_ = h_uncalibSoA_.nhits_; + pad_ = h_uncalibSoA_.pad_; + ::nb_rechits_ = (pad_ + ::nt_rechits_.x - 1) / ::nt_rechits_.x; + nbytes_device_ = d_uncalibSoA_.nbytes_ * pad_; +} + +KernelManagerHGCalRecHit::KernelManagerHGCalRecHit(const HGCRecHitSoA& h_calibSoA_, + const ConstHGCRecHitSoA& d_calibConstSoA) + : h_calibSoA_(h_calibSoA_), d_calibConstSoA_(d_calibConstSoA) { + nhits_ = h_calibSoA_.nhits_; + pad_ = h_calibSoA_.pad_; + ::nb_rechits_ = (pad_ + ::nt_rechits_.x - 1) / ::nt_rechits_.x; + nbytes_host_ = h_calibSoA_.nbytes_ * pad_; +} + +KernelManagerHGCalRecHit::~KernelManagerHGCalRecHit() {} + +void KernelManagerHGCalRecHit::transfer_soa_to_device_(const cudaStream_t& stream) { + cudaCheck(cudaMemcpyAsync( + d_uncalibSoA_.amplitude_, h_uncalibSoA_.amplitude_, nbytes_device_, cudaMemcpyHostToDevice, stream)); +} + +void KernelManagerHGCalRecHit::transfer_soa_to_host(const cudaStream_t& stream) { + cudaCheck( + cudaMemcpyAsync(h_calibSoA_.energy_, d_calibConstSoA_.energy_, nbytes_host_, cudaMemcpyDeviceToHost, stream)); +} + +void KernelManagerHGCalRecHit::run_kernels(const KernelConstantData* kcdata, + const cudaStream_t& stream) { + transfer_soa_to_device_(stream); + ee_to_rechit<<<::nb_rechits_, ::nt_rechits_, 0, stream>>>(d_calibSoA_, d_uncalibSoA_, kcdata->data_, nhits_); + cudaCheck(cudaGetLastError()); +} + +void KernelManagerHGCalRecHit::run_kernels(const KernelConstantData* kcdata, + const cudaStream_t& stream) { + transfer_soa_to_device_(stream); + hef_to_rechit<<<::nb_rechits_, ::nt_rechits_, 0, stream>>>(d_calibSoA_, d_uncalibSoA_, kcdata->data_, nhits_); + cudaCheck(cudaGetLastError()); +} + +void KernelManagerHGCalRecHit::run_kernels(const KernelConstantData* kcdata, + const cudaStream_t& stream) { + transfer_soa_to_device_(stream); + heb_to_rechit<<<::nb_rechits_, ::nt_rechits_, 0, stream>>>(d_calibSoA_, d_uncalibSoA_, kcdata->data_, nhits_); + cudaCheck(cudaGetLastError()); +} diff --git a/RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalRecHit.h b/RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalRecHit.h new file mode 100644 index 0000000000000..6e9f973df876f --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/plugins/KernelManagerHGCalRecHit.h @@ -0,0 +1,56 @@ +#ifndef RecoLocalCalo_HGCalRecProducers_KernelManagerHGCalRecHit_h +#define RecoLocalCalo_HGCalRecProducers_KernelManagerHGCalRecHit_h + +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" +#include "RecoLocalCalo/HGCalRecProducers/plugins/HGCalRecHitKernelImpl.cuh" +#include "CUDADataFormats/HGCal/interface/HGCConditions.h" +#include "CUDADataFormats/HGCal/interface/HGCRecHitSoA.h" +#include "CUDADataFormats/HGCal/interface/ConstHGCRecHitSoA.h" + +#include +#include //std::swap +#include +#include +#include + +#ifdef __CUDA_ARCH__ +extern __constant__ uint32_t calo_rechit_masks[]; +#endif + +template +class KernelConstantData { +public: + KernelConstantData(T& data, HGCConstantVectorData& vdata) : data_(data), vdata_(vdata) { + static_assert(std::is_same::value or + std::is_same::value or + std::is_same::value, + "The KernelConstantData class does not support this type."); + } + T data_; + HGCConstantVectorData vdata_; +}; + +class KernelManagerHGCalRecHit { +public: + KernelManagerHGCalRecHit(); + KernelManagerHGCalRecHit(const HGCUncalibRecHitSoA&, const HGCUncalibRecHitSoA&, const HGCRecHitSoA&); + KernelManagerHGCalRecHit(const HGCRecHitSoA&, const ConstHGCRecHitSoA&); + ~KernelManagerHGCalRecHit(); + void run_kernels(const KernelConstantData*, const cudaStream_t&); + void run_kernels(const KernelConstantData*, const cudaStream_t&); + void run_kernels(const KernelConstantData*, const cudaStream_t&); + void transfer_soa_to_host(const cudaStream_t&); + +private: + void transfer_soa_to_device_(const cudaStream_t&); + + uint32_t nhits_; + uint32_t pad_; + uint32_t nbytes_host_; + uint32_t nbytes_device_; + HGCUncalibRecHitSoA h_uncalibSoA_, d_uncalibSoA_; + HGCRecHitSoA h_calibSoA_, d_calibSoA_; + ConstHGCRecHitSoA d_calibConstSoA_; +}; + +#endif //RecoLocalCalo_HGCalRecProducers_KernelManagerHGCalRecHit_h diff --git a/RecoLocalCalo/HGCalRecProducers/python/HGCalRecHit_cfi.py b/RecoLocalCalo/HGCalRecProducers/python/HGCalRecHit_cfi.py index dee4d1329a02c..7975ec9b9177c 100644 --- a/RecoLocalCalo/HGCalRecProducers/python/HGCalRecHit_cfi.py +++ b/RecoLocalCalo/HGCalRecProducers/python/HGCalRecHit_cfi.py @@ -104,7 +104,7 @@ #With the new regional em factors there are 7 different factors used. #Six of them are for silicon and one for scint. For silicon it is in the following order # CE_E_120um, CE_E_200um, CE_E_300um, CE_H_120um, CE_H_200um, CE_H_300um - thicknessCorrection = cms.vdouble(1.132,1.092,1.084, 1.0, 1.0, 1.0), # 100, 200, 300 um + thicknessCorrection = cms.vdouble(1.132,1.092,1.084,1.0,1.0,1.0), deltasi_index_regemfac = cms.int32(3), #One factor for scint sciThicknessCorrection = cms.double(1.0), diff --git a/RecoLocalCalo/HGCalRecProducers/python/HeterogeneousEERecHitFromSoA_cfi.py b/RecoLocalCalo/HGCalRecProducers/python/HeterogeneousEERecHitFromSoA_cfi.py new file mode 100644 index 0000000000000..bce190b4b45c1 --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/python/HeterogeneousEERecHitFromSoA_cfi.py @@ -0,0 +1,4 @@ +import FWCore.ParameterSet.Config as cms + +EERecHitFromSoAProd = cms.EDProducer('EERecHitFromSoA', + EERecHitSoATok = cms.InputTag('EERecHitGPUtoSoAProd')) diff --git a/RecoLocalCalo/HGCalRecProducers/python/HeterogeneousEERecHitGPU_cfi.py b/RecoLocalCalo/HGCalRecProducers/python/HeterogeneousEERecHitGPU_cfi.py new file mode 100644 index 0000000000000..9b72006d5df73 --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/python/HeterogeneousEERecHitGPU_cfi.py @@ -0,0 +1,16 @@ +import FWCore.ParameterSet.Config as cms +from RecoLocalCalo.HGCalRecProducers.HGCalRecHit_cfi import HGCalRecHit + +EERecHitGPUProd = cms.EDProducer('EERecHitGPU', + HGCEEUncalibRecHitsTok = cms.InputTag('HGCalUncalibRecHit', 'HGCEEUncalibRecHits'), + HGCEE_keV2DIGI = HGCalRecHit.__dict__['HGCEE_keV2DIGI'], + minValSiPar = HGCalRecHit.__dict__['minValSiPar'], + maxValSiPar = HGCalRecHit.__dict__['maxValSiPar'], + constSiPar = HGCalRecHit.__dict__['constSiPar'], + noiseSiPar = HGCalRecHit.__dict__['noiseSiPar'], + HGCEE_fCPerMIP = HGCalRecHit.__dict__['HGCEE_fCPerMIP'], + HGCEE_isSiFE = HGCalRecHit.__dict__['HGCEE_isSiFE'], + HGCEE_noise_fC = HGCalRecHit.__dict__['HGCEE_noise_fC'], + HGCEE_cce = HGCalRecHit.__dict__['HGCEE_cce'], + rcorr = cms.vdouble( HGCalRecHit.__dict__['thicknessCorrection'][0:3] ), + weights = HGCalRecHit.__dict__['layerWeights'] ) diff --git a/RecoLocalCalo/HGCalRecProducers/python/HeterogeneousEERecHitGPUtoSoA_cfi.py b/RecoLocalCalo/HGCalRecProducers/python/HeterogeneousEERecHitGPUtoSoA_cfi.py new file mode 100644 index 0000000000000..58e80e9d1ff3b --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/python/HeterogeneousEERecHitGPUtoSoA_cfi.py @@ -0,0 +1,4 @@ +import FWCore.ParameterSet.Config as cms + +EERecHitGPUtoSoAProd = cms.EDProducer('EERecHitGPUtoSoA', + EERecHitGPUTok = cms.InputTag('EERecHitGPUProd')) diff --git a/RecoLocalCalo/HGCalRecProducers/python/HeterogeneousHEBRecHitFromSoA_cfi.py b/RecoLocalCalo/HGCalRecProducers/python/HeterogeneousHEBRecHitFromSoA_cfi.py new file mode 100644 index 0000000000000..2f9abd6b56356 --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/python/HeterogeneousHEBRecHitFromSoA_cfi.py @@ -0,0 +1,4 @@ +import FWCore.ParameterSet.Config as cms + +HEBRecHitFromSoAProd = cms.EDProducer('HEBRecHitFromSoA', + HEBRecHitSoATok = cms.InputTag('HEBRecHitGPUtoSoAProd')) diff --git a/RecoLocalCalo/HGCalRecProducers/python/HeterogeneousHEBRecHitGPU_cfi.py b/RecoLocalCalo/HGCalRecProducers/python/HeterogeneousHEBRecHitGPU_cfi.py new file mode 100644 index 0000000000000..1018cd4fb8d7f --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/python/HeterogeneousHEBRecHitGPU_cfi.py @@ -0,0 +1,8 @@ +import FWCore.ParameterSet.Config as cms +from RecoLocalCalo.HGCalRecProducers.HGCalRecHit_cfi import HGCalRecHit + +HEBRecHitGPUProd = cms.EDProducer('HEBRecHitGPU', + HGCHEBUncalibRecHitsTok = cms.InputTag('HGCalUncalibRecHit', 'HGCHEBUncalibRecHits'), + HGCHEB_keV2DIGI = HGCalRecHit.__dict__['HGCHEB_keV2DIGI'], + HGCHEB_noise_MIP = HGCalRecHit.__dict__['HGCHEB_noise_MIP'], + weights = HGCalRecHit.__dict__['layerWeights'] ) diff --git a/RecoLocalCalo/HGCalRecProducers/python/HeterogeneousHEBRecHitGPUtoSoA_cfi.py b/RecoLocalCalo/HGCalRecProducers/python/HeterogeneousHEBRecHitGPUtoSoA_cfi.py new file mode 100644 index 0000000000000..331dc380a0542 --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/python/HeterogeneousHEBRecHitGPUtoSoA_cfi.py @@ -0,0 +1,4 @@ +import FWCore.ParameterSet.Config as cms + +HEBRecHitGPUtoSoAProd = cms.EDProducer('HEBRecHitGPUtoSoA', + HEBRecHitGPUTok = cms.InputTag('HEBRecHitGPUProd')) diff --git a/RecoLocalCalo/HGCalRecProducers/python/HeterogeneousHEFRecHitFromSoA_cfi.py b/RecoLocalCalo/HGCalRecProducers/python/HeterogeneousHEFRecHitFromSoA_cfi.py new file mode 100644 index 0000000000000..09f2b232e521b --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/python/HeterogeneousHEFRecHitFromSoA_cfi.py @@ -0,0 +1,4 @@ +import FWCore.ParameterSet.Config as cms + +HEFRecHitFromSoAProd = cms.EDProducer('HEFRecHitFromSoA', + HEFRecHitSoATok = cms.InputTag('HEFRecHitGPUtoSoAProd')) diff --git a/RecoLocalCalo/HGCalRecProducers/python/HeterogeneousHEFRecHitGPU_cfi.py b/RecoLocalCalo/HGCalRecProducers/python/HeterogeneousHEFRecHitGPU_cfi.py new file mode 100644 index 0000000000000..8cbf2505e6aa4 --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/python/HeterogeneousHEFRecHitGPU_cfi.py @@ -0,0 +1,16 @@ +import FWCore.ParameterSet.Config as cms +from RecoLocalCalo.HGCalRecProducers.HGCalRecHit_cfi import HGCalRecHit + +HEFRecHitGPUProd = cms.EDProducer('HEFRecHitGPU', + HGCHEFUncalibRecHitsTok = cms.InputTag('HGCalUncalibRecHit','HGCHEFUncalibRecHits'), + HGCHEF_keV2DIGI = HGCalRecHit.__dict__['HGCHEF_keV2DIGI'], + minValSiPar = HGCalRecHit.__dict__['minValSiPar'], + maxValSiPar = HGCalRecHit.__dict__['maxValSiPar'], + constSiPar = HGCalRecHit.__dict__['constSiPar'], + noiseSiPar = HGCalRecHit.__dict__['noiseSiPar'], + HGCHEF_fCPerMIP = HGCalRecHit.__dict__['HGCHEF_fCPerMIP'], + HGCHEF_isSiFE = HGCalRecHit.__dict__['HGCHEF_isSiFE'], + HGCHEF_noise_fC = HGCalRecHit.__dict__['HGCHEF_noise_fC'], + HGCHEF_cce = HGCalRecHit.__dict__['HGCHEF_cce'], + rcorr = cms.vdouble( HGCalRecHit.__dict__['thicknessCorrection'][3:6] ), + weights = HGCalRecHit.__dict__['layerWeights'] ) diff --git a/RecoLocalCalo/HGCalRecProducers/python/HeterogeneousHEFRecHitGPUtoSoA_cfi.py b/RecoLocalCalo/HGCalRecProducers/python/HeterogeneousHEFRecHitGPUtoSoA_cfi.py new file mode 100644 index 0000000000000..86d5ea6fb65fe --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/python/HeterogeneousHEFRecHitGPUtoSoA_cfi.py @@ -0,0 +1,4 @@ +import FWCore.ParameterSet.Config as cms + +HEFRecHitGPUtoSoAProd = cms.EDProducer('HEFRecHitGPUtoSoA', + HEFRecHitGPUTok = cms.InputTag('HEFRecHitGPUProd')) diff --git a/RecoLocalCalo/HGCalRecProducers/src/ComputeClusterTime.cc b/RecoLocalCalo/HGCalRecProducers/src/ComputeClusterTime.cc index 2643a22571725..1c36039e482d7 100644 --- a/RecoLocalCalo/HGCalRecProducers/src/ComputeClusterTime.cc +++ b/RecoLocalCalo/HGCalRecProducers/src/ComputeClusterTime.cc @@ -47,6 +47,8 @@ float ComputeClusterTime::getTimeError(std::string type, float xVal) { if (type == "recHit") { //xVal is S/N //time is in ns units + //std::cout << type << ", " << xVal << ", " << xMax_ << ", " < xMin_ << ", " << timeResolution(xMin_) << ", " << timeResolution(xVal) << std::endl; + if (xVal < xMin_) return timeResolution(xMin_); else if (xVal > xMax_) diff --git a/RecoLocalCalo/HGCalRecProducers/test/HeterogeneousHGCalRecHit_cfg.py b/RecoLocalCalo/HGCalRecProducers/test/HeterogeneousHGCalRecHit_cfg.py new file mode 100644 index 0000000000000..249ee0d700909 --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/test/HeterogeneousHGCalRecHit_cfg.py @@ -0,0 +1,97 @@ +import FWCore.ParameterSet.Config as cms +import os, glob + +def getHeterogeneousRecHitsSource(pu): + indir = '/eos/user/b/bfontana/Samples/' #indir = '/home/bfontana/' + filename_suff = 'step3_ttbar_PU' + str(pu) #filename_suff = 'hadd_out_PU' + str(pu) + fNames = [ 'file:' + x for x in glob.glob(os.path.join(indir, filename_suff + '*.root')) ] + print(indir, filename_suff, pu, fNames) + for _ in range(4): + fNames.extend(fNames) + if len(fNames)==0: + print('Used globbing: ', glob.glob(os.path.join(indir, filename_suff + '*.root'))) + raise ValueError('No input files!') + + keep = 'keep *' + drop1 = 'drop CSCDetIdCSCALCTPreTriggerDigiMuonDigiCollection_simCscTriggerPrimitiveDigis__HLT' + drop2 = 'drop HGCRecHitsSorted_HGCalRecHit_HGC*E*RecHits_*' + return cms.Source("PoolSource", + fileNames = cms.untracked.vstring(fNames), + inputCommands = cms.untracked.vstring(keep, drop1, drop2), + duplicateCheckMode = cms.untracked.string("noDuplicateCheck")) + +enableGPU = True +from Configuration.ProcessModifiers.gpu_cff import gpu + +from RecoLocalCalo.HGCalRecProducers.HGCalRecHit_cfi import HGCalRecHit +from SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi import HGCAL_noise_fC, HGCAL_chargeCollectionEfficiencies + +#arguments parsing +from FWCore.ParameterSet.VarParsing import VarParsing +F = VarParsing('analysis') +F.register('PU', + -1, + F.multiplicity.singleton, + F.varType.int, + "Pileup to consider.") +F.parseArguments() + +process = cms.Process("TESTgpu", gpu) if enableGPU else cms.Process("TESTnongpu") +process.load('FWCore.MessageService.MessageLogger_cfi') +process.load('Configuration.StandardSequences.Services_cff') +process.load('SimGeneral.HepPDTESSource.pythiapdt_cfi') +process.load('Configuration.StandardSequences.MagneticField_cff') +#process.load('Configuration.EventContent.EventContent_cff') +process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') +process.load('Configuration.Geometry.GeometryExtended2026D49Reco_cff') +process.load('HeterogeneousCore.CUDAServices.CUDAService_cfi') +process.load('RecoLocalCalo.HGCalRecProducers.HGCalRecHit_cfi') +process.load('SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi') + +process.TFileService = cms.Service("TFileService", + fileName = cms.string("histo.root"), + closeFileFast = cms.untracked.bool(True) + ) + + +process.source = getHeterogeneousRecHitsSource(F.PU) +process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(20) ) +process.options = cms.untracked.PSet( + wantSummary = cms.untracked.bool( False )) #add option for edmStreams + +process.load('RecoLocalCalo.HGCalRecProducers.HeterogeneousEERecHitGPU_cfi') +process.load('RecoLocalCalo.HGCalRecProducers.HeterogeneousEERecHitGPUtoSoA_cfi') +process.load('RecoLocalCalo.HGCalRecProducers.HeterogeneousEERecHitFromSoA_cfi') + +process.load('RecoLocalCalo.HGCalRecProducers.HeterogeneousHEFRecHitGPU_cfi') +process.load('RecoLocalCalo.HGCalRecProducers.HeterogeneousHEFRecHitGPUtoSoA_cfi') +process.load('RecoLocalCalo.HGCalRecProducers.HeterogeneousHEFRecHitFromSoA_cfi') + +process.load('RecoLocalCalo.HGCalRecProducers.HeterogeneousHEBRecHitGPU_cfi') +process.load('RecoLocalCalo.HGCalRecProducers.HeterogeneousHEBRecHitGPUtoSoA_cfi') +process.load('RecoLocalCalo.HGCalRecProducers.HeterogeneousHEBRecHitFromSoA_cfi') + + +#process.HeterogeneousHGCalHEFCellPositionsFiller = cms.ESProducer("HeterogeneousHGCalHEFCellPositionsFiller") + + +#process.HGCalRecHits = HGCalRecHit.clone() + +#process.task = cms.Task( process.HeterogeneousHGCalHEFCellPositionsFiller, process.HeterogeneousHGCalHEFRecHits ) +#process.task = cms.Task( process.HGCalRecHits, process.HeterogeneousHGCalHEFRecHits ) + +process.ee_task = cms.Task( process.EERecHitGPUProd, process.EERecHitGPUtoSoAProd, process.EERecHitFromSoAProd ) +process.hef_task = cms.Task( process.HEFRecHitGPUProd, process.HEFRecHitGPUtoSoAProd, process.HEFRecHitFromSoAProd ) +process.heb_task = cms.Task( process.HEBRecHitGPUProd, process.HEBRecHitGPUtoSoAProd, process.HEBRecHitFromSoAProd ) +process.recHits_task = cms.Task( process.ee_task, process.hef_task, process.heb_task ) +process.path = cms.Path( process.recHits_task ) + +outkeeps = ['keep *_EERecHitFromSoAProd_*_*', + 'keep *_HEFRecHitFromSoAProd_*_*', + 'keep *_HEBRecHitFromSoAProd_*_*'] + +process.out = cms.OutputModule( "PoolOutputModule", + fileName = cms.untracked.string( '/eos/user/b/bfontana/GPUs/GPUs_' + str(F.PU) + '.root'), + outputCommands = cms.untracked.vstring(outkeeps[0], outkeeps[1], outkeeps[2]) +) +process.outpath = cms.EndPath(process.out) diff --git a/RecoLocalCalo/HGCalRecProducers/test/HeterogeneousRecHitsTiming_cfg.py b/RecoLocalCalo/HGCalRecProducers/test/HeterogeneousRecHitsTiming_cfg.py new file mode 100644 index 0000000000000..476006f1a20bd --- /dev/null +++ b/RecoLocalCalo/HGCalRecProducers/test/HeterogeneousRecHitsTiming_cfg.py @@ -0,0 +1,110 @@ +import os, sys, glob +import FWCore.ParameterSet.Config as cms +from Configuration.StandardSequences.Eras import eras +from Configuration.ProcessModifiers.gpu_cff import gpu +from RecoLocalCalo.HGCalRecProducers.HGCalRecHit_cfi import HGCalRecHit + +PU=0 +withGPU=0 + +#package loading +process = cms.Process("gpuTiming", gpu) if withGPU else cms.Process("cpuTiming") +process.load('FWCore.MessageService.MessageLogger_cfi') +process.load('Configuration.StandardSequences.Services_cff') +process.load('SimGeneral.HepPDTESSource.pythiapdt_cfi') +process.load('Configuration.StandardSequences.MagneticField_cff') +process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') +process.load('Configuration.Geometry.GeometryExtended2026D49Reco_cff') +process.load('HeterogeneousCore.CUDAServices.CUDAService_cfi') +process.load('RecoLocalCalo.HGCalRecProducers.HGCalRecHit_cfi') +process.load('SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi') +process.load( "HLTrigger.Timer.FastTimerService_cfi" ) + +from Configuration.AlCa.GlobalTag import GlobalTag +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase2_realistic', '') + +indir = '/home/bfontana/' #'/eos/user/b/bfontana/Samples/' +filename_suff = 'hadd_out_PU' + str(PU) + '_uncompressed' #'step3_ttbar_PU' + str(PU) +fNames = [ 'file:' + x for x in glob.glob(os.path.join(indir, filename_suff + '*.root')) ] +if len(fNames)==0: + print('Used globbing: ', glob.glob(os.path.join(indir, filename_suff + '*.root'))) + raise ValueError('No input files!') +print('Input: ', fNames) +keep = 'keep *' +process.source = cms.Source("PoolSource", + fileNames = cms.untracked.vstring(fNames), + inputCommands = cms.untracked.vstring(keep), + duplicateCheckMode = cms.untracked.string("noDuplicateCheck") ) + +process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(-1) ) +wantSummaryFlag = True +process.options = cms.untracked.PSet( + wantSummary = cms.untracked.bool( wantSummaryFlag )) #add option for edmStreams + +process.load('RecoLocalCalo.HGCalRecProducers.HeterogeneousEERecHitGPU_cfi') +process.load('RecoLocalCalo.HGCalRecProducers.HeterogeneousEERecHitGPUtoSoA_cfi') +process.load('RecoLocalCalo.HGCalRecProducers.HeterogeneousEERecHitFromSoA_cfi') + +process.load('RecoLocalCalo.HGCalRecProducers.HeterogeneousHEFRecHitGPU_cfi') +process.load('RecoLocalCalo.HGCalRecProducers.HeterogeneousHEFRecHitGPUtoSoA_cfi') +process.load('RecoLocalCalo.HGCalRecProducers.HeterogeneousHEFRecHitFromSoA_cfi') + +process.load('RecoLocalCalo.HGCalRecProducers.HeterogeneousHEBRecHitGPU_cfi') +process.load('RecoLocalCalo.HGCalRecProducers.HeterogeneousHEBRecHitGPUtoSoA_cfi') +process.load('RecoLocalCalo.HGCalRecProducers.HeterogeneousHEBRecHitFromSoA_cfi') + +process.ThroughputService = cms.Service( "ThroughputService", + eventRange = cms.untracked.uint32( 300 ), + eventResolution = cms.untracked.uint32( 1 ), + printEventSummary = cms.untracked.bool( wantSummaryFlag ), + enableDQM = cms.untracked.bool( False ) + #valid only for enableDQM=True + #dqmPath = cms.untracked.string( "HLT/Throughput" ), + #timeRange = cms.untracked.double( 60000.0 ), + #dqmPathByProcesses = cms.untracked.bool( False ), + #timeResolution = cms.untracked.double( 5.828 ) +) + +process.FastTimerService.enableDQM = False +process.FastTimerService.writeJSONSummary = True +process.FastTimerService.jsonFileName = 'resources.json' +process.MessageLogger.categories.append('ThroughputService') + +if withGPU: + process.ee_t = cms.Task( process.EERecHitGPUProd, process.EERecHitGPUtoSoAProd, process.EERecHitFromSoAProd ) + process.hef_t = cms.Task( process.HEFRecHitGPUProd, process.HEFRecHitGPUtoSoAProd, process.HEFRecHitFromSoAProd ) + process.heb_t = cms.Task( process.HEBRecHitGPUProd, process.HEBRecHitGPUtoSoAProd, process.HEBRecHitFromSoAProd ) + process.recHitsTask = cms.Task( process.ee_t, process.hef_t, process.heb_t ) + outkeeps = ['keep *_EERecHitFromSoAProd_*_*', + 'keep *_HEFRecHitFromSoAProd_*_*', + 'keep *_HEBRecHitFromSoAProd_*_*'] +else: + process.recHitsClone = HGCalRecHit.clone() + process.recHitsTask = cms.Task( process.recHitsClone ) #CPU version + outkeeps = ['keep *_*_' + f + '*_*' for f in ['HGCEERecHits', 'HGCHEFRecHits', 'HGCHEBRecHits'] ] + +process.path = cms.Path( process.recHitsTask ) + +""" +process.consumer = cms.EDAnalyzer("GenericConsumer", + eventProducts = cms.untracked.vstring('EERecHitGPUProd', + 'HEFRecHitGPUProd', + 'HEBRecHitGPUProd') ) +""" +""" +process.consumer = cms.EDAnalyzer('GenericConsumer', + eventProducts = cms.untracked.vstring('recHitsClone') ) + #eventProducts = cms.untracked.vstring('HGCalUncalibRecHit') ) #uncalib only (to assess reading speed) +""" +""" +process.consume_step = cms.EndPath(process.consumer) +""" + +process.out = cms.OutputModule( "PoolOutputModule", + fileName = cms.untracked.string( '/home/bfontana/out_Timing_PU' + str(PU) + '_' +str(withGPU)+ '.root'), + outputCommands = cms.untracked.vstring(outkeeps[0], outkeeps[1], outkeeps[2]) +) +process.outpath = cms.EndPath(process.out) + + +#process.schedule.append(process.consume_step) #in case one has multiple Paths or EndPaths to run diff --git a/RecoLocalCalo/HcalRecProducers/python/hfQIE10Reco_cfi.py b/RecoLocalCalo/HcalRecProducers/python/hfQIE10Reco_cfi.py index fdd23952d79e9..3d379ab9722aa 100644 --- a/RecoLocalCalo/HcalRecProducers/python/hfQIE10Reco_cfi.py +++ b/RecoLocalCalo/HcalRecProducers/python/hfQIE10Reco_cfi.py @@ -1,15 +1,11 @@ import FWCore.ParameterSet.Config as cms +import RecoLocalCalo.HcalRecProducers.hfsimplereco_cfi as _mod -hfQIE10Reco = cms.EDProducer("HcalSimpleReconstructor", - correctionPhaseNS = cms.double(0.0), - digiLabel = cms.InputTag("simHcalUnsuppressedDigis","HFQIE10DigiCollection"), - Subdetector = cms.string('HFQIE10'), - correctForPhaseContainment = cms.bool(False), - correctForTimeslew = cms.bool(False), - dropZSmarkedPassed = cms.bool(True), - firstSample = cms.int32(2), - samplesToAdd = cms.int32(1), - tsFromDB = cms.bool(True) +hfQIE10Reco = _mod.hfsimplereco.clone( + digiLabel = "simHcalUnsuppressedDigis:HFQIE10DigiCollection", + Subdetector = 'HFQIE10', + firstSample = 2, + samplesToAdd = 1 ) diff --git a/RecoLocalFastTime/FTLClusterizer/plugins/MTDClusterProducer.cc b/RecoLocalFastTime/FTLClusterizer/plugins/MTDClusterProducer.cc index dd6afb169d759..a812971066bbe 100644 --- a/RecoLocalFastTime/FTLClusterizer/plugins/MTDClusterProducer.cc +++ b/RecoLocalFastTime/FTLClusterizer/plugins/MTDClusterProducer.cc @@ -62,6 +62,8 @@ class MTDClusterProducer : public edm::stream::EDProducer<> { const MTDGeometry* geom_; const MTDTopology* topo_; + edm::ESGetToken mtdgeoToken_; + edm::ESGetToken mtdtopoToken_; }; //--------------------------------------------------------------------------- @@ -79,6 +81,9 @@ MTDClusterProducer::MTDClusterProducer(edm::ParameterSet const& conf) produces(ftlbInstance_); produces(ftleInstance_); + mtdgeoToken_ = esConsumes(); + mtdtopoToken_ = esConsumes(); + //--- Make the algorithm(s) according to what the user specified //--- in the ParameterSet. if (clusterMode_ == "MTDThresholdClusterizer") { @@ -114,12 +119,10 @@ void MTDClusterProducer::produce(edm::Event& e, const edm::EventSetup& es) { e.getByToken(etlHits_, inputEndcap); // Step A.2: get event setup - edm::ESHandle geom; - es.get().get(geom); + auto geom = es.getTransientHandle(mtdgeoToken_); geom_ = geom.product(); - edm::ESHandle mtdTopo; - es.get().get(mtdTopo); + auto mtdTopo = es.getTransientHandle(mtdtopoToken_); topo_ = mtdTopo.product(); // Step B: create the final output collection diff --git a/RecoLocalFastTime/FTLCommonAlgos/BuildFile.xml b/RecoLocalFastTime/FTLCommonAlgos/BuildFile.xml index d5c771ac03afa..65f7935c52763 100644 --- a/RecoLocalFastTime/FTLCommonAlgos/BuildFile.xml +++ b/RecoLocalFastTime/FTLCommonAlgos/BuildFile.xml @@ -4,6 +4,7 @@ + diff --git a/RecoLocalFastTime/FTLCommonAlgos/interface/RecHitTools.h b/RecoLocalFastTime/FTLCommonAlgos/interface/RecHitTools.h deleted file mode 100644 index 52a3c29aae99f..0000000000000 --- a/RecoLocalFastTime/FTLCommonAlgos/interface/RecHitTools.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef __RecoLocalFastTime_FTLCommonAlgos_RecHitTools_h__ -#define __RecoLocalFastTime_FTLCommonAlgos_RecHitTools_h__ - -#include -#include -#include "Geometry/HGCalGeometry/interface/FastTimeGeometry.h" - -namespace edm { - class Event; - class EventSetup; -} // namespace edm - -namespace ftl { - class RecHitTools { - public: - RecHitTools() : geom_(nullptr), ddd_(nullptr) {} - ~RecHitTools() {} - - enum HitType { UNKNOWN = 0, LYSO = 1, Silicon = 2 }; - - void getEvent(const edm::Event&); - void getEventSetup(const edm::EventSetup&); - - GlobalPoint getPosition(const DetId& id) const; - FlatTrd::CornersVec getCorners(const DetId& id) const; - - HitType getHitType(const DetId& id) const; - - private: - const FastTimeGeometry* geom_; - const FastTimeDDDConstants* ddd_; - }; -} // namespace ftl - -#endif diff --git a/RecoLocalFastTime/FTLCommonAlgos/plugins/BTLUncalibRecHitAlgo.cc b/RecoLocalFastTime/FTLCommonAlgos/plugins/BTLUncalibRecHitAlgo.cc index 639f2adc25cb2..dbf10474d9e4d 100644 --- a/RecoLocalFastTime/FTLCommonAlgos/plugins/BTLUncalibRecHitAlgo.cc +++ b/RecoLocalFastTime/FTLCommonAlgos/plugins/BTLUncalibRecHitAlgo.cc @@ -2,6 +2,8 @@ #include "RecoLocalFastTime/FTLClusterizer/interface/BTLRecHitsErrorEstimatorIM.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "CommonTools/Utils/interface/FormulaEvaluator.h" + class BTLUncalibRecHitAlgo : public BTLUncalibratedRecHitAlgoBase { public: /// Constructor @@ -11,7 +13,7 @@ class BTLUncalibRecHitAlgo : public BTLUncalibratedRecHitAlgoBase { adcSaturation_(conf.getParameter("adcSaturation")), adcLSB_(adcSaturation_ / (1 << adcNBits_)), toaLSBToNS_(conf.getParameter("toaLSB_ns")), - timeError_(conf.getParameter("timeResolutionInNs")), + timeError_(conf.getParameter("timeResolutionInNs")), timeCorr_p0_(conf.getParameter("timeCorr_p0")), timeCorr_p1_(conf.getParameter("timeCorr_p1")), timeCorr_p2_(conf.getParameter("timeCorr_p2")), @@ -32,7 +34,7 @@ class BTLUncalibRecHitAlgo : public BTLUncalibratedRecHitAlgoBase { const double adcSaturation_; const double adcLSB_; const double toaLSBToNS_; - const double timeError_; + const reco::FormulaEvaluator timeError_; const double timeCorr_p0_; const double timeCorr_p1_; const double timeCorr_p2_; @@ -54,10 +56,14 @@ FTLUncalibratedRecHit BTLUncalibRecHitAlgo::makeRecHit(const BTLDataFrame& dataF const auto& sampleLeft = dataFrame.sample(0); const auto& sampleRight = dataFrame.sample(1); + double nHits = 0.; + if (sampleLeft.data() > 0) { amplitude.first = float(sampleLeft.data()) * adcLSB_; time.first = float(sampleLeft.toa()) * toaLSBToNS_; + nHits += 1.; + // Correct the time of the left SiPM for the time-walk time.first -= timeCorr_p0_ * pow(amplitude.first, timeCorr_p1_) + timeCorr_p2_; flag |= 0x1; @@ -68,11 +74,20 @@ FTLUncalibratedRecHit BTLUncalibRecHitAlgo::makeRecHit(const BTLDataFrame& dataF amplitude.second = sampleRight.data() * adcLSB_; time.second = sampleRight.toa() * toaLSBToNS_; + nHits += 1.; + // Correct the time of the right SiPM for the time-walk time.second -= timeCorr_p0_ * pow(amplitude.second, timeCorr_p1_) + timeCorr_p2_; flag |= (0x1 << 1); } + // --- Calculate the error on the hit time using the provided parameterization + + const std::array amplitudeV = {{(amplitude.first + amplitude.second) / nHits}}; + const std::array emptyV = {{0.}}; + + double timeError = (nHits > 0. ? timeError_.evaluate(amplitudeV, emptyV) : -1.); + // Calculate the position // Distance from center of bar to hit float position = 0.5f * (c_LYSO_ * (time.second - time.first)); @@ -86,7 +101,7 @@ FTLUncalibratedRecHit BTLUncalibRecHitAlgo::makeRecHit(const BTLDataFrame& dataF << std::endl; return FTLUncalibratedRecHit( - dataFrame.id(), dataFrame.row(), dataFrame.column(), amplitude, time, timeError_, position, positionError, flag); + dataFrame.id(), dataFrame.row(), dataFrame.column(), amplitude, time, timeError, position, positionError, flag); } #include "FWCore/Framework/interface/MakerMacros.h" diff --git a/RecoLocalFastTime/FTLCommonAlgos/plugins/ETLUncalibRecHitAlgo.cc b/RecoLocalFastTime/FTLCommonAlgos/plugins/ETLUncalibRecHitAlgo.cc index d71e1f67f334c..a41ef2acca3d5 100644 --- a/RecoLocalFastTime/FTLCommonAlgos/plugins/ETLUncalibRecHitAlgo.cc +++ b/RecoLocalFastTime/FTLCommonAlgos/plugins/ETLUncalibRecHitAlgo.cc @@ -1,6 +1,8 @@ #include "RecoLocalFastTime/FTLCommonAlgos/interface/MTDUncalibratedRecHitAlgoBase.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "CommonTools/Utils/interface/FormulaEvaluator.h" + class ETLUncalibRecHitAlgo : public ETLUncalibratedRecHitAlgoBase { public: /// Constructor @@ -11,7 +13,7 @@ class ETLUncalibRecHitAlgo : public ETLUncalibratedRecHitAlgoBase { adcLSB_(adcSaturation_ / (1 << adcNBits_)), toaLSBToNS_(conf.getParameter("toaLSB_ns")), tofDelay_(conf.getParameter("tofDelay")), - timeError_(conf.getParameter("timeResolutionInNs")) {} + timeError_(conf.getParameter("timeResolutionInNs")) {} /// Destructor ~ETLUncalibRecHitAlgo() override {} @@ -29,25 +31,37 @@ class ETLUncalibRecHitAlgo : public ETLUncalibratedRecHitAlgoBase { const double adcLSB_; const double toaLSBToNS_; const double tofDelay_; - const double timeError_; + const reco::FormulaEvaluator timeError_; }; FTLUncalibratedRecHit ETLUncalibRecHitAlgo::makeRecHit(const ETLDataFrame& dataFrame) const { constexpr int iSample = 2; //only in-time sample const auto& sample = dataFrame.sample(iSample); - double amplitude = double(sample.data()) * adcLSB_; + const std::array amplitudeV = {{double(sample.data()) * adcLSB_}}; + // NB: Here amplitudeV is defined as an array in order to be used + // below as an input to FormulaEvaluator::evaluate. double time = double(sample.toa()) * toaLSBToNS_ - tofDelay_; unsigned char flag = 0; - LogDebug("ETLUncalibRecHit") << "ADC+: set the charge to: " << amplitude << ' ' << sample.data() << ' ' << adcLSB_ + LogDebug("ETLUncalibRecHit") << "ADC+: set the charge to: " << amplitudeV[0] << ' ' << sample.data() << ' ' << adcLSB_ << ' ' << std::endl; LogDebug("ETLUncalibRecHit") << "ADC+: set the time to: " << time << ' ' << sample.toa() << ' ' << toaLSBToNS_ << ' ' << std::endl; - LogDebug("ETLUncalibRecHit") << "Final uncalibrated amplitude : " << amplitude << std::endl; + LogDebug("ETLUncalibRecHit") << "Final uncalibrated amplitude : " << amplitudeV[0] << std::endl; + + const std::array emptyV = {{0.}}; + double timeError = timeError_.evaluate(amplitudeV, emptyV); - return FTLUncalibratedRecHit( - dataFrame.id(), dataFrame.row(), dataFrame.column(), {amplitude, 0.f}, {time, 0.f}, timeError_, -1.f, -1.f, flag); + return FTLUncalibratedRecHit(dataFrame.id(), + dataFrame.row(), + dataFrame.column(), + {amplitudeV[0], 0.f}, + {time, 0.f}, + timeError, + -1.f, + -1.f, + flag); } #include "FWCore/Framework/interface/MakerMacros.h" diff --git a/RecoLocalFastTime/FTLCommonAlgos/plugins/MTDRecHitAlgo.cc b/RecoLocalFastTime/FTLCommonAlgos/plugins/MTDRecHitAlgo.cc index 4c2f7a225c6b8..40f7c2789d96a 100644 --- a/RecoLocalFastTime/FTLCommonAlgos/plugins/MTDRecHitAlgo.cc +++ b/RecoLocalFastTime/FTLCommonAlgos/plugins/MTDRecHitAlgo.cc @@ -6,10 +6,7 @@ class MTDRecHitAlgo : public MTDRecHitAlgoBase { public: /// Constructor - MTDRecHitAlgo(const edm::ParameterSet& conf, edm::ConsumesCollector& sumes) - : MTDRecHitAlgoBase(conf, sumes), - thresholdToKeep_(conf.getParameter("thresholdToKeep")), - calibration_(conf.getParameter("calibrationConstant")) {} + MTDRecHitAlgo(const edm::ParameterSet& conf, edm::ConsumesCollector& sumes); /// Destructor ~MTDRecHitAlgo() override {} @@ -24,11 +21,18 @@ class MTDRecHitAlgo : public MTDRecHitAlgoBase { private: double thresholdToKeep_, calibration_; const MTDTimeCalib* time_calib_; + edm::ESGetToken tcToken_; }; +MTDRecHitAlgo::MTDRecHitAlgo(const edm::ParameterSet& conf, edm::ConsumesCollector& sumes) + : MTDRecHitAlgoBase(conf, sumes), + thresholdToKeep_(conf.getParameter("thresholdToKeep")), + calibration_(conf.getParameter("calibrationConstant")) { + tcToken_ = sumes.esConsumes(edm::ESInputTag("", "MTDTimeCalib")); +} + void MTDRecHitAlgo::getEventSetup(const edm::EventSetup& es) { - edm::ESHandle pTC; - es.get().get("MTDTimeCalib", pTC); + auto pTC = es.getHandle(tcToken_); time_calib_ = pTC.product(); } diff --git a/RecoLocalFastTime/FTLCommonAlgos/src/RecHitTools.cc b/RecoLocalFastTime/FTLCommonAlgos/src/RecHitTools.cc deleted file mode 100644 index ac5e4b1e34c17..0000000000000 --- a/RecoLocalFastTime/FTLCommonAlgos/src/RecHitTools.cc +++ /dev/null @@ -1,31 +0,0 @@ -#include "RecoLocalFastTime/FTLCommonAlgos/interface/RecHitTools.h" - -#include "DataFormats/ForwardDetId/interface/FastTimeDetId.h" - -#include "Geometry/Records/interface/FastTimeGeometryRecord.h" -#include "Geometry/Records/interface/IdealGeometryRecord.h" - -#include "FWCore/Framework/interface/ESHandle.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" - -using namespace ftl; - -void RecHitTools::getEvent(const edm::Event& ev) {} - -void RecHitTools::getEventSetup(const edm::EventSetup& es) { - edm::ESHandle ftgeom; - es.get().get(ftgeom); - geom_ = ftgeom.product(); - ddd_ = &(geom_->topology().dddConstants()); -} - -GlobalPoint RecHitTools::getPosition(const DetId& id) const { return geom_->getGeometry(id)->getPosition(); } - -FlatTrd::CornersVec RecHitTools::getCorners(const DetId& id) const { return geom_->getGeometry(id)->getCorners(); } - -RecHitTools::HitType RecHitTools::getHitType(const DetId& id) const { - FastTimeDetId fid(id); - return (HitType)fid.type(); -} diff --git a/RecoLocalFastTime/FTLRecProducers/plugins/MTDRecHitProducer.cc b/RecoLocalFastTime/FTLRecProducers/plugins/MTDRecHitProducer.cc index bcc2fd7d5c5db..72bddde9008b9 100644 --- a/RecoLocalFastTime/FTLRecProducers/plugins/MTDRecHitProducer.cc +++ b/RecoLocalFastTime/FTLRecProducers/plugins/MTDRecHitProducer.cc @@ -35,6 +35,7 @@ class MTDRecHitProducer : public edm::stream::EDProducer<> { std::unique_ptr barrel_, endcap_; const MTDGeometry* geom_; + edm::ESGetToken mtdgeoToken_; }; MTDRecHitProducer::MTDRecHitProducer(const edm::ParameterSet& ps) @@ -48,6 +49,7 @@ MTDRecHitProducer::MTDRecHitProducer(const edm::ParameterSet& ps) produces(ftleInstance_); auto sumes = consumesCollector(); + mtdgeoToken_ = esConsumes(); const edm::ParameterSet& barrel = ps.getParameterSet("barrel"); const std::string& barrelAlgo = barrel.getParameter("algoName"); @@ -61,8 +63,7 @@ MTDRecHitProducer::MTDRecHitProducer(const edm::ParameterSet& ps) MTDRecHitProducer::~MTDRecHitProducer() {} void MTDRecHitProducer::produce(edm::Event& evt, const edm::EventSetup& es) { - edm::ESHandle geom; - es.get().get(geom); + auto geom = es.getTransientHandle(mtdgeoToken_); geom_ = geom.product(); // tranparently get things from event setup diff --git a/RecoLocalFastTime/FTLRecProducers/plugins/MTDTrackingRecHitProducer.cc b/RecoLocalFastTime/FTLRecProducers/plugins/MTDTrackingRecHitProducer.cc index acec43bb106c0..794fffbe29987 100644 --- a/RecoLocalFastTime/FTLRecProducers/plugins/MTDTrackingRecHitProducer.cc +++ b/RecoLocalFastTime/FTLRecProducers/plugins/MTDTrackingRecHitProducer.cc @@ -44,12 +44,16 @@ class MTDTrackingRecHitProducer : public edm::stream::EDProducer<> { const MTDGeometry* geom_; const MTDClusterParameterEstimator* cpe_; + edm::ESGetToken mtdgeoToken_; + edm::ESGetToken cpeToken_; }; MTDTrackingRecHitProducer::MTDTrackingRecHitProducer(const edm::ParameterSet& ps) : ftlbClusters_(consumes(ps.getParameter("barrelClusters"))), ftleClusters_(consumes(ps.getParameter("endcapClusters"))) { produces(); + mtdgeoToken_ = esConsumes(); + cpeToken_ = esConsumes(edm::ESInputTag("", "MTDCPEBase")); } // Configuration descriptions @@ -61,12 +65,10 @@ void MTDTrackingRecHitProducer::fillDescriptions(edm::ConfigurationDescriptions& } void MTDTrackingRecHitProducer::produce(edm::Event& evt, const edm::EventSetup& es) { - edm::ESHandle geom; - es.get().get(geom); + auto geom = es.getTransientHandle(mtdgeoToken_); geom_ = geom.product(); - edm::ESHandle cpe; - es.get().get("MTDCPEBase", cpe); + auto cpe = es.getTransientHandle(cpeToken_); cpe_ = cpe.product(); edm::Handle inputBarrel; diff --git a/RecoLocalFastTime/FTLRecProducers/python/mtdUncalibratedRecHits_cfi.py b/RecoLocalFastTime/FTLRecProducers/python/mtdUncalibratedRecHits_cfi.py index 456756a49677a..ef9b2d0fb85ca 100644 --- a/RecoLocalFastTime/FTLRecProducers/python/mtdUncalibratedRecHits_cfi.py +++ b/RecoLocalFastTime/FTLRecProducers/python/mtdUncalibratedRecHits_cfi.py @@ -8,7 +8,7 @@ adcNbits = mtdDigitizer.barrelDigitizer.ElectronicsSimulation.adcNbits, adcSaturation = mtdDigitizer.barrelDigitizer.ElectronicsSimulation.adcSaturation_MIP, toaLSB_ns = mtdDigitizer.barrelDigitizer.ElectronicsSimulation.toaLSB_ns, - timeResolutionInNs = cms.double(0.025), + timeResolutionInNs = cms.string("0.308*pow(x,-0.4175)"), # [ns] timeCorr_p0 = cms.double( 2.21103), timeCorr_p1 = cms.double(-0.933552), timeCorr_p2 = cms.double( 0.), @@ -22,7 +22,7 @@ adcSaturation = mtdDigitizer.endcapDigitizer.ElectronicsSimulation.adcSaturation_MIP, toaLSB_ns = mtdDigitizer.endcapDigitizer.ElectronicsSimulation.toaLSB_ns, tofDelay = mtdDigitizer.endcapDigitizer.DeviceSimulation.tofDelay, - timeResolutionInNs = cms.double(0.025) + timeResolutionInNs = cms.string("0.039") # [ns] ) diff --git a/RecoLocalFastTime/FTLRecProducers/test/MTDRecoDump.cc b/RecoLocalFastTime/FTLRecProducers/test/MTDRecoDump.cc index 5c82b013da79e..bad84e01b80a4 100644 --- a/RecoLocalFastTime/FTLRecProducers/test/MTDRecoDump.cc +++ b/RecoLocalFastTime/FTLRecProducers/test/MTDRecoDump.cc @@ -14,14 +14,14 @@ class MTDRecoDump : public edm::one::EDAnalyzer { public: explicit MTDRecoDump(const edm::ParameterSet&); - ~MTDRecoDump(); + ~MTDRecoDump() override; static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); private: - virtual void beginJob() override; - virtual void analyze(const edm::Event&, const edm::EventSetup&) override; - virtual void endJob() override; + void beginJob() override; + void analyze(const edm::Event&, const edm::EventSetup&) override; + void endJob() override; // ----------member data --------------------------- @@ -54,7 +54,7 @@ void MTDRecoDump::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetu // --- BTL RECOs: - if (h_BTL_reco->size() > 0) { + if (!h_BTL_reco->empty()) { std::cout << " ----------------------------------------" << std::endl; std::cout << " BTL RECO collection:" << std::endl; @@ -74,7 +74,7 @@ void MTDRecoDump::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetu // --- ETL RECOs: - if (h_ETL_reco->size() > 0) { + if (!h_ETL_reco->empty()) { std::cout << " ----------------------------------------" << std::endl; std::cout << " ETL RECO collection:" << std::endl; diff --git a/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelClusterThresholds.h b/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelClusterThresholds.h new file mode 100644 index 0000000000000..41dd430262f73 --- /dev/null +++ b/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelClusterThresholds.h @@ -0,0 +1,14 @@ +#ifndef RecoLocalTracker_SiPixelClusterizer_plugins_SiPixelClusterThresholds_h +#define RecoLocalTracker_SiPixelClusterizer_plugins_SiPixelClusterThresholds_h + +struct SiPixelClusterThresholds { + inline constexpr int32_t getThresholdForLayerOnCondition(bool isLayer1) const noexcept { + return isLayer1 ? layer1 : otherLayers; + } + const int32_t layer1; + const int32_t otherLayers; +}; + +constexpr SiPixelClusterThresholds kSiPixelClusterThresholdsDefaultPhase1{.layer1 = 2000, .otherLayers = 4000}; + +#endif // RecoLocalTracker_SiPixelClusterizer_plugins_SiPixelClusterThresholds_h diff --git a/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelDigisClustersFromSoA.cc b/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelDigisClustersFromSoA.cc index 0078bae38306a..b6484dbea915e 100644 --- a/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelDigisClustersFromSoA.cc +++ b/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelDigisClustersFromSoA.cc @@ -15,7 +15,10 @@ #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" #include "Geometry/Records/interface/TrackerTopologyRcd.h" -#include "RecoLocalTracker/SiPixelClusterizer/plugins/PixelClusterizerBase.h" + +// local include(s) +#include "PixelClusterizerBase.h" +#include "SiPixelClusterThresholds.h" class SiPixelDigisClustersFromSoA : public edm::global::EDProducer<> { public: @@ -33,17 +36,23 @@ class SiPixelDigisClustersFromSoA : public edm::global::EDProducer<> { edm::EDPutTokenT> digiPutToken_; edm::EDPutTokenT clusterPutToken_; + + const SiPixelClusterThresholds clusterThresholds_; // Cluster threshold in electrons }; SiPixelDigisClustersFromSoA::SiPixelDigisClustersFromSoA(const edm::ParameterSet& iConfig) : topoToken_(esConsumes()), digiGetToken_(consumes(iConfig.getParameter("src"))), digiPutToken_(produces>()), - clusterPutToken_(produces()) {} + clusterPutToken_(produces()), + clusterThresholds_{iConfig.getParameter("clusterThreshold_layer1"), + iConfig.getParameter("clusterThreshold_otherLayers")} {} void SiPixelDigisClustersFromSoA::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { edm::ParameterSetDescription desc; desc.add("src", edm::InputTag("siPixelDigisSoA")); + desc.add("clusterThreshold_layer1", kSiPixelClusterThresholdsDefaultPhase1.layer1); + desc.add("clusterThreshold_otherLayers", kSiPixelClusterThresholdsDefaultPhase1.otherLayers); descriptions.addWithDefaultLabel(desc); } @@ -77,7 +86,7 @@ void SiPixelDigisClustersFromSoA::produce(edm::StreamID, edm::Event& iEvent, con return; // this in reality should never happen edmNew::DetSetVector::FastFiller spc(*outputClusters, detId); auto layer = (DetId(detId).subdetId() == 1) ? ttopo.pxbLayer(detId) : 0; - auto clusterThreshold = (layer == 1) ? 2000 : 4000; + auto clusterThreshold = clusterThresholds_.getThresholdForLayerOnCondition(layer == 1); for (int32_t ic = 0; ic < nclus + 1; ++ic) { auto const& acluster = aclusters[ic]; // in any case we cannot go out of sync with gpu... diff --git a/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelRawToClusterCUDA.cc b/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelRawToClusterCUDA.cc index 93b92e145ec5c..ad43f0d9416d2 100644 --- a/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelRawToClusterCUDA.cc +++ b/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelRawToClusterCUDA.cc @@ -37,6 +37,7 @@ #include "RecoTracker/Record/interface/CkfComponentsRecord.h" // local includes +#include "SiPixelClusterThresholds.h" #include "SiPixelRawToClusterGPUKernel.h" class SiPixelRawToClusterCUDA : public edm::stream::EDProducer { @@ -77,6 +78,7 @@ class SiPixelRawToClusterCUDA : public edm::stream::EDProducer("CablingMapLabel")))), isRun2_(iConfig.getParameter("isRun2")), includeErrors_(iConfig.getParameter("IncludeErrors")), - useQuality_(iConfig.getParameter("UseQualityInfo")) { + useQuality_(iConfig.getParameter("UseQualityInfo")), + clusterThresholds_{iConfig.getParameter("clusterThreshold_layer1"), + iConfig.getParameter("clusterThreshold_otherLayers")} { if (includeErrors_) { digiErrorPutToken_ = produces>(); } @@ -110,6 +114,8 @@ void SiPixelRawToClusterCUDA::fillDescriptions(edm::ConfigurationDescriptions& d desc.add("isRun2", true); desc.add("IncludeErrors", true); desc.add("UseQualityInfo", false); + desc.add("clusterThreshold_layer1", kSiPixelClusterThresholdsDefaultPhase1.layer1); + desc.add("clusterThreshold_otherLayers", kSiPixelClusterThresholdsDefaultPhase1.otherLayers); desc.add("InputLabel", edm::InputTag("rawDataCollector")); { edm::ParameterSetDescription psd0; @@ -231,6 +237,7 @@ void SiPixelRawToClusterCUDA::acquire(const edm::Event& iEvent, } // end of for loop gpuAlgo_.makeClustersAsync(isRun2_, + clusterThresholds_, gpuMap, gpuModulesToUnpack, gpuGains, diff --git a/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelRawToClusterGPUKernel.cu b/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelRawToClusterGPUKernel.cu index 25e5c925990f8..6bebcd9ea7aab 100644 --- a/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelRawToClusterGPUKernel.cu +++ b/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelRawToClusterGPUKernel.cu @@ -500,16 +500,11 @@ namespace pixelgpudetails { printf("moduleStart %d %d\n", i, moduleStart[i]); } #endif - - // avoid overflow - auto constexpr maxNumClusters = gpuClustering::maxNumClusters; - for (int i = first, iend = gpuClustering::maxNumModules + 1; i < iend; i += blockDim.x) { - moduleStart[i] = std::clamp(moduleStart[i], 0U, maxNumClusters); - } } // Interface to outside void SiPixelRawToClusterGPUKernel::makeClustersAsync(bool isRun2, + const SiPixelClusterThresholds clusterThresholds, const SiPixelROCsStatusAndMapping *cablingMap, const unsigned char *modToUnp, const SiPixelGainForHLTonGPU *gains, @@ -635,7 +630,8 @@ namespace pixelgpudetails { #endif // apply charge cut - clusterChargeCut<<>>(digis_d.moduleInd(), + clusterChargeCut<<>>(clusterThresholds, + digis_d.moduleInd(), digis_d.adc(), clusters_d.moduleStart(), clusters_d.clusInModule(), diff --git a/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelRawToClusterGPUKernel.h b/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelRawToClusterGPUKernel.h index 75eeab2606dd5..07f2a25baeb73 100644 --- a/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelRawToClusterGPUKernel.h +++ b/RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelRawToClusterGPUKernel.h @@ -14,6 +14,9 @@ #include "DataFormats/SiPixelRawData/interface/SiPixelErrorCompact.h" #include "DataFormats/SiPixelRawData/interface/SiPixelFormatterErrors.h" +// local include(s) +#include "SiPixelClusterThresholds.h" + struct SiPixelROCsStatusAndMapping; class SiPixelGainForHLTonGPU; @@ -170,6 +173,7 @@ namespace pixelgpudetails { SiPixelRawToClusterGPUKernel& operator=(SiPixelRawToClusterGPUKernel&&) = delete; void makeClustersAsync(bool isRun2, + const SiPixelClusterThresholds clusterThresholds, const SiPixelROCsStatusAndMapping* cablingMap, const unsigned char* modToUnp, const SiPixelGainForHLTonGPU* gains, diff --git a/RecoLocalTracker/SiPixelClusterizer/plugins/gpuClusterChargeCut.h b/RecoLocalTracker/SiPixelClusterizer/plugins/gpuClusterChargeCut.h index d9520da80b695..42a7c4d4a7d78 100644 --- a/RecoLocalTracker/SiPixelClusterizer/plugins/gpuClusterChargeCut.h +++ b/RecoLocalTracker/SiPixelClusterizer/plugins/gpuClusterChargeCut.h @@ -5,14 +5,20 @@ #include #include "CUDADataFormats/SiPixelCluster/interface/gpuClusteringConstants.h" +#include "Geometry/TrackerGeometryBuilder/interface/phase1PixelTopology.h" #include "HeterogeneousCore/CUDAUtilities/interface/cuda_assert.h" #include "HeterogeneousCore/CUDAUtilities/interface/prefixScan.h" +// local include(s) +#include "SiPixelClusterThresholds.h" + namespace gpuClustering { __global__ void clusterChargeCut( - uint16_t* __restrict__ id, // module id of each pixel (modified if bad cluster) - uint16_t const* __restrict__ adc, // charge of each pixel + SiPixelClusterThresholds + clusterThresholds, // charge cut on cluster in electrons (for layer 1 and for other layers) + uint16_t* __restrict__ id, // module id of each pixel (modified if bad cluster) + uint16_t const* __restrict__ adc, // charge of each pixel uint32_t const* __restrict__ moduleStart, // index of the first pixel of each module uint32_t* __restrict__ nClustersInModule, // modified: number of clusters found in each module uint32_t const* __restrict__ moduleId, // module id of each module @@ -79,7 +85,8 @@ namespace gpuClustering { } __syncthreads(); - auto chargeCut = thisModuleId < 96 ? 2000 : 4000; // move in constants (calib?) + auto chargeCut = + clusterThresholds.getThresholdForLayerOnCondition(thisModuleId < phase1PixelTopology::layerStart[1]); for (auto i = threadIdx.x; i < nclus; i += blockDim.x) { newclusId[i] = ok[i] = charge[i] > chargeCut ? 1 : 0; } diff --git a/RecoLocalTracker/SiPixelClusterizer/test/gpuClustering_t.h b/RecoLocalTracker/SiPixelClusterizer/test/gpuClustering_t.h index 02611ab1cac1d..a67cec3051304 100644 --- a/RecoLocalTracker/SiPixelClusterizer/test/gpuClustering_t.h +++ b/RecoLocalTracker/SiPixelClusterizer/test/gpuClustering_t.h @@ -18,6 +18,7 @@ #include "RecoLocalTracker/SiPixelClusterizer/plugins/gpuClustering.h" #include "RecoLocalTracker/SiPixelClusterizer/plugins/gpuClusterChargeCut.h" +#include "RecoLocalTracker/SiPixelClusterizer/plugins/SiPixelClusterThresholds.h" int main(void) { #ifdef __CUDACC__ @@ -27,6 +28,7 @@ int main(void) { using namespace gpuClustering; constexpr int numElements = 256 * maxNumModules; + constexpr SiPixelClusterThresholds clusterThresholds(kSiPixelClusterThresholdsDefaultPhase1); // these in reality are already on GPU auto h_id = std::make_unique(numElements); @@ -288,6 +290,7 @@ int main(void) { cms::cuda::launch(clusterChargeCut, {blocksPerGrid, threadsPerBlock}, + clusterThresholds, d_id.get(), d_adc.get(), d_moduleStart.get(), @@ -317,8 +320,14 @@ int main(void) { if (ncl != std::accumulate(nclus, nclus + maxNumModules, 0)) std::cout << "ERROR!!!!! wrong number of cluster found" << std::endl; - clusterChargeCut( - h_id.get(), h_adc.get(), h_moduleStart.get(), h_clusInModule.get(), h_moduleId.get(), h_clus.get(), n); + clusterChargeCut(clusterThresholds, + h_id.get(), + h_adc.get(), + h_moduleStart.get(), + h_clusInModule.get(), + h_moduleId.get(), + h_clus.get(), + n); #endif // __CUDACC__ std::cout << "found " << nModules << " Modules active" << std::endl; diff --git a/RecoLocalTracker/SiPixelRecHits/plugins/PixelRecHitGPUKernel.cu b/RecoLocalTracker/SiPixelRecHits/plugins/PixelRecHitGPUKernel.cu index f75d5e3b3bef7..61c228bea3c56 100644 --- a/RecoLocalTracker/SiPixelRecHits/plugins/PixelRecHitGPUKernel.cu +++ b/RecoLocalTracker/SiPixelRecHits/plugins/PixelRecHitGPUKernel.cu @@ -47,30 +47,29 @@ namespace pixelgpudetails { #ifdef GPU_DEBUG std::cout << "launching getHits kernel for " << blocks << " blocks" << std::endl; #endif - if (blocks) // protect from empty events + // protect from empty events + if (blocks) { gpuPixelRecHits::getHits<<>>( cpeParams, bs_d.data(), digis_d.view(), digis_d.nDigis(), clusters_d.view(), hits_d.view()); - cudaCheck(cudaGetLastError()); + cudaCheck(cudaGetLastError()); #ifdef GPU_DEBUG - cudaDeviceSynchronize(); - cudaCheck(cudaGetLastError()); + cudaCheck(cudaDeviceSynchronize()); #endif + } // assuming full warp of threads is better than a smaller number... if (nHits) { setHitsLayerStart<<<1, 32, 0, stream>>>(clusters_d.clusModuleStart(), cpeParams, hits_d.hitsLayerStart()); cudaCheck(cudaGetLastError()); - } - if (nHits) { - cms::cuda::fillManyFromVector(hits_d.phiBinner(), 10, hits_d.iphi(), hits_d.hitsLayerStart(), nHits, 256, stream); + cms::cuda::fillManyFromVector( + hits_d.phiBinner(), 10, hits_d.iphi(), hits_d.hitsLayerStart(), nHits, 256, hits_d.phiBinnerStorage(), stream); cudaCheck(cudaGetLastError()); - } #ifdef GPU_DEBUG - cudaDeviceSynchronize(); - cudaCheck(cudaGetLastError()); + cudaCheck(cudaDeviceSynchronize()); #endif + } return hits_d; } diff --git a/RecoLocalTracker/SiPixelRecHits/plugins/SiPixelRecHitCUDA.cc b/RecoLocalTracker/SiPixelRecHits/plugins/SiPixelRecHitCUDA.cc index 09b90526bf7db..65846cbb652d6 100644 --- a/RecoLocalTracker/SiPixelRecHits/plugins/SiPixelRecHitCUDA.cc +++ b/RecoLocalTracker/SiPixelRecHits/plugins/SiPixelRecHitCUDA.cc @@ -78,12 +78,6 @@ void SiPixelRecHitCUDA::produce(edm::StreamID streamID, edm::Event& iEvent, cons iEvent.getByToken(tBeamSpot, hbs); auto const& bs = ctx.get(*hbs); - auto nHits = clusters.nClusters(); - if (nHits >= TrackingRecHit2DSOAView::maxHits()) { - edm::LogWarning("PixelRecHitGPUKernel") - << "Clusters/Hits Overflow " << nHits << " >= " << TrackingRecHit2DSOAView::maxHits(); - } - ctx.emplace(iEvent, tokenHit_, gpuAlgo_.makeHitsAsync(digis, clusters, bs, fcpe->getGPUProductAsync(ctx.stream()), ctx.stream())); diff --git a/RecoLocalTracker/SiPixelRecHits/plugins/SiPixelRecHitFromCUDA.cc b/RecoLocalTracker/SiPixelRecHits/plugins/SiPixelRecHitFromCUDA.cc index 790b0da51ecfb..e2f9e1263e429 100644 --- a/RecoLocalTracker/SiPixelRecHits/plugins/SiPixelRecHitFromCUDA.cc +++ b/RecoLocalTracker/SiPixelRecHits/plugins/SiPixelRecHitFromCUDA.cc @@ -146,8 +146,6 @@ void SiPixelRecHitFromCUDA::produce(edm::Event& iEvent, edm::EventSetup const& e if (clust.originalId() >= nhits) continue; auto ij = jnd(clust.originalId()); - if (ij >= TrackingRecHit2DSOAView::maxHits()) - continue; // overflow... LocalPoint lp(xl[ij], yl[ij]); LocalError le(xe[ij], 0, ye[ij]); SiPixelRecHitQuality::QualWordType rqw = 0; diff --git a/RecoLocalTracker/SiPixelRecHits/plugins/SiPixelRecHitSoAFromLegacy.cc b/RecoLocalTracker/SiPixelRecHits/plugins/SiPixelRecHitSoAFromLegacy.cc index 0d95370f25e47..fbf3384ce328c 100644 --- a/RecoLocalTracker/SiPixelRecHits/plugins/SiPixelRecHitSoAFromLegacy.cc +++ b/RecoLocalTracker/SiPixelRecHits/plugins/SiPixelRecHitSoAFromLegacy.cc @@ -236,11 +236,16 @@ void SiPixelRecHitSoAFromLegacy::produce(edm::StreamID streamID, edm::Event& iEv assert(numberOfHits == numberOfClusters); // fill data structure to support CA - for (auto i = 0; i < 11; ++i) { + for (auto i = 0U; i < phase1PixelTopology::numberOfLayers + 1; ++i) { output->hitsLayerStart()[i] = hitsModuleStart[cpeView.layerGeometry().layerStart[i]]; } - cms::cuda::fillManyFromVector( - output->phiBinner(), 10, output->iphi(), output->hitsLayerStart(), numberOfHits, 256, nullptr); + cms::cuda::fillManyFromVector(output->phiBinner(), + phase1PixelTopology::numberOfLayers, + output->iphi(), + output->hitsLayerStart(), + numberOfHits, + 256, + output->phiBinnerStorage()); LogDebug("SiPixelRecHitSoAFromLegacy") << "created HitSoa for " << numberOfClusters << " clusters in " << numberOfDetUnits << " Dets"; diff --git a/RecoLocalTracker/SiPixelRecHits/plugins/gpuPixelRecHits.h b/RecoLocalTracker/SiPixelRecHits/plugins/gpuPixelRecHits.h index 2401fed6c5171..da7d3de7336a8 100644 --- a/RecoLocalTracker/SiPixelRecHits/plugins/gpuPixelRecHits.h +++ b/RecoLocalTracker/SiPixelRecHits/plugins/gpuPixelRecHits.h @@ -166,7 +166,6 @@ namespace gpuPixelRecHits { for (int ic = threadIdx.x; ic < nClusInIter; ic += blockDim.x) { auto h = first + ic; // output index in global memory - assert(h < TrackingRecHit2DSOAView::maxHits()); assert(h < hits.nHits()); assert(h < clusters.clusModuleStart(me + 1)); diff --git a/RecoMTD/DetLayers/BuildFile.xml b/RecoMTD/DetLayers/BuildFile.xml index a3b2724a92901..5ed71cd29ee88 100644 --- a/RecoMTD/DetLayers/BuildFile.xml +++ b/RecoMTD/DetLayers/BuildFile.xml @@ -4,6 +4,9 @@ + + + diff --git a/RecoMTD/DetLayers/plugins/BTLDetLayerGeometryBuilder.h b/RecoMTD/DetLayers/interface/BTLDetLayerGeometryBuilder.h similarity index 100% rename from RecoMTD/DetLayers/plugins/BTLDetLayerGeometryBuilder.h rename to RecoMTD/DetLayers/interface/BTLDetLayerGeometryBuilder.h diff --git a/RecoMTD/DetLayers/plugins/ETLDetLayerGeometryBuilder.h b/RecoMTD/DetLayers/interface/ETLDetLayerGeometryBuilder.h similarity index 100% rename from RecoMTD/DetLayers/plugins/ETLDetLayerGeometryBuilder.h rename to RecoMTD/DetLayers/interface/ETLDetLayerGeometryBuilder.h diff --git a/RecoMTD/DetLayers/interface/MTDDetLayerGeometry.h b/RecoMTD/DetLayers/interface/MTDDetLayerGeometry.h index 0fc82b62fae1a..57a4cd620c6b7 100644 --- a/RecoMTD/DetLayers/interface/MTDDetLayerGeometry.h +++ b/RecoMTD/DetLayers/interface/MTDDetLayerGeometry.h @@ -11,6 +11,9 @@ #include "DataFormats/DetId/interface/DetId.h" #include "TrackingTools/DetLayers/interface/DetLayerGeometry.h" +#include "Geometry/MTDGeometryBuilder/interface/MTDGeometry.h" +#include "Geometry/MTDNumberingBuilder/interface/MTDTopology.h" + #include #include @@ -50,6 +53,11 @@ class MTDDetLayerGeometry : public DetLayerGeometry { /// return the DetLayer which correspond to a certain DetId const DetLayer* idToLayer(const DetId& detId) const override; + // Added to allow building the MTDDetLayer from external plugins + void buildLayers(const MTDGeometry* geo, const MTDTopology* mtopo); + + void sortLayers(); + private: /// Add ETL layers /// etllayers.first=forward (+Z), etllayers.second=backward (-Z) @@ -61,8 +69,6 @@ class MTDDetLayerGeometry : public DetLayerGeometry { DetId makeDetLayerId(const DetLayer* detLayer) const; - void sortLayers(); - std::vector etlLayers_fw; std::vector etlLayers_bk; std::vector etlLayers_all; diff --git a/RecoMTD/DetLayers/plugins/MTDDetLayerGeometryESProducer.cc b/RecoMTD/DetLayers/plugins/MTDDetLayerGeometryESProducer.cc index 93a83d0d95bee..6fd869bc030cc 100644 --- a/RecoMTD/DetLayers/plugins/MTDDetLayerGeometryESProducer.cc +++ b/RecoMTD/DetLayers/plugins/MTDDetLayerGeometryESProducer.cc @@ -18,8 +18,8 @@ #include "Geometry/Records/interface/MTDTopologyRcd.h" #include "Geometry/MTDNumberingBuilder/interface/MTDTopology.h" -#include "ETLDetLayerGeometryBuilder.h" -#include "BTLDetLayerGeometryBuilder.h" +#include "RecoMTD/DetLayers/interface/ETLDetLayerGeometryBuilder.h" +#include "RecoMTD/DetLayers/interface/BTLDetLayerGeometryBuilder.h" #include "RecoMTD/DetLayers/interface/MTDDetLayerGeometry.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" @@ -52,19 +52,12 @@ MTDDetLayerGeometryESProducer::MTDDetLayerGeometryESProducer(const edm::Paramete std::unique_ptr MTDDetLayerGeometryESProducer::produce(const MTDRecoGeometryRecord& record) { auto mtdDetLayerGeometry = std::make_unique(); + auto mtd = record.getHandle(geomToken_); + auto mtdtopo = record.getHandle(mtdtopoToken_); - if (auto mtd = record.getHandle(geomToken_)) { - // Build BTL layers - mtdDetLayerGeometry->addBTLLayers(BTLDetLayerGeometryBuilder::buildLayers(*mtd)); - // Build ETL layers, depends on the scenario - if (auto mtdtopo = record.getHandle(mtdtopoToken_)) { - mtdDetLayerGeometry->addETLLayers(ETLDetLayerGeometryBuilder::buildLayers(*mtd, mtdtopo->getMTDTopologyMode())); - } else { - LogWarning("MTDDetLayers") << "No MTD topology is available."; - } - } else { - LogWarning("MTDDetLayers") << "No MTD geometry is available."; - } + //The BTL and ETL builders are now called internally by the MTDDetLayerGeometry. + //This allows external plugings to use and build the object. + mtdDetLayerGeometry->buildLayers(&(*mtd), &(*mtdtopo)); // Sort layers properly mtdDetLayerGeometry->sortLayers(); diff --git a/RecoMTD/DetLayers/plugins/BTLDetLayerGeometryBuilder.cc b/RecoMTD/DetLayers/src/BTLDetLayerGeometryBuilder.cc similarity index 97% rename from RecoMTD/DetLayers/plugins/BTLDetLayerGeometryBuilder.cc rename to RecoMTD/DetLayers/src/BTLDetLayerGeometryBuilder.cc index 3d53848e01274..5abd51a8cdce0 100644 --- a/RecoMTD/DetLayers/plugins/BTLDetLayerGeometryBuilder.cc +++ b/RecoMTD/DetLayers/src/BTLDetLayerGeometryBuilder.cc @@ -1,6 +1,6 @@ //#define EDM_ML_DEBUG -#include "BTLDetLayerGeometryBuilder.h" +#include "RecoMTD/DetLayers/interface/BTLDetLayerGeometryBuilder.h" #include #include diff --git a/RecoMTD/DetLayers/plugins/ETLDetLayerGeometryBuilder.cc b/RecoMTD/DetLayers/src/ETLDetLayerGeometryBuilder.cc similarity index 98% rename from RecoMTD/DetLayers/plugins/ETLDetLayerGeometryBuilder.cc rename to RecoMTD/DetLayers/src/ETLDetLayerGeometryBuilder.cc index 81f0597d9835b..83af5cda4e386 100644 --- a/RecoMTD/DetLayers/plugins/ETLDetLayerGeometryBuilder.cc +++ b/RecoMTD/DetLayers/src/ETLDetLayerGeometryBuilder.cc @@ -1,6 +1,6 @@ //#define EDM_ML_DEBUG -#include "ETLDetLayerGeometryBuilder.h" +#include "RecoMTD/DetLayers/interface/ETLDetLayerGeometryBuilder.h" #include #include @@ -66,9 +66,6 @@ pair, vector > ETLDetLayerGeometryBuilder::buildLay } } } - // - // the first entry is Z+ ( MTD side 1), the second is Z- (MTD side 0) - // pair, vector > res_pair(result[1], result[0]); return res_pair; } diff --git a/RecoMTD/DetLayers/src/MTDDetLayerGeometry.cc b/RecoMTD/DetLayers/src/MTDDetLayerGeometry.cc index be76d374b1ea0..61e92406557e8 100644 --- a/RecoMTD/DetLayers/src/MTDDetLayerGeometry.cc +++ b/RecoMTD/DetLayers/src/MTDDetLayerGeometry.cc @@ -5,6 +5,8 @@ */ #include +#include +#include #include #include @@ -14,15 +16,32 @@ #include #include +#include "FWCore/MessageLogger/interface/MessageLogger.h" #include using namespace std; using namespace geomsort; +using namespace edm; MTDDetLayerGeometry::MTDDetLayerGeometry() {} MTDDetLayerGeometry::~MTDDetLayerGeometry() {} +void MTDDetLayerGeometry::buildLayers(const MTDGeometry* geo, const MTDTopology* mtopo) { + if (geo) { + // Build BTL layers + this->addBTLLayers(BTLDetLayerGeometryBuilder::buildLayers(*geo)); + // Build ETL layers, depends on the scenario + if (mtopo) { + this->addETLLayers(ETLDetLayerGeometryBuilder::buildLayers(*geo, mtopo->getMTDTopologyMode())); + } else { + LogWarning("MTDDetLayers") << "No MTD topology is available."; + } + } else { + LogWarning("MTDDetLayers") << "No MTD geometry is available."; + } +} + void MTDDetLayerGeometry::addETLLayers(const pair, vector >& etllayers) { for (auto const it : etllayers.first) { etlLayers_fw.push_back(it); diff --git a/RecoMTD/DetLayers/test/MTDRecoGeometryAnalyzer.cc b/RecoMTD/DetLayers/test/MTDRecoGeometryAnalyzer.cc index cc146357fca6f..af9b1538a19bf 100644 --- a/RecoMTD/DetLayers/test/MTDRecoGeometryAnalyzer.cc +++ b/RecoMTD/DetLayers/test/MTDRecoGeometryAnalyzer.cc @@ -42,7 +42,7 @@ class MTDRecoGeometryAnalyzer : public EDAnalyzer { public: MTDRecoGeometryAnalyzer(const ParameterSet& pset); - virtual void analyze(const Event& ev, const EventSetup& es); + void analyze(const Event& ev, const EventSetup& es) override; void testBTLLayers(const MTDDetLayerGeometry*, const MagneticField* field); void testETLLayers(const MTDDetLayerGeometry*, const MagneticField* field); @@ -169,7 +169,7 @@ void MTDRecoGeometryAnalyzer::testBTLLayers(const MTDDetLayerGeometry* geo, cons << comp.second.globalPosition().z(); vector compDets = layer->compatibleDets(tsos, prop, *theEstimator); - if (compDets.size()) { + if (!compDets.empty()) { LogVerbatim("MTDLayerDump") << "compatibleDets: " << std::setw(14) << compDets.size() << "\n" << " final state pos: " << std::setw(14) << compDets.front().second.globalPosition() << "\n" @@ -226,7 +226,7 @@ void MTDRecoGeometryAnalyzer::testETLLayers(const MTDDetLayerGeometry* geo, cons << comp.second.globalPosition().z(); vector compDets = layer->compatibleDets(tsos, prop, *theEstimator); - if (compDets.size()) { + if (!compDets.empty()) { LogVerbatim("MTDLayerDump") << "compatibleDets: " << std::setw(14) << compDets.size() << "\n" << " final state pos: " << std::setw(14) << compDets.front().second.globalPosition() << "\n" @@ -312,7 +312,7 @@ void MTDRecoGeometryAnalyzer::testETLLayersNew(const MTDDetLayerGeometry* geo, c << comp.second.globalPosition().z(); vector compDets = layer->compatibleDets(tsos, prop, *theEstimator); - if (compDets.size()) { + if (!compDets.empty()) { LogVerbatim("MTDLayerDump") << std::fixed << "compatibleDets: " << std::setw(14) << compDets.size() << "\n" << " final state pos: " << compDets.front().second.globalPosition() << "\n" @@ -335,9 +335,9 @@ void MTDRecoGeometryAnalyzer::testETLLayersNew(const MTDDetLayerGeometry* geo, c string MTDRecoGeometryAnalyzer::dumpLayer(const DetLayer* layer) const { stringstream output; - const BoundSurface* sur = 0; - const BoundCylinder* bc = 0; - const BoundDisk* bd = 0; + const BoundSurface* sur = nullptr; + const BoundCylinder* bc = nullptr; + const BoundDisk* bd = nullptr; sur = &(layer->surface()); if ((bc = dynamic_cast(sur))) { diff --git a/RecoMTD/Navigation/BuildFile.xml b/RecoMTD/Navigation/BuildFile.xml deleted file mode 100644 index 2a44a670f28cb..0000000000000 --- a/RecoMTD/Navigation/BuildFile.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/RecoMTD/Navigation/interface/BTLNavigableLayer.h b/RecoMTD/Navigation/interface/BTLNavigableLayer.h deleted file mode 100644 index e74b057899b93..0000000000000 --- a/RecoMTD/Navigation/interface/BTLNavigableLayer.h +++ /dev/null @@ -1,163 +0,0 @@ -#ifndef Navigation_BTLNavigableLayer_H -#define Navigation_BTLNavigableLayer_H - -/** \class BTLNavigableLayer - * - * Navigable layer for Barrel Timing Layer. - * Taken from MuonBarrelNavigableLayer. - * - * - * \author : L. Gray - FNAL - * - */ - -/* Collaborating Class Declarations */ -#include "RecoMTD/Navigation/interface/MTDDetLayerMap.h" -#include "RecoMTD/Navigation/interface/MTDEtaRange.h" - -class DetLayer; -class BarrelDetLayer; - -/* Base Class Headers */ -#include "RecoMTD/Navigation/interface/MTDNavigableLayer.h" -/* C++ Headers */ - -/* ====================================================================== */ - -/* Class BTLNavigableLayer Interface */ - -class BTLNavigableLayer : public MTDNavigableLayer { -public: - /// Constructor - BTLNavigableLayer(BarrelDetLayer* bdl, - const MapB& outerBarrel, - const MapB& innerBarrel, - const MapE& outerBackward, - const MapE& outerForward, - const MapE& innerBackward, - const MapE& innerForward) - : theDetLayer(bdl), - theOuterBarrelLayers(outerBarrel), - theInnerBarrelLayers(innerBarrel), - theOuterBackwardLayers(outerBackward), - theInnerBackwardLayers(innerBackward), - theOuterForwardLayers(outerForward), - theInnerForwardLayers(innerForward) {} - - BTLNavigableLayer(BarrelDetLayer* bdl, - const MapB& outerBarrel, - const MapB& innerBarrel, - const MapE& outerBackward, - const MapE& outerForward, - const MapE& innerBackward, - const MapE& innerForward, - const MapB& allOuterBarrel, - const MapB& allInnerBarrel, - const MapE& allOuterBackward, - const MapE& allOuterForward, - const MapE& allInnerBackward, - const MapE& allInnerForward) - : theDetLayer(bdl), - theOuterBarrelLayers(outerBarrel), - theInnerBarrelLayers(innerBarrel), - theOuterBackwardLayers(outerBackward), - theInnerBackwardLayers(innerBackward), - theOuterForwardLayers(outerForward), - theInnerForwardLayers(innerForward), - theAllOuterBarrelLayers(allOuterBarrel), - theAllInnerBarrelLayers(allInnerBarrel), - theAllOuterBackwardLayers(allOuterBackward), - theAllInnerBackwardLayers(allInnerBackward), - theAllOuterForwardLayers(allOuterForward), - theAllInnerForwardLayers(allInnerForward) {} - - /// Constructor with outer layers only - BTLNavigableLayer(BarrelDetLayer* bdl, const MapB& outerBarrel, const MapE& outerBackward, const MapE& outerForward) - : theDetLayer(bdl), - theOuterBarrelLayers(outerBarrel), - theOuterBackwardLayers(outerBackward), - theOuterForwardLayers(outerForward) {} - - BTLNavigableLayer(const BarrelDetLayer* bdl, - const MapB& outerBarrel, - const MapE& outerBackward, - const MapE& outerForward, - const MapB& allOuterBarrel, - const MapE& allOuterBackward, - const MapE& allOuterForward) - : theDetLayer(bdl), - theOuterBarrelLayers(outerBarrel), - theOuterBackwardLayers(outerBackward), - theOuterForwardLayers(outerForward), - theAllOuterBarrelLayers(allOuterBarrel), - theAllOuterBackwardLayers(allOuterBackward), - theAllOuterForwardLayers(allOuterForward) {} - - /// NavigableLayer interface - std::vector nextLayers(NavigationDirection dir) const override; - - /// NavigableLayer interface - std::vector nextLayers(const FreeTrajectoryState& fts, PropagationDirection dir) const override; - - std::vector compatibleLayers(NavigationDirection dir) const override; - - /// NavigableLayer interface - std::vector compatibleLayers(const FreeTrajectoryState& fts, - PropagationDirection dir) const override; - - /// return DetLayer - const DetLayer* detLayer() const override; - - /// set DetLayer - void setDetLayer(const DetLayer*) override; - - MapB getOuterBarrelLayers() const { return theOuterBarrelLayers; } - MapB getInnerBarrelLayers() const { return theInnerBarrelLayers; } - MapE getOuterBackwardLayers() const { return theOuterBackwardLayers; } - MapE getInnerBackwardLayers() const { return theInnerBackwardLayers; } - MapE getOuterForwardLayers() const { return theOuterForwardLayers; } - MapE getInnerForwardLayers() const { return theInnerForwardLayers; } - - MapB getAllOuterBarrelLayers() const { return theAllOuterBarrelLayers; } - MapB getAllInnerBarrelLayers() const { return theAllInnerBarrelLayers; } - MapE getAllOuterBackwardLayers() const { return theAllOuterBackwardLayers; } - MapE getAllInnerBackwardLayers() const { return theAllInnerBackwardLayers; } - MapE getAllOuterForwardLayers() const { return theAllOuterForwardLayers; } - MapE getAllInnerForwardLayers() const { return theAllInnerForwardLayers; } - - /// set inward links - void setInwardLinks(const MapB&); - void setInwardCompatibleLinks(const MapB&); - -private: - void pushResult(std::vector& result, const MapB& map) const; - - void pushResult(std::vector& result, const MapE& map) const; - - void pushResult(std::vector& result, const MapB& map, const FreeTrajectoryState& fts) const; - - void pushResult(std::vector& result, const MapE& map, const FreeTrajectoryState& fts) const; - void pushCompatibleResult(std::vector& result, - const MapB& map, - const FreeTrajectoryState& fts) const; - - void pushCompatibleResult(std::vector& result, - const MapE& map, - const FreeTrajectoryState& fts) const; - -private: - const BarrelDetLayer* theDetLayer; - MapB theOuterBarrelLayers; - MapB theInnerBarrelLayers; - MapE theOuterBackwardLayers; - MapE theInnerBackwardLayers; - MapE theOuterForwardLayers; - MapE theInnerForwardLayers; - MapB theAllOuterBarrelLayers; - MapB theAllInnerBarrelLayers; - MapE theAllOuterBackwardLayers; - MapE theAllInnerBackwardLayers; - MapE theAllOuterForwardLayers; - MapE theAllInnerForwardLayers; -}; -#endif diff --git a/RecoMTD/Navigation/interface/DirectMTDNavigation.h b/RecoMTD/Navigation/interface/DirectMTDNavigation.h deleted file mode 100644 index f2f78d26862de..0000000000000 --- a/RecoMTD/Navigation/interface/DirectMTDNavigation.h +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef Navigation_DirectMTDNavigation_H -#define Navigation_DirectMTDNavigation_H -/** \file DirectMTDNavigation - * - * do a straight line extrapolation to - * find out compatible DetLayers with a given FTS - * - * \author Chang Liu - Purdue University - */ - -#include "FWCore/Framework/interface/ESHandle.h" -#include "DataFormats/GeometrySurface/interface/BoundCylinder.h" -#include "TrackingTools/DetLayers/interface/DetLayer.h" -#include "TrackingTools/DetLayers/interface/BarrelDetLayer.h" -#include "TrackingTools/DetLayers/interface/ForwardDetLayer.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "RecoMTD/DetLayers/interface/MTDDetLayerGeometry.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -class DirectMTDNavigation { -public: - /* Constructor */ - DirectMTDNavigation(const edm::ESHandle&); - - DirectMTDNavigation(const edm::ESHandle&, const edm::ParameterSet&); - - DirectMTDNavigation* clone() const { return new DirectMTDNavigation(*this); } - - /* Destructor */ - ~DirectMTDNavigation() {} - - std::vector compatibleLayers(const FreeTrajectoryState& fts, - PropagationDirection timeDirection) const; - - std::vector compatibleEndcapLayers(const FreeTrajectoryState& fts, - PropagationDirection timeDirection) const; - -private: - void inOutBarrel(const FreeTrajectoryState&, std::vector&) const; - void outInBarrel(const FreeTrajectoryState&, std::vector&) const; - - void inOutForward(const FreeTrajectoryState&, std::vector&) const; - void outInForward(const FreeTrajectoryState&, std::vector&) const; - - void inOutBackward(const FreeTrajectoryState&, std::vector&) const; - void outInBackward(const FreeTrajectoryState&, std::vector&) const; - - bool checkCompatible(const FreeTrajectoryState& fts, const BarrelDetLayer*) const; - bool checkCompatible(const FreeTrajectoryState& fts, const ForwardDetLayer*) const; - bool outward(const FreeTrajectoryState& fts) const; - - edm::ESHandle theMTDDetLayerGeometry; - float epsilon_; - bool theEndcapFlag; - bool theBarrelFlag; -}; -#endif diff --git a/RecoMTD/Navigation/interface/ETLNavigableLayer.h b/RecoMTD/Navigation/interface/ETLNavigableLayer.h deleted file mode 100644 index d3fe84941c398..0000000000000 --- a/RecoMTD/Navigation/interface/ETLNavigableLayer.h +++ /dev/null @@ -1,113 +0,0 @@ -#ifndef Navigation_ETLNavigableLayer_H -#define Navigation_ETLNavigableLayer_H - -/** \class ETLNavigableLayer - * - * Navigable layer for Forward Muon - * - * - * \author : Stefano Lacaprara - INFN Padova - * - * Modification: - * Chang Liu: - * compatibleLayers(dir) and compatibleLayers(fts, dir) are added, - * which return ALL DetLayers that are compatible with a given DetLayer. - */ - -/* Collaborating Class Declarations */ -#include "RecoMTD/Navigation/interface/MTDDetLayerMap.h" -#include "RecoMTD/Navigation/interface/MTDEtaRange.h" - -class DetLayer; -class ForwardDetLayer; - -/* Base Class Headers */ -#include "RecoMTD/Navigation/interface/MTDNavigableLayer.h" - -/* C++ Headers */ - -/* ====================================================================== */ - -/* Class ETLNavigableLayer Interface */ - -class ETLNavigableLayer : public MTDNavigableLayer { -public: - ETLNavigableLayer(const ForwardDetLayer* fdl, - const MapB& innerBarrel, - const MapE& outerEndcap, - const MapE& innerEndcap, - const MapB& allInnerBarrel, - const MapE& allOuterEndcap, - const MapE& allInnerEndcap) - : theDetLayer(fdl), - theInnerBarrelLayers(innerBarrel), - theOuterEndcapLayers(outerEndcap), - theInnerEndcapLayers(innerEndcap), - theAllInnerBarrelLayers(allInnerBarrel), - theAllOuterEndcapLayers(allOuterEndcap), - theAllInnerEndcapLayers(allInnerEndcap) {} - - /// Constructor with outer layers only - ETLNavigableLayer(const ForwardDetLayer* fdl, const MapE& outerEndcap) - : theDetLayer(fdl), theOuterEndcapLayers(outerEndcap) {} - /// Constructor with all outer layers only - ETLNavigableLayer(const ForwardDetLayer* fdl, const MapE& outerEndcap, const MapE& allOuterEndcap) - : theDetLayer(fdl), theOuterEndcapLayers(outerEndcap), theAllOuterEndcapLayers(allOuterEndcap) {} - - /// NavigableLayer interface - std::vector nextLayers(NavigationDirection dir) const override; - - /// NavigableLayer interface - std::vector nextLayers(const FreeTrajectoryState& fts, PropagationDirection dir) const override; - - std::vector compatibleLayers(NavigationDirection dir) const override; - - /// NavigableLayer interface - std::vector compatibleLayers(const FreeTrajectoryState& fts, - PropagationDirection dir) const override; - /// return DetLayer - const DetLayer* detLayer() const override; - - /// set DetLayer - void setDetLayer(const DetLayer*) override; - - /// Operations - MapE getOuterEndcapLayers() const { return theOuterEndcapLayers; } - MapE getInnerEndcapLayers() const { return theInnerEndcapLayers; } - MapB getInnerBarrelLayers() const { return theInnerBarrelLayers; } - - MapE getAllOuterEndcapLayers() const { return theAllOuterEndcapLayers; } - MapE getAllInnerEndcapLayers() const { return theAllInnerEndcapLayers; } - MapB getAllInnerBarrelLayers() const { return theAllInnerBarrelLayers; } - - /// set inward links - void setInwardLinks(const MapB&, const MapE&); - void setInwardCompatibleLinks(const MapB&, const MapE&); - -private: - void pushResult(std::vector& result, const MapB& map) const; - - void pushResult(std::vector& result, const MapE& map) const; - - void pushResult(std::vector& result, const MapB& map, const FreeTrajectoryState& fts) const; - - void pushResult(std::vector& result, const MapE& map, const FreeTrajectoryState& fts) const; - - void pushCompatibleResult(std::vector& result, - const MapB& map, - const FreeTrajectoryState& fts) const; - - void pushCompatibleResult(std::vector& result, - const MapE& map, - const FreeTrajectoryState& fts) const; - -private: - const ForwardDetLayer* theDetLayer; - MapB theInnerBarrelLayers; - MapE theOuterEndcapLayers; - MapE theInnerEndcapLayers; - MapB theAllInnerBarrelLayers; - MapE theAllOuterEndcapLayers; - MapE theAllInnerEndcapLayers; -}; -#endif diff --git a/RecoMTD/Navigation/interface/MTDDetLayerMap.h b/RecoMTD/Navigation/interface/MTDDetLayerMap.h deleted file mode 100644 index d3859da1fa1c8..0000000000000 --- a/RecoMTD/Navigation/interface/MTDDetLayerMap.h +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef MTDDetLayerMap_h -#define MTDDetLayerMap_h - -#include "TrackingTools/DetLayers/interface/BarrelDetLayer.h" -#include "TrackingTools/DetLayers/interface/ForwardDetLayer.h" -#include "RecoMTD/Navigation/interface/MTDEtaRange.h" - -#include -#include - -/** \class MTDDetLayerComp - * - * Sort the of BarrelDetLayers by radius, ForwardDetLayer by |Z|. - * - * \author : L. Gray - * - * Adapted from MuonDetLayerComp - * - */ - -struct MTDDetLayerComp { - bool operator()(const BarrelDetLayer* l1, const BarrelDetLayer* l2) const { - if (l1->specificSurface().radius() < l2->specificSurface().radius()) - return true; - return false; - } - - bool operator()(const ForwardDetLayer* l1, const ForwardDetLayer* l2) const { - if (fabs(l1->surface().position().z()) < fabs(l2->surface().position().z())) - return true; - return false; - } -}; - -// FIXME: these names are too generic... -typedef std::map MapB; -typedef std::map MapE; -typedef MapB::const_iterator MapBI; -typedef MapE::const_iterator MapEI; - -#endif diff --git a/RecoMTD/Navigation/interface/MTDEtaRange.h b/RecoMTD/Navigation/interface/MTDEtaRange.h deleted file mode 100644 index 3bba0191aecfe..0000000000000 --- a/RecoMTD/Navigation/interface/MTDEtaRange.h +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef Navigation_MTDEtaRange_H -#define Navigation_MTDEtaRange_H - -/** \class MTDEtaRange - * - * a class to define eta range used in Muon Navigation - * - * - * \author : Stefano Lacaprara - INFN Padova - * - * Modification: - * - */ - -class MTDEtaRange { -public: - MTDEtaRange(); - MTDEtaRange(float max, float min); - MTDEtaRange(const MTDEtaRange&); - ~MTDEtaRange() {} - MTDEtaRange& operator=(const MTDEtaRange&); - inline float min() const { return theMin; } - inline float max() const { return theMax; } - bool isInside(float eta, float error = 0.) const; - bool isInside(const MTDEtaRange& range) const; - bool isCompatible(const MTDEtaRange& range) const; - MTDEtaRange add(const MTDEtaRange&) const; - MTDEtaRange minRange(const MTDEtaRange&) const; - MTDEtaRange subtract(const MTDEtaRange&) const; - -private: - float theMin; - float theMax; -}; -#include -inline std::ostream& operator<<(std::ostream& os, const MTDEtaRange& range) { - os << "(" << range.min() << " : " << range.max() << ")"; - return os; -} - -#endif diff --git a/RecoMTD/Navigation/interface/MTDNavigableLayer.h b/RecoMTD/Navigation/interface/MTDNavigableLayer.h deleted file mode 100644 index 95f41f4c2e48f..0000000000000 --- a/RecoMTD/Navigation/interface/MTDNavigableLayer.h +++ /dev/null @@ -1,49 +0,0 @@ -#ifndef Navigation_MTDNavigableLayer_H -#define Navigation_MTDNavigableLayer_H - -/** \class MTDNavigableLayer - * - * base class for BTLNavigableLayer and ETLNavigableLayer. - * trackingRange defines an MTDEtaRange for an FTS, - * which is used for search compatible DetLayers. - * - * - * \author : L. Gray - FNAL - * - * Modification: - * - */ - -#include "RecoMTD/Navigation/interface/MTDDetLayerMap.h" -#include "RecoMTD/Navigation/interface/MTDEtaRange.h" - -class DetLayer; -class BarrelDetLayer; - -#include "TrackingTools/DetLayers/interface/NavigableLayer.h" - -class MTDNavigableLayer : public NavigableLayer { -public: - /// NavigableLayer interface - std::vector nextLayers(NavigationDirection dir) const override = 0; - - /// NavigableLayer interface - std::vector nextLayers(const FreeTrajectoryState& fts, PropagationDirection dir) const override = 0; - - std::vector compatibleLayers(NavigationDirection dir) const override = 0; - - /// NavigableLayer interface - std::vector compatibleLayers(const FreeTrajectoryState& fts, - PropagationDirection dir) const override = 0; - - /// return DetLayer - const DetLayer* detLayer() const override = 0; - - /// set DetLayer - void setDetLayer(const DetLayer*) override = 0; - - MTDEtaRange trackingRange(const FreeTrajectoryState& fts) const; - - bool isInsideOut(const FreeTrajectoryState& fts) const; -}; -#endif diff --git a/RecoMTD/Navigation/interface/MTDNavigationPrinter.h b/RecoMTD/Navigation/interface/MTDNavigationPrinter.h deleted file mode 100644 index cfb45339c4548..0000000000000 --- a/RecoMTD/Navigation/interface/MTDNavigationPrinter.h +++ /dev/null @@ -1,40 +0,0 @@ -#ifndef Navigation_MTDNavigationPrinter_H -#define Navigation_MTDNavigationPrinter_H - -/** \class MTDNavigationPrinter - * - * Description: - * class to print the MTDNavigationSchool - * - * - * \author : L. Gray - FNAL - * - */ - -class DetLayer; -class MTDDetLayerGeometry; -class GeometricSearchTracker; -class MTDNavigationSchool; - -#include -#include - -class MTDNavigationPrinter { -public: - MTDNavigationPrinter(const MTDDetLayerGeometry *, - MTDNavigationSchool const &, - bool enableBTL = true, - bool enableETL = true); - MTDNavigationPrinter(const MTDDetLayerGeometry *, MTDNavigationSchool const &, const GeometricSearchTracker *); - -private: - void printLayer(const DetLayer *) const; - void printLayers(const std::vector &) const; - /// return detector part (barrel, forward, backward) - // std::string layerPart(const DetLayer*) const; - /// return detector module (pixel, silicon, msgc, dt, csc, rpc) - // std::string layerModule(const DetLayer*) const; - - MTDNavigationSchool const *school = nullptr; -}; -#endif diff --git a/RecoMTD/Navigation/interface/MTDNavigationSchool.h b/RecoMTD/Navigation/interface/MTDNavigationSchool.h deleted file mode 100644 index a137f3fd0ec8e..0000000000000 --- a/RecoMTD/Navigation/interface/MTDNavigationSchool.h +++ /dev/null @@ -1,74 +0,0 @@ -#ifndef Navigation_MTDNavigationSchool_H -#define Navigation_MTDNavigationSchool_H - -/** \class MTDNavigationSchool - * - * Description: - * Navigation school for the MTD system - * This class defines which DetLayers are reacheable from each MTD DetLayer - * ( BTL and ETL ). The reacheableness is based on an eta range criteria. - * - * - * \author : L. Gray - * - * Modification: - * - - */ - -#include "RecoMTD/Navigation/interface/MTDDetLayerMap.h" -#include "TrackingTools/DetLayers/interface/NavigationSchool.h" -#include "RecoMTD/DetLayers/interface/MTDDetLayerGeometry.h" -#include -#include - -class BTLNavigableLayer; -class ETLNavigableLayer; -class MTDEtaRange; -class BarrelDetLayer; -class ForwardDetLayer; - -class MTDNavigationSchool : public NavigationSchool { -public: - ///Constructor - MTDNavigationSchool(const MTDDetLayerGeometry*, bool enableBTL = true, bool enableETL = true); - /// Destructor - ~MTDNavigationSchool() override; - /// return navigable layers, from base class - StateType navigableLayers() override; - -private: - /// add barrel layer - void addBarrelLayer(const BarrelDetLayer*); - /// add endcap layer (backward and forward) - void addEndcapLayer(const ForwardDetLayer*); - /// link barrel layers - void linkBarrelLayers(); - /// link endcap layers - void linkEndcapLayers(const MapE&, std::vector&); - /// establish inward links - void createInverseLinks(); - float calculateEta(const float&, const float&) const; - -private: - struct delete_layer { - template - void operator()(T*& p) { - if (p) { - delete p; - p = nullptr; - } - } - }; - - MapB theBarrelLayers; /// barrel - MapE theForwardLayers; /// +z endcap - MapE theBackwardLayers; /// -z endcap - - std::vector theBarrelNLC; - std::vector theForwardNLC; - std::vector theBackwardNLC; - - const MTDDetLayerGeometry* theMTDDetLayerGeometry; -}; -#endif diff --git a/RecoMTD/Navigation/src/BTLNavigableLayer.cc b/RecoMTD/Navigation/src/BTLNavigableLayer.cc deleted file mode 100644 index 0105063d350b5..0000000000000 --- a/RecoMTD/Navigation/src/BTLNavigableLayer.cc +++ /dev/null @@ -1,147 +0,0 @@ -/** \class BTLNavigableLayer - * - * Navigable layer for Barrel Timing Layer - * Adapted from MuonBarrelNavigableLayer - * - * - * \author : L. Gray - * - */ - -#include "RecoMTD/Navigation/interface/BTLNavigableLayer.h" - -/* Collaborating Class Header */ -#include "TrackingTools/DetLayers/interface/DetLayer.h" -#include "TrackingTools/DetLayers/interface/BarrelDetLayer.h" -#include "RecoMTD/Navigation/interface/MTDDetLayerMap.h" -#include "RecoMTD/Navigation/interface/MTDEtaRange.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "TrackingTools/TrajectoryState/interface/FreeTrajectoryState.h" -/* C++ Headers */ -#include - -using namespace std; -std::vector BTLNavigableLayer::nextLayers(NavigationDirection dir) const { - std::vector result; - - if (dir == insideOut) { - pushResult(result, theOuterBarrelLayers); - pushResult(result, theOuterBackwardLayers); - pushResult(result, theOuterForwardLayers); - } else { - pushResult(result, theInnerBarrelLayers); - reverse(result.begin(), result.end()); - pushResult(result, theInnerBackwardLayers); - pushResult(result, theInnerForwardLayers); - } - - result.reserve(result.size()); - return result; -} - -std::vector BTLNavigableLayer::nextLayers(const FreeTrajectoryState& fts, - PropagationDirection dir) const { - std::vector result; - - if ((isInsideOut(fts) && dir == alongMomentum) || (!isInsideOut(fts) && dir == oppositeToMomentum)) { - pushResult(result, theOuterBarrelLayers, fts); - pushResult(result, theOuterBackwardLayers, fts); - pushResult(result, theOuterForwardLayers, fts); - } else { - pushResult(result, theInnerBarrelLayers, fts); - reverse(result.begin(), result.end()); - pushResult(result, theInnerBackwardLayers, fts); - pushResult(result, theInnerForwardLayers, fts); - } - result.reserve(result.size()); - return result; -} - -std::vector BTLNavigableLayer::compatibleLayers(NavigationDirection dir) const { - std::vector result; - - if (dir == insideOut) { - pushResult(result, theAllOuterBarrelLayers); - pushResult(result, theAllOuterBackwardLayers); - pushResult(result, theAllOuterForwardLayers); - } else { - pushResult(result, theAllInnerBarrelLayers); - reverse(result.begin(), result.end()); - pushResult(result, theAllInnerBackwardLayers); - pushResult(result, theAllInnerForwardLayers); - } - - result.reserve(result.size()); - return result; -} - -std::vector BTLNavigableLayer::compatibleLayers(const FreeTrajectoryState& fts, - PropagationDirection dir) const { - std::vector result; - - if ((isInsideOut(fts) && dir == alongMomentum) || (!isInsideOut(fts) && dir == oppositeToMomentum)) { - pushCompatibleResult(result, theAllOuterBarrelLayers, fts); - pushCompatibleResult(result, theAllOuterBackwardLayers, fts); - pushCompatibleResult(result, theAllOuterForwardLayers, fts); - } else { - pushCompatibleResult(result, theAllInnerBarrelLayers, fts); - reverse(result.begin(), result.end()); - pushCompatibleResult(result, theAllInnerBackwardLayers, fts); - pushCompatibleResult(result, theAllInnerForwardLayers, fts); - } - result.reserve(result.size()); - return result; -} - -void BTLNavigableLayer::pushResult(std::vector& result, const MapB& map) const { - for (MapBI i = map.begin(); i != map.end(); i++) - result.push_back((*i).first); -} - -void BTLNavigableLayer::pushResult(std::vector& result, const MapE& map) const { - for (MapEI i = map.begin(); i != map.end(); i++) - result.push_back((*i).first); -} - -void BTLNavigableLayer::pushResult(std::vector& result, - const MapB& map, - const FreeTrajectoryState& fts) const { - for (MapBI i = map.begin(); i != map.end(); i++) - if ((*i).second.isInside(fts.position().eta())) - result.push_back((*i).first); -} - -void BTLNavigableLayer::pushResult(std::vector& result, - const MapE& map, - const FreeTrajectoryState& fts) const { - for (MapEI i = map.begin(); i != map.end(); i++) - if ((*i).second.isInside(fts.position().eta())) - result.push_back((*i).first); -} - -void BTLNavigableLayer::pushCompatibleResult(std::vector& result, - const MapB& map, - const FreeTrajectoryState& fts) const { - MTDEtaRange range = trackingRange(fts); - for (MapBI i = map.begin(); i != map.end(); i++) - if ((*i).second.isCompatible(range)) - result.push_back((*i).first); -} - -void BTLNavigableLayer::pushCompatibleResult(std::vector& result, - const MapE& map, - const FreeTrajectoryState& fts) const { - MTDEtaRange range = trackingRange(fts); - for (MapEI i = map.begin(); i != map.end(); i++) - if ((*i).second.isCompatible(range)) - result.push_back((*i).first); -} - -const DetLayer* BTLNavigableLayer::detLayer() const { return theDetLayer; } - -void BTLNavigableLayer::setDetLayer(const DetLayer* dl) { - edm::LogError("BTLNavigableLayer") << "BTLNavigableLayer::setDetLayer called!! " << endl; -} - -void BTLNavigableLayer::setInwardLinks(const MapB& innerBL) { theInnerBarrelLayers = innerBL; } -void BTLNavigableLayer::setInwardCompatibleLinks(const MapB& innerCBL) { theAllInnerBarrelLayers = innerCBL; } diff --git a/RecoMTD/Navigation/src/DirectMTDNavigation.cc b/RecoMTD/Navigation/src/DirectMTDNavigation.cc deleted file mode 100644 index 99c0d8ea9a468..0000000000000 --- a/RecoMTD/Navigation/src/DirectMTDNavigation.cc +++ /dev/null @@ -1,254 +0,0 @@ -#include "RecoMTD/Navigation/interface/DirectMTDNavigation.h" - -/** \file DirectMTDNavigation - * - * \author L. Gray - FNAL - */ - -#include "TrackingTools/DetLayers/interface/BarrelDetLayer.h" -#include "TrackingTools/DetLayers/interface/ForwardDetLayer.h" -#include "DataFormats/GeometrySurface/interface/BoundCylinder.h" -#include "DataFormats/GeometrySurface/interface/BoundDisk.h" -#include "RecoMTD/DetLayers/interface/MTDDetLayerGeometry.h" -#include "FWCore/Framework/interface/ESHandle.h" - -#include - -using namespace std; - -DirectMTDNavigation::DirectMTDNavigation(const edm::ESHandle& mtdLayout) - : theMTDDetLayerGeometry(mtdLayout), epsilon_(100.), theEndcapFlag(true), theBarrelFlag(true) {} - -DirectMTDNavigation::DirectMTDNavigation(const edm::ESHandle& mtdLayout, - const edm::ParameterSet& par) - : theMTDDetLayerGeometry(mtdLayout), - epsilon_(100.), - theEndcapFlag(par.getParameter("Endcap")), - theBarrelFlag(par.getParameter("Barrel")) {} - -/* return compatible layers for given trajectory state */ -vector DirectMTDNavigation::compatibleLayers(const FreeTrajectoryState& fts, - PropagationDirection dir) const { - float z0 = fts.position().z(); - float zm = fts.momentum().z(); - - bool inOut = outward(fts); - - vector output; - - // check direction and position of FTS to get a correct order of DetLayers - - if (inOut) { - if ((zm * z0) >= 0) { - if (theBarrelFlag) - inOutBarrel(fts, output); - if (theEndcapFlag) { - if (z0 >= 0) - inOutForward(fts, output); - else - inOutBackward(fts, output); - } - } else { - if (theEndcapFlag) { - if (z0 >= 0) - outInForward(fts, output); - else - outInBackward(fts, output); - } - if (theBarrelFlag) - inOutBarrel(fts, output); - } - } else { - if ((zm * z0) >= 0) { - if (theBarrelFlag) - outInBarrel(fts, output); - if (theEndcapFlag) { - if (z0 >= 0) - inOutForward(fts, output); - else - inOutBackward(fts, output); - } - } else { - if (theEndcapFlag) { - if (z0 >= 0) - outInForward(fts, output); - else - outInBackward(fts, output); - } - if (theBarrelFlag) - outInBarrel(fts, output); - } - } - - if (dir == oppositeToMomentum) - std::reverse(output.begin(), output.end()); - - return output; -} - -/* -return compatible endcap layers on BOTH ends; -used for beam-halo muons -*/ -vector DirectMTDNavigation::compatibleEndcapLayers(const FreeTrajectoryState& fts, - PropagationDirection dir) const { - float zm = fts.momentum().z(); - - vector output; - - // collect all endcap layers on 2 sides - outInBackward(fts, output); - inOutForward(fts, output); - - // check direction FTS to get a correct order of DetLayers - if ((zm > 0 && dir == oppositeToMomentum) || (zm < 0 && dir == alongMomentum)) - std::reverse(output.begin(), output.end()); - - return output; -} - -void DirectMTDNavigation::inOutBarrel(const FreeTrajectoryState& fts, vector& output) const { - bool cont = false; - const vector& barrel = theMTDDetLayerGeometry->allBarrelLayers(); - - for (vector::const_iterator iter_B = barrel.begin(); iter_B != barrel.end(); iter_B++) { - if (cont) - output.push_back((*iter_B)); - else if (checkCompatible(fts, dynamic_cast(*iter_B))) { - output.push_back((*iter_B)); - cont = true; - } - } -} - -void DirectMTDNavigation::outInBarrel(const FreeTrajectoryState& fts, vector& output) const { - // default barrel layers are in out, reverse order - const vector& barrel = theMTDDetLayerGeometry->allBarrelLayers(); - - bool cont = false; - vector::const_iterator rbegin = barrel.end(); - rbegin--; - vector::const_iterator rend = barrel.begin(); - rend--; - - for (vector::const_iterator iter_B = rbegin; iter_B != rend; iter_B--) { - if (cont) - output.push_back((*iter_B)); - else if (checkCompatible(fts, dynamic_cast(*iter_B))) { - output.push_back((*iter_B)); - cont = true; - } - } -} - -void DirectMTDNavigation::inOutForward(const FreeTrajectoryState& fts, vector& output) const { - const vector& forward = theMTDDetLayerGeometry->allForwardLayers(); - bool cont = false; - for (vector::const_iterator iter_E = forward.begin(); iter_E != forward.end(); iter_E++) { - if (cont) - output.push_back((*iter_E)); - else if (checkCompatible(fts, dynamic_cast(*iter_E))) { - output.push_back((*iter_E)); - cont = true; - } - } -} - -void DirectMTDNavigation::outInForward(const FreeTrajectoryState& fts, vector& output) const { - // default forward layers are in out, reverse order - - bool cont = false; - const vector& forward = theMTDDetLayerGeometry->allForwardLayers(); - vector::const_iterator rbegin = forward.end(); - rbegin--; - vector::const_iterator rend = forward.begin(); - rend--; - for (vector::const_iterator iter_E = rbegin; iter_E != rend; iter_E--) { - if (cont) - output.push_back((*iter_E)); - else if (checkCompatible(fts, dynamic_cast(*iter_E))) { - output.push_back((*iter_E)); - cont = true; - } - } -} - -void DirectMTDNavigation::inOutBackward(const FreeTrajectoryState& fts, vector& output) const { - bool cont = false; - const vector& backward = theMTDDetLayerGeometry->allBackwardLayers(); - - for (vector::const_iterator iter_E = backward.begin(); iter_E != backward.end(); iter_E++) { - if (cont) - output.push_back((*iter_E)); - else if (checkCompatible(fts, dynamic_cast(*iter_E))) { - output.push_back((*iter_E)); - cont = true; - } - } -} - -void DirectMTDNavigation::outInBackward(const FreeTrajectoryState& fts, vector& output) const { - bool cont = false; - const vector& backward = theMTDDetLayerGeometry->allBackwardLayers(); - - vector::const_iterator rbegin = backward.end(); - rbegin--; - vector::const_iterator rend = backward.begin(); - rend--; - for (vector::const_iterator iter_E = rbegin; iter_E != rend; iter_E--) { - if (cont) - output.push_back((*iter_E)); - else if (checkCompatible(fts, dynamic_cast(*iter_E))) { - output.push_back((*iter_E)); - cont = true; - } - } -} - -bool DirectMTDNavigation::checkCompatible(const FreeTrajectoryState& fts, const BarrelDetLayer* dl) const { - float z0 = fts.position().z(); - float r0 = fts.position().perp(); - float zm = fts.momentum().z(); - float rm = fts.momentum().perp(); - float slope = zm / rm; - if (!outward(fts)) - slope = -slope; - const BoundCylinder& bc = dl->specificSurface(); - float radius = bc.radius(); - float length = bc.bounds().length() / 2.; - - float z1 = slope * (radius - r0) + z0; - return (fabs(z1) <= fabs(length) + epsilon_); -} - -bool DirectMTDNavigation::checkCompatible(const FreeTrajectoryState& fts, const ForwardDetLayer* dl) const { - float z0 = fts.position().z(); - float r0 = fts.position().perp(); - float zm = fts.momentum().z(); - float rm = fts.momentum().perp(); - float slope = rm / zm; - - if (!outward(fts)) - slope = -slope; - - const BoundDisk& bd = dl->specificSurface(); - - float outRadius = bd.outerRadius(); - float inRadius = bd.innerRadius(); - float z = bd.position().z(); - - float r1 = slope * (z - z0) + r0; - return (r1 >= inRadius - epsilon_ && r1 <= outRadius + epsilon_); -} - -bool DirectMTDNavigation::outward(const FreeTrajectoryState& fts) const { - // return (fts.position().basicVector().dot(fts.momentum().basicVector())>0); - - float x0 = fts.position().x(); - float y0 = fts.position().y(); - - float xm = fts.momentum().x(); - float ym = fts.momentum().y(); - - return ((x0 * xm + y0 * ym) > 0); -} diff --git a/RecoMTD/Navigation/src/ETLNavigableLayer.cc b/RecoMTD/Navigation/src/ETLNavigableLayer.cc deleted file mode 100644 index f6ec5e583d263..0000000000000 --- a/RecoMTD/Navigation/src/ETLNavigableLayer.cc +++ /dev/null @@ -1,151 +0,0 @@ -/** \class ETLNavigableLayer - * - * Navigable layer for ETL - * - * - * \author : L. Gray - FNAL - * - * - * Adapted from ETLNavigableLayer - */ - -#include "RecoMTD/Navigation/interface/ETLNavigableLayer.h" - -/* Collaborating Class Header */ -#include "TrackingTools/DetLayers/interface/DetLayer.h" -#include "TrackingTools/DetLayers/interface/ForwardDetLayer.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include - -using namespace std; -using namespace edm; - -vector ETLNavigableLayer::nextLayers(NavigationDirection dir) const { - vector result; - vector barrel; - - if (dir == insideOut) { - pushResult(result, theOuterEndcapLayers); - } else { - pushResult(result, theInnerEndcapLayers); - reverse(result.begin(), result.end()); - pushResult(barrel, theInnerBarrelLayers); - reverse(barrel.begin(), barrel.end()); - result.insert(result.end(), barrel.begin(), barrel.end()); - } - - result.reserve(result.size()); - return result; -} - -vector ETLNavigableLayer::nextLayers(const FreeTrajectoryState& fts, PropagationDirection dir) const { - vector result; - vector barrel; - - if ((isInsideOut(fts) && dir == alongMomentum) || (!isInsideOut(fts) && dir == oppositeToMomentum)) { - pushResult(result, theOuterEndcapLayers, fts); - } else { - pushResult(result, theInnerEndcapLayers, fts); - reverse(result.begin(), result.end()); - pushResult(barrel, theInnerBarrelLayers, fts); - reverse(barrel.begin(), barrel.end()); - result.insert(result.end(), barrel.begin(), barrel.end()); - } - - result.reserve(result.size()); - return result; -} - -vector ETLNavigableLayer::compatibleLayers(NavigationDirection dir) const { - vector result; - vector barrel; - - if (dir == insideOut) { - pushResult(result, theAllOuterEndcapLayers); - } else { - pushResult(result, theAllInnerEndcapLayers); - reverse(result.begin(), result.end()); - pushResult(barrel, theAllInnerBarrelLayers); - reverse(barrel.begin(), barrel.end()); - result.insert(result.end(), barrel.begin(), barrel.end()); - } - - result.reserve(result.size()); - return result; -} -vector ETLNavigableLayer::compatibleLayers(const FreeTrajectoryState& fts, - PropagationDirection dir) const { - vector result; - vector barrel; - - if ((isInsideOut(fts) && dir == alongMomentum) || (!isInsideOut(fts) && dir == oppositeToMomentum)) { - pushCompatibleResult(result, theAllOuterEndcapLayers, fts); - } else { - pushCompatibleResult(result, theAllInnerEndcapLayers, fts); - reverse(result.begin(), result.end()); - pushCompatibleResult(barrel, theAllInnerBarrelLayers, fts); - reverse(barrel.begin(), barrel.end()); - result.insert(result.end(), barrel.begin(), barrel.end()); - } - result.reserve(result.size()); - return result; -} - -void ETLNavigableLayer::pushResult(vector& result, const MapB& map) const { - for (MapBI i = map.begin(); i != map.end(); i++) - result.push_back((*i).first); -} - -void ETLNavigableLayer::pushResult(vector& result, const MapE& map) const { - for (MapEI i = map.begin(); i != map.end(); i++) - result.push_back((*i).first); -} - -void ETLNavigableLayer::pushResult(vector& result, - const MapE& map, - const FreeTrajectoryState& fts) const { - for (MapEI i = map.begin(); i != map.end(); i++) - if ((*i).second.isInside(fts.position().eta())) - result.push_back((*i).first); -} - -void ETLNavigableLayer::pushResult(vector& result, - const MapB& map, - const FreeTrajectoryState& fts) const { - for (MapBI i = map.begin(); i != map.end(); i++) - if ((*i).second.isInside(fts.position().eta())) - result.push_back((*i).first); -} - -void ETLNavigableLayer::pushCompatibleResult(vector& result, - const MapB& map, - const FreeTrajectoryState& fts) const { - MTDEtaRange range = trackingRange(fts); - for (MapBI i = map.begin(); i != map.end(); i++) - if ((*i).second.isCompatible(range)) - result.push_back((*i).first); -} - -void ETLNavigableLayer::pushCompatibleResult(vector& result, - const MapE& map, - const FreeTrajectoryState& fts) const { - MTDEtaRange range = trackingRange(fts); - for (MapEI i = map.begin(); i != map.end(); i++) - if ((*i).second.isCompatible(range)) - result.push_back((*i).first); -} - -const DetLayer* ETLNavigableLayer::detLayer() const { return theDetLayer; } - -void ETLNavigableLayer::setDetLayer(const DetLayer* dl) { - edm::LogError("ETLNavigablaLayer") << "ETLNavigableLayer::setDetLayer called!! " << endl; -} - -void ETLNavigableLayer::setInwardLinks(const MapB& innerBL, const MapE& innerEL) { - theInnerBarrelLayers = innerBL; - theInnerEndcapLayers = innerEL; -} -void ETLNavigableLayer::setInwardCompatibleLinks(const MapB& innerCBL, const MapE& innerCEL) { - theAllInnerBarrelLayers = innerCBL; - theAllInnerEndcapLayers = innerCEL; -} diff --git a/RecoMTD/Navigation/src/MTDEtaRange.cc b/RecoMTD/Navigation/src/MTDEtaRange.cc deleted file mode 100644 index 53a71b49ce196..0000000000000 --- a/RecoMTD/Navigation/src/MTDEtaRange.cc +++ /dev/null @@ -1,76 +0,0 @@ -/** \class MTDEtaRange - * - * a class to define eta range used in MTD Navigation - * - * - * \author : L. Gray - FNAL - * - * Modification: - * - */ - -#include "RecoMTD/Navigation/interface/MTDEtaRange.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -#include - -MTDEtaRange::MTDEtaRange() : theMin(0), theMax(0) {} - -MTDEtaRange::MTDEtaRange(float max, float min) { - if (max < min) { - edm::LogWarning("MTDEtaRange") << "Warning MTDEtaRange:: max < min!! correcting" << std::endl; - float tmp(min); - min = max; - max = tmp; - } - theMax = max; - theMin = min; -} - -MTDEtaRange::MTDEtaRange(const MTDEtaRange& range) : theMin(range.theMin), theMax(range.theMax) {} -/// Assignment operator -MTDEtaRange& MTDEtaRange::operator=(const MTDEtaRange& range) { - if (this != &range) { - theMin = range.theMin; - theMax = range.theMax; - } - return *this; -} - -bool MTDEtaRange::isInside(float eta, float error) const { - if ((eta + error) > max() || (eta - error) < min()) - return false; - return true; -} -/// true if this is completely inside range -bool MTDEtaRange::isInside(const MTDEtaRange& range) const { - if (min() > range.min() && max() < range.max()) - return true; - return false; -} -/// true if this overlaps with range -bool MTDEtaRange::isCompatible(const MTDEtaRange& range) const { - if (range.min() > max() || range.max() < min()) - return false; - return true; -} -/// create maximum of ranges -MTDEtaRange MTDEtaRange::add(const MTDEtaRange& range) const { - float max = (theMax > range.theMax) ? theMax : range.theMax; - float min = (theMin < range.theMin) ? theMin : range.theMin; - return MTDEtaRange(max, min); -} -/// create new range of size this minus range -MTDEtaRange MTDEtaRange::subtract(const MTDEtaRange& range) const { - if (range.isInside(*this)) { - edm::LogInfo("MTDEtaRange") << "MTDEtaRange: range is inside!" << std::endl; - return *this; - } - if (!range.isCompatible(*this)) { - edm::LogInfo("MTDEtaRange") << "MTDEtaRange: no overlap between ranges" << std::endl; - return *this; - } - - float max = isInside(range.theMin) ? range.theMin : theMax; - float min = isInside(range.theMax) ? range.theMax : theMin; - return MTDEtaRange(max, min); -} diff --git a/RecoMTD/Navigation/src/MTDNavigableLayer.cc b/RecoMTD/Navigation/src/MTDNavigableLayer.cc deleted file mode 100644 index 3eee6f70336c7..0000000000000 --- a/RecoMTD/Navigation/src/MTDNavigableLayer.cc +++ /dev/null @@ -1,78 +0,0 @@ -/** \class MTDNavigableLayer - * - * base class for MTDNavigableLayer and MuonForwardNavigableLayer. - * trackingRange defines an MTDEtaRange for an FTS, - * which is used for searching compatible DetLayers. - * - * - * \author : Chang Liu - Purdue University - * with contributions from: R. Bellan - INFN Torino - * - * code of trackingRange is from MuonGlobalNavigation in ORCA - * whose author is Stefano Lacaprara - INFN Padova - * Modification: - * - */ - -#include "RecoMTD/Navigation/interface/MTDNavigableLayer.h" - -/* Collaborating Class Header */ -#include "TrackingTools/DetLayers/interface/DetLayer.h" -#include "TrackingTools/DetLayers/interface/BarrelDetLayer.h" -#include "RecoMTD/Navigation/interface/MTDDetLayerMap.h" -#include "RecoMTD/Navigation/interface/MTDEtaRange.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" -/* C++ Headers */ -#include - -using namespace std; - -extern float calculateEta(float r, float z) { - if (z > 0) - return -log((tan(atan(r / z) / 2.))); - return log(-(tan(atan(r / z) / 2.))); -} - -MTDEtaRange MTDNavigableLayer::trackingRange(const FreeTrajectoryState& fts) const { - float z = fts.position().z(); - float r = fts.position().perp(); - float eta; - if (z > 0) - eta = -log((tan(atan(r / z) / 2.))); - else - eta = log(-(tan(atan(r / z) / 2.))); - - double theta = atan(r / z); - - double spread = 5.0 * sqrt(fts.curvilinearError().matrix()(2, 2)) / fabs(sin(theta)); //5*sigma(eta) - - //C.L.: this spread could be too large to use. - // convert it to a smaller one by assuming a virtual radius - // that transforms the error on angle to error on z axis. - // not accurate, but works! - - double eta_max = 0; - - if (z > 0) - eta_max = calculateEta(r, z + spread); - else - eta_max = calculateEta(r, z - spread); - - spread = std::min(0.07, fabs(eta_max - eta)); - - MTDEtaRange range(eta + spread, eta - spread); - - spread = 0.07; - // special treatment for special geometry in overlap region - - if (eta > 1.0 && eta < 1.1) - range = MTDEtaRange(eta + 3.0 * spread, eta - spread); - if (eta < -1.0 && eta > -1.1) - range = MTDEtaRange(eta + spread, eta - 3.0 * spread); - - return range; -} - -bool MTDNavigableLayer::isInsideOut(const FreeTrajectoryState& fts) const { - return (fts.position().basicVector().dot(fts.momentum().basicVector()) > 0); -} diff --git a/RecoMTD/Navigation/src/MTDNavigationPrinter.cc b/RecoMTD/Navigation/src/MTDNavigationPrinter.cc deleted file mode 100644 index c3360120a0928..0000000000000 --- a/RecoMTD/Navigation/src/MTDNavigationPrinter.cc +++ /dev/null @@ -1,176 +0,0 @@ -/** \class MTDNavigationPrinter - * - * Description: - * class to print the MTDNavigationSchool - * - * - * \author : L. Gray - FNAL - * - */ - -#include "RecoMTD/Navigation/interface/MTDNavigationPrinter.h" - -#include "TrackingTools/DetLayers/interface/BarrelDetLayer.h" -#include "TrackingTools/DetLayers/interface/ForwardDetLayer.h" -#include "DataFormats/GeometrySurface/interface/BoundCylinder.h" -#include "DataFormats/GeometrySurface/interface/BoundDisk.h" -#include "RecoMTD/DetLayers/interface/MTDDetLayerGeometry.h" -#include "RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h" -#include "RecoMTD/Navigation/interface/MTDNavigationSchool.h" -#include "FWCore/MessageLogger/interface/MessageLogger.h" - -#include -#include -using namespace std; - -// #define VI_DEBUG - -#ifdef VI_DEBUG -#define PRINT(x) std::cout << x << ' ' -#else -#define PRINT(x) edm::LogInfo(x) -#endif - -MTDNavigationPrinter::MTDNavigationPrinter(const MTDDetLayerGeometry* mtdLayout, - MTDNavigationSchool const& sh, - bool enableBTL, - bool enableETL) - : school(&sh) { - PRINT("MTDNavigationPrinter") << "MTDNavigationPrinter::MTDNavigationPrinter" << std::endl; - PRINT("MTDNavigationPrinter") << "================================" << std::endl; - PRINT("MTDNavigationPrinter") << "BARREL:" << std::endl; - vector barrel; - if (enableBTL) - barrel = mtdLayout->allBarrelLayers(); - else - barrel = mtdLayout->allBarrelLayers(); - - PRINT("MTDNavigationPrinter") << "There are " << barrel.size() << " Barrel DetLayers"; - for (auto i : barrel) - printLayer(i); - PRINT("MTDNavigationPrinter") << "================================" << std::endl; - PRINT("MTDNavigationPrinter") << "BACKWARD:" << std::endl; - - vector backward; - - if (enableETL) - backward = mtdLayout->allBackwardLayers(); - else - backward = mtdLayout->allBackwardLayers(); - - PRINT("MTDNavigationPrinter") << "There are " << backward.size() << " Backward DetLayers"; - for (auto i : backward) - printLayer(i); - PRINT("MTDNavigationPrinter") << "==============================" << std::endl; - PRINT("MTDNavigationPrinter") << "FORWARD:" << std::endl; - vector forward; - - if (enableETL) - forward = mtdLayout->allForwardLayers(); - else - forward = mtdLayout->allForwardLayers(); - - PRINT("MTDNavigationPrinter") << "There are " << forward.size() << " Forward DetLayers" << std::endl; - for (auto i : forward) - printLayer(i); -} - -MTDNavigationPrinter::MTDNavigationPrinter(const MTDDetLayerGeometry* mtdLayout, - MTDNavigationSchool const& sh, - const GeometricSearchTracker* tracker) - : school(&sh) { - PRINT("MTDNavigationPrinter") << "MTDNavigationPrinter::MTDNavigationPrinter" << std::endl; - // vector::const_iterator tkiter; - // vector::const_iterator tkfiter; - PRINT("MTDNavigationPrinter") << "================================" << std::endl; - PRINT("MTDNavigationPrinter") << "BARREL:" << std::endl; - const vector& tkbarrel = tracker->barrelLayers(); - PRINT("MTDNavigationPrinter") << "There are " << tkbarrel.size() << " Tk Barrel DetLayers" << std::endl; - // for ( tkiter = tkbarrel.begin(); tkiter != tkbarrel.end(); tkiter++ ) printLayer(*tkiter); - vector barrel = mtdLayout->allBarrelLayers(); - PRINT("MTDNavigationPrinter") << "There are " << barrel.size() << " Mu Barrel DetLayers"; - for (auto i : barrel) - printLayer(i); - PRINT("MTDNavigationPrinter") << "================================" << std::endl; - PRINT("MTDNavigationPrinter") << "BACKWARD:" << std::endl; - const vector& tkbackward = tracker->negForwardLayers(); - PRINT("MTDNavigationPrinter") << "There are " << tkbackward.size() << " Tk Backward DetLayers" << std::endl; - /// for ( tkfiter = tkbackward.begin(); tkfiter != tkbackward.end(); tkfiter++ ) printLayer(*tkfiter); - vector backward = mtdLayout->allBackwardLayers(); - PRINT("MTDNavigationPrinter") << "There are " << backward.size() << " Mu Backward DetLayers << std::endl"; - for (auto i : backward) - printLayer(i); - PRINT("MTDNavigationPrinter") << "==============================" << std::endl; - PRINT("MTDNavigationPrinter") << "FORWARD:" << std::endl; - const vector& tkforward = tracker->posForwardLayers(); - PRINT("MTDNavigationPrinter") << "There are " << tkforward.size() << " Tk Forward DetLayers" << std::endl; - // for ( tkfiter = tkforward.begin(); tkfiter != tkforward.end(); tkfiter++ ) printLayer(*tkfiter); - - vector forward = mtdLayout->allForwardLayers(); - PRINT("MTDNavigationPrinter") << "There are " << forward.size() << " Mu Forward DetLayers"; - for (auto i : forward) - printLayer(i); -} - -/// print layer -void MTDNavigationPrinter::printLayer(const DetLayer* layer) const { - vector nextLayers = school->nextLayers(*layer, insideOut); - vector compatibleLayers = school->compatibleLayers(*layer, insideOut); - if (const BarrelDetLayer* bdl = dynamic_cast(layer)) { - PRINT("MTDNavigationPrinter") << layer->location() << " " << layer->subDetector() - << " layer at R: " << setiosflags(ios::showpoint | ios::fixed) << setw(8) - << setprecision(2) << bdl->specificSurface().radius() << " length: " << setw(6) - << setprecision(2) << layer->surface().bounds().length() << std::endl; - - } else if (const ForwardDetLayer* fdl = dynamic_cast(layer)) { - PRINT("MTDNavigationPrinter") << endl - << layer->location() << " " << layer->subDetector() - << "layer at z: " << setiosflags(ios::showpoint | ios::fixed) << setw(8) - << setprecision(2) << layer->surface().position().z() << " inner r: " << setw(6) - << setprecision(2) << fdl->specificSurface().innerRadius() << " outer r: " << setw(6) - << setprecision(2) << fdl->specificSurface().outerRadius() << std::endl; - } - PRINT("MTDNavigationPrinter") << " has " << nextLayers.size() - << " next layers in the direction inside-out: " << std::endl; - printLayers(nextLayers); - - nextLayers.clear(); - nextLayers = school->nextLayers(*layer, outsideIn); - - PRINT("MTDNavigationPrinter") << " has " << nextLayers.size() - << " next layers in the direction outside-in: " << std::endl; - printLayers(nextLayers); - - PRINT("MTDNavigationPrinter") << " has " << compatibleLayers.size() - << " compatible layers in the direction inside-out:: " << std::endl; - printLayers(compatibleLayers); - compatibleLayers.clear(); - compatibleLayers = school->compatibleLayers(*layer, outsideIn); - - PRINT("MTDNavigationPrinter") << " has " << compatibleLayers.size() - << " compatible layers in the direction outside-in: " << std::endl; - printLayers(compatibleLayers); -} - -/// print next layers -void MTDNavigationPrinter::printLayers(const vector& nextLayers) const { - for (vector::const_iterator inext = nextLayers.begin(); inext != nextLayers.end(); inext++) { - PRINT("MTDNavigationPrinter") << " --> " << std::endl; - if ((*inext)->location() == GeomDetEnumerators::barrel) { - const BarrelDetLayer* l = dynamic_cast(&(**inext)); - PRINT("MTDNavigationPrinter") << (*inext)->location() << " " << (*inext)->subDetector() - << " layer at R: " << setiosflags(ios::showpoint | ios::fixed) << setw(8) - << setprecision(2) << l->specificSurface().radius() << " " << std::endl; - } else { - const ForwardDetLayer* l = dynamic_cast(&(**inext)); - PRINT("MTDNavigationPrinter") << (*inext)->location() << " " << (*inext)->subDetector() - << " layer at z: " << setiosflags(ios::showpoint | ios::fixed) << setw(8) - << setprecision(2) << l->surface().position().z() << " " << std::endl; - } - PRINT("MTDNavigationPrinter") << setiosflags(ios::showpoint | ios::fixed) << setprecision(1) << setw(6) - << (*inext)->surface().bounds().length() << ", " << setw(6) - << (*inext)->surface().bounds().width() << ", " << setw(4) - << (*inext)->surface().bounds().thickness() << " : " << (*inext)->surface().position() - << std::endl; - } -} diff --git a/RecoMTD/Navigation/src/MTDNavigationSchool.cc b/RecoMTD/Navigation/src/MTDNavigationSchool.cc deleted file mode 100644 index 9dd4fbac6ba6c..0000000000000 --- a/RecoMTD/Navigation/src/MTDNavigationSchool.cc +++ /dev/null @@ -1,334 +0,0 @@ -/** \class MTDNavigationSchool - * - * Description: - * Navigation school for the MTD system - * This class defines which DetLayers are reacheable from each MTD DetLayer - * (BTL and ETL). The reacheableness is based on an eta range criteria. - * - * - * \author : L. Gray - FNAL - * - * Modification: - * - */ - -#include "RecoMTD/Navigation/interface/MTDNavigationSchool.h" - -/* Collaborating Class Header */ -#include "TrackingTools/DetLayers/interface/BarrelDetLayer.h" -#include "TrackingTools/DetLayers/interface/ForwardDetLayer.h" -#include "DataFormats/GeometrySurface/interface/BoundCylinder.h" -#include "DataFormats/GeometrySurface/interface/BoundDisk.h" -#include "RecoMTD/DetLayers/interface/MTDDetLayerGeometry.h" -#include "RecoMTD/Navigation/interface/BTLNavigableLayer.h" -#include "RecoMTD/Navigation/interface/ETLNavigableLayer.h" -#include "RecoMTD/Navigation/interface/MTDEtaRange.h" -#include "RecoMTD/Navigation/interface/MTDDetLayerMap.h" -#include "FWCore/Utilities/interface/Exception.h" - -#include -#include -using namespace std; - -/// Constructor -MTDNavigationSchool::MTDNavigationSchool(const MTDDetLayerGeometry* mtdLayout, bool enableBTL, bool enableETL) - : theMTDDetLayerGeometry(mtdLayout) { - theAllDetLayersInSystem = &mtdLayout->allLayers(); - theAllNavigableLayer.resize(mtdLayout->allLayers().size(), nullptr); - - // get all barrel DetLayers (BTL) - vector barrel; - if (enableBTL) - barrel = mtdLayout->allBarrelLayers(); - else - barrel = mtdLayout->allBarrelLayers(); - - for (auto i = barrel.begin(); i != barrel.end(); i++) { - const BarrelDetLayer* mbp = dynamic_cast(*i); - if (mbp == nullptr) - throw cms::Exception("MTDNavigationSchool", "Bad BarrelDetLayer"); - addBarrelLayer(mbp); - } - - // get all endcap DetLayers (ETL) - vector endcap; - if (enableETL) - endcap = mtdLayout->allEndcapLayers(); - else - endcap = mtdLayout->allEndcapLayers(); - - for (auto i = endcap.begin(); i != endcap.end(); i++) { - const ForwardDetLayer* mep = dynamic_cast(*i); - if (mep == nullptr) - throw cms::Exception("MTDNavigationSchool", "Bad ForwardDetLayer"); - addEndcapLayer(mep); - } - - // create outward links for all DetLayers - linkBarrelLayers(); - linkEndcapLayers(theForwardLayers, theForwardNLC); - linkEndcapLayers(theBackwardLayers, theBackwardNLC); - - // create inverse links - createInverseLinks(); -} - -/// Destructor -MTDNavigationSchool::~MTDNavigationSchool() { - for_each(theBarrelNLC.begin(), theBarrelNLC.end(), delete_layer()); - for_each(theForwardNLC.begin(), theForwardNLC.end(), delete_layer()); - for_each(theBackwardNLC.begin(), theBackwardNLC.end(), delete_layer()); -} - -/// return all Navigable layers -MTDNavigationSchool::StateType MTDNavigationSchool::navigableLayers() { - StateType result; - - vector::const_iterator ib; - vector::const_iterator ie; - - for (ib = theBarrelNLC.begin(); ib != theBarrelNLC.end(); ib++) { - result.push_back(*ib); - } - - for (ie = theForwardNLC.begin(); ie != theForwardNLC.end(); ie++) { - result.push_back(*ie); - } - - for (ie = theBackwardNLC.begin(); ie != theBackwardNLC.end(); ie++) { - result.push_back(*ie); - } - - return result; -} - -/// create barrel layer map -void MTDNavigationSchool::addBarrelLayer(const BarrelDetLayer* mbp) { - const BoundCylinder& bc = mbp->specificSurface(); - float radius = bc.radius(); - float length = bc.bounds().length() / 2.; - - float eta_max = calculateEta(radius, length); - float eta_min = -eta_max; - - theBarrelLayers[mbp] = MTDEtaRange(eta_max, eta_min); -} - -/// create forwrad/backward layer maps -void MTDNavigationSchool::addEndcapLayer(const ForwardDetLayer* mep) { - const BoundDisk& bd = mep->specificSurface(); - float outRadius = bd.outerRadius(); - float inRadius = bd.innerRadius(); - float thick = bd.bounds().length() / 2.; - float z = bd.position().z(); - - if (z > 0.) { - float eta_min = calculateEta(outRadius, z - thick); - float eta_max = calculateEta(inRadius, z + thick); - theForwardLayers[mep] = MTDEtaRange(eta_max, eta_min); - } else { - float eta_max = calculateEta(outRadius, z + thick); - float eta_min = calculateEta(inRadius, z - thick); - theBackwardLayers[mep] = MTDEtaRange(eta_max, eta_min); - } -} - -/// calculate pseudorapidity from r and z -float MTDNavigationSchool::calculateEta(const float& r, const float& z) const { - if (z > 0) - return -log((tan(atan(r / z) / 2.))); - return log(-(tan(atan(r / z) / 2.))); -} - -/// linking barrel layers outwards -void MTDNavigationSchool::linkBarrelLayers() { - for (MapBI bl = theBarrelLayers.begin(); bl != theBarrelLayers.end(); bl++) { - MTDEtaRange range = (*bl).second; - - // first add next barrel layer - MapBI plusOne(bl); - plusOne++; - MapB outerBarrel; - MapB allOuterBarrel; - if (plusOne != theBarrelLayers.end()) { - outerBarrel.insert(*plusOne); - } - // add all outer barrel layers - for (MapBI iMBI = plusOne; iMBI != theBarrelLayers.end(); iMBI++) { - allOuterBarrel.insert(*iMBI); - } - // then add all compatible backward layers with an eta criteria - MapE allOuterBackward; - for (MapEI el = theBackwardLayers.begin(); el != theBackwardLayers.end(); el++) { - if ((*el).second.isCompatible(range)) { - allOuterBackward.insert(*el); - } - } - //add the backward next layer with an eta criteria - MapE outerBackward; - for (MapEI el = theBackwardLayers.begin(); el != theBackwardLayers.end(); el++) { - if ((*el).second.isCompatible(range)) { - outerBackward.insert(*el); - break; - } - } - - // then add all compatible forward layers with an eta criteria - MapE allOuterForward; - for (MapEI el = theForwardLayers.begin(); el != theForwardLayers.end(); el++) { - if ((*el).second.isCompatible(range)) { - allOuterForward.insert(*el); - } - } - - // then add forward next layer with an eta criteria - MapE outerForward; - for (MapEI el = theForwardLayers.begin(); el != theForwardLayers.end(); el++) { - if ((*el).second.isCompatible(range)) { - outerForward.insert(*el); - break; - } - } - - theBarrelNLC.push_back(new BTLNavigableLayer( - (*bl).first, outerBarrel, outerBackward, outerForward, allOuterBarrel, allOuterBackward, allOuterForward)); - } -} -/// linking forward/backward layers outwards -void MTDNavigationSchool::linkEndcapLayers(const MapE& layers, vector& result) { - for (MapEI el = layers.begin(); el != layers.end(); el++) { - MTDEtaRange range = (*el).second; - // first add next endcap layer (if compatible) - MapEI plusOne(el); - plusOne++; - MapE outerLayers; - if (plusOne != layers.end() && (*plusOne).second.isCompatible(range)) { - outerLayers.insert(*plusOne); - if (!range.isInside((*plusOne).second)) { - // then look if the next layer has a wider eta range, if so add it - MapEI tmpel(plusOne); - tmpel++; - MTDEtaRange max((*plusOne).second); - for (MapEI l = tmpel; l != layers.end(); l++) { - MTDEtaRange next = (*l).second; - if (next.isCompatible(max) && !range.isInside(next) && !next.isInside(max) && - next.subtract(max).isInside(range)) { - max = max.add(next); - outerLayers.insert(*l); - } - } - } - } - - MapE allOuterLayers; - for (MapEI iMEI = plusOne; iMEI != layers.end(); iMEI++) { - if ((*iMEI).second.isCompatible(range)) - allOuterLayers.insert(*iMEI); - } - - result.push_back(new ETLNavigableLayer((*el).first, outerLayers, allOuterLayers)); - } -} - -/// create inverse links (i.e. inwards) -void MTDNavigationSchool::createInverseLinks() { - // set outward link - // NavigationSetter setter(*this); - - setState(navigableLayers()); - - // find for each layer which are the layers pointing to it - typedef map > BarrelMapType; - typedef map > ForwardMapType; - - // map of all DetLayers which can reach a specific DetLayer - BarrelMapType reachedBarrelLayersMap; - ForwardMapType reachedForwardLayersMap; - - // map of all DetLayers which is compatible with a specific DetLayer - BarrelMapType compatibleBarrelLayersMap; - ForwardMapType compatibleForwardLayersMap; - - // collect all reacheable layers starting from a barrel layer - for (MapBI bli = theBarrelLayers.begin(); bli != theBarrelLayers.end(); bli++) { - // barrel - BTLNavigableLayer* mbnl = dynamic_cast(theAllNavigableLayer[((*bli).first)->seqNum()]); - MapB reacheableB = mbnl->getOuterBarrelLayers(); - for (MapBI i = reacheableB.begin(); i != reacheableB.end(); i++) { - reachedBarrelLayersMap[(*i).first].insert(*bli); - } - MapB compatibleB = mbnl->getAllOuterBarrelLayers(); - for (MapBI i = compatibleB.begin(); i != compatibleB.end(); i++) { - compatibleBarrelLayersMap[(*i).first].insert(*bli); - } - MapE reacheableE = mbnl->getOuterBackwardLayers(); - for (MapEI i = reacheableE.begin(); i != reacheableE.end(); i++) { - reachedBarrelLayersMap[(*i).first].insert(*bli); - } - reacheableE = mbnl->getOuterForwardLayers(); - for (MapEI i = reacheableE.begin(); i != reacheableE.end(); i++) { - reachedBarrelLayersMap[(*i).first].insert(*bli); - } - MapE compatibleE = mbnl->getAllOuterBackwardLayers(); - for (MapEI i = compatibleE.begin(); i != compatibleE.end(); i++) { - compatibleBarrelLayersMap[(*i).first].insert(*bli); - } - compatibleE = mbnl->getAllOuterForwardLayers(); - for (MapEI i = compatibleE.begin(); i != compatibleE.end(); i++) { - compatibleBarrelLayersMap[(*i).first].insert(*bli); - } - } - - // collect all reacheable layer starting from a backward layer - for (MapEI eli = theBackwardLayers.begin(); eli != theBackwardLayers.end(); eli++) { - MapE reacheableE = - dynamic_cast(theAllNavigableLayer[((*eli).first)->seqNum()])->getOuterEndcapLayers(); - for (MapEI i = reacheableE.begin(); i != reacheableE.end(); i++) { - reachedForwardLayersMap[(*i).first].insert(*eli); - } - // collect all compatible layer starting from a backward layer - MapE compatibleE = - dynamic_cast(theAllNavigableLayer[((*eli).first)->seqNum()])->getAllOuterEndcapLayers(); - for (MapEI i = compatibleE.begin(); i != compatibleE.end(); i++) { - compatibleForwardLayersMap[(*i).first].insert(*eli); - } - } - - for (MapEI eli = theForwardLayers.begin(); eli != theForwardLayers.end(); eli++) { - // collect all reacheable layer starting from a forward layer - MapE reacheableE = - dynamic_cast(theAllNavigableLayer[((*eli).first)->seqNum()])->getOuterEndcapLayers(); - for (MapEI i = reacheableE.begin(); i != reacheableE.end(); i++) { - reachedForwardLayersMap[(*i).first].insert(*eli); - } - // collect all compatible layer starting from a forward layer - MapE compatibleE = - dynamic_cast(theAllNavigableLayer[((*eli).first)->seqNum()])->getAllOuterEndcapLayers(); - for (MapEI i = compatibleE.begin(); i != compatibleE.end(); i++) { - compatibleForwardLayersMap[(*i).first].insert(*eli); - } - } - - // now set inverse link for barrel layers - for (MapBI bli = theBarrelLayers.begin(); bli != theBarrelLayers.end(); bli++) { - BTLNavigableLayer* mbnl = dynamic_cast(theAllNavigableLayer[((*bli).first)->seqNum()]); - mbnl->setInwardLinks(reachedBarrelLayersMap[(*bli).first]); - mbnl->setInwardCompatibleLinks(compatibleBarrelLayersMap[(*bli).first]); - } - //BACKWARD - for (MapEI eli = theBackwardLayers.begin(); eli != theBackwardLayers.end(); eli++) { - ETLNavigableLayer* mfnl = dynamic_cast(theAllNavigableLayer[((*eli).first)->seqNum()]); - // for backward next layers - mfnl->setInwardLinks(reachedBarrelLayersMap[(*eli).first], reachedForwardLayersMap[(*eli).first]); - // for backward compatible layers - mfnl->setInwardCompatibleLinks(compatibleBarrelLayersMap[(*eli).first], compatibleForwardLayersMap[(*eli).first]); - } - //FORWARD - for (MapEI eli = theForwardLayers.begin(); eli != theForwardLayers.end(); eli++) { - ETLNavigableLayer* mfnl = dynamic_cast(theAllNavigableLayer[((*eli).first)->seqNum()]); - // and for forward next layers - mfnl->setInwardLinks(reachedBarrelLayersMap[(*eli).first], reachedForwardLayersMap[(*eli).first]); - // and for forward compatible layers - mfnl->setInwardCompatibleLinks(compatibleBarrelLayersMap[(*eli).first], compatibleForwardLayersMap[(*eli).first]); - } -} diff --git a/RecoMTD/Navigation/test/BuildFile.xml b/RecoMTD/Navigation/test/BuildFile.xml deleted file mode 100644 index dcc36ac6c5399..0000000000000 --- a/RecoMTD/Navigation/test/BuildFile.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/RecoMTD/Navigation/test/MTDNavigationTest.cc b/RecoMTD/Navigation/test/MTDNavigationTest.cc deleted file mode 100644 index 6b38bd987c4bf..0000000000000 --- a/RecoMTD/Navigation/test/MTDNavigationTest.cc +++ /dev/null @@ -1,79 +0,0 @@ -#include -/** \file MTDNavigationTest - * - * \author L. Gray - */ - -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" - -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/ESHandle.h" -#include "FWCore/Framework/interface/MakerMacros.h" - -#include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "RecoMTD/Navigation/interface/MTDNavigationPrinter.h" -#include "RecoMTD/Navigation/interface/MTDNavigationSchool.h" -#include "RecoMTD/Records/interface/MTDRecoGeometryRecord.h" -#include "RecoMTD/Navigation/interface/MTDNavigationPrinter.h" -#include "RecoMTD/DetLayers/interface/MTDDetLayerGeometry.h" -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" - -class MTDNavigationTest : public edm::EDAnalyzer { -public: - explicit MTDNavigationTest(const edm::ParameterSet&); - ~MTDNavigationTest(); - - virtual void analyze(const edm::Event&, const edm::EventSetup&); - -private: -}; - -// constructor - -MTDNavigationTest::MTDNavigationTest(const edm::ParameterSet& iConfig) { - std::cout << "Muon Navigation Printer Begin:" << std::endl; -} - -MTDNavigationTest::~MTDNavigationTest() { std::cout << "Muon Navigation Printer End. " << std::endl; } - -void MTDNavigationTest::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { - using namespace edm; - - //choose ONE and ONLY one to be true - bool testMuon = true; - // bool testMuonTk = true; - // - // get Geometry - // - edm::ESHandle mtd; - iSetup.get().get(mtd); - const MTDDetLayerGeometry* mm(&(*mtd)); - - if (testMuon) { - MTDNavigationSchool school(mm); - MTDNavigationPrinter* printer = new MTDNavigationPrinter(mm, school); - delete printer; - } - /* - if ( testMuonTk ) { - edm::ESHandle tracker; - iSetup.get().get(tracker); - - edm::ESHandle theMF; - iSetup.get().get(theMF); - - const GeometricSearchTracker * tt(&(*tracker)); - const MagneticField * field(&(*theMF)); - - MuonTkNavigationSchool school(mm,tt,field); - MTDNavigationPrinter* printer = new MTDNavigationPrinter(mm, tt); - delete printer; - } -*/ -} - -//define this as a plug-in -DEFINE_FWK_MODULE(MTDNavigationTest); diff --git a/RecoMTD/TrackExtender/plugins/TrackExtenderWithMTD.cc b/RecoMTD/TrackExtender/plugins/TrackExtenderWithMTD.cc index ea8b21f143d56..afaa27d3695f2 100644 --- a/RecoMTD/TrackExtender/plugins/TrackExtenderWithMTD.cc +++ b/RecoMTD/TrackExtender/plugins/TrackExtenderWithMTD.cc @@ -54,6 +54,7 @@ #include "DataFormats/Math/interface/GeantUnits.h" #include "DataFormats/Math/interface/LorentzVector.h" #include "CLHEP/Units/GlobalPhysicalConstants.h" +#include "DataFormats/Math/interface/Rounding.h" #include "DataFormats/VertexReco/interface/VertexFwd.h" #include "DataFormats/VertexReco/interface/Vertex.h" @@ -394,8 +395,16 @@ class TrackExtenderWithMTDT : public edm::stream::EDProducer<> { std::unique_ptr theEstimator; std::unique_ptr theTransformer; edm::ESHandle builder_; + edm::ESGetToken builderToken_; edm::ESHandle hitbuilder_; + edm::ESGetToken hitbuilderToken_; edm::ESHandle gtg_; + edm::ESGetToken gtgToken_; + + edm::ESGetToken dlgeoToken_; + edm::ESGetToken magfldToken_; + edm::ESGetToken propToken_; + edm::ESGetToken ttopoToken_; const float estMaxChi2_; const float estMaxNSigma_; @@ -458,6 +467,15 @@ TrackExtenderWithMTDT::TrackExtenderWithMTDT(const ParameterSet sigmatmtdOrigTrkToken = produces>("generalTracksigmatmtd"); assocOrigTrkToken = produces>("generalTrackassoc"); + builderToken_ = esConsumes(edm::ESInputTag("", transientTrackBuilder_)); + hitbuilderToken_ = + esConsumes(edm::ESInputTag("", mtdRecHitBuilder_)); + gtgToken_ = esConsumes(); + dlgeoToken_ = esConsumes(); + magfldToken_ = esConsumes(); + propToken_ = esConsumes(edm::ESInputTag("", propagator_)); + ttopoToken_ = esConsumes(); + produces>(); produces(); produces(); @@ -525,23 +543,19 @@ void TrackExtenderWithMTDT::produce(edm::Event& ev, const edm:: TrackingRecHitRefProd hitsRefProd = ev.getRefBeforePut(); reco::TrackExtraRefProd extrasRefProd = ev.getRefBeforePut(); - es.get().get(gtg_); + gtg_ = es.getHandle(gtgToken_); - edm::ESHandle geo; - es.get().get(geo); + auto geo = es.getTransientHandle(dlgeoToken_); - edm::ESHandle magfield; - es.get().get(magfield); + auto magfield = es.getTransientHandle(magfldToken_); - es.get().get(transientTrackBuilder_, builder_); - es.get().get(mtdRecHitBuilder_, hitbuilder_); + builder_ = es.getHandle(builderToken_); + hitbuilder_ = es.getHandle(hitbuilderToken_); - edm::ESHandle propH; - es.get().get(propagator_, propH); + auto propH = es.getTransientHandle(propToken_); const Propagator* prop = propH.product(); - edm::ESHandle httopo; - es.get().get(httopo); + auto httopo = es.getTransientHandle(ttopoToken_); const TrackerTopology& ttopo = *httopo; auto output = std::make_unique(); @@ -987,6 +1001,21 @@ reco::Track TrackExtenderWithMTDT::buildTrack(const reco::Track double betaOut = 0.; double covbetabeta = -1.; + auto routput = [&]() { + return reco::Track(traj.chiSquared(), + int(ndof), + pos, + mom, + tscbl.trackStateAtPCA().charge(), + tscbl.trackStateAtPCA().curvilinearError(), + orig.algo(), + reco::TrackBase::undefQuality, + t0, + betaOut, + covt0t0, + covbetabeta); + }; + //compute path length for time backpropagation, using first MTD hit for the momentum if (hasMTD) { double pathlength; @@ -995,17 +1024,72 @@ reco::Track TrackExtenderWithMTDT::buildTrack(const reco::Track double thiterror = -1.; bool validmtd = false; - //need to better handle the cases with >1 hit in MTD + if (!validpropagation) { + return routput(); + } + + size_t ihitcount(0), ietlcount(0); for (auto const& hit : trajWithMtd.measurements()) { - bool ismtd = hit.recHit()->geographicalId().det() == DetId::Forward && - ForwardSubdetector(hit.recHit()->geographicalId().subdetId()) == FastTime; - if (ismtd) { - const MTDTrackingRecHit* mtdhit = static_cast(hit.recHit()->hit()); - thit = mtdhit->time(); - thiterror = mtdhit->timeError(); - validmtd = true; - break; + if (hit.recHit()->geographicalId().det() == DetId::Forward && + ForwardSubdetector(hit.recHit()->geographicalId().subdetId()) == FastTime) { + ihitcount++; + if (MTDDetId(hit.recHit()->geographicalId()).mtdSubDetector() == MTDDetId::MTDType::ETL) { + ietlcount++; + } + } + } + + auto ihit1 = trajWithMtd.measurements().cbegin(); + if (ihitcount == 1) { + const MTDTrackingRecHit* mtdhit = static_cast((*ihit1).recHit()->hit()); + thit = mtdhit->time(); + thiterror = mtdhit->timeError(); + validmtd = true; + } else if (ihitcount == 2 && ietlcount == 2) { + const auto& propresult = + thePropagator->propagateWithPath(ihit1->updatedState(), (ihit1 + 1)->updatedState().surface()); + double etlpathlength = std::abs(propresult.second); + // + // The information of the two ETL hits is combined and attributed to the innermost hit + // + if (etlpathlength == 0.) { + validpropagation = false; + } else { + pathlength -= etlpathlength; + const MTDTrackingRecHit* mtdhit1 = static_cast((*ihit1).recHit()->hit()); + const MTDTrackingRecHit* mtdhit2 = static_cast((*(ihit1 + 1)).recHit()->hit()); + TrackTofPidInfo tofInfo = + computeTrackTofPidInfo(p.mag2(), etlpathlength, mtdhit1->time(), mtdhit1->timeError(), 0., 0., true); + // + // Protect against incompatible times + // + double err1 = tofInfo.dterror * tofInfo.dterror; + double err2 = mtdhit2->timeError() * mtdhit2->timeError(); + if (cms_rounding::roundIfNear0(err1) == 0. || cms_rounding::roundIfNear0(err2) == 0.) { + edm::LogError("TrackExtenderWithMTD") + << "MTD tracking hits with zero time uncertainty: " << err1 << " " << err2; + } else { + if ((tofInfo.dt - mtdhit2->time()) * (tofInfo.dt - mtdhit2->time()) < (err1 + err2) * etlTimeChi2Cut_) { + // + // Subtract the ETL time of flight from the outermost measurement, and combine it in a weighted average with the innermost + // the mass ambiguity related uncertainty on the time of flight is added as an additional uncertainty + // + err1 = 1. / err1; + err2 = 1. / err2; + thiterror = 1. / (err1 + err2); + thit = (tofInfo.dt * err1 + mtdhit2->time() * err2) * thiterror; + thiterror = std::sqrt(thiterror); + LogDebug("TrackExtenderWithMTD") << "p trk = " << p.mag() << " ETL hits times/errors: " << mtdhit1->time() + << " +/- " << mtdhit1->timeError() << " , " << mtdhit2->time() << " +/- " + << mtdhit2->timeError() << " extrapolated time1: " << tofInfo.dt << " +/- " + << tofInfo.dterror << " average = " << thit << " +/- " << thiterror; + validmtd = true; + } + } } + } else { + edm::LogInfo("TrackExtenderWithMTD") + << "MTD hits #" << ihitcount << "ETL hits #" << ietlcount << " anomalous pattern, skipping..."; } if (validmtd && validpropagation) { @@ -1021,18 +1105,7 @@ reco::Track TrackExtenderWithMTDT::buildTrack(const reco::Track } } - return reco::Track(traj.chiSquared(), - int(ndof), - pos, - mom, - tscbl.trackStateAtPCA().charge(), - tscbl.trackStateAtPCA().curvilinearError(), - orig.algo(), - reco::TrackBase::undefQuality, - t0, - betaOut, - covt0t0, - covbetabeta); + return routput(); } template diff --git a/RecoPPS/Configuration/python/recoCTPPS_cff.py b/RecoPPS/Configuration/python/recoCTPPS_cff.py index dde4ac1fa06d8..2bfe9320d2f11 100644 --- a/RecoPPS/Configuration/python/recoCTPPS_cff.py +++ b/RecoPPS/Configuration/python/recoCTPPS_cff.py @@ -21,9 +21,4 @@ ctppsProtons ) -#temporarily remove ctppsProtons in Run-3 (see issue #32340) -from Configuration.Eras.Modifier_ctpps_2021_cff import ctpps_2021 -_ctpps_2021_recoCTPPSTask = recoCTPPSTask.copyAndExclude([ctppsProtons]) -ctpps_2021.toReplaceWith(recoCTPPSTask, _ctpps_2021_recoCTPPSTask) - recoCTPPS = cms.Sequence(recoCTPPSTask) diff --git a/RecoPPS/Configuration/test/raw_data_test.py b/RecoPPS/Configuration/test/raw_data_test.py index faf0e6ef123fc..2280073282f86 100644 --- a/RecoPPS/Configuration/test/raw_data_test.py +++ b/RecoPPS/Configuration/test/raw_data_test.py @@ -1,7 +1,7 @@ import FWCore.ParameterSet.Config as cms -from Configuration.Eras.Modifier_ctpps_2016_cff import ctpps_2016 -process = cms.Process("CTPPSReconstructionChainTest", ctpps_2016) +from Configuration.Eras.Modifier_ctpps_cff import ctpps +process = cms.Process("CTPPSReconstructionChainTest", ctpps) # minimum of logs process.MessageLogger = cms.Service("MessageLogger", diff --git a/RecoPPS/Local/plugins/CTPPSLocalTrackLiteProducer.cc b/RecoPPS/Local/plugins/CTPPSLocalTrackLiteProducer.cc index 3ecd94df9c9f3..baeb45166b105 100644 --- a/RecoPPS/Local/plugins/CTPPSLocalTrackLiteProducer.cc +++ b/RecoPPS/Local/plugins/CTPPSLocalTrackLiteProducer.cc @@ -238,7 +238,7 @@ void CTPPSLocalTrackLiteProducer::fillDescriptions(edm::ConfigurationDescription edm::ParameterSetDescription desc; // By default: all includeXYZ flags set to false. - // The includeXYZ are switched on when the "ctpps_2016" era is declared in + // The includeXYZ are switched on when the "ctpps" era modifier is declared in // python config, see: // RecoPPS/Local/python/ctppsLocalTrackLiteProducer_cff.py diff --git a/RecoPPS/Local/python/ctppsLocalTrackLiteProducer_cff.py b/RecoPPS/Local/python/ctppsLocalTrackLiteProducer_cff.py index f40ccec3b789c..379be28dca719 100644 --- a/RecoPPS/Local/python/ctppsLocalTrackLiteProducer_cff.py +++ b/RecoPPS/Local/python/ctppsLocalTrackLiteProducer_cff.py @@ -5,8 +5,8 @@ ctppsLocalTrackLiteProducer = ctppsLocalTrackLiteDefaultProducer.clone() # enable the module for CTPPS era(s) -from Configuration.Eras.Modifier_ctpps_2016_cff import ctpps_2016 -ctpps_2016.toModify( +from Configuration.Eras.Modifier_ctpps_cff import ctpps +ctpps.toModify( ctppsLocalTrackLiteProducer, includeStrips = True, includeDiamonds = True, diff --git a/RecoPPS/ProtonReconstruction/python/ctppsProtons_cff.py b/RecoPPS/ProtonReconstruction/python/ctppsProtons_cff.py index 03b01f2299540..54aea2a4f758c 100644 --- a/RecoPPS/ProtonReconstruction/python/ctppsProtons_cff.py +++ b/RecoPPS/ProtonReconstruction/python/ctppsProtons_cff.py @@ -10,7 +10,7 @@ from RecoPPS.ProtonReconstruction.ctppsProtons_cfi import * ctppsProtons.lhcInfoLabel = ctppsLHCInfoLabel -from Configuration.Eras.Modifier_ctpps_2016_cff import ctpps_2016 +from Configuration.Eras.Modifier_ctpps_cff import ctpps from Configuration.Eras.Modifier_ctpps_2017_cff import ctpps_2017 from Configuration.Eras.Modifier_ctpps_2018_cff import ctpps_2018 @@ -34,7 +34,7 @@ def applyDefaultSettings(ctppsProtons): ctppsProtons.pixelDiscardBXShiftedTracks = True ctppsProtons.default_time = -999. -ctpps_2016.toModify(ctppsProtons, applyDefaultSettings) # applied for all Run2 years (2016, 2017 and 2018) +ctpps.toModify(ctppsProtons, applyDefaultSettings) def apply2017Settings(ctppsProtons): ctppsProtons.association_cuts_45.x_cut_apply = False diff --git a/RecoParticleFlow/PFClusterProducer/interface/PFClusterEMEnergyCorrector.h b/RecoParticleFlow/PFClusterProducer/interface/PFClusterEMEnergyCorrector.h index 0ba2e3a7a7c06..2b10d4a990b58 100644 --- a/RecoParticleFlow/PFClusterProducer/interface/PFClusterEMEnergyCorrector.h +++ b/RecoParticleFlow/PFClusterProducer/interface/PFClusterEMEnergyCorrector.h @@ -46,6 +46,7 @@ class PFClusterEMEnergyCorrector { edm::EDGetTokenT bunchSpacing_; const EcalClusterLazyTools::ESGetTokens ecalClusterToolsESGetTokens_; + const EcalReadoutTools::ESGetTokens ecalReadoutToolsESGetTokens_; std::vector condnames_mean_; std::vector condnames_sigma_; diff --git a/RecoParticleFlow/PFClusterProducer/src/PFClusterEMEnergyCorrector.cc b/RecoParticleFlow/PFClusterProducer/src/PFClusterEMEnergyCorrector.cc index 5d63ea8f43ea1..9ea29164b6fe4 100644 --- a/RecoParticleFlow/PFClusterProducer/src/PFClusterEMEnergyCorrector.cc +++ b/RecoParticleFlow/PFClusterProducer/src/PFClusterEMEnergyCorrector.cc @@ -12,7 +12,9 @@ namespace { } // namespace PFClusterEMEnergyCorrector::PFClusterEMEnergyCorrector(const edm::ParameterSet &conf, edm::ConsumesCollector &&cc) - : ecalClusterToolsESGetTokens_{std::move(cc)}, calibrator_(new PFEnergyCalibration) { + : ecalClusterToolsESGetTokens_{std::move(cc)}, + ecalReadoutToolsESGetTokens_{conf, std::move(cc)}, + calibrator_(new PFEnergyCalibration) { applyCrackCorrections_ = conf.getParameter("applyCrackCorrections"); applyMVACorrections_ = conf.getParameter("applyMVACorrections"); srfAwareCorrection_ = conf.getParameter("srfAwareCorrection"); @@ -149,7 +151,7 @@ void PFClusterEMEnergyCorrector::correctEnergies(const edm::Event &evt, // Common objects for SRF-aware and old style corrections EcalClusterLazyTools lazyTool(evt, ecalClusterToolsESGetTokens_.get(es), recHitsEB_, recHitsEE_); - EcalReadoutTools readoutTool(evt, es); + EcalReadoutTools readoutTool(evt, es, ecalReadoutToolsESGetTokens_); if (!srfAwareCorrection_) { int bunchspacing = 450; diff --git a/RecoParticleFlow/PFTracking/interface/LightPFTrackProducer.h b/RecoParticleFlow/PFTracking/interface/LightPFTrackProducer.h index 8bce50f34c9ed..f40b22e26dfc6 100644 --- a/RecoParticleFlow/PFTracking/interface/LightPFTrackProducer.h +++ b/RecoParticleFlow/PFTracking/interface/LightPFTrackProducer.h @@ -8,6 +8,8 @@ #include "FWCore/Framework/interface/Frameworkfwd.h" #include "DataFormats/TrackReco/interface/Track.h" #include "DataFormats/TrackReco/interface/TrackFwd.h" +#include "MagneticField/Engine/interface/MagneticField.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" class PFTrackTransformer; class LightPFTrackProducer : public edm::stream::EDProducer<> { @@ -28,6 +30,8 @@ class LightPFTrackProducer : public edm::stream::EDProducer<> { ///PFTrackTransformer PFTrackTransformer *pfTransformer_; std::vector > tracksContainers_; + + const edm::ESGetToken magneticFieldToken_; ///TRACK QUALITY bool useQuality_; reco::TrackBase::TrackQuality trackQuality_; diff --git a/RecoParticleFlow/PFTracking/interface/PFNuclearProducer.h b/RecoParticleFlow/PFTracking/interface/PFNuclearProducer.h index 6f9fa15ba2e3c..e70474299f6ca 100644 --- a/RecoParticleFlow/PFTracking/interface/PFNuclearProducer.h +++ b/RecoParticleFlow/PFTracking/interface/PFNuclearProducer.h @@ -7,6 +7,8 @@ #include "FWCore/Framework/interface/MakerMacros.h" #include "FWCore/Framework/interface/Frameworkfwd.h" #include "DataFormats/ParticleFlowReco/interface/PFNuclearInteraction.h" +#include "MagneticField/Engine/interface/MagneticField.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" class PFTrackTransformer; class PFNuclearProducer : public edm::stream::EDProducer<> { @@ -28,5 +30,7 @@ class PFNuclearProducer : public edm::stream::EDProducer<> { PFTrackTransformer *pfTransformer_; double likelihoodCut_; std::vector > nuclearContainers_; + + const edm::ESGetToken magneticFieldToken_; }; #endif diff --git a/RecoParticleFlow/PFTracking/interface/PFTrackProducer.h b/RecoParticleFlow/PFTracking/interface/PFTrackProducer.h index b94498801a954..bf721540530ab 100644 --- a/RecoParticleFlow/PFTracking/interface/PFTrackProducer.h +++ b/RecoParticleFlow/PFTracking/interface/PFTrackProducer.h @@ -11,6 +11,10 @@ #include "DataFormats/GsfTrackReco/interface/GsfTrackFwd.h" #include "DataFormats/MuonReco/interface/MuonFwd.h" #include "DataFormats/VertexReco/interface/VertexFwd.h" +#include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" +#include "TrackingTools/Records/interface/TransientTrackRecord.h" +#include "MagneticField/Engine/interface/MagneticField.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" #include "RecoParticleFlow/PFTracking/interface/PFTrackTransformer.h" #include @@ -37,6 +41,9 @@ class PFTrackProducer : public edm::stream::EDProducer<> { ///Produce the PFRecTrack collection void produce(edm::Event&, const edm::EventSetup&) override; + const edm::ESGetToken transientTrackToken_; + const edm::ESGetToken magneticFieldToken_; + ///PFTrackTransformer std::unique_ptr pfTransformer_; std::vector> tracksContainers_; diff --git a/RecoParticleFlow/PFTracking/plugins/GoodSeedProducer.cc b/RecoParticleFlow/PFTracking/plugins/GoodSeedProducer.cc index 564d415494ec3..7c239cfa61d61 100644 --- a/RecoParticleFlow/PFTracking/plugins/GoodSeedProducer.cc +++ b/RecoParticleFlow/PFTracking/plugins/GoodSeedProducer.cc @@ -158,6 +158,12 @@ class GoodSeedProducer final : public edm::stream::EDProducer resMapEtaECAL_; std::unique_ptr resMapPhiECAL_; + const edm::ESGetToken fitterToken_; + const edm::ESGetToken smootherToken_; + const edm::ESGetToken trackerRecHitBuilderToken_; + const edm::ESGetToken magneticFieldToken_; + const edm::ESGetToken magneticFieldTokenBeginRun_; + ///TRACK QUALITY bool useQuality_; reco::TrackBase::TrackQuality trackQuality_; @@ -182,7 +188,15 @@ using namespace std; using namespace reco; GoodSeedProducer::GoodSeedProducer(const ParameterSet& iConfig, const goodseedhelpers::HeavyObjectCache*) - : pfTransformer_(nullptr), conf_(iConfig), resMapEtaECAL_(nullptr), resMapPhiECAL_(nullptr) { + : pfTransformer_(nullptr), + conf_(iConfig), + resMapEtaECAL_(nullptr), + resMapPhiECAL_(nullptr), + fitterToken_(esConsumes(edm::ESInputTag("", iConfig.getParameter("Fitter")))), + smootherToken_(esConsumes(edm::ESInputTag("", iConfig.getParameter("Smoother")))), + trackerRecHitBuilderToken_(esConsumes(edm::ESInputTag("", iConfig.getParameter("TTRHBuilder")))), + magneticFieldToken_(esConsumes()), + magneticFieldTokenBeginRun_(esConsumes()) { LogInfo("GoodSeedProducer") << "Electron PreIdentification started "; //now do what ever initialization is needed @@ -283,15 +297,13 @@ void GoodSeedProducer::produce(Event& iEvent, const EventSetup& iSetup) { //Tracking Tools if (!disablePreId_) { - edm::ESHandle aFitter; - edm::ESHandle aSmoother; - iSetup.get().get(fitterName_, aFitter); - iSetup.get().get(smootherName_, aSmoother); + auto const& aFitter = &iSetup.getData(fitterToken_); + auto const& aSmoother = &iSetup.getData(smootherToken_); + smoother.reset(aSmoother->clone()); fitter = aFitter->clone(); - edm::ESHandle theTrackerRecHitBuilder; - iSetup.get().get(trackerRecHitBuilderName_, theTrackerRecHitBuilder); - hitCloner = static_cast(theTrackerRecHitBuilder.product())->cloner(); + auto const& theTrackerRecHitBuilder = &iSetup.getData(trackerRecHitBuilderToken_); + hitCloner = static_cast(theTrackerRecHitBuilder)->cloner(); fitter->setHitCloner(&hitCloner); smoother->setHitCloner(&hitCloner); } @@ -300,8 +312,7 @@ void GoodSeedProducer::produce(Event& iEvent, const EventSetup& iSetup) { refMap_.clear(); //Magnetic Field - ESHandle magneticField; - iSetup.get().get(magneticField); + auto const& magneticField = &iSetup.getData(magneticFieldToken_); //Handle input collections //ECAL clusters @@ -607,8 +618,7 @@ namespace goodseedhelpers { // ------------ method called once each job just before starting event loop ------------ void GoodSeedProducer::beginRun(const edm::Run& run, const EventSetup& es) { //Magnetic Field - ESHandle magneticField; - es.get().get(magneticField); + auto const& magneticField = &es.getData(magneticFieldTokenBeginRun_); B_ = magneticField->inTesla(GlobalPoint(0, 0, 0)); pfTransformer_ = std::make_unique(B_); diff --git a/RecoParticleFlow/PFTracking/plugins/HGCalTrackCollectionProducer.cc b/RecoParticleFlow/PFTracking/plugins/HGCalTrackCollectionProducer.cc index 043a0b2b4e4cb..99a80659987a3 100644 --- a/RecoParticleFlow/PFTracking/plugins/HGCalTrackCollectionProducer.cc +++ b/RecoParticleFlow/PFTracking/plugins/HGCalTrackCollectionProducer.cc @@ -4,18 +4,16 @@ // Tracks with bad pt resolution (suspected fakes) are dropped and not in either collection #include "FWCore/Framework/interface/MakerMacros.h" - +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/stream/EDProducer.h" #include "RecoParticleFlow/PFClusterProducer/interface/InitialClusteringStepBase.h" #include "DataFormats/ParticleFlowReco/interface/PFRecHitFraction.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "RecoParticleFlow/PFClusterProducer/interface/PFCPositionCalculatorBase.h" #include "RecoParticleFlow/PFTracking/interface/PFTrackAlgoTools.h" - #include "DataFormats/ForwardDetId/interface/ForwardSubdetector.h" #include "DataFormats/Common/interface/Handle.h" -#include "FWCore/Framework/interface/ESHandle.h" - -//#include "DataFormats/TrackReco/interface/Track.h" #include "DataFormats/ParticleFlowReco/interface/PFRecTrackFwd.h" #include "DataFormats/ParticleFlowReco/interface/PFRecTrack.h" #include "DataFormats/TrackReco/interface/Track.h" @@ -35,11 +33,7 @@ #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" #include "Geometry/Records/interface/IdealGeometryRecord.h" -#include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/stream/EDProducer.h" - #include - #include class HGCalTrackCollectionProducer : public edm::stream::EDProducer<> { @@ -62,10 +56,14 @@ class HGCalTrackCollectionProducer : public edm::stream::EDProducer<> { // const bool _useFirstLayerOnly; // always true now // variables needed for copied extrapolation - edm::ESHandle bField_; - edm::ESHandle tkGeom_; - std::array hgc_names_; // 3 --> 1; extrapolate to hgcee only - std::array, 1> hgcGeometries_; // 3 --> 1; extrapolate to hgcee only + const edm::ESGetToken magneticFieldToken_; + const edm::ESGetToken tkerGeomToken_; + const MagneticField* bField_; + const TrackerGeometry* tkGeom_; + std::array hgc_names_; // 3 --> 1; extrapolate to hgcee only + std::array, 1> + hgcGeometryTokens_; // 3 --> 1; extrapolate to hgcee only + std::array hgcGeometries_; // 3 --> 1; extrapolate to hgcee only std::array >, 1> plusSurface_, minusSurface_; // 3 --> 1; extrapolate to hgcee only std::unique_ptr mat_prop_; @@ -81,12 +79,17 @@ HGCalTrackCollectionProducer::HGCalTrackCollectionProducer(const edm::ParameterS : reco::TrackBase::highPurity), DPtovPtCut_(iConfig.getParameter >("DPtOverPtCuts_byTrackAlgo")), NHitCut_(iConfig.getParameter >("NHitCuts_byTrackAlgo")), - useIterTracking_(iConfig.getParameter("useIterativeTracking")) { + useIterTracking_(iConfig.getParameter("useIterativeTracking")), + magneticFieldToken_(esConsumes()), + tkerGeomToken_(esConsumes()) { LogDebug("HGCalTrackCollectionProducer") << " HGCalTrackCollectionProducer::HGCalTrackCollectionProducer " << std::endl; const edm::ParameterSet& geoconf = iConfig.getParameterSet("hgcalGeometryNames"); hgc_names_[0] = geoconf.getParameter("HGC_ECAL"); + for (unsigned i = 0; i < hgcGeometryTokens_.size(); i++) { + hgcGeometryTokens_[i] = esConsumes(edm::ESInputTag("", hgc_names_[i])); + } produces("TracksInHGCal"); produces("TracksNotInHGCal"); @@ -97,15 +100,15 @@ HGCalTrackCollectionProducer::HGCalTrackCollectionProducer(const edm::ParameterS void HGCalTrackCollectionProducer::beginLuminosityBlock(const edm::LuminosityBlock& lumi, const edm::EventSetup& es) { constexpr float m_pion = 0.1396; // get dependencies for setting up propagator - es.get().get(bField_); - es.get().get(tkGeom_); + bField_ = &es.getData(magneticFieldToken_); + tkGeom_ = &es.getData(tkerGeomToken_); // get HGC geometries (assume that layers are ordered in Z!) for (unsigned i = 0; i < hgcGeometries_.size(); ++i) { - es.get().get(hgc_names_[i], hgcGeometries_[i]); + hgcGeometries_[i] = &es.getData(hgcGeometryTokens_[i]); } // make propagator - mat_prop_ = std::make_unique(alongMomentum, m_pion, bField_.product()); + mat_prop_ = std::make_unique(alongMomentum, m_pion, bField_); // setup HGC layers for track propagation Surface::RotationType rot; //unit rotation matrix for (unsigned i = 0; i < hgcGeometries_.size(); ++i) { @@ -147,7 +150,7 @@ void HGCalTrackCollectionProducer::produce(edm::Event& evt, const edm::EventSetu continue; bool found = false; const TrajectoryStateOnSurface myTSOS = - trajectoryStateTransform::outerStateOnSurface(*(track->trackRef()), *(tkGeom_.product()), bField_.product()); + trajectoryStateTransform::outerStateOnSurface(*(track->trackRef()), *tkGeom_, bField_); auto detbegin = myTSOS.globalPosition().z() > 0 ? plusSurface_.begin() : minusSurface_.begin(); auto detend = myTSOS.globalPosition().z() > 0 ? plusSurface_.end() : minusSurface_.end(); for (auto det = detbegin; det != detend; ++det) { diff --git a/RecoParticleFlow/PFTracking/plugins/LightPFTrackProducer.cc b/RecoParticleFlow/PFTracking/plugins/LightPFTrackProducer.cc index 56ce7cfe306a2..006ce38096429 100644 --- a/RecoParticleFlow/PFTracking/plugins/LightPFTrackProducer.cc +++ b/RecoParticleFlow/PFTracking/plugins/LightPFTrackProducer.cc @@ -6,12 +6,11 @@ #include "DataFormats/TrackReco/interface/Track.h" #include "TrackingTools/PatternTools/interface/Trajectory.h" #include "FWCore/Framework/interface/ESHandle.h" -#include "MagneticField/Engine/interface/MagneticField.h" -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" using namespace std; using namespace edm; -LightPFTrackProducer::LightPFTrackProducer(const ParameterSet& iConfig) : pfTransformer_(nullptr) { +LightPFTrackProducer::LightPFTrackProducer(const ParameterSet& iConfig) + : pfTransformer_(nullptr), magneticFieldToken_(esConsumes()) { produces(); std::vector tags = iConfig.getParameter >("TkColList"); @@ -51,8 +50,7 @@ void LightPFTrackProducer::produce(Event& iEvent, const EventSetup& iSetup) { // ------------ method called once each job just before starting event loop ------------ void LightPFTrackProducer::beginRun(const edm::Run& run, const EventSetup& iSetup) { - ESHandle magneticField; - iSetup.get().get(magneticField); + auto const& magneticField = &iSetup.getData(magneticFieldToken_); pfTransformer_ = new PFTrackTransformer(math::XYZVector(magneticField->inTesla(GlobalPoint(0, 0, 0)))); pfTransformer_->OnlyProp(); } diff --git a/RecoParticleFlow/PFTracking/plugins/PFConversionProducer.cc b/RecoParticleFlow/PFTracking/plugins/PFConversionProducer.cc index 81346e7bf47ae..7fa2389eef746 100644 --- a/RecoParticleFlow/PFTracking/plugins/PFConversionProducer.cc +++ b/RecoParticleFlow/PFTracking/plugins/PFConversionProducer.cc @@ -4,19 +4,18 @@ #include "DataFormats/VertexReco/interface/Vertex.h" #include "TrackingTools/PatternTools/interface/Trajectory.h" #include "FWCore/Framework/interface/ESHandle.h" -#include "MagneticField/Engine/interface/MagneticField.h" -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" #include "DataFormats/Common/interface/RefToBase.h" #include "CommonTools/Statistics/interface/ChiSquaredProbability.h" -#include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" -#include "TrackingTools/Records/interface/TransientTrackRecord.h" #include "TrackingTools/IPTools/interface/IPTools.h" typedef std::multimap > BlockMap; using namespace std; using namespace edm; -PFConversionProducer::PFConversionProducer(const ParameterSet& iConfig) : pfTransformer_(nullptr) { +PFConversionProducer::PFConversionProducer(const ParameterSet& iConfig) + : pfTransformer_(nullptr), + transientTrackToken_(esConsumes(edm::ESInputTag("", "TransientTrackBuilder"))), + magneticFieldToken_(esConsumes()) { produces(); produces(); @@ -32,9 +31,8 @@ void PFConversionProducer::produce(Event& iEvent, const EventSetup& iSetup) { auto pfConversionColl = std::make_unique(); auto pfRecTrackColl = std::make_unique(); - edm::ESHandle builder; - iSetup.get().get("TransientTrackBuilder", builder); - TransientTrackBuilder thebuilder = *(builder.product()); + TransientTrackBuilder const& thebuilder = iSetup.getData(transientTrackToken_); + reco::PFRecTrackRefProd pfTrackRefProd = iEvent.getRefBeforePut(); Handle convCollH; iEvent.getByToken(pfConversionContainer_, convCollH); @@ -164,8 +162,7 @@ void PFConversionProducer::produce(Event& iEvent, const EventSetup& iSetup) { // ------------ method called once each job just before starting event loop ------------ void PFConversionProducer::beginRun(const edm::Run& run, const EventSetup& iSetup) { - ESHandle magneticField; - iSetup.get().get(magneticField); + auto const& magneticField = &iSetup.getData(magneticFieldToken_); pfTransformer_ = new PFTrackTransformer(math::XYZVector(magneticField->inTesla(GlobalPoint(0, 0, 0)))); pfTransformer_->OnlyProp(); } diff --git a/RecoParticleFlow/PFTracking/plugins/PFConversionProducer.h b/RecoParticleFlow/PFTracking/plugins/PFConversionProducer.h index 8524218b90f1e..b65937d90d28e 100644 --- a/RecoParticleFlow/PFTracking/plugins/PFConversionProducer.h +++ b/RecoParticleFlow/PFTracking/plugins/PFConversionProducer.h @@ -9,6 +9,10 @@ #include "DataFormats/VertexReco/interface/VertexFwd.h" #include "DataFormats/ParticleFlowReco/interface/PFConversion.h" #include "DataFormats/ParticleFlowReco/interface/PFConversionFwd.h" +#include "MagneticField/Engine/interface/MagneticField.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" +#include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" +#include "TrackingTools/Records/interface/TransientTrackRecord.h" class PFTrackTransformer; class PFConversionProducer : public edm::stream::EDProducer<> { @@ -30,5 +34,8 @@ class PFConversionProducer : public edm::stream::EDProducer<> { PFTrackTransformer *pfTransformer_; edm::EDGetTokenT pfConversionContainer_; edm::EDGetTokenT vtx_h; + + const edm::ESGetToken transientTrackToken_; + const edm::ESGetToken magneticFieldToken_; }; #endif diff --git a/RecoParticleFlow/PFTracking/plugins/PFDisplacedTrackerVertexProducer.cc b/RecoParticleFlow/PFTracking/plugins/PFDisplacedTrackerVertexProducer.cc index 348133ea71e0e..6c38562092f88 100644 --- a/RecoParticleFlow/PFTracking/plugins/PFDisplacedTrackerVertexProducer.cc +++ b/RecoParticleFlow/PFTracking/plugins/PFDisplacedTrackerVertexProducer.cc @@ -3,12 +3,11 @@ #include "RecoParticleFlow/PFTracking/interface/PFTrackTransformer.h" #include "TrackingTools/PatternTools/interface/Trajectory.h" #include "FWCore/Framework/interface/ESHandle.h" -#include "MagneticField/Engine/interface/MagneticField.h" -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" + using namespace std; using namespace edm; PFDisplacedTrackerVertexProducer::PFDisplacedTrackerVertexProducer(const ParameterSet& iConfig) - : pfTransformer_(nullptr) { + : pfTransformer_(nullptr), magneticFieldToken_(esConsumes()) { produces(); produces(); @@ -77,8 +76,7 @@ void PFDisplacedTrackerVertexProducer::produce(Event& iEvent, const EventSetup& // ------------ method called once each job just before starting event loop ------------ void PFDisplacedTrackerVertexProducer::beginRun(const edm::Run& run, const EventSetup& iSetup) { - ESHandle magneticField; - iSetup.get().get(magneticField); + auto const& magneticField = &iSetup.getData(magneticFieldToken_); pfTransformer_ = new PFTrackTransformer(math::XYZVector(magneticField->inTesla(GlobalPoint(0, 0, 0)))); pfTransformer_->OnlyProp(); } diff --git a/RecoParticleFlow/PFTracking/plugins/PFDisplacedTrackerVertexProducer.h b/RecoParticleFlow/PFTracking/plugins/PFDisplacedTrackerVertexProducer.h index 3ecd90ec161d7..c76dfe214b55a 100644 --- a/RecoParticleFlow/PFTracking/plugins/PFDisplacedTrackerVertexProducer.h +++ b/RecoParticleFlow/PFTracking/plugins/PFDisplacedTrackerVertexProducer.h @@ -7,6 +7,8 @@ #include "FWCore/Framework/interface/MakerMacros.h" #include "FWCore/Framework/interface/Frameworkfwd.h" #include "DataFormats/ParticleFlowReco/interface/PFDisplacedTrackerVertex.h" +#include "MagneticField/Engine/interface/MagneticField.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" class PFTrackTransformer; class PFDisplacedTrackerVertexProducer : public edm::stream::EDProducer<> { @@ -28,5 +30,7 @@ class PFDisplacedTrackerVertexProducer : public edm::stream::EDProducer<> { PFTrackTransformer *pfTransformer_; edm::EDGetTokenT pfDisplacedVertexContainer_; edm::EDGetTokenT pfTrackContainer_; + + const edm::ESGetToken magneticFieldToken_; }; #endif diff --git a/RecoParticleFlow/PFTracking/plugins/PFDisplacedVertexCandidateProducer.cc b/RecoParticleFlow/PFTracking/plugins/PFDisplacedVertexCandidateProducer.cc index 4a002b27d52ad..da59f0142dbb4 100644 --- a/RecoParticleFlow/PFTracking/plugins/PFDisplacedVertexCandidateProducer.cc +++ b/RecoParticleFlow/PFTracking/plugins/PFDisplacedVertexCandidateProducer.cc @@ -1,22 +1,17 @@ #include "RecoParticleFlow/PFTracking/plugins/PFDisplacedVertexCandidateProducer.h" - #include "FWCore/Framework/interface/ESHandle.h" - #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/Utilities/interface/Exception.h" #include "FWCore/Framework/interface/EventSetup.h" - #include "FWCore/ParameterSet/interface/FileInPath.h" -#include "MagneticField/Engine/interface/MagneticField.h" -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" - #include using namespace std; using namespace edm; -PFDisplacedVertexCandidateProducer::PFDisplacedVertexCandidateProducer(const edm::ParameterSet& iConfig) { +PFDisplacedVertexCandidateProducer::PFDisplacedVertexCandidateProducer(const edm::ParameterSet& iConfig) + : magneticFieldToken_(esConsumes()) { // --- Setup input collection names --- // inputTagTracks_ = consumes(iConfig.getParameter("trackCollection")); @@ -58,9 +53,7 @@ void PFDisplacedVertexCandidateProducer::produce(Event& iEvent, const EventSetup << "START event: " << iEvent.id().event() << " in run " << iEvent.id().run() << endl; // Prepare and fill useful event information for the Finder - edm::ESHandle magField; - iSetup.get().get(magField); - const MagneticField* theMagField = magField.product(); + auto const& theMagField = &iSetup.getData(magneticFieldToken_); Handle trackCollection; iEvent.getByToken(inputTagTracks_, trackCollection); diff --git a/RecoParticleFlow/PFTracking/plugins/PFDisplacedVertexCandidateProducer.h b/RecoParticleFlow/PFTracking/plugins/PFDisplacedVertexCandidateProducer.h index ec632c8eff388..85ae032ddd46c 100644 --- a/RecoParticleFlow/PFTracking/plugins/PFDisplacedVertexCandidateProducer.h +++ b/RecoParticleFlow/PFTracking/plugins/PFDisplacedVertexCandidateProducer.h @@ -5,13 +5,13 @@ #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/Framework/interface/stream/EDProducer.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" - #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/MakerMacros.h" - #include "RecoParticleFlow/PFTracking/interface/PFDisplacedVertexCandidateFinder.h" #include "DataFormats/ParticleFlowReco/interface/PFDisplacedVertexCandidateFwd.h" #include "DataFormats/TrackReco/interface/TrackFwd.h" +#include "MagneticField/Engine/interface/MagneticField.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" /**\class PFDisplacedVertexCandidateProducer \brief Producer for DisplacedVertices @@ -40,6 +40,8 @@ class PFDisplacedVertexCandidateProducer : public edm::stream::EDProducer<> { edm::EDGetTokenT inputTagMainVertex_; edm::EDGetTokenT inputTagBeamSpot_; + const edm::ESGetToken magneticFieldToken_; + /// verbose ? bool verbose_; diff --git a/RecoParticleFlow/PFTracking/plugins/PFDisplacedVertexProducer.cc b/RecoParticleFlow/PFTracking/plugins/PFDisplacedVertexProducer.cc index 8c046799c1902..99ce7e376a52d 100644 --- a/RecoParticleFlow/PFTracking/plugins/PFDisplacedVertexProducer.cc +++ b/RecoParticleFlow/PFTracking/plugins/PFDisplacedVertexProducer.cc @@ -1,21 +1,9 @@ #include "RecoParticleFlow/PFTracking/plugins/PFDisplacedVertexProducer.h" - #include "FWCore/Framework/interface/ESHandle.h" - #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "FWCore/Utilities/interface/Exception.h" #include "FWCore/Framework/interface/EventSetup.h" - #include "FWCore/ParameterSet/interface/FileInPath.h" - -#include "MagneticField/Engine/interface/MagneticField.h" -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" - -#include "Geometry/CommonDetUnit/interface/TrackingGeometry.h" -#include "Geometry/CommonDetUnit/interface/GlobalTrackingGeometry.h" -#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" -#include "Geometry/Records/interface/GlobalTrackingGeometryRecord.h" - #include "DataFormats/ParticleFlowReco/interface/PFDisplacedVertexFwd.h" #include "DataFormats/ParticleFlowReco/interface/PFDisplacedVertexCandidateFwd.h" @@ -24,7 +12,11 @@ using namespace std; using namespace edm; -PFDisplacedVertexProducer::PFDisplacedVertexProducer(const edm::ParameterSet& iConfig) { +PFDisplacedVertexProducer::PFDisplacedVertexProducer(const edm::ParameterSet& iConfig) + : magFieldToken_(esConsumes()), + globTkGeomToken_(esConsumes()), + tkerTopoToken_(esConsumes()), + tkerGeomToken_(esConsumes()) { // --- Setup input collection names --- // inputTagVertexCandidates_ = @@ -91,18 +83,10 @@ void PFDisplacedVertexProducer::produce(Event& iEvent, const EventSetup& iSetup) // Prepare useful information for the Finder - ESHandle magField; - iSetup.get().get(magField); - const MagneticField* theMagField = magField.product(); - - ESHandle globTkGeomHandle; - iSetup.get().get(globTkGeomHandle); - - ESHandle tkerTopoHandle; - iSetup.get().get(tkerTopoHandle); - - ESHandle tkerGeomHandle; - iSetup.get().get(tkerGeomHandle); + auto const& theMagField = &iSetup.getData(magFieldToken_); + auto const& globTkGeom = &iSetup.getData(globTkGeomToken_); + auto const& tkerTopo = &iSetup.getData(tkerTopoToken_); + auto const& tkerGeom = &iSetup.getData(tkerGeomToken_); Handle vertexCandidates; iEvent.getByToken(inputTagVertexCandidates_, vertexCandidates); @@ -114,8 +98,7 @@ void PFDisplacedVertexProducer::produce(Event& iEvent, const EventSetup& iSetup) iEvent.getByToken(inputTagBeamSpot_, beamSpotHandle); // Fill useful event information for the Finder - pfDisplacedVertexFinder_.setEdmParameters( - theMagField, globTkGeomHandle, tkerTopoHandle.product(), tkerGeomHandle.product()); + pfDisplacedVertexFinder_.setEdmParameters(theMagField, globTkGeom, tkerTopo, tkerGeom); pfDisplacedVertexFinder_.setPrimaryVertex(mainVertexHandle, beamSpotHandle); pfDisplacedVertexFinder_.setInput(vertexCandidates); diff --git a/RecoParticleFlow/PFTracking/plugins/PFDisplacedVertexProducer.h b/RecoParticleFlow/PFTracking/plugins/PFDisplacedVertexProducer.h index 60c9e622fda3b..a6116a2fa08c7 100644 --- a/RecoParticleFlow/PFTracking/plugins/PFDisplacedVertexProducer.h +++ b/RecoParticleFlow/PFTracking/plugins/PFDisplacedVertexProducer.h @@ -5,11 +5,15 @@ #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/Framework/interface/stream/EDProducer.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" - #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/MakerMacros.h" - #include "RecoParticleFlow/PFTracking/interface/PFDisplacedVertexFinder.h" +#include "MagneticField/Engine/interface/MagneticField.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" +#include "Geometry/CommonDetUnit/interface/TrackingGeometry.h" +#include "Geometry/CommonDetUnit/interface/GlobalTrackingGeometry.h" +#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" +#include "Geometry/Records/interface/GlobalTrackingGeometryRecord.h" /**\class PFDisplacedVertexProducer \brief Producer for DisplacedVertices @@ -40,6 +44,11 @@ class PFDisplacedVertexProducer : public edm::stream::EDProducer<> { edm::EDGetTokenT inputTagMainVertex_; edm::EDGetTokenT inputTagBeamSpot_; + const edm::ESGetToken magFieldToken_; + const edm::ESGetToken globTkGeomToken_; + const edm::ESGetToken tkerTopoToken_; + const edm::ESGetToken tkerGeomToken_; + /// verbose ? bool verbose_; diff --git a/RecoParticleFlow/PFTracking/plugins/PFElecTkProducer.cc b/RecoParticleFlow/PFTracking/plugins/PFElecTkProducer.cc index e9230587e88a6..d066241913ed5 100644 --- a/RecoParticleFlow/PFTracking/plugins/PFElecTkProducer.cc +++ b/RecoParticleFlow/PFTracking/plugins/PFElecTkProducer.cc @@ -132,6 +132,10 @@ class PFElecTkProducer final : public edm::stream::EDProducer magFieldToken_; + const edm::ESGetToken tkerGeomToken_; + const edm::ESGetToken transientTrackToken_; + ///PFTrackTransformer std::unique_ptr pfTransformer_; MultiTrajectoryStateTransform mtsTransform_; @@ -172,7 +176,10 @@ using namespace edm; using namespace reco; PFElecTkProducer::PFElecTkProducer(const ParameterSet& iConfig, const convbremhelpers::HeavyObjectCache*) - : conf_(iConfig) { + : conf_(iConfig), + magFieldToken_(esConsumes()), + tkerGeomToken_(esConsumes()), + transientTrackToken_(esConsumes(edm::ESInputTag("", "TransientTrackBuilder"))) { gsfTrackLabel_ = consumes(iConfig.getParameter("GsfTrackModuleLabel")); pfTrackLabel_ = consumes(iConfig.getParameter("PFRecTrackLabel")); @@ -1104,19 +1111,14 @@ bool PFElecTkProducer::isInnerMostWithLostHits(const reco::GsfTrackRef& nGsfTrac // ------------ method called once each job just before starting event loop ------------ void PFElecTkProducer::beginRun(const edm::Run& run, const EventSetup& iSetup) { - ESHandle magneticField; - iSetup.get().get(magneticField); - - ESHandle tracker; - iSetup.get().get(tracker); + auto const& magneticField = &iSetup.getData(magFieldToken_); + auto const& tracker = &iSetup.getData(tkerGeomToken_); - mtsTransform_ = MultiTrajectoryStateTransform(tracker.product(), magneticField.product()); + mtsTransform_ = MultiTrajectoryStateTransform(tracker, magneticField); pfTransformer_ = std::make_unique(math::XYZVector(magneticField->inTesla(GlobalPoint(0, 0, 0)))); - edm::ESHandle builder; - iSetup.get().get("TransientTrackBuilder", builder); - TransientTrackBuilder thebuilder = *(builder.product()); + TransientTrackBuilder thebuilder = iSetup.getData(transientTrackToken_); convBremFinder_ = std::make_unique(thebuilder, mvaConvBremFinderIDBarrelLowPt_, diff --git a/RecoParticleFlow/PFTracking/plugins/PFNuclearProducer.cc b/RecoParticleFlow/PFTracking/plugins/PFNuclearProducer.cc index e61abcf238da0..7d1d2573eb8f1 100644 --- a/RecoParticleFlow/PFTracking/plugins/PFNuclearProducer.cc +++ b/RecoParticleFlow/PFTracking/plugins/PFNuclearProducer.cc @@ -3,11 +3,11 @@ #include "RecoParticleFlow/PFTracking/interface/PFTrackTransformer.h" #include "TrackingTools/PatternTools/interface/Trajectory.h" #include "FWCore/Framework/interface/ESHandle.h" -#include "MagneticField/Engine/interface/MagneticField.h" -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" + using namespace std; using namespace edm; -PFNuclearProducer::PFNuclearProducer(const ParameterSet& iConfig) : pfTransformer_(nullptr) { +PFNuclearProducer::PFNuclearProducer(const ParameterSet& iConfig) + : pfTransformer_(nullptr), magneticFieldToken_(esConsumes()) { produces(); produces(); @@ -66,8 +66,7 @@ void PFNuclearProducer::produce(Event& iEvent, const EventSetup& iSetup) { // ------------ method called once each job just before starting event loop ------------ void PFNuclearProducer::beginRun(const edm::Run& run, const EventSetup& iSetup) { - ESHandle magneticField; - iSetup.get().get(magneticField); + auto const& magneticField = &iSetup.getData(magneticFieldToken_); pfTransformer_ = new PFTrackTransformer(math::XYZVector(magneticField->inTesla(GlobalPoint(0, 0, 0)))); pfTransformer_->OnlyProp(); } diff --git a/RecoParticleFlow/PFTracking/plugins/PFTrackProducer.cc b/RecoParticleFlow/PFTracking/plugins/PFTrackProducer.cc index 623fea186ca94..7b15a8fd7414c 100644 --- a/RecoParticleFlow/PFTracking/plugins/PFTrackProducer.cc +++ b/RecoParticleFlow/PFTracking/plugins/PFTrackProducer.cc @@ -9,18 +9,17 @@ #include "DataFormats/EgammaReco/interface/ElectronSeedFwd.h" #include "TrackingTools/PatternTools/interface/Trajectory.h" #include "FWCore/Framework/interface/ESHandle.h" -#include "MagneticField/Engine/interface/MagneticField.h" -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" #include "DataFormats/MuonReco/interface/Muon.h" -#include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" -#include "TrackingTools/Records/interface/TransientTrackRecord.h" #include "TrackingTools/IPTools/interface/IPTools.h" #include "DataFormats/VertexReco/interface/Vertex.h" using namespace std; using namespace edm; using namespace reco; -PFTrackProducer::PFTrackProducer(const ParameterSet& iConfig) : pfTransformer_() { +PFTrackProducer::PFTrackProducer(const ParameterSet& iConfig) + : transientTrackToken_(esConsumes(edm::ESInputTag("", "TransientTrackBuilder"))), + magneticFieldToken_(esConsumes()), + pfTransformer_() { produces(); std::vector tags = iConfig.getParameter >("TkColList"); @@ -77,9 +76,8 @@ void PFTrackProducer::produce(Event& iEvent, const EventSetup& iSetup) { dummy = reco::Vertex(p, e, 0, 0, 0); } - edm::ESHandle builder; - iSetup.get().get("TransientTrackBuilder", builder); - TransientTrackBuilder thebuilder = *(builder.product()); + //setup transient track builder + TransientTrackBuilder const& thebuilder = iSetup.getData(transientTrackToken_); // read muon collection Handle recMuons; @@ -202,9 +200,8 @@ void PFTrackProducer::produce(Event& iEvent, const EventSetup& iSetup) { // ------------ method called once each job just before starting event loop ------------ void PFTrackProducer::beginRun(const edm::Run& run, const EventSetup& iSetup) { - ESHandle magneticField; - iSetup.get().get(magneticField); - pfTransformer_ = std::make_unique(math::XYZVector(magneticField->inTesla(GlobalPoint(0, 0, 0)))); + auto const& magneticField = iSetup.getData(magneticFieldToken_); + pfTransformer_ = std::make_unique(math::XYZVector(magneticField.inTesla(GlobalPoint(0, 0, 0)))); if (!trajinev_) pfTransformer_->OnlyProp(); } diff --git a/RecoParticleFlow/PFTracking/plugins/PFV0Producer.cc b/RecoParticleFlow/PFTracking/plugins/PFV0Producer.cc index 4eb0845a324dd..02e6acb50141f 100644 --- a/RecoParticleFlow/PFTracking/plugins/PFV0Producer.cc +++ b/RecoParticleFlow/PFTracking/plugins/PFV0Producer.cc @@ -6,13 +6,12 @@ #include "TrackingTools/PatternTools/interface/Trajectory.h" #include "RecoParticleFlow/PFTracking/interface/PFTrackTransformer.h" #include "FWCore/Framework/interface/ESHandle.h" -#include "MagneticField/Engine/interface/MagneticField.h" -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" using namespace std; using namespace edm; using namespace reco; -PFV0Producer::PFV0Producer(const ParameterSet& iConfig) : pfTransformer_(nullptr) { +PFV0Producer::PFV0Producer(const ParameterSet& iConfig) + : pfTransformer_(nullptr), magneticFieldToken_(esConsumes()) { produces(); produces(); @@ -67,8 +66,7 @@ void PFV0Producer::produce(Event& iEvent, const EventSetup& iSetup) { // ------------ method called once each job just before starting event loop ------------ void PFV0Producer::beginRun(const edm::Run& run, const EventSetup& iSetup) { - ESHandle magneticField; - iSetup.get().get(magneticField); + auto const& magneticField = &iSetup.getData(magneticFieldToken_); pfTransformer_ = new PFTrackTransformer(math::XYZVector(magneticField->inTesla(GlobalPoint(0, 0, 0)))); pfTransformer_->OnlyProp(); } diff --git a/RecoParticleFlow/PFTracking/plugins/PFV0Producer.h b/RecoParticleFlow/PFTracking/plugins/PFV0Producer.h index c72c0d2eeeca0..746a1bd5a7006 100644 --- a/RecoParticleFlow/PFTracking/plugins/PFV0Producer.h +++ b/RecoParticleFlow/PFTracking/plugins/PFV0Producer.h @@ -8,6 +8,8 @@ #include "FWCore/Framework/interface/Frameworkfwd.h" #include "DataFormats/ParticleFlowReco/interface/PFV0Fwd.h" #include "DataFormats/Candidate/interface/VertexCompositeCandidate.h" +#include "MagneticField/Engine/interface/MagneticField.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" class PFTrackTransformer; class PFV0Producer : public edm::stream::EDProducer<> { @@ -28,5 +30,7 @@ class PFV0Producer : public edm::stream::EDProducer<> { ///PFTrackTransformer PFTrackTransformer *pfTransformer_; std::vector > V0list_; + + const edm::ESGetToken magneticFieldToken_; }; #endif diff --git a/RecoPixelVertexing/Configuration/python/RecoPixelVertexing_cff.py b/RecoPixelVertexing/Configuration/python/RecoPixelVertexing_cff.py index 34ee6fadb04de..424ac13a43627 100644 --- a/RecoPixelVertexing/Configuration/python/RecoPixelVertexing_cff.py +++ b/RecoPixelVertexing/Configuration/python/RecoPixelVertexing_cff.py @@ -4,7 +4,21 @@ # # for STARTUP ONLY use try and use Offline 3D PV from pixelTracks, with adaptive vertex # -#from RecoPixelVertexing.PixelVertexFinding.PixelVertexes_cff import * -from RecoVertex.PrimaryVertexProducer.OfflinePixel3DPrimaryVertices_cfi import * +from RecoPixelVertexing.PixelVertexFinding.PixelVertexes_cff import * +#from RecoVertex.PrimaryVertexProducer.OfflinePixel3DPrimaryVertices_cfi import * recopixelvertexingTask = cms.Task(pixelTracksTask,pixelVertices) recopixelvertexing = cms.Sequence(recopixelvertexingTask) + +from Configuration.ProcessModifiers.gpu_cff import gpu + +from RecoPixelVertexing.PixelVertexFinding.pixelVertexCUDA_cfi import pixelVertexCUDA +from RecoPixelVertexing.PixelVertexFinding.pixelVertexSoA_cfi import pixelVertexSoA +from RecoPixelVertexing.PixelVertexFinding.pixelVertexFromSoA_cfi import pixelVertexFromSoA as _pixelVertexFromSoA + +_pixelVertexingCUDATask = cms.Task(pixelTracksTask,pixelVertexCUDA,pixelVertexSoA,pixelVertices) + +# pixelVertexSoAonCPU = pixelVertexCUDA.clone() +# pixelVertexSoAonCPU.onGPU = False; + +gpu.toReplaceWith(pixelVertices,_pixelVertexFromSoA) +gpu.toReplaceWith(recopixelvertexingTask,_pixelVertexingCUDATask) diff --git a/RecoPixelVertexing/Configuration/python/customizePixelTracksForProfiling.py b/RecoPixelVertexing/Configuration/python/customizePixelTracksForProfiling.py deleted file mode 100644 index 4713b64e5e48a..0000000000000 --- a/RecoPixelVertexing/Configuration/python/customizePixelTracksForProfiling.py +++ /dev/null @@ -1,15 +0,0 @@ -import FWCore.ParameterSet.Config as cms - -def customizePixelTracksForProfiling(process): - process.out = cms.OutputModule("AsciiOutputModule", - outputCommands = cms.untracked.vstring( - "keep *_pixelTracks_*_*", - ), - verbosity = cms.untracked.uint32(0), - ) - - process.outPath = cms.EndPath(process.out) - - process.schedule = cms.Schedule(process.raw2digi_step, process.reconstruction_step, process.outPath) - - return process diff --git a/RecoPixelVertexing/Configuration/python/customizePixelTracksSoAonCPU.py b/RecoPixelVertexing/Configuration/python/customizePixelTracksSoAonCPU.py new file mode 100644 index 0000000000000..1661cac832b8b --- /dev/null +++ b/RecoPixelVertexing/Configuration/python/customizePixelTracksSoAonCPU.py @@ -0,0 +1,62 @@ +import FWCore.ParameterSet.Config as cms + +def customizePixelTracksSoAonCPU(process): + + process.CUDAService = cms.Service('CUDAService', + enabled = cms.untracked.bool(False) + ) + + # ensure the same results when running on GPU (which supports only the 'HLT' payload) and CPU + process.siPixelClustersPreSplitting.cpu.payloadType = cms.string('HLT') + + from RecoLocalTracker.SiPixelRecHits.siPixelRecHitSoAFromLegacy_cfi import siPixelRecHitSoAFromLegacy + process.siPixelRecHitsPreSplitting = siPixelRecHitSoAFromLegacy.clone( + convertToLegacy = True + ) + + from RecoPixelVertexing.PixelTriplets.caHitNtupletCUDA_cfi import caHitNtupletCUDA + process.pixelTrackSoA = caHitNtupletCUDA.clone( + onGPU = False, + pixelRecHitSrc = 'siPixelRecHitsPreSplitting' + ) + + from RecoPixelVertexing.PixelVertexFinding.pixelVertexCUDA_cfi import pixelVertexCUDA + process.pixelVertexSoA = pixelVertexCUDA.clone( + onGPU = False, + pixelTrackSrc = 'pixelTrackSoA' + ) + + from RecoPixelVertexing.PixelTrackFitting.pixelTrackProducerFromSoA_cfi import pixelTrackProducerFromSoA + process.pixelTracks = pixelTrackProducerFromSoA.clone( + pixelRecHitLegacySrc = 'siPixelRecHitsPreSplitting' + ) + + from RecoPixelVertexing.PixelVertexFinding.pixelVertexFromSoA_cfi import pixelVertexFromSoA + process.pixelVertices = pixelVertexFromSoA.clone() + + process.reconstruction_step += process.siPixelRecHitsPreSplitting + process.pixelTrackSoA + process.pixelVertexSoA + + return process + + +def customizePixelTracksForTriplets(process): + + from HLTrigger.Configuration.common import producers_by_type + for producer in producers_by_type(process, 'CAHitNtupletCUDA'): + producer.includeJumpingForwardDoublets = True + producer.minHitsPerNtuplet = 3 + + return process + + +def customizePixelTracksSoAonCPUForProfiling(process): + + process = customizePixelTracksSoAonCPU(process) + + process.siPixelRecHitSoAFromLegacy.convertToLegacy = False + + process.TkSoA = cms.Path(process.offlineBeamSpot + process.siPixelDigis + process.siPixelClustersPreSplitting + process.siPixelRecHitSoAFromLegacy + process.pixelTrackSoA + process.pixelVertexSoA) + + process.schedule = cms.Schedule(process.TkSoA) + + return process diff --git a/RecoPixelVertexing/PixelTrackFitting/BuildFile.xml b/RecoPixelVertexing/PixelTrackFitting/BuildFile.xml index e6fc938dc25a7..a589aad036996 100644 --- a/RecoPixelVertexing/PixelTrackFitting/BuildFile.xml +++ b/RecoPixelVertexing/PixelTrackFitting/BuildFile.xml @@ -1,3 +1,5 @@ + + diff --git a/RecoPixelVertexing/PixelTrackFitting/interface/BrokenLine.h b/RecoPixelVertexing/PixelTrackFitting/interface/BrokenLine.h new file mode 100644 index 0000000000000..86fe6a278777c --- /dev/null +++ b/RecoPixelVertexing/PixelTrackFitting/interface/BrokenLine.h @@ -0,0 +1,606 @@ +#ifndef RecoPixelVertexing_PixelTrackFitting_interface_BrokenLine_h +#define RecoPixelVertexing_PixelTrackFitting_interface_BrokenLine_h + +#include + +#include "RecoPixelVertexing/PixelTrackFitting/interface/FitUtils.h" + +namespace brokenline { + + //!< Karimäki's parameters: (phi, d, k=1/R) + /*!< covariance matrix: \n + |cov(phi,phi)|cov( d ,phi)|cov( k ,phi)| \n + |cov(phi, d )|cov( d , d )|cov( k , d )| \n + |cov(phi, k )|cov( d , k )|cov( k , k )| \n + as defined in Karimäki V., 1990, Effective circle fitting for particle trajectories, + Nucl. Instr. and Meth. A305 (1991) 187. + */ + using karimaki_circle_fit = riemannFit::CircleFit; + + /*! + \brief data needed for the Broken Line fit procedure. + */ + template + struct PreparedBrokenLineData { + int qCharge; //!< particle charge + riemannFit::Matrix2xNd radii; //!< xy data in the system in which the pre-fitted center is the origin + riemannFit::VectorNd sTransverse; //!< total distance traveled in the transverse plane + // starting from the pre-fitted closest approach + riemannFit::VectorNd sTotal; //!< total distance traveled (three-dimensional) + riemannFit::VectorNd zInSZplane; //!< orthogonal coordinate to the pre-fitted line in the sz plane + riemannFit::VectorNd varBeta; //!< kink angles in the SZ plane + }; + + /*! + \brief Computes the Coulomb multiple scattering variance of the planar angle. + + \param length length of the track in the material. + \param bField magnetic field in Gev/cm/c. + \param radius radius of curvature (needed to evaluate p). + \param layer denotes which of the four layers of the detector is the endpoint of the + * multiple scattered track. For example, if Layer=3, then the particle has + * just gone through the material between the second and the third layer. + + \todo add another Layer variable to identify also the start point of the track, + * so if there are missing hits or multiple hits, the part of the detector that + * the particle has traversed can be exactly identified. + + \warning the formula used here assumes beta=1, and so neglects the dependence + * of theta_0 on the mass of the particle at fixed momentum. + + \return the variance of the planar angle ((theta_0)^2 /3). + */ + __host__ __device__ inline double multScatt( + const double& length, const double bField, const double radius, int layer, double slope) { + // limit R to 20GeV... + auto pt2 = std::min(20., bField * radius); + pt2 *= pt2; + constexpr double inv_X0 = 0.06 / 16.; //!< inverse of radiation length of the material in cm + //if(Layer==1) XXI_0=0.06/16.; + // else XXI_0=0.06/16.; + //XX_0*=1; + + //! number between 1/3 (uniform material) and 1 (thin scatterer) to be manually tuned + constexpr double geometry_factor = 0.7; + constexpr double fact = geometry_factor * riemannFit::sqr(13.6 / 1000.); + return fact / (pt2 * (1. + riemannFit::sqr(slope))) * (std::abs(length) * inv_X0) * + riemannFit::sqr(1. + 0.038 * log(std::abs(length) * inv_X0)); + } + + /*! + \brief Computes the 2D rotation matrix that transforms the line y=slope*x into the line y=0. + + \param slope tangent of the angle of rotation. + + \return 2D rotation matrix. + */ + __host__ __device__ inline riemannFit::Matrix2d rotationMatrix(double slope) { + riemannFit::Matrix2d rot; + rot(0, 0) = 1. / sqrt(1. + riemannFit::sqr(slope)); + rot(0, 1) = slope * rot(0, 0); + rot(1, 0) = -rot(0, 1); + rot(1, 1) = rot(0, 0); + return rot; + } + + /*! + \brief Changes the Karimäki parameters (and consequently their covariance matrix) under a + * translation of the coordinate system, such that the old origin has coordinates (x0,y0) + * in the new coordinate system. The formulas are taken from Karimäki V., 1990, Effective + * circle fitting for particle trajectories, Nucl. Instr. and Meth. A305 (1991) 187. + + \param circle circle fit in the old coordinate system. circle.par(0) is phi, circle.par(1) is d and circle.par(2) is rho. + \param x0 x coordinate of the translation vector. + \param y0 y coordinate of the translation vector. + \param jacobian passed by reference in order to save stack. + */ + __host__ __device__ inline void translateKarimaki(karimaki_circle_fit& circle, + double x0, + double y0, + riemannFit::Matrix3d& jacobian) { + // Avoid multiple access to the circle.par vector. + using scalar = std::remove_reference::type; + scalar phi = circle.par(0); + scalar dee = circle.par(1); + scalar rho = circle.par(2); + + // Avoid repeated trig. computations + scalar sinPhi = sin(phi); + scalar cosPhi = cos(phi); + + // Intermediate computations for the circle parameters + scalar deltaPara = x0 * cosPhi + y0 * sinPhi; + scalar deltaOrth = x0 * sinPhi - y0 * cosPhi + dee; + scalar tempSmallU = 1 + rho * dee; + scalar tempC = -rho * y0 + tempSmallU * cosPhi; + scalar tempB = rho * x0 + tempSmallU * sinPhi; + scalar tempA = 2. * deltaOrth + rho * (riemannFit::sqr(deltaOrth) + riemannFit::sqr(deltaPara)); + scalar tempU = sqrt(1. + rho * tempA); + + // Intermediate computations for the error matrix transform + scalar xi = 1. / (riemannFit::sqr(tempB) + riemannFit::sqr(tempC)); + scalar tempV = 1. + rho * deltaOrth; + scalar lambda = (0.5 * tempA) / (riemannFit::sqr(1. + tempU) * tempU); + scalar mu = 1. / (tempU * (1. + tempU)) + rho * lambda; + scalar zeta = riemannFit::sqr(deltaOrth) + riemannFit::sqr(deltaPara); + jacobian << xi * tempSmallU * tempV, -xi * riemannFit::sqr(rho) * deltaOrth, xi * deltaPara, + 2. * mu * tempSmallU * deltaPara, 2. * mu * tempV, mu * zeta - lambda * tempA, 0, 0, 1.; + + // translated circle parameters + // phi + circle.par(0) = atan2(tempB, tempC); + // d + circle.par(1) = tempA / (1 + tempU); + // rho after translation. It is invariant, so noop + // circle.par(2)= rho; + + // translated error matrix + circle.cov = jacobian * circle.cov * jacobian.transpose(); + } + + /*! + \brief Computes the data needed for the Broken Line fit procedure that are mainly common for the circle and the line fit. + + \param hits hits coordinates. + \param fast_fit pre-fit result in the form (X0,Y0,R,tan(theta)). + \param bField magnetic field in Gev/cm/c. + \param results PreparedBrokenLineData to be filled (see description of PreparedBrokenLineData). + */ + template + __host__ __device__ inline void prepareBrokenLineData(const M3xN& hits, + const V4& fast_fit, + const double bField, + PreparedBrokenLineData& results) { + riemannFit::Vector2d dVec; + riemannFit::Vector2d eVec; + + dVec = hits.block(0, 1, 2, 1) - hits.block(0, 0, 2, 1); + eVec = hits.block(0, n - 1, 2, 1) - hits.block(0, n - 2, 2, 1); + results.qCharge = riemannFit::cross2D(dVec, eVec) > 0 ? -1 : 1; + + const double slope = -results.qCharge / fast_fit(3); + + riemannFit::Matrix2d rotMat = rotationMatrix(slope); + + // calculate radii and s + results.radii = hits.block(0, 0, 2, n) - fast_fit.head(2) * riemannFit::MatrixXd::Constant(1, n, 1); + eVec = -fast_fit(2) * fast_fit.head(2) / fast_fit.head(2).norm(); + for (u_int i = 0; i < n; i++) { + dVec = results.radii.block(0, i, 2, 1); + results.sTransverse(i) = results.qCharge * fast_fit(2) * + atan2(riemannFit::cross2D(dVec, eVec), dVec.dot(eVec)); // calculates the arc length + } + riemannFit::VectorNd zVec = hits.block(2, 0, 1, n).transpose(); + + //calculate sTotal and zVec + riemannFit::Matrix2xNd pointsSZ = riemannFit::Matrix2xNd::Zero(); + for (u_int i = 0; i < n; i++) { + pointsSZ(0, i) = results.sTransverse(i); + pointsSZ(1, i) = zVec(i); + pointsSZ.block(0, i, 2, 1) = rotMat * pointsSZ.block(0, i, 2, 1); + } + results.sTotal = pointsSZ.block(0, 0, 1, n).transpose(); + results.zInSZplane = pointsSZ.block(1, 0, 1, n).transpose(); + + //calculate varBeta + results.varBeta(0) = results.varBeta(n - 1) = 0; + for (u_int i = 1; i < n - 1; i++) { + results.varBeta(i) = multScatt(results.sTotal(i + 1) - results.sTotal(i), bField, fast_fit(2), i + 2, slope) + + multScatt(results.sTotal(i) - results.sTotal(i - 1), bField, fast_fit(2), i + 1, slope); + } + } + + /*! + \brief Computes the n-by-n band matrix obtained minimizing the Broken Line's cost function w.r.t u. + * This is the whole matrix in the case of the line fit and the main n-by-n block in the case + * of the circle fit. + + \param weights weights of the first part of the cost function, the one with the measurements + * and not the angles (\sum_{i=1}^n w*(y_i-u_i)^2). + \param sTotal total distance traveled by the particle from the pre-fitted closest approach. + \param varBeta kink angles' variance. + + \return the n-by-n matrix of the linear system + */ + template + __host__ __device__ inline riemannFit::MatrixNd matrixC_u(const riemannFit::VectorNd& weights, + const riemannFit::VectorNd& sTotal, + const riemannFit::VectorNd& varBeta) { + riemannFit::MatrixNd c_uMat = riemannFit::MatrixNd::Zero(); + for (u_int i = 0; i < n; i++) { + c_uMat(i, i) = weights(i); + if (i > 1) + c_uMat(i, i) += 1. / (varBeta(i - 1) * riemannFit::sqr(sTotal(i) - sTotal(i - 1))); + if (i > 0 && i < n - 1) + c_uMat(i, i) += + (1. / varBeta(i)) * riemannFit::sqr((sTotal(i + 1) - sTotal(i - 1)) / + ((sTotal(i + 1) - sTotal(i)) * (sTotal(i) - sTotal(i - 1)))); + if (i < n - 2) + c_uMat(i, i) += 1. / (varBeta(i + 1) * riemannFit::sqr(sTotal(i + 1) - sTotal(i))); + + if (i > 0 && i < n - 1) + c_uMat(i, i + 1) = + 1. / (varBeta(i) * (sTotal(i + 1) - sTotal(i))) * + (-(sTotal(i + 1) - sTotal(i - 1)) / ((sTotal(i + 1) - sTotal(i)) * (sTotal(i) - sTotal(i - 1)))); + if (i < n - 2) + c_uMat(i, i + 1) += + 1. / (varBeta(i + 1) * (sTotal(i + 1) - sTotal(i))) * + (-(sTotal(i + 2) - sTotal(i)) / ((sTotal(i + 2) - sTotal(i + 1)) * (sTotal(i + 1) - sTotal(i)))); + + if (i < n - 2) + c_uMat(i, i + 2) = 1. / (varBeta(i + 1) * (sTotal(i + 2) - sTotal(i + 1)) * (sTotal(i + 1) - sTotal(i))); + + c_uMat(i, i) *= 0.5; + } + return c_uMat + c_uMat.transpose(); + } + + /*! + \brief A very fast helix fit. + + \param hits the measured hits. + + \return (X0,Y0,R,tan(theta)). + + \warning sign of theta is (intentionally, for now) mistaken for negative charges. + */ + + template + __host__ __device__ inline void fastFit(const M3xN& hits, V4& result) { + constexpr uint32_t n = M3xN::ColsAtCompileTime; + + const riemannFit::Vector2d a = hits.block(0, n / 2, 2, 1) - hits.block(0, 0, 2, 1); + const riemannFit::Vector2d b = hits.block(0, n - 1, 2, 1) - hits.block(0, n / 2, 2, 1); + const riemannFit::Vector2d c = hits.block(0, 0, 2, 1) - hits.block(0, n - 1, 2, 1); + + auto tmp = 0.5 / riemannFit::cross2D(c, a); + result(0) = hits(0, 0) - (a(1) * c.squaredNorm() + c(1) * a.squaredNorm()) * tmp; + result(1) = hits(1, 0) + (a(0) * c.squaredNorm() + c(0) * a.squaredNorm()) * tmp; + // check Wikipedia for these formulas + + result(2) = sqrt(a.squaredNorm() * b.squaredNorm() * c.squaredNorm()) / (2. * std::abs(riemannFit::cross2D(b, a))); + // Using Math Olympiad's formula R=abc/(4A) + + const riemannFit::Vector2d d = hits.block(0, 0, 2, 1) - result.head(2); + const riemannFit::Vector2d e = hits.block(0, n - 1, 2, 1) - result.head(2); + + result(3) = result(2) * atan2(riemannFit::cross2D(d, e), d.dot(e)) / (hits(2, n - 1) - hits(2, 0)); + // ds/dz slope between last and first point + } + + /*! + \brief Performs the Broken Line fit in the curved track case (that is, the fit + * parameters are the interceptions u and the curvature correction \Delta\kappa). + + \param hits hits coordinates. + \param hits_cov hits covariance matrix. + \param fast_fit pre-fit result in the form (X0,Y0,R,tan(theta)). + \param bField magnetic field in Gev/cm/c. + \param data PreparedBrokenLineData. + \param circle_results struct to be filled with the results in this form: + -par parameter of the line in this form: (phi, d, k); \n + -cov covariance matrix of the fitted parameter; \n + -chi2 value of the cost function in the minimum. + + \details The function implements the steps 2 and 3 of the Broken Line fit + * with the curvature correction.\n + * The step 2 is the least square fit, done by imposing the minimum constraint on + * the cost function and solving the consequent linear system. It determines the + * fitted parameters u and \Delta\kappa and their covariance matrix. + * The step 3 is the correction of the fast pre-fitted parameters for the innermost + * part of the track. It is first done in a comfortable coordinate system (the one + * in which the first hit is the origin) and then the parameters and their + * covariance matrix are transformed to the original coordinate system. + */ + template + __host__ __device__ inline void circleFit(const M3xN& hits, + const M6xN& hits_ge, + const V4& fast_fit, + const double bField, + PreparedBrokenLineData& data, + karimaki_circle_fit& circle_results) { + circle_results.qCharge = data.qCharge; + auto& radii = data.radii; + const auto& sTransverse = data.sTransverse; + const auto& sTotal = data.sTotal; + auto& zInSZplane = data.zInSZplane; + auto& varBeta = data.varBeta; + const double slope = -circle_results.qCharge / fast_fit(3); + varBeta *= 1. + riemannFit::sqr(slope); // the kink angles are projected! + + for (u_int i = 0; i < n; i++) { + zInSZplane(i) = radii.block(0, i, 2, 1).norm() - fast_fit(2); + } + + riemannFit::Matrix2d vMat; // covariance matrix + riemannFit::VectorNd weightsVec; // weights + riemannFit::Matrix2d rotMat; // rotation matrix point by point + for (u_int i = 0; i < n; i++) { + vMat(0, 0) = hits_ge.col(i)[0]; // x errors + vMat(0, 1) = vMat(1, 0) = hits_ge.col(i)[1]; // cov_xy + vMat(1, 1) = hits_ge.col(i)[2]; // y errors + rotMat = rotationMatrix(-radii(0, i) / radii(1, i)); + weightsVec(i) = + 1. / ((rotMat * vMat * rotMat.transpose())(1, 1)); // compute the orthogonal weight point by point + } + + riemannFit::VectorNplusONEd r_uVec; + r_uVec(n) = 0; + for (u_int i = 0; i < n; i++) { + r_uVec(i) = weightsVec(i) * zInSZplane(i); + } + + riemannFit::MatrixNplusONEd c_uMat; + c_uMat.block(0, 0, n, n) = matrixC_u(weightsVec, sTransverse, varBeta); + c_uMat(n, n) = 0; + //add the border to the c_uMat matrix + for (u_int i = 0; i < n; i++) { + c_uMat(i, n) = 0; + if (i > 0 && i < n - 1) { + c_uMat(i, n) += + -(sTransverse(i + 1) - sTransverse(i - 1)) * (sTransverse(i + 1) - sTransverse(i - 1)) / + (2. * varBeta(i) * (sTransverse(i + 1) - sTransverse(i)) * (sTransverse(i) - sTransverse(i - 1))); + } + if (i > 1) { + c_uMat(i, n) += + (sTransverse(i) - sTransverse(i - 2)) / (2. * varBeta(i - 1) * (sTransverse(i) - sTransverse(i - 1))); + } + if (i < n - 2) { + c_uMat(i, n) += + (sTransverse(i + 2) - sTransverse(i)) / (2. * varBeta(i + 1) * (sTransverse(i + 1) - sTransverse(i))); + } + c_uMat(n, i) = c_uMat(i, n); + if (i > 0 && i < n - 1) + c_uMat(n, n) += riemannFit::sqr(sTransverse(i + 1) - sTransverse(i - 1)) / (4. * varBeta(i)); + } + +#ifdef CPP_DUMP + std::cout << "CU5\n" << c_uMat << std::endl; +#endif + riemannFit::MatrixNplusONEd iMat; + math::cholesky::invert(c_uMat, iMat); +#ifdef CPP_DUMP + std::cout << "I5\n" << iMat << std::endl; +#endif + + riemannFit::VectorNplusONEd uVec = iMat * r_uVec; // obtain the fitted parameters by solving the linear system + + // compute (phi, d_ca, k) in the system in which the midpoint of the first two corrected hits is the origin... + + radii.block(0, 0, 2, 1) /= radii.block(0, 0, 2, 1).norm(); + radii.block(0, 1, 2, 1) /= radii.block(0, 1, 2, 1).norm(); + + riemannFit::Vector2d dVec = hits.block(0, 0, 2, 1) + (-zInSZplane(0) + uVec(0)) * radii.block(0, 0, 2, 1); + riemannFit::Vector2d eVec = hits.block(0, 1, 2, 1) + (-zInSZplane(1) + uVec(1)) * radii.block(0, 1, 2, 1); + + circle_results.par << atan2((eVec - dVec)(1), (eVec - dVec)(0)), + -circle_results.qCharge * + (fast_fit(2) - sqrt(riemannFit::sqr(fast_fit(2)) - 0.25 * (eVec - dVec).squaredNorm())), + circle_results.qCharge * (1. / fast_fit(2) + uVec(n)); + + assert(circle_results.qCharge * circle_results.par(1) <= 0); + + riemannFit::Vector2d eMinusd = eVec - dVec; + double tmp1 = eMinusd.squaredNorm(); + double tmp2 = sqrt(riemannFit::sqr(2 * fast_fit(2)) - tmp1); + + riemannFit::Matrix3d jacobian; + jacobian << (radii(1, 0) * eMinusd(0) - eMinusd(1) * radii(0, 0)) / tmp1, + (radii(1, 1) * eMinusd(0) - eMinusd(1) * radii(0, 1)) / tmp1, 0, + (circle_results.qCharge / 2) * (eMinusd(0) * radii(0, 0) + eMinusd(1) * radii(1, 0)) / tmp2, + (circle_results.qCharge / 2) * (eMinusd(0) * radii(0, 1) + eMinusd(1) * radii(1, 1)) / tmp2, 0, 0, 0, + circle_results.qCharge; + + circle_results.cov << iMat(0, 0), iMat(0, 1), iMat(0, n), iMat(1, 0), iMat(1, 1), iMat(1, n), iMat(n, 0), + iMat(n, 1), iMat(n, n); + + circle_results.cov = jacobian * circle_results.cov * jacobian.transpose(); + + //...Translate in the system in which the first corrected hit is the origin, adding the m.s. correction... + + auto eMinusDVec = eVec - dVec; + translateKarimaki(circle_results, 0.5 * eMinusDVec(0), 0.5 * eMinusDVec(1), jacobian); + circle_results.cov(0, 0) += + (1 + riemannFit::sqr(slope)) * multScatt(sTotal(1) - sTotal(0), bField, fast_fit(2), 2, slope); + + //...And translate back to the original system + + translateKarimaki(circle_results, dVec(0), dVec(1), jacobian); + + // compute chi2 + circle_results.chi2 = 0; + for (u_int i = 0; i < n; i++) { + circle_results.chi2 += weightsVec(i) * riemannFit::sqr(zInSZplane(i) - uVec(i)); + if (i > 0 && i < n - 1) + circle_results.chi2 += + riemannFit::sqr(uVec(i - 1) / (sTransverse(i) - sTransverse(i - 1)) - + uVec(i) * (sTransverse(i + 1) - sTransverse(i - 1)) / + ((sTransverse(i + 1) - sTransverse(i)) * (sTransverse(i) - sTransverse(i - 1))) + + uVec(i + 1) / (sTransverse(i + 1) - sTransverse(i)) + + (sTransverse(i + 1) - sTransverse(i - 1)) * uVec(n) / 2) / + varBeta(i); + } + + // assert(circle_results.chi2>=0); + } + + /*! + \brief Performs the Broken Line fit in the straight track case (that is, the fit parameters are only the interceptions u). + + \param hits hits coordinates. + \param fast_fit pre-fit result in the form (X0,Y0,R,tan(theta)). + \param bField magnetic field in Gev/cm/c. + \param data PreparedBrokenLineData. + \param line_results struct to be filled with the results in this form: + -par parameter of the line in this form: (cot(theta), Zip); \n + -cov covariance matrix of the fitted parameter; \n + -chi2 value of the cost function in the minimum. + + \details The function implements the steps 2 and 3 of the Broken Line fit without + * the curvature correction.\n + * The step 2 is the least square fit, done by imposing the minimum constraint + * on the cost function and solving the consequent linear system. It determines + * the fitted parameters u and their covariance matrix. + * The step 3 is the correction of the fast pre-fitted parameters for the innermost + * part of the track. It is first done in a comfortable coordinate system (the one + * in which the first hit is the origin) and then the parameters and their covariance + * matrix are transformed to the original coordinate system. + */ + template + __host__ __device__ inline void lineFit(const M6xN& hits_ge, + const V4& fast_fit, + const double bField, + const PreparedBrokenLineData& data, + riemannFit::LineFit& line_results) { + const auto& radii = data.radii; + const auto& sTotal = data.sTotal; + const auto& zInSZplane = data.zInSZplane; + const auto& varBeta = data.varBeta; + + const double slope = -data.qCharge / fast_fit(3); + riemannFit::Matrix2d rotMat = rotationMatrix(slope); + + riemannFit::Matrix3d vMat = riemannFit::Matrix3d::Zero(); // covariance matrix XYZ + riemannFit::Matrix2x3d jacobXYZtosZ = + riemannFit::Matrix2x3d::Zero(); // jacobian for computation of the error on s (xyz -> sz) + riemannFit::VectorNd weights = riemannFit::VectorNd::Zero(); + for (u_int i = 0; i < n; i++) { + vMat(0, 0) = hits_ge.col(i)[0]; // x errors + vMat(0, 1) = vMat(1, 0) = hits_ge.col(i)[1]; // cov_xy + vMat(0, 2) = vMat(2, 0) = hits_ge.col(i)[3]; // cov_xz + vMat(1, 1) = hits_ge.col(i)[2]; // y errors + vMat(2, 1) = vMat(1, 2) = hits_ge.col(i)[4]; // cov_yz + vMat(2, 2) = hits_ge.col(i)[5]; // z errors + auto tmp = 1. / radii.block(0, i, 2, 1).norm(); + jacobXYZtosZ(0, 0) = radii(1, i) * tmp; + jacobXYZtosZ(0, 1) = -radii(0, i) * tmp; + jacobXYZtosZ(1, 2) = 1.; + weights(i) = 1. / ((rotMat * jacobXYZtosZ * vMat * jacobXYZtosZ.transpose() * rotMat.transpose())( + 1, 1)); // compute the orthogonal weight point by point + } + + riemannFit::VectorNd r_u; + for (u_int i = 0; i < n; i++) { + r_u(i) = weights(i) * zInSZplane(i); + } +#ifdef CPP_DUMP + std::cout << "CU4\n" << matrixC_u(w, sTotal, varBeta) << std::endl; +#endif + riemannFit::MatrixNd iMat; + math::cholesky::invert(matrixC_u(weights, sTotal, varBeta), iMat); +#ifdef CPP_DUMP + std::cout << "I4\n" << iMat << std::endl; +#endif + + riemannFit::VectorNd uVec = iMat * r_u; // obtain the fitted parameters by solving the linear system + + // line parameters in the system in which the first hit is the origin and with axis along SZ + line_results.par << (uVec(1) - uVec(0)) / (sTotal(1) - sTotal(0)), uVec(0); + auto idiff = 1. / (sTotal(1) - sTotal(0)); + line_results.cov << (iMat(0, 0) - 2 * iMat(0, 1) + iMat(1, 1)) * riemannFit::sqr(idiff) + + multScatt(sTotal(1) - sTotal(0), bField, fast_fit(2), 2, slope), + (iMat(0, 1) - iMat(0, 0)) * idiff, (iMat(0, 1) - iMat(0, 0)) * idiff, iMat(0, 0); + + // translate to the original SZ system + riemannFit::Matrix2d jacobian; + jacobian(0, 0) = 1.; + jacobian(0, 1) = 0; + jacobian(1, 0) = -sTotal(0); + jacobian(1, 1) = 1.; + line_results.par(1) += -line_results.par(0) * sTotal(0); + line_results.cov = jacobian * line_results.cov * jacobian.transpose(); + + // rotate to the original sz system + auto tmp = rotMat(0, 0) - line_results.par(0) * rotMat(0, 1); + jacobian(1, 1) = 1. / tmp; + jacobian(0, 0) = jacobian(1, 1) * jacobian(1, 1); + jacobian(0, 1) = 0; + jacobian(1, 0) = line_results.par(1) * rotMat(0, 1) * jacobian(0, 0); + line_results.par(1) = line_results.par(1) * jacobian(1, 1); + line_results.par(0) = (rotMat(0, 1) + line_results.par(0) * rotMat(0, 0)) * jacobian(1, 1); + line_results.cov = jacobian * line_results.cov * jacobian.transpose(); + + // compute chi2 + line_results.chi2 = 0; + for (u_int i = 0; i < n; i++) { + line_results.chi2 += weights(i) * riemannFit::sqr(zInSZplane(i) - uVec(i)); + if (i > 0 && i < n - 1) + line_results.chi2 += riemannFit::sqr(uVec(i - 1) / (sTotal(i) - sTotal(i - 1)) - + uVec(i) * (sTotal(i + 1) - sTotal(i - 1)) / + ((sTotal(i + 1) - sTotal(i)) * (sTotal(i) - sTotal(i - 1))) + + uVec(i + 1) / (sTotal(i + 1) - sTotal(i))) / + varBeta(i); + } + } + + /*! + \brief Helix fit by three step: + -fast pre-fit (see Fast_fit() for further info); \n + -circle fit of the hits projected in the transverse plane by Broken Line algorithm (see BL_Circle_fit() for further info); \n + -line fit of the hits projected on the (pre-fitted) cilinder surface by Broken Line algorithm (see BL_Line_fit() for further info); \n + Points must be passed ordered (from inner to outer layer). + + \param hits Matrix3xNd hits coordinates in this form: \n + |x1|x2|x3|...|xn| \n + |y1|y2|y3|...|yn| \n + |z1|z2|z3|...|zn| + \param hits_cov Matrix3Nd covariance matrix in this form (()->cov()): \n + |(x1,x1)|(x2,x1)|(x3,x1)|(x4,x1)|.|(y1,x1)|(y2,x1)|(y3,x1)|(y4,x1)|.|(z1,x1)|(z2,x1)|(z3,x1)|(z4,x1)| \n + |(x1,x2)|(x2,x2)|(x3,x2)|(x4,x2)|.|(y1,x2)|(y2,x2)|(y3,x2)|(y4,x2)|.|(z1,x2)|(z2,x2)|(z3,x2)|(z4,x2)| \n + |(x1,x3)|(x2,x3)|(x3,x3)|(x4,x3)|.|(y1,x3)|(y2,x3)|(y3,x3)|(y4,x3)|.|(z1,x3)|(z2,x3)|(z3,x3)|(z4,x3)| \n + |(x1,x4)|(x2,x4)|(x3,x4)|(x4,x4)|.|(y1,x4)|(y2,x4)|(y3,x4)|(y4,x4)|.|(z1,x4)|(z2,x4)|(z3,x4)|(z4,x4)| \n + . . . . . . . . . . . . . . . \n + |(x1,y1)|(x2,y1)|(x3,y1)|(x4,y1)|.|(y1,y1)|(y2,y1)|(y3,x1)|(y4,y1)|.|(z1,y1)|(z2,y1)|(z3,y1)|(z4,y1)| \n + |(x1,y2)|(x2,y2)|(x3,y2)|(x4,y2)|.|(y1,y2)|(y2,y2)|(y3,x2)|(y4,y2)|.|(z1,y2)|(z2,y2)|(z3,y2)|(z4,y2)| \n + |(x1,y3)|(x2,y3)|(x3,y3)|(x4,y3)|.|(y1,y3)|(y2,y3)|(y3,x3)|(y4,y3)|.|(z1,y3)|(z2,y3)|(z3,y3)|(z4,y3)| \n + |(x1,y4)|(x2,y4)|(x3,y4)|(x4,y4)|.|(y1,y4)|(y2,y4)|(y3,x4)|(y4,y4)|.|(z1,y4)|(z2,y4)|(z3,y4)|(z4,y4)| \n + . . . . . . . . . . . . . . . \n + |(x1,z1)|(x2,z1)|(x3,z1)|(x4,z1)|.|(y1,z1)|(y2,z1)|(y3,z1)|(y4,z1)|.|(z1,z1)|(z2,z1)|(z3,z1)|(z4,z1)| \n + |(x1,z2)|(x2,z2)|(x3,z2)|(x4,z2)|.|(y1,z2)|(y2,z2)|(y3,z2)|(y4,z2)|.|(z1,z2)|(z2,z2)|(z3,z2)|(z4,z2)| \n + |(x1,z3)|(x2,z3)|(x3,z3)|(x4,z3)|.|(y1,z3)|(y2,z3)|(y3,z3)|(y4,z3)|.|(z1,z3)|(z2,z3)|(z3,z3)|(z4,z3)| \n + |(x1,z4)|(x2,z4)|(x3,z4)|(x4,z4)|.|(y1,z4)|(y2,z4)|(y3,z4)|(y4,z4)|.|(z1,z4)|(z2,z4)|(z3,z4)|(z4,z4)| + \param bField magnetic field in the center of the detector in Gev/cm/c, in order to perform the p_t calculation. + + \warning see BL_Circle_fit(), BL_Line_fit() and Fast_fit() warnings. + + \bug see BL_Circle_fit(), BL_Line_fit() and Fast_fit() bugs. + + \return (phi,Tip,p_t,cot(theta)),Zip), their covariance matrix and the chi2's of the circle and line fits. + */ + template + inline riemannFit::HelixFit helixFit(const riemannFit::Matrix3xNd& hits, + const Eigen::Matrix& hits_ge, + const double bField) { + riemannFit::HelixFit helix; + riemannFit::Vector4d fast_fit; + fastFit(hits, fast_fit); + + PreparedBrokenLineData data; + karimaki_circle_fit circle; + riemannFit::LineFit line; + riemannFit::Matrix3d jacobian; + + prepareBrokenLineData(hits, fast_fit, bField, data); + lineFit(hits_ge, fast_fit, bField, data, line); + circleFit(hits, hits_ge, fast_fit, bField, data, circle); + + // the circle fit gives k, but here we want p_t, so let's change the parameter and the covariance matrix + jacobian << 1., 0, 0, 0, 1., 0, 0, 0, + -std::abs(circle.par(2)) * bField / (riemannFit::sqr(circle.par(2)) * circle.par(2)); + circle.par(2) = bField / std::abs(circle.par(2)); + circle.cov = jacobian * circle.cov * jacobian.transpose(); + + helix.par << circle.par, line.par; + helix.cov = riemannFit::MatrixXd::Zero(5, 5); + helix.cov.block(0, 0, 3, 3) = circle.cov; + helix.cov.block(3, 3, 2, 2) = line.cov; + helix.qCharge = circle.qCharge; + helix.chi2_circle = circle.chi2; + helix.chi2_line = line.chi2; + + return helix; + } + +} // namespace brokenline + +#endif // RecoPixelVertexing_PixelTrackFitting_interface_BrokenLine_h diff --git a/RecoPixelVertexing/PixelTrackFitting/interface/FitResult.h b/RecoPixelVertexing/PixelTrackFitting/interface/FitResult.h new file mode 100644 index 0000000000000..01497719d2998 --- /dev/null +++ b/RecoPixelVertexing/PixelTrackFitting/interface/FitResult.h @@ -0,0 +1,65 @@ +#ifndef RecoPixelVertexing_PixelTrackFitting_interface_FitResult_h +#define RecoPixelVertexing_PixelTrackFitting_interface_FitResult_h + +#include +#include + +#include +#include +#include + +namespace riemannFit { + + using Vector2d = Eigen::Vector2d; + using Vector3d = Eigen::Vector3d; + using Vector4d = Eigen::Vector4d; + using Vector5d = Eigen::Matrix; + using Matrix2d = Eigen::Matrix2d; + using Matrix3d = Eigen::Matrix3d; + using Matrix4d = Eigen::Matrix4d; + using Matrix5d = Eigen::Matrix; + using Matrix6d = Eigen::Matrix; + + template + using Matrix3xNd = Eigen::Matrix; // used for inputs hits + + struct CircleFit { + Vector3d par; //!< parameter: (X0,Y0,R) + Matrix3d cov; + /*!< covariance matrix: \n + |cov(X0,X0)|cov(Y0,X0)|cov( R,X0)| \n + |cov(X0,Y0)|cov(Y0,Y0)|cov( R,Y0)| \n + |cov(X0, R)|cov(Y0, R)|cov( R, R)| + */ + int32_t qCharge; //!< particle charge + float chi2; + }; + + struct LineFit { + Vector2d par; //!<(cotan(theta),Zip) + Matrix2d cov; + /*!< + |cov(c_t,c_t)|cov(Zip,c_t)| \n + |cov(c_t,Zip)|cov(Zip,Zip)| + */ + double chi2; + }; + + struct HelixFit { + Vector5d par; //!<(phi,Tip,pt,cotan(theta)),Zip) + Matrix5d cov; + /*!< ()->cov() \n + |(phi,phi)|(Tip,phi)|(p_t,phi)|(c_t,phi)|(Zip,phi)| \n + |(phi,Tip)|(Tip,Tip)|(p_t,Tip)|(c_t,Tip)|(Zip,Tip)| \n + |(phi,p_t)|(Tip,p_t)|(p_t,p_t)|(c_t,p_t)|(Zip,p_t)| \n + |(phi,c_t)|(Tip,c_t)|(p_t,c_t)|(c_t,c_t)|(Zip,c_t)| \n + |(phi,Zip)|(Tip,Zip)|(p_t,Zip)|(c_t,Zip)|(Zip,Zip)| + */ + float chi2_circle; + float chi2_line; + // Vector4d fast_fit; + int32_t qCharge; //!< particle charge + }; // __attribute__((aligned(16))); + +} // namespace riemannFit +#endif diff --git a/RecoPixelVertexing/PixelTrackFitting/interface/FitUtils.h b/RecoPixelVertexing/PixelTrackFitting/interface/FitUtils.h new file mode 100644 index 0000000000000..2fe74f53a7bd2 --- /dev/null +++ b/RecoPixelVertexing/PixelTrackFitting/interface/FitUtils.h @@ -0,0 +1,243 @@ +#ifndef RecoPixelVertexing_PixelTrackFitting_interface_FitUtils_h +#define RecoPixelVertexing_PixelTrackFitting_interface_FitUtils_h + +#include "DataFormats/Math/interface/choleskyInversion.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cuda_assert.h" +#include "RecoPixelVertexing/PixelTrackFitting/interface/FitResult.h" + +namespace riemannFit { + + constexpr double epsilon = 1.e-4; //!< used in numerical derivative (J2 in Circle_fit()) + + using VectorXd = Eigen::VectorXd; + using MatrixXd = Eigen::MatrixXd; + template + using MatrixNd = Eigen::Matrix; + template + using MatrixNplusONEd = Eigen::Matrix; + template + using ArrayNd = Eigen::Array; + template + using Matrix2Nd = Eigen::Matrix; + template + using Matrix3Nd = Eigen::Matrix; + template + using Matrix2xNd = Eigen::Matrix; + template + using Array2xNd = Eigen::Array; + template + using MatrixNx3d = Eigen::Matrix; + template + using MatrixNx5d = Eigen::Matrix; + template + using VectorNd = Eigen::Matrix; + template + using VectorNplusONEd = Eigen::Matrix; + template + using Vector2Nd = Eigen::Matrix; + template + using Vector3Nd = Eigen::Matrix; + template + using RowVectorNd = Eigen::Matrix; + template + using RowVector2Nd = Eigen::Matrix; + + using Matrix2x3d = Eigen::Matrix; + + using Matrix3f = Eigen::Matrix3f; + using Vector3f = Eigen::Vector3f; + using Vector4f = Eigen::Vector4f; + using Vector6f = Eigen::Matrix; + + template + __host__ __device__ void printIt(C* m, const char* prefix = "") { +#ifdef RFIT_DEBUG + for (uint r = 0; r < m->rows(); ++r) { + for (uint c = 0; c < m->cols(); ++c) { + printf("%s Matrix(%d,%d) = %g\n", prefix, r, c, (*m)(r, c)); + } + } +#endif + } + + /*! + \brief raise to square. + */ + template + constexpr T sqr(const T a) { + return a * a; + } + + /*! + \brief Compute cross product of two 2D vector (assuming z component 0), + returning z component of the result. + \param a first 2D vector in the product. + \param b second 2D vector in the product. + \return z component of the cross product. + */ + + __host__ __device__ inline double cross2D(const Vector2d& a, const Vector2d& b) { + return a.x() * b.y() - a.y() * b.x(); + } + + /*! + * load error in CMSSW format to our formalism + * + */ + template + __host__ __device__ void loadCovariance2D(M6xNf const& ge, M2Nd& hits_cov) { + // Index numerology: + // i: index of the hits/point (0,..,3) + // j: index of space component (x,y,z) + // l: index of space components (x,y,z) + // ge is always in sync with the index i and is formatted as: + // ge[] ==> [xx, xy, yy, xz, yz, zz] + // in (j,l) notation, we have: + // ge[] ==> [(0,0), (0,1), (1,1), (0,2), (1,2), (2,2)] + // so the index ge_idx corresponds to the matrix elements: + // | 0 1 3 | + // | 1 2 4 | + // | 3 4 5 | + constexpr uint32_t hits_in_fit = M6xNf::ColsAtCompileTime; + for (uint32_t i = 0; i < hits_in_fit; ++i) { + { + constexpr uint32_t ge_idx = 0, j = 0, l = 0; + hits_cov(i + j * hits_in_fit, i + l * hits_in_fit) = ge.col(i)[ge_idx]; + } + { + constexpr uint32_t ge_idx = 2, j = 1, l = 1; + hits_cov(i + j * hits_in_fit, i + l * hits_in_fit) = ge.col(i)[ge_idx]; + } + { + constexpr uint32_t ge_idx = 1, j = 1, l = 0; + hits_cov(i + l * hits_in_fit, i + j * hits_in_fit) = hits_cov(i + j * hits_in_fit, i + l * hits_in_fit) = + ge.col(i)[ge_idx]; + } + } + } + + template + __host__ __device__ void loadCovariance(M6xNf const& ge, M3xNd& hits_cov) { + // Index numerology: + // i: index of the hits/point (0,..,3) + // j: index of space component (x,y,z) + // l: index of space components (x,y,z) + // ge is always in sync with the index i and is formatted as: + // ge[] ==> [xx, xy, yy, xz, yz, zz] + // in (j,l) notation, we have: + // ge[] ==> [(0,0), (0,1), (1,1), (0,2), (1,2), (2,2)] + // so the index ge_idx corresponds to the matrix elements: + // | 0 1 3 | + // | 1 2 4 | + // | 3 4 5 | + constexpr uint32_t hits_in_fit = M6xNf::ColsAtCompileTime; + for (uint32_t i = 0; i < hits_in_fit; ++i) { + { + constexpr uint32_t ge_idx = 0, j = 0, l = 0; + hits_cov(i + j * hits_in_fit, i + l * hits_in_fit) = ge.col(i)[ge_idx]; + } + { + constexpr uint32_t ge_idx = 2, j = 1, l = 1; + hits_cov(i + j * hits_in_fit, i + l * hits_in_fit) = ge.col(i)[ge_idx]; + } + { + constexpr uint32_t ge_idx = 5, j = 2, l = 2; + hits_cov(i + j * hits_in_fit, i + l * hits_in_fit) = ge.col(i)[ge_idx]; + } + { + constexpr uint32_t ge_idx = 1, j = 1, l = 0; + hits_cov(i + l * hits_in_fit, i + j * hits_in_fit) = hits_cov(i + j * hits_in_fit, i + l * hits_in_fit) = + ge.col(i)[ge_idx]; + } + { + constexpr uint32_t ge_idx = 3, j = 2, l = 0; + hits_cov(i + l * hits_in_fit, i + j * hits_in_fit) = hits_cov(i + j * hits_in_fit, i + l * hits_in_fit) = + ge.col(i)[ge_idx]; + } + { + constexpr uint32_t ge_idx = 4, j = 2, l = 1; + hits_cov(i + l * hits_in_fit, i + j * hits_in_fit) = hits_cov(i + j * hits_in_fit, i + l * hits_in_fit) = + ge.col(i)[ge_idx]; + } + } + } + + /*! + \brief Transform circle parameter from (X0,Y0,R) to (phi,Tip,p_t) and + consequently covariance matrix. + \param circle_uvr parameter (X0,Y0,R), covariance matrix to + be transformed and particle charge. + \param B magnetic field in Gev/cm/c unit. + \param error flag for errors computation. + */ + __host__ __device__ inline void par_uvrtopak(CircleFit& circle, const double B, const bool error) { + Vector3d par_pak; + const double temp0 = circle.par.head(2).squaredNorm(); + const double temp1 = sqrt(temp0); + par_pak << atan2(circle.qCharge * circle.par(0), -circle.qCharge * circle.par(1)), + circle.qCharge * (temp1 - circle.par(2)), circle.par(2) * B; + if (error) { + const double temp2 = sqr(circle.par(0)) * 1. / temp0; + const double temp3 = 1. / temp1 * circle.qCharge; + Matrix3d j4Mat; + j4Mat << -circle.par(1) * temp2 * 1. / sqr(circle.par(0)), temp2 * 1. / circle.par(0), 0., circle.par(0) * temp3, + circle.par(1) * temp3, -circle.qCharge, 0., 0., B; + circle.cov = j4Mat * circle.cov * j4Mat.transpose(); + } + circle.par = par_pak; + } + + /*! + \brief Transform circle parameter from (X0,Y0,R) to (phi,Tip,q/R) and + consequently covariance matrix. + \param circle_uvr parameter (X0,Y0,R), covariance matrix to + be transformed and particle charge. + */ + __host__ __device__ inline void fromCircleToPerigee(CircleFit& circle) { + Vector3d par_pak; + const double temp0 = circle.par.head(2).squaredNorm(); + const double temp1 = sqrt(temp0); + par_pak << atan2(circle.qCharge * circle.par(0), -circle.qCharge * circle.par(1)), + circle.qCharge * (temp1 - circle.par(2)), circle.qCharge / circle.par(2); + + const double temp2 = sqr(circle.par(0)) * 1. / temp0; + const double temp3 = 1. / temp1 * circle.qCharge; + Matrix3d j4Mat; + j4Mat << -circle.par(1) * temp2 * 1. / sqr(circle.par(0)), temp2 * 1. / circle.par(0), 0., circle.par(0) * temp3, + circle.par(1) * temp3, -circle.qCharge, 0., 0., -circle.qCharge / (circle.par(2) * circle.par(2)); + circle.cov = j4Mat * circle.cov * j4Mat.transpose(); + + circle.par = par_pak; + } + + // transformation between the "perigee" to cmssw localcoord frame + // the plane of the latter is the perigee plane... + // from //!<(phi,Tip,q/pt,cotan(theta)),Zip) + // to q/p,dx/dz,dy/dz,x,z + template + __host__ __device__ inline void transformToPerigeePlane(VI5 const& ip, MI5 const& icov, VO5& op, MO5& ocov) { + auto sinTheta2 = 1. / (1. + ip(3) * ip(3)); + auto sinTheta = std::sqrt(sinTheta2); + auto cosTheta = ip(3) * sinTheta; + + op(0) = sinTheta * ip(2); + op(1) = 0.; + op(2) = -ip(3); + op(3) = ip(1); + op(4) = -ip(4); + + Matrix5d jMat = Matrix5d::Zero(); + + jMat(0, 2) = sinTheta; + jMat(0, 3) = -sinTheta2 * cosTheta * ip(2); + jMat(1, 0) = 1.; + jMat(2, 3) = -1.; + jMat(3, 1) = 1.; + jMat(4, 4) = -1; + + ocov = jMat * icov * jMat.transpose(); + } + +} // namespace riemannFit + +#endif // RecoPixelVertexing_PixelTrackFitting_interface_FitUtils_h diff --git a/RecoPixelVertexing/PixelTrackFitting/interface/PixelNtupletsFitter.h b/RecoPixelVertexing/PixelTrackFitting/interface/PixelNtupletsFitter.h new file mode 100644 index 0000000000000..9fb8843589669 --- /dev/null +++ b/RecoPixelVertexing/PixelTrackFitting/interface/PixelNtupletsFitter.h @@ -0,0 +1,27 @@ +#ifndef RecoPixelVertexing_PixelTrackFitting_interface_PixelNtupletsFitter_h +#define RecoPixelVertexing_PixelTrackFitting_interface_PixelNtupletsFitter_h + +#include + +#include "DataFormats/TrackReco/interface/Track.h" +#include "DataFormats/TrackingRecHit/interface/TrackingRecHit.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "RecoPixelVertexing/PixelTrackFitting/interface/PixelFitterBase.h" +#include "RecoTracker/TkTrackingRegions/interface/TrackingRegion.h" + +class PixelNtupletsFitter final : public PixelFitterBase { +public: + explicit PixelNtupletsFitter(float nominalB, const MagneticField* field, bool useRiemannFit); + ~PixelNtupletsFitter() override = default; + std::unique_ptr run(const std::vector& hits, + const TrackingRegion& region, + const edm::EventSetup& setup) const override; + +private: + float nominalB_; + const MagneticField* field_; + bool useRiemannFit_; +}; + +#endif // RecoPixelVertexing_PixelTrackFitting_interface_PixelNtupletsFitter_h diff --git a/RecoPixelVertexing/PixelTrackFitting/interface/RiemannFit.h b/RecoPixelVertexing/PixelTrackFitting/interface/RiemannFit.h new file mode 100644 index 0000000000000..52cf4b637fb37 --- /dev/null +++ b/RecoPixelVertexing/PixelTrackFitting/interface/RiemannFit.h @@ -0,0 +1,1008 @@ +#ifndef RecoPixelVertexing_PixelTrackFitting_interface_RiemannFit_h +#define RecoPixelVertexing_PixelTrackFitting_interface_RiemannFit_h + +#include "RecoPixelVertexing/PixelTrackFitting/interface/FitUtils.h" + +namespace riemannFit { + + /*! Compute the Radiation length in the uniform hypothesis + * + * The Pixel detector, barrel and forward, is considered as an homogeneous + * cylinder of material, whose radiation lengths has been derived from the TDR + * plot that shows that 16cm correspond to 0.06 radiation lengths. Therefore + * one radiation length corresponds to 16cm/0.06 =~ 267 cm. All radiation + * lengths are computed using this unique number, in both regions, barrel and + * endcap. + * + * NB: no angle corrections nor projections are computed inside this routine. + * It is therefore the responsibility of the caller to supply the proper + * lengths in input. These lengths are the path traveled by the particle along + * its trajectory, namely the so called S of the helix in 3D space. + * + * \param length_values vector of incremental distances that will be translated + * into radiation length equivalent. Each radiation length i is computed + * incrementally with respect to the previous length i-1. The first length has + * no reference point (i.e. it has the dca). + * + * \return incremental radiation lengths that correspond to each segment. + */ + + template + __host__ __device__ inline void computeRadLenUniformMaterial(const VNd1& length_values, VNd2& rad_lengths) { + // Radiation length of the pixel detector in the uniform assumption, with + // 0.06 rad_len at 16 cm + constexpr double xx_0_inv = 0.06 / 16.; + uint n = length_values.rows(); + rad_lengths(0) = length_values(0) * xx_0_inv; + for (uint j = 1; j < n; ++j) { + rad_lengths(j) = std::abs(length_values(j) - length_values(j - 1)) * xx_0_inv; + } + } + + /*! + \brief Compute the covariance matrix along cartesian S-Z of points due to + multiple Coulomb scattering to be used in the line_fit, for the barrel + and forward cases. + The input covariance matrix is in the variables s-z, original and + unrotated. + The multiple scattering component is computed in the usual linear + approximation, using the 3D path which is computed as the squared root of + the squared sum of the s and z components passed in. + Internally a rotation by theta is performed and the covariance matrix + returned is the one in the direction orthogonal to the rotated S3D axis, + i.e. along the rotated Z axis. + The choice of the rotation is not arbitrary, but derived from the fact that + putting the horizontal axis along the S3D direction allows the usage of the + ordinary least squared fitting techiques with the trivial parametrization y + = mx + q, avoiding the patological case with m = +/- inf, that would + correspond to the case at eta = 0. + */ + + template + __host__ __device__ inline auto scatterCovLine(Matrix2d const* cov_sz, + const V4& fast_fit, + VNd1 const& s_arcs, + VNd2 const& z_values, + const double theta, + const double bField, + MatrixNd& ret) { +#ifdef RFIT_DEBUG + riemannFit::printIt(&s_arcs, "Scatter_cov_line - s_arcs: "); +#endif + constexpr uint n = N; + double p_t = std::min(20., fast_fit(2) * bField); // limit pt to avoid too small error!!! + double p_2 = p_t * p_t * (1. + 1. / sqr(fast_fit(3))); + VectorNd rad_lengths_S; + // See documentation at http://eigen.tuxfamily.org/dox/group__TutorialArrayClass.html + // Basically, to perform cwise operations on Matrices and Vectors, you need + // to transform them into Array-like objects. + VectorNd s_values = s_arcs.array() * s_arcs.array() + z_values.array() * z_values.array(); + s_values = s_values.array().sqrt(); + computeRadLenUniformMaterial(s_values, rad_lengths_S); + VectorNd sig2_S; + sig2_S = .000225 / p_2 * (1. + 0.038 * rad_lengths_S.array().log()).abs2() * rad_lengths_S.array(); +#ifdef RFIT_DEBUG + riemannFit::printIt(cov_sz, "Scatter_cov_line - cov_sz: "); +#endif + Matrix2Nd tmp = Matrix2Nd::Zero(); + for (uint k = 0; k < n; ++k) { + tmp(k, k) = cov_sz[k](0, 0); + tmp(k + n, k + n) = cov_sz[k](1, 1); + tmp(k, k + n) = tmp(k + n, k) = cov_sz[k](0, 1); + } + for (uint k = 0; k < n; ++k) { + for (uint l = k; l < n; ++l) { + for (uint i = 0; i < std::min(k, l); ++i) { + tmp(k + n, l + n) += std::abs(s_values(k) - s_values(i)) * std::abs(s_values(l) - s_values(i)) * sig2_S(i); + } + tmp(l + n, k + n) = tmp(k + n, l + n); + } + } + // We are interested only in the errors orthogonal to the rotated s-axis + // which, in our formalism, are in the lower square matrix. +#ifdef RFIT_DEBUG + riemannFit::printIt(&tmp, "Scatter_cov_line - tmp: "); +#endif + ret = tmp.block(n, n, n, n); + } + + /*! + \brief Compute the covariance matrix (in radial coordinates) of points in + the transverse plane due to multiple Coulomb scattering. + \param p2D 2D points in the transverse plane. + \param fast_fit fast_fit Vector4d result of the previous pre-fit + structured in this form:(X0, Y0, R, Tan(Theta))). + \param B magnetic field use to compute p + \return scatter_cov_rad errors due to multiple scattering. + \warning input points must be ordered radially from the detector center + (from inner layer to outer ones; points on the same layer must ordered too). + \details Only the tangential component is computed (the radial one is + negligible). + */ + template + __host__ __device__ inline MatrixNd scatter_cov_rad(const M2xN& p2D, + const V4& fast_fit, + VectorNd const& rad, + double B) { + constexpr uint n = N; + double p_t = std::min(20., fast_fit(2) * B); // limit pt to avoid too small error!!! + double p_2 = p_t * p_t * (1. + 1. / sqr(fast_fit(3))); + double theta = atan(fast_fit(3)); + theta = theta < 0. ? theta + M_PI : theta; + VectorNd s_values; + VectorNd rad_lengths; + const Vector2d oVec(fast_fit(0), fast_fit(1)); + + // associated Jacobian, used in weights and errors computation + for (uint i = 0; i < n; ++i) { // x + Vector2d pVec = p2D.block(0, i, 2, 1) - oVec; + const double cross = cross2D(-oVec, pVec); + const double dot = (-oVec).dot(pVec); + const double tempAtan2 = atan2(cross, dot); + s_values(i) = std::abs(tempAtan2 * fast_fit(2)); + } + computeRadLenUniformMaterial(s_values * sqrt(1. + 1. / sqr(fast_fit(3))), rad_lengths); + MatrixNd scatter_cov_rad = MatrixNd::Zero(); + VectorNd sig2 = (1. + 0.038 * rad_lengths.array().log()).abs2() * rad_lengths.array(); + sig2 *= 0.000225 / (p_2 * sqr(sin(theta))); + for (uint k = 0; k < n; ++k) { + for (uint l = k; l < n; ++l) { + for (uint i = 0; i < std::min(k, l); ++i) { + scatter_cov_rad(k, l) += (rad(k) - rad(i)) * (rad(l) - rad(i)) * sig2(i); + } + scatter_cov_rad(l, k) = scatter_cov_rad(k, l); + } + } +#ifdef RFIT_DEBUG + riemannFit::printIt(&scatter_cov_rad, "Scatter_cov_rad - scatter_cov_rad: "); +#endif + return scatter_cov_rad; + } + + /*! + \brief Transform covariance matrix from radial (only tangential component) + to Cartesian coordinates (only transverse plane component). + \param p2D 2D points in the transverse plane. + \param cov_rad covariance matrix in radial coordinate. + \return cov_cart covariance matrix in Cartesian coordinates. +*/ + + template + __host__ __device__ inline Matrix2Nd cov_radtocart(const M2xN& p2D, + const MatrixNd& cov_rad, + const VectorNd& rad) { +#ifdef RFIT_DEBUG + printf("Address of p2D: %p\n", &p2D); +#endif + printIt(&p2D, "cov_radtocart - p2D:"); + constexpr uint n = N; + Matrix2Nd cov_cart = Matrix2Nd::Zero(); + VectorNd rad_inv = rad.cwiseInverse(); + printIt(&rad_inv, "cov_radtocart - rad_inv:"); + for (uint i = 0; i < n; ++i) { + for (uint j = i; j < n; ++j) { + cov_cart(i, j) = cov_rad(i, j) * p2D(1, i) * rad_inv(i) * p2D(1, j) * rad_inv(j); + cov_cart(i + n, j + n) = cov_rad(i, j) * p2D(0, i) * rad_inv(i) * p2D(0, j) * rad_inv(j); + cov_cart(i, j + n) = -cov_rad(i, j) * p2D(1, i) * rad_inv(i) * p2D(0, j) * rad_inv(j); + cov_cart(i + n, j) = -cov_rad(i, j) * p2D(0, i) * rad_inv(i) * p2D(1, j) * rad_inv(j); + cov_cart(j, i) = cov_cart(i, j); + cov_cart(j + n, i + n) = cov_cart(i + n, j + n); + cov_cart(j + n, i) = cov_cart(i, j + n); + cov_cart(j, i + n) = cov_cart(i + n, j); + } + } + return cov_cart; + } + + /*! + \brief Transform covariance matrix from Cartesian coordinates (only + transverse plane component) to radial coordinates (both radial and + tangential component but only diagonal terms, correlation between different + point are not managed). + \param p2D 2D points in transverse plane. + \param cov_cart covariance matrix in Cartesian coordinates. + \return cov_rad covariance matrix in raidal coordinate. + \warning correlation between different point are not computed. +*/ + template + __host__ __device__ inline VectorNd cov_carttorad(const M2xN& p2D, + const Matrix2Nd& cov_cart, + const VectorNd& rad) { + constexpr uint n = N; + VectorNd cov_rad; + const VectorNd rad_inv2 = rad.cwiseInverse().array().square(); + for (uint i = 0; i < n; ++i) { + //!< in case you have (0,0) to avoid dividing by 0 radius + if (rad(i) < 1.e-4) + cov_rad(i) = cov_cart(i, i); + else { + cov_rad(i) = rad_inv2(i) * (cov_cart(i, i) * sqr(p2D(1, i)) + cov_cart(i + n, i + n) * sqr(p2D(0, i)) - + 2. * cov_cart(i, i + n) * p2D(0, i) * p2D(1, i)); + } + } + return cov_rad; + } + + /*! + \brief Transform covariance matrix from Cartesian coordinates (only + transverse plane component) to coordinates system orthogonal to the + pre-fitted circle in each point. + Further information in attached documentation. + \param p2D 2D points in transverse plane. + \param cov_cart covariance matrix in Cartesian coordinates. + \param fast_fit fast_fit Vector4d result of the previous pre-fit + structured in this form:(X0, Y0, R, tan(theta))). + \return cov_rad covariance matrix in the pre-fitted circle's + orthogonal system. +*/ + template + __host__ __device__ inline VectorNd cov_carttorad_prefit(const M2xN& p2D, + const Matrix2Nd& cov_cart, + V4& fast_fit, + const VectorNd& rad) { + constexpr uint n = N; + VectorNd cov_rad; + for (uint i = 0; i < n; ++i) { + //!< in case you have (0,0) to avoid dividing by 0 radius + if (rad(i) < 1.e-4) + cov_rad(i) = cov_cart(i, i); // TO FIX + else { + Vector2d a = p2D.col(i); + Vector2d b = p2D.col(i) - fast_fit.head(2); + const double x2 = a.dot(b); + const double y2 = cross2D(a, b); + const double tan_c = -y2 / x2; + const double tan_c2 = sqr(tan_c); + cov_rad(i) = + 1. / (1. + tan_c2) * (cov_cart(i, i) + cov_cart(i + n, i + n) * tan_c2 + 2 * cov_cart(i, i + n) * tan_c); + } + } + return cov_rad; + } + + /*! + \brief Compute the points' weights' vector for the circle fit when multiple + scattering is managed. + Further information in attached documentation. + \param cov_rad_inv covariance matrix inverse in radial coordinated + (or, beter, pre-fitted circle's orthogonal system). + \return weight VectorNd points' weights' vector. + \bug I'm not sure this is the right way to compute the weights for non + diagonal cov matrix. Further investigation needed. +*/ + + template + __host__ __device__ inline VectorNd weightCircle(const MatrixNd& cov_rad_inv) { + return cov_rad_inv.colwise().sum().transpose(); + } + + /*! + \brief Find particle q considering the sign of cross product between + particles velocity (estimated by the first 2 hits) and the vector radius + between the first hit and the center of the fitted circle. + \param p2D 2D points in transverse plane. + \param par_uvr result of the circle fit in this form: (X0,Y0,R). + \return q int 1 or -1. +*/ + template + __host__ __device__ inline int32_t charge(const M2xN& p2D, const Vector3d& par_uvr) { + return ((p2D(0, 1) - p2D(0, 0)) * (par_uvr.y() - p2D(1, 0)) - (p2D(1, 1) - p2D(1, 0)) * (par_uvr.x() - p2D(0, 0)) > + 0) + ? -1 + : 1; + } + + /*! + \brief Compute the eigenvector associated to the minimum eigenvalue. + \param A the Matrix you want to know eigenvector and eigenvalue. + \param chi2 the double were the chi2-related quantity will be stored. + \return the eigenvector associated to the minimum eigenvalue. + \warning double precision is needed for a correct assessment of chi2. + \details The minimus eigenvalue is related to chi2. + We exploit the fact that the matrix is symmetrical and small (2x2 for line + fit and 3x3 for circle fit), so the SelfAdjointEigenSolver from Eigen + library is used, with the computedDirect method (available only for 2x2 + and 3x3 Matrix) wich computes eigendecomposition of given matrix using a + fast closed-form algorithm. + For this optimization the matrix type must be known at compiling time. +*/ + + __host__ __device__ inline Vector3d min_eigen3D(const Matrix3d& A, double& chi2) { +#ifdef RFIT_DEBUG + printf("min_eigen3D - enter\n"); +#endif + Eigen::SelfAdjointEigenSolver solver(3); + solver.computeDirect(A); + int min_index; + chi2 = solver.eigenvalues().minCoeff(&min_index); +#ifdef RFIT_DEBUG + printf("min_eigen3D - exit\n"); +#endif + return solver.eigenvectors().col(min_index); + } + + /*! + \brief A faster version of min_eigen3D() where double precision is not + needed. + \param A the Matrix you want to know eigenvector and eigenvalue. + \param chi2 the double were the chi2-related quantity will be stored + \return the eigenvector associated to the minimum eigenvalue. + \detail The computedDirect() method of SelfAdjointEigenSolver for 3x3 Matrix + indeed, use trigonometry function (it solves a third degree equation) which + speed up in single precision. +*/ + + __host__ __device__ inline Vector3d min_eigen3D_fast(const Matrix3d& A) { + Eigen::SelfAdjointEigenSolver solver(3); + solver.computeDirect(A.cast()); + int min_index; + solver.eigenvalues().minCoeff(&min_index); + return solver.eigenvectors().col(min_index).cast(); + } + + /*! + \brief 2D version of min_eigen3D(). + \param aMat the Matrix you want to know eigenvector and eigenvalue. + \param chi2 the double were the chi2-related quantity will be stored + \return the eigenvector associated to the minimum eigenvalue. + \detail The computedDirect() method of SelfAdjointEigenSolver for 2x2 Matrix + do not use special math function (just sqrt) therefore it doesn't speed up + significantly in single precision. +*/ + + __host__ __device__ inline Vector2d min_eigen2D(const Matrix2d& aMat, double& chi2) { + Eigen::SelfAdjointEigenSolver solver(2); + solver.computeDirect(aMat); + int min_index; + chi2 = solver.eigenvalues().minCoeff(&min_index); + return solver.eigenvectors().col(min_index); + } + + /*! + \brief A very fast helix fit: it fits a circle by three points (first, middle + and last point) and a line by two points (first and last). + \param hits points to be fitted + \return result in this form: (X0,Y0,R,tan(theta)). + \warning points must be passed ordered (from internal layer to external) in + order to maximize accuracy and do not mistake tan(theta) sign. + \details This fast fit is used as pre-fit which is needed for: + - weights estimation and chi2 computation in line fit (fundamental); + - weights estimation and chi2 computation in circle fit (useful); + - computation of error due to multiple scattering. +*/ + + template + __host__ __device__ inline void fastFit(const M3xN& hits, V4& result) { + constexpr uint32_t N = M3xN::ColsAtCompileTime; + constexpr auto n = N; // get the number of hits + printIt(&hits, "Fast_fit - hits: "); + + // CIRCLE FIT + // Make segments between middle-to-first(b) and last-to-first(c) hits + const Vector2d bVec = hits.block(0, n / 2, 2, 1) - hits.block(0, 0, 2, 1); + const Vector2d cVec = hits.block(0, n - 1, 2, 1) - hits.block(0, 0, 2, 1); + printIt(&bVec, "Fast_fit - b: "); + printIt(&cVec, "Fast_fit - c: "); + // Compute their lengths + auto b2 = bVec.squaredNorm(); + auto c2 = cVec.squaredNorm(); + // The algebra has been verified (MR). The usual approach has been followed: + // * use an orthogonal reference frame passing from the first point. + // * build the segments (chords) + // * build orthogonal lines through mid points + // * make a system and solve for X0 and Y0. + // * add the initial point + bool flip = abs(bVec.x()) < abs(bVec.y()); + auto bx = flip ? bVec.y() : bVec.x(); + auto by = flip ? bVec.x() : bVec.y(); + auto cx = flip ? cVec.y() : cVec.x(); + auto cy = flip ? cVec.x() : cVec.y(); + //!< in case b.x is 0 (2 hits with same x) + auto div = 2. * (cx * by - bx * cy); + // if aligned TO FIX + auto y0 = (cx * b2 - bx * c2) / div; + auto x0 = (0.5 * b2 - y0 * by) / bx; + result(0) = hits(0, 0) + (flip ? y0 : x0); + result(1) = hits(1, 0) + (flip ? x0 : y0); + result(2) = sqrt(sqr(x0) + sqr(y0)); + printIt(&result, "Fast_fit - result: "); + + // LINE FIT + const Vector2d dVec = hits.block(0, 0, 2, 1) - result.head(2); + const Vector2d eVec = hits.block(0, n - 1, 2, 1) - result.head(2); + printIt(&eVec, "Fast_fit - e: "); + printIt(&dVec, "Fast_fit - d: "); + // Compute the arc-length between first and last point: L = R * theta = R * atan (tan (Theta) ) + auto dr = result(2) * atan2(cross2D(dVec, eVec), dVec.dot(eVec)); + // Simple difference in Z between last and first hit + auto dz = hits(2, n - 1) - hits(2, 0); + + result(3) = (dr / dz); + +#ifdef RFIT_DEBUG + printf("Fast_fit: [%f, %f, %f, %f]\n", result(0), result(1), result(2), result(3)); +#endif + } + + /*! + \brief Fit a generic number of 2D points with a circle using Riemann-Chernov + algorithm. Covariance matrix of fitted parameter is optionally computed. + Multiple scattering (currently only in barrel layer) is optionally handled. + \param hits2D 2D points to be fitted. + \param hits_cov2D covariance matrix of 2D points. + \param fast_fit pre-fit result in this form: (X0,Y0,R,tan(theta)). + (tan(theta) is not used). + \param bField magnetic field + \param error flag for error computation. + \param scattering flag for multiple scattering + \return circle circle_fit: + -par parameter of the fitted circle in this form (X0,Y0,R); \n + -cov covariance matrix of the fitted parameter (not initialized if + error = false); \n + -q charge of the particle; \n + -chi2. + \warning hits must be passed ordered from inner to outer layer (double hits + on the same layer must be ordered too) so that multiple scattering is + treated properly. + \warning Multiple scattering for barrel is still not tested. + \warning Multiple scattering for endcap hits is not handled (yet). Do not + fit endcap hits with scattering = true ! + \bug for small pt (<0.3 Gev/c) chi2 could be slightly underestimated. + \bug further investigation needed for error propagation with multiple + scattering. +*/ + template + __host__ __device__ inline CircleFit circleFit(const M2xN& hits2D, + const Matrix2Nd& hits_cov2D, + const V4& fast_fit, + const VectorNd& rad, + const double bField, + const bool error) { +#ifdef RFIT_DEBUG + printf("circle_fit - enter\n"); +#endif + // INITIALIZATION + Matrix2Nd vMat = hits_cov2D; + constexpr uint n = N; + printIt(&hits2D, "circle_fit - hits2D:"); + printIt(&hits_cov2D, "circle_fit - hits_cov2D:"); + +#ifdef RFIT_DEBUG + printf("circle_fit - WEIGHT COMPUTATION\n"); +#endif + // WEIGHT COMPUTATION + VectorNd weight; + MatrixNd gMat; + double renorm; + { + MatrixNd cov_rad = cov_carttorad_prefit(hits2D, vMat, fast_fit, rad).asDiagonal(); + MatrixNd scatterCovRadMat = scatter_cov_rad(hits2D, fast_fit, rad, bField); + printIt(&scatterCovRadMat, "circle_fit - scatter_cov_rad:"); + printIt(&hits2D, "circle_fit - hits2D bis:"); +#ifdef RFIT_DEBUG + printf("Address of hits2D: a) %p\n", &hits2D); +#endif + vMat += cov_radtocart(hits2D, scatterCovRadMat, rad); + printIt(&vMat, "circle_fit - V:"); + cov_rad += scatterCovRadMat; + printIt(&cov_rad, "circle_fit - cov_rad:"); + math::cholesky::invert(cov_rad, gMat); + // gMat = cov_rad.inverse(); + renorm = gMat.sum(); + gMat *= 1. / renorm; + weight = weightCircle(gMat); + } + printIt(&weight, "circle_fit - weight:"); + + // SPACE TRANSFORMATION +#ifdef RFIT_DEBUG + printf("circle_fit - SPACE TRANSFORMATION\n"); +#endif + + // center +#ifdef RFIT_DEBUG + printf("Address of hits2D: b) %p\n", &hits2D); +#endif + const Vector2d hCentroid = hits2D.rowwise().mean(); // centroid + printIt(&hCentroid, "circle_fit - h_:"); + Matrix3xNd p3D; + p3D.block(0, 0, 2, n) = hits2D.colwise() - hCentroid; + printIt(&p3D, "circle_fit - p3D: a)"); + Vector2Nd mc; // centered hits, used in error computation + mc << p3D.row(0).transpose(), p3D.row(1).transpose(); + printIt(&mc, "circle_fit - mc(centered hits):"); + + // scale + const double tempQ = mc.squaredNorm(); + const double tempS = sqrt(n * 1. / tempQ); // scaling factor + p3D *= tempS; + + // project on paraboloid + p3D.row(2) = p3D.block(0, 0, 2, n).colwise().squaredNorm(); + printIt(&p3D, "circle_fit - p3D: b)"); + +#ifdef RFIT_DEBUG + printf("circle_fit - COST FUNCTION\n"); +#endif + // COST FUNCTION + + // compute + Vector3d r0; + r0.noalias() = p3D * weight; // center of gravity + const Matrix3xNd xMat = p3D.colwise() - r0; + Matrix3d aMat = xMat * gMat * xMat.transpose(); + printIt(&aMat, "circle_fit - A:"); + +#ifdef RFIT_DEBUG + printf("circle_fit - MINIMIZE\n"); +#endif + // minimize + double chi2; + Vector3d vVec = min_eigen3D(aMat, chi2); +#ifdef RFIT_DEBUG + printf("circle_fit - AFTER MIN_EIGEN\n"); +#endif + printIt(&vVec, "v BEFORE INVERSION"); + vVec *= (vVec(2) > 0) ? 1 : -1; // TO FIX dovrebbe essere N(3)>0 + printIt(&vVec, "v AFTER INVERSION"); + // This hack to be able to run on GPU where the automatic assignment to a + // double from the vector multiplication is not working. +#ifdef RFIT_DEBUG + printf("circle_fit - AFTER MIN_EIGEN 1\n"); +#endif + Eigen::Matrix cm; +#ifdef RFIT_DEBUG + printf("circle_fit - AFTER MIN_EIGEN 2\n"); +#endif + cm = -vVec.transpose() * r0; +#ifdef RFIT_DEBUG + printf("circle_fit - AFTER MIN_EIGEN 3\n"); +#endif + const double tempC = cm(0, 0); + +#ifdef RFIT_DEBUG + printf("circle_fit - COMPUTE CIRCLE PARAMETER\n"); +#endif + // COMPUTE CIRCLE PARAMETER + + // auxiliary quantities + const double tempH = sqrt(1. - sqr(vVec(2)) - 4. * tempC * vVec(2)); + const double v2x2_inv = 1. / (2. * vVec(2)); + const double s_inv = 1. / tempS; + Vector3d par_uvr; // used in error propagation + par_uvr << -vVec(0) * v2x2_inv, -vVec(1) * v2x2_inv, tempH * v2x2_inv; + + CircleFit circle; + circle.par << par_uvr(0) * s_inv + hCentroid(0), par_uvr(1) * s_inv + hCentroid(1), par_uvr(2) * s_inv; + circle.qCharge = charge(hits2D, circle.par); + circle.chi2 = abs(chi2) * renorm / sqr(2 * vVec(2) * par_uvr(2) * tempS); + printIt(&circle.par, "circle_fit - CIRCLE PARAMETERS:"); + printIt(&circle.cov, "circle_fit - CIRCLE COVARIANCE:"); +#ifdef RFIT_DEBUG + printf("circle_fit - CIRCLE CHARGE: %d\n", circle.qCharge); +#endif + +#ifdef RFIT_DEBUG + printf("circle_fit - ERROR PROPAGATION\n"); +#endif + // ERROR PROPAGATION + if (error) { +#ifdef RFIT_DEBUG + printf("circle_fit - ERROR PRPAGATION ACTIVATED\n"); +#endif + ArrayNd vcsMat[2][2]; // cov matrix of center & scaled points + MatrixNd cMat[3][3]; // cov matrix of 3D transformed points +#ifdef RFIT_DEBUG + printf("circle_fit - ERROR PRPAGATION ACTIVATED 2\n"); +#endif + { + Eigen::Matrix cm; + Eigen::Matrix cm2; + cm = mc.transpose() * vMat * mc; + const double tempC2 = cm(0, 0); + Matrix2Nd tempVcsMat; + tempVcsMat.template triangularView() = + (sqr(tempS) * vMat + sqr(sqr(tempS)) * 1. / (4. * tempQ * n) * + (2. * vMat.squaredNorm() + 4. * tempC2) * // mc.transpose() * V * mc) * + (mc * mc.transpose())); + + printIt(&tempVcsMat, "circle_fit - Vcs:"); + cMat[0][0] = tempVcsMat.block(0, 0, n, n).template selfadjointView(); + vcsMat[0][1] = tempVcsMat.block(0, n, n, n); + cMat[1][1] = tempVcsMat.block(n, n, n, n).template selfadjointView(); + vcsMat[1][0] = vcsMat[0][1].transpose(); + printIt(&tempVcsMat, "circle_fit - Vcs:"); + } + + { + const ArrayNd t0 = (VectorXd::Constant(n, 1.) * p3D.row(0)); + const ArrayNd t1 = (VectorXd::Constant(n, 1.) * p3D.row(1)); + const ArrayNd t00 = p3D.row(0).transpose() * p3D.row(0); + const ArrayNd t01 = p3D.row(0).transpose() * p3D.row(1); + const ArrayNd t11 = p3D.row(1).transpose() * p3D.row(1); + const ArrayNd t10 = t01.transpose(); + vcsMat[0][0] = cMat[0][0]; + cMat[0][1] = vcsMat[0][1]; + cMat[0][2] = 2. * (vcsMat[0][0] * t0 + vcsMat[0][1] * t1); + vcsMat[1][1] = cMat[1][1]; + cMat[1][2] = 2. * (vcsMat[1][0] * t0 + vcsMat[1][1] * t1); + MatrixNd tmp; + tmp.template triangularView() = + (2. * (vcsMat[0][0] * vcsMat[0][0] + vcsMat[0][0] * vcsMat[0][1] + vcsMat[1][1] * vcsMat[1][0] + + vcsMat[1][1] * vcsMat[1][1]) + + 4. * (vcsMat[0][0] * t00 + vcsMat[0][1] * t01 + vcsMat[1][0] * t10 + vcsMat[1][1] * t11)) + .matrix(); + cMat[2][2] = tmp.template selfadjointView(); + } + printIt(&cMat[0][0], "circle_fit - C[0][0]:"); + + Matrix3d c0Mat; // cov matrix of center of gravity (r0.x,r0.y,r0.z) + for (uint i = 0; i < 3; ++i) { + for (uint j = i; j < 3; ++j) { + Eigen::Matrix tmp; + tmp = weight.transpose() * cMat[i][j] * weight; + // Workaround to get things working in GPU + const double tempC = tmp(0, 0); + c0Mat(i, j) = tempC; //weight.transpose() * C[i][j] * weight; + c0Mat(j, i) = c0Mat(i, j); + } + } + printIt(&c0Mat, "circle_fit - C0:"); + + const MatrixNd wMat = weight * weight.transpose(); + const MatrixNd hMat = MatrixNd::Identity().rowwise() - weight.transpose(); + const MatrixNx3d s_v = hMat * p3D.transpose(); + printIt(&wMat, "circle_fit - W:"); + printIt(&hMat, "circle_fit - H:"); + printIt(&s_v, "circle_fit - s_v:"); + + MatrixNd dMat[3][3]; // cov(s_v) + dMat[0][0] = (hMat * cMat[0][0] * hMat.transpose()).cwiseProduct(wMat); + dMat[0][1] = (hMat * cMat[0][1] * hMat.transpose()).cwiseProduct(wMat); + dMat[0][2] = (hMat * cMat[0][2] * hMat.transpose()).cwiseProduct(wMat); + dMat[1][1] = (hMat * cMat[1][1] * hMat.transpose()).cwiseProduct(wMat); + dMat[1][2] = (hMat * cMat[1][2] * hMat.transpose()).cwiseProduct(wMat); + dMat[2][2] = (hMat * cMat[2][2] * hMat.transpose()).cwiseProduct(wMat); + dMat[1][0] = dMat[0][1].transpose(); + dMat[2][0] = dMat[0][2].transpose(); + dMat[2][1] = dMat[1][2].transpose(); + printIt(&dMat[0][0], "circle_fit - D_[0][0]:"); + + constexpr uint nu[6][2] = {{0, 0}, {0, 1}, {0, 2}, {1, 1}, {1, 2}, {2, 2}}; + + Matrix6d eMat; // cov matrix of the 6 independent elements of A + for (uint a = 0; a < 6; ++a) { + const uint i = nu[a][0], j = nu[a][1]; + for (uint b = a; b < 6; ++b) { + const uint k = nu[b][0], l = nu[b][1]; + VectorNd t0(n); + VectorNd t1(n); + if (l == k) { + t0 = 2. * dMat[j][l] * s_v.col(l); + if (i == j) + t1 = t0; + else + t1 = 2. * dMat[i][l] * s_v.col(l); + } else { + t0 = dMat[j][l] * s_v.col(k) + dMat[j][k] * s_v.col(l); + if (i == j) + t1 = t0; + else + t1 = dMat[i][l] * s_v.col(k) + dMat[i][k] * s_v.col(l); + } + + if (i == j) { + Eigen::Matrix cm; + cm = s_v.col(i).transpose() * (t0 + t1); + // Workaround to get things working in GPU + const double tempC = cm(0, 0); + eMat(a, b) = 0. + tempC; + } else { + Eigen::Matrix cm; + cm = (s_v.col(i).transpose() * t0) + (s_v.col(j).transpose() * t1); + // Workaround to get things working in GPU + const double tempC = cm(0, 0); + eMat(a, b) = 0. + tempC; //(s_v.col(i).transpose() * t0) + (s_v.col(j).transpose() * t1); + } + if (b != a) + eMat(b, a) = eMat(a, b); + } + } + printIt(&eMat, "circle_fit - E:"); + + Eigen::Matrix j2Mat; // Jacobian of min_eigen() (numerically computed) + for (uint a = 0; a < 6; ++a) { + const uint i = nu[a][0], j = nu[a][1]; + Matrix3d delta = Matrix3d::Zero(); + delta(i, j) = delta(j, i) = abs(aMat(i, j) * epsilon); + j2Mat.col(a) = min_eigen3D_fast(aMat + delta); + const int sign = (j2Mat.col(a)(2) > 0) ? 1 : -1; + j2Mat.col(a) = (j2Mat.col(a) * sign - vVec) / delta(i, j); + } + printIt(&j2Mat, "circle_fit - J2:"); + + Matrix4d cvcMat; // joint cov matrix of (v0,v1,v2,c) + { + Matrix3d t0 = j2Mat * eMat * j2Mat.transpose(); + Vector3d t1 = -t0 * r0; + cvcMat.block(0, 0, 3, 3) = t0; + cvcMat.block(0, 3, 3, 1) = t1; + cvcMat.block(3, 0, 1, 3) = t1.transpose(); + Eigen::Matrix cm1; + Eigen::Matrix cm3; + cm1 = (vVec.transpose() * c0Mat * vVec); + // cm2 = (c0Mat.cwiseProduct(t0)).sum(); + cm3 = (r0.transpose() * t0 * r0); + // Workaround to get things working in GPU + const double tempC = cm1(0, 0) + (c0Mat.cwiseProduct(t0)).sum() + cm3(0, 0); + cvcMat(3, 3) = tempC; + // (v.transpose() * c0Mat * v) + (c0Mat.cwiseProduct(t0)).sum() + (r0.transpose() * t0 * r0); + } + printIt(&cvcMat, "circle_fit - Cvc:"); + + Eigen::Matrix j3Mat; // Jacobian (v0,v1,v2,c)->(X0,Y0,R) + { + const double t = 1. / tempH; + j3Mat << -v2x2_inv, 0, vVec(0) * sqr(v2x2_inv) * 2., 0, 0, -v2x2_inv, vVec(1) * sqr(v2x2_inv) * 2., 0, + vVec(0) * v2x2_inv * t, vVec(1) * v2x2_inv * t, + -tempH * sqr(v2x2_inv) * 2. - (2. * tempC + vVec(2)) * v2x2_inv * t, -t; + } + printIt(&j3Mat, "circle_fit - J3:"); + + const RowVector2Nd Jq = mc.transpose() * tempS * 1. / n; // var(q) + printIt(&Jq, "circle_fit - Jq:"); + + Matrix3d cov_uvr = j3Mat * cvcMat * j3Mat.transpose() * sqr(s_inv) // cov(X0,Y0,R) + + (par_uvr * par_uvr.transpose()) * (Jq * vMat * Jq.transpose()); + + circle.cov = cov_uvr; + } + + printIt(&circle.cov, "Circle cov:"); +#ifdef RFIT_DEBUG + printf("circle_fit - exit\n"); +#endif + return circle; + } + + /*! \brief Perform an ordinary least square fit in the s-z plane to compute + * the parameters cotTheta and Zip. + * + * The fit is performed in the rotated S3D-Z' plane, following the formalism of + * Frodesen, Chapter 10, p. 259. + * + * The system has been rotated to both try to use the combined errors in s-z + * along Z', as errors in the Y direction and to avoid the patological case of + * degenerate lines with angular coefficient m = +/- inf. + * + * The rotation is using the information on the theta angle computed in the + * fast fit. The rotation is such that the S3D axis will be the X-direction, + * while the rotated Z-axis will be the Y-direction. This pretty much follows + * what is done in the same fit in the Broken Line approach. + */ + + template + __host__ __device__ inline LineFit lineFit(const M3xN& hits, + const M6xN& hits_ge, + const CircleFit& circle, + const V4& fast_fit, + const double bField, + const bool error) { + constexpr uint32_t N = M3xN::ColsAtCompileTime; + constexpr auto n = N; + double theta = -circle.qCharge * atan(fast_fit(3)); + theta = theta < 0. ? theta + M_PI : theta; + + // Prepare the Rotation Matrix to rotate the points + Eigen::Matrix rot; + rot << sin(theta), cos(theta), -cos(theta), sin(theta); + + // PROJECTION ON THE CILINDER + // + // p2D will be: + // [s1, s2, s3, ..., sn] + // [z1, z2, z3, ..., zn] + // s values will be ordinary x-values + // z values will be ordinary y-values + + Matrix2xNd p2D = Matrix2xNd::Zero(); + Eigen::Matrix jxMat; + +#ifdef RFIT_DEBUG + printf("Line_fit - B: %g\n", bField); + printIt(&hits, "Line_fit points: "); + printIt(&hits_ge, "Line_fit covs: "); + printIt(&rot, "Line_fit rot: "); +#endif + // x & associated Jacobian + // cfr https://indico.cern.ch/event/663159/contributions/2707659/attachments/1517175/2368189/Riemann_fit.pdf + // Slide 11 + // a ==> -o i.e. the origin of the circle in XY plane, negative + // b ==> p i.e. distances of the points wrt the origin of the circle. + const Vector2d oVec(circle.par(0), circle.par(1)); + + // associated Jacobian, used in weights and errors computation + Matrix6d covMat = Matrix6d::Zero(); + Matrix2d cov_sz[N]; + for (uint i = 0; i < n; ++i) { + Vector2d pVec = hits.block(0, i, 2, 1) - oVec; + const double cross = cross2D(-oVec, pVec); + const double dot = (-oVec).dot(pVec); + // atan2(cross, dot) give back the angle in the transverse plane so tha the + // final equation reads: x_i = -q*R*theta (theta = angle returned by atan2) + const double tempQAtan2 = -circle.qCharge * atan2(cross, dot); + // p2D.coeffRef(1, i) = atan2_ * circle.par(2); + p2D(0, i) = tempQAtan2 * circle.par(2); + + // associated Jacobian, used in weights and errors- computation + const double temp0 = -circle.qCharge * circle.par(2) * 1. / (sqr(dot) + sqr(cross)); + double d_X0 = 0., d_Y0 = 0., d_R = 0.; // good approximation for big pt and eta + if (error) { + d_X0 = -temp0 * ((pVec(1) + oVec(1)) * dot - (pVec(0) - oVec(0)) * cross); + d_Y0 = temp0 * ((pVec(0) + oVec(0)) * dot - (oVec(1) - pVec(1)) * cross); + d_R = tempQAtan2; + } + const double d_x = temp0 * (oVec(1) * dot + oVec(0) * cross); + const double d_y = temp0 * (-oVec(0) * dot + oVec(1) * cross); + jxMat << d_X0, d_Y0, d_R, d_x, d_y, 0., 0., 0., 0., 0., 0., 1.; + + covMat.block(0, 0, 3, 3) = circle.cov; + covMat(3, 3) = hits_ge.col(i)[0]; // x errors + covMat(4, 4) = hits_ge.col(i)[2]; // y errors + covMat(5, 5) = hits_ge.col(i)[5]; // z errors + covMat(3, 4) = covMat(4, 3) = hits_ge.col(i)[1]; // cov_xy + covMat(3, 5) = covMat(5, 3) = hits_ge.col(i)[3]; // cov_xz + covMat(4, 5) = covMat(5, 4) = hits_ge.col(i)[4]; // cov_yz + Matrix2d tmp = jxMat * covMat * jxMat.transpose(); + cov_sz[i].noalias() = rot * tmp * rot.transpose(); + } + // Math of d_{X0,Y0,R,x,y} all verified by hand + p2D.row(1) = hits.row(2); + + // The following matrix will contain errors orthogonal to the rotated S + // component only, with the Multiple Scattering properly treated!! + MatrixNd cov_with_ms; + scatterCovLine(cov_sz, fast_fit, p2D.row(0), p2D.row(1), theta, bField, cov_with_ms); +#ifdef RFIT_DEBUG + printIt(cov_sz, "line_fit - cov_sz:"); + printIt(&cov_with_ms, "line_fit - cov_with_ms: "); +#endif + + // Rotate Points with the shape [2, n] + Matrix2xNd p2D_rot = rot * p2D; + +#ifdef RFIT_DEBUG + printf("Fast fit Tan(theta): %g\n", fast_fit(3)); + printf("Rotation angle: %g\n", theta); + printIt(&rot, "Rotation Matrix:"); + printIt(&p2D, "Original Hits(s,z):"); + printIt(&p2D_rot, "Rotated hits(S3D, Z'):"); + printIt(&rot, "Rotation Matrix:"); +#endif + + // Build the A Matrix + Matrix2xNd aMat; + aMat << MatrixXd::Ones(1, n), p2D_rot.row(0); // rotated s values + +#ifdef RFIT_DEBUG + printIt(&aMat, "A Matrix:"); +#endif + + // Build A^T V-1 A, where V-1 is the covariance of only the Y components. + MatrixNd vyInvMat; + math::cholesky::invert(cov_with_ms, vyInvMat); + // MatrixNd vyInvMat = cov_with_ms.inverse(); + Eigen::Matrix covParamsMat = aMat * vyInvMat * aMat.transpose(); + // Compute the Covariance Matrix of the fit parameters + math::cholesky::invert(covParamsMat, covParamsMat); + + // Now Compute the Parameters in the form [2,1] + // The first component is q. + // The second component is m. + Eigen::Matrix sol = covParamsMat * aMat * vyInvMat * p2D_rot.row(1).transpose(); + +#ifdef RFIT_DEBUG + printIt(&sol, "Rotated solutions:"); +#endif + + // We need now to transfer back the results in the original s-z plane + const auto sinTheta = sin(theta); + const auto cosTheta = cos(theta); + auto common_factor = 1. / (sinTheta - sol(1, 0) * cosTheta); + Eigen::Matrix jMat; + jMat << 0., common_factor * common_factor, common_factor, sol(0, 0) * cosTheta * common_factor * common_factor; + + double tempM = common_factor * (sol(1, 0) * sinTheta + cosTheta); + double tempQ = common_factor * sol(0, 0); + auto cov_mq = jMat * covParamsMat * jMat.transpose(); + + VectorNd res = p2D_rot.row(1).transpose() - aMat.transpose() * sol; + double chi2 = res.transpose() * vyInvMat * res; + + LineFit line; + line.par << tempM, tempQ; + line.cov << cov_mq; + line.chi2 = chi2; + +#ifdef RFIT_DEBUG + printf("Common_factor: %g\n", common_factor); + printIt(&jMat, "Jacobian:"); + printIt(&sol, "Rotated solutions:"); + printIt(&covParamsMat, "Cov_params:"); + printIt(&cov_mq, "Rotated Covariance Matrix:"); + printIt(&(line.par), "Real Parameters:"); + printIt(&(line.cov), "Real Covariance Matrix:"); + printf("Chi2: %g\n", chi2); +#endif + + return line; + } + + /*! + \brief Helix fit by three step: + -fast pre-fit (see Fast_fit() for further info); \n + -circle fit of hits projected in the transverse plane by Riemann-Chernov + algorithm (see Circle_fit() for further info); \n + -line fit of hits projected on cylinder surface by orthogonal distance + regression (see Line_fit for further info). \n + Points must be passed ordered (from inner to outer layer). + \param hits Matrix3xNd hits coordinates in this form: \n + |x0|x1|x2|...|xn| \n + |y0|y1|y2|...|yn| \n + |z0|z1|z2|...|zn| + \param hits_cov Matrix3Nd covariance matrix in this form (()->cov()): \n + |(x0,x0)|(x1,x0)|(x2,x0)|.|(y0,x0)|(y1,x0)|(y2,x0)|.|(z0,x0)|(z1,x0)|(z2,x0)| \n + |(x0,x1)|(x1,x1)|(x2,x1)|.|(y0,x1)|(y1,x1)|(y2,x1)|.|(z0,x1)|(z1,x1)|(z2,x1)| \n + |(x0,x2)|(x1,x2)|(x2,x2)|.|(y0,x2)|(y1,x2)|(y2,x2)|.|(z0,x2)|(z1,x2)|(z2,x2)| \n + . . . . . . . . . . . \n + |(x0,y0)|(x1,y0)|(x2,y0)|.|(y0,y0)|(y1,y0)|(y2,x0)|.|(z0,y0)|(z1,y0)|(z2,y0)| \n + |(x0,y1)|(x1,y1)|(x2,y1)|.|(y0,y1)|(y1,y1)|(y2,x1)|.|(z0,y1)|(z1,y1)|(z2,y1)| \n + |(x0,y2)|(x1,y2)|(x2,y2)|.|(y0,y2)|(y1,y2)|(y2,x2)|.|(z0,y2)|(z1,y2)|(z2,y2)| \n + . . . . . . . . . . . \n + |(x0,z0)|(x1,z0)|(x2,z0)|.|(y0,z0)|(y1,z0)|(y2,z0)|.|(z0,z0)|(z1,z0)|(z2,z0)| \n + |(x0,z1)|(x1,z1)|(x2,z1)|.|(y0,z1)|(y1,z1)|(y2,z1)|.|(z0,z1)|(z1,z1)|(z2,z1)| \n + |(x0,z2)|(x1,z2)|(x2,z2)|.|(y0,z2)|(y1,z2)|(y2,z2)|.|(z0,z2)|(z1,z2)|(z2,z2)| + \param bField magnetic field in the center of the detector in Gev/cm/c + unit, in order to perform pt calculation. + \param error flag for error computation. + \param scattering flag for multiple scattering treatment. + (see Circle_fit() documentation for further info). + \warning see Circle_fit(), Line_fit() and Fast_fit() warnings. + \bug see Circle_fit(), Line_fit() and Fast_fit() bugs. +*/ + + template + inline HelixFit helixFit(const Matrix3xNd& hits, + const Eigen::Matrix& hits_ge, + const double bField, + const bool error) { + constexpr uint n = N; + VectorNd<4> rad = (hits.block(0, 0, 2, n).colwise().norm()); + + // Fast_fit gives back (X0, Y0, R, theta) w/o errors, using only 3 points. + Vector4d fast_fit; + fastFit(hits, fast_fit); + riemannFit::Matrix2Nd hits_cov = MatrixXd::Zero(2 * n, 2 * n); + riemannFit::loadCovariance2D(hits_ge, hits_cov); + CircleFit circle = circleFit(hits.block(0, 0, 2, n), hits_cov, fast_fit, rad, bField, error); + LineFit line = lineFit(hits, hits_ge, circle, fast_fit, bField, error); + + par_uvrtopak(circle, bField, error); + + HelixFit helix; + helix.par << circle.par, line.par; + if (error) { + helix.cov = MatrixXd::Zero(5, 5); + helix.cov.block(0, 0, 3, 3) = circle.cov; + helix.cov.block(3, 3, 2, 2) = line.cov; + } + helix.qCharge = circle.qCharge; + helix.chi2_circle = circle.chi2; + helix.chi2_line = line.chi2; + + return helix; + } + +} // namespace riemannFit + +#endif // RecoPixelVertexing_PixelTrackFitting_interface_RiemannFit_h diff --git a/RecoPixelVertexing/PixelTrackFitting/plugins/BuildFile.xml b/RecoPixelVertexing/PixelTrackFitting/plugins/BuildFile.xml index be113d7a5a3dc..ecfbd99b667fc 100644 --- a/RecoPixelVertexing/PixelTrackFitting/plugins/BuildFile.xml +++ b/RecoPixelVertexing/PixelTrackFitting/plugins/BuildFile.xml @@ -1,3 +1,6 @@ + + + diff --git a/RecoPixelVertexing/PixelTrackFitting/plugins/PixelNtupletsFitterProducer.cc b/RecoPixelVertexing/PixelTrackFitting/plugins/PixelNtupletsFitterProducer.cc new file mode 100644 index 0000000000000..f49d2f01f48c6 --- /dev/null +++ b/RecoPixelVertexing/PixelTrackFitting/plugins/PixelNtupletsFitterProducer.cc @@ -0,0 +1,44 @@ +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/global/EDProducer.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "MagneticField/Engine/interface/MagneticField.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" +#include "RecoPixelVertexing/PixelTrackFitting/interface/PixelFitter.h" +#include "RecoPixelVertexing/PixelTrackFitting/interface/PixelNtupletsFitter.h" +#include "RecoTracker/TkMSParametrization/interface/PixelRecoUtilities.h" + +class PixelNtupletsFitterProducer : public edm::global::EDProducer<> { +public: + explicit PixelNtupletsFitterProducer(const edm::ParameterSet& iConfig) + : useRiemannFit_(iConfig.getParameter("useRiemannFit")), idealMagneticFieldToken_(esConsumes()) { + produces(); + } + ~PixelNtupletsFitterProducer() override {} + + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.add("useRiemannFit", false)->setComment("true for Riemann, false for BrokenLine"); + descriptions.add("pixelNtupletsFitterDefault", desc); + } + +private: + bool useRiemannFit_; + const edm::ESGetToken idealMagneticFieldToken_; + void produce(edm::StreamID, edm::Event& iEvent, const edm::EventSetup& iSetup) const override; +}; + +void PixelNtupletsFitterProducer::produce(edm::StreamID, edm::Event& iEvent, const edm::EventSetup& iSetup) const { + auto const& idealField = iSetup.getData(idealMagneticFieldToken_); + float bField = 1 / PixelRecoUtilities::fieldInInvGev(iSetup); + auto impl = std::make_unique(bField, &idealField, useRiemannFit_); + auto prod = std::make_unique(std::move(impl)); + iEvent.put(std::move(prod)); +} + +DEFINE_FWK_MODULE(PixelNtupletsFitterProducer); diff --git a/RecoPixelVertexing/PixelTrackFitting/plugins/PixelTrackDumpCUDA.cc b/RecoPixelVertexing/PixelTrackFitting/plugins/PixelTrackDumpCUDA.cc new file mode 100644 index 0000000000000..2f0965be50eb8 --- /dev/null +++ b/RecoPixelVertexing/PixelTrackFitting/plugins/PixelTrackDumpCUDA.cc @@ -0,0 +1,86 @@ +#include + +#include "CUDADataFormats/Common/interface/Product.h" +#include "CUDADataFormats/Track/interface/PixelTrackHeterogeneous.h" +#include "CUDADataFormats/TrackingRecHit/interface/TrackingRecHit2DHeterogeneous.h" +#include "CUDADataFormats/Vertex/interface/ZVertexHeterogeneous.h" +#include "DataFormats/Common/interface/Handle.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/global/EDAnalyzer.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/PluginManager/interface/ModuleDef.h" +#include "FWCore/Utilities/interface/EDGetToken.h" +#include "FWCore/Utilities/interface/InputTag.h" +#include "FWCore/Utilities/interface/RunningAverage.h" +#include "HeterogeneousCore/CUDACore/interface/ScopedContext.h" +#include "RecoTracker/TkMSParametrization/interface/PixelRecoUtilities.h" + +class PixelTrackDumpCUDA : public edm::global::EDAnalyzer<> { +public: + explicit PixelTrackDumpCUDA(const edm::ParameterSet& iConfig); + ~PixelTrackDumpCUDA() override = default; + + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + +private: + void analyze(edm::StreamID streamID, edm::Event const& iEvent, const edm::EventSetup& iSetup) const override; + const bool m_onGPU; + edm::EDGetTokenT> tokenGPUTrack_; + edm::EDGetTokenT> tokenGPUVertex_; + edm::EDGetTokenT tokenSoATrack_; + edm::EDGetTokenT tokenSoAVertex_; +}; + +PixelTrackDumpCUDA::PixelTrackDumpCUDA(const edm::ParameterSet& iConfig) + : m_onGPU(iConfig.getParameter("onGPU")) { + if (m_onGPU) { + tokenGPUTrack_ = + consumes>(iConfig.getParameter("pixelTrackSrc")); + tokenGPUVertex_ = + consumes>(iConfig.getParameter("pixelVertexSrc")); + } else { + tokenSoATrack_ = consumes(iConfig.getParameter("pixelTrackSrc")); + tokenSoAVertex_ = consumes(iConfig.getParameter("pixelVertexSrc")); + } +} + +void PixelTrackDumpCUDA::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + + desc.add("onGPU", true); + desc.add("pixelTrackSrc", edm::InputTag("caHitNtupletCUDA")); + desc.add("pixelVertexSrc", edm::InputTag("pixelVertexCUDA")); + descriptions.add("pixelTrackDumpCUDA", desc); +} + +void PixelTrackDumpCUDA::analyze(edm::StreamID streamID, + edm::Event const& iEvent, + const edm::EventSetup& iSetup) const { + if (m_onGPU) { + auto const& hTracks = iEvent.get(tokenGPUTrack_); + cms::cuda::ScopedContextProduce ctx{hTracks}; + + auto const& tracks = ctx.get(hTracks); + auto const* tsoa = tracks.get(); + assert(tsoa); + + auto const& vertices = ctx.get(iEvent.get(tokenGPUVertex_)); + auto const* vsoa = vertices.get(); + assert(vsoa); + + } else { + auto const* tsoa = iEvent.get(tokenSoATrack_).get(); + assert(tsoa); + + auto const* vsoa = iEvent.get(tokenSoAVertex_).get(); + assert(vsoa); + } +} + +DEFINE_FWK_MODULE(PixelTrackDumpCUDA); diff --git a/RecoPixelVertexing/PixelTrackFitting/plugins/PixelTrackProducer.cc b/RecoPixelVertexing/PixelTrackFitting/plugins/PixelTrackProducer.cc index bd390f5f65352..91c3a44cc8643 100644 --- a/RecoPixelVertexing/PixelTrackFitting/plugins/PixelTrackProducer.cc +++ b/RecoPixelVertexing/PixelTrackFitting/plugins/PixelTrackProducer.cc @@ -1,23 +1,22 @@ -#include "PixelTrackProducer.h" +#include +#include "DataFormats/Common/interface/OrphanHandle.h" +#include "DataFormats/TrackReco/interface/Track.h" +#include "DataFormats/TrackReco/interface/TrackExtra.h" +#include "DataFormats/TrackReco/interface/TrackFwd.h" +#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" +#include "DataFormats/TrajectoryState/interface/LocalTrajectoryParameters.h" +#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" - -#include "DataFormats/TrajectoryState/interface/LocalTrajectoryParameters.h" -#include "DataFormats/TrackReco/interface/Track.h" -#include "DataFormats/TrackReco/interface/TrackFwd.h" -#include "DataFormats/TrackReco/interface/TrackExtra.h" -#include "DataFormats/Common/interface/OrphanHandle.h" - -#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" #include "Geometry/Records/interface/TrackerTopologyRcd.h" -#include +#include "PixelTrackProducer.h" +#include "storeTracks.h" using namespace pixeltrackfitting; using edm::ParameterSet; @@ -45,62 +44,9 @@ void PixelTrackProducer::produce(edm::Event& ev, const edm::EventSetup& es) { TracksWithTTRHs tracks; theReconstruction.run(tracks, ev, es); - edm::ESHandle httopo; es.get().get(httopo); // store tracks - store(ev, tracks, *httopo); -} - -void PixelTrackProducer::store(edm::Event& ev, const TracksWithTTRHs& tracksWithHits, const TrackerTopology& ttopo) { - auto tracks = std::make_unique(); - auto recHits = std::make_unique(); - auto trackExtras = std::make_unique(); - - int cc = 0, nTracks = tracksWithHits.size(); - - for (int i = 0; i < nTracks; i++) { - reco::Track* track = tracksWithHits.at(i).first; - const SeedingHitSet& hits = tracksWithHits.at(i).second; - - for (unsigned int k = 0; k < hits.size(); k++) { - TrackingRecHit* hit = hits[k]->hit()->clone(); - - track->appendHitPattern(*hit, ttopo); - recHits->push_back(hit); - } - tracks->push_back(*track); - delete track; - } - - LogDebug("TrackProducer") << "put the collection of TrackingRecHit in the event" - << "\n"; - edm::OrphanHandle ohRH = ev.put(std::move(recHits)); - - edm::RefProd hitCollProd(ohRH); - for (int k = 0; k < nTracks; k++) { - reco::TrackExtra theTrackExtra{}; - - //fill the TrackExtra with TrackingRecHitRef - unsigned int nHits = tracks->at(k).numberOfValidHits(); - theTrackExtra.setHits(hitCollProd, cc, nHits); - cc += nHits; - AlgebraicVector5 v = AlgebraicVector5(0, 0, 0, 0, 0); - reco::TrackExtra::TrajParams trajParams(nHits, LocalTrajectoryParameters(v, 1.)); - reco::TrackExtra::Chi2sFive chi2s(nHits, 0); - theTrackExtra.setTrajParams(std::move(trajParams), std::move(chi2s)); - trackExtras->push_back(theTrackExtra); - } - - LogDebug("TrackProducer") << "put the collection of TrackExtra in the event" - << "\n"; - edm::OrphanHandle ohTE = ev.put(std::move(trackExtras)); - - for (int k = 0; k < nTracks; k++) { - const reco::TrackExtraRef theTrackExtraRef(ohTE, k); - (tracks->at(k)).setExtra(theTrackExtraRef); - } - - ev.put(std::move(tracks)); + storeTracks(ev, tracks, *httopo); } diff --git a/RecoPixelVertexing/PixelTrackFitting/plugins/PixelTrackProducer.h b/RecoPixelVertexing/PixelTrackFitting/plugins/PixelTrackProducer.h index d756a9cf963f5..c38fd44c0d7f5 100644 --- a/RecoPixelVertexing/PixelTrackFitting/plugins/PixelTrackProducer.h +++ b/RecoPixelVertexing/PixelTrackFitting/plugins/PixelTrackProducer.h @@ -1,8 +1,7 @@ -#ifndef PixelTrackProducer_H -#define PixelTrackProducer_H +#ifndef RecoPixelVertexing_PixelTrackFitting_plugins_PixelTrackProducer_h +#define RecoPixelVertexing_PixelTrackFitting_plugins_PixelTrackProducer_h #include "FWCore/Framework/interface/stream/EDProducer.h" -#include "RecoPixelVertexing/PixelTrackFitting/interface/TracksWithHits.h" #include "RecoPixelVertexing/PixelTrackFitting/interface/PixelTrackReconstruction.h" namespace edm { @@ -24,7 +23,7 @@ class PixelTrackProducer : public edm::stream::EDProducer<> { void produce(edm::Event& ev, const edm::EventSetup& es) override; private: - void store(edm::Event& ev, const pixeltrackfitting::TracksWithTTRHs& selectedTracks, const TrackerTopology& ttopo); PixelTrackReconstruction theReconstruction; }; -#endif + +#endif // RecoPixelVertexing_PixelTrackFitting_plugins_PixelTrackProducer_h diff --git a/RecoPixelVertexing/PixelTrackFitting/plugins/PixelTrackProducerFromSoA.cc b/RecoPixelVertexing/PixelTrackFitting/plugins/PixelTrackProducerFromSoA.cc new file mode 100644 index 0000000000000..94c490e948575 --- /dev/null +++ b/RecoPixelVertexing/PixelTrackFitting/plugins/PixelTrackProducerFromSoA.cc @@ -0,0 +1,205 @@ +#include "DataFormats/BeamSpot/interface/BeamSpot.h" +#include "DataFormats/Common/interface/OrphanHandle.h" +#include "DataFormats/TrackReco/interface/Track.h" +#include "DataFormats/TrackReco/interface/TrackExtra.h" +#include "DataFormats/TrackReco/interface/TrackFwd.h" +#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" +#include "DataFormats/TrajectoryState/interface/LocalTrajectoryParameters.h" +#include "DataFormats/GeometrySurface/interface/Plane.h" +#include "DataFormats/TrackerRecHit2D/interface/SiPixelRecHitCollection.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/global/EDProducer.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/Utilities/interface/InputTag.h" +#include "FWCore/PluginManager/interface/ModuleDef.h" +#include "FWCore/Utilities/interface/EDGetToken.h" +#include "Geometry/Records/interface/TrackerTopologyRcd.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" + +#include "TrackingTools/AnalyticalJacobians/interface/JacobianLocalToCurvilinear.h" +#include "TrackingTools/TrajectoryParametrization/interface/GlobalTrajectoryParameters.h" +#include "TrackingTools/TrajectoryParametrization/interface/CurvilinearTrajectoryError.h" +#include "RecoPixelVertexing/PixelTrackFitting/interface/FitUtils.h" + +#include "CUDADataFormats/Common/interface/HostProduct.h" +#include "CUDADataFormats/Track/interface/PixelTrackHeterogeneous.h" +#include "CUDADataFormats/SiPixelCluster/interface/gpuClusteringConstants.h" + +#include "storeTracks.h" +#include "CUDADataFormats/Common/interface/HostProduct.h" + +/** + * This class creates "leagcy" reco::Track + * objects from the output of SoA CA. + */ +class PixelTrackProducerFromSoA : public edm::global::EDProducer<> { +public: + using IndToEdm = std::vector; + + explicit PixelTrackProducerFromSoA(const edm::ParameterSet &iConfig); + ~PixelTrackProducerFromSoA() override = default; + + static void fillDescriptions(edm::ConfigurationDescriptions &descriptions); + + // using HitModuleStart = std::array; + using HMSstorage = HostProduct; + +private: + void produce(edm::StreamID streamID, edm::Event &iEvent, const edm::EventSetup &iSetup) const override; + + // Event Data tokens + const edm::EDGetTokenT tBeamSpot_; + const edm::EDGetTokenT tokenTrack_; + const edm::EDGetTokenT cpuHits_; + const edm::EDGetTokenT hmsToken_; + // Event Setup tokens + const edm::ESGetToken idealMagneticFieldToken_; + const edm::ESGetToken ttTopoToken_; + + int32_t const minNumberOfHits_; +}; + +PixelTrackProducerFromSoA::PixelTrackProducerFromSoA(const edm::ParameterSet &iConfig) + : tBeamSpot_(consumes(iConfig.getParameter("beamSpot"))), + tokenTrack_(consumes(iConfig.getParameter("trackSrc"))), + cpuHits_(consumes(iConfig.getParameter("pixelRecHitLegacySrc"))), + hmsToken_(consumes(iConfig.getParameter("pixelRecHitLegacySrc"))), + idealMagneticFieldToken_(esConsumes()), + ttTopoToken_(esConsumes()), + minNumberOfHits_(iConfig.getParameter("minNumberOfHits")) { + produces(); + produces(); + produces(); + produces(); +} + +void PixelTrackProducerFromSoA::fillDescriptions(edm::ConfigurationDescriptions &descriptions) { + edm::ParameterSetDescription desc; + desc.add("beamSpot", edm::InputTag("offlineBeamSpot")); + desc.add("trackSrc", edm::InputTag("pixelTrackSoA")); + desc.add("pixelRecHitLegacySrc", edm::InputTag("siPixelRecHitsPreSplittingLegacy")); + desc.add("minNumberOfHits", 0); + + descriptions.addWithDefaultLabel(desc); +} + +void PixelTrackProducerFromSoA::produce(edm::StreamID streamID, + edm::Event &iEvent, + const edm::EventSetup &iSetup) const { + // std::cout << "Converting gpu helix in reco tracks" << std::endl; + + auto indToEdmP = std::make_unique(); + auto &indToEdm = *indToEdmP; + + auto const &idealField = iSetup.getData(idealMagneticFieldToken_); + + pixeltrackfitting::TracksWithRecHits tracks; + + auto const &httopo = iSetup.getData(ttTopoToken_); + + const auto &bsh = iEvent.get(tBeamSpot_); + GlobalPoint bs(bsh.x0(), bsh.y0(), bsh.z0()); + + auto const &rechits = iEvent.get(cpuHits_); + std::vector hitmap; + auto const &rcs = rechits.data(); + auto nhits = rcs.size(); + hitmap.resize(nhits, nullptr); + + auto const *hitsModuleStart = iEvent.get(hmsToken_).get(); + auto fc = hitsModuleStart; + + for (auto const &h : rcs) { + auto const &thit = static_cast(h); + auto detI = thit.det()->index(); + auto const &clus = thit.firstClusterRef(); + assert(clus.isPixel()); + auto i = fc[detI] + clus.pixelCluster().originalId(); + if (i >= hitmap.size()) + hitmap.resize(i + 256, nullptr); // only in case of hit overflow in one module + assert(nullptr == hitmap[i]); + hitmap[i] = &h; + } + + std::vector hits; + hits.reserve(5); + + const auto &tsoa = *iEvent.get(tokenTrack_); + + auto const *quality = tsoa.qualityData(); + auto const &fit = tsoa.stateAtBS; + auto const &hitIndices = tsoa.hitIndices; + auto maxTracks = tsoa.stride(); + + int32_t nt = 0; + + for (int32_t it = 0; it < maxTracks; ++it) { + auto nHits = tsoa.nHits(it); + if (nHits == 0) + break; // this is a guard: maybe we need to move to nTracks... + indToEdm.push_back(-1); + auto q = quality[it]; + if (q != pixelTrack::Quality::loose) + continue; + if (nHits < minNumberOfHits_) + continue; + indToEdm.back() = nt; + ++nt; + + hits.resize(nHits); + auto b = hitIndices.begin(it); + for (int iHit = 0; iHit < nHits; ++iHit) + hits[iHit] = hitmap[*(b + iHit)]; + + // mind: this values are respect the beamspot! + + float chi2 = tsoa.chi2(it); + float phi = tsoa.phi(it); + + riemannFit::Vector5d ipar, opar; + riemannFit::Matrix5d icov, ocov; + fit.copyToDense(ipar, icov, it); + riemannFit::transformToPerigeePlane(ipar, icov, opar, ocov); + + LocalTrajectoryParameters lpar(opar(0), opar(1), opar(2), opar(3), opar(4), 1.); + AlgebraicSymMatrix55 m; + for (int i = 0; i < 5; ++i) + for (int j = i; j < 5; ++j) + m(i, j) = ocov(i, j); + + float sp = std::sin(phi); + float cp = std::cos(phi); + Surface::RotationType rot(sp, -cp, 0, 0, 0, -1.f, cp, sp, 0); + + Plane impPointPlane(bs, rot); + GlobalTrajectoryParameters gp( + impPointPlane.toGlobal(lpar.position()), impPointPlane.toGlobal(lpar.momentum()), lpar.charge(), &idealField); + JacobianLocalToCurvilinear jl2c(impPointPlane, lpar, idealField); + + AlgebraicSymMatrix55 mo = ROOT::Math::Similarity(jl2c.jacobian(), m); + + int ndof = 2 * hits.size() - 5; + chi2 = chi2 * ndof; + GlobalPoint vv = gp.position(); + math::XYZPoint pos(vv.x(), vv.y(), vv.z()); + GlobalVector pp = gp.momentum(); + math::XYZVector mom(pp.x(), pp.y(), pp.z()); + + auto track = std::make_unique(chi2, ndof, pos, mom, gp.charge(), CurvilinearTrajectoryError(mo)); + // filter??? + tracks.emplace_back(track.release(), hits); + } + // std::cout << "processed " << nt << " good tuples " << tracks.size() << "out of " << indToEdm.size() << std::endl; + + // store tracks + storeTracks(iEvent, tracks, httopo); + iEvent.put(std::move(indToEdmP)); +} + +DEFINE_FWK_MODULE(PixelTrackProducerFromSoA); diff --git a/RecoPixelVertexing/PixelTrackFitting/plugins/PixelTrackSoAFromCUDA.cc b/RecoPixelVertexing/PixelTrackFitting/plugins/PixelTrackSoAFromCUDA.cc new file mode 100644 index 0000000000000..2de8ec6c335b5 --- /dev/null +++ b/RecoPixelVertexing/PixelTrackFitting/plugins/PixelTrackSoAFromCUDA.cc @@ -0,0 +1,86 @@ +#include + +#include "CUDADataFormats/Common/interface/Product.h" +#include "CUDADataFormats/Common/interface/HostProduct.h" +#include "CUDADataFormats/Track/interface/PixelTrackHeterogeneous.h" +#include "DataFormats/Common/interface/Handle.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/PluginManager/interface/ModuleDef.h" +#include "FWCore/Utilities/interface/EDGetToken.h" +#include "FWCore/Utilities/interface/InputTag.h" +#include "HeterogeneousCore/CUDACore/interface/ScopedContext.h" + +// Switch on to enable checks and printout for found tracks +#undef PIXEL_DEBUG_PRODUCE + +class PixelTrackSoAFromCUDA : public edm::stream::EDProducer { +public: + explicit PixelTrackSoAFromCUDA(const edm::ParameterSet& iConfig); + ~PixelTrackSoAFromCUDA() override = default; + + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + +private: + void acquire(edm::Event const& iEvent, + edm::EventSetup const& iSetup, + edm::WaitingTaskWithArenaHolder waitingTaskHolder) override; + void produce(edm::Event& iEvent, edm::EventSetup const& iSetup) override; + + edm::EDGetTokenT> tokenCUDA_; + edm::EDPutTokenT tokenSOA_; + + cms::cuda::host::unique_ptr soa_; +}; + +PixelTrackSoAFromCUDA::PixelTrackSoAFromCUDA(const edm::ParameterSet& iConfig) + : tokenCUDA_(consumes>(iConfig.getParameter("src"))), + tokenSOA_(produces()) {} + +void PixelTrackSoAFromCUDA::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + + desc.add("src", edm::InputTag("caHitNtupletCUDA")); + descriptions.add("pixelTrackSoA", desc); +} + +void PixelTrackSoAFromCUDA::acquire(edm::Event const& iEvent, + edm::EventSetup const& iSetup, + edm::WaitingTaskWithArenaHolder waitingTaskHolder) { + cms::cuda::Product const& inputDataWrapped = iEvent.get(tokenCUDA_); + cms::cuda::ScopedContextAcquire ctx{inputDataWrapped, std::move(waitingTaskHolder)}; + auto const& inputData = ctx.get(inputDataWrapped); + + soa_ = inputData.toHostAsync(ctx.stream()); +} + +void PixelTrackSoAFromCUDA::produce(edm::Event& iEvent, edm::EventSetup const& iSetup) { +#ifdef PIXEL_DEBUG_PRODUCE + auto const& tsoa = *soa_; + auto maxTracks = tsoa.stride(); + std::cout << "size of SoA" << sizeof(tsoa) << " stride " << maxTracks << std::endl; + + int32_t nt = 0; + for (int32_t it = 0; it < maxTracks; ++it) { + auto nHits = tsoa.nHits(it); + assert(nHits == int(tsoa.hitIndices.size(it))); + if (nHits == 0) + break; // this is a guard: maybe we need to move to nTracks... + nt++; + } + std::cout << "found " << nt << " tracks in cpu SoA at " << &tsoa << std::endl; +#endif + + // DO NOT make a copy (actually TWO....) + iEvent.emplace(tokenSOA_, PixelTrackHeterogeneous(std::move(soa_))); + + assert(!soa_); +} + +DEFINE_FWK_MODULE(PixelTrackSoAFromCUDA); diff --git a/RecoPixelVertexing/PixelTrackFitting/plugins/storeTracks.h b/RecoPixelVertexing/PixelTrackFitting/plugins/storeTracks.h new file mode 100644 index 0000000000000..59101b6ba5214 --- /dev/null +++ b/RecoPixelVertexing/PixelTrackFitting/plugins/storeTracks.h @@ -0,0 +1,72 @@ +#ifndef RecoPixelVertexingPixelTrackFittingStoreTracks_H +#define RecoPixelVertexingPixelTrackFittingStoreTracks_H + +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" + +#include "DataFormats/TrajectoryState/interface/LocalTrajectoryParameters.h" +#include "DataFormats/TrackReco/interface/Track.h" +#include "DataFormats/TrackReco/interface/TrackFwd.h" +#include "DataFormats/TrackReco/interface/TrackExtra.h" +#include "DataFormats/Common/interface/OrphanHandle.h" +#include "RecoPixelVertexing/PixelTrackFitting/interface/TracksWithHits.h" + +#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" +#include "Geometry/Records/interface/TrackerTopologyRcd.h" + +template +void storeTracks(Ev& ev, const TWH& tracksWithHits, const TrackerTopology& ttopo) { + auto tracks = std::make_unique(); + auto recHits = std::make_unique(); + auto trackExtras = std::make_unique(); + + int cc = 0, nTracks = tracksWithHits.size(); + + for (int i = 0; i < nTracks; i++) { + reco::Track* track = tracksWithHits[i].first; + const auto& hits = tracksWithHits[i].second; + + for (unsigned int k = 0; k < hits.size(); k++) { + auto* hit = hits[k]->clone(); + + track->appendHitPattern(*hit, ttopo); + recHits->push_back(hit); + } + tracks->push_back(*track); + delete track; + } + + LogDebug("TrackProducer") << "put the collection of TrackingRecHit in the event" + << "\n"; + edm::OrphanHandle ohRH = ev.put(std::move(recHits)); + + edm::RefProd hitCollProd(ohRH); + for (int k = 0; k < nTracks; k++) { + reco::TrackExtra theTrackExtra{}; + + //fill the TrackExtra with TrackingRecHitRef + unsigned int nHits = tracks->at(k).numberOfValidHits(); + theTrackExtra.setHits(hitCollProd, cc, nHits); + cc += nHits; + AlgebraicVector5 v = AlgebraicVector5(0, 0, 0, 0, 0); + reco::TrackExtra::TrajParams trajParams(nHits, LocalTrajectoryParameters(v, 1.)); + reco::TrackExtra::Chi2sFive chi2s(nHits, 0); + theTrackExtra.setTrajParams(std::move(trajParams), std::move(chi2s)); + trackExtras->push_back(theTrackExtra); + } + + LogDebug("TrackProducer") << "put the collection of TrackExtra in the event" + << "\n"; + edm::OrphanHandle ohTE = ev.put(std::move(trackExtras)); + + for (int k = 0; k < nTracks; k++) { + const reco::TrackExtraRef theTrackExtraRef(ohTE, k); + (tracks->at(k)).setExtra(theTrackExtraRef); + } + + ev.put(std::move(tracks)); +} + +#endif diff --git a/RecoPixelVertexing/PixelTrackFitting/python/PixelTracks_cff.py b/RecoPixelVertexing/PixelTrackFitting/python/PixelTracks_cff.py index 4334d724358f3..5ff404cb603d4 100644 --- a/RecoPixelVertexing/PixelTrackFitting/python/PixelTracks_cff.py +++ b/RecoPixelVertexing/PixelTrackFitting/python/PixelTracks_cff.py @@ -11,6 +11,7 @@ from RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi import * from RecoTracker.TkSeedingLayers.TTRHBuilderWithoutAngle4PixelTriplets_cfi import * from RecoPixelVertexing.PixelTrackFitting.pixelFitterByHelixProjections_cfi import pixelFitterByHelixProjections +from RecoPixelVertexing.PixelTrackFitting.pixelNtupletsFitter_cfi import pixelNtupletsFitter from RecoPixelVertexing.PixelTrackFitting.pixelTrackFilterByKinematics_cfi import pixelTrackFilterByKinematics from RecoPixelVertexing.PixelTrackFitting.pixelTrackCleanerBySharedHits_cfi import pixelTrackCleanerBySharedHits from RecoPixelVertexing.PixelTrackFitting.pixelTracks_cfi import pixelTracks as _pixelTracks @@ -76,4 +77,26 @@ _pixelTracksTask_lowPU.replace(pixelTracksHitQuadruplets, pixelTracksHitTriplets) trackingLowPU.toReplaceWith(pixelTracksTask, _pixelTracksTask_lowPU) +# Use ntuple fit and substitute previous Fitter producer with the ntuple one +from Configuration.ProcessModifiers.pixelNtupleFit_cff import pixelNtupleFit as ntupleFit +ntupleFit.toModify(pixelTracks, Fitter = "pixelNtupletsFitter") +_pixelTracksTask_ntupleFit = pixelTracksTask.copy() +_pixelTracksTask_ntupleFit.replace(pixelFitterByHelixProjections, pixelNtupletsFitter) +ntupleFit.toReplaceWith(pixelTracksTask, _pixelTracksTask_ntupleFit) + + +from Configuration.ProcessModifiers.gpu_cff import gpu +from RecoPixelVertexing.PixelTriplets.caHitNtupletCUDA_cfi import caHitNtupletCUDA +from RecoPixelVertexing.PixelTrackFitting.pixelTrackSoA_cfi import pixelTrackSoA +from RecoPixelVertexing.PixelTrackFitting.pixelTrackProducerFromSoA_cfi import pixelTrackProducerFromSoA as _pixelTrackFromSoA +_pixelTracksGPUTask = cms.Task( + caHitNtupletCUDA, + pixelTrackSoA, + pixelTracks # FromSoA +) + +gpu.toReplaceWith(pixelTracksTask, _pixelTracksGPUTask) +gpu.toReplaceWith(pixelTracks,_pixelTrackFromSoA) + + pixelTracksSequence = cms.Sequence(pixelTracksTask) diff --git a/RecoPixelVertexing/PixelTrackFitting/python/pixelNtupletsFitter_cfi.py b/RecoPixelVertexing/PixelTrackFitting/python/pixelNtupletsFitter_cfi.py new file mode 100644 index 0000000000000..10e1e3852e9c4 --- /dev/null +++ b/RecoPixelVertexing/PixelTrackFitting/python/pixelNtupletsFitter_cfi.py @@ -0,0 +1,6 @@ +import FWCore.ParameterSet.Config as cms + +from RecoPixelVertexing.PixelTrackFitting.pixelNtupletsFitterDefault_cfi import pixelNtupletsFitterDefault + +pixelNtupletsFitter = pixelNtupletsFitterDefault.clone() + diff --git a/RecoPixelVertexing/PixelTrackFitting/src/PixelNtupletsFitter.cc b/RecoPixelVertexing/PixelTrackFitting/src/PixelNtupletsFitter.cc new file mode 100644 index 0000000000000..96f5d5fe03448 --- /dev/null +++ b/RecoPixelVertexing/PixelTrackFitting/src/PixelNtupletsFitter.cc @@ -0,0 +1,102 @@ +#include "CommonTools/Utils/interface/DynArray.h" +#include "DataFormats/GeometryCommonDetAlgo/interface/GlobalError.h" +#include "DataFormats/GeometryCommonDetAlgo/interface/Measurement1D.h" +#include "DataFormats/GeometryVector/interface/GlobalPoint.h" +#include "DataFormats/GeometryVector/interface/LocalPoint.h" +#include "DataFormats/GeometryVector/interface/Pi.h" +#include "DataFormats/TrackingRecHit/interface/TrackingRecHit.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "Geometry/CommonDetUnit/interface/GeomDet.h" +#include "Geometry/CommonDetUnit/interface/GeomDetType.h" +#include "MagneticField/Engine/interface/MagneticField.h" +#include "RecoPixelVertexing/PixelTrackFitting/interface/BrokenLine.h" +#include "RecoPixelVertexing/PixelTrackFitting/interface/PixelNtupletsFitter.h" +#include "RecoPixelVertexing/PixelTrackFitting/interface/PixelTrackBuilder.h" +#include "RecoPixelVertexing/PixelTrackFitting/interface/PixelTrackErrorParam.h" +#include "RecoPixelVertexing/PixelTrackFitting/interface/RiemannFit.h" +#include "RecoTracker/TkMSParametrization/interface/PixelRecoUtilities.h" + +using namespace std; + +PixelNtupletsFitter::PixelNtupletsFitter(float nominalB, const MagneticField* field, bool useRiemannFit) + : nominalB_(nominalB), field_(field), useRiemannFit_(useRiemannFit) {} + +std::unique_ptr PixelNtupletsFitter::run(const std::vector& hits, + const TrackingRegion& region, + const edm::EventSetup&) const { + using namespace riemannFit; + + std::unique_ptr ret; + + unsigned int nhits = hits.size(); + + if (nhits < 2) + return ret; + + declareDynArray(GlobalPoint, nhits, points); + declareDynArray(GlobalError, nhits, errors); + declareDynArray(bool, nhits, isBarrel); + + for (unsigned int i = 0; i != nhits; ++i) { + auto const& recHit = hits[i]; + points[i] = GlobalPoint(recHit->globalPosition().basicVector() - region.origin().basicVector()); + errors[i] = recHit->globalPositionError(); + isBarrel[i] = recHit->detUnit()->type().isBarrel(); + } + + assert(nhits == 4); + riemannFit::Matrix3xNd<4> hits_gp; + + Eigen::Matrix hits_ge = Eigen::Matrix::Zero(); + + for (unsigned int i = 0; i < nhits; ++i) { + hits_gp.col(i) << points[i].x(), points[i].y(), points[i].z(); + + hits_ge.col(i) << errors[i].cxx(), errors[i].cyx(), errors[i].cyy(), errors[i].czx(), errors[i].czy(), + errors[i].czz(); + } + + HelixFit fittedTrack = useRiemannFit_ ? riemannFit::helixFit(hits_gp, hits_ge, nominalB_, true) + : brokenline::helixFit(hits_gp, hits_ge, nominalB_); + + int iCharge = fittedTrack.qCharge; + + // parameters are: + // 0: phi + // 1: tip + // 2: curvature + // 3: cottheta + // 4: zip + float valPhi = fittedTrack.par(0); + + float valTip = fittedTrack.par(1); + + float valCotTheta = fittedTrack.par(3); + + float valZip = fittedTrack.par(4); + float valPt = fittedTrack.par(2); + // + // PixelTrackErrorParam param(valEta, valPt); + float errValPhi = std::sqrt(fittedTrack.cov(0, 0)); + float errValTip = std::sqrt(fittedTrack.cov(1, 1)); + + float errValPt = std::sqrt(fittedTrack.cov(2, 2)); + + float errValCotTheta = std::sqrt(fittedTrack.cov(3, 3)); + float errValZip = std::sqrt(fittedTrack.cov(4, 4)); + + float chi2 = fittedTrack.chi2_line + fittedTrack.chi2_circle; + + PixelTrackBuilder builder; + Measurement1D phi(valPhi, errValPhi); + Measurement1D tip(valTip, errValTip); + + Measurement1D pt(valPt, errValPt); + Measurement1D cotTheta(valCotTheta, errValCotTheta); + Measurement1D zip(valZip, errValZip); + + ret.reset(builder.build(pt, phi, cotTheta, tip, zip, chi2, iCharge, hits, field_, region.origin())); + return ret; +} diff --git a/RecoPixelVertexing/PixelTrackFitting/test/BuildFile.xml b/RecoPixelVertexing/PixelTrackFitting/test/BuildFile.xml index 44820da381dd1..f45da7a1880de 100644 --- a/RecoPixelVertexing/PixelTrackFitting/test/BuildFile.xml +++ b/RecoPixelVertexing/PixelTrackFitting/test/BuildFile.xml @@ -1,8 +1,80 @@ - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/RecoPixelVertexing/PixelTrackFitting/test/PixelTrackFits.cc b/RecoPixelVertexing/PixelTrackFitting/test/PixelTrackFits.cc new file mode 100644 index 0000000000000..e5a652e9d43f8 --- /dev/null +++ b/RecoPixelVertexing/PixelTrackFitting/test/PixelTrackFits.cc @@ -0,0 +1,431 @@ +#define _USE_MATH_DEFINES + +#include +#include +#include +#include +#include +#include + +#include +#include + +#ifdef USE_BL +#include "RecoPixelVertexing/PixelTrackFitting/interface/BrokenLine.h" +#else +#include "RecoPixelVertexing/PixelTrackFitting/interface/RiemannFit.h" +#endif + +using namespace std; +using namespace Eigen; +using namespace riemannFit; +using std::unique_ptr; + +namespace riemannFit { + using Vector3i = Eigen::Matrix; + using Vector4i = Eigen::Matrix; + using Vector6d = Eigen::Matrix; + using Vector8d = Eigen::Matrix; +}; // namespace riemannFit + +// quadruplets... +struct hits_gen { + Matrix3xNd<4> hits; + Eigen::Matrix hits_ge; + Vector5d true_par; +}; + +struct geometry { + Vector8d barrel; + Vector4i barrel_2; + Vector8d R_err; + Vector8d Rp_err; + Vector8d z_err; + Vector6d hand; + Vector3i hand_2; + Vector6d xy_err; + Vector6d zh_err; + double z_max; + double r_max; +}; + +void test_helix_fit(); + +constexpr int c_speed = 299792458; +constexpr double pi = M_PI; +default_random_engine generator(1); + +void smearing(const Vector5d& err, const bool& isbarrel, double& x, double& y, double& z) { + normal_distribution dist_R(0., err[0]); + normal_distribution dist_Rp(0., err[1]); + normal_distribution dist_z(0., err[2]); + normal_distribution dist_xyh(0., err[3]); + normal_distribution dist_zh(0., err[4]); + if (isbarrel) { + double dev_Rp = dist_Rp(generator); + double dev_R = dist_R(generator); + double R = sqrt(riemannFit::sqr(x) + riemannFit::sqr(y)); + x += dev_Rp * +y / R + dev_R * -x / R; + y += dev_Rp * -x / R + dev_R * -y / R; + z += dist_z(generator); + } else { + x += dist_xyh(generator); + y += dist_xyh(generator); + z += dist_zh(generator); + } +} + +template +void Hits_cov(Eigen::Matrix& V, + const unsigned int& i, + const unsigned int& n, + const Matrix3xNd& hits, + const Vector5d& err, + bool isbarrel) { + if (isbarrel) { + double R2 = riemannFit::sqr(hits(0, i)) + riemannFit::sqr(hits(1, i)); + V.col(i)[0] = (riemannFit::sqr(err[1]) * riemannFit::sqr(hits(1, i)) + + riemannFit::sqr(err[0]) * riemannFit::sqr(hits(0, i))) / + R2; + V.col(i)[2] = (riemannFit::sqr(err[1]) * riemannFit::sqr(hits(0, i)) + + riemannFit::sqr(err[0]) * riemannFit::sqr(hits(1, i))) / + R2; + V.col(i)[1] = (riemannFit::sqr(err[0]) - riemannFit::sqr(err[1])) * hits(1, i) * hits(0, i) / R2; + V.col(i)[5] = riemannFit::sqr(err[2]); + } else { + V.col(i)[0] = riemannFit::sqr(err[3]); + V.col(i)[2] = riemannFit::sqr(err[3]); + V.col(i)[5] = riemannFit::sqr(err[4]); + } +} + +hits_gen Hits_gen(const unsigned int& n, const Matrix& gen_par) { + hits_gen gen; + gen.hits = MatrixXd::Zero(3, n); + gen.hits_ge = Eigen::Matrix::Zero(); + // err /= 10000.; + constexpr double rad[8] = {2.95, 6.8, 10.9, 16., 3.1, 7., 11., 16.2}; + // constexpr double R_err[8] = {5./10000, 5./10000, 5./10000, 5./10000, 5./10000, + // 5./10000, 5./10000, 5./10000}; constexpr double Rp_err[8] = {35./10000, 18./10000, + // 15./10000, 34./10000, 35./10000, 18./10000, 15./10000, 34./10000}; constexpr double z_err[8] = + // {72./10000, 38./10000, 25./10000, 56./10000, 72./10000, 38./10000, 25./10000, 56./10000}; + constexpr double R_err[8] = { + 10. / 10000, 10. / 10000, 10. / 10000, 10. / 10000, 10. / 10000, 10. / 10000, 10. / 10000, 10. / 10000}; + constexpr double Rp_err[8] = { + 35. / 10000, 18. / 10000, 15. / 10000, 34. / 10000, 35. / 10000, 18. / 10000, 15. / 10000, 34. / 10000}; + constexpr double z_err[8] = { + 72. / 10000, 38. / 10000, 25. / 10000, 56. / 10000, 72. / 10000, 38. / 10000, 25. / 10000, 56. / 10000}; + const double x2 = gen_par(0) + gen_par(4) * cos(gen_par(3) * pi / 180); + const double y2 = gen_par(1) + gen_par(4) * sin(gen_par(3) * pi / 180); + const double alpha = atan2(y2, x2); + + for (unsigned int i = 0; i < n; ++i) { + const double a = gen_par(4); + const double b = rad[i]; + const double c = sqrt(riemannFit::sqr(x2) + riemannFit::sqr(y2)); + const double beta = acos((riemannFit::sqr(a) - riemannFit::sqr(b) - riemannFit::sqr(c)) / (-2. * b * c)); + const double gamma = alpha + beta; + gen.hits(0, i) = rad[i] * cos(gamma); + gen.hits(1, i) = rad[i] * sin(gamma); + gen.hits(2, i) = + gen_par(2) + + 1 / tan(gen_par(5) * pi / 180) * 2. * + asin(sqrt(riemannFit::sqr((gen_par(0) - gen.hits(0, i))) + riemannFit::sqr((gen_par(1) - gen.hits(1, i)))) / + (2. * gen_par(4))) * + gen_par(4); + // isbarrel(i) = ?? + Vector5d err; + err << R_err[i], Rp_err[i], z_err[i], 0, 0; + smearing(err, true, gen.hits(0, i), gen.hits(1, i), gen.hits(2, i)); + Hits_cov(gen.hits_ge, i, n, gen.hits, err, true); + } + + return gen; +} + +Vector5d True_par(const Matrix& gen_par, const int& charge, const double& B_field) { + Vector5d true_par; + const double x0 = gen_par(0) + gen_par(4) * cos(gen_par(3) * pi / 180); + const double y0 = gen_par(1) + gen_par(4) * sin(gen_par(3) * pi / 180); + CircleFit circle; + circle.par << x0, y0, gen_par(4); + circle.qCharge = 1; + riemannFit::par_uvrtopak(circle, B_field, false); + true_par.block(0, 0, 3, 1) = circle.par; + true_par(3) = 1 / tan(gen_par(5) * pi / 180); + const int dir = ((gen_par(0) - cos(true_par(0) - pi / 2) * true_par(1)) * (gen_par(1) - y0) - + (gen_par(1) - sin(true_par(0) - pi / 2) * true_par(1)) * (gen_par(0) - x0) > + 0) + ? -1 + : 1; + true_par(4) = gen_par(2) + 1 / tan(gen_par(5) * pi / 180) * dir * 2.f * + asin(sqrt(riemannFit::sqr((gen_par(0) - cos(true_par(0) - pi / 2) * true_par(1))) + + riemannFit::sqr((gen_par(1) - sin(true_par(0) - pi / 2) * true_par(1)))) / + (2.f * gen_par(4))) * + gen_par(4); + return true_par; +} + +Matrix New_par(const Matrix& gen_par, const int& charge, const double& B_field) { + Matrix new_par; + new_par.block(0, 0, 3, 1) = gen_par.block(0, 0, 3, 1); + new_par(3) = gen_par(3) - charge * 90; + new_par(4) = gen_par(4) / B_field; + // new_par(5) = atan(sinh(gen_par(5))) * 180 / pi; + new_par(5) = 2. * atan(exp(-gen_par(5))) * 180 / pi; + return new_par; +} + +template +void computePull(std::array& fit, const char* label, int n_, int iteration, const Vector5d& true_par) { + Eigen::Matrix score(41, iteration); + + std::string histo_name("Phi Pull"); + histo_name += label; + TH1F phi_pull(histo_name.data(), histo_name.data(), 100, -10., 10.); + histo_name = "dxy Pull "; + histo_name += label; + TH1F dxy_pull(histo_name.data(), histo_name.data(), 100, -10., 10.); + histo_name = "dz Pull "; + histo_name += label; + TH1F dz_pull(histo_name.data(), histo_name.data(), 100, -10., 10.); + histo_name = "Theta Pull "; + histo_name += label; + TH1F theta_pull(histo_name.data(), histo_name.data(), 100, -10., 10.); + histo_name = "Pt Pull "; + histo_name += label; + TH1F pt_pull(histo_name.data(), histo_name.data(), 100, -10., 10.); + histo_name = "Phi Error "; + histo_name += label; + TH1F phi_error(histo_name.data(), histo_name.data(), 100, 0., 0.1); + histo_name = "dxy error "; + histo_name += label; + TH1F dxy_error(histo_name.data(), histo_name.data(), 100, 0., 0.1); + histo_name = "dz error "; + histo_name += label; + TH1F dz_error(histo_name.data(), histo_name.data(), 100, 0., 0.1); + histo_name = "Theta error "; + histo_name += label; + TH1F theta_error(histo_name.data(), histo_name.data(), 100, 0., 0.1); + histo_name = "Pt error "; + histo_name += label; + TH1F pt_error(histo_name.data(), histo_name.data(), 100, 0., 0.1); + for (int x = 0; x < iteration; x++) { + // Compute PULLS information + score(0, x) = (fit[x].par(0) - true_par(0)) / sqrt(fit[x].cov(0, 0)); + score(1, x) = (fit[x].par(1) - true_par(1)) / sqrt(fit[x].cov(1, 1)); + score(2, x) = (fit[x].par(2) - true_par(2)) / sqrt(fit[x].cov(2, 2)); + score(3, x) = (fit[x].par(3) - true_par(3)) / sqrt(fit[x].cov(3, 3)); + score(4, x) = (fit[x].par(4) - true_par(4)) / sqrt(fit[x].cov(4, 4)); + phi_pull.Fill(score(0, x)); + dxy_pull.Fill(score(1, x)); + pt_pull.Fill(score(2, x)); + theta_pull.Fill(score(3, x)); + dz_pull.Fill(score(4, x)); + phi_error.Fill(sqrt(fit[x].cov(0, 0))); + dxy_error.Fill(sqrt(fit[x].cov(1, 1))); + pt_error.Fill(sqrt(fit[x].cov(2, 2))); + theta_error.Fill(sqrt(fit[x].cov(3, 3))); + dz_error.Fill(sqrt(fit[x].cov(4, 4))); + score(5, x) = (fit[x].par(0) - true_par(0)) * (fit[x].par(1) - true_par(1)) / (fit[x].cov(0, 1)); + score(6, x) = (fit[x].par(0) - true_par(0)) * (fit[x].par(2) - true_par(2)) / (fit[x].cov(0, 2)); + score(7, x) = (fit[x].par(1) - true_par(1)) * (fit[x].par(2) - true_par(2)) / (fit[x].cov(1, 2)); + score(8, x) = (fit[x].par(3) - true_par(3)) * (fit[x].par(4) - true_par(4)) / (fit[x].cov(3, 4)); + score(9, x) = fit[x].chi2_circle; + score(25, x) = fit[x].chi2_line; + score(10, x) = sqrt(fit[x].cov(0, 0)) / fit[x].par(0) * 100; + score(13, x) = sqrt(fit[x].cov(3, 3)) / fit[x].par(3) * 100; + score(14, x) = sqrt(fit[x].cov(4, 4)) / fit[x].par(4) * 100; + score(15, x) = + (fit[x].par(0) - true_par(0)) * (fit[x].par(3) - true_par(3)) / sqrt(fit[x].cov(0, 0)) / sqrt(fit[x].cov(3, 3)); + score(16, x) = + (fit[x].par(1) - true_par(1)) * (fit[x].par(3) - true_par(3)) / sqrt(fit[x].cov(1, 1)) / sqrt(fit[x].cov(3, 3)); + score(17, x) = + (fit[x].par(2) - true_par(2)) * (fit[x].par(3) - true_par(3)) / sqrt(fit[x].cov(2, 2)) / sqrt(fit[x].cov(3, 3)); + score(18, x) = + (fit[x].par(0) - true_par(0)) * (fit[x].par(4) - true_par(4)) / sqrt(fit[x].cov(0, 0)) / sqrt(fit[x].cov(4, 4)); + score(19, x) = + (fit[x].par(1) - true_par(1)) * (fit[x].par(4) - true_par(4)) / sqrt(fit[x].cov(1, 1)) / sqrt(fit[x].cov(4, 4)); + score(20, x) = + (fit[x].par(2) - true_par(2)) * (fit[x].par(4) - true_par(4)) / sqrt(fit[x].cov(2, 2)) / sqrt(fit[x].cov(4, 4)); + score(21, x) = + (fit[x].par(0) - true_par(0)) * (fit[x].par(1) - true_par(1)) / sqrt(fit[x].cov(0, 0)) / sqrt(fit[x].cov(1, 1)); + score(22, x) = + (fit[x].par(0) - true_par(0)) * (fit[x].par(2) - true_par(2)) / sqrt(fit[x].cov(0, 0)) / sqrt(fit[x].cov(2, 2)); + score(23, x) = + (fit[x].par(1) - true_par(1)) * (fit[x].par(2) - true_par(2)) / sqrt(fit[x].cov(1, 1)) / sqrt(fit[x].cov(2, 2)); + score(24, x) = + (fit[x].par(3) - true_par(3)) * (fit[x].par(4) - true_par(4)) / sqrt(fit[x].cov(3, 3)) / sqrt(fit[x].cov(4, 4)); + score(30, x) = fit[x].par(0); + score(31, x) = fit[x].par(1); + score(32, x) = fit[x].par(2); + score(33, x) = fit[x].par(3); + score(34, x) = fit[x].par(4); + score(35, x) = sqrt(fit[x].cov(0, 0)); + score(36, x) = sqrt(fit[x].cov(1, 1)); + score(37, x) = sqrt(fit[x].cov(2, 2)); + score(38, x) = sqrt(fit[x].cov(3, 3)); + score(39, x) = sqrt(fit[x].cov(4, 4)); + } + + double phi_ = score.row(0).mean(); + double a_ = score.row(1).mean(); + double pt_ = score.row(2).mean(); + double coT_ = score.row(3).mean(); + double Zip_ = score.row(4).mean(); + std::cout << std::setprecision(5) << std::scientific << label << " AVERAGE FITTED VALUES: \n" + << "phi: " << score.row(30).mean() << " +/- " << score.row(35).mean() << " [+/-] " + << sqrt(score.row(35).array().abs2().mean() - score.row(35).mean() * score.row(35).mean()) << std::endl + << "d0: " << score.row(31).mean() << " +/- " << score.row(36).mean() << " [+/-] " + << sqrt(score.row(36).array().abs2().mean() - score.row(36).mean() * score.row(36).mean()) << std::endl + << "pt: " << score.row(32).mean() << " +/- " << score.row(37).mean() << " [+/-] " + << sqrt(score.row(37).array().abs2().mean() - score.row(37).mean() * score.row(37).mean()) << std::endl + << "coT: " << score.row(33).mean() << " +/- " << score.row(38).mean() << " [+/-] " + << sqrt(score.row(38).array().abs2().mean() - score.row(38).mean() * score.row(38).mean()) << std::endl + << "Zip: " << score.row(34).mean() << " +/- " << score.row(39).mean() << " [+/-] " + << sqrt(score.row(39).array().abs2().mean() - score.row(39).mean() * score.row(39).mean()) << std::endl; + + Matrix5d correlation; + correlation << 1., score.row(21).mean(), score.row(22).mean(), score.row(15).mean(), score.row(20).mean(), + score.row(21).mean(), 1., score.row(23).mean(), score.row(16).mean(), score.row(19).mean(), score.row(22).mean(), + score.row(23).mean(), 1., score.row(17).mean(), score.row(20).mean(), score.row(15).mean(), score.row(16).mean(), + score.row(17).mean(), 1., score.row(24).mean(), score.row(18).mean(), score.row(19).mean(), score.row(20).mean(), + score.row(24).mean(), 1.; + + cout << "\n" + << label << " PULLS (mean, sigma, relative_error):\n" + << "phi: " << phi_ << " " << sqrt((score.row(0).array() - phi_).square().sum() / (iteration - 1)) << " " + << abs(score.row(10).mean()) << "%\n" + << "a0 : " << a_ << " " << sqrt((score.row(1).array() - a_).square().sum() / (iteration - 1)) << " " + << abs(score.row(11).mean()) << "%\n" + << "pt : " << pt_ << " " << sqrt((score.row(2).array() - pt_).square().sum() / (iteration - 1)) << " " + << abs(score.row(12).mean()) << "%\n" + << "coT: " << coT_ << " " << sqrt((score.row(3).array() - coT_).square().sum() / (iteration - 1)) << " " + << abs(score.row(13).mean()) << "%\n" + << "Zip: " << Zip_ << " " << sqrt((score.row(4).array() - Zip_).square().sum() / (iteration - 1)) << " " + << abs(score.row(14).mean()) << "%\n\n" + << "cov(phi,a0)_: " << score.row(5).mean() << "\n" + << "cov(phi,pt)_: " << score.row(6).mean() << "\n" + << "cov(a0,pt)_: " << score.row(7).mean() << "\n" + << "cov(coT,Zip)_: " << score.row(8).mean() << "\n\n" + << "chi2_circle: " << score.row(9).mean() << " vs " << n_ - 3 << "\n" + << "chi2_line: " << score.row(25).mean() << " vs " << n_ - 2 << "\n\n" + << "correlation matrix:\n" + << correlation << "\n\n" + << endl; + + phi_pull.Fit("gaus", "Q"); + dxy_pull.Fit("gaus", "Q"); + dz_pull.Fit("gaus", "Q"); + theta_pull.Fit("gaus", "Q"); + pt_pull.Fit("gaus", "Q"); + phi_pull.Write(); + dxy_pull.Write(); + dz_pull.Write(); + theta_pull.Write(); + pt_pull.Write(); + phi_error.Write(); + dxy_error.Write(); + dz_error.Write(); + theta_error.Write(); + pt_error.Write(); +} + +void test_helix_fit(bool getcin) { + int n_; + const double B_field = 3.8 * c_speed / pow(10, 9) / 100; + Matrix gen_par; + Vector5d true_par; + Vector5d err; + generator.seed(1); + std::cout << std::setprecision(6); + cout << "_________________________________________________________________________\n"; + cout << "n x(cm) y(cm) z(cm) phi(grad) R(Gev/c) eta iteration debug" << endl; + if (getcin) { + cout << "hits: "; + cin >> n_; + cout << "x: "; + cin >> gen_par(0); + cout << "y: "; + cin >> gen_par(1); + cout << "z: "; + cin >> gen_par(2); + cout << "phi: "; + cin >> gen_par(3); + cout << "p_t: "; + cin >> gen_par(4); + cout << "eta: "; + cin >> gen_par(5); + } else { + n_ = 4; + gen_par(0) = -0.1; // x + gen_par(1) = 0.1; // y + gen_par(2) = -1.; // z + gen_par(3) = 45.; // phi + gen_par(4) = 10.; // R (p_t) + gen_par(5) = 1.; // eta + } + + const int iteration = 5000; + gen_par = New_par(gen_par, 1, B_field); + true_par = True_par(gen_par, 1, B_field); + std::array helixRiemann_fit; + + std::cout << "\nTrue parameters: " + << "phi: " << true_par(0) << " " + << "dxy: " << true_par(1) << " " + << "pt: " << true_par(2) << " " + << "CotT: " << true_par(3) << " " + << "Zip: " << true_par(4) << " " << std::endl; + auto start = std::chrono::high_resolution_clock::now(); + auto delta = start - start; + for (int i = 0; i < 100 * iteration; i++) { + hits_gen gen; + gen = Hits_gen(n_, gen_par); + // gen.hits = MatrixXd::Zero(3, 4); + // gen.hits_cov = MatrixXd::Zero(3 * 4, 3 * 4); + // gen.hits.col(0) << 1.82917642593, 2.0411875248, 7.18495464325; + // gen.hits.col(1) << 4.47041416168, 4.82704305649, 18.6394691467; + // gen.hits.col(2) << 7.25991010666, 7.74653434753, 30.6931324005; + // gen.hits.col(3) << 8.99161434174, 9.54262828827, 38.1338043213; + delta -= std::chrono::high_resolution_clock::now() - start; + helixRiemann_fit[i % iteration] = +#ifdef USE_BL + brokenline::helixFit(gen.hits, gen.hits_ge, B_field); +#else + riemannFit::helixFit(gen.hits, gen.hits_ge, B_field, true); +#endif + delta += std::chrono::high_resolution_clock::now() - start; + + if (helixRiemann_fit[i % iteration].par(0) > 10.) + std::cout << "error" << std::endl; + if (0 == i) + cout << std::setprecision(6) << "phi: " << helixRiemann_fit[i].par(0) << " +/- " + << sqrt(helixRiemann_fit[i].cov(0, 0)) << " vs " << true_par(0) << endl + << "Tip: " << helixRiemann_fit[i].par(1) << " +/- " << sqrt(helixRiemann_fit[i].cov(1, 1)) << " vs " + << true_par(1) << endl + << "p_t: " << helixRiemann_fit[i].par(2) << " +/- " << sqrt(helixRiemann_fit[i].cov(2, 2)) << " vs " + << true_par(2) << endl + << "theta:" << helixRiemann_fit[i].par(3) << " +/- " << sqrt(helixRiemann_fit[i].cov(3, 3)) << " vs " + << true_par(3) << endl + << "Zip: " << helixRiemann_fit[i].par(4) << " +/- " << sqrt(helixRiemann_fit[i].cov(4, 4)) << " vs " + << true_par(4) << endl + << "charge:" << helixRiemann_fit[i].qCharge << " vs 1" << endl + << "covariance matrix:" << endl + << helixRiemann_fit[i].cov << endl + << "Initial hits:\n" + << gen.hits << endl + << "Initial Covariance:\n" + << gen.hits_ge << endl; + } + std::cout << "elapsted time " << double(std::chrono::duration_cast(delta).count()) / 1.e6 + << std::endl; + computePull(helixRiemann_fit, "Riemann", n_, iteration, true_par); +} + +int main(int nargs, char**) { + TFile f("TestFitResults.root", "RECREATE"); + test_helix_fit(nargs > 1); + f.Close(); + return 0; +} diff --git a/RecoPixelVertexing/PixelTrackFitting/test/testEigenGPU.cu b/RecoPixelVertexing/PixelTrackFitting/test/testEigenGPU.cu new file mode 100644 index 0000000000000..d5eba9be26594 --- /dev/null +++ b/RecoPixelVertexing/PixelTrackFitting/test/testEigenGPU.cu @@ -0,0 +1,343 @@ +#include + +#include +#include + +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" +#include "HeterogeneousCore/CUDAUtilities/interface/requireDevices.h" + +#ifdef USE_BL +#include "RecoPixelVertexing/PixelTrackFitting/interface/BrokenLine.h" +#else +#include "RecoPixelVertexing/PixelTrackFitting/interface/RiemannFit.h" +#endif + +#include "test_common.h" + +using namespace Eigen; + +namespace riemannFit { + constexpr uint32_t maxNumberOfTracks() { return 5 * 1024; } + constexpr uint32_t stride() { return maxNumberOfTracks(); } + // hits + template + using Matrix3xNd = Eigen::Matrix; + template + using Map3xNd = Eigen::Map, 0, Eigen::Stride<3 * stride(), stride()>>; + // errors + template + using Matrix6xNf = Eigen::Matrix; + template + using Map6xNf = Eigen::Map, 0, Eigen::Stride<6 * stride(), stride()>>; + // fast fit + using Map4d = Eigen::Map>; + +} // namespace riemannFit + +template +__global__ void kernelPrintSizes(double* __restrict__ phits, float* __restrict__ phits_ge) { + auto i = blockIdx.x * blockDim.x + threadIdx.x; + riemannFit::Map3xNd hits(phits + i, 3, 4); + riemannFit::Map6xNf hits_ge(phits_ge + i, 6, 4); + if (i != 0) + return; + printf("GPU sizes %lu %lu %lu %lu %lu\n", + sizeof(hits[i]), + sizeof(hits_ge[i]), + sizeof(Vector4d), + sizeof(riemannFit::LineFit), + sizeof(riemannFit::CircleFit)); +} + +template +__global__ void kernelFastFit(double* __restrict__ phits, double* __restrict__ presults) { + auto i = blockIdx.x * blockDim.x + threadIdx.x; + riemannFit::Map3xNd hits(phits + i, 3, N); + riemannFit::Map4d result(presults + i, 4); +#ifdef USE_BL + brokenline::fastFit(hits, result); +#else + riemannFit::fastFit(hits, result); +#endif +} + +#ifdef USE_BL + +template +__global__ void kernelBrokenLineFit(double* __restrict__ phits, + float* __restrict__ phits_ge, + double* __restrict__ pfast_fit_input, + double B, + riemannFit::CircleFit* circle_fit, + riemannFit::LineFit* line_fit) { + auto i = blockIdx.x * blockDim.x + threadIdx.x; + riemannFit::Map3xNd hits(phits + i, 3, N); + riemannFit::Map4d fast_fit_input(pfast_fit_input + i, 4); + riemannFit::Map6xNf hits_ge(phits_ge + i, 6, N); + + brokenline::PreparedBrokenLineData data; + riemannFit::Matrix3d Jacob; + + auto& line_fit_results = line_fit[i]; + auto& circle_fit_results = circle_fit[i]; + + brokenline::prepareBrokenLineData(hits, fast_fit_input, B, data); + brokenline::lineFit(hits_ge, fast_fit_input, B, data, line_fit_results); + brokenline::circleFit(hits, hits_ge, fast_fit_input, B, data, circle_fit_results); + Jacob << 1., 0, 0, 0, 1., 0, 0, 0, + -B / std::copysign(riemannFit::sqr(circle_fit_results.par(2)), circle_fit_results.par(2)); + circle_fit_results.par(2) = B / std::abs(circle_fit_results.par(2)); + circle_fit_results.cov = Jacob * circle_fit_results.cov * Jacob.transpose(); + +#ifdef TEST_DEBUG + if (0 == i) { + printf("Circle param %f,%f,%f\n", circle_fit[i].par(0), circle_fit[i].par(1), circle_fit[i].par(2)); + } +#endif +} + +#else + +template +__global__ void kernel_CircleFit(double* __restrict__ phits, + float* __restrict__ phits_ge, + double* __restrict__ pfast_fit_input, + double B, + riemannFit::CircleFit* circle_fit_resultsGPU) { + auto i = blockIdx.x * blockDim.x + threadIdx.x; + riemannFit::Map3xNd hits(phits + i, 3, N); + riemannFit::Map4d fast_fit_input(pfast_fit_input + i, 4); + riemannFit::Map6xNf hits_ge(phits_ge + i, 6, N); + + constexpr auto n = N; + + riemannFit::VectorNd rad = (hits.block(0, 0, 2, n).colwise().norm()); + riemannFit::Matrix2Nd hits_cov = MatrixXd::Zero(2 * n, 2 * n); + riemannFit::loadCovariance2D(hits_ge, hits_cov); + +#ifdef TEST_DEBUG + if (0 == i) { + printf("hits %f, %f\n", hits.block(0, 0, 2, n)(0, 0), hits.block(0, 0, 2, n)(0, 1)); + printf("hits %f, %f\n", hits.block(0, 0, 2, n)(1, 0), hits.block(0, 0, 2, n)(1, 1)); + printf("fast_fit_input(0): %f\n", fast_fit_input(0)); + printf("fast_fit_input(1): %f\n", fast_fit_input(1)); + printf("fast_fit_input(2): %f\n", fast_fit_input(2)); + printf("fast_fit_input(3): %f\n", fast_fit_input(3)); + printf("rad(0,0): %f\n", rad(0, 0)); + printf("rad(1,1): %f\n", rad(1, 1)); + printf("rad(2,2): %f\n", rad(2, 2)); + printf("hits_cov(0,0): %f\n", (*hits_cov)(0, 0)); + printf("hits_cov(1,1): %f\n", (*hits_cov)(1, 1)); + printf("hits_cov(2,2): %f\n", (*hits_cov)(2, 2)); + printf("hits_cov(11,11): %f\n", (*hits_cov)(11, 11)); + printf("B: %f\n", B); + } +#endif + circle_fit_resultsGPU[i] = riemannFit::circleFit(hits.block(0, 0, 2, n), hits_cov, fast_fit_input, rad, B, true); +#ifdef TEST_DEBUG + if (0 == i) { + printf("Circle param %f,%f,%f\n", + circle_fit_resultsGPU[i].par(0), + circle_fit_resultsGPU[i].par(1), + circle_fit_resultsGPU[i].par(2)); + } +#endif +} + +template +__global__ void kernelLineFit(double* __restrict__ phits, + float* __restrict__ phits_ge, + double B, + riemannFit::CircleFit* circle_fit, + double* __restrict__ pfast_fit_input, + riemannFit::LineFit* line_fit) { + auto i = blockIdx.x * blockDim.x + threadIdx.x; + riemannFit::Map3xNd hits(phits + i, 3, N); + riemannFit::Map4d fast_fit_input(pfast_fit_input + i, 4); + riemannFit::Map6xNf hits_ge(phits_ge + i, 6, N); + line_fit[i] = riemannFit::lineFit(hits, hits_ge, circle_fit[i], fast_fit_input, B, true); +} +#endif + +template +__device__ __host__ void fillHitsAndHitsCov(M3xN& hits, M6xN& hits_ge) { + constexpr uint32_t N = M3xN::ColsAtCompileTime; + + if (N == 5) { + hits << 2.934787, 6.314229, 8.936963, 10.360559, 12.856387, 0.773211, 1.816356, 2.765734, 3.330824, 4.422212, + -10.980247, -23.162731, -32.759060, -38.061260, -47.518867; + hits_ge.col(0) << 1.424715e-07, -4.996975e-07, 1.752614e-06, 3.660689e-11, 1.644638e-09, 7.346080e-05; + hits_ge.col(1) << 6.899177e-08, -1.873414e-07, 5.087101e-07, -2.078806e-10, -2.210498e-11, 4.346079e-06; + hits_ge.col(2) << 1.406273e-06, 4.042467e-07, 6.391180e-07, -3.141497e-07, 6.513821e-08, 1.163863e-07; + hits_ge.col(3) << 1.176358e-06, 2.154100e-07, 5.072816e-07, -8.161219e-08, 1.437878e-07, 5.951832e-08; + hits_ge.col(4) << 2.852843e-05, 7.956492e-06, 3.117701e-06, -1.060541e-06, 8.777413e-09, 1.426417e-07; + return; + } + + if (N > 3) + hits << 1.98645, 4.72598, 7.65632, 11.3151, 2.18002, 4.88864, 7.75845, 11.3134, 2.46338, 6.99838, 11.808, 17.793; + else + hits << 1.98645, 4.72598, 7.65632, 2.18002, 4.88864, 7.75845, 2.46338, 6.99838, 11.808; + + hits_ge.col(0)[0] = 7.14652e-06; + hits_ge.col(1)[0] = 2.15789e-06; + hits_ge.col(2)[0] = 1.63328e-06; + if (N > 3) + hits_ge.col(3)[0] = 6.27919e-06; + hits_ge.col(0)[2] = 6.10348e-06; + hits_ge.col(1)[2] = 2.08211e-06; + hits_ge.col(2)[2] = 1.61672e-06; + if (N > 3) + hits_ge.col(3)[2] = 6.28081e-06; + hits_ge.col(0)[5] = 5.184e-05; + hits_ge.col(1)[5] = 1.444e-05; + hits_ge.col(2)[5] = 6.25e-06; + if (N > 3) + hits_ge.col(3)[5] = 3.136e-05; + hits_ge.col(0)[1] = -5.60077e-06; + hits_ge.col(1)[1] = -1.11936e-06; + hits_ge.col(2)[1] = -6.24945e-07; + if (N > 3) + hits_ge.col(3)[1] = -5.28e-06; +} + +template +__global__ void kernelFillHitsAndHitsCov(double* __restrict__ phits, float* phits_ge) { + auto i = blockIdx.x * blockDim.x + threadIdx.x; + riemannFit::Map3xNd hits(phits + i, 3, N); + riemannFit::Map6xNf hits_ge(phits_ge + i, 6, N); + hits_ge = MatrixXf::Zero(6, N); + fillHitsAndHitsCov(hits, hits_ge); +} + +template +void testFit() { + constexpr double B = 0.0113921; + riemannFit::Matrix3xNd hits; + riemannFit::Matrix6xNf hits_ge = MatrixXf::Zero(6, N); + double* hitsGPU = nullptr; + ; + float* hits_geGPU = nullptr; + double* fast_fit_resultsGPU = nullptr; + double* fast_fit_resultsGPUret = new double[riemannFit::maxNumberOfTracks() * sizeof(Vector4d)]; + riemannFit::CircleFit* circle_fit_resultsGPU = nullptr; + riemannFit::CircleFit* circle_fit_resultsGPUret = new riemannFit::CircleFit(); + riemannFit::LineFit* line_fit_resultsGPU = nullptr; + riemannFit::LineFit* line_fit_resultsGPUret = new riemannFit::LineFit(); + + fillHitsAndHitsCov(hits, hits_ge); + + std::cout << "sizes " << N << ' ' << sizeof(hits) << ' ' << sizeof(hits_ge) << ' ' << sizeof(Vector4d) << ' ' + << sizeof(riemannFit::LineFit) << ' ' << sizeof(riemannFit::CircleFit) << std::endl; + + std::cout << "Generated hits:\n" << hits << std::endl; + std::cout << "Generated cov:\n" << hits_ge << std::endl; + + // FAST_FIT_CPU +#ifdef USE_BL + Vector4d fast_fit_results; + brokenline::fastFit(hits, fast_fit_results); +#else + Vector4d fast_fit_results; + riemannFit::fastFit(hits, fast_fit_results); +#endif + std::cout << "Fitted values (FastFit, [X0, Y0, R, tan(theta)]):\n" << fast_fit_results << std::endl; + + // for timing purposes we fit 4096 tracks + constexpr uint32_t Ntracks = 4096; + cudaCheck(cudaMalloc(&hitsGPU, riemannFit::maxNumberOfTracks() * sizeof(riemannFit::Matrix3xNd))); + cudaCheck(cudaMalloc(&hits_geGPU, riemannFit::maxNumberOfTracks() * sizeof(riemannFit::Matrix6xNf))); + cudaCheck(cudaMalloc(&fast_fit_resultsGPU, riemannFit::maxNumberOfTracks() * sizeof(Vector4d))); + cudaCheck(cudaMalloc(&line_fit_resultsGPU, riemannFit::maxNumberOfTracks() * sizeof(riemannFit::LineFit))); + cudaCheck(cudaMalloc(&circle_fit_resultsGPU, riemannFit::maxNumberOfTracks() * sizeof(riemannFit::CircleFit))); + + cudaCheck(cudaMemset(fast_fit_resultsGPU, 0, riemannFit::maxNumberOfTracks() * sizeof(Vector4d))); + cudaCheck(cudaMemset(line_fit_resultsGPU, 0, riemannFit::maxNumberOfTracks() * sizeof(riemannFit::LineFit))); + + kernelPrintSizes<<>>(hitsGPU, hits_geGPU); + kernelFillHitsAndHitsCov<<>>(hitsGPU, hits_geGPU); + + // FAST_FIT GPU + kernelFastFit<<>>(hitsGPU, fast_fit_resultsGPU); + cudaDeviceSynchronize(); + + cudaCheck(cudaMemcpy(fast_fit_resultsGPUret, + fast_fit_resultsGPU, + riemannFit::maxNumberOfTracks() * sizeof(Vector4d), + cudaMemcpyDeviceToHost)); + riemannFit::Map4d fast_fit(fast_fit_resultsGPUret + 10, 4); + std::cout << "Fitted values (FastFit, [X0, Y0, R, tan(theta)]): GPU\n" << fast_fit << std::endl; + assert(isEqualFuzzy(fast_fit_results, fast_fit)); + +#ifdef USE_BL + // CIRCLE AND LINE FIT CPU + brokenline::PreparedBrokenLineData data; + brokenline::karimaki_circle_fit circle_fit_results; + riemannFit::LineFit line_fit_results; + riemannFit::Matrix3d Jacob; + brokenline::prepareBrokenLineData(hits, fast_fit_results, B, data); + brokenline::lineFit(hits_ge, fast_fit_results, B, data, line_fit_results); + brokenline::circleFit(hits, hits_ge, fast_fit_results, B, data, circle_fit_results); + Jacob << 1., 0, 0, 0, 1., 0, 0, 0, + -B / std::copysign(riemannFit::sqr(circle_fit_results.par(2)), circle_fit_results.par(2)); + circle_fit_results.par(2) = B / std::abs(circle_fit_results.par(2)); + circle_fit_results.cov = Jacob * circle_fit_results.cov * Jacob.transpose(); + + // fit on GPU + kernelBrokenLineFit + <<>>(hitsGPU, hits_geGPU, fast_fit_resultsGPU, B, circle_fit_resultsGPU, line_fit_resultsGPU); + cudaDeviceSynchronize(); + +#else + // CIRCLE_FIT CPU + riemannFit::VectorNd rad = (hits.block(0, 0, 2, N).colwise().norm()); + + riemannFit::Matrix2Nd hits_cov = riemannFit::Matrix2Nd::Zero(); + riemannFit::loadCovariance2D(hits_ge, hits_cov); + riemannFit::CircleFit circle_fit_results = + riemannFit::circleFit(hits.block(0, 0, 2, N), hits_cov, fast_fit_results, rad, B, true); + + // CIRCLE_FIT GPU + kernel_CircleFit<<>>(hitsGPU, hits_geGPU, fast_fit_resultsGPU, B, circle_fit_resultsGPU); + cudaDeviceSynchronize(); + + // LINE_FIT CPU + riemannFit::LineFit line_fit_results = + riemannFit::lineFit(hits, hits_ge, circle_fit_results, fast_fit_results, B, true); + + kernelLineFit + <<>>(hitsGPU, hits_geGPU, B, circle_fit_resultsGPU, fast_fit_resultsGPU, line_fit_resultsGPU); + cudaDeviceSynchronize(); +#endif + + std::cout << "Fitted values (CircleFit):\n" << circle_fit_results.par << std::endl; + + cudaCheck(cudaMemcpy( + circle_fit_resultsGPUret, circle_fit_resultsGPU, sizeof(riemannFit::CircleFit), cudaMemcpyDeviceToHost)); + std::cout << "Fitted values (CircleFit) GPU:\n" << circle_fit_resultsGPUret->par << std::endl; + assert(isEqualFuzzy(circle_fit_results.par, circle_fit_resultsGPUret->par)); + + std::cout << "Fitted values (LineFit):\n" << line_fit_results.par << std::endl; + // LINE_FIT GPU + cudaCheck( + cudaMemcpy(line_fit_resultsGPUret, line_fit_resultsGPU, sizeof(riemannFit::LineFit), cudaMemcpyDeviceToHost)); + std::cout << "Fitted values (LineFit) GPU:\n" << line_fit_resultsGPUret->par << std::endl; + assert(isEqualFuzzy(line_fit_results.par, line_fit_resultsGPUret->par, N == 5 ? 1e-4 : 1e-6)); // requires fma on CPU + + std::cout << "Fitted cov (CircleFit) CPU:\n" << circle_fit_results.cov << std::endl; + std::cout << "Fitted cov (LineFit): CPU\n" << line_fit_results.cov << std::endl; + std::cout << "Fitted cov (CircleFit) GPU:\n" << circle_fit_resultsGPUret->cov << std::endl; + std::cout << "Fitted cov (LineFit): GPU\n" << line_fit_resultsGPUret->cov << std::endl; +} + +int main(int argc, char* argv[]) { + cms::cudatest::requireDevices(); + + testFit<4>(); + testFit<3>(); + testFit<5>(); + + std::cout << "TEST FIT, NO ERRORS" << std::endl; + + return 0; +} diff --git a/RecoPixelVertexing/PixelTrackFitting/test/testEigenGPUNoFit.cu b/RecoPixelVertexing/PixelTrackFitting/test/testEigenGPUNoFit.cu new file mode 100644 index 0000000000000..6ac1088943305 --- /dev/null +++ b/RecoPixelVertexing/PixelTrackFitting/test/testEigenGPUNoFit.cu @@ -0,0 +1,248 @@ +#include + +#include +#include + +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" +#include "HeterogeneousCore/CUDAUtilities/interface/requireDevices.h" +#include "test_common.h" + +using namespace Eigen; + +using Matrix5d = Matrix; + +__host__ __device__ void eigenValues(Matrix3d *m, Eigen::SelfAdjointEigenSolver::RealVectorType *ret) { +#if TEST_DEBUG + printf("Matrix(0,0): %f\n", (*m)(0, 0)); + printf("Matrix(1,1): %f\n", (*m)(1, 1)); + printf("Matrix(2,2): %f\n", (*m)(2, 2)); +#endif + SelfAdjointEigenSolver es; + es.computeDirect(*m); + (*ret) = es.eigenvalues(); + return; +} + +__global__ void kernel(Matrix3d *m, Eigen::SelfAdjointEigenSolver::RealVectorType *ret) { + eigenValues(m, ret); +} + +__global__ void kernelInverse3x3(Matrix3d *in, Matrix3d *out) { (*out) = in->inverse(); } + +__global__ void kernelInverse4x4(Matrix4d *in, Matrix4d *out) { (*out) = in->inverse(); } + +__global__ void kernelInverse5x5(Matrix5d *in, Matrix5d *out) { (*out) = in->inverse(); } + +template +__global__ void kernelMultiply(M1 *J, M2 *C, M3 *result) { +// Map res(result->data()); +#if TEST_DEBUG + printf("*** GPU IN ***\n"); +#endif + printIt(J); + printIt(C); + // res.noalias() = (*J) * (*C); + // printIt(&res); + (*result) = (*J) * (*C); +#if TEST_DEBUG + printf("*** GPU OUT ***\n"); +#endif + return; +} + +template +void testMultiply() { + std::cout << "TEST MULTIPLY" << std::endl; + std::cout << "Product of type " << row1 << "x" << col1 << " * " << row2 << "x" << col2 << std::endl; + Eigen::Matrix J; + fillMatrix(J); + Eigen::Matrix C; + fillMatrix(C); + Eigen::Matrix multiply_result = J * C; +#if TEST_DEBUG + std::cout << "Input J:" << std::endl; + printIt(&J); + std::cout << "Input C:" << std::endl; + printIt(&C); + std::cout << "Output:" << std::endl; + printIt(&multiply_result); +#endif + // GPU + Eigen::Matrix *JGPU = nullptr; + Eigen::Matrix *CGPU = nullptr; + Eigen::Matrix *multiply_resultGPU = nullptr; + Eigen::Matrix *multiply_resultGPUret = new Eigen::Matrix(); + + cudaCheck(cudaMalloc((void **)&JGPU, sizeof(Eigen::Matrix))); + cudaCheck(cudaMalloc((void **)&CGPU, sizeof(Eigen::Matrix))); + cudaCheck(cudaMalloc((void **)&multiply_resultGPU, sizeof(Eigen::Matrix))); + cudaCheck(cudaMemcpy(JGPU, &J, sizeof(Eigen::Matrix), cudaMemcpyHostToDevice)); + cudaCheck(cudaMemcpy(CGPU, &C, sizeof(Eigen::Matrix), cudaMemcpyHostToDevice)); + cudaCheck(cudaMemcpy( + multiply_resultGPU, &multiply_result, sizeof(Eigen::Matrix), cudaMemcpyHostToDevice)); + + kernelMultiply<<<1, 1>>>(JGPU, CGPU, multiply_resultGPU); + cudaDeviceSynchronize(); + + cudaCheck(cudaMemcpy( + multiply_resultGPUret, multiply_resultGPU, sizeof(Eigen::Matrix), cudaMemcpyDeviceToHost)); + printIt(multiply_resultGPUret); + assert(isEqualFuzzy(multiply_result, (*multiply_resultGPUret))); +} + +void testInverse3x3() { + std::cout << "TEST INVERSE 3x3" << std::endl; + Matrix3d m; + fillMatrix(m); + m += m.transpose().eval(); + + Matrix3d m_inv = m.inverse(); + Matrix3d *mGPU = nullptr; + Matrix3d *mGPUret = nullptr; + Matrix3d *mCPUret = new Matrix3d(); + +#if TEST_DEBUG + std::cout << "Here is the matrix m:" << std::endl << m << std::endl; + std::cout << "Its inverse is:" << std::endl << m.inverse() << std::endl; +#endif + cudaCheck(cudaMalloc((void **)&mGPU, sizeof(Matrix3d))); + cudaCheck(cudaMalloc((void **)&mGPUret, sizeof(Matrix3d))); + cudaCheck(cudaMemcpy(mGPU, &m, sizeof(Matrix3d), cudaMemcpyHostToDevice)); + + kernelInverse3x3<<<1, 1>>>(mGPU, mGPUret); + cudaDeviceSynchronize(); + + cudaCheck(cudaMemcpy(mCPUret, mGPUret, sizeof(Matrix3d), cudaMemcpyDeviceToHost)); +#if TEST_DEBUG + std::cout << "Its GPU inverse is:" << std::endl << (*mCPUret) << std::endl; +#endif + assert(isEqualFuzzy(m_inv, *mCPUret)); +} + +void testInverse4x4() { + std::cout << "TEST INVERSE 4x4" << std::endl; + Matrix4d m; + fillMatrix(m); + m += m.transpose().eval(); + + Matrix4d m_inv = m.inverse(); + Matrix4d *mGPU = nullptr; + Matrix4d *mGPUret = nullptr; + Matrix4d *mCPUret = new Matrix4d(); + +#if TEST_DEBUG + std::cout << "Here is the matrix m:" << std::endl << m << std::endl; + std::cout << "Its inverse is:" << std::endl << m.inverse() << std::endl; +#endif + cudaCheck(cudaMalloc((void **)&mGPU, sizeof(Matrix4d))); + cudaCheck(cudaMalloc((void **)&mGPUret, sizeof(Matrix4d))); + cudaCheck(cudaMemcpy(mGPU, &m, sizeof(Matrix4d), cudaMemcpyHostToDevice)); + + kernelInverse4x4<<<1, 1>>>(mGPU, mGPUret); + cudaDeviceSynchronize(); + + cudaCheck(cudaMemcpy(mCPUret, mGPUret, sizeof(Matrix4d), cudaMemcpyDeviceToHost)); +#if TEST_DEBUG + std::cout << "Its GPU inverse is:" << std::endl << (*mCPUret) << std::endl; +#endif + assert(isEqualFuzzy(m_inv, *mCPUret)); +} + +void testInverse5x5() { + std::cout << "TEST INVERSE 5x5" << std::endl; + Matrix5d m; + fillMatrix(m); + m += m.transpose().eval(); + + Matrix5d m_inv = m.inverse(); + Matrix5d *mGPU = nullptr; + Matrix5d *mGPUret = nullptr; + Matrix5d *mCPUret = new Matrix5d(); + +#if TEST_DEBUG + std::cout << "Here is the matrix m:" << std::endl << m << std::endl; + std::cout << "Its inverse is:" << std::endl << m.inverse() << std::endl; +#endif + cudaCheck(cudaMalloc((void **)&mGPU, sizeof(Matrix5d))); + cudaCheck(cudaMalloc((void **)&mGPUret, sizeof(Matrix5d))); + cudaCheck(cudaMemcpy(mGPU, &m, sizeof(Matrix5d), cudaMemcpyHostToDevice)); + + kernelInverse5x5<<<1, 1>>>(mGPU, mGPUret); + cudaDeviceSynchronize(); + + cudaCheck(cudaMemcpy(mCPUret, mGPUret, sizeof(Matrix5d), cudaMemcpyDeviceToHost)); +#if TEST_DEBUG + std::cout << "Its GPU inverse is:" << std::endl << (*mCPUret) << std::endl; +#endif + assert(isEqualFuzzy(m_inv, *mCPUret)); +} + +void testEigenvalues() { + std::cout << "TEST EIGENVALUES" << std::endl; + Matrix3d m; + fillMatrix(m); + m += m.transpose().eval(); + + Matrix3d *m_gpu = nullptr; + Matrix3d *mgpudebug = new Matrix3d(); + Eigen::SelfAdjointEigenSolver::RealVectorType *ret = + new Eigen::SelfAdjointEigenSolver::RealVectorType; + Eigen::SelfAdjointEigenSolver::RealVectorType *ret1 = + new Eigen::SelfAdjointEigenSolver::RealVectorType; + Eigen::SelfAdjointEigenSolver::RealVectorType *ret_gpu = nullptr; + eigenValues(&m, ret); +#if TEST_DEBUG + std::cout << "Generated Matrix M 3x3:\n" << m << std::endl; + std::cout << "The eigenvalues of M are:" << std::endl << (*ret) << std::endl; + std::cout << "*************************\n\n" << std::endl; +#endif + cudaCheck(cudaMalloc((void **)&m_gpu, sizeof(Matrix3d))); + cudaCheck(cudaMalloc((void **)&ret_gpu, sizeof(Eigen::SelfAdjointEigenSolver::RealVectorType))); + cudaCheck(cudaMemcpy(m_gpu, &m, sizeof(Matrix3d), cudaMemcpyHostToDevice)); + + kernel<<<1, 1>>>(m_gpu, ret_gpu); + cudaDeviceSynchronize(); + + cudaCheck(cudaMemcpy(mgpudebug, m_gpu, sizeof(Matrix3d), cudaMemcpyDeviceToHost)); + cudaCheck(cudaMemcpy( + ret1, ret_gpu, sizeof(Eigen::SelfAdjointEigenSolver::RealVectorType), cudaMemcpyDeviceToHost)); +#if TEST_DEBUG + std::cout << "GPU Generated Matrix M 3x3:\n" << (*mgpudebug) << std::endl; + std::cout << "GPU The eigenvalues of M are:" << std::endl << (*ret1) << std::endl; + std::cout << "*************************\n\n" << std::endl; +#endif + assert(isEqualFuzzy(*ret, *ret1)); +} + +int main(int argc, char *argv[]) { + cms::cudatest::requireDevices(); + + testEigenvalues(); + testInverse3x3(); + testInverse4x4(); + testInverse5x5(); + + testMultiply<1, 2, 2, 1>(); + testMultiply<1, 2, 2, 2>(); + testMultiply<1, 2, 2, 3>(); + testMultiply<1, 2, 2, 4>(); + testMultiply<1, 2, 2, 5>(); + testMultiply<2, 1, 1, 2>(); + testMultiply<2, 1, 1, 3>(); + testMultiply<2, 1, 1, 4>(); + testMultiply<2, 1, 1, 5>(); + testMultiply<2, 2, 2, 2>(); + testMultiply<2, 3, 3, 1>(); + testMultiply<2, 3, 3, 2>(); + testMultiply<2, 3, 3, 4>(); + testMultiply<2, 3, 3, 5>(); + testMultiply<3, 2, 2, 3>(); + testMultiply<2, 3, 3, 3>(); // DOES NOT COMPILE W/O PATCHING EIGEN + testMultiply<3, 3, 3, 3>(); + testMultiply<8, 8, 8, 8>(); + testMultiply<3, 4, 4, 3>(); + testMultiply<2, 4, 4, 2>(); + testMultiply<3, 4, 4, 2>(); // DOES NOT COMPILE W/O PATCHING EIGEN + + return 0; +} diff --git a/RecoPixelVertexing/PixelTrackFitting/test/testEigenJacobian.cpp b/RecoPixelVertexing/PixelTrackFitting/test/testEigenJacobian.cpp new file mode 100644 index 0000000000000..a8e040fa0df38 --- /dev/null +++ b/RecoPixelVertexing/PixelTrackFitting/test/testEigenJacobian.cpp @@ -0,0 +1,134 @@ +#include "RecoPixelVertexing/PixelTrackFitting/interface/FitUtils.h" +#include + +using riemannFit::Matrix5d; +using riemannFit::Vector5d; + +#include "TrackingTools/AnalyticalJacobians/interface/JacobianLocalToCurvilinear.h" + +#include "DataFormats/GeometrySurface/interface/Surface.h" +#include "DataFormats/TrajectoryState/interface/LocalTrajectoryParameters.h" +#include "TrackingTools/TrajectoryParametrization/interface/GlobalTrajectoryParameters.h" + +#include "DataFormats/GeometrySurface/interface/Plane.h" + +#include "MagneticField/Engine/interface/MagneticField.h" + +namespace { + + struct M5T : public MagneticField { + M5T() : mf(0., 0., 5.) {} + virtual GlobalVector inTesla(const GlobalPoint&) const { return mf; } + + GlobalVector mf; + }; + +} // namespace + +// old pixeltrack version... +Matrix5d transfFast(Matrix5d cov, Vector5d const& p) { + auto sqr = [](auto x) { return x * x; }; + auto sinTheta = 1 / std::sqrt(1 + p(3) * p(3)); + auto cosTheta = p(3) * sinTheta; + cov(2, 2) = sqr(sinTheta) * (cov(2, 2) * sqr(1. / (p(2) * p(2))) + cov(3, 3) * sqr(cosTheta * sinTheta / p(2))); + cov(3, 2) = cov(2, 3) = cov(3, 3) * cosTheta * sqr(sinTheta) / p(2); + // for (int i=0; i<5; ++i) cov(i,2) *= -sinTheta/(p(2)*p(2)); + // for (int i=0; i<5; ++i) cov(2,i) *= -sinTheta/(p(2)*p(2)); + return cov; +} + +Matrix5d loadCov(Vector5d const& e) { + Matrix5d cov; + for (int i = 0; i < 5; ++i) + cov(i, i) = e(i) * e(i); + for (int i = 0; i < 5; ++i) { + for (int j = 0; j < i; ++j) { + double v = 0.3 * std::sqrt(cov(i, i) * cov(j, j)); // this makes the matrix pos defined + cov(i, j) = (i + j) % 2 ? -0.4 * v : 0.1 * v; + cov(j, i) = cov(i, j); + } + } + return cov; +} + +#include +int main() { + M5T const mf; + + for (auto charge = -1; charge < 2; charge += 2) + for (auto szip = -1; szip < 2; szip += 2) + for (auto stip = -1; stip < 2; stip += 2) { + Vector5d par0; + par0 << 0.2, 0.1, 3.5, 0.8, 0.1; + Vector5d del0; + del0 << 0.01, 0.01, 0.035, -0.03, -0.01; + //!<(phi,Tip,pt,cotan(theta)),Zip) + par0(1) *= stip; + par0(4) *= szip; + + Matrix5d cov0 = loadCov(del0); + + Vector5d par1; + Vector5d par2; + + Matrix5d cov1; + Matrix5d cov2; + + // Matrix5d covf = transfFast(cov0,par0); + + riemannFit::transformToPerigeePlane(par0, cov0, par1, cov1); + + std::cout << "cov1\n" << cov1 << std::endl; + + LocalTrajectoryParameters lpar(par1(0), par1(1), par1(2), par1(3), par1(4), 1.); + AlgebraicSymMatrix55 m; + for (int i = 0; i < 5; ++i) + for (int j = i; j < 5; ++j) + m(i, j) = cov1(i, j); + + float phi = par0(0); + float sp = std::sin(phi); + float cp = std::cos(phi); + Surface::RotationType rot(sp, -cp, 0, 0, 0, -1.f, cp, sp, 0); + + Surface::PositionType bs(0., 0., 0.); + Plane plane(bs, rot); + GlobalTrajectoryParameters gp( + plane.toGlobal(lpar.position()), plane.toGlobal(lpar.momentum()), lpar.charge(), &mf); + std::cout << "global par " << gp.position() << ' ' << gp.momentum() << ' ' << gp.charge() << std::endl; + JacobianLocalToCurvilinear jl2c(plane, lpar, mf); + std::cout << "jac l2c" << jl2c.jacobian() << std::endl; + + AlgebraicSymMatrix55 mo = ROOT::Math::Similarity(jl2c.jacobian(), m); + std::cout << "curv error\n" << mo << std::endl; + + /* + + // not accurate as the perigee plane move as well... + Vector5d del1 = par2-par1; + + + // don't ask: guess + std::cout << "charge " << charge << std::endl; + std::cout << "par0 " << par0.transpose() << std::endl; + std::cout << "del0 " << del0.transpose() << std::endl; + + + std::cout << "par1 " << par1.transpose() << std::endl; + std::cout << "del1 " << del1.transpose() << std::endl; + // std::cout << "del2 " << (J*del0).transpose() << std::endl; + + std::cout << "del1^2 " << (del1.array()*del1.array()).transpose() << std::endl; + std::cout << std::endl; + + std::cout << "cov0\n" << cov0 << std::endl; + std::cout << "cov1\n" << cov1 << std::endl; + std::cout << "cov2\n" << cov2 << std::endl; + */ + + std::cout << std::endl << "----------" << std::endl; + + } // lopp over signs + + return 0; +} diff --git a/RecoPixelVertexing/PixelTrackFitting/test/testFits.cpp b/RecoPixelVertexing/PixelTrackFitting/test/testFits.cpp new file mode 100644 index 0000000000000..7c0dab3be3e00 --- /dev/null +++ b/RecoPixelVertexing/PixelTrackFitting/test/testFits.cpp @@ -0,0 +1,154 @@ +#include + +#include +#include + +#ifdef USE_BL +#include "RecoPixelVertexing/PixelTrackFitting/interface/BrokenLine.h" +#else +#include "RecoPixelVertexing/PixelTrackFitting/interface/RiemannFit.h" +#endif + +#include "test_common.h" + +using namespace Eigen; + +namespace riemannFit { + constexpr uint32_t maxNumberOfTracks() { return 5 * 1024; } + constexpr uint32_t stride() { return maxNumberOfTracks(); } + // hits + template + using Matrix3xNd = Eigen::Matrix; + template + using Map3xNd = Eigen::Map, 0, Eigen::Stride<3 * stride(), stride()> >; + // errors + template + using Matrix6xNf = Eigen::Matrix; + template + using Map6xNf = Eigen::Map, 0, Eigen::Stride<6 * stride(), stride()> >; + // fast fit + using Map4d = Eigen::Map >; + +} // namespace riemannFit + +/* +Hit global: 641,0 2: 2.934787,0.773211,-10.980247 +Error: 641,0 2: 1.424715e-07,-4.996975e-07,1.752614e-06,3.660689e-11,1.644638e-09,7.346080e-05 +Hit global: 641,1 104: 6.314229,1.816356,-23.162731 +Error: 641,1 104: 6.899177e-08,-1.873414e-07,5.087101e-07,-2.078806e-10,-2.210498e-11,4.346079e-06 +Hit global: 641,2 1521: 8.936963,2.765734,-32.759060 +Error: 641,2 1521: 1.406273e-06,4.042467e-07,6.391180e-07,-3.141497e-07,6.513821e-08,1.163863e-07 +Hit global: 641,3 1712: 10.360559,3.330824,-38.061260 +Error: 641,3 1712: 1.176358e-06,2.154100e-07,5.072816e-07,-8.161219e-08,1.437878e-07,5.951832e-08 +Hit global: 641,4 1824: 12.856387,4.422212,-47.518867 +Error: 641,4 1824: 2.852843e-05,7.956492e-06,3.117701e-06,-1.060541e-06,8.777413e-09,1.426417e-07 +*/ + +template +void fillHitsAndHitsCov(M3xN& hits, M6xN& hits_ge) { + constexpr uint32_t N = M3xN::ColsAtCompileTime; + + if (N == 5) { + hits << 2.934787, 6.314229, 8.936963, 10.360559, 12.856387, 0.773211, 1.816356, 2.765734, 3.330824, 4.422212, + -10.980247, -23.162731, -32.759060, -38.061260, -47.518867; + hits_ge.col(0) << 1.424715e-07, -4.996975e-07, 1.752614e-06, 3.660689e-11, 1.644638e-09, 7.346080e-05; + hits_ge.col(1) << 6.899177e-08, -1.873414e-07, 5.087101e-07, -2.078806e-10, -2.210498e-11, 4.346079e-06; + hits_ge.col(2) << 1.406273e-06, 4.042467e-07, 6.391180e-07, -3.141497e-07, 6.513821e-08, 1.163863e-07; + hits_ge.col(3) << 1.176358e-06, 2.154100e-07, 5.072816e-07, -8.161219e-08, 1.437878e-07, 5.951832e-08; + hits_ge.col(4) << 2.852843e-05, 7.956492e-06, 3.117701e-06, -1.060541e-06, 8.777413e-09, 1.426417e-07; + return; + } + + if (N > 3) + hits << 1.98645, 4.72598, 7.65632, 11.3151, 2.18002, 4.88864, 7.75845, 11.3134, 2.46338, 6.99838, 11.808, 17.793; + else + hits << 1.98645, 4.72598, 7.65632, 2.18002, 4.88864, 7.75845, 2.46338, 6.99838, 11.808; + + hits_ge.col(0)[0] = 7.14652e-06; + hits_ge.col(1)[0] = 2.15789e-06; + hits_ge.col(2)[0] = 1.63328e-06; + if (N > 3) + hits_ge.col(3)[0] = 6.27919e-06; + hits_ge.col(0)[2] = 6.10348e-06; + hits_ge.col(1)[2] = 2.08211e-06; + hits_ge.col(2)[2] = 1.61672e-06; + if (N > 3) + hits_ge.col(3)[2] = 6.28081e-06; + hits_ge.col(0)[5] = 5.184e-05; + hits_ge.col(1)[5] = 1.444e-05; + hits_ge.col(2)[5] = 6.25e-06; + if (N > 3) + hits_ge.col(3)[5] = 3.136e-05; + hits_ge.col(0)[1] = -5.60077e-06; + hits_ge.col(1)[1] = -1.11936e-06; + hits_ge.col(2)[1] = -6.24945e-07; + if (N > 3) + hits_ge.col(3)[1] = -5.28e-06; +} + +template +void testFit() { + constexpr double B = 0.0113921; + riemannFit::Matrix3xNd hits; + riemannFit::Matrix6xNf hits_ge = MatrixXf::Zero(6, N); + + fillHitsAndHitsCov(hits, hits_ge); + + std::cout << "sizes " << N << ' ' << sizeof(hits) << ' ' << sizeof(hits_ge) << ' ' << sizeof(Vector4d) << std::endl; + + std::cout << "Generated hits:\n" << hits << std::endl; + std::cout << "Generated cov:\n" << hits_ge << std::endl; + + // FAST_FIT_CPU +#ifdef USE_BL + Vector4d fast_fit_results; + brokenline::fastFit(hits, fast_fit_results); +#else + Vector4d fast_fit_results; + riemannFit::fastFit(hits, fast_fit_results); +#endif + std::cout << "Fitted values (FastFit, [X0, Y0, R, tan(theta)]):\n" << fast_fit_results << std::endl; + + // CIRCLE_FIT CPU + +#ifdef USE_BL + brokenline::PreparedBrokenLineData data; + brokenline::karimaki_circle_fit circle_fit_results; + riemannFit::Matrix3d Jacob; + + brokenline::prepareBrokenLineData(hits, fast_fit_results, B, data); + riemannFit::LineFit line_fit_results; + brokenline::lineFit(hits_ge, fast_fit_results, B, data, line_fit_results); + brokenline::circleFit(hits, hits_ge, fast_fit_results, B, data, circle_fit_results); + Jacob << 1., 0, 0, 0, 1., 0, 0, 0, + -B / std::copysign(riemannFit::sqr(circle_fit_results.par(2)), circle_fit_results.par(2)); + circle_fit_results.par(2) = B / std::abs(circle_fit_results.par(2)); + circle_fit_results.cov = Jacob * circle_fit_results.cov * Jacob.transpose(); +#else + riemannFit::VectorNd rad = (hits.block(0, 0, 2, N).colwise().norm()); + riemannFit::Matrix2Nd hits_cov = riemannFit::Matrix2Nd::Zero(); + riemannFit::loadCovariance2D(hits_ge, hits_cov); + riemannFit::CircleFit circle_fit_results = + riemannFit::circleFit(hits.block(0, 0, 2, N), hits_cov, fast_fit_results, rad, B, true); + // LINE_FIT CPU + riemannFit::LineFit line_fit_results = + riemannFit::lineFit(hits, hits_ge, circle_fit_results, fast_fit_results, B, true); + riemannFit::par_uvrtopak(circle_fit_results, B, true); + +#endif + + std::cout << "Fitted values (CircleFit):\n" + << circle_fit_results.par << "\nchi2 " << circle_fit_results.chi2 << std::endl; + std::cout << "Fitted values (LineFit):\n" << line_fit_results.par << "\nchi2 " << line_fit_results.chi2 << std::endl; + + std::cout << "Fitted cov (CircleFit) CPU:\n" << circle_fit_results.cov << std::endl; + std::cout << "Fitted cov (LineFit): CPU\n" << line_fit_results.cov << std::endl; +} + +int main(int argc, char* argv[]) { + testFit<4>(); + testFit<3>(); + testFit<5>(); + + return 0; +} diff --git a/RecoPixelVertexing/PixelTrackFitting/test/test_common.h b/RecoPixelVertexing/PixelTrackFitting/test/test_common.h new file mode 100644 index 0000000000000..6377628b0eeca --- /dev/null +++ b/RecoPixelVertexing/PixelTrackFitting/test/test_common.h @@ -0,0 +1,47 @@ +#ifndef RecoPixelVertexing__PixelTrackFitting__test_common_h +#define RecoPixelVertexing__PixelTrackFitting__test_common_h + +#include +#include +#include + +template +__host__ __device__ void printIt(C* m) { +#ifdef TEST_DEBUG + printf("\nMatrix %dx%d\n", (int)m->rows(), (int)m->cols()); + for (u_int r = 0; r < m->rows(); ++r) { + for (u_int c = 0; c < m->cols(); ++c) { + printf("Matrix(%d,%d) = %f\n", r, c, (*m)(r, c)); + } + } +#endif +} + +template +bool isEqualFuzzy(C1 a, C2 b, double epsilon = 1e-6) { + for (unsigned int i = 0; i < a.rows(); ++i) { + for (unsigned int j = 0; j < a.cols(); ++j) { + assert(std::abs(a(i, j) - b(i, j)) < std::min(std::abs(a(i, j)), std::abs(b(i, j))) * epsilon); + } + } + return true; +} + +bool isEqualFuzzy(double a, double b, double epsilon = 1e-6) { + return std::abs(a - b) < std::min(std::abs(a), std::abs(b)) * epsilon; +} + +template +void fillMatrix(T& t) { + std::random_device rd; + std::mt19937 gen(rd()); + std::uniform_real_distribution<> dis(0.0, 2.0); + for (int row = 0; row < t.rows(); ++row) { + for (int col = 0; col < t.cols(); ++col) { + t(row, col) = dis(gen); + } + } + return; +} + +#endif diff --git a/RecoPixelVertexing/PixelTriplets/interface/CAHitQuadrupletGenerator.h b/RecoPixelVertexing/PixelTriplets/interface/CAHitQuadrupletGenerator.h index 9d149533eefbc..deb2beb6099ee 100644 --- a/RecoPixelVertexing/PixelTriplets/interface/CAHitQuadrupletGenerator.h +++ b/RecoPixelVertexing/PixelTriplets/interface/CAHitQuadrupletGenerator.h @@ -42,7 +42,7 @@ class CAHitQuadrupletGenerator { ~CAHitQuadrupletGenerator() = default; static void fillDescriptions(edm::ParameterSetDescription& desc); - static const char* fillDescriptionsLabel() { return "caHitQuadruplet"; } + static const char* fillDescriptionsLabel() { return "caHitQuadrupletDefault"; } void initEvent(const edm::Event& ev, const edm::EventSetup& es); diff --git a/RecoPixelVertexing/PixelTriplets/interface/CircleEq.h b/RecoPixelVertexing/PixelTriplets/interface/CircleEq.h new file mode 100644 index 0000000000000..986fe2e2992b9 --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/interface/CircleEq.h @@ -0,0 +1,97 @@ +#ifndef RecoPixelVertexingPixelTripletsCircleEq_H +#define RecoPixelVertexingPixelTripletsCircleEq_H +/** +| 1) circle is parameterized as: | +| C*[(X-Xp)**2+(Y-Yp)**2] - 2*alpha*(X-Xp) - 2*beta*(Y-Yp) = 0 | +| Xp,Yp is a point on the track; | +| C = 1/r0 is the curvature ( sign of C is charge of particle ); | +| alpha & beta are the direction cosines of the radial vector at Xp,Yp | +| i.e. alpha = C*(X0-Xp), | +| beta = C*(Y0-Yp), | +| where center of circle is at X0,Y0. | +| | +| Slope dy/dx of tangent at Xp,Yp is -alpha/beta. | +| 2) the z dimension of the helix is parameterized by gamma = dZ/dSperp | +| this is also the tangent of the pitch angle of the helix. | +| with this parameterization, (alpha,beta,gamma) rotate like a vector. | +| 3) For tracks going inward at (Xp,Yp), C, alpha, beta, and gamma change sign| +| +*/ + +#include + +template +class CircleEq { +public: + CircleEq() {} + + constexpr CircleEq(T x1, T y1, T x2, T y2, T x3, T y3) { compute(x1, y1, x2, y2, x3, y3); } + + constexpr void compute(T x1, T y1, T x2, T y2, T x3, T y3); + + // dca to origin divided by curvature + constexpr T dca0() const { + auto x = m_c * m_xp + m_alpha; + auto y = m_c * m_yp + m_beta; + return std::sqrt(x * x + y * y) - T(1); + } + + // dca to given point (divided by curvature) + constexpr T dca(T x, T y) const { + x = m_c * (m_xp - x) + m_alpha; + y = m_c * (m_yp - y) + m_beta; + return std::sqrt(x * x + y * y) - T(1); + } + + // curvature + constexpr auto curvature() const { return m_c; } + + // alpha and beta + constexpr std::pair cosdir() const { return std::make_pair(m_alpha, m_beta); } + + // alpha and beta af given point + constexpr std::pair cosdir(T x, T y) const { + return std::make_pair(m_alpha - m_c * (x - m_xp), m_beta - m_c * (y - m_yp)); + } + + // center + constexpr std::pair center() const { return std::make_pair(m_xp + m_alpha / m_c, m_yp + m_beta / m_c); } + + constexpr auto radius() const { return T(1) / m_c; } + + T m_xp = 0; + T m_yp = 0; + T m_c = 0; + T m_alpha = 0; + T m_beta = 0; +}; + +template +constexpr void CircleEq::compute(T x1, T y1, T x2, T y2, T x3, T y3) { + bool noflip = std::abs(x3 - x1) < std::abs(y3 - y1); + + auto x1p = noflip ? x1 - x2 : y1 - y2; + auto y1p = noflip ? y1 - y2 : x1 - x2; + auto d12 = x1p * x1p + y1p * y1p; + auto x3p = noflip ? x3 - x2 : y3 - y2; + auto y3p = noflip ? y3 - y2 : x3 - x2; + auto d32 = x3p * x3p + y3p * y3p; + + auto num = x1p * y3p - y1p * x3p; // num also gives correct sign for CT + auto det = d12 * y3p - d32 * y1p; + + auto st2 = (d12 * x3p - d32 * x1p); + auto seq = det * det + st2 * st2; + auto al2 = T(1.) / std::sqrt(seq); + auto be2 = -st2 * al2; + auto ct = T(2.) * num * al2; + al2 *= det; + + m_xp = x2; + m_yp = y2; + m_c = noflip ? ct : -ct; + m_alpha = noflip ? al2 : -be2; + m_beta = noflip ? be2 : -al2; +} + +#endif diff --git a/RecoPixelVertexing/PixelTriplets/plugins/BrokenLineFitOnGPU.cc b/RecoPixelVertexing/PixelTriplets/plugins/BrokenLineFitOnGPU.cc new file mode 100644 index 0000000000000..bebfe0e08008e --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/plugins/BrokenLineFitOnGPU.cc @@ -0,0 +1,70 @@ +#include "BrokenLineFitOnGPU.h" + +void HelixFitOnGPU::launchBrokenLineKernelsOnCPU(HitsView const* hv, uint32_t hitsInFit, uint32_t maxNumberOfTuples) { + assert(tuples_); + + // Fit internals + auto hitsGPU_ = + std::make_unique(maxNumberOfConcurrentFits_ * sizeof(riemannFit::Matrix3xNd<4>) / sizeof(double)); + auto hits_geGPU_ = + std::make_unique(maxNumberOfConcurrentFits_ * sizeof(riemannFit::Matrix6x4f) / sizeof(float)); + auto fast_fit_resultsGPU_ = + std::make_unique(maxNumberOfConcurrentFits_ * sizeof(riemannFit::Vector4d) / sizeof(double)); + + for (uint32_t offset = 0; offset < maxNumberOfTuples; offset += maxNumberOfConcurrentFits_) { + // fit triplets + kernel_BLFastFit<3>( + tuples_, tupleMultiplicity_, hv, hitsGPU_.get(), hits_geGPU_.get(), fast_fit_resultsGPU_.get(), 3, offset); + + kernel_BLFit<3>(tupleMultiplicity_, + bField_, + outputSoa_, + hitsGPU_.get(), + hits_geGPU_.get(), + fast_fit_resultsGPU_.get(), + 3, + offset); + + // fit quads + kernel_BLFastFit<4>( + tuples_, tupleMultiplicity_, hv, hitsGPU_.get(), hits_geGPU_.get(), fast_fit_resultsGPU_.get(), 4, offset); + + kernel_BLFit<4>(tupleMultiplicity_, + bField_, + outputSoa_, + hitsGPU_.get(), + hits_geGPU_.get(), + fast_fit_resultsGPU_.get(), + 4, + offset); + + if (fit5as4_) { + // fit penta (only first 4) + kernel_BLFastFit<4>( + tuples_, tupleMultiplicity_, hv, hitsGPU_.get(), hits_geGPU_.get(), fast_fit_resultsGPU_.get(), 5, offset); + + kernel_BLFit<4>(tupleMultiplicity_, + bField_, + outputSoa_, + hitsGPU_.get(), + hits_geGPU_.get(), + fast_fit_resultsGPU_.get(), + 5, + offset); + } else { + // fit penta (all 5) + kernel_BLFastFit<5>( + tuples_, tupleMultiplicity_, hv, hitsGPU_.get(), hits_geGPU_.get(), fast_fit_resultsGPU_.get(), 5, offset); + + kernel_BLFit<5>(tupleMultiplicity_, + bField_, + outputSoa_, + hitsGPU_.get(), + hits_geGPU_.get(), + fast_fit_resultsGPU_.get(), + 5, + offset); + } + + } // loop on concurrent fits +} diff --git a/RecoPixelVertexing/PixelTriplets/plugins/BrokenLineFitOnGPU.cu b/RecoPixelVertexing/PixelTriplets/plugins/BrokenLineFitOnGPU.cu new file mode 100644 index 0000000000000..d2ca583e86bd0 --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/plugins/BrokenLineFitOnGPU.cu @@ -0,0 +1,85 @@ +#include "BrokenLineFitOnGPU.h" +#include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h" + +void HelixFitOnGPU::launchBrokenLineKernels(HitsView const *hv, + uint32_t hitsInFit, + uint32_t maxNumberOfTuples, + cudaStream_t stream) { + assert(tuples_); + + auto blockSize = 64; + auto numberOfBlocks = (maxNumberOfConcurrentFits_ + blockSize - 1) / blockSize; + + // Fit internals + auto hitsGPU_ = cms::cuda::make_device_unique( + maxNumberOfConcurrentFits_ * sizeof(riemannFit::Matrix3xNd<4>) / sizeof(double), stream); + auto hits_geGPU_ = cms::cuda::make_device_unique( + maxNumberOfConcurrentFits_ * sizeof(riemannFit::Matrix6x4f) / sizeof(float), stream); + auto fast_fit_resultsGPU_ = cms::cuda::make_device_unique( + maxNumberOfConcurrentFits_ * sizeof(riemannFit::Vector4d) / sizeof(double), stream); + + for (uint32_t offset = 0; offset < maxNumberOfTuples; offset += maxNumberOfConcurrentFits_) { + // fit triplets + kernel_BLFastFit<3><<>>( + tuples_, tupleMultiplicity_, hv, hitsGPU_.get(), hits_geGPU_.get(), fast_fit_resultsGPU_.get(), 3, offset); + cudaCheck(cudaGetLastError()); + + kernel_BLFit<3><<>>(tupleMultiplicity_, + bField_, + outputSoa_, + hitsGPU_.get(), + hits_geGPU_.get(), + fast_fit_resultsGPU_.get(), + 3, + offset); + cudaCheck(cudaGetLastError()); + + // fit quads + kernel_BLFastFit<4><<>>( + tuples_, tupleMultiplicity_, hv, hitsGPU_.get(), hits_geGPU_.get(), fast_fit_resultsGPU_.get(), 4, offset); + cudaCheck(cudaGetLastError()); + + kernel_BLFit<4><<>>(tupleMultiplicity_, + bField_, + outputSoa_, + hitsGPU_.get(), + hits_geGPU_.get(), + fast_fit_resultsGPU_.get(), + 4, + offset); + cudaCheck(cudaGetLastError()); + + if (fit5as4_) { + // fit penta (only first 4) + kernel_BLFastFit<4><<>>( + tuples_, tupleMultiplicity_, hv, hitsGPU_.get(), hits_geGPU_.get(), fast_fit_resultsGPU_.get(), 5, offset); + cudaCheck(cudaGetLastError()); + + kernel_BLFit<4><<>>(tupleMultiplicity_, + bField_, + outputSoa_, + hitsGPU_.get(), + hits_geGPU_.get(), + fast_fit_resultsGPU_.get(), + 5, + offset); + cudaCheck(cudaGetLastError()); + } else { + // fit penta (all 5) + kernel_BLFastFit<5><<>>( + tuples_, tupleMultiplicity_, hv, hitsGPU_.get(), hits_geGPU_.get(), fast_fit_resultsGPU_.get(), 5, offset); + cudaCheck(cudaGetLastError()); + + kernel_BLFit<5><<>>(tupleMultiplicity_, + bField_, + outputSoa_, + hitsGPU_.get(), + hits_geGPU_.get(), + fast_fit_resultsGPU_.get(), + 5, + offset); + cudaCheck(cudaGetLastError()); + } + + } // loop on concurrent fits +} diff --git a/RecoPixelVertexing/PixelTriplets/plugins/BrokenLineFitOnGPU.h b/RecoPixelVertexing/PixelTriplets/plugins/BrokenLineFitOnGPU.h new file mode 100644 index 0000000000000..87e93e6f0bd05 --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/plugins/BrokenLineFitOnGPU.h @@ -0,0 +1,184 @@ +// +// Author: Felice Pantaleo, CERN +// + +// #define BROKENLINE_DEBUG + +#include + +#include + +#include "CUDADataFormats/TrackingRecHit/interface/TrackingRecHit2DHeterogeneous.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cuda_assert.h" +#include "RecoLocalTracker/SiPixelRecHits/interface/pixelCPEforGPU.h" +#include "RecoPixelVertexing/PixelTrackFitting/interface/BrokenLine.h" + +#include "HelixFitOnGPU.h" + +using HitsOnGPU = TrackingRecHit2DSOAView; +using Tuples = pixelTrack::HitContainer; +using OutputSoA = pixelTrack::TrackSoA; + +// #define BL_DUMP_HITS + +template +__global__ void kernel_BLFastFit(Tuples const *__restrict__ foundNtuplets, + caConstants::TupleMultiplicity const *__restrict__ tupleMultiplicity, + HitsOnGPU const *__restrict__ hhp, + double *__restrict__ phits, + float *__restrict__ phits_ge, + double *__restrict__ pfast_fit, + uint32_t nHits, + uint32_t offset) { + constexpr uint32_t hitsInFit = N; + + assert(hitsInFit <= nHits); + + assert(hhp); + assert(pfast_fit); + assert(foundNtuplets); + assert(tupleMultiplicity); + + // look in bin for this hit multiplicity + auto local_start = blockIdx.x * blockDim.x + threadIdx.x; + +#ifdef BROKENLINE_DEBUG + if (0 == local_start) { + printf("%d total Ntuple\n", foundNtuplets->nOnes()); + printf("%d Ntuple of size %d for %d hits to fit\n", tupleMultiplicity->size(nHits), nHits, hitsInFit); + } +#endif + + for (int local_idx = local_start, nt = riemannFit::maxNumberOfConcurrentFits; local_idx < nt; + local_idx += gridDim.x * blockDim.x) { + auto tuple_idx = local_idx + offset; + if (tuple_idx >= tupleMultiplicity->size(nHits)) + break; + + // get it from the ntuple container (one to one to helix) + auto tkid = *(tupleMultiplicity->begin(nHits) + tuple_idx); + assert(tkid < foundNtuplets->nOnes()); + + assert(foundNtuplets->size(tkid) == nHits); + + riemannFit::Map3xNd hits(phits + local_idx); + riemannFit::Map4d fast_fit(pfast_fit + local_idx); + riemannFit::Map6xNf hits_ge(phits_ge + local_idx); + +#ifdef BL_DUMP_HITS + __shared__ int done; + done = 0; + __syncthreads(); + bool dump = (foundNtuplets->size(tkid) == 5 && 0 == atomicAdd(&done, 1)); +#endif + + // Prepare data structure + auto const *hitId = foundNtuplets->begin(tkid); + for (unsigned int i = 0; i < hitsInFit; ++i) { + auto hit = hitId[i]; + float ge[6]; + hhp->cpeParams() + .detParams(hhp->detectorIndex(hit)) + .frame.toGlobal(hhp->xerrLocal(hit), 0, hhp->yerrLocal(hit), ge); +#ifdef BL_DUMP_HITS + if (dump) { + printf("Hit global: %d: %d hits.col(%d) << %f,%f,%f\n", + tkid, + hhp->detectorIndex(hit), + i, + hhp->xGlobal(hit), + hhp->yGlobal(hit), + hhp->zGlobal(hit)); + printf("Error: %d: %d hits_ge.col(%d) << %e,%e,%e,%e,%e,%e\n", + tkid, + hhp->detetectorIndex(hit), + i, + ge[0], + ge[1], + ge[2], + ge[3], + ge[4], + ge[5]); + } +#endif + hits.col(i) << hhp->xGlobal(hit), hhp->yGlobal(hit), hhp->zGlobal(hit); + hits_ge.col(i) << ge[0], ge[1], ge[2], ge[3], ge[4], ge[5]; + } + brokenline::fastFit(hits, fast_fit); + + // no NaN here.... + assert(fast_fit(0) == fast_fit(0)); + assert(fast_fit(1) == fast_fit(1)); + assert(fast_fit(2) == fast_fit(2)); + assert(fast_fit(3) == fast_fit(3)); + } +} + +template +__global__ void kernel_BLFit(caConstants::TupleMultiplicity const *__restrict__ tupleMultiplicity, + double bField, + OutputSoA *results, + double *__restrict__ phits, + float *__restrict__ phits_ge, + double *__restrict__ pfast_fit, + uint32_t nHits, + uint32_t offset) { + assert(N <= nHits); + + assert(results); + assert(pfast_fit); + + // same as above... + + // look in bin for this hit multiplicity + auto local_start = blockIdx.x * blockDim.x + threadIdx.x; + for (int local_idx = local_start, nt = riemannFit::maxNumberOfConcurrentFits; local_idx < nt; + local_idx += gridDim.x * blockDim.x) { + auto tuple_idx = local_idx + offset; + if (tuple_idx >= tupleMultiplicity->size(nHits)) + break; + + // get it for the ntuple container (one to one to helix) + auto tkid = *(tupleMultiplicity->begin(nHits) + tuple_idx); + + riemannFit::Map3xNd hits(phits + local_idx); + riemannFit::Map4d fast_fit(pfast_fit + local_idx); + riemannFit::Map6xNf hits_ge(phits_ge + local_idx); + + brokenline::PreparedBrokenLineData data; + + brokenline::karimaki_circle_fit circle; + riemannFit::LineFit line; + + brokenline::prepareBrokenLineData(hits, fast_fit, bField, data); + brokenline::lineFit(hits_ge, fast_fit, bField, data, line); + brokenline::circleFit(hits, hits_ge, fast_fit, bField, data, circle); + + results->stateAtBS.copyFromCircle(circle.par, circle.cov, line.par, line.cov, 1.f / float(bField), tkid); + results->pt(tkid) = float(bField) / float(std::abs(circle.par(2))); + results->eta(tkid) = asinhf(line.par(0)); + results->chi2(tkid) = (circle.chi2 + line.chi2) / (2 * N - 5); + +#ifdef BROKENLINE_DEBUG + if (!(circle.chi2 >= 0) || !(line.chi2 >= 0)) + printf("kernelBLFit failed! %f/%f\n", circle.chi2, line.chi2); + printf("kernelBLFit size %d for %d hits circle.par(0,1,2): %d %f,%f,%f\n", + N, + nHits, + tkid, + circle.par(0), + circle.par(1), + circle.par(2)); + printf("kernelBLHits line.par(0,1): %d %f,%f\n", tkid, line.par(0), line.par(1)); + printf("kernelBLHits chi2 cov %f/%f %e,%e,%e,%e,%e\n", + circle.chi2, + line.chi2, + circle.cov(0, 0), + circle.cov(1, 1), + circle.cov(2, 2), + line.cov(0, 0), + line.cov(1, 1)); +#endif + } +} diff --git a/RecoPixelVertexing/PixelTriplets/plugins/BuildFile.xml b/RecoPixelVertexing/PixelTriplets/plugins/BuildFile.xml index f76451675de59..3a54cd1134bc2 100644 --- a/RecoPixelVertexing/PixelTriplets/plugins/BuildFile.xml +++ b/RecoPixelVertexing/PixelTriplets/plugins/BuildFile.xml @@ -1,10 +1,14 @@ + + + + + + + - + - - - diff --git a/RecoPixelVertexing/PixelTriplets/plugins/CAConstants.h b/RecoPixelVertexing/PixelTriplets/plugins/CAConstants.h new file mode 100644 index 0000000000000..8ea536465814c --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/plugins/CAConstants.h @@ -0,0 +1,82 @@ +#ifndef RecoPixelVertexing_PixelTriplets_plugins_CAConstants_h +#define RecoPixelVertexing_PixelTriplets_plugins_CAConstants_h + +#include + +#include + +#include "CUDADataFormats/SiPixelCluster/interface/gpuClusteringConstants.h" +#include "HeterogeneousCore/CUDAUtilities/interface/SimpleVector.h" +#include "HeterogeneousCore/CUDAUtilities/interface/VecArray.h" +#include "HeterogeneousCore/CUDAUtilities/interface/HistoContainer.h" + +//#define ONLY_PHICUT + +// Cellular automaton constants +namespace caConstants { + + // constants +#ifdef ONLY_PHICUT + constexpr uint32_t maxCellNeighbors = 64; + constexpr uint32_t maxCellTracks = 64; + constexpr uint32_t maxNumberOfTuples = 48 * 1024; + constexpr uint32_t maxNumberOfDoublets = 2 * 1024 * 1024; + constexpr uint32_t maxCellsPerHit = 8 * 128; +#else // ONLY_PHICUT + constexpr uint32_t maxCellNeighbors = 36; + constexpr uint32_t maxCellTracks = 48; +#ifdef GPU_SMALL_EVENTS + // kept for testing and debugging + constexpr uint32_t maxNumberOfTuples = 3 * 1024; + constexpr uint32_t maxNumberOfDoublets = 128 * 1024; + constexpr uint32_t maxCellsPerHit = 128 / 2; +#else // GPU_SMALL_EVENTS + // tested on MC events with 55-75 pileup events + constexpr uint32_t maxNumberOfTuples = 24 * 1024; + constexpr uint32_t maxNumberOfDoublets = 512 * 1024; + constexpr uint32_t maxCellsPerHit = 128; +#endif // GPU_SMALL_EVENTS +#endif // ONLY_PHICUT + constexpr uint32_t maxNumOfActiveDoublets = maxNumberOfDoublets / 8; + constexpr uint32_t maxNumberOfQuadruplets = maxNumberOfTuples; + + constexpr uint32_t maxNumberOfLayerPairs = 20; + constexpr uint32_t maxNumberOfLayers = 10; + constexpr uint32_t maxTuples = maxNumberOfTuples; + + // Modules constants + constexpr uint32_t max_ladder_bpx0 = 12; + constexpr uint32_t first_ladder_bpx0 = 0; + constexpr float module_length_bpx0 = 6.7f; + constexpr float module_tolerance_bpx0 = 0.4f; // projection to cylinder is inaccurate on BPIX1 + constexpr uint32_t max_ladder_bpx4 = 64; + constexpr uint32_t first_ladder_bpx4 = 84; + constexpr float radius_even_ladder = 15.815f; + constexpr float radius_odd_ladder = 16.146f; + constexpr float module_length_bpx4 = 6.7f; + constexpr float module_tolerance_bpx4 = 0.2f; + constexpr float barrel_z_length = 26.f; + constexpr float forward_z_begin = 32.f; + + // Last indexes + constexpr uint32_t last_bpix1_detIndex = 96; + constexpr uint32_t last_barrel_detIndex = 1184; + + // types + using hindex_type = uint32_t; // FIXME from siPixelRecHitsHeterogeneousProduct + using tindex_type = uint16_t; // for tuples + + using CellNeighbors = cms::cuda::VecArray; + using CellTracks = cms::cuda::VecArray; + + using CellNeighborsVector = cms::cuda::SimpleVector; + using CellTracksVector = cms::cuda::SimpleVector; + + using OuterHitOfCell = cms::cuda::VecArray; + using TuplesContainer = cms::cuda::OneToManyAssoc; + using HitToTuple = cms::cuda::OneToManyAssoc; // 3.5 should be enough + using TupleMultiplicity = cms::cuda::OneToManyAssoc; + +} // namespace caConstants + +#endif // RecoPixelVertexing_PixelTriplets_plugins_CAConstants_h diff --git a/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletCUDA.cc b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletCUDA.cc new file mode 100644 index 0000000000000..beba54c33f513 --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletCUDA.cc @@ -0,0 +1,83 @@ +#include + +#include "CUDADataFormats/Common/interface/Product.h" +#include "DataFormats/Common/interface/Handle.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/global/EDProducer.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/Utilities/interface/InputTag.h" +#include "FWCore/PluginManager/interface/ModuleDef.h" +#include "FWCore/Utilities/interface/EDGetToken.h" +#include "FWCore/Utilities/interface/RunningAverage.h" +#include "HeterogeneousCore/CUDACore/interface/ScopedContext.h" +#include "RecoTracker/TkMSParametrization/interface/PixelRecoUtilities.h" + +#include "CAHitNtupletGeneratorOnGPU.h" +#include "CUDADataFormats/Track/interface/PixelTrackHeterogeneous.h" +#include "CUDADataFormats/TrackingRecHit/interface/TrackingRecHit2DHeterogeneous.h" + +class CAHitNtupletCUDA : public edm::global::EDProducer<> { +public: + explicit CAHitNtupletCUDA(const edm::ParameterSet& iConfig); + ~CAHitNtupletCUDA() override = default; + + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + +private: + void produce(edm::StreamID streamID, edm::Event& iEvent, const edm::EventSetup& iSetup) const override; + + bool onGPU_; + + edm::EDGetTokenT> tokenHitGPU_; + edm::EDPutTokenT> tokenTrackGPU_; + edm::EDGetTokenT tokenHitCPU_; + edm::EDPutTokenT tokenTrackCPU_; + + CAHitNtupletGeneratorOnGPU gpuAlgo_; +}; + +CAHitNtupletCUDA::CAHitNtupletCUDA(const edm::ParameterSet& iConfig) + : onGPU_(iConfig.getParameter("onGPU")), gpuAlgo_(iConfig, consumesCollector()) { + if (onGPU_) { + tokenHitGPU_ = + consumes>(iConfig.getParameter("pixelRecHitSrc")); + tokenTrackGPU_ = produces>(); + } else { + tokenHitCPU_ = consumes(iConfig.getParameter("pixelRecHitSrc")); + tokenTrackCPU_ = produces(); + } +} + +void CAHitNtupletCUDA::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + + desc.add("onGPU", true); + desc.add("pixelRecHitSrc", edm::InputTag("siPixelRecHitsPreSplittingCUDA")); + + CAHitNtupletGeneratorOnGPU::fillDescriptions(desc); + descriptions.add("caHitNtupletCUDA", desc); +} + +void CAHitNtupletCUDA::produce(edm::StreamID streamID, edm::Event& iEvent, const edm::EventSetup& es) const { + auto bf = 1. / PixelRecoUtilities::fieldInInvGev(es); + + if (onGPU_) { + auto hHits = iEvent.getHandle(tokenHitGPU_); + + cms::cuda::ScopedContextProduce ctx{*hHits}; + auto const& hits = ctx.get(*hHits); + + ctx.emplace(iEvent, tokenTrackGPU_, gpuAlgo_.makeTuplesAsync(hits, bf, ctx.stream())); + } else { + auto const& hits = iEvent.get(tokenHitCPU_); + iEvent.emplace(tokenTrackCPU_, gpuAlgo_.makeTuples(hits, bf)); + } +} + +DEFINE_FWK_MODULE(CAHitNtupletCUDA); diff --git a/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorKernels.cc b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorKernels.cc new file mode 100644 index 0000000000000..5a2157bf87b7c --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorKernels.cc @@ -0,0 +1,195 @@ +#include "RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorKernelsImpl.h" + +template <> +void CAHitNtupletGeneratorKernelsCPU::printCounters(Counters const *counters) { + kernel_printCounters(counters); +} + +template <> +void CAHitNtupletGeneratorKernelsCPU::fillHitDetIndices(HitsView const *hv, TkSoA *tracks_d, cudaStream_t) { + kernel_fillHitDetIndices(&tracks_d->hitIndices, hv, &tracks_d->detIndices); +} + +template <> +void CAHitNtupletGeneratorKernelsCPU::buildDoublets(HitsOnCPU const &hh, cudaStream_t stream) { + auto nhits = hh.nHits(); + +#ifdef NTUPLE_DEBUG + std::cout << "building Doublets out of " << nhits << " Hits" << std::endl; +#endif + + // use "nhits" to heuristically dimension the workspace + + // no need to use the Traits allocations, since we know this is being compiled for the CPU + //device_isOuterHitOfCell_ = Traits::template make_unique(std::max(1U, nhits), stream); + device_isOuterHitOfCell_ = std::make_unique(std::max(1U, nhits)); + assert(device_isOuterHitOfCell_.get()); + + auto cellStorageSize = caConstants::maxNumOfActiveDoublets * sizeof(GPUCACell::CellNeighbors) + + caConstants::maxNumOfActiveDoublets * sizeof(GPUCACell::CellTracks); + // no need to use the Traits allocations, since we know this is being compiled for the CPU + //cellStorage_ = Traits::template make_unique(cellStorageSize, stream); + cellStorage_ = std::make_unique(cellStorageSize); + device_theCellNeighborsContainer_ = (GPUCACell::CellNeighbors *)cellStorage_.get(); + device_theCellTracksContainer_ = (GPUCACell::CellTracks *)(cellStorage_.get() + caConstants::maxNumOfActiveDoublets * + sizeof(GPUCACell::CellNeighbors)); + + gpuPixelDoublets::initDoublets(device_isOuterHitOfCell_.get(), + nhits, + device_theCellNeighbors_.get(), + device_theCellNeighborsContainer_, + device_theCellTracks_.get(), + device_theCellTracksContainer_); + + // no need to use the Traits allocations, since we know this is being compiled for the CPU + //device_theCells_ = Traits::template make_unique(params_.maxNumberOfDoublets_, stream); + device_theCells_ = std::make_unique(params_.maxNumberOfDoublets_); + if (0 == nhits) + return; // protect against empty events + + // take all layer pairs into account + auto nActualPairs = gpuPixelDoublets::nPairs; + if (not params_.includeJumpingForwardDoublets_) { + // exclude forward "jumping" layer pairs + nActualPairs = gpuPixelDoublets::nPairsForTriplets; + } + if (params_.minHitsPerNtuplet_ > 3) { + // for quadruplets, exclude all "jumping" layer pairs + nActualPairs = gpuPixelDoublets::nPairsForQuadruplets; + } + + assert(nActualPairs <= gpuPixelDoublets::nPairs); + gpuPixelDoublets::getDoubletsFromHisto(device_theCells_.get(), + device_nCells_, + device_theCellNeighbors_.get(), + device_theCellTracks_.get(), + hh.view(), + device_isOuterHitOfCell_.get(), + nActualPairs, + params_.idealConditions_, + params_.doClusterCut_, + params_.doZ0Cut_, + params_.doPtCut_, + params_.maxNumberOfDoublets_); +} + +template <> +void CAHitNtupletGeneratorKernelsCPU::launchKernels(HitsOnCPU const &hh, TkSoA *tracks_d, cudaStream_t cudaStream) { + auto *tuples_d = &tracks_d->hitIndices; + auto *quality_d = tracks_d->qualityData(); + + assert(tuples_d && quality_d); + + // zero tuples + cms::cuda::launchZero(tuples_d, cudaStream); + + auto nhits = hh.nHits(); + + // std::cout << "N hits " << nhits << std::endl; + // if (nhits<2) std::cout << "too few hits " << nhits << std::endl; + + // + // applying conbinatoric cleaning such as fishbone at this stage is too expensive + // + + kernel_connect(device_hitTuple_apc_, + device_hitToTuple_apc_, // needed only to be reset, ready for next kernel + hh.view(), + device_theCells_.get(), + device_nCells_, + device_theCellNeighbors_.get(), + device_isOuterHitOfCell_.get(), + params_.hardCurvCut_, + params_.ptmin_, + params_.CAThetaCutBarrel_, + params_.CAThetaCutForward_, + params_.dcaCutInnerTriplet_, + params_.dcaCutOuterTriplet_); + + if (nhits > 1 && params_.earlyFishbone_) { + gpuPixelDoublets::fishbone( + hh.view(), device_theCells_.get(), device_nCells_, device_isOuterHitOfCell_.get(), nhits, false); + } + + kernel_find_ntuplets(hh.view(), + device_theCells_.get(), + device_nCells_, + device_theCellTracks_.get(), + tuples_d, + device_hitTuple_apc_, + quality_d, + params_.minHitsPerNtuplet_); + if (params_.doStats_) + kernel_mark_used(hh.view(), device_theCells_.get(), device_nCells_); + + cms::cuda::finalizeBulk(device_hitTuple_apc_, tuples_d); + + // remove duplicates (tracks that share a doublet) + kernel_earlyDuplicateRemover(device_theCells_.get(), device_nCells_, tuples_d, quality_d); + + kernel_countMultiplicity(tuples_d, quality_d, device_tupleMultiplicity_.get()); + cms::cuda::launchFinalize(device_tupleMultiplicity_.get(), cudaStream); + kernel_fillMultiplicity(tuples_d, quality_d, device_tupleMultiplicity_.get()); + + if (nhits > 1 && params_.lateFishbone_) { + gpuPixelDoublets::fishbone( + hh.view(), device_theCells_.get(), device_nCells_, device_isOuterHitOfCell_.get(), nhits, true); + } + + if (params_.doStats_) { + kernel_checkOverflows(tuples_d, + device_tupleMultiplicity_.get(), + device_hitToTuple_.get(), + device_hitTuple_apc_, + device_theCells_.get(), + device_nCells_, + device_theCellNeighbors_.get(), + device_theCellTracks_.get(), + device_isOuterHitOfCell_.get(), + nhits, + params_.maxNumberOfDoublets_, + counters_); + } +} + +template <> +void CAHitNtupletGeneratorKernelsCPU::classifyTuples(HitsOnCPU const &hh, TkSoA *tracks_d, cudaStream_t cudaStream) { + auto const *tuples_d = &tracks_d->hitIndices; + auto *quality_d = tracks_d->qualityData(); + + // classify tracks based on kinematics + kernel_classifyTracks(tuples_d, tracks_d, params_.cuts_, quality_d); + + if (params_.lateFishbone_) { + // apply fishbone cleaning to good tracks + kernel_fishboneCleaner(device_theCells_.get(), device_nCells_, quality_d); + } + + // remove duplicates (tracks that share a doublet) + kernel_fastDuplicateRemover(device_theCells_.get(), device_nCells_, tuples_d, tracks_d); + + // fill hit->track "map" + if (params_.doSharedHitCut_ || params_.doStats_) { + kernel_countHitInTracks(tuples_d, quality_d, device_hitToTuple_.get()); + cms::cuda::launchFinalize(hitToTupleView_, cudaStream); + kernel_fillHitInTracks(tuples_d, quality_d, device_hitToTuple_.get()); + } + + // remove duplicates (tracks that share a hit) + if (params_.doSharedHitCut_) { + kernel_sharedHitCleaner( + hh.view(), tuples_d, tracks_d, quality_d, params_.minHitsForSharingCut_, device_hitToTuple_.get()); + } + + if (params_.doStats_) { + // counters (add flag???) + kernel_doStatsForHitInTracks(device_hitToTuple_.get(), counters_); + kernel_doStatsForTracks(tuples_d, quality_d, counters_); + } + +#ifdef DUMP_GPU_TK_TUPLES + static std::atomic iev(0); + ++iev; + kernel_print_found_ntuplets(hh.view(), tuples_d, tracks_d, quality_d, device_hitToTuple_.get(), 100, iev); +#endif +} diff --git a/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorKernels.cu b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorKernels.cu new file mode 100644 index 0000000000000..ca334223f8fc7 --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorKernels.cu @@ -0,0 +1,324 @@ +#include "RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorKernelsImpl.h" + +template <> +void CAHitNtupletGeneratorKernelsGPU::fillHitDetIndices(HitsView const *hv, TkSoA *tracks_d, cudaStream_t cudaStream) { + auto blockSize = 128; + auto numberOfBlocks = (HitContainer::ctCapacity() + blockSize - 1) / blockSize; + + kernel_fillHitDetIndices<<>>( + &tracks_d->hitIndices, hv, &tracks_d->detIndices); + cudaCheck(cudaGetLastError()); +#ifdef GPU_DEBUG + cudaDeviceSynchronize(); + cudaCheck(cudaGetLastError()); +#endif +} + +template <> +void CAHitNtupletGeneratorKernelsGPU::launchKernels(HitsOnCPU const &hh, TkSoA *tracks_d, cudaStream_t cudaStream) { + // these are pointer on GPU! + auto *tuples_d = &tracks_d->hitIndices; + auto *quality_d = tracks_d->qualityData(); + + // zero tuples + cms::cuda::launchZero(tuples_d, cudaStream); + + auto nhits = hh.nHits(); + +#ifdef NTUPLE_DEBUG + std::cout << "start tuple building. N hits " << nhits << std::endl; + if (nhits < 2) + std::cout << "too few hits " << nhits << std::endl; +#endif + + // + // applying conbinatoric cleaning such as fishbone at this stage is too expensive + // + + auto nthTot = 64; + auto stride = 4; + auto blockSize = nthTot / stride; + auto numberOfBlocks = nDoubletBlocks(blockSize); + auto rescale = numberOfBlocks / 65536; + blockSize *= (rescale + 1); + numberOfBlocks = nDoubletBlocks(blockSize); + assert(numberOfBlocks < 65536); + assert(blockSize > 0 && 0 == blockSize % 16); + dim3 blks(1, numberOfBlocks, 1); + dim3 thrs(stride, blockSize, 1); + + kernel_connect<<>>( + device_hitTuple_apc_, + device_hitToTuple_apc_, // needed only to be reset, ready for next kernel + hh.view(), + device_theCells_.get(), + device_nCells_, + device_theCellNeighbors_.get(), + device_isOuterHitOfCell_.get(), + params_.hardCurvCut_, + params_.ptmin_, + params_.CAThetaCutBarrel_, + params_.CAThetaCutForward_, + params_.dcaCutInnerTriplet_, + params_.dcaCutOuterTriplet_); + cudaCheck(cudaGetLastError()); + + if (nhits > 1 && params_.earlyFishbone_) { + auto nthTot = 128; + auto stride = 16; + auto blockSize = nthTot / stride; + auto numberOfBlocks = (nhits + blockSize - 1) / blockSize; + dim3 blks(1, numberOfBlocks, 1); + dim3 thrs(stride, blockSize, 1); + gpuPixelDoublets::fishbone<<>>( + hh.view(), device_theCells_.get(), device_nCells_, device_isOuterHitOfCell_.get(), nhits, false); + cudaCheck(cudaGetLastError()); + } + + blockSize = 64; + numberOfBlocks = (3 * params_.maxNumberOfDoublets_ / 4 + blockSize - 1) / blockSize; + kernel_find_ntuplets<<>>(hh.view(), + device_theCells_.get(), + device_nCells_, + device_theCellTracks_.get(), + tuples_d, + device_hitTuple_apc_, + quality_d, + params_.minHitsPerNtuplet_); + cudaCheck(cudaGetLastError()); + + if (params_.doStats_) + kernel_mark_used<<>>(hh.view(), device_theCells_.get(), device_nCells_); + cudaCheck(cudaGetLastError()); + +#ifdef GPU_DEBUG + cudaDeviceSynchronize(); + cudaCheck(cudaGetLastError()); +#endif + + blockSize = 128; + numberOfBlocks = (HitContainer::ctNOnes() + blockSize - 1) / blockSize; + cms::cuda::finalizeBulk<<>>(device_hitTuple_apc_, tuples_d); + + // remove duplicates (tracks that share a doublet) + numberOfBlocks = nDoubletBlocks(blockSize); + kernel_earlyDuplicateRemover<<>>( + device_theCells_.get(), device_nCells_, tuples_d, quality_d); + cudaCheck(cudaGetLastError()); + + blockSize = 128; + numberOfBlocks = (3 * caConstants::maxTuples / 4 + blockSize - 1) / blockSize; + kernel_countMultiplicity<<>>( + tuples_d, quality_d, device_tupleMultiplicity_.get()); + cms::cuda::launchFinalize(device_tupleMultiplicity_.get(), cudaStream); + kernel_fillMultiplicity<<>>( + tuples_d, quality_d, device_tupleMultiplicity_.get()); + cudaCheck(cudaGetLastError()); + + if (nhits > 1 && params_.lateFishbone_) { + auto nthTot = 128; + auto stride = 16; + auto blockSize = nthTot / stride; + auto numberOfBlocks = (nhits + blockSize - 1) / blockSize; + dim3 blks(1, numberOfBlocks, 1); + dim3 thrs(stride, blockSize, 1); + gpuPixelDoublets::fishbone<<>>( + hh.view(), device_theCells_.get(), device_nCells_, device_isOuterHitOfCell_.get(), nhits, true); + cudaCheck(cudaGetLastError()); + } + +#ifdef GPU_DEBUG + cudaDeviceSynchronize(); + cudaCheck(cudaGetLastError()); +#endif + + // free space asap + // device_isOuterHitOfCell_.reset(); +} + +template <> +void CAHitNtupletGeneratorKernelsGPU::buildDoublets(HitsOnCPU const &hh, cudaStream_t stream) { + int32_t nhits = hh.nHits(); + +#ifdef NTUPLE_DEBUG + std::cout << "building Doublets out of " << nhits << " Hits" << std::endl; +#endif + +#ifdef GPU_DEBUG + cudaDeviceSynchronize(); + cudaCheck(cudaGetLastError()); +#endif + + // in principle we can use "nhits" to heuristically dimension the workspace... + device_isOuterHitOfCell_ = cms::cuda::make_device_unique(std::max(1, nhits), stream); + assert(device_isOuterHitOfCell_.get()); + + cellStorage_ = cms::cuda::make_device_unique( + caConstants::maxNumOfActiveDoublets * sizeof(GPUCACell::CellNeighbors) + + caConstants::maxNumOfActiveDoublets * sizeof(GPUCACell::CellTracks), + stream); + device_theCellNeighborsContainer_ = (GPUCACell::CellNeighbors *)cellStorage_.get(); + device_theCellTracksContainer_ = (GPUCACell::CellTracks *)(cellStorage_.get() + caConstants::maxNumOfActiveDoublets * + sizeof(GPUCACell::CellNeighbors)); + + { + int threadsPerBlock = 128; + // at least one block! + int blocks = (std::max(1, nhits) + threadsPerBlock - 1) / threadsPerBlock; + gpuPixelDoublets::initDoublets<<>>(device_isOuterHitOfCell_.get(), + nhits, + device_theCellNeighbors_.get(), + device_theCellNeighborsContainer_, + device_theCellTracks_.get(), + device_theCellTracksContainer_); + cudaCheck(cudaGetLastError()); + } + + device_theCells_ = cms::cuda::make_device_unique(params_.maxNumberOfDoublets_, stream); + +#ifdef GPU_DEBUG + cudaDeviceSynchronize(); + cudaCheck(cudaGetLastError()); +#endif + + if (0 == nhits) + return; // protect against empty events + + // take all layer pairs into account + auto nActualPairs = gpuPixelDoublets::nPairs; + if (not params_.includeJumpingForwardDoublets_) { + // exclude forward "jumping" layer pairs + nActualPairs = gpuPixelDoublets::nPairsForTriplets; + } + if (params_.minHitsPerNtuplet_ > 3) { + // for quadruplets, exclude all "jumping" layer pairs + nActualPairs = gpuPixelDoublets::nPairsForQuadruplets; + } + + assert(nActualPairs <= gpuPixelDoublets::nPairs); + int stride = 4; + int threadsPerBlock = gpuPixelDoublets::getDoubletsFromHistoMaxBlockSize / stride; + int blocks = (4 * nhits + threadsPerBlock - 1) / threadsPerBlock; + dim3 blks(1, blocks, 1); + dim3 thrs(stride, threadsPerBlock, 1); + gpuPixelDoublets::getDoubletsFromHisto<<>>(device_theCells_.get(), + device_nCells_, + device_theCellNeighbors_.get(), + device_theCellTracks_.get(), + hh.view(), + device_isOuterHitOfCell_.get(), + nActualPairs, + params_.idealConditions_, + params_.doClusterCut_, + params_.doZ0Cut_, + params_.doPtCut_, + params_.maxNumberOfDoublets_); + cudaCheck(cudaGetLastError()); + +#ifdef GPU_DEBUG + cudaDeviceSynchronize(); + cudaCheck(cudaGetLastError()); +#endif +} + +template <> +void CAHitNtupletGeneratorKernelsGPU::classifyTuples(HitsOnCPU const &hh, TkSoA *tracks_d, cudaStream_t cudaStream) { + // these are pointer on GPU! + auto const *tuples_d = &tracks_d->hitIndices; + auto *quality_d = tracks_d->qualityData(); + + int32_t nhits = hh.nHits(); + + auto blockSize = 64; + + // classify tracks based on kinematics + auto numberOfBlocks = nQuadrupletBlocks(blockSize); + kernel_classifyTracks<<>>(tuples_d, tracks_d, params_.cuts_, quality_d); + cudaCheck(cudaGetLastError()); + + if (params_.lateFishbone_) { + // apply fishbone cleaning to good tracks + numberOfBlocks = nDoubletBlocks(blockSize); + kernel_fishboneCleaner<<>>( + device_theCells_.get(), device_nCells_, quality_d); + cudaCheck(cudaGetLastError()); + } + + // remove duplicates (tracks that share a doublet) + numberOfBlocks = nDoubletBlocks(blockSize); + kernel_fastDuplicateRemover<<>>( + device_theCells_.get(), device_nCells_, tuples_d, tracks_d); + cudaCheck(cudaGetLastError()); +#ifdef GPU_DEBUG + cudaCheck(cudaDeviceSynchronize()); +#endif + + if (params_.minHitsPerNtuplet_ < 4 || params_.doStats_) { + // fill hit->track "map" + assert(hitToTupleView_.offSize > nhits); + numberOfBlocks = nQuadrupletBlocks(blockSize); + kernel_countHitInTracks<<>>( + tuples_d, quality_d, device_hitToTuple_.get()); + cudaCheck(cudaGetLastError()); + assert((hitToTupleView_.assoc == device_hitToTuple_.get()) && + (hitToTupleView_.offStorage == device_hitToTupleStorage_.get()) && (hitToTupleView_.offSize > 0)); + cms::cuda::launchFinalize(hitToTupleView_, cudaStream); + cudaCheck(cudaGetLastError()); + kernel_fillHitInTracks<<>>(tuples_d, quality_d, device_hitToTuple_.get()); + cudaCheck(cudaGetLastError()); +#ifdef GPU_DEBUG + cudaCheck(cudaDeviceSynchronize()); +#endif + } + + if (params_.doSharedHitCut_) { + // remove duplicates (tracks that share a hit) + numberOfBlocks = (hitToTupleView_.offSize + blockSize - 1) / blockSize; + kernel_sharedHitCleaner<<>>( + hh.view(), tuples_d, tracks_d, quality_d, params_.minHitsForSharingCut_, device_hitToTuple_.get()); + cudaCheck(cudaGetLastError()); + } + + if (params_.doStats_) { + numberOfBlocks = (std::max(nhits, int(params_.maxNumberOfDoublets_)) + blockSize - 1) / blockSize; + kernel_checkOverflows<<>>(tuples_d, + device_tupleMultiplicity_.get(), + device_hitToTuple_.get(), + device_hitTuple_apc_, + device_theCells_.get(), + device_nCells_, + device_theCellNeighbors_.get(), + device_theCellTracks_.get(), + device_isOuterHitOfCell_.get(), + nhits, + params_.maxNumberOfDoublets_, + counters_); + cudaCheck(cudaGetLastError()); + } + + if (params_.doStats_) { + // counters (add flag???) + numberOfBlocks = (hitToTupleView_.offSize + blockSize - 1) / blockSize; + kernel_doStatsForHitInTracks<<>>(device_hitToTuple_.get(), counters_); + cudaCheck(cudaGetLastError()); + numberOfBlocks = (3 * caConstants::maxNumberOfQuadruplets / 4 + blockSize - 1) / blockSize; + kernel_doStatsForTracks<<>>(tuples_d, quality_d, counters_); + cudaCheck(cudaGetLastError()); + } +#ifdef GPU_DEBUG + cudaDeviceSynchronize(); + cudaCheck(cudaGetLastError()); +#endif + +#ifdef DUMP_GPU_TK_TUPLES + static std::atomic iev(0); + ++iev; + kernel_print_found_ntuplets<<<1, 32, 0, cudaStream>>>( + hh.view(), tuples_d, tracks_d, quality_d, device_hitToTuple_.get(), 100, iev); +#endif +} + +template <> +void CAHitNtupletGeneratorKernelsGPU::printCounters(Counters const *counters) { + kernel_printCounters<<<1, 1>>>(counters); +} diff --git a/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorKernels.h b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorKernels.h new file mode 100644 index 0000000000000..f5c2755ea8ac6 --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorKernels.h @@ -0,0 +1,235 @@ +#ifndef RecoPixelVertexing_PixelTriplets_plugins_CAHitNtupletGeneratorKernels_h +#define RecoPixelVertexing_PixelTriplets_plugins_CAHitNtupletGeneratorKernels_h + +// #define GPU_DEBUG + +#include "CUDADataFormats/Track/interface/PixelTrackHeterogeneous.h" +#include "GPUCACell.h" + +// #define DUMP_GPU_TK_TUPLES + +namespace cAHitNtupletGenerator { + + // counters + struct Counters { + unsigned long long nEvents; + unsigned long long nHits; + unsigned long long nCells; + unsigned long long nTuples; + unsigned long long nFitTracks; + unsigned long long nGoodTracks; + unsigned long long nUsedHits; + unsigned long long nDupHits; + unsigned long long nKilledCells; + unsigned long long nEmptyCells; + unsigned long long nZeroTrackCells; + }; + + using HitsView = TrackingRecHit2DSOAView; + using HitsOnGPU = TrackingRecHit2DSOAView; + + using HitToTuple = caConstants::HitToTuple; + using TupleMultiplicity = caConstants::TupleMultiplicity; + + using Quality = pixelTrack::Quality; + using TkSoA = pixelTrack::TrackSoA; + using HitContainer = pixelTrack::HitContainer; + + struct QualityCuts { + // chi2 cut = chi2Scale * (chi2Coeff[0] + pT/GeV * (chi2Coeff[1] + pT/GeV * (chi2Coeff[2] + pT/GeV * chi2Coeff[3]))) + float chi2Coeff[4]; + float chi2MaxPt; // GeV + float chi2Scale; + + struct Region { + float maxTip; // cm + float minPt; // GeV + float maxZip; // cm + }; + + Region triplet; + Region quadruplet; + }; + + // params + struct Params { + Params(bool onGPU, + uint32_t minHitsPerNtuplet, + uint32_t maxNumberOfDoublets, + uint16_t minHitsForSharingCuts, + bool useRiemannFit, + bool fit5as4, + bool includeJumpingForwardDoublets, + bool earlyFishbone, + bool lateFishbone, + bool idealConditions, + bool doStats, + bool doClusterCut, + bool doZ0Cut, + bool doPtCut, + bool doSharedHitCut, + float ptmin, + float CAThetaCutBarrel, + float CAThetaCutForward, + float hardCurvCut, + float dcaCutInnerTriplet, + float dcaCutOuterTriplet, + + QualityCuts const& cuts) + : onGPU_(onGPU), + minHitsPerNtuplet_(minHitsPerNtuplet), + maxNumberOfDoublets_(maxNumberOfDoublets), + minHitsForSharingCut_(minHitsForSharingCuts), + useRiemannFit_(useRiemannFit), + fit5as4_(fit5as4), + includeJumpingForwardDoublets_(includeJumpingForwardDoublets), + earlyFishbone_(earlyFishbone), + lateFishbone_(lateFishbone), + idealConditions_(idealConditions), + doStats_(doStats), + doClusterCut_(doClusterCut), + doZ0Cut_(doZ0Cut), + doPtCut_(doPtCut), + doSharedHitCut_(doSharedHitCut), + ptmin_(ptmin), + CAThetaCutBarrel_(CAThetaCutBarrel), + CAThetaCutForward_(CAThetaCutForward), + hardCurvCut_(hardCurvCut), + dcaCutInnerTriplet_(dcaCutInnerTriplet), + dcaCutOuterTriplet_(dcaCutOuterTriplet), + cuts_(cuts) {} + + const bool onGPU_; + const uint32_t minHitsPerNtuplet_; + const uint32_t maxNumberOfDoublets_; + const uint16_t minHitsForSharingCut_; + const bool useRiemannFit_; + const bool fit5as4_; + const bool includeJumpingForwardDoublets_; + const bool earlyFishbone_; + const bool lateFishbone_; + const bool idealConditions_; + const bool doStats_; + const bool doClusterCut_; + const bool doZ0Cut_; + const bool doPtCut_; + const bool doSharedHitCut_; + const float ptmin_; + const float CAThetaCutBarrel_; + const float CAThetaCutForward_; + const float hardCurvCut_; + const float dcaCutInnerTriplet_; + const float dcaCutOuterTriplet_; + + // quality cuts + QualityCuts cuts_{// polynomial coefficients for the pT-dependent chi2 cut + {0.68177776, 0.74609577, -0.08035491, 0.00315399}, + // max pT used to determine the chi2 cut + 10., + // chi2 scale factor: 30 for broken line fit, 45 for Riemann fit + 30., + // regional cuts for triplets + { + 0.3, // |Tip| < 0.3 cm + 0.5, // pT > 0.5 GeV + 12.0 // |Zip| < 12.0 cm + }, + // regional cuts for quadruplets + { + 0.5, // |Tip| < 0.5 cm + 0.3, // pT > 0.3 GeV + 12.0 // |Zip| < 12.0 cm + }}; + + }; // Params + +} // namespace cAHitNtupletGenerator + +template +class CAHitNtupletGeneratorKernels { +public: + using Traits = TTraits; + + using QualityCuts = cAHitNtupletGenerator::QualityCuts; + using Params = cAHitNtupletGenerator::Params; + using Counters = cAHitNtupletGenerator::Counters; + + template + using unique_ptr = typename Traits::template unique_ptr; + + using HitsView = TrackingRecHit2DSOAView; + using HitsOnGPU = TrackingRecHit2DSOAView; + using HitsOnCPU = TrackingRecHit2DHeterogeneous; + + using HitToTuple = caConstants::HitToTuple; + using TupleMultiplicity = caConstants::TupleMultiplicity; + + using Quality = pixelTrack::Quality; + using TkSoA = pixelTrack::TrackSoA; + using HitContainer = pixelTrack::HitContainer; + + CAHitNtupletGeneratorKernels(Params const& params) + : params_(params), paramsMaxDoubletes3Quarters_(3 * params.maxNumberOfDoublets_ / 4) {} + ~CAHitNtupletGeneratorKernels() = default; + + TupleMultiplicity const* tupleMultiplicity() const { return device_tupleMultiplicity_.get(); } + + void launchKernels(HitsOnCPU const& hh, TkSoA* tuples_d, cudaStream_t cudaStream); + + void classifyTuples(HitsOnCPU const& hh, TkSoA* tuples_d, cudaStream_t cudaStream); + + void fillHitDetIndices(HitsView const* hv, TkSoA* tuples_d, cudaStream_t cudaStream); + + void buildDoublets(HitsOnCPU const& hh, cudaStream_t stream); + void allocateOnGPU(int32_t nHits, cudaStream_t stream); + void cleanup(cudaStream_t cudaStream); + + static void printCounters(Counters const* counters); + void setCounters(Counters* counters) { counters_ = counters; } + +private: + Counters* counters_ = nullptr; + + // workspace + unique_ptr cellStorage_; + unique_ptr device_theCellNeighbors_; + caConstants::CellNeighbors* device_theCellNeighborsContainer_; + unique_ptr device_theCellTracks_; + caConstants::CellTracks* device_theCellTracksContainer_; + + unique_ptr device_theCells_; + unique_ptr device_isOuterHitOfCell_; + uint32_t* device_nCells_ = nullptr; + + unique_ptr device_hitToTuple_; + unique_ptr device_hitToTupleStorage_; + HitToTuple::View hitToTupleView_; + + cms::cuda::AtomicPairCounter* device_hitToTuple_apc_ = nullptr; + + cms::cuda::AtomicPairCounter* device_hitTuple_apc_ = nullptr; + + unique_ptr device_tupleMultiplicity_; + + unique_ptr device_storage_; + // params + Params const& params_; + /// Intermediate result avoiding repeated computations. + const uint32_t paramsMaxDoubletes3Quarters_; + /// Compute the number of doublet blocks for block size + inline uint32_t nDoubletBlocks(uint32_t blockSize) { + // We want (3 * params_.maxNumberOfDoublets_ / 4 + blockSize - 1) / blockSize, but first part is pre-computed. + return (paramsMaxDoubletes3Quarters_ + blockSize - 1) / blockSize; + } + + /// Compute the number of quadruplet blocks for block size + inline uint32_t nQuadrupletBlocks(uint32_t blockSize) { + // caConstants::maxNumberOfQuadruplets is a constexpr, so the compiler will pre compute the 3*max/4 + return (3 * caConstants::maxNumberOfQuadruplets / 4 + blockSize - 1) / blockSize; + } +}; + +using CAHitNtupletGeneratorKernelsGPU = CAHitNtupletGeneratorKernels; +using CAHitNtupletGeneratorKernelsCPU = CAHitNtupletGeneratorKernels; + +#endif // RecoPixelVertexing_PixelTriplets_plugins_CAHitNtupletGeneratorKernels_h diff --git a/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorKernelsAlloc.cc b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorKernelsAlloc.cc new file mode 100644 index 0000000000000..96381673388ca --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorKernelsAlloc.cc @@ -0,0 +1 @@ +#include "CAHitNtupletGeneratorKernelsAlloc.h" diff --git a/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorKernelsAlloc.cu b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorKernelsAlloc.cu new file mode 100644 index 0000000000000..96381673388ca --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorKernelsAlloc.cu @@ -0,0 +1 @@ +#include "CAHitNtupletGeneratorKernelsAlloc.h" diff --git a/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorKernelsAlloc.h b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorKernelsAlloc.h new file mode 100644 index 0000000000000..5978ef8851c73 --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorKernelsAlloc.h @@ -0,0 +1,50 @@ +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" + +#include "CAHitNtupletGeneratorKernels.h" + +template <> +#ifdef __CUDACC__ +void CAHitNtupletGeneratorKernelsGPU::allocateOnGPU(int32_t nHits, cudaStream_t stream) { +#else +void CAHitNtupletGeneratorKernelsCPU::allocateOnGPU(int32_t nHits, cudaStream_t stream) { +#endif + ////////////////////////////////////////////////////////// + // ALLOCATIONS FOR THE INTERMEDIATE RESULTS (STAYS ON WORKER) + ////////////////////////////////////////////////////////// + + device_theCellNeighbors_ = Traits::template make_unique(stream); + device_theCellTracks_ = Traits::template make_unique(stream); + +#ifdef GPU_DEBUG + std::cout << "Allocation for tuple building. N hits " << nHits << std::endl; +#endif + + nHits++; // storage requires one more counter; + assert(nHits > 0); + device_hitToTuple_ = Traits::template make_unique(stream); + device_hitToTupleStorage_ = Traits::template make_unique(nHits, stream); + hitToTupleView_.assoc = device_hitToTuple_.get(); + hitToTupleView_.offStorage = device_hitToTupleStorage_.get(); + hitToTupleView_.offSize = nHits; + + device_tupleMultiplicity_ = Traits::template make_unique(stream); + + device_storage_ = Traits::template make_unique(3, stream); + + device_hitTuple_apc_ = (cms::cuda::AtomicPairCounter*)device_storage_.get(); + device_hitToTuple_apc_ = (cms::cuda::AtomicPairCounter*)device_storage_.get() + 1; + device_nCells_ = (uint32_t*)(device_storage_.get() + 2); + + // FIXME: consider collapsing these 3 in one adhoc kernel + if constexpr (std::is_same::value) { + cudaCheck(cudaMemsetAsync(device_nCells_, 0, sizeof(uint32_t), stream)); + } else { + *device_nCells_ = 0; + } + cms::cuda::launchZero(device_tupleMultiplicity_.get(), stream); + cms::cuda::launchZero(hitToTupleView_, stream); // we may wish to keep it in the edm +#ifdef GPU_DEBUG + cudaDeviceSynchronize(); + cudaCheck(cudaGetLastError()); +#endif +} diff --git a/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorKernelsImpl.h b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorKernelsImpl.h new file mode 100644 index 0000000000000..550541fdca6fb --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorKernelsImpl.h @@ -0,0 +1,606 @@ +// +// Original Author: Felice Pantaleo, CERN +// + +// #define NTUPLE_DEBUG +// #define GPU_DEBUG + +#include +#include + +#include + +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cuda_assert.h" +#include "RecoLocalTracker/SiPixelRecHits/interface/pixelCPEforGPU.h" + +#include "CAConstants.h" +#include "CAHitNtupletGeneratorKernels.h" +#include "GPUCACell.h" +#include "gpuFishbone.h" +#include "gpuPixelDoublets.h" + +using HitsOnGPU = TrackingRecHit2DSOAView; +using HitsOnCPU = TrackingRecHit2DCUDA; + +using HitToTuple = caConstants::HitToTuple; +using TupleMultiplicity = caConstants::TupleMultiplicity; + +using Quality = pixelTrack::Quality; +using TkSoA = pixelTrack::TrackSoA; +using HitContainer = pixelTrack::HitContainer; + +__global__ void kernel_checkOverflows(HitContainer const *foundNtuplets, + caConstants::TupleMultiplicity const *tupleMultiplicity, + CAHitNtupletGeneratorKernelsGPU::HitToTuple const *hitToTuple, + cms::cuda::AtomicPairCounter *apc, + GPUCACell const *__restrict__ cells, + uint32_t const *__restrict__ nCells, + gpuPixelDoublets::CellNeighborsVector const *cellNeighbors, + gpuPixelDoublets::CellTracksVector const *cellTracks, + GPUCACell::OuterHitOfCell const *__restrict__ isOuterHitOfCell, + int32_t nHits, + uint32_t maxNumberOfDoublets, + CAHitNtupletGeneratorKernelsGPU::Counters *counters) { + auto first = threadIdx.x + blockIdx.x * blockDim.x; + + auto &c = *counters; + // counters once per event + if (0 == first) { + atomicAdd(&c.nEvents, 1); + atomicAdd(&c.nHits, nHits); + atomicAdd(&c.nCells, *nCells); + atomicAdd(&c.nTuples, apc->get().m); + atomicAdd(&c.nFitTracks, tupleMultiplicity->size()); + } + +#ifdef NTUPLE_DEBUG + if (0 == first) { + printf("number of found cells %d, found tuples %d with total hits %d out of %d %d\n", + *nCells, + apc->get().m, + apc->get().n, + nHits, + hitToTuple->totOnes()); + if (apc->get().m < caConstants::maxNumberOfQuadruplets()) { + assert(foundNtuplets->size(apc->get().m) == 0); + assert(foundNtuplets->size() == apc->get().n); + } + } + + for (int idx = first, nt = foundNtuplets->nOnes(); idx < nt; idx += gridDim.x * blockDim.x) { + if (foundNtuplets->size(idx) > 5) + printf("ERROR %d, %d\n", idx, foundNtuplets->size(idx)); + assert(foundNtuplets->size(idx) < 6); + for (auto ih = foundNtuplets->begin(idx); ih != foundNtuplets->end(idx); ++ih) + assert(int(*ih) < nHits); + } +#endif + + if (0 == first) { + if (apc->get().m >= caConstants::maxNumberOfQuadruplets) + printf("Tuples overflow\n"); + if (*nCells >= maxNumberOfDoublets) + printf("Cells overflow\n"); + if (cellNeighbors && cellNeighbors->full()) + printf("cellNeighbors overflow\n"); + if (cellTracks && cellTracks->full()) + printf("cellTracks overflow\n"); + if (int(hitToTuple->nOnes()) < nHits) + printf("ERROR hitToTuple overflow %d %d\n", hitToTuple->nOnes(), nHits); + } + + for (int idx = first, nt = (*nCells); idx < nt; idx += gridDim.x * blockDim.x) { + auto const &thisCell = cells[idx]; + if (thisCell.outerNeighbors().full()) //++tooManyNeighbors[thisCell.theLayerPairId]; + printf("OuterNeighbors overflow %d in %d\n", idx, thisCell.layerPairId()); + if (thisCell.tracks().full()) //++tooManyTracks[thisCell.theLayerPairId]; + printf("Tracks overflow %d in %d\n", idx, thisCell.layerPairId()); + if (thisCell.isKilled()) + atomicAdd(&c.nKilledCells, 1); + if (thisCell.unused()) + atomicAdd(&c.nEmptyCells, 1); + if (0 == hitToTuple->size(thisCell.inner_hit_id()) && 0 == hitToTuple->size(thisCell.outer_hit_id())) + atomicAdd(&c.nZeroTrackCells, 1); + } + + for (int idx = first, nt = nHits; idx < nt; idx += gridDim.x * blockDim.x) { + if (isOuterHitOfCell[idx].full()) // ++tooManyOuterHitOfCell; + printf("OuterHitOfCell overflow %d\n", idx); + } +} + +__global__ void kernel_fishboneCleaner(GPUCACell const *cells, uint32_t const *__restrict__ nCells, Quality *quality) { + constexpr auto bad = pixelTrack::Quality::bad; + + auto first = threadIdx.x + blockIdx.x * blockDim.x; + for (int idx = first, nt = (*nCells); idx < nt; idx += gridDim.x * blockDim.x) { + auto const &thisCell = cells[idx]; + if (!thisCell.isKilled()) + continue; + + for (auto it : thisCell.tracks()) + quality[it] = bad; + } +} + +__global__ void kernel_earlyDuplicateRemover(GPUCACell const *cells, + uint32_t const *__restrict__ nCells, + HitContainer *foundNtuplets, + Quality *quality) { + // constexpr auto bad = trackQuality::bad; + constexpr auto dup = pixelTrack::Quality::dup; + // constexpr auto loose = trackQuality::loose; + + assert(nCells); + auto first = threadIdx.x + blockIdx.x * blockDim.x; + for (int idx = first, nt = (*nCells); idx < nt; idx += gridDim.x * blockDim.x) { + auto const &thisCell = cells[idx]; + + if (thisCell.tracks().size() < 2) + continue; + //if (0==thisCell.theUsed) continue; + // if (thisCell.theDoubletId < 0) continue; + + uint32_t maxNh = 0; + + // find maxNh + for (auto it : thisCell.tracks()) { + auto nh = foundNtuplets->size(it); + maxNh = std::max(nh, maxNh); + } + + for (auto it : thisCell.tracks()) { + if (foundNtuplets->size(it) != maxNh) + quality[it] = dup; //no race: simple assignment of the same constant + } + } +} + +__global__ void kernel_fastDuplicateRemover(GPUCACell const *__restrict__ cells, + uint32_t const *__restrict__ nCells, + HitContainer const *__restrict__ foundNtuplets, + TkSoA *__restrict__ tracks) { + constexpr auto bad = pixelTrack::Quality::bad; + constexpr auto dup = pixelTrack::Quality::dup; + constexpr auto loose = pixelTrack::Quality::loose; + + assert(nCells); + + auto first = threadIdx.x + blockIdx.x * blockDim.x; + for (int idx = first, nt = (*nCells); idx < nt; idx += gridDim.x * blockDim.x) { + auto const &thisCell = cells[idx]; + if (thisCell.tracks().size() < 2) + continue; + // if (thisCell.theDoubletId < 0) continue; + + float mc = 10000.f; + uint16_t im = 60000; + + auto score = [&](auto it) { + return std::abs(tracks->tip(it)); // tip + // return tracks->chi2(it); //chi2 + }; + + // find min score + for (auto it : thisCell.tracks()) { + if (tracks->quality(it) == loose && score(it) < mc) { + mc = score(it); + im = it; + } + } + // mark all other duplicates + for (auto it : thisCell.tracks()) { + if (tracks->quality(it) != bad && it != im) + tracks->quality(it) = dup; //no race: simple assignment of the same constant + } + } +} + +__global__ void kernel_connect(cms::cuda::AtomicPairCounter *apc1, + cms::cuda::AtomicPairCounter *apc2, // just to zero them, + GPUCACell::Hits const *__restrict__ hhp, + GPUCACell *cells, + uint32_t const *__restrict__ nCells, + gpuPixelDoublets::CellNeighborsVector *cellNeighbors, + GPUCACell::OuterHitOfCell const *__restrict__ isOuterHitOfCell, + float hardCurvCut, + float ptmin, + float CAThetaCutBarrel, + float CAThetaCutForward, + float dcaCutInnerTriplet, + float dcaCutOuterTriplet) { + auto const &hh = *hhp; + + auto firstCellIndex = threadIdx.y + blockIdx.y * blockDim.y; + auto first = threadIdx.x; + auto stride = blockDim.x; + + if (0 == (firstCellIndex + first)) { + (*apc1) = 0; + (*apc2) = 0; + } // ready for next kernel + + for (int idx = firstCellIndex, nt = (*nCells); idx < nt; idx += gridDim.y * blockDim.y) { + auto cellIndex = idx; + auto &thisCell = cells[idx]; + auto innerHitId = thisCell.inner_hit_id(); + int numberOfPossibleNeighbors = isOuterHitOfCell[innerHitId].size(); + auto vi = isOuterHitOfCell[innerHitId].data(); + + auto ri = thisCell.inner_r(hh); + auto zi = thisCell.inner_z(hh); + + auto ro = thisCell.outer_r(hh); + auto zo = thisCell.outer_z(hh); + auto isBarrel = thisCell.inner_detIndex(hh) < caConstants::last_barrel_detIndex; + + for (int j = first; j < numberOfPossibleNeighbors; j += stride) { + auto otherCell = __ldg(vi + j); + auto &oc = cells[otherCell]; + auto r1 = oc.inner_r(hh); + auto z1 = oc.inner_z(hh); + bool aligned = GPUCACell::areAlignedRZ( + r1, + z1, + ri, + zi, + ro, + zo, + ptmin, + isBarrel ? CAThetaCutBarrel : CAThetaCutForward); // 2.f*thetaCut); // FIXME tune cuts + if (aligned && thisCell.dcaCut(hh, + oc, + oc.inner_detIndex(hh) < caConstants::last_bpix1_detIndex ? dcaCutInnerTriplet + : dcaCutOuterTriplet, + hardCurvCut)) { // FIXME tune cuts + oc.addOuterNeighbor(cellIndex, *cellNeighbors); + thisCell.setUsedBit(1); + oc.setUsedBit(1); + } + } // loop on inner cells + } // loop on outer cells +} + +__global__ void kernel_find_ntuplets(GPUCACell::Hits const *__restrict__ hhp, + GPUCACell *__restrict__ cells, + uint32_t const *nCells, + gpuPixelDoublets::CellTracksVector *cellTracks, + HitContainer *foundNtuplets, + cms::cuda::AtomicPairCounter *apc, + Quality *__restrict__ quality, + unsigned int minHitsPerNtuplet) { + // recursive: not obvious to widen + auto const &hh = *hhp; + + auto first = threadIdx.x + blockIdx.x * blockDim.x; + for (int idx = first, nt = (*nCells); idx < nt; idx += gridDim.x * blockDim.x) { + auto const &thisCell = cells[idx]; + if (thisCell.isKilled()) + continue; // cut by earlyFishbone + + auto pid = thisCell.layerPairId(); + auto doit = minHitsPerNtuplet > 3 ? pid < 3 : pid < 8 || pid > 12; + if (doit) { + GPUCACell::TmpTuple stack; + stack.reset(); + thisCell.find_ntuplets(hh, cells, *cellTracks, *foundNtuplets, *apc, quality, stack, minHitsPerNtuplet, pid < 3); + assert(stack.empty()); + // printf("in %d found quadruplets: %d\n", cellIndex, apc->get()); + } + } +} + +__global__ void kernel_mark_used(GPUCACell::Hits const *__restrict__ hhp, + GPUCACell *__restrict__ cells, + uint32_t const *nCells) { + auto first = threadIdx.x + blockIdx.x * blockDim.x; + for (int idx = first, nt = (*nCells); idx < nt; idx += gridDim.x * blockDim.x) { + auto &thisCell = cells[idx]; + if (!thisCell.tracks().empty()) + thisCell.setUsedBit(2); + } +} + +__global__ void kernel_countMultiplicity(HitContainer const *__restrict__ foundNtuplets, + Quality const *__restrict__ quality, + caConstants::TupleMultiplicity *tupleMultiplicity) { + auto first = blockIdx.x * blockDim.x + threadIdx.x; + for (int it = first, nt = foundNtuplets->nOnes(); it < nt; it += gridDim.x * blockDim.x) { + auto nhits = foundNtuplets->size(it); + if (nhits < 3) + continue; + if (quality[it] == pixelTrack::Quality::dup) + continue; + assert(quality[it] == pixelTrack::Quality::bad); + if (nhits > 5) + printf("wrong mult %d %d\n", it, nhits); + assert(nhits < 8); + tupleMultiplicity->count(nhits); + } +} + +__global__ void kernel_fillMultiplicity(HitContainer const *__restrict__ foundNtuplets, + Quality const *__restrict__ quality, + caConstants::TupleMultiplicity *tupleMultiplicity) { + auto first = blockIdx.x * blockDim.x + threadIdx.x; + for (int it = first, nt = foundNtuplets->nOnes(); it < nt; it += gridDim.x * blockDim.x) { + auto nhits = foundNtuplets->size(it); + if (nhits < 3) + continue; + if (quality[it] == pixelTrack::Quality::dup) + continue; + assert(quality[it] == pixelTrack::Quality::bad); + if (nhits > 5) + printf("wrong mult %d %d\n", it, nhits); + assert(nhits < 8); + tupleMultiplicity->fill(nhits, it); + } +} + +__global__ void kernel_classifyTracks(HitContainer const *__restrict__ tuples, + TkSoA const *__restrict__ tracks, + CAHitNtupletGeneratorKernelsGPU::QualityCuts cuts, + Quality *__restrict__ quality) { + int first = blockDim.x * blockIdx.x + threadIdx.x; + for (int it = first, nt = tuples->nOnes(); it < nt; it += gridDim.x * blockDim.x) { + auto nhits = tuples->size(it); + if (nhits == 0) + break; // guard + + // if duplicate: not even fit + if (quality[it] == pixelTrack::Quality::dup) + continue; + + assert(quality[it] == pixelTrack::Quality::bad); + + // mark doublets as bad + if (nhits < 3) + continue; + + // if the fit has any invalid parameters, mark it as bad + bool isNaN = false; + for (int i = 0; i < 5; ++i) { + isNaN |= std::isnan(tracks->stateAtBS.state(it)(i)); + } + if (isNaN) { +#ifdef NTUPLE_DEBUG + printf("NaN in fit %d size %d chi2 %f\n", it, tuples->size(it), tracks->chi2(it)); +#endif + continue; + } + + // compute a pT-dependent chi2 cut + // default parameters: + // - chi2MaxPt = 10 GeV + // - chi2Coeff = { 0.68177776, 0.74609577, -0.08035491, 0.00315399 } + // - chi2Scale = 30 for broken line fit, 45 for Riemann fit + // (see CAHitNtupletGeneratorGPU.cc) + float pt = std::min(tracks->pt(it), cuts.chi2MaxPt); + float chi2Cut = cuts.chi2Scale * + (cuts.chi2Coeff[0] + pt * (cuts.chi2Coeff[1] + pt * (cuts.chi2Coeff[2] + pt * cuts.chi2Coeff[3]))); + // above number were for Quads not normalized so for the time being just multiple by ndof for Quads (triplets to be understood) + if (3.f * tracks->chi2(it) >= chi2Cut) { +#ifdef NTUPLE_FIT_DEBUG + printf("Bad fit %d size %d pt %f eta %f chi2 %f\n", + it, + tuples->size(it), + tracks->pt(it), + tracks->eta(it), + 3.f * tracks->chi2(it)); +#endif + continue; + } + + // impose "region cuts" based on the fit results (phi, Tip, pt, cotan(theta)), Zip) + // default cuts: + // - for triplets: |Tip| < 0.3 cm, pT > 0.5 GeV, |Zip| < 12.0 cm + // - for quadruplets: |Tip| < 0.5 cm, pT > 0.3 GeV, |Zip| < 12.0 cm + // (see CAHitNtupletGeneratorGPU.cc) + auto const ®ion = (nhits > 3) ? cuts.quadruplet : cuts.triplet; + bool isOk = (std::abs(tracks->tip(it)) < region.maxTip) and (tracks->pt(it) > region.minPt) and + (std::abs(tracks->zip(it)) < region.maxZip); + + if (isOk) + quality[it] = pixelTrack::Quality::loose; + } +} + +__global__ void kernel_doStatsForTracks(HitContainer const *__restrict__ tuples, + Quality const *__restrict__ quality, + CAHitNtupletGeneratorKernelsGPU::Counters *counters) { + int first = blockDim.x * blockIdx.x + threadIdx.x; + for (int idx = first, ntot = tuples->nOnes(); idx < ntot; idx += gridDim.x * blockDim.x) { + if (tuples->size(idx) == 0) + break; //guard + if (quality[idx] != pixelTrack::Quality::loose) + continue; + atomicAdd(&(counters->nGoodTracks), 1); + } +} + +__global__ void kernel_countHitInTracks(HitContainer const *__restrict__ tuples, + Quality const *__restrict__ quality, + CAHitNtupletGeneratorKernelsGPU::HitToTuple *hitToTuple) { + int first = blockDim.x * blockIdx.x + threadIdx.x; + for (int idx = first, ntot = tuples->nOnes(); idx < ntot; idx += gridDim.x * blockDim.x) { + if (tuples->size(idx) == 0) + break; // guard + if (quality[idx] != pixelTrack::Quality::loose) + continue; + for (auto h = tuples->begin(idx); h != tuples->end(idx); ++h) + hitToTuple->count(*h); + } +} + +__global__ void kernel_fillHitInTracks(HitContainer const *__restrict__ tuples, + Quality const *__restrict__ quality, + CAHitNtupletGeneratorKernelsGPU::HitToTuple *hitToTuple) { + int first = blockDim.x * blockIdx.x + threadIdx.x; + for (int idx = first, ntot = tuples->nOnes(); idx < ntot; idx += gridDim.x * blockDim.x) { + if (tuples->size(idx) == 0) + break; // guard + if (quality[idx] != pixelTrack::Quality::loose) + continue; + for (auto h = tuples->begin(idx); h != tuples->end(idx); ++h) + hitToTuple->fill(*h, idx); + } +} + +__global__ void kernel_fillHitDetIndices(HitContainer const *__restrict__ tuples, + TrackingRecHit2DSOAView const *__restrict__ hhp, + HitContainer *__restrict__ hitDetIndices) { + int first = blockDim.x * blockIdx.x + threadIdx.x; + // copy offsets + for (int idx = first, ntot = tuples->totOnes(); idx < ntot; idx += gridDim.x * blockDim.x) { + hitDetIndices->off[idx] = tuples->off[idx]; + } + // fill hit indices + auto const &hh = *hhp; + auto nhits = hh.nHits(); + for (int idx = first, ntot = tuples->size(); idx < ntot; idx += gridDim.x * blockDim.x) { + assert(tuples->content[idx] < nhits); + hitDetIndices->content[idx] = hh.detectorIndex(tuples->content[idx]); + } +} + +__global__ void kernel_doStatsForHitInTracks(CAHitNtupletGeneratorKernelsGPU::HitToTuple const *__restrict__ hitToTuple, + CAHitNtupletGeneratorKernelsGPU::Counters *counters) { + auto &c = *counters; + int first = blockDim.x * blockIdx.x + threadIdx.x; + for (int idx = first, ntot = hitToTuple->nOnes(); idx < ntot; idx += gridDim.x * blockDim.x) { + if (hitToTuple->size(idx) == 0) + continue; // SHALL NOT BE break + atomicAdd(&c.nUsedHits, 1); + if (hitToTuple->size(idx) > 1) + atomicAdd(&c.nDupHits, 1); + } +} + +__global__ void kernel_sharedHitCleaner(TrackingRecHit2DSOAView const *__restrict__ hhp, + HitContainer const *__restrict__ ptuples, + TkSoA const *__restrict__ ptracks, + Quality *__restrict__ quality, + uint16_t nmin, + CAHitNtupletGeneratorKernelsGPU::HitToTuple const *__restrict__ phitToTuple) { + constexpr auto bad = pixelTrack::Quality::bad; + constexpr auto dup = pixelTrack::Quality::dup; + // constexpr auto loose = trackQuality::loose; + + auto &hitToTuple = *phitToTuple; + auto const &foundNtuplets = *ptuples; + auto const &tracks = *ptracks; + + auto const &hh = *hhp; + int l1end = hh.hitsLayerStart()[1]; + + int first = blockDim.x * blockIdx.x + threadIdx.x; + for (int idx = first, ntot = hitToTuple.nOnes(); idx < ntot; idx += gridDim.x * blockDim.x) { + if (hitToTuple.size(idx) < 2) + continue; + + float mc = 10000.f; + uint16_t im = 60000; + uint32_t maxNh = 0; + + // find maxNh + for (auto it = hitToTuple.begin(idx); it != hitToTuple.end(idx); ++it) { + uint32_t nh = foundNtuplets.size(*it); + maxNh = std::max(nh, maxNh); + } + // kill all tracks shorter than maxHn (only triplets???) + for (auto it = hitToTuple.begin(idx); it != hitToTuple.end(idx); ++it) { + uint32_t nh = foundNtuplets.size(*it); + + //checking if shared hit is on bpix1 and if the tuple is short enough + if (idx < l1end and nh > nmin) + continue; + + if (maxNh != nh) + quality[*it] = dup; + } + + if (maxNh > 3) + continue; + // for triplets choose best tip! + for (auto ip = hitToTuple.begin(idx); ip != hitToTuple.end(idx); ++ip) { + auto const it = *ip; + if (quality[it] != bad && std::abs(tracks.tip(it)) < mc) { + mc = std::abs(tracks.tip(it)); + im = it; + } + } + // mark duplicates + for (auto ip = hitToTuple.begin(idx); ip != hitToTuple.end(idx); ++ip) { + auto const it = *ip; + if (quality[it] != bad && it != im) + quality[it] = dup; //no race: simple assignment of the same constant + } + } // loop over hits +} + +__global__ void kernel_print_found_ntuplets(TrackingRecHit2DSOAView const *__restrict__ hhp, + HitContainer const *__restrict__ ptuples, + TkSoA const *__restrict__ ptracks, + Quality const *__restrict__ quality, + CAHitNtupletGeneratorKernelsGPU::HitToTuple const *__restrict__ phitToTuple, + int32_t maxPrint, + int iev) { + auto const &foundNtuplets = *ptuples; + auto const &tracks = *ptracks; + int first = blockDim.x * blockIdx.x + threadIdx.x; + for (int i = first, np = std::min(maxPrint, foundNtuplets.nOnes()); i < np; i += blockDim.x * gridDim.x) { + auto nh = foundNtuplets.size(i); + if (nh < 3) + continue; + printf("TK: %d %d %d %f %f %f %f %f %f %f %d %d %d %d %d\n", + 10000 * iev + i, + int(quality[i]), + nh, + tracks.charge(i), + tracks.pt(i), + tracks.eta(i), + tracks.phi(i), + tracks.tip(i), + tracks.zip(i), + // asinhf(fit_results[i].par(3)), + tracks.chi2(i), + *foundNtuplets.begin(i), + *(foundNtuplets.begin(i) + 1), + *(foundNtuplets.begin(i) + 2), + nh > 3 ? int(*(foundNtuplets.begin(i) + 3)) : -1, + nh > 4 ? int(*(foundNtuplets.begin(i) + 4)) : -1); + } +} + +__global__ void kernel_printCounters(cAHitNtupletGenerator::Counters const *counters) { + auto const &c = *counters; + printf( + "||Counters | nEvents | nHits | nCells | nTuples | nFitTacks | nGoodTracks | nUsedHits | nDupHits | " + "nKilledCells | " + "nEmptyCells | nZeroTrackCells ||\n"); + printf("Counters Raw %lld %lld %lld %lld %lld %lld %lld %lld %lld %lld %lld\n", + c.nEvents, + c.nHits, + c.nCells, + c.nTuples, + c.nGoodTracks, + c.nFitTracks, + c.nUsedHits, + c.nDupHits, + c.nKilledCells, + c.nEmptyCells, + c.nZeroTrackCells); + printf("Counters Norm %lld || %.1f| %.1f| %.1f| %.1f| %.1f| %.1f| %.1f| %.1f| %.3f| %.3f||\n", + c.nEvents, + c.nHits / double(c.nEvents), + c.nCells / double(c.nEvents), + c.nTuples / double(c.nEvents), + c.nFitTracks / double(c.nEvents), + c.nGoodTracks / double(c.nEvents), + c.nUsedHits / double(c.nEvents), + c.nDupHits / double(c.nEvents), + c.nKilledCells / double(c.nEvents), + c.nEmptyCells / double(c.nCells), + c.nZeroTrackCells / double(c.nCells)); +} diff --git a/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorOnGPU.cc b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorOnGPU.cc new file mode 100644 index 0000000000000..3f5ba1d04e7db --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorOnGPU.cc @@ -0,0 +1,246 @@ +// +// Original Author: Felice Pantaleo, CERN +// + +// #define GPU_DEBUG + +#include +#include +#include +#include + +#include "DataFormats/Common/interface/Handle.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/ServiceRegistry/interface/Service.h" +#include "FWCore/Utilities/interface/EDMException.h" +#include "FWCore/Utilities/interface/isFinite.h" +#include "HeterogeneousCore/CUDAServices/interface/CUDAService.h" +#include "TrackingTools/DetLayers/interface/BarrelDetLayer.h" + +#include "CAHitNtupletGeneratorOnGPU.h" + +namespace { + + template + T sqr(T x) { + return x * x; + } + + cAHitNtupletGenerator::QualityCuts makeQualityCuts(edm::ParameterSet const& pset) { + auto coeff = pset.getParameter>("chi2Coeff"); + if (coeff.size() != 4) { + throw edm::Exception(edm::errors::Configuration, + "CAHitNtupletGeneratorOnGPU.trackQualityCuts.chi2Coeff must have 4 elements"); + } + return cAHitNtupletGenerator::QualityCuts{// polynomial coefficients for the pT-dependent chi2 cut + {(float)coeff[0], (float)coeff[1], (float)coeff[2], (float)coeff[3]}, + // max pT used to determine the chi2 cut + (float)pset.getParameter("chi2MaxPt"), + // chi2 scale factor: 30 for broken line fit, 45 for Riemann fit + (float)pset.getParameter("chi2Scale"), + // regional cuts for triplets + {(float)pset.getParameter("tripletMaxTip"), + (float)pset.getParameter("tripletMinPt"), + (float)pset.getParameter("tripletMaxZip")}, + // regional cuts for quadruplets + {(float)pset.getParameter("quadrupletMaxTip"), + (float)pset.getParameter("quadrupletMinPt"), + (float)pset.getParameter("quadrupletMaxZip")}}; + } + +} // namespace + +using namespace std; + +CAHitNtupletGeneratorOnGPU::CAHitNtupletGeneratorOnGPU(const edm::ParameterSet& cfg, edm::ConsumesCollector& iC) + : m_params(cfg.getParameter("onGPU"), + cfg.getParameter("minHitsPerNtuplet"), + cfg.getParameter("maxNumberOfDoublets"), + cfg.getParameter("minHitsForSharingCut"), + cfg.getParameter("useRiemannFit"), + cfg.getParameter("fit5as4"), + cfg.getParameter("includeJumpingForwardDoublets"), + cfg.getParameter("earlyFishbone"), + cfg.getParameter("lateFishbone"), + cfg.getParameter("idealConditions"), + cfg.getParameter("fillStatistics"), + cfg.getParameter("doClusterCut"), + cfg.getParameter("doZ0Cut"), + cfg.getParameter("doPtCut"), + cfg.getParameter("doSharedHitCut"), + cfg.getParameter("ptmin"), + cfg.getParameter("CAThetaCutBarrel"), + cfg.getParameter("CAThetaCutForward"), + cfg.getParameter("hardCurvCut"), + cfg.getParameter("dcaCutInnerTriplet"), + cfg.getParameter("dcaCutOuterTriplet"), + makeQualityCuts(cfg.getParameterSet("trackQualityCuts"))) { +#ifdef DUMP_GPU_TK_TUPLES + printf("TK: %s %s % %s %s %s %s %s %s %s %s %s %s %s %s %s\n", + "tid", + "qual", + "nh", + "charge", + "pt", + "eta", + "phi", + "tip", + "zip", + "chi2", + "h1", + "h2", + "h3", + "h4", + "h5"); +#endif + + if (m_params.onGPU_) { + // allocate pinned host memory only if CUDA is available + edm::Service cs; + if (cs and cs->enabled()) { + cudaCheck(cudaMalloc(&m_counters, sizeof(Counters))); + cudaCheck(cudaMemset(m_counters, 0, sizeof(Counters))); + } + } else { + m_counters = new Counters(); + memset(m_counters, 0, sizeof(Counters)); + } +} + +CAHitNtupletGeneratorOnGPU::~CAHitNtupletGeneratorOnGPU() { + if (m_params.onGPU_) { + // print the gpu statistics and free pinned host memory only if CUDA is available + edm::Service cs; + if (cs and cs->enabled()) { + if (m_params.doStats_) { + // crash on multi-gpu processes + CAHitNtupletGeneratorKernelsGPU::printCounters(m_counters); + } + cudaFree(m_counters); + } + } else { + if (m_params.doStats_) { + CAHitNtupletGeneratorKernelsCPU::printCounters(m_counters); + } + delete m_counters; + } +} + +void CAHitNtupletGeneratorOnGPU::fillDescriptions(edm::ParameterSetDescription& desc) { + // 87 cm/GeV = 1/(3.8T * 0.3) + // take less than radius given by the hardPtCut and reject everything below + // auto hardCurvCut = 1.f/(0.35 * 87.f); + desc.add("ptmin", 0.9f)->setComment("Cut on minimum pt"); + desc.add("CAThetaCutBarrel", 0.002f)->setComment("Cut on RZ alignement for Barrel"); + desc.add("CAThetaCutForward", 0.003f)->setComment("Cut on RZ alignment for Forward"); + desc.add("hardCurvCut", 1.f / (0.35 * 87.f))->setComment("Cut on minimum curvature"); + desc.add("dcaCutInnerTriplet", 0.15f)->setComment("Cut on origin radius when the inner hit is on BPix1"); + desc.add("dcaCutOuterTriplet", 0.25f)->setComment("Cut on origin radius when the outer hit is on BPix1"); + desc.add("earlyFishbone", true); + desc.add("lateFishbone", false); + desc.add("idealConditions", true); + desc.add("fillStatistics", false); + desc.add("minHitsPerNtuplet", 4); + desc.add("maxNumberOfDoublets", caConstants::maxNumberOfDoublets); + desc.add("minHitsForSharingCut", 5) + ->setComment("Maximum number of hits in a tuple to clean also if the shared hit is on bpx1"); + desc.add("includeJumpingForwardDoublets", false); + desc.add("fit5as4", true); + desc.add("doClusterCut", true); + desc.add("doZ0Cut", true); + desc.add("doPtCut", true); + desc.add("useRiemannFit", false)->setComment("true for Riemann, false for BrokenLine"); + desc.add("doSharedHitCut", true)->setComment("Sharing hit nTuples cleaning"); + + edm::ParameterSetDescription trackQualityCuts; + trackQualityCuts.add("chi2MaxPt", 10.)->setComment("max pT used to determine the pT-dependent chi2 cut"); + trackQualityCuts.add>("chi2Coeff", {0.68177776, 0.74609577, -0.08035491, 0.00315399}) + ->setComment("Polynomial coefficients to derive the pT-dependent chi2 cut"); + trackQualityCuts.add("chi2Scale", 30.) + ->setComment( + "Factor to multiply the pT-dependent chi2 cut (currently: 30 for the broken line fit, 45 for the Riemann " + "fit)"); + trackQualityCuts.add("tripletMinPt", 0.5)->setComment("Min pT for triplets, in GeV"); + trackQualityCuts.add("tripletMaxTip", 0.3)->setComment("Max |Tip| for triplets, in cm"); + trackQualityCuts.add("tripletMaxZip", 12.)->setComment("Max |Zip| for triplets, in cm"); + trackQualityCuts.add("quadrupletMinPt", 0.3)->setComment("Min pT for quadruplets, in GeV"); + trackQualityCuts.add("quadrupletMaxTip", 0.5)->setComment("Max |Tip| for quadruplets, in cm"); + trackQualityCuts.add("quadrupletMaxZip", 12.)->setComment("Max |Zip| for quadruplets, in cm"); + desc.add("trackQualityCuts", trackQualityCuts) + ->setComment( + "Quality cuts based on the results of the track fit:\n - apply a pT-dependent chi2 cut;\n - apply \"region " + "cuts\" based on the fit results (pT, Tip, Zip)."); +} + +PixelTrackHeterogeneous CAHitNtupletGeneratorOnGPU::makeTuplesAsync(TrackingRecHit2DCUDA const& hits_d, + float bfield, + cudaStream_t stream) const { + PixelTrackHeterogeneous tracks(cms::cuda::make_device_unique(stream)); + + auto* soa = tracks.get(); + assert(soa); + + CAHitNtupletGeneratorKernelsGPU kernels(m_params); + kernels.setCounters(m_counters); + kernels.allocateOnGPU(hits_d.nHits(), stream); + + kernels.buildDoublets(hits_d, stream); + kernels.launchKernels(hits_d, soa, stream); + kernels.fillHitDetIndices(hits_d.view(), soa, stream); // in principle needed only if Hits not "available" + + HelixFitOnGPU fitter(bfield, m_params.fit5as4_); + fitter.allocateOnGPU(&(soa->hitIndices), kernels.tupleMultiplicity(), soa); + if (m_params.useRiemannFit_) { + fitter.launchRiemannKernels(hits_d.view(), hits_d.nHits(), caConstants::maxNumberOfQuadruplets, stream); + } else { + fitter.launchBrokenLineKernels(hits_d.view(), hits_d.nHits(), caConstants::maxNumberOfQuadruplets, stream); + } + kernels.classifyTuples(hits_d, soa, stream); + +#ifdef GPU_DEBUG + cudaDeviceSynchronize(); + cudaCheck(cudaGetLastError()); + std::cout << "finished building pixel tracks on GPU" << std::endl; +#endif + + return tracks; +} + +PixelTrackHeterogeneous CAHitNtupletGeneratorOnGPU::makeTuples(TrackingRecHit2DCPU const& hits_d, float bfield) const { + PixelTrackHeterogeneous tracks(std::make_unique()); + + auto* soa = tracks.get(); + assert(soa); + + CAHitNtupletGeneratorKernelsCPU kernels(m_params); + kernels.setCounters(m_counters); + kernels.allocateOnGPU(hits_d.nHits(), nullptr); + + kernels.buildDoublets(hits_d, nullptr); + kernels.launchKernels(hits_d, soa, nullptr); + kernels.fillHitDetIndices(hits_d.view(), soa, nullptr); // in principle needed only if Hits not "available" + + if (0 == hits_d.nHits()) + return tracks; + + // now fit + HelixFitOnGPU fitter(bfield, m_params.fit5as4_); + fitter.allocateOnGPU(&(soa->hitIndices), kernels.tupleMultiplicity(), soa); + + if (m_params.useRiemannFit_) { + fitter.launchRiemannKernelsOnCPU(hits_d.view(), hits_d.nHits(), caConstants::maxNumberOfQuadruplets); + } else { + fitter.launchBrokenLineKernelsOnCPU(hits_d.view(), hits_d.nHits(), caConstants::maxNumberOfQuadruplets); + } + + kernels.classifyTuples(hits_d, soa, nullptr); + +#ifdef GPU_DEBUG + std::cout << "finished building pixel tracks on CPU" << std::endl; +#endif + + return tracks; +} diff --git a/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorOnGPU.h b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorOnGPU.h new file mode 100644 index 0000000000000..564a870f54796 --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/plugins/CAHitNtupletGeneratorOnGPU.h @@ -0,0 +1,65 @@ +#ifndef RecoPixelVertexing_PixelTriplets_plugins_CAHitNtupletGeneratorOnGPU_h +#define RecoPixelVertexing_PixelTriplets_plugins_CAHitNtupletGeneratorOnGPU_h + +#include +#include "CUDADataFormats/TrackingRecHit/interface/TrackingRecHit2DHeterogeneous.h" +#include "CUDADataFormats/Track/interface/PixelTrackHeterogeneous.h" + +#include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Utilities/interface/EDGetToken.h" +#include "HeterogeneousCore/CUDAUtilities/interface/SimpleVector.h" + +#include "CAHitNtupletGeneratorKernels.h" +#include "HelixFitOnGPU.h" + +#include "GPUCACell.h" + +namespace edm { + class Event; + class EventSetup; + class ParameterSetDescription; +} // namespace edm + +class CAHitNtupletGeneratorOnGPU { +public: + using HitsOnGPU = TrackingRecHit2DSOAView; + using HitsOnCPU = TrackingRecHit2DCUDA; + using hindex_type = TrackingRecHit2DSOAView::hindex_type; + + using Quality = pixelTrack::Quality; + using OutputSoA = pixelTrack::TrackSoA; + using HitContainer = pixelTrack::HitContainer; + using Tuple = HitContainer; + + using QualityCuts = cAHitNtupletGenerator::QualityCuts; + using Params = cAHitNtupletGenerator::Params; + using Counters = cAHitNtupletGenerator::Counters; + +public: + CAHitNtupletGeneratorOnGPU(const edm::ParameterSet& cfg, edm::ConsumesCollector&& iC) + : CAHitNtupletGeneratorOnGPU(cfg, iC) {} + CAHitNtupletGeneratorOnGPU(const edm::ParameterSet& cfg, edm::ConsumesCollector& iC); + + ~CAHitNtupletGeneratorOnGPU(); + + static void fillDescriptions(edm::ParameterSetDescription& desc); + static const char* fillDescriptionsLabel() { return "caHitNtupletOnGPU"; } + + PixelTrackHeterogeneous makeTuplesAsync(TrackingRecHit2DGPU const& hits_d, float bfield, cudaStream_t stream) const; + + PixelTrackHeterogeneous makeTuples(TrackingRecHit2DCPU const& hits_d, float bfield) const; + +private: + void buildDoublets(HitsOnCPU const& hh, cudaStream_t stream) const; + + void hitNtuplets(HitsOnCPU const& hh, const edm::EventSetup& es, bool useRiemannFit, cudaStream_t cudaStream); + + void launchKernels(HitsOnCPU const& hh, bool useRiemannFit, cudaStream_t cudaStream) const; + + Params m_params; + + Counters* m_counters = nullptr; +}; + +#endif // RecoPixelVertexing_PixelTriplets_plugins_CAHitNtupletGeneratorOnGPU_h diff --git a/RecoPixelVertexing/PixelTriplets/plugins/GPUCACell.h b/RecoPixelVertexing/PixelTriplets/plugins/GPUCACell.h new file mode 100644 index 0000000000000..0fd514e26d223 --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/plugins/GPUCACell.h @@ -0,0 +1,347 @@ +#ifndef RecoPixelVertexing_PixelTriplets_plugins_GPUCACell_h +#define RecoPixelVertexing_PixelTriplets_plugins_GPUCACell_h + +// +// Author: Felice Pantaleo, CERN +// + +// #define ONLY_TRIPLETS_IN_HOLE + +#include + +#include "CUDADataFormats/TrackingRecHit/interface/TrackingRecHit2DHeterogeneous.h" +#include "HeterogeneousCore/CUDAUtilities/interface/SimpleVector.h" +#include "HeterogeneousCore/CUDAUtilities/interface/VecArray.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cuda_assert.h" +#include "RecoPixelVertexing/PixelTriplets/interface/CircleEq.h" +#include "CUDADataFormats/Track/interface/PixelTrackHeterogeneous.h" +#include "CAConstants.h" + +class GPUCACell { +public: + using PtrAsInt = unsigned long long; + + static constexpr auto maxCellsPerHit = caConstants::maxCellsPerHit; + using OuterHitOfCell = caConstants::OuterHitOfCell; + using CellNeighbors = caConstants::CellNeighbors; + using CellTracks = caConstants::CellTracks; + using CellNeighborsVector = caConstants::CellNeighborsVector; + using CellTracksVector = caConstants::CellTracksVector; + + using Hits = TrackingRecHit2DSOAView; + using hindex_type = Hits::hindex_type; + + using TmpTuple = cms::cuda::VecArray; + + using HitContainer = pixelTrack::HitContainer; + using Quality = pixelTrack::Quality; + static constexpr auto bad = pixelTrack::Quality::bad; + + GPUCACell() = default; + + __device__ __forceinline__ void init(CellNeighborsVector& cellNeighbors, + CellTracksVector& cellTracks, + Hits const& hh, + int layerPairId, + int doubletId, + hindex_type innerHitId, + hindex_type outerHitId) { + theInnerHitId = innerHitId; + theOuterHitId = outerHitId; + theDoubletId_ = doubletId; + theLayerPairId_ = layerPairId; + theUsed_ = 0; + + // optimization that depends on access pattern + theInnerZ = hh.zGlobal(innerHitId); + theInnerR = hh.rGlobal(innerHitId); + + // link to default empty + theOuterNeighbors = &cellNeighbors[0]; + theTracks = &cellTracks[0]; + assert(outerNeighbors().empty()); + assert(tracks().empty()); + } + + __device__ __forceinline__ int addOuterNeighbor(CellNeighbors::value_t t, CellNeighborsVector& cellNeighbors) { + // use smart cache + if (outerNeighbors().empty()) { + auto i = cellNeighbors.extend(); // maybe wasted.... + if (i > 0) { + cellNeighbors[i].reset(); +#ifdef __CUDACC__ + auto zero = (PtrAsInt)(&cellNeighbors[0]); + atomicCAS((PtrAsInt*)(&theOuterNeighbors), + zero, + (PtrAsInt)(&cellNeighbors[i])); // if fails we cannot give "i" back... +#else + theOuterNeighbors = &cellNeighbors[i]; +#endif + } else + return -1; + } + __threadfence(); + return outerNeighbors().push_back(t); + } + + __device__ __forceinline__ int addTrack(CellTracks::value_t t, CellTracksVector& cellTracks) { + if (tracks().empty()) { + auto i = cellTracks.extend(); // maybe wasted.... + if (i > 0) { + cellTracks[i].reset(); +#ifdef __CUDACC__ + auto zero = (PtrAsInt)(&cellTracks[0]); + atomicCAS((PtrAsInt*)(&theTracks), zero, (PtrAsInt)(&cellTracks[i])); // if fails we cannot give "i" back... +#else + theTracks = &cellTracks[i]; +#endif + } else + return -1; + } + __threadfence(); + return tracks().push_back(t); + } + + __device__ __forceinline__ CellTracks& tracks() { return *theTracks; } + __device__ __forceinline__ CellTracks const& tracks() const { return *theTracks; } + __device__ __forceinline__ CellNeighbors& outerNeighbors() { return *theOuterNeighbors; } + __device__ __forceinline__ CellNeighbors const& outerNeighbors() const { return *theOuterNeighbors; } + __device__ __forceinline__ float inner_x(Hits const& hh) const { return hh.xGlobal(theInnerHitId); } + __device__ __forceinline__ float outer_x(Hits const& hh) const { return hh.xGlobal(theOuterHitId); } + __device__ __forceinline__ float inner_y(Hits const& hh) const { return hh.yGlobal(theInnerHitId); } + __device__ __forceinline__ float outer_y(Hits const& hh) const { return hh.yGlobal(theOuterHitId); } + __device__ __forceinline__ float inner_z(Hits const& hh) const { return theInnerZ; } + // { return hh.zGlobal(theInnerHitId); } // { return theInnerZ; } + __device__ __forceinline__ float outer_z(Hits const& hh) const { return hh.zGlobal(theOuterHitId); } + __device__ __forceinline__ float inner_r(Hits const& hh) const { return theInnerR; } + // { return hh.rGlobal(theInnerHitId); } // { return theInnerR; } + __device__ __forceinline__ float outer_r(Hits const& hh) const { return hh.rGlobal(theOuterHitId); } + + __device__ __forceinline__ auto inner_iphi(Hits const& hh) const { return hh.iphi(theInnerHitId); } + __device__ __forceinline__ auto outer_iphi(Hits const& hh) const { return hh.iphi(theOuterHitId); } + + __device__ __forceinline__ float inner_detIndex(Hits const& hh) const { return hh.detectorIndex(theInnerHitId); } + __device__ __forceinline__ float outer_detIndex(Hits const& hh) const { return hh.detectorIndex(theOuterHitId); } + + constexpr unsigned int inner_hit_id() const { return theInnerHitId; } + constexpr unsigned int outer_hit_id() const { return theOuterHitId; } + + __device__ void print_cell() const { + printf("printing cell: %d, on layerPair: %d, innerHitId: %d, outerHitId: %d \n", + theDoubletId_, + theLayerPairId_, + theInnerHitId, + theOuterHitId); + } + + __device__ bool check_alignment(Hits const& hh, + GPUCACell const& otherCell, + const float ptmin, + const float hardCurvCut, + const float caThetaCutBarrel, + const float caThetaCutForward, + const float dcaCutInnerTriplet, + const float dcaCutOuterTriplet) const { + // detIndex of the layerStart for the Phase1 Pixel Detector: + // [BPX1, BPX2, BPX3, BPX4, FP1, FP2, FP3, FN1, FN2, FN3, LAST_VALID] + // [ 0, 96, 320, 672, 1184, 1296, 1408, 1520, 1632, 1744, 1856] + auto ri = inner_r(hh); + auto zi = inner_z(hh); + + auto ro = outer_r(hh); + auto zo = outer_z(hh); + + auto r1 = otherCell.inner_r(hh); + auto z1 = otherCell.inner_z(hh); + auto isBarrel = otherCell.outer_detIndex(hh) < caConstants::last_barrel_detIndex; + bool aligned = areAlignedRZ(r1, + z1, + ri, + zi, + ro, + zo, + ptmin, + isBarrel ? caThetaCutBarrel : caThetaCutForward); // 2.f*thetaCut); // FIXME tune cuts + return (aligned && dcaCut(hh, + otherCell, + otherCell.inner_detIndex(hh) < caConstants::last_bpix1_detIndex ? dcaCutInnerTriplet + : dcaCutOuterTriplet, + hardCurvCut)); // FIXME tune cuts + } + + __device__ __forceinline__ static bool areAlignedRZ( + float r1, float z1, float ri, float zi, float ro, float zo, const float ptmin, const float thetaCut) { + float radius_diff = std::abs(r1 - ro); + float distance_13_squared = radius_diff * radius_diff + (z1 - zo) * (z1 - zo); + + float pMin = ptmin * std::sqrt(distance_13_squared); // this needs to be divided by + // radius_diff later + + float tan_12_13_half_mul_distance_13_squared = fabs(z1 * (ri - ro) + zi * (ro - r1) + zo * (r1 - ri)); + return tan_12_13_half_mul_distance_13_squared * pMin <= thetaCut * distance_13_squared * radius_diff; + } + + __device__ inline bool dcaCut(Hits const& hh, + GPUCACell const& otherCell, + const float region_origin_radius_plus_tolerance, + const float maxCurv) const { + auto x1 = otherCell.inner_x(hh); + auto y1 = otherCell.inner_y(hh); + + auto x2 = inner_x(hh); + auto y2 = inner_y(hh); + + auto x3 = outer_x(hh); + auto y3 = outer_y(hh); + + CircleEq eq(x1, y1, x2, y2, x3, y3); + + if (eq.curvature() > maxCurv) + return false; + + return std::abs(eq.dca0()) < region_origin_radius_plus_tolerance * std::abs(eq.curvature()); + } + + __device__ __forceinline__ static bool dcaCutH(float x1, + float y1, + float x2, + float y2, + float x3, + float y3, + const float region_origin_radius_plus_tolerance, + const float maxCurv) { + CircleEq eq(x1, y1, x2, y2, x3, y3); + + if (eq.curvature() > maxCurv) + return false; + + return std::abs(eq.dca0()) < region_origin_radius_plus_tolerance * std::abs(eq.curvature()); + } + + __device__ inline bool hole0(Hits const& hh, GPUCACell const& innerCell) const { + using caConstants::first_ladder_bpx0; + using caConstants::max_ladder_bpx0; + using caConstants::module_length_bpx0; + using caConstants::module_tolerance_bpx0; + int p = innerCell.inner_iphi(hh); + if (p < 0) + p += std::numeric_limits::max(); + p = (max_ladder_bpx0 * p) / std::numeric_limits::max(); + p %= max_ladder_bpx0; + auto il = first_ladder_bpx0 + p; + auto r0 = hh.averageGeometry().ladderR[il]; + auto ri = innerCell.inner_r(hh); + auto zi = innerCell.inner_z(hh); + auto ro = outer_r(hh); + auto zo = outer_z(hh); + auto z0 = zi + (r0 - ri) * (zo - zi) / (ro - ri); + auto z_in_ladder = std::abs(z0 - hh.averageGeometry().ladderZ[il]); + auto z_in_module = z_in_ladder - module_length_bpx0 * int(z_in_ladder / module_length_bpx0); + auto gap = z_in_module < module_tolerance_bpx0 || z_in_module > (module_length_bpx0 - module_tolerance_bpx0); + return gap; + } + + __device__ inline bool hole4(Hits const& hh, GPUCACell const& innerCell) const { + using caConstants::first_ladder_bpx4; + using caConstants::max_ladder_bpx4; + using caConstants::module_length_bpx4; + using caConstants::module_tolerance_bpx4; + int p = outer_iphi(hh); + if (p < 0) + p += std::numeric_limits::max(); + p = (max_ladder_bpx4 * p) / std::numeric_limits::max(); + p %= max_ladder_bpx4; + auto il = first_ladder_bpx4 + p; + auto r4 = hh.averageGeometry().ladderR[il]; + auto ri = innerCell.inner_r(hh); + auto zi = innerCell.inner_z(hh); + auto ro = outer_r(hh); + auto zo = outer_z(hh); + auto z4 = zo + (r4 - ro) * (zo - zi) / (ro - ri); + auto z_in_ladder = std::abs(z4 - hh.averageGeometry().ladderZ[il]); + auto z_in_module = z_in_ladder - module_length_bpx4 * int(z_in_ladder / module_length_bpx4); + auto gap = z_in_module < module_tolerance_bpx4 || z_in_module > (module_length_bpx4 - module_tolerance_bpx4); + auto holeP = z4 > hh.averageGeometry().ladderMaxZ[il] && z4 < hh.averageGeometry().endCapZ[0]; + auto holeN = z4 < hh.averageGeometry().ladderMinZ[il] && z4 > hh.averageGeometry().endCapZ[1]; + return gap || holeP || holeN; + } + + // trying to free the track building process from hardcoded layers, leaving + // the visit of the graph based on the neighborhood connections between cells. + __device__ inline void find_ntuplets(Hits const& hh, + GPUCACell* __restrict__ cells, + CellTracksVector& cellTracks, + HitContainer& foundNtuplets, + cms::cuda::AtomicPairCounter& apc, + Quality* __restrict__ quality, + TmpTuple& tmpNtuplet, + const unsigned int minHitsPerNtuplet, + bool startAt0) const { + // the building process for a track ends if: + // it has no right neighbor + // it has no compatible neighbor + // the ntuplets is then saved if the number of hits it contains is greater + // than a threshold + + tmpNtuplet.push_back_unsafe(theDoubletId_); + assert(tmpNtuplet.size() <= 4); + + bool last = true; + for (unsigned int otherCell : outerNeighbors()) { + if (cells[otherCell].theDoubletId_ < 0) + continue; // killed by earlyFishbone + last = false; + cells[otherCell].find_ntuplets( + hh, cells, cellTracks, foundNtuplets, apc, quality, tmpNtuplet, minHitsPerNtuplet, startAt0); + } + if (last) { // if long enough save... + if ((unsigned int)(tmpNtuplet.size()) >= minHitsPerNtuplet - 1) { +#ifdef ONLY_TRIPLETS_IN_HOLE + // triplets accepted only pointing to the hole + if (tmpNtuplet.size() >= 3 || (startAt0 && hole4(hh, cells[tmpNtuplet[0]])) || + ((!startAt0) && hole0(hh, cells[tmpNtuplet[0]]))) +#endif + { + hindex_type hits[6]; + auto nh = 0U; + for (auto c : tmpNtuplet) { + hits[nh++] = cells[c].theInnerHitId; + } + hits[nh] = theOuterHitId; + auto it = foundNtuplets.bulkFill(apc, hits, tmpNtuplet.size() + 1); + if (it >= 0) { // if negative is overflow.... + for (auto c : tmpNtuplet) + cells[c].addTrack(it, cellTracks); + quality[it] = bad; // initialize to bad + } + } + } + } + tmpNtuplet.pop_back(); + assert(tmpNtuplet.size() < 4); + } + + // Cell status management + __device__ __forceinline__ void kill() { theDoubletId_ = -1; } + __device__ __forceinline__ bool isKilled() const { return theDoubletId_ < 0; } + + __device__ __forceinline__ int16_t layerPairId() const { return theLayerPairId_; } + + __device__ __forceinline__ bool unused() const { return !theUsed_; } + __device__ __forceinline__ void setUsedBit(uint16_t bit) { theUsed_ |= bit; } + +private: + CellNeighbors* theOuterNeighbors; + CellTracks* theTracks; + + int32_t theDoubletId_; + int16_t theLayerPairId_; + uint16_t theUsed_; // tbd + + float theInnerZ; + float theInnerR; + hindex_type theInnerHitId; + hindex_type theOuterHitId; +}; + +#endif // RecoPixelVertexing_PixelTriplets_plugins_GPUCACell_h diff --git a/RecoPixelVertexing/PixelTriplets/plugins/HelixFitOnGPU.cc b/RecoPixelVertexing/PixelTriplets/plugins/HelixFitOnGPU.cc new file mode 100644 index 0000000000000..880bdb47dfb5c --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/plugins/HelixFitOnGPU.cc @@ -0,0 +1,16 @@ +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" +#include "HelixFitOnGPU.h" + +void HelixFitOnGPU::allocateOnGPU(Tuples const *tuples, + TupleMultiplicity const *tupleMultiplicity, + OutputSoA *helix_fit_results) { + tuples_ = tuples; + tupleMultiplicity_ = tupleMultiplicity; + outputSoa_ = helix_fit_results; + + assert(tuples_); + assert(tupleMultiplicity_); + assert(outputSoa_); +} + +void HelixFitOnGPU::deallocateOnGPU() {} diff --git a/RecoPixelVertexing/PixelTriplets/plugins/HelixFitOnGPU.h b/RecoPixelVertexing/PixelTriplets/plugins/HelixFitOnGPU.h new file mode 100644 index 0000000000000..938994840f8c0 --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/plugins/HelixFitOnGPU.h @@ -0,0 +1,68 @@ +#ifndef RecoPixelVertexing_PixelTriplets_plugins_HelixFitOnGPU_h +#define RecoPixelVertexing_PixelTriplets_plugins_HelixFitOnGPU_h + +#include "CUDADataFormats/Track/interface/PixelTrackHeterogeneous.h" +#include "CUDADataFormats/TrackingRecHit/interface/TrackingRecHit2DHeterogeneous.h" +#include "RecoPixelVertexing/PixelTrackFitting/interface/FitResult.h" + +#include "CAConstants.h" + +namespace riemannFit { + // in case of memory issue can be made smaller + constexpr uint32_t maxNumberOfConcurrentFits = caConstants::maxNumberOfTuples; + constexpr uint32_t stride = maxNumberOfConcurrentFits; + using Matrix3x4d = Eigen::Matrix; + using Map3x4d = Eigen::Map >; + using Matrix6x4f = Eigen::Matrix; + using Map6x4f = Eigen::Map >; + + // hits + template + using Matrix3xNd = Eigen::Matrix; + template + using Map3xNd = Eigen::Map, 0, Eigen::Stride<3 * stride, stride> >; + // errors + template + using Matrix6xNf = Eigen::Matrix; + template + using Map6xNf = Eigen::Map, 0, Eigen::Stride<6 * stride, stride> >; + // fast fit + using Map4d = Eigen::Map >; + +} // namespace riemannFit + +class HelixFitOnGPU { +public: + using HitsView = TrackingRecHit2DSOAView; + + using Tuples = pixelTrack::HitContainer; + using OutputSoA = pixelTrack::TrackSoA; + + using TupleMultiplicity = caConstants::TupleMultiplicity; + + explicit HelixFitOnGPU(float bf, bool fit5as4) : bField_(bf), fit5as4_(fit5as4) {} + ~HelixFitOnGPU() { deallocateOnGPU(); } + + void setBField(double bField) { bField_ = bField; } + void launchRiemannKernels(HitsView const *hv, uint32_t nhits, uint32_t maxNumberOfTuples, cudaStream_t cudaStream); + void launchBrokenLineKernels(HitsView const *hv, uint32_t nhits, uint32_t maxNumberOfTuples, cudaStream_t cudaStream); + + void launchRiemannKernelsOnCPU(HitsView const *hv, uint32_t nhits, uint32_t maxNumberOfTuples); + void launchBrokenLineKernelsOnCPU(HitsView const *hv, uint32_t nhits, uint32_t maxNumberOfTuples); + + void allocateOnGPU(Tuples const *tuples, TupleMultiplicity const *tupleMultiplicity, OutputSoA *outputSoA); + void deallocateOnGPU(); + +private: + static constexpr uint32_t maxNumberOfConcurrentFits_ = riemannFit::maxNumberOfConcurrentFits; + + // fowarded + Tuples const *tuples_ = nullptr; + TupleMultiplicity const *tupleMultiplicity_ = nullptr; + OutputSoA *outputSoa_; + float bField_; + + const bool fit5as4_; +}; + +#endif // RecoPixelVertexing_PixelTriplets_plugins_HelixFitOnGPU_h diff --git a/RecoPixelVertexing/PixelTriplets/plugins/RiemannFitOnGPU.cc b/RecoPixelVertexing/PixelTriplets/plugins/RiemannFitOnGPU.cc new file mode 100644 index 0000000000000..491dd0df2004f --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/plugins/RiemannFitOnGPU.cc @@ -0,0 +1,113 @@ +#include "RiemannFitOnGPU.h" + +void HelixFitOnGPU::launchRiemannKernelsOnCPU(HitsView const *hv, uint32_t nhits, uint32_t maxNumberOfTuples) { + assert(tuples_); + + // Fit internals + auto hitsGPU = + std::make_unique(maxNumberOfConcurrentFits_ * sizeof(riemannFit::Matrix3xNd<4>) / sizeof(double)); + auto hits_geGPU = + std::make_unique(maxNumberOfConcurrentFits_ * sizeof(riemannFit::Matrix6x4f) / sizeof(float)); + auto fast_fit_resultsGPU = + std::make_unique(maxNumberOfConcurrentFits_ * sizeof(riemannFit::Vector4d) / sizeof(double)); + auto circle_fit_resultsGPU_holder = + std::make_unique(maxNumberOfConcurrentFits_ * sizeof(riemannFit::CircleFit)); + riemannFit::CircleFit *circle_fit_resultsGPU = (riemannFit::CircleFit *)(circle_fit_resultsGPU_holder.get()); + + for (uint32_t offset = 0; offset < maxNumberOfTuples; offset += maxNumberOfConcurrentFits_) { + // triplets + kernel_FastFit<3>( + tuples_, tupleMultiplicity_, 3, hv, hitsGPU.get(), hits_geGPU.get(), fast_fit_resultsGPU.get(), offset); + + kernel_CircleFit<3>(tupleMultiplicity_, + 3, + bField_, + hitsGPU.get(), + hits_geGPU.get(), + fast_fit_resultsGPU.get(), + circle_fit_resultsGPU, + offset); + + kernel_LineFit<3>(tupleMultiplicity_, + 3, + bField_, + outputSoa_, + hitsGPU.get(), + hits_geGPU.get(), + fast_fit_resultsGPU.get(), + circle_fit_resultsGPU, + offset); + + // quads + kernel_FastFit<4>( + tuples_, tupleMultiplicity_, 4, hv, hitsGPU.get(), hits_geGPU.get(), fast_fit_resultsGPU.get(), offset); + + kernel_CircleFit<4>(tupleMultiplicity_, + 4, + bField_, + hitsGPU.get(), + hits_geGPU.get(), + fast_fit_resultsGPU.get(), + circle_fit_resultsGPU, + offset); + + kernel_LineFit<4>(tupleMultiplicity_, + 4, + bField_, + outputSoa_, + hitsGPU.get(), + hits_geGPU.get(), + fast_fit_resultsGPU.get(), + circle_fit_resultsGPU, + offset); + + if (fit5as4_) { + // penta + kernel_FastFit<4>( + tuples_, tupleMultiplicity_, 5, hv, hitsGPU.get(), hits_geGPU.get(), fast_fit_resultsGPU.get(), offset); + + kernel_CircleFit<4>(tupleMultiplicity_, + 5, + bField_, + hitsGPU.get(), + hits_geGPU.get(), + fast_fit_resultsGPU.get(), + circle_fit_resultsGPU, + offset); + + kernel_LineFit<4>(tupleMultiplicity_, + 5, + bField_, + outputSoa_, + hitsGPU.get(), + hits_geGPU.get(), + fast_fit_resultsGPU.get(), + circle_fit_resultsGPU, + offset); + + } else { + // penta all 5 + kernel_FastFit<5>( + tuples_, tupleMultiplicity_, 5, hv, hitsGPU.get(), hits_geGPU.get(), fast_fit_resultsGPU.get(), offset); + + kernel_CircleFit<5>(tupleMultiplicity_, + 5, + bField_, + hitsGPU.get(), + hits_geGPU.get(), + fast_fit_resultsGPU.get(), + circle_fit_resultsGPU, + offset); + + kernel_LineFit<5>(tupleMultiplicity_, + 5, + bField_, + outputSoa_, + hitsGPU.get(), + hits_geGPU.get(), + fast_fit_resultsGPU.get(), + circle_fit_resultsGPU, + offset); + } + } +} diff --git a/RecoPixelVertexing/PixelTriplets/plugins/RiemannFitOnGPU.cu b/RecoPixelVertexing/PixelTriplets/plugins/RiemannFitOnGPU.cu new file mode 100644 index 0000000000000..90af2ac13730b --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/plugins/RiemannFitOnGPU.cu @@ -0,0 +1,131 @@ +#include "RiemannFitOnGPU.h" +#include "HeterogeneousCore/CUDAUtilities/interface/device_unique_ptr.h" + +void HelixFitOnGPU::launchRiemannKernels(HitsView const *hv, + uint32_t nhits, + uint32_t maxNumberOfTuples, + cudaStream_t stream) { + assert(tuples_); + + auto blockSize = 64; + auto numberOfBlocks = (maxNumberOfConcurrentFits_ + blockSize - 1) / blockSize; + + // Fit internals + auto hitsGPU = cms::cuda::make_device_unique( + maxNumberOfConcurrentFits_ * sizeof(riemannFit::Matrix3xNd<4>) / sizeof(double), stream); + auto hits_geGPU = cms::cuda::make_device_unique( + maxNumberOfConcurrentFits_ * sizeof(riemannFit::Matrix6x4f) / sizeof(float), stream); + auto fast_fit_resultsGPU = cms::cuda::make_device_unique( + maxNumberOfConcurrentFits_ * sizeof(riemannFit::Vector4d) / sizeof(double), stream); + auto circle_fit_resultsGPU_holder = + cms::cuda::make_device_unique(maxNumberOfConcurrentFits_ * sizeof(riemannFit::CircleFit), stream); + riemannFit::CircleFit *circle_fit_resultsGPU_ = (riemannFit::CircleFit *)(circle_fit_resultsGPU_holder.get()); + + for (uint32_t offset = 0; offset < maxNumberOfTuples; offset += maxNumberOfConcurrentFits_) { + // triplets + kernel_FastFit<3><<>>( + tuples_, tupleMultiplicity_, 3, hv, hitsGPU.get(), hits_geGPU.get(), fast_fit_resultsGPU.get(), offset); + cudaCheck(cudaGetLastError()); + + kernel_CircleFit<3><<>>(tupleMultiplicity_, + 3, + bField_, + hitsGPU.get(), + hits_geGPU.get(), + fast_fit_resultsGPU.get(), + circle_fit_resultsGPU_, + offset); + cudaCheck(cudaGetLastError()); + + kernel_LineFit<3><<>>(tupleMultiplicity_, + 3, + bField_, + outputSoa_, + hitsGPU.get(), + hits_geGPU.get(), + fast_fit_resultsGPU.get(), + circle_fit_resultsGPU_, + offset); + cudaCheck(cudaGetLastError()); + + // quads + kernel_FastFit<4><<>>( + tuples_, tupleMultiplicity_, 4, hv, hitsGPU.get(), hits_geGPU.get(), fast_fit_resultsGPU.get(), offset); + cudaCheck(cudaGetLastError()); + + kernel_CircleFit<4><<>>(tupleMultiplicity_, + 4, + bField_, + hitsGPU.get(), + hits_geGPU.get(), + fast_fit_resultsGPU.get(), + circle_fit_resultsGPU_, + offset); + cudaCheck(cudaGetLastError()); + + kernel_LineFit<4><<>>(tupleMultiplicity_, + 4, + bField_, + outputSoa_, + hitsGPU.get(), + hits_geGPU.get(), + fast_fit_resultsGPU.get(), + circle_fit_resultsGPU_, + offset); + cudaCheck(cudaGetLastError()); + + if (fit5as4_) { + // penta + kernel_FastFit<4><<>>( + tuples_, tupleMultiplicity_, 5, hv, hitsGPU.get(), hits_geGPU.get(), fast_fit_resultsGPU.get(), offset); + cudaCheck(cudaGetLastError()); + + kernel_CircleFit<4><<>>(tupleMultiplicity_, + 5, + bField_, + hitsGPU.get(), + hits_geGPU.get(), + fast_fit_resultsGPU.get(), + circle_fit_resultsGPU_, + offset); + cudaCheck(cudaGetLastError()); + + kernel_LineFit<4><<>>(tupleMultiplicity_, + 5, + bField_, + outputSoa_, + hitsGPU.get(), + hits_geGPU.get(), + fast_fit_resultsGPU.get(), + circle_fit_resultsGPU_, + offset); + cudaCheck(cudaGetLastError()); + } else { + // penta all 5 + kernel_FastFit<5><<>>( + tuples_, tupleMultiplicity_, 5, hv, hitsGPU.get(), hits_geGPU.get(), fast_fit_resultsGPU.get(), offset); + cudaCheck(cudaGetLastError()); + + kernel_CircleFit<5><<>>(tupleMultiplicity_, + 5, + bField_, + hitsGPU.get(), + hits_geGPU.get(), + fast_fit_resultsGPU.get(), + circle_fit_resultsGPU_, + offset); + cudaCheck(cudaGetLastError()); + + kernel_LineFit<5><<>>(tupleMultiplicity_, + 5, + bField_, + outputSoa_, + hitsGPU.get(), + hits_geGPU.get(), + fast_fit_resultsGPU.get(), + circle_fit_resultsGPU_, + offset); + cudaCheck(cudaGetLastError()); + } + } +} diff --git a/RecoPixelVertexing/PixelTriplets/plugins/RiemannFitOnGPU.h b/RecoPixelVertexing/PixelTriplets/plugins/RiemannFitOnGPU.h new file mode 100644 index 0000000000000..926002d674b83 --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/plugins/RiemannFitOnGPU.h @@ -0,0 +1,187 @@ +// +// Author: Felice Pantaleo, CERN +// + +#include + +#include + +#include "CUDADataFormats/TrackingRecHit/interface/TrackingRecHit2DHeterogeneous.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cuda_assert.h" +#include "RecoLocalTracker/SiPixelRecHits/interface/pixelCPEforGPU.h" +#include "RecoPixelVertexing/PixelTrackFitting/interface/RiemannFit.h" + +#include "HelixFitOnGPU.h" + +using HitsOnGPU = TrackingRecHit2DSOAView; +using Tuples = pixelTrack::HitContainer; +using OutputSoA = pixelTrack::TrackSoA; + +template +__global__ void kernel_FastFit(Tuples const *__restrict__ foundNtuplets, + caConstants::TupleMultiplicity const *__restrict__ tupleMultiplicity, + uint32_t nHits, + HitsOnGPU const *__restrict__ hhp, + double *__restrict__ phits, + float *__restrict__ phits_ge, + double *__restrict__ pfast_fit, + uint32_t offset) { + constexpr uint32_t hitsInFit = N; + + assert(hitsInFit <= nHits); + + assert(pfast_fit); + assert(foundNtuplets); + assert(tupleMultiplicity); + + // look in bin for this hit multiplicity + auto local_start = blockIdx.x * blockDim.x + threadIdx.x; + +#ifdef RIEMANN_DEBUG + if (0 == local_start) + printf("%d Ntuple of size %d for %d hits to fit\n", tupleMultiplicity->size(nHits), nHits, hitsInFit); +#endif + + for (int local_idx = local_start, nt = riemannFit::maxNumberOfConcurrentFits; local_idx < nt; + local_idx += gridDim.x * blockDim.x) { + auto tuple_idx = local_idx + offset; + if (tuple_idx >= tupleMultiplicity->size(nHits)) + break; + + // get it from the ntuple container (one to one to helix) + auto tkid = *(tupleMultiplicity->begin(nHits) + tuple_idx); + assert(tkid < foundNtuplets->nOnes()); + + assert(foundNtuplets->size(tkid) == nHits); + + riemannFit::Map3xNd hits(phits + local_idx); + riemannFit::Map4d fast_fit(pfast_fit + local_idx); + riemannFit::Map6xNf hits_ge(phits_ge + local_idx); + + // Prepare data structure + auto const *hitId = foundNtuplets->begin(tkid); + for (unsigned int i = 0; i < hitsInFit; ++i) { + auto hit = hitId[i]; + // printf("Hit global: %f,%f,%f\n", hhp->xg_d[hit],hhp->yg_d[hit],hhp->zg_d[hit]); + float ge[6]; + hhp->cpeParams() + .detParams(hhp->detectorIndex(hit)) + .frame.toGlobal(hhp->xerrLocal(hit), 0, hhp->yerrLocal(hit), ge); + // printf("Error: %d: %f,%f,%f,%f,%f,%f\n",hhp->detInd_d[hit],ge[0],ge[1],ge[2],ge[3],ge[4],ge[5]); + + hits.col(i) << hhp->xGlobal(hit), hhp->yGlobal(hit), hhp->zGlobal(hit); + hits_ge.col(i) << ge[0], ge[1], ge[2], ge[3], ge[4], ge[5]; + } + riemannFit::fastFit(hits, fast_fit); + + // no NaN here.... + assert(fast_fit(0) == fast_fit(0)); + assert(fast_fit(1) == fast_fit(1)); + assert(fast_fit(2) == fast_fit(2)); + assert(fast_fit(3) == fast_fit(3)); + } +} + +template +__global__ void kernel_CircleFit(caConstants::TupleMultiplicity const *__restrict__ tupleMultiplicity, + uint32_t nHits, + double bField, + double *__restrict__ phits, + float *__restrict__ phits_ge, + double *__restrict__ pfast_fit_input, + riemannFit::CircleFit *circle_fit, + uint32_t offset) { + assert(circle_fit); + assert(N <= nHits); + + // same as above... + + // look in bin for this hit multiplicity + auto local_start = blockIdx.x * blockDim.x + threadIdx.x; + for (int local_idx = local_start, nt = riemannFit::maxNumberOfConcurrentFits; local_idx < nt; + local_idx += gridDim.x * blockDim.x) { + auto tuple_idx = local_idx + offset; + if (tuple_idx >= tupleMultiplicity->size(nHits)) + break; + + riemannFit::Map3xNd hits(phits + local_idx); + riemannFit::Map4d fast_fit(pfast_fit_input + local_idx); + riemannFit::Map6xNf hits_ge(phits_ge + local_idx); + + riemannFit::VectorNd rad = (hits.block(0, 0, 2, N).colwise().norm()); + + riemannFit::Matrix2Nd hits_cov = riemannFit::Matrix2Nd::Zero(); + riemannFit::loadCovariance2D(hits_ge, hits_cov); + + circle_fit[local_idx] = riemannFit::circleFit(hits.block(0, 0, 2, N), hits_cov, fast_fit, rad, bField, true); + +#ifdef RIEMANN_DEBUG +// auto tkid = *(tupleMultiplicity->begin(nHits) + tuple_idx); +// printf("kernelCircleFit circle.par(0,1,2): %d %f,%f,%f\n", tkid, +// circle_fit[local_idx].par(0), circle_fit[local_idx].par(1), circle_fit[local_idx].par(2)); +#endif + } +} + +template +__global__ void kernel_LineFit(caConstants::TupleMultiplicity const *__restrict__ tupleMultiplicity, + uint32_t nHits, + double bField, + OutputSoA *results, + double *__restrict__ phits, + float *__restrict__ phits_ge, + double *__restrict__ pfast_fit_input, + riemannFit::CircleFit *__restrict__ circle_fit, + uint32_t offset) { + assert(results); + assert(circle_fit); + assert(N <= nHits); + + // same as above... + + // look in bin for this hit multiplicity + auto local_start = (blockIdx.x * blockDim.x + threadIdx.x); + for (int local_idx = local_start, nt = riemannFit::maxNumberOfConcurrentFits; local_idx < nt; + local_idx += gridDim.x * blockDim.x) { + auto tuple_idx = local_idx + offset; + if (tuple_idx >= tupleMultiplicity->size(nHits)) + break; + + // get it for the ntuple container (one to one to helix) + auto tkid = *(tupleMultiplicity->begin(nHits) + tuple_idx); + + riemannFit::Map3xNd hits(phits + local_idx); + riemannFit::Map4d fast_fit(pfast_fit_input + local_idx); + riemannFit::Map6xNf hits_ge(phits_ge + local_idx); + + auto const &line_fit = riemannFit::lineFit(hits, hits_ge, circle_fit[local_idx], fast_fit, bField, true); + + riemannFit::fromCircleToPerigee(circle_fit[local_idx]); + + results->stateAtBS.copyFromCircle( + circle_fit[local_idx].par, circle_fit[local_idx].cov, line_fit.par, line_fit.cov, 1.f / float(bField), tkid); + results->pt(tkid) = bField / std::abs(circle_fit[local_idx].par(2)); + results->eta(tkid) = asinhf(line_fit.par(0)); + results->chi2(tkid) = (circle_fit[local_idx].chi2 + line_fit.chi2) / (2 * N - 5); + +#ifdef RIEMANN_DEBUG + printf("kernelLineFit size %d for %d hits circle.par(0,1,2): %d %f,%f,%f\n", + N, + nHits, + tkid, + circle_fit[local_idx].par(0), + circle_fit[local_idx].par(1), + circle_fit[local_idx].par(2)); + printf("kernelLineFit line.par(0,1): %d %f,%f\n", tkid, line_fit.par(0), line_fit.par(1)); + printf("kernelLineFit chi2 cov %f/%f %e,%e,%e,%e,%e\n", + circle_fit[local_idx].chi2, + line_fit.chi2, + circle_fit[local_idx].cov(0, 0), + circle_fit[local_idx].cov(1, 1), + circle_fit[local_idx].cov(2, 2), + line_fit.cov(0, 0), + line_fit.cov(1, 1)); +#endif + } +} diff --git a/RecoPixelVertexing/PixelTriplets/plugins/gpuFishbone.h b/RecoPixelVertexing/PixelTriplets/plugins/gpuFishbone.h new file mode 100644 index 0000000000000..09cd5c18e65ae --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/plugins/gpuFishbone.h @@ -0,0 +1,91 @@ +#ifndef RecoPixelVertexing_PixelTriplets_plugins_gpuFishbone_h +#define RecoPixelVertexing_PixelTriplets_plugins_gpuFishbone_h + +#include +#include +#include +#include +#include + +#include "DataFormats/Math/interface/approx_atan2.h" +#include "Geometry/TrackerGeometryBuilder/interface/phase1PixelTopology.h" +#include "HeterogeneousCore/CUDAUtilities/interface/VecArray.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cuda_assert.h" + +#include "GPUCACell.h" + +namespace gpuPixelDoublets { + + // __device__ + // __forceinline__ + __global__ void fishbone(GPUCACell::Hits const* __restrict__ hhp, + GPUCACell* cells, + uint32_t const* __restrict__ nCells, + GPUCACell::OuterHitOfCell const* __restrict__ isOuterHitOfCell, + uint32_t nHits, + bool checkTrack) { + constexpr auto maxCellsPerHit = GPUCACell::maxCellsPerHit; + + auto const& hh = *hhp; + + // x run faster... + auto firstY = threadIdx.y + blockIdx.y * blockDim.y; + auto firstX = threadIdx.x; + + float x[maxCellsPerHit], y[maxCellsPerHit], z[maxCellsPerHit], n[maxCellsPerHit]; + uint16_t d[maxCellsPerHit]; // uint8_t l[maxCellsPerHit]; + uint32_t cc[maxCellsPerHit]; + + for (int idy = firstY, nt = nHits; idy < nt; idy += gridDim.y * blockDim.y) { + auto const& vc = isOuterHitOfCell[idy]; + auto size = vc.size(); + if (size < 2) + continue; + // if alligned kill one of the two. + // in principle one could try to relax the cut (only in r-z?) for jumping-doublets + auto const& c0 = cells[vc[0]]; + auto xo = c0.outer_x(hh); + auto yo = c0.outer_y(hh); + auto zo = c0.outer_z(hh); + auto sg = 0; + for (int32_t ic = 0; ic < size; ++ic) { + auto& ci = cells[vc[ic]]; + if (ci.unused()) + continue; // for triplets equivalent to next + if (checkTrack && ci.tracks().empty()) + continue; + cc[sg] = vc[ic]; + d[sg] = ci.inner_detIndex(hh); + x[sg] = ci.inner_x(hh) - xo; + y[sg] = ci.inner_y(hh) - yo; + z[sg] = ci.inner_z(hh) - zo; + n[sg] = x[sg] * x[sg] + y[sg] * y[sg] + z[sg] * z[sg]; + ++sg; + } + if (sg < 2) + continue; + // here we parallelize + for (int32_t ic = firstX; ic < sg - 1; ic += blockDim.x) { + auto& ci = cells[cc[ic]]; + for (auto jc = ic + 1; jc < sg; ++jc) { + auto& cj = cells[cc[jc]]; + // must be different detectors (in the same layer) + // if (d[ic]==d[jc]) continue; + // || l[ic]!=l[jc]) continue; + auto cos12 = x[ic] * x[jc] + y[ic] * y[jc] + z[ic] * z[jc]; + if (d[ic] != d[jc] && cos12 * cos12 >= 0.99999f * n[ic] * n[jc]) { + // alligned: kill farthest (prefer consecutive layers) + if (n[ic] > n[jc]) { + ci.kill(); + break; + } else { + cj.kill(); + } + } + } //cj + } // ci + } // hits + } +} // namespace gpuPixelDoublets + +#endif // RecoPixelVertexing_PixelTriplets_plugins_gpuFishbone_h diff --git a/RecoPixelVertexing/PixelTriplets/plugins/gpuPixelDoublets.h b/RecoPixelVertexing/PixelTriplets/plugins/gpuPixelDoublets.h new file mode 100644 index 0000000000000..4e2e241e92605 --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/plugins/gpuPixelDoublets.h @@ -0,0 +1,132 @@ +#ifndef RecoPixelVertexing_PixelTriplets_plugins_gpuPixelDoublets_h +#define RecoPixelVertexing_PixelTriplets_plugins_gpuPixelDoublets_h + +#include "RecoPixelVertexing/PixelTriplets/plugins/gpuPixelDoubletsAlgos.h" + +#define CONSTANT_VAR __constant__ + +namespace gpuPixelDoublets { + + constexpr int nPairsForQuadruplets = 13; // quadruplets require hits in all layers + constexpr int nPairsForTriplets = nPairsForQuadruplets + 2; // include barrel "jumping" layer pairs + constexpr int nPairs = nPairsForTriplets + 4; // include forward "jumping" layer pairs + static_assert(nPairs <= caConstants::maxNumberOfLayerPairs); + + // start constants + // clang-format off + + CONSTANT_VAR const uint8_t layerPairs[2 * nPairs] = { + 0, 1, 0, 4, 0, 7, // BPIX1 (3) + 1, 2, 1, 4, 1, 7, // BPIX2 (6) + 4, 5, 7, 8, // FPIX1 (8) + 2, 3, 2, 4, 2, 7, 5, 6, 8, 9, // BPIX3 & FPIX2 (13) + 0, 2, 1, 3, // Jumping Barrel (15) + 0, 5, 0, 8, // Jumping Forward (BPIX1,FPIX2) + 4, 6, 7, 9 // Jumping Forward (19) + }; + + constexpr int16_t phi0p05 = 522; // round(521.52189...) = phi2short(0.05); + constexpr int16_t phi0p06 = 626; // round(625.82270...) = phi2short(0.06); + constexpr int16_t phi0p07 = 730; // round(730.12648...) = phi2short(0.07); + + CONSTANT_VAR const int16_t phicuts[nPairs]{phi0p05, + phi0p07, + phi0p07, + phi0p05, + phi0p06, + phi0p06, + phi0p05, + phi0p05, + phi0p06, + phi0p06, + phi0p06, + phi0p05, + phi0p05, + phi0p05, + phi0p05, + phi0p05, + phi0p05, + phi0p05, + phi0p05}; + // phi0p07, phi0p07, phi0p06,phi0p06, phi0p06,phi0p06}; // relaxed cuts + + CONSTANT_VAR float const minz[nPairs] = { + -20., 0., -30., -22., 10., -30., -70., -70., -22., 15., -30, -70., -70., -20., -22., 0, -30., -70., -70.}; + CONSTANT_VAR float const maxz[nPairs] = { + 20., 30., 0., 22., 30., -10., 70., 70., 22., 30., -15., 70., 70., 20., 22., 30., 0., 70., 70.}; + CONSTANT_VAR float const maxr[nPairs] = { + 20., 9., 9., 20., 7., 7., 5., 5., 20., 6., 6., 5., 5., 20., 20., 9., 9., 9., 9.}; + + // end constants + // clang-format on + + using CellNeighbors = caConstants::CellNeighbors; + using CellTracks = caConstants::CellTracks; + using CellNeighborsVector = caConstants::CellNeighborsVector; + using CellTracksVector = caConstants::CellTracksVector; + + __global__ void initDoublets(GPUCACell::OuterHitOfCell* isOuterHitOfCell, + int nHits, + CellNeighborsVector* cellNeighbors, + CellNeighbors* cellNeighborsContainer, + CellTracksVector* cellTracks, + CellTracks* cellTracksContainer) { + assert(isOuterHitOfCell); + int first = blockIdx.x * blockDim.x + threadIdx.x; + for (int i = first; i < nHits; i += gridDim.x * blockDim.x) + isOuterHitOfCell[i].reset(); + + if (0 == first) { + cellNeighbors->construct(caConstants::maxNumOfActiveDoublets, cellNeighborsContainer); + cellTracks->construct(caConstants::maxNumOfActiveDoublets, cellTracksContainer); + auto i = cellNeighbors->extend(); + assert(0 == i); + (*cellNeighbors)[0].reset(); + i = cellTracks->extend(); + assert(0 == i); + (*cellTracks)[0].reset(); + } + } + + constexpr auto getDoubletsFromHistoMaxBlockSize = 64; // for both x and y + constexpr auto getDoubletsFromHistoMinBlocksPerMP = 16; + + __global__ +#ifdef __CUDACC__ + __launch_bounds__(getDoubletsFromHistoMaxBlockSize, getDoubletsFromHistoMinBlocksPerMP) +#endif + void getDoubletsFromHisto(GPUCACell* cells, + uint32_t* nCells, + CellNeighborsVector* cellNeighbors, + CellTracksVector* cellTracks, + TrackingRecHit2DSOAView const* __restrict__ hhp, + GPUCACell::OuterHitOfCell* isOuterHitOfCell, + int nActualPairs, + bool ideal_cond, + bool doClusterCut, + bool doZ0Cut, + bool doPtCut, + uint32_t maxNumOfDoublets) { + auto const& __restrict__ hh = *hhp; + doubletsFromHisto(layerPairs, + nActualPairs, + cells, + nCells, + cellNeighbors, + cellTracks, + hh, + isOuterHitOfCell, + phicuts, + minz, + maxz, + maxr, + ideal_cond, + doClusterCut, + doZ0Cut, + doPtCut, + maxNumOfDoublets); + } + +} // namespace gpuPixelDoublets + +#endif // RecoPixelVertexing_PixelTriplets_plugins_gpuPixelDoublets_h diff --git a/RecoPixelVertexing/PixelTriplets/plugins/gpuPixelDoubletsAlgos.h b/RecoPixelVertexing/PixelTriplets/plugins/gpuPixelDoubletsAlgos.h new file mode 100644 index 0000000000000..a12dee0785b36 --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/plugins/gpuPixelDoubletsAlgos.h @@ -0,0 +1,243 @@ +#ifndef RecoPixelVertexing_PixelTriplets_plugins_gpuPixelDoubletsAlgos_h +#define RecoPixelVertexing_PixelTriplets_plugins_gpuPixelDoubletsAlgos_h + +#include +#include +#include +#include +#include + +#include "CUDADataFormats/TrackingRecHit/interface/TrackingRecHit2DHeterogeneous.h" +#include "DataFormats/Math/interface/approx_atan2.h" +#include "HeterogeneousCore/CUDAUtilities/interface/VecArray.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cuda_assert.h" + +#include "CAConstants.h" +#include "GPUCACell.h" + +namespace gpuPixelDoublets { + + using CellNeighbors = caConstants::CellNeighbors; + using CellTracks = caConstants::CellTracks; + using CellNeighborsVector = caConstants::CellNeighborsVector; + using CellTracksVector = caConstants::CellTracksVector; + + __device__ __forceinline__ void doubletsFromHisto(uint8_t const* __restrict__ layerPairs, + uint32_t nPairs, + GPUCACell* cells, + uint32_t* nCells, + CellNeighborsVector* cellNeighbors, + CellTracksVector* cellTracks, + TrackingRecHit2DSOAView const& __restrict__ hh, + GPUCACell::OuterHitOfCell* isOuterHitOfCell, + int16_t const* __restrict__ phicuts, + float const* __restrict__ minz, + float const* __restrict__ maxz, + float const* __restrict__ maxr, + bool ideal_cond, + bool doClusterCut, + bool doZ0Cut, + bool doPtCut, + uint32_t maxNumOfDoublets) { + // ysize cuts (z in the barrel) times 8 + // these are used if doClusterCut is true + constexpr int minYsizeB1 = 36; + constexpr int minYsizeB2 = 28; + constexpr int maxDYsize12 = 28; + constexpr int maxDYsize = 20; + constexpr int maxDYPred = 20; + constexpr float dzdrFact = 8 * 0.0285 / 0.015; // from dz/dr to "DY" + + bool isOuterLadder = ideal_cond; + + using PhiBinner = TrackingRecHit2DSOAView::PhiBinner; + + auto const& __restrict__ phiBinner = hh.phiBinner(); + uint32_t const* __restrict__ offsets = hh.hitsLayerStart(); + assert(offsets); + + auto layerSize = [=](uint8_t li) { return offsets[li + 1] - offsets[li]; }; + + // nPairsMax to be optimized later (originally was 64). + // If it should be much bigger, consider using a block-wide parallel prefix scan, + // e.g. see https://nvlabs.github.io/cub/classcub_1_1_warp_scan.html + const int nPairsMax = caConstants::maxNumberOfLayerPairs; + assert(nPairs <= nPairsMax); + __shared__ uint32_t innerLayerCumulativeSize[nPairsMax]; + __shared__ uint32_t ntot; + if (threadIdx.y == 0 && threadIdx.x == 0) { + innerLayerCumulativeSize[0] = layerSize(layerPairs[0]); + for (uint32_t i = 1; i < nPairs; ++i) { + innerLayerCumulativeSize[i] = innerLayerCumulativeSize[i - 1] + layerSize(layerPairs[2 * i]); + } + ntot = innerLayerCumulativeSize[nPairs - 1]; + } + __syncthreads(); + + // x runs faster + auto idy = blockIdx.y * blockDim.y + threadIdx.y; + auto first = threadIdx.x; + auto stride = blockDim.x; + + uint32_t pairLayerId = 0; // cannot go backward + for (auto j = idy; j < ntot; j += blockDim.y * gridDim.y) { + while (j >= innerLayerCumulativeSize[pairLayerId++]) + ; + --pairLayerId; // move to lower_bound ?? + + assert(pairLayerId < nPairs); + assert(j < innerLayerCumulativeSize[pairLayerId]); + assert(0 == pairLayerId || j >= innerLayerCumulativeSize[pairLayerId - 1]); + + uint8_t inner = layerPairs[2 * pairLayerId]; + uint8_t outer = layerPairs[2 * pairLayerId + 1]; + assert(outer > inner); + + auto hoff = PhiBinner::histOff(outer); + + auto i = (0 == pairLayerId) ? j : j - innerLayerCumulativeSize[pairLayerId - 1]; + i += offsets[inner]; + + // printf("Hit in Layer %d %d %d %d\n", i, inner, pairLayerId, j); + + assert(i >= offsets[inner]); + assert(i < offsets[inner + 1]); + + // found hit corresponding to our cuda thread, now do the job + auto mi = hh.detectorIndex(i); + if (mi > gpuClustering::maxNumModules) + continue; // invalid + + /* maybe clever, not effective when zoCut is on + auto bpos = (mi%8)/4; // if barrel is 1 for z>0 + auto fpos = (outer>3) & (outer<7); + if ( ((inner<3) & (outer>3)) && bpos!=fpos) continue; + */ + + auto mez = hh.zGlobal(i); + + if (mez < minz[pairLayerId] || mez > maxz[pairLayerId]) + continue; + + int16_t mes = -1; // make compiler happy + if (doClusterCut) { + // if ideal treat inner ladder as outer + if (inner == 0) + assert(mi < 96); + isOuterLadder = ideal_cond ? true : 0 == (mi / 8) % 2; // only for B1/B2/B3 B4 is opposite, FPIX:noclue... + + // in any case we always test mes>0 ... + mes = inner > 0 || isOuterLadder ? hh.clusterSizeY(i) : -1; + + if (inner == 0 && outer > 3) // B1 and F1 + if (mes > 0 && mes < minYsizeB1) + continue; // only long cluster (5*8) + if (inner == 1 && outer > 3) // B2 and F1 + if (mes > 0 && mes < minYsizeB2) + continue; + } + auto mep = hh.iphi(i); + auto mer = hh.rGlobal(i); + + // all cuts: true if fails + constexpr float z0cut = 12.f; // cm + constexpr float hardPtCut = 0.5f; // GeV + // cm (1 GeV track has 1 GeV/c / (e * 3.8T) ~ 87 cm radius in a 3.8T field) + constexpr float minRadius = hardPtCut * 87.78f; + constexpr float minRadius2T4 = 4.f * minRadius * minRadius; + auto ptcut = [&](int j, int16_t idphi) { + auto r2t4 = minRadius2T4; + auto ri = mer; + auto ro = hh.rGlobal(j); + auto dphi = short2phi(idphi); + return dphi * dphi * (r2t4 - ri * ro) > (ro - ri) * (ro - ri); + }; + auto z0cutoff = [&](int j) { + auto zo = hh.zGlobal(j); + auto ro = hh.rGlobal(j); + auto dr = ro - mer; + return dr > maxr[pairLayerId] || dr < 0 || std::abs((mez * ro - mer * zo)) > z0cut * dr; + }; + + auto zsizeCut = [&](int j) { + auto onlyBarrel = outer < 4; + auto so = hh.clusterSizeY(j); + auto dy = inner == 0 ? maxDYsize12 : maxDYsize; + // in the barrel cut on difference in size + // in the endcap on the prediction on the first layer (actually in the barrel only: happen to be safe for endcap as well) + // FIXME move pred cut to z0cutoff to optmize loading of and computaiton ... + auto zo = hh.zGlobal(j); + auto ro = hh.rGlobal(j); + return onlyBarrel ? mes > 0 && so > 0 && std::abs(so - mes) > dy + : (inner < 4) && mes > 0 && + std::abs(mes - int(std::abs((mez - zo) / (mer - ro)) * dzdrFact + 0.5f)) > maxDYPred; + }; + + auto iphicut = phicuts[pairLayerId]; + + auto kl = PhiBinner::bin(int16_t(mep - iphicut)); + auto kh = PhiBinner::bin(int16_t(mep + iphicut)); + auto incr = [](auto& k) { return k = (k + 1) % PhiBinner::nbins(); }; + +#ifdef GPU_DEBUG + int tot = 0; + int nmin = 0; + int tooMany = 0; +#endif + + auto khh = kh; + incr(khh); + for (auto kk = kl; kk != khh; incr(kk)) { +#ifdef GPU_DEBUG + if (kk != kl && kk != kh) + nmin += phiBinner.size(kk + hoff); +#endif + auto const* __restrict__ p = phiBinner.begin(kk + hoff); + auto const* __restrict__ e = phiBinner.end(kk + hoff); + p += first; + for (; p < e; p += stride) { + auto oi = __ldg(p); + assert(oi >= offsets[outer]); + assert(oi < offsets[outer + 1]); + auto mo = hh.detectorIndex(oi); + if (mo > gpuClustering::maxNumModules) + continue; // invalid + + if (doZ0Cut && z0cutoff(oi)) + continue; + + auto mop = hh.iphi(oi); + uint16_t idphi = std::min(std::abs(int16_t(mop - mep)), std::abs(int16_t(mep - mop))); + if (idphi > iphicut) + continue; + + if (doClusterCut && zsizeCut(oi)) + continue; + if (doPtCut && ptcut(oi, idphi)) + continue; + + auto ind = atomicAdd(nCells, 1); + if (ind >= maxNumOfDoublets) { + atomicSub(nCells, 1); + break; + } // move to SimpleVector?? + // int layerPairId, int doubletId, int innerHitId, int outerHitId) + cells[ind].init(*cellNeighbors, *cellTracks, hh, pairLayerId, ind, i, oi); + isOuterHitOfCell[oi].push_back(ind); +#ifdef GPU_DEBUG + if (isOuterHitOfCell[oi].full()) + ++tooMany; + ++tot; +#endif + } + } +#ifdef GPU_DEBUG + if (tooMany > 0) + printf("OuterHitOfCell full for %d in layer %d/%d, %d,%d %d\n", i, inner, outer, nmin, tot, tooMany); +#endif + } // loop in block... + } + +} // namespace gpuPixelDoublets + +#endif // RecoPixelVertexing_PixelTriplets_plugins_gpuPixelDoubletsAlgos_h diff --git a/RecoPixelVertexing/PixelTriplets/python/caHitQuadrupletEDProducer_cfi.py b/RecoPixelVertexing/PixelTriplets/python/caHitQuadrupletEDProducer_cfi.py new file mode 100644 index 0000000000000..c72c07ae5a721 --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/python/caHitQuadrupletEDProducer_cfi.py @@ -0,0 +1,4 @@ +import FWCore.ParameterSet.Config as cms +from RecoPixelVertexing.PixelTriplets.caHitQuadrupletDefaultEDProducer_cfi import caHitQuadrupletDefaultEDProducer as _caHitQuadrupletDefaultEDProducer + +caHitQuadrupletEDProducer = _caHitQuadrupletDefaultEDProducer.clone() diff --git a/RecoPixelVertexing/PixelTriplets/test/BuildFile.xml b/RecoPixelVertexing/PixelTriplets/test/BuildFile.xml index 6d6f1553b32f3..d480d7408b9e2 100644 --- a/RecoPixelVertexing/PixelTriplets/test/BuildFile.xml +++ b/RecoPixelVertexing/PixelTriplets/test/BuildFile.xml @@ -16,3 +16,14 @@ + + + + + + + + + + + diff --git a/RecoPixelVertexing/PixelTriplets/test/CAsizes_t.cpp b/RecoPixelVertexing/PixelTriplets/test/CAsizes_t.cpp new file mode 100644 index 0000000000000..5cf2e6526b860 --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/test/CAsizes_t.cpp @@ -0,0 +1,25 @@ +#include "RecoPixelVertexing/PixelTriplets/plugins/GPUCACell.h" + +#include +#include + +template +void print() { + std::cout << "size of " << typeid(T).name() << ' ' << sizeof(T) << std::endl; +} + +int main() { + using namespace caConstants; + + print(); + print(); + print(); + print(); + print(); + print(); + print(); + + print(); + + return 0; +} diff --git a/RecoPixelVertexing/PixelTriplets/test/CircleEq_t.cpp b/RecoPixelVertexing/PixelTriplets/test/CircleEq_t.cpp new file mode 100644 index 0000000000000..504f9c144b284 --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/test/CircleEq_t.cpp @@ -0,0 +1,77 @@ +#include "RecoPixelVertexing/PixelTriplets/interface/CircleEq.h" +#include + +struct OriCircle { + using T = float; + + float radius = 0; + float x_center = 0; + float y_center = 0; + + constexpr OriCircle(T x1, T y1, T x2, T y2, T x3, T y3) { compute(x1, y1, x2, y2, x3, y3); } + + // dca to origin + constexpr T dca0() const { return std::sqrt(x_center * x_center + y_center * y_center) - radius; } + + // dca to given point + constexpr T dca(T x, T y) const { + x -= x_center; + y -= y_center; + return std::sqrt(x * x + y * y) - radius; + } + + constexpr void compute(T x1, T y1, T x2, T y2, T x3, T y3) { + auto det = (x1 - x2) * (y2 - y3) - (x2 - x3) * (y1 - y2); + + auto offset = x2 * x2 + y2 * y2; + + auto bc = (x1 * x1 + y1 * y1 - offset) * 0.5f; + + auto cd = (offset - x3 * x3 - y3 * y3) * 0.5f; + + auto idet = 1.f / det; + + x_center = (bc * (y2 - y3) - cd * (y1 - y2)) * idet; + y_center = (cd * (x1 - x2) - bc * (x2 - x3)) * idet; + + radius = std::sqrt((x2 - x_center) * (x2 - x_center) + (y2 - y_center) * (y2 - y_center)); + } +}; + +#include + +template +bool equal(T a, T b) { + // return float(a-b)==0; + return std::abs(float(a - b)) < std::abs(0.01f * a); +} + +int main() { + float r1 = 4, r2 = 8, r3 = 15; + for (float phi = -3; phi < 3.1; phi += 0.5) { + float x1 = r1 * cos(phi); + float x2 = r2 * cos(phi); + float y1 = r1 * sin(phi); + float y2 = r2 * sin(phi); + for (float phi3 = phi - 0.31; phi3 < phi + 0.31; phi3 += 0.05) { + float x3 = r3 * cos(phi3); + float y3 = r3 * sin(phi3); + + OriCircle ori(x1, y1, x2, y2, x3, y3); + CircleEq eq(x1, y1, x2, y2, x3, y3); + // std::cout << "r " << ori.radius <<' '<< eq.radius() << std::endl; + assert(equal(ori.radius, std::abs(eq.radius()))); + auto c = eq.center(); + auto dir = eq.cosdir(); + assert(equal(1.f, dir.first * dir.first + dir.second * dir.second)); + assert(equal(ori.x_center, c.first)); + assert(equal(ori.y_center, c.second)); + // std::cout << "dca " << ori.dca0() <<' '<< eq.radius()*eq.dca0() << std::endl; + assert(equal(std::abs(ori.dca0()), std::abs(eq.radius() * eq.dca0()))); + // std::cout << "dca " << ori.dca(1.,1.) <<' '<< eq.radius()*eq.dca(1.,1.) << std::endl; + assert(equal(std::abs(ori.dca(1., 1.)), std::abs(eq.radius() * eq.dca(1., 1.)))); + } + } + + return 0; +} diff --git a/RecoPixelVertexing/PixelTriplets/test/fastDPHI_t.cpp b/RecoPixelVertexing/PixelTriplets/test/fastDPHI_t.cpp new file mode 100644 index 0000000000000..8538970a196ff --- /dev/null +++ b/RecoPixelVertexing/PixelTriplets/test/fastDPHI_t.cpp @@ -0,0 +1,165 @@ +// this test documents the derivation of the fast deltaphi used in gpu doublet code.. +// +// +// +#include +#include +#include +#include + +/** +| 1) circle is parameterized as: | +| C*[(X-Xp)**2+(Y-Yp)**2] - 2*alpha*(X-Xp) - 2*beta*(Y-Yp) = 0 | +| Xp,Yp is a point on the track (Yp is at the center of the chamber); | +| C = 1/r0 is the curvature ( sign of C is charge of particle ); | +| alpha & beta are the direction cosines of the radial vector at Xp,Yp | +| i.e. alpha = C*(X0-Xp), | +| beta = C*(Y0-Yp), | +| where center of circle is at X0,Y0. | +| Alpha > 0 | +| Slope dy/dx of tangent at Xp,Yp is -alpha/beta. | +| 2) the z dimension of the helix is parameterized by gamma = dZ/dSperp | +| this is also the tangent of the pitch angle of the helix. | +| with this parameterization, (alpha,beta,gamma) rotate like a vector. | +| 3) For tracks going inward at (Xp,Yp), C, alpha, beta, and gamma change sign| +| +*/ + +template +class FastCircle { +public: + FastCircle() {} + FastCircle(T x1, T y1, T x2, T y2, T x3, T y3) { compute(x1, y1, x2, y2, x3, y3); } + + void compute(T x1, T y1, T x2, T y2, T x3, T y3); + + T m_xp; + T m_yp; + T m_c; + T m_alpha; + T m_beta; +}; + +template +void FastCircle::compute(T x1, T y1, T x2, T y2, T x3, T y3) { + bool flip = std::abs(x3 - x1) > std::abs(y3 - y1); + + auto x1p = x1 - x2; + auto y1p = y1 - y2; + auto d12 = x1p * x1p + y1p * y1p; + auto x3p = x3 - x2; + auto y3p = y3 - y2; + auto d32 = x3p * x3p + y3p * y3p; + + if (flip) { + std::swap(x1p, y1p); + std::swap(x3p, y3p); + } + + auto num = x1p * y3p - y1p * x3p; // num also gives correct sign for CT + auto det = d12 * y3p - d32 * y1p; + if (std::abs(det) == 0) { + // and why we flip???? + } + auto ct = num / det; + auto sn = det > 0 ? T(1.) : T(-1.); + auto st2 = (d12 * x3p - d32 * x1p) / det; + auto seq = T(1.) + st2 * st2; + auto al2 = sn / std::sqrt(seq); + auto be2 = -st2 * al2; + ct *= T(2.) * al2; + + if (flip) { + std::swap(x1p, y1p); + std::swap(al2, be2); + al2 = -al2; + be2 = -be2; + ct = -ct; + } + + m_xp = x1; + m_yp = y1; + m_c = ct; + m_alpha = al2 - ct * x1p; + m_beta = be2 - ct * y1p; +} + +// compute curvature given two points (and origin) +float fastDPHI(float ri, float ro, float dphi) { + /* + x3=0 y1=0 x1=0; + y3=ro + */ + + // auto x2 = ri*dphi; + // auto y2 = ri*(1.f-0.5f*dphi*dphi); + + /* + auto x1p = x1-x2; + auto y1p = y1-y2; + auto d12 = x1p*x1p + y1p*y1p; + auto x3p = x3-x2; + auto y3p = y3-y2; + auto d32 = x3p*x3p + y3p*y3p; + */ + + /* + auto x1p = -x2; + auto y1p = -y2; + auto d12 = ri*ri; + auto x3p = -x2; + auto y3p = ro-y2; + auto d32 = ri*ri + ro*ro - 2.f*ro*y2; + */ + + // auto rat = (ro -2.f*y2); + // auto det = ro - ri - (ro - 2.f*ri -0.5f*ro)*dphi*dphi; + + //auto det2 = (ro-ri)*(ro-ri) -2.*(ro-ri)*(ro - 2.f*ri -0.5f*ro)*dphi*dphi; + // auto seq = det2 + dphi*dphi*(ro-2.f*ri)*(ro-2.f*ri); // *rat2; + // auto seq = (ro-ri)*(ro-ri) + dphi*dphi*ri*ro; + + // and little by little simplifing and removing higher over terms + // we get + auto r2 = (ro - ri) * (ro - ri) / (dphi * dphi) + ri * ro; + + // d2 = (ro-ri)*(ro-ri)/(4.f*r2 -ri*ro); + // return -2.f*dphi/std::sqrt(seq); + + return -1.f / std::sqrt(r2 / 4.f); +} + +#include + +template +bool equal(T a, T b) { + // return float(a-b)==0; + return std::abs(float(a - b)) < std::abs(0.01f * a); +} + +int n = 0; +void go(float ri, float ro, float dphi, bool print = false) { + ++n; + float x3 = 0.f, y3 = ro; + float x2 = ri * sin(dphi); + float y2 = ri * cos(dphi); + + FastCircle c(0, 0, x2, y2, x3, y3); + + auto cc = fastDPHI(ri, ro, dphi); + if (print) + std::cout << c.m_c << ' ' << cc << std::endl; + assert(equal(c.m_c, cc)); +} + +int main() { + go(4., 7., 0.1, true); + + for (float r1 = 2; r1 < 15; r1 += 1) + for (float dr = 0.5; dr < 10; dr += 0.5) + for (float dphi = 0.02; dphi < 0.2; dphi += 0.2) + go(r1, r1 + dr, dphi); + + std::cout << "done " << n << std::endl; + return 0; +}; diff --git a/RecoPixelVertexing/PixelVertexFinding/plugins/BuildFile.xml b/RecoPixelVertexing/PixelVertexFinding/plugins/BuildFile.xml index 427799cb122b5..99b91b2587bcf 100644 --- a/RecoPixelVertexing/PixelVertexFinding/plugins/BuildFile.xml +++ b/RecoPixelVertexing/PixelVertexFinding/plugins/BuildFile.xml @@ -1,3 +1,4 @@ + @@ -15,10 +16,12 @@ + + - + diff --git a/RecoPixelVertexing/PixelVertexFinding/plugins/FastPrimaryVertexProducer.cc b/RecoPixelVertexing/PixelVertexFinding/plugins/FastPrimaryVertexProducer.cc index 6c74ff25390c9..284d0c5b7913a 100644 --- a/RecoPixelVertexing/PixelVertexFinding/plugins/FastPrimaryVertexProducer.cc +++ b/RecoPixelVertexing/PixelVertexFinding/plugins/FastPrimaryVertexProducer.cc @@ -76,21 +76,24 @@ class FastPrimaryVertexProducer : public edm::global::EDProducer<> { private: void produce(edm::StreamID, edm::Event&, const edm::EventSetup&) const override; + + edm::ESGetToken const m_geomToken; + edm::ESGetToken const m_pixelCPEToken; edm::EDGetTokenT m_clusters; edm::EDGetTokenT > m_jets; edm::EDGetTokenT m_beamSpot; - std::string m_pixelCPE; double m_maxZ; double m_maxSizeX; double m_maxDeltaPhi; double m_clusterLength; }; -FastPrimaryVertexProducer::FastPrimaryVertexProducer(const edm::ParameterSet& iConfig) { +FastPrimaryVertexProducer::FastPrimaryVertexProducer(const edm::ParameterSet& iConfig) + : m_geomToken(esConsumes()), + m_pixelCPEToken(esConsumes(edm::ESInputTag("", iConfig.getParameter("pixelCPE")))) { m_clusters = consumes(iConfig.getParameter("clusters")); m_jets = consumes >(iConfig.getParameter("jets")); m_beamSpot = consumes(iConfig.getParameter("beamSpot")); - m_pixelCPE = iConfig.getParameter("pixelCPE"); m_maxZ = iConfig.getParameter("maxZ"); m_maxSizeX = iConfig.getParameter("maxSizeX"); m_maxDeltaPhi = iConfig.getParameter("maxDeltaPhi"); @@ -122,17 +125,12 @@ void FastPrimaryVertexProducer::produce(edm::StreamID, edm::Event& iEvent, const } } - edm::ESHandle pe; - const PixelClusterParameterEstimator* pp; - iSetup.get().get(m_pixelCPE, pe); - pp = pe.product(); + const PixelClusterParameterEstimator* pp = &iSetup.getData(m_pixelCPEToken); edm::Handle beamSpot; iEvent.getByToken(m_beamSpot, beamSpot); - edm::ESHandle tracker; - iSetup.get().get(tracker); - const TrackerGeometry* trackerGeometry = tracker.product(); + const TrackerGeometry* trackerGeometry = &iSetup.getData(m_geomToken); float lengthBmodule = 6.66; //cm std::vector zProjections; diff --git a/RecoPixelVertexing/PixelVertexFinding/plugins/FastPrimaryVertexWithWeightsProducer.cc b/RecoPixelVertexing/PixelVertexFinding/plugins/FastPrimaryVertexWithWeightsProducer.cc index 014cc6998fce9..d4717f13c3ddc 100644 --- a/RecoPixelVertexing/PixelVertexFinding/plugins/FastPrimaryVertexWithWeightsProducer.cc +++ b/RecoPixelVertexing/PixelVertexFinding/plugins/FastPrimaryVertexWithWeightsProducer.cc @@ -61,9 +61,11 @@ class FastPrimaryVertexWithWeightsProducer : public edm::stream::EDProducer<> { private: void produce(edm::Event&, const edm::EventSetup&) override; + edm::ESGetToken const m_geomToken; + edm::ESGetToken const m_pixelCPEToken; + const double m_maxZ; // Use only pixel clusters with |z| < maxZ const edm::InputTag m_clusters; // PixelClusters InputTag - std::string m_pixelCPE; // PixelCPE (PixelClusterParameterEstimator) edm::EDGetTokenT clustersToken; edm::EDGetTokenT beamSpotToken; edm::EDGetTokenT > jetsToken; @@ -125,9 +127,9 @@ class FastPrimaryVertexWithWeightsProducer : public edm::stream::EDProducer<> { }; FastPrimaryVertexWithWeightsProducer::FastPrimaryVertexWithWeightsProducer(const edm::ParameterSet& iConfig) - : m_maxZ(iConfig.getParameter("maxZ")), - m_pixelCPE(iConfig.getParameter("pixelCPE")), - + : m_geomToken(esConsumes()), + m_pixelCPEToken(esConsumes(edm::ESInputTag("", iConfig.getParameter("pixelCPE")))), + m_maxZ(iConfig.getParameter("maxZ")), m_njets(iConfig.getParameter("njets")), m_maxJetEta(iConfig.getParameter("maxJetEta")), m_minJetPt(iConfig.getParameter("minJetPt")), @@ -248,19 +250,14 @@ void FastPrimaryVertexWithWeightsProducer::produce(edm::Event& iEvent, const edm } //get PixelClusterParameterEstimator - edm::ESHandle pe; - const PixelClusterParameterEstimator* pp; - iSetup.get().get(m_pixelCPE, pe); - pp = pe.product(); + const PixelClusterParameterEstimator* pp = &iSetup.getData(m_pixelCPEToken); //get beamSpot edm::Handle beamSpot; iEvent.getByToken(beamSpotToken, beamSpot); //get TrackerGeometry - edm::ESHandle tracker; - iSetup.get().get(tracker); - const TrackerGeometry* trackerGeometry = tracker.product(); + const TrackerGeometry* trackerGeometry = &iSetup.getData(m_geomToken); // PART I: get z-projections with z-weights std::vector zProjections; diff --git a/RecoPixelVertexing/PixelVertexFinding/plugins/PixelVertexProducerCUDA.cc b/RecoPixelVertexing/PixelVertexFinding/plugins/PixelVertexProducerCUDA.cc new file mode 100644 index 0000000000000..e2c2bc76c8612 --- /dev/null +++ b/RecoPixelVertexing/PixelVertexFinding/plugins/PixelVertexProducerCUDA.cc @@ -0,0 +1,141 @@ +#include + +#include "CUDADataFormats/Common/interface/Product.h" +#include "DataFormats/Common/interface/Handle.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/global/EDProducer.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/Utilities/interface/InputTag.h" +#include "FWCore/PluginManager/interface/ModuleDef.h" +#include "FWCore/Utilities/interface/EDGetToken.h" +#include "FWCore/Utilities/interface/RunningAverage.h" +#include "HeterogeneousCore/CUDACore/interface/ScopedContext.h" + +#include "gpuVertexFinder.h" + +#undef PIXVERTEX_DEBUG_PRODUCE + +class PixelVertexProducerCUDA : public edm::global::EDProducer<> { +public: + explicit PixelVertexProducerCUDA(const edm::ParameterSet& iConfig); + ~PixelVertexProducerCUDA() override = default; + + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + +private: + void produceOnGPU(edm::StreamID streamID, edm::Event& iEvent, const edm::EventSetup& iSetup) const; + void produceOnCPU(edm::StreamID streamID, edm::Event& iEvent, const edm::EventSetup& iSetup) const; + void produce(edm::StreamID streamID, edm::Event& iEvent, const edm::EventSetup& iSetup) const override; + + bool onGPU_; + + edm::EDGetTokenT> tokenGPUTrack_; + edm::EDPutTokenT tokenGPUVertex_; + edm::EDGetTokenT tokenCPUTrack_; + edm::EDPutTokenT tokenCPUVertex_; + + const gpuVertexFinder::Producer gpuAlgo_; + + // Tracking cuts before sending tracks to vertex algo + const float ptMin_; +}; + +PixelVertexProducerCUDA::PixelVertexProducerCUDA(const edm::ParameterSet& conf) + : onGPU_(conf.getParameter("onGPU")), + gpuAlgo_(conf.getParameter("oneKernel"), + conf.getParameter("useDensity"), + conf.getParameter("useDBSCAN"), + conf.getParameter("useIterative"), + conf.getParameter("minT"), + conf.getParameter("eps"), + conf.getParameter("errmax"), + conf.getParameter("chi2max")), + ptMin_(conf.getParameter("PtMin")) // 0.5 GeV +{ + if (onGPU_) { + tokenGPUTrack_ = + consumes>(conf.getParameter("pixelTrackSrc")); + tokenGPUVertex_ = produces(); + } else { + tokenCPUTrack_ = consumes(conf.getParameter("pixelTrackSrc")); + tokenCPUVertex_ = produces(); + } +} + +void PixelVertexProducerCUDA::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + + // Only one of these three algos can be used at once. + // Maybe this should become a Plugin Factory + desc.add("onGPU", true); + desc.add("oneKernel", true); + desc.add("useDensity", true); + desc.add("useDBSCAN", false); + desc.add("useIterative", false); + + desc.add("minT", 2); // min number of neighbours to be "core" + desc.add("eps", 0.07); // max absolute distance to cluster + desc.add("errmax", 0.01); // max error to be "seed" + desc.add("chi2max", 9.); // max normalized distance to cluster + + desc.add("PtMin", 0.5); + desc.add("pixelTrackSrc", edm::InputTag("caHitNtupletCUDA")); + + auto label = "pixelVertexCUDA"; + descriptions.add(label, desc); +} + +void PixelVertexProducerCUDA::produceOnGPU(edm::StreamID streamID, + edm::Event& iEvent, + const edm::EventSetup& iSetup) const { + edm::Handle> hTracks; + iEvent.getByToken(tokenGPUTrack_, hTracks); + + cms::cuda::ScopedContextProduce ctx{*hTracks}; + auto const* tracks = ctx.get(*hTracks).get(); + + assert(tracks); + + ctx.emplace(iEvent, tokenGPUVertex_, gpuAlgo_.makeAsync(ctx.stream(), tracks, ptMin_)); +} + +void PixelVertexProducerCUDA::produceOnCPU(edm::StreamID streamID, + edm::Event& iEvent, + const edm::EventSetup& iSetup) const { + auto const* tracks = iEvent.get(tokenCPUTrack_).get(); + assert(tracks); + +#ifdef PIXVERTEX_DEBUG_PRODUCE + auto const& tsoa = *tracks; + auto maxTracks = tsoa.stride(); + std::cout << "size of SoA " << sizeof(tsoa) << " stride " << maxTracks << std::endl; + + int32_t nt = 0; + for (int32_t it = 0; it < maxTracks; ++it) { + auto nHits = tsoa.nHits(it); + assert(nHits == int(tsoa.hitIndices.size(it))); + if (nHits == 0) + break; // this is a guard: maybe we need to move to nTracks... + nt++; + } + std::cout << "found " << nt << " tracks in cpu SoA for Vertexing at " << tracks << std::endl; +#endif // PIXVERTEX_DEBUG_PRODUCE + + iEvent.emplace(tokenCPUVertex_, gpuAlgo_.make(tracks, ptMin_)); +} + +void PixelVertexProducerCUDA::produce(edm::StreamID streamID, edm::Event& iEvent, const edm::EventSetup& iSetup) const { + if (onGPU_) { + produceOnGPU(streamID, iEvent, iSetup); + } else { + produceOnCPU(streamID, iEvent, iSetup); + } +} + +DEFINE_FWK_MODULE(PixelVertexProducerCUDA); diff --git a/RecoPixelVertexing/PixelVertexFinding/plugins/PixelVertexProducerFromSoA.cc b/RecoPixelVertexing/PixelVertexFinding/plugins/PixelVertexProducerFromSoA.cc new file mode 100644 index 0000000000000..62b9bb46bd4a5 --- /dev/null +++ b/RecoPixelVertexing/PixelVertexFinding/plugins/PixelVertexProducerFromSoA.cc @@ -0,0 +1,175 @@ +#include "CUDADataFormats/Vertex/interface/ZVertexHeterogeneous.h" +#include "DataFormats/BeamSpot/interface/BeamSpot.h" +#include "DataFormats/Common/interface/OrphanHandle.h" +#include "DataFormats/TrackReco/interface/Track.h" +#include "DataFormats/TrackReco/interface/TrackExtra.h" +#include "DataFormats/TrackReco/interface/TrackFwd.h" +#include "DataFormats/VertexReco/interface/Vertex.h" +#include "DataFormats/VertexReco/interface/VertexFwd.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/global/EDProducer.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/PluginManager/interface/ModuleDef.h" +#include "FWCore/Utilities/interface/EDGetToken.h" +#include "FWCore/Utilities/interface/InputTag.h" +#include "Geometry/Records/interface/TrackerTopologyRcd.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" + +#undef PIXVERTEX_DEBUG_PRODUCE + +class PixelVertexProducerFromSoA : public edm::global::EDProducer<> { +public: + using IndToEdm = std::vector; + + explicit PixelVertexProducerFromSoA(const edm::ParameterSet &iConfig); + ~PixelVertexProducerFromSoA() override = default; + + static void fillDescriptions(edm::ConfigurationDescriptions &descriptions); + +private: + void produce(edm::StreamID streamID, edm::Event &iEvent, const edm::EventSetup &iSetup) const override; + + edm::EDGetTokenT tokenVertex_; + edm::EDGetTokenT tokenBeamSpot_; + edm::EDGetTokenT tokenTracks_; + edm::EDGetTokenT tokenIndToEdm_; +}; + +PixelVertexProducerFromSoA::PixelVertexProducerFromSoA(const edm::ParameterSet &conf) + : tokenVertex_(consumes(conf.getParameter("src"))), + tokenBeamSpot_(consumes(conf.getParameter("beamSpot"))), + tokenTracks_(consumes(conf.getParameter("TrackCollection"))), + tokenIndToEdm_(consumes(conf.getParameter("TrackCollection"))) { + produces(); +} + +void PixelVertexProducerFromSoA::fillDescriptions(edm::ConfigurationDescriptions &descriptions) { + edm::ParameterSetDescription desc; + + desc.add("TrackCollection", edm::InputTag("pixelTracks")); + desc.add("beamSpot", edm::InputTag("offlineBeamSpot")); + desc.add("src", edm::InputTag("pixelVertexSoA")); + + descriptions.add("pixelVertexFromSoA", desc); +} + +void PixelVertexProducerFromSoA::produce(edm::StreamID streamID, edm::Event &iEvent, const edm::EventSetup &) const { + auto vertexes = std::make_unique(); + + auto tracksHandle = iEvent.getHandle(tokenTracks_); + auto tracksSize = tracksHandle->size(); + auto const &indToEdm = iEvent.get(tokenIndToEdm_); + auto bsHandle = iEvent.getHandle(tokenBeamSpot_); + + float x0 = 0, y0 = 0, z0 = 0, dxdz = 0, dydz = 0; + std::vector itrk; + if (!bsHandle.isValid()) { + edm::LogWarning("PixelVertexProducer") << "No beamspot found. returning vertexes with (0,0,Z) "; + } else { + const reco::BeamSpot &bs = *bsHandle; + x0 = bs.x0(); + y0 = bs.y0(); + z0 = bs.z0(); + dxdz = bs.dxdz(); + dydz = bs.dydz(); + } + + auto const &soa = *(iEvent.get(tokenVertex_).get()); + + int nv = soa.nvFinal; + +#ifdef PIXVERTEX_DEBUG_PRODUCE + std::cout << "converting " << nv << " vertices " + << " from " << indToEdm.size() << " tracks" << std::endl; +#endif // PIXVERTEX_DEBUG_PRODUCE + + std::set uind; // fort verifing index consistency + for (int j = nv - 1; j >= 0; --j) { + auto i = soa.sortInd[j]; // on gpu sorted in ascending order.... + assert(i < nv); + uind.insert(i); + assert(itrk.empty()); + auto z = soa.zv[i]; + auto x = x0 + dxdz * z; + auto y = y0 + dydz * z; + z += z0; + reco::Vertex::Error err; + err(2, 2) = 1.f / soa.wv[i]; + err(2, 2) *= 2.; // artifically inflate error + //Copy also the tracks (no intention to be efficient....) + for (auto k = 0U; k < indToEdm.size(); ++k) { + if (soa.idv[k] == int16_t(i)) + itrk.push_back(k); + } + auto nt = itrk.size(); + if (nt == 0) { +#ifdef PIXVERTEX_DEBUG_PRODUCE + std::cout << "vertex " << i << " with no tracks..." << std::endl; +#endif // PIXVERTEX_DEBUG_PRODUCE + continue; + } + if (nt < 2) { + itrk.clear(); + continue; + } // remove outliers + (*vertexes).emplace_back(reco::Vertex::Point(x, y, z), err, soa.chi2[i], soa.ndof[i], nt); + auto &v = (*vertexes).back(); + for (auto it : itrk) { + assert(it < int(indToEdm.size())); + auto k = indToEdm[it]; + if (k > tracksSize) { + edm::LogWarning("PixelVertexProducer") << "oops track " << it << " does not exists on CPU " << k; + continue; + } + auto tk = reco::TrackRef(tracksHandle, k); + v.add(reco::TrackBaseRef(tk)); + } + itrk.clear(); + } + + LogDebug("PixelVertexProducer") << ": Found " << vertexes->size() << " vertexes\n"; + for (unsigned int i = 0; i < vertexes->size(); ++i) { + LogDebug("PixelVertexProducer") << "Vertex number " << i << " has " << (*vertexes)[i].tracksSize() + << " tracks with a position of " << (*vertexes)[i].z() << " +- " + << std::sqrt((*vertexes)[i].covariance(2, 2)); + } + + // legacy logic.... + if (vertexes->empty() && bsHandle.isValid()) { + const reco::BeamSpot &bs = *bsHandle; + + GlobalError bse(bs.rotatedCovariance3D()); + if ((bse.cxx() <= 0.) || (bse.cyy() <= 0.) || (bse.czz() <= 0.)) { + AlgebraicSymMatrix33 we; + we(0, 0) = 10000; + we(1, 1) = 10000; + we(2, 2) = 10000; + vertexes->push_back(reco::Vertex(bs.position(), we, 0., 0., 0)); + + edm::LogInfo("PixelVertexProducer") << "No vertices found. Beamspot with invalid errors " << bse.matrix() + << "\nWill put Vertex derived from dummy-fake BeamSpot into Event.\n" + << (*vertexes)[0].x() << "\n" + << (*vertexes)[0].y() << "\n" + << (*vertexes)[0].z() << "\n"; + } else { + vertexes->push_back(reco::Vertex(bs.position(), bs.rotatedCovariance3D(), 0., 0., 0)); + + edm::LogInfo("PixelVertexProducer") << "No vertices found. Will put Vertex derived from BeamSpot into Event:\n" + << (*vertexes)[0].x() << "\n" + << (*vertexes)[0].y() << "\n" + << (*vertexes)[0].z() << "\n"; + } + } else if (vertexes->empty() && !bsHandle.isValid()) { + edm::LogWarning("PixelVertexProducer") << "No beamspot and no vertex found. No vertex returned."; + } + + iEvent.put(std::move(vertexes)); +} + +DEFINE_FWK_MODULE(PixelVertexProducerFromSoA); diff --git a/RecoPixelVertexing/PixelVertexFinding/plugins/PixelVertexSoAFromCUDA.cc b/RecoPixelVertexing/PixelVertexFinding/plugins/PixelVertexSoAFromCUDA.cc new file mode 100644 index 0000000000000..0cadf24580cf7 --- /dev/null +++ b/RecoPixelVertexing/PixelVertexFinding/plugins/PixelVertexSoAFromCUDA.cc @@ -0,0 +1,65 @@ +#include + +#include "CUDADataFormats/Common/interface/Product.h" +#include "CUDADataFormats/Common/interface/HostProduct.h" +#include "CUDADataFormats/Vertex/interface/ZVertexHeterogeneous.h" +#include "DataFormats/Common/interface/Handle.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/stream/EDProducer.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/PluginManager/interface/ModuleDef.h" +#include "FWCore/Utilities/interface/EDGetToken.h" +#include "FWCore/Utilities/interface/InputTag.h" +#include "HeterogeneousCore/CUDACore/interface/ScopedContext.h" + +class PixelVertexSoAFromCUDA : public edm::stream::EDProducer { +public: + explicit PixelVertexSoAFromCUDA(const edm::ParameterSet& iConfig); + ~PixelVertexSoAFromCUDA() override = default; + + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + +private: + void acquire(edm::Event const& iEvent, + edm::EventSetup const& iSetup, + edm::WaitingTaskWithArenaHolder waitingTaskHolder) override; + void produce(edm::Event& iEvent, edm::EventSetup const& iSetup) override; + + edm::EDGetTokenT> tokenCUDA_; + edm::EDPutTokenT tokenSOA_; + + cms::cuda::host::unique_ptr m_soa; +}; + +PixelVertexSoAFromCUDA::PixelVertexSoAFromCUDA(const edm::ParameterSet& iConfig) + : tokenCUDA_(consumes>(iConfig.getParameter("src"))), + tokenSOA_(produces()) {} + +void PixelVertexSoAFromCUDA::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + + desc.add("src", edm::InputTag("pixelVertexCUDA")); + descriptions.add("pixelVertexSoA", desc); +} + +void PixelVertexSoAFromCUDA::acquire(edm::Event const& iEvent, + edm::EventSetup const& iSetup, + edm::WaitingTaskWithArenaHolder waitingTaskHolder) { + auto const& inputDataWrapped = iEvent.get(tokenCUDA_); + cms::cuda::ScopedContextAcquire ctx{inputDataWrapped, std::move(waitingTaskHolder)}; + auto const& inputData = ctx.get(inputDataWrapped); + + m_soa = inputData.toHostAsync(ctx.stream()); +} + +void PixelVertexSoAFromCUDA::produce(edm::Event& iEvent, edm::EventSetup const& iSetup) { + // No copies.... + iEvent.emplace(tokenSOA_, ZVertexHeterogeneous(std::move(m_soa))); +} + +DEFINE_FWK_MODULE(PixelVertexSoAFromCUDA); diff --git a/RecoPixelVertexing/PixelVertexFinding/plugins/gpuClusterTracksByDensity.h b/RecoPixelVertexing/PixelVertexFinding/plugins/gpuClusterTracksByDensity.h new file mode 100644 index 0000000000000..b19aeb5930fc6 --- /dev/null +++ b/RecoPixelVertexing/PixelVertexFinding/plugins/gpuClusterTracksByDensity.h @@ -0,0 +1,234 @@ +#ifndef RecoPixelVertexing_PixelVertexFinding_plugins_gpuClusterTracksByDensity_h +#define RecoPixelVertexing_PixelVertexFinding_plugins_gpuClusterTracksByDensity_h + +#include +#include +#include + +#include "HeterogeneousCore/CUDAUtilities/interface/HistoContainer.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cuda_assert.h" + +#include "gpuVertexFinder.h" + +namespace gpuVertexFinder { + + // this algo does not really scale as it works in a single block... + // enough for <10K tracks we have + // + // based on Rodrighez&Laio algo + // + __device__ __forceinline__ void clusterTracksByDensity(gpuVertexFinder::ZVertices* pdata, + gpuVertexFinder::WorkSpace* pws, + int minT, // min number of neighbours to be "seed" + float eps, // max absolute distance to cluster + float errmax, // max error to be "seed" + float chi2max // max normalized distance to cluster + ) { + using namespace gpuVertexFinder; + constexpr bool verbose = false; // in principle the compiler should optmize out if false + + if (verbose && 0 == threadIdx.x) + printf("params %d %f %f %f\n", minT, eps, errmax, chi2max); + + auto er2mx = errmax * errmax; + + auto& __restrict__ data = *pdata; + auto& __restrict__ ws = *pws; + auto nt = ws.ntrks; + float const* __restrict__ zt = ws.zt; + float const* __restrict__ ezt2 = ws.ezt2; + + uint32_t& nvFinal = data.nvFinal; + uint32_t& nvIntermediate = ws.nvIntermediate; + + uint8_t* __restrict__ izt = ws.izt; + int32_t* __restrict__ nn = data.ndof; + int32_t* __restrict__ iv = ws.iv; + + assert(pdata); + assert(zt); + + using Hist = cms::cuda::HistoContainer; + __shared__ Hist hist; + __shared__ typename Hist::Counter hws[32]; + for (auto j = threadIdx.x; j < Hist::totbins(); j += blockDim.x) { + hist.off[j] = 0; + } + __syncthreads(); + + if (verbose && 0 == threadIdx.x) + printf("booked hist with %d bins, size %d for %d tracks\n", hist.nbins(), hist.capacity(), nt); + + assert(nt <= hist.capacity()); + + // fill hist (bin shall be wider than "eps") + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + assert(i < ZVertices::MAXTRACKS); + int iz = int(zt[i] * 10.); // valid if eps<=0.1 + // iz = std::clamp(iz, INT8_MIN, INT8_MAX); // sorry c++17 only + iz = std::min(std::max(iz, INT8_MIN), INT8_MAX); + izt[i] = iz - INT8_MIN; + assert(iz - INT8_MIN >= 0); + assert(iz - INT8_MIN < 256); + hist.count(izt[i]); + iv[i] = i; + nn[i] = 0; + } + __syncthreads(); + if (threadIdx.x < 32) + hws[threadIdx.x] = 0; // used by prefix scan... + __syncthreads(); + hist.finalize(hws); + __syncthreads(); + assert(hist.size() == nt); + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + hist.fill(izt[i], uint16_t(i)); + } + __syncthreads(); + + // count neighbours + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + if (ezt2[i] > er2mx) + continue; + auto loop = [&](uint32_t j) { + if (i == j) + return; + auto dist = std::abs(zt[i] - zt[j]); + if (dist > eps) + return; + if (dist * dist > chi2max * (ezt2[i] + ezt2[j])) + return; + nn[i]++; + }; + + cms::cuda::forEachInBins(hist, izt[i], 1, loop); + } + + __syncthreads(); + + // find closest above me .... (we ignore the possibility of two j at same distance from i) + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + float mdist = eps; + auto loop = [&](uint32_t j) { + if (nn[j] < nn[i]) + return; + if (nn[j] == nn[i] && zt[j] >= zt[i]) + return; // if equal use natural order... + auto dist = std::abs(zt[i] - zt[j]); + if (dist > mdist) + return; + if (dist * dist > chi2max * (ezt2[i] + ezt2[j])) + return; // (break natural order???) + mdist = dist; + iv[i] = j; // assign to cluster (better be unique??) + }; + cms::cuda::forEachInBins(hist, izt[i], 1, loop); + } + + __syncthreads(); + +#ifdef GPU_DEBUG + // mini verification + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + if (iv[i] != int(i)) + assert(iv[iv[i]] != int(i)); + } + __syncthreads(); +#endif + + // consolidate graph (percolate index of seed) + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + auto m = iv[i]; + while (m != iv[m]) + m = iv[m]; + iv[i] = m; + } + +#ifdef GPU_DEBUG + __syncthreads(); + // mini verification + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + if (iv[i] != int(i)) + assert(iv[iv[i]] != int(i)); + } +#endif + +#ifdef GPU_DEBUG + // and verify that we did not spit any cluster... + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + auto minJ = i; + auto mdist = eps; + auto loop = [&](uint32_t j) { + if (nn[j] < nn[i]) + return; + if (nn[j] == nn[i] && zt[j] >= zt[i]) + return; // if equal use natural order... + auto dist = std::abs(zt[i] - zt[j]); + if (dist > mdist) + return; + if (dist * dist > chi2max * (ezt2[i] + ezt2[j])) + return; + mdist = dist; + minJ = j; + }; + cms::cuda::forEachInBins(hist, izt[i], 1, loop); + // should belong to the same cluster... + assert(iv[i] == iv[minJ]); + assert(nn[i] <= nn[iv[i]]); + } + __syncthreads(); +#endif + + __shared__ unsigned int foundClusters; + foundClusters = 0; + __syncthreads(); + + // find the number of different clusters, identified by a tracks with clus[i] == i and density larger than threshold; + // mark these tracks with a negative id. + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + if (iv[i] == int(i)) { + if (nn[i] >= minT) { + auto old = atomicInc(&foundClusters, 0xffffffff); + iv[i] = -(old + 1); + } else { // noise + iv[i] = -9998; + } + } + } + __syncthreads(); + + assert(foundClusters < ZVertices::MAXVTX); + + // propagate the negative id to all the tracks in the cluster. + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + if (iv[i] >= 0) { + // mark each track in a cluster with the same id as the first one + iv[i] = iv[iv[i]]; + } + } + __syncthreads(); + + // adjust the cluster id to be a positive value starting from 0 + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + iv[i] = -iv[i] - 1; + } + + nvIntermediate = nvFinal = foundClusters; + + if (verbose && 0 == threadIdx.x) + printf("found %d proto vertices\n", foundClusters); + } + + __global__ void clusterTracksByDensityKernel(gpuVertexFinder::ZVertices* pdata, + gpuVertexFinder::WorkSpace* pws, + int minT, // min number of neighbours to be "seed" + float eps, // max absolute distance to cluster + float errmax, // max error to be "seed" + float chi2max // max normalized distance to cluster + ) { + clusterTracksByDensity(pdata, pws, minT, eps, errmax, chi2max); + } + +} // namespace gpuVertexFinder + +#endif // RecoPixelVertexing_PixelVertexFinding_plugins_gpuClusterTracksByDensity_h diff --git a/RecoPixelVertexing/PixelVertexFinding/plugins/gpuClusterTracksDBSCAN.h b/RecoPixelVertexing/PixelVertexFinding/plugins/gpuClusterTracksDBSCAN.h new file mode 100644 index 0000000000000..22ba1e15b4e05 --- /dev/null +++ b/RecoPixelVertexing/PixelVertexFinding/plugins/gpuClusterTracksDBSCAN.h @@ -0,0 +1,241 @@ +#ifndef RecoPixelVertexing_PixelVertexFinding_plugins_gpuClusterTracksDBSCAN_h +#define RecoPixelVertexing_PixelVertexFinding_plugins_gpuClusterTracksDBSCAN_h + +#include +#include +#include + +#include "HeterogeneousCore/CUDAUtilities/interface/HistoContainer.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cuda_assert.h" + +#include "gpuVertexFinder.h" + +namespace gpuVertexFinder { + + // this algo does not really scale as it works in a single block... + // enough for <10K tracks we have + __global__ void clusterTracksDBSCAN(ZVertices* pdata, + WorkSpace* pws, + int minT, // min number of neighbours to be "core" + float eps, // max absolute distance to cluster + float errmax, // max error to be "seed" + float chi2max // max normalized distance to cluster + ) { + constexpr bool verbose = false; // in principle the compiler should optmize out if false + + if (verbose && 0 == threadIdx.x) + printf("params %d %f %f %f\n", minT, eps, errmax, chi2max); + + auto er2mx = errmax * errmax; + + auto& __restrict__ data = *pdata; + auto& __restrict__ ws = *pws; + auto nt = ws.ntrks; + float const* __restrict__ zt = ws.zt; + float const* __restrict__ ezt2 = ws.ezt2; + + uint32_t& nvFinal = data.nvFinal; + uint32_t& nvIntermediate = ws.nvIntermediate; + + uint8_t* __restrict__ izt = ws.izt; + int32_t* __restrict__ nn = data.ndof; + int32_t* __restrict__ iv = ws.iv; + + assert(pdata); + assert(zt); + + using Hist = cms::cuda::HistoContainer; + __shared__ Hist hist; + __shared__ typename Hist::Counter hws[32]; + for (auto j = threadIdx.x; j < Hist::totbins(); j += blockDim.x) { + hist.off[j] = 0; + } + __syncthreads(); + + if (verbose && 0 == threadIdx.x) + printf("booked hist with %d bins, size %d for %d tracks\n", hist.nbins(), hist.capacity(), nt); + + assert(nt <= hist.capacity()); + + // fill hist (bin shall be wider than "eps") + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + assert(i < ZVertices::MAXTRACKS); + int iz = int(zt[i] * 10.); // valid if eps<=0.1 + iz = std::clamp(iz, INT8_MIN, INT8_MAX); + izt[i] = iz - INT8_MIN; + assert(iz - INT8_MIN >= 0); + assert(iz - INT8_MIN < 256); + hist.count(izt[i]); + iv[i] = i; + nn[i] = 0; + } + __syncthreads(); + if (threadIdx.x < 32) + hws[threadIdx.x] = 0; // used by prefix scan... + __syncthreads(); + hist.finalize(hws); + __syncthreads(); + assert(hist.size() == nt); + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + hist.fill(izt[i], uint16_t(i)); + } + __syncthreads(); + + // count neighbours + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + if (ezt2[i] > er2mx) + continue; + auto loop = [&](uint32_t j) { + if (i == j) + return; + auto dist = std::abs(zt[i] - zt[j]); + if (dist > eps) + return; + // if (dist*dist>chi2max*(ezt2[i]+ezt2[j])) return; + nn[i]++; + }; + + cms::cuda::forEachInBins(hist, izt[i], 1, loop); + } + + __syncthreads(); + + // find NN with smaller z... + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + if (nn[i] < minT) + continue; // DBSCAN core rule + float mz = zt[i]; + auto loop = [&](uint32_t j) { + if (zt[j] >= mz) + return; + if (nn[j] < minT) + return; // DBSCAN core rule + auto dist = std::abs(zt[i] - zt[j]); + if (dist > eps) + return; + // if (dist*dist>chi2max*(ezt2[i]+ezt2[j])) return; + mz = zt[j]; + iv[i] = j; // assign to cluster (better be unique??) + }; + cms::cuda::forEachInBins(hist, izt[i], 1, loop); + } + + __syncthreads(); + +#ifdef GPU_DEBUG + // mini verification + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + if (iv[i] != int(i)) + assert(iv[iv[i]] != int(i)); + } + __syncthreads(); +#endif + + // consolidate graph (percolate index of seed) + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + auto m = iv[i]; + while (m != iv[m]) + m = iv[m]; + iv[i] = m; + } + + __syncthreads(); + +#ifdef GPU_DEBUG + // mini verification + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + if (iv[i] != int(i)) + assert(iv[iv[i]] != int(i)); + } + __syncthreads(); +#endif + +#ifdef GPU_DEBUG + // and verify that we did not spit any cluster... + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + if (nn[i] < minT) + continue; // DBSCAN core rule + assert(zt[iv[i]] <= zt[i]); + auto loop = [&](uint32_t j) { + if (nn[j] < minT) + return; // DBSCAN core rule + auto dist = std::abs(zt[i] - zt[j]); + if (dist > eps) + return; + // if (dist*dist>chi2max*(ezt2[i]+ezt2[j])) return; + // they should belong to the same cluster, isn't it? + if (iv[i] != iv[j]) { + printf("ERROR %d %d %f %f %d\n", i, iv[i], zt[i], zt[iv[i]], iv[iv[i]]); + printf(" %d %d %f %f %d\n", j, iv[j], zt[j], zt[iv[j]], iv[iv[j]]); + ; + } + assert(iv[i] == iv[j]); + }; + cms::cuda::forEachInBins(hist, izt[i], 1, loop); + } + __syncthreads(); +#endif + + // collect edges (assign to closest cluster of closest point??? here to closest point) + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + // if (nn[i]==0 || nn[i]>=minT) continue; // DBSCAN edge rule + if (nn[i] >= minT) + continue; // DBSCAN edge rule + float mdist = eps; + auto loop = [&](uint32_t j) { + if (nn[j] < minT) + return; // DBSCAN core rule + auto dist = std::abs(zt[i] - zt[j]); + if (dist > mdist) + return; + if (dist * dist > chi2max * (ezt2[i] + ezt2[j])) + return; // needed? + mdist = dist; + iv[i] = iv[j]; // assign to cluster (better be unique??) + }; + cms::cuda::forEachInBins(hist, izt[i], 1, loop); + } + + __shared__ unsigned int foundClusters; + foundClusters = 0; + __syncthreads(); + + // find the number of different clusters, identified by a tracks with clus[i] == i; + // mark these tracks with a negative id. + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + if (iv[i] == int(i)) { + if (nn[i] >= minT) { + auto old = atomicInc(&foundClusters, 0xffffffff); + iv[i] = -(old + 1); + } else { // noise + iv[i] = -9998; + } + } + } + __syncthreads(); + + assert(foundClusters < ZVertices::MAXVTX); + + // propagate the negative id to all the tracks in the cluster. + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + if (iv[i] >= 0) { + // mark each track in a cluster with the same id as the first one + iv[i] = iv[iv[i]]; + } + } + __syncthreads(); + + // adjust the cluster id to be a positive value starting from 0 + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + iv[i] = -iv[i] - 1; + } + + nvIntermediate = nvFinal = foundClusters; + + if (verbose && 0 == threadIdx.x) + printf("found %d proto vertices\n", foundClusters); + } + +} // namespace gpuVertexFinder + +#endif // RecoPixelVertexing_PixelVertexFinding_plugins_gpuClusterTracksDBSCAN_h diff --git a/RecoPixelVertexing/PixelVertexFinding/plugins/gpuClusterTracksIterative.h b/RecoPixelVertexing/PixelVertexFinding/plugins/gpuClusterTracksIterative.h new file mode 100644 index 0000000000000..1f2934ba15d0c --- /dev/null +++ b/RecoPixelVertexing/PixelVertexFinding/plugins/gpuClusterTracksIterative.h @@ -0,0 +1,212 @@ +#ifndef RecoPixelVertexing_PixelVertexFinding_plugins_gpuClusterTracksIterative_h +#define RecoPixelVertexing_PixelVertexFinding_plugins_gpuClusterTracksIterative_h + +#include +#include +#include + +#include "HeterogeneousCore/CUDAUtilities/interface/HistoContainer.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cuda_assert.h" + +#include "gpuVertexFinder.h" + +namespace gpuVertexFinder { + + // this algo does not really scale as it works in a single block... + // enough for <10K tracks we have + __global__ void clusterTracksIterative(ZVertices* pdata, + WorkSpace* pws, + int minT, // min number of neighbours to be "core" + float eps, // max absolute distance to cluster + float errmax, // max error to be "seed" + float chi2max // max normalized distance to cluster + ) { + constexpr bool verbose = false; // in principle the compiler should optmize out if false + + if (verbose && 0 == threadIdx.x) + printf("params %d %f %f %f\n", minT, eps, errmax, chi2max); + + auto er2mx = errmax * errmax; + + auto& __restrict__ data = *pdata; + auto& __restrict__ ws = *pws; + auto nt = ws.ntrks; + float const* __restrict__ zt = ws.zt; + float const* __restrict__ ezt2 = ws.ezt2; + + uint32_t& nvFinal = data.nvFinal; + uint32_t& nvIntermediate = ws.nvIntermediate; + + uint8_t* __restrict__ izt = ws.izt; + int32_t* __restrict__ nn = data.ndof; + int32_t* __restrict__ iv = ws.iv; + + assert(pdata); + assert(zt); + + using Hist = cms::cuda::HistoContainer; + __shared__ Hist hist; + __shared__ typename Hist::Counter hws[32]; + for (auto j = threadIdx.x; j < Hist::totbins(); j += blockDim.x) { + hist.off[j] = 0; + } + __syncthreads(); + + if (verbose && 0 == threadIdx.x) + printf("booked hist with %d bins, size %d for %d tracks\n", hist.nbins(), hist.capacity(), nt); + + assert(nt <= hist.capacity()); + + // fill hist (bin shall be wider than "eps") + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + assert(i < ZVertices::MAXTRACKS); + int iz = int(zt[i] * 10.); // valid if eps<=0.1 + iz = std::clamp(iz, INT8_MIN, INT8_MAX); + izt[i] = iz - INT8_MIN; + assert(iz - INT8_MIN >= 0); + assert(iz - INT8_MIN < 256); + hist.count(izt[i]); + iv[i] = i; + nn[i] = 0; + } + __syncthreads(); + if (threadIdx.x < 32) + hws[threadIdx.x] = 0; // used by prefix scan... + __syncthreads(); + hist.finalize(hws); + __syncthreads(); + assert(hist.size() == nt); + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + hist.fill(izt[i], uint16_t(i)); + } + __syncthreads(); + + // count neighbours + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + if (ezt2[i] > er2mx) + continue; + auto loop = [&](uint32_t j) { + if (i == j) + return; + auto dist = std::abs(zt[i] - zt[j]); + if (dist > eps) + return; + if (dist * dist > chi2max * (ezt2[i] + ezt2[j])) + return; + nn[i]++; + }; + + cms::cuda::forEachInBins(hist, izt[i], 1, loop); + } + + __shared__ int nloops; + nloops = 0; + + __syncthreads(); + + // cluster seeds only + bool more = true; + while (__syncthreads_or(more)) { + if (1 == nloops % 2) { + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + auto m = iv[i]; + while (m != iv[m]) + m = iv[m]; + iv[i] = m; + } + } else { + more = false; + for (auto k = threadIdx.x; k < hist.size(); k += blockDim.x) { + auto p = hist.begin() + k; + auto i = (*p); + auto be = std::min(Hist::bin(izt[i]) + 1, int(hist.nbins() - 1)); + if (nn[i] < minT) + continue; // DBSCAN core rule + auto loop = [&](uint32_t j) { + assert(i != j); + if (nn[j] < minT) + return; // DBSCAN core rule + auto dist = std::abs(zt[i] - zt[j]); + if (dist > eps) + return; + if (dist * dist > chi2max * (ezt2[i] + ezt2[j])) + return; + auto old = atomicMin(&iv[j], iv[i]); + if (old != iv[i]) { + // end the loop only if no changes were applied + more = true; + } + atomicMin(&iv[i], old); + }; + ++p; + for (; p < hist.end(be); ++p) + loop(*p); + } // for i + } + if (threadIdx.x == 0) + ++nloops; + } // while + + // collect edges (assign to closest cluster of closest point??? here to closest point) + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + // if (nn[i]==0 || nn[i]>=minT) continue; // DBSCAN edge rule + if (nn[i] >= minT) + continue; // DBSCAN edge rule + float mdist = eps; + auto loop = [&](int j) { + if (nn[j] < minT) + return; // DBSCAN core rule + auto dist = std::abs(zt[i] - zt[j]); + if (dist > mdist) + return; + if (dist * dist > chi2max * (ezt2[i] + ezt2[j])) + return; // needed? + mdist = dist; + iv[i] = iv[j]; // assign to cluster (better be unique??) + }; + cms::cuda::forEachInBins(hist, izt[i], 1, loop); + } + + __shared__ unsigned int foundClusters; + foundClusters = 0; + __syncthreads(); + + // find the number of different clusters, identified by a tracks with clus[i] == i; + // mark these tracks with a negative id. + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + if (iv[i] == int(i)) { + if (nn[i] >= minT) { + auto old = atomicInc(&foundClusters, 0xffffffff); + iv[i] = -(old + 1); + } else { // noise + iv[i] = -9998; + } + } + } + __syncthreads(); + + assert(foundClusters < ZVertices::MAXVTX); + + // propagate the negative id to all the tracks in the cluster. + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + if (iv[i] >= 0) { + // mark each track in a cluster with the same id as the first one + iv[i] = iv[iv[i]]; + } + } + __syncthreads(); + + // adjust the cluster id to be a positive value starting from 0 + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + iv[i] = -iv[i] - 1; + } + + nvIntermediate = nvFinal = foundClusters; + + if (verbose && 0 == threadIdx.x) + printf("found %d proto vertices\n", foundClusters); + } + +} // namespace gpuVertexFinder + +#endif // RecoPixelVertexing_PixelVertexFinding_plugins_gpuClusterTracksIterative_h diff --git a/RecoPixelVertexing/PixelVertexFinding/plugins/gpuFitVertices.h b/RecoPixelVertexing/PixelVertexFinding/plugins/gpuFitVertices.h new file mode 100644 index 0000000000000..b8bbd0f601cb6 --- /dev/null +++ b/RecoPixelVertexing/PixelVertexFinding/plugins/gpuFitVertices.h @@ -0,0 +1,113 @@ +#ifndef RecoPixelVertexing_PixelVertexFinding_plugins_gpuFitVertices_h +#define RecoPixelVertexing_PixelVertexFinding_plugins_gpuFitVertices_h + +#include +#include +#include + +#include "HeterogeneousCore/CUDAUtilities/interface/HistoContainer.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cuda_assert.h" + +#include "gpuVertexFinder.h" + +namespace gpuVertexFinder { + + __device__ __forceinline__ void fitVertices(ZVertices* pdata, + WorkSpace* pws, + float chi2Max // for outlier rejection + ) { + constexpr bool verbose = false; // in principle the compiler should optmize out if false + + auto& __restrict__ data = *pdata; + auto& __restrict__ ws = *pws; + auto nt = ws.ntrks; + float const* __restrict__ zt = ws.zt; + float const* __restrict__ ezt2 = ws.ezt2; + float* __restrict__ zv = data.zv; + float* __restrict__ wv = data.wv; + float* __restrict__ chi2 = data.chi2; + uint32_t& nvFinal = data.nvFinal; + uint32_t& nvIntermediate = ws.nvIntermediate; + + int32_t* __restrict__ nn = data.ndof; + int32_t* __restrict__ iv = ws.iv; + + assert(pdata); + assert(zt); + + assert(nvFinal <= nvIntermediate); + nvFinal = nvIntermediate; + auto foundClusters = nvFinal; + + // zero + for (auto i = threadIdx.x; i < foundClusters; i += blockDim.x) { + zv[i] = 0; + wv[i] = 0; + chi2[i] = 0; + } + + // only for test + __shared__ int noise; + if (verbose && 0 == threadIdx.x) + noise = 0; + + __syncthreads(); + + // compute cluster location + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + if (iv[i] > 9990) { + if (verbose) + atomicAdd(&noise, 1); + continue; + } + assert(iv[i] >= 0); + assert(iv[i] < int(foundClusters)); + auto w = 1.f / ezt2[i]; + atomicAdd(&zv[iv[i]], zt[i] * w); + atomicAdd(&wv[iv[i]], w); + } + + __syncthreads(); + // reuse nn + for (auto i = threadIdx.x; i < foundClusters; i += blockDim.x) { + assert(wv[i] > 0.f); + zv[i] /= wv[i]; + nn[i] = -1; // ndof + } + __syncthreads(); + + // compute chi2 + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + if (iv[i] > 9990) + continue; + + auto c2 = zv[iv[i]] - zt[i]; + c2 *= c2 / ezt2[i]; + if (c2 > chi2Max) { + iv[i] = 9999; + continue; + } + atomicAdd(&chi2[iv[i]], c2); + atomicAdd(&nn[iv[i]], 1); + } + __syncthreads(); + for (auto i = threadIdx.x; i < foundClusters; i += blockDim.x) + if (nn[i] > 0) + wv[i] *= float(nn[i]) / chi2[i]; + + if (verbose && 0 == threadIdx.x) + printf("found %d proto clusters ", foundClusters); + if (verbose && 0 == threadIdx.x) + printf("and %d noise\n", noise); + } + + __global__ void fitVerticesKernel(ZVertices* pdata, + WorkSpace* pws, + float chi2Max // for outlier rejection + ) { + fitVertices(pdata, pws, chi2Max); + } + +} // namespace gpuVertexFinder + +#endif // RecoPixelVertexing_PixelVertexFinding_plugins_gpuFitVertices_h diff --git a/RecoPixelVertexing/PixelVertexFinding/plugins/gpuSortByPt2.h b/RecoPixelVertexing/PixelVertexFinding/plugins/gpuSortByPt2.h new file mode 100644 index 0000000000000..841eab3901965 --- /dev/null +++ b/RecoPixelVertexing/PixelVertexFinding/plugins/gpuSortByPt2.h @@ -0,0 +1,73 @@ +#ifndef RecoPixelVertexing_PixelVertexFinding_plugins_gpuSortByPt2_h +#define RecoPixelVertexing_PixelVertexFinding_plugins_gpuSortByPt2_h + +#include +#include +#include + +#include "HeterogeneousCore/CUDAUtilities/interface/HistoContainer.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cuda_assert.h" +#ifdef __CUDA_ARCH__ +#include "HeterogeneousCore/CUDAUtilities/interface/radixSort.h" +#endif + +#include "gpuVertexFinder.h" + +namespace gpuVertexFinder { + + __device__ __forceinline__ void sortByPt2(ZVertices* pdata, WorkSpace* pws) { + auto& __restrict__ data = *pdata; + auto& __restrict__ ws = *pws; + auto nt = ws.ntrks; + float const* __restrict__ ptt2 = ws.ptt2; + uint32_t const& nvFinal = data.nvFinal; + + int32_t const* __restrict__ iv = ws.iv; + float* __restrict__ ptv2 = data.ptv2; + uint16_t* __restrict__ sortInd = data.sortInd; + + // if (threadIdx.x == 0) + // printf("sorting %d vertices\n",nvFinal); + + if (nvFinal < 1) + return; + + // fill indexing + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + data.idv[ws.itrk[i]] = iv[i]; + } + + // can be done asynchronoisly at the end of previous event + for (auto i = threadIdx.x; i < nvFinal; i += blockDim.x) { + ptv2[i] = 0; + } + __syncthreads(); + + for (auto i = threadIdx.x; i < nt; i += blockDim.x) { + if (iv[i] > 9990) + continue; + atomicAdd(&ptv2[iv[i]], ptt2[i]); + } + __syncthreads(); + + if (1 == nvFinal) { + if (threadIdx.x == 0) + sortInd[0] = 0; + return; + } +#ifdef __CUDA_ARCH__ + __shared__ uint16_t sws[1024]; + // sort using only 16 bits + radixSort(ptv2, sortInd, sws, nvFinal); +#else + for (uint16_t i = 0; i < nvFinal; ++i) + sortInd[i] = i; + std::sort(sortInd, sortInd + nvFinal, [&](auto i, auto j) { return ptv2[i] < ptv2[j]; }); +#endif + } + + __global__ void sortByPt2Kernel(ZVertices* pdata, WorkSpace* pws) { sortByPt2(pdata, pws); } + +} // namespace gpuVertexFinder + +#endif // RecoPixelVertexing_PixelVertexFinding_plugins_gpuSortByPt2_h diff --git a/RecoPixelVertexing/PixelVertexFinding/plugins/gpuSplitVertices.h b/RecoPixelVertexing/PixelVertexFinding/plugins/gpuSplitVertices.h new file mode 100644 index 0000000000000..0fe8bd882dcc5 --- /dev/null +++ b/RecoPixelVertexing/PixelVertexFinding/plugins/gpuSplitVertices.h @@ -0,0 +1,139 @@ +#ifndef RecoPixelVertexing_PixelVertexFinding_plugins_gpuSplitVertices_h +#define RecoPixelVertexing_PixelVertexFinding_plugins_gpuSplitVertices_h + +#include +#include +#include + +#include "HeterogeneousCore/CUDAUtilities/interface/HistoContainer.h" +#include "HeterogeneousCore/CUDAUtilities/interface/cuda_assert.h" + +#include "gpuVertexFinder.h" + +namespace gpuVertexFinder { + + __device__ __forceinline__ void splitVertices(ZVertices* pdata, WorkSpace* pws, float maxChi2) { + constexpr bool verbose = false; // in principle the compiler should optmize out if false + + auto& __restrict__ data = *pdata; + auto& __restrict__ ws = *pws; + auto nt = ws.ntrks; + float const* __restrict__ zt = ws.zt; + float const* __restrict__ ezt2 = ws.ezt2; + float* __restrict__ zv = data.zv; + float* __restrict__ wv = data.wv; + float const* __restrict__ chi2 = data.chi2; + uint32_t& nvFinal = data.nvFinal; + + int32_t const* __restrict__ nn = data.ndof; + int32_t* __restrict__ iv = ws.iv; + + assert(pdata); + assert(zt); + + // one vertex per block + for (auto kv = blockIdx.x; kv < nvFinal; kv += gridDim.x) { + if (nn[kv] < 4) + continue; + if (chi2[kv] < maxChi2 * float(nn[kv])) + continue; + + constexpr int MAXTK = 512; + assert(nn[kv] < MAXTK); + if (nn[kv] >= MAXTK) + continue; // too bad FIXME + __shared__ uint32_t it[MAXTK]; // track index + __shared__ float zz[MAXTK]; // z pos + __shared__ uint8_t newV[MAXTK]; // 0 or 1 + __shared__ float ww[MAXTK]; // z weight + + __shared__ uint32_t nq; // number of track for this vertex + nq = 0; + __syncthreads(); + + // copy to local + for (auto k = threadIdx.x; k < nt; k += blockDim.x) { + if (iv[k] == int(kv)) { + auto old = atomicInc(&nq, MAXTK); + zz[old] = zt[k] - zv[kv]; + newV[old] = zz[old] < 0 ? 0 : 1; + ww[old] = 1.f / ezt2[k]; + it[old] = k; + } + } + + __shared__ float znew[2], wnew[2]; // the new vertices + + __syncthreads(); + assert(int(nq) == nn[kv] + 1); + + int maxiter = 20; + // kt-min.... + bool more = true; + while (__syncthreads_or(more)) { + more = false; + if (0 == threadIdx.x) { + znew[0] = 0; + znew[1] = 0; + wnew[0] = 0; + wnew[1] = 0; + } + __syncthreads(); + for (auto k = threadIdx.x; k < nq; k += blockDim.x) { + auto i = newV[k]; + atomicAdd(&znew[i], zz[k] * ww[k]); + atomicAdd(&wnew[i], ww[k]); + } + __syncthreads(); + if (0 == threadIdx.x) { + znew[0] /= wnew[0]; + znew[1] /= wnew[1]; + } + __syncthreads(); + for (auto k = threadIdx.x; k < nq; k += blockDim.x) { + auto d0 = fabs(zz[k] - znew[0]); + auto d1 = fabs(zz[k] - znew[1]); + auto newer = d0 < d1 ? 0 : 1; + more |= newer != newV[k]; + newV[k] = newer; + } + --maxiter; + if (maxiter <= 0) + more = false; + } + + // avoid empty vertices + if (0 == wnew[0] || 0 == wnew[1]) + continue; + + // quality cut + auto dist2 = (znew[0] - znew[1]) * (znew[0] - znew[1]); + + auto chi2Dist = dist2 / (1.f / wnew[0] + 1.f / wnew[1]); + + if (verbose && 0 == threadIdx.x) + printf("inter %d %f %f\n", 20 - maxiter, chi2Dist, dist2 * wv[kv]); + + if (chi2Dist < 4) + continue; + + // get a new global vertex + __shared__ uint32_t igv; + if (0 == threadIdx.x) + igv = atomicAdd(&ws.nvIntermediate, 1); + __syncthreads(); + for (auto k = threadIdx.x; k < nq; k += blockDim.x) { + if (1 == newV[k]) + iv[it[k]] = igv; + } + + } // loop on vertices + } + + __global__ void splitVerticesKernel(ZVertices* pdata, WorkSpace* pws, float maxChi2) { + splitVertices(pdata, pws, maxChi2); + } + +} // namespace gpuVertexFinder + +#endif // RecoPixelVertexing_PixelVertexFinding_plugins_gpuSplitVertices_h diff --git a/RecoPixelVertexing/PixelVertexFinding/plugins/gpuVertexFinder.cc b/RecoPixelVertexing/PixelVertexFinding/plugins/gpuVertexFinder.cc new file mode 100644 index 0000000000000..084763385bdb4 --- /dev/null +++ b/RecoPixelVertexing/PixelVertexFinding/plugins/gpuVertexFinder.cc @@ -0,0 +1 @@ +#include "gpuVertexFinderImpl.h" diff --git a/RecoPixelVertexing/PixelVertexFinding/plugins/gpuVertexFinder.cu b/RecoPixelVertexing/PixelVertexFinding/plugins/gpuVertexFinder.cu new file mode 100644 index 0000000000000..084763385bdb4 --- /dev/null +++ b/RecoPixelVertexing/PixelVertexFinding/plugins/gpuVertexFinder.cu @@ -0,0 +1 @@ +#include "gpuVertexFinderImpl.h" diff --git a/RecoPixelVertexing/PixelVertexFinding/plugins/gpuVertexFinder.h b/RecoPixelVertexing/PixelVertexFinding/plugins/gpuVertexFinder.h new file mode 100644 index 0000000000000..5f8238c3ea8c8 --- /dev/null +++ b/RecoPixelVertexing/PixelVertexFinding/plugins/gpuVertexFinder.h @@ -0,0 +1,83 @@ +#ifndef RecoPixelVertexing_PixelVertexFinding_plugins_gpuVertexFinder_h +#define RecoPixelVertexing_PixelVertexFinding_plugins_gpuVertexFinder_h + +#include +#include + +#include "CUDADataFormats/Vertex/interface/ZVertexHeterogeneous.h" + +namespace gpuVertexFinder { + + using ZVertices = ZVertexSoA; + using TkSoA = pixelTrack::TrackSoA; + + // workspace used in the vertex reco algos + struct WorkSpace { + static constexpr uint32_t MAXTRACKS = ZVertexSoA::MAXTRACKS; + static constexpr uint32_t MAXVTX = ZVertexSoA::MAXVTX; + + uint32_t ntrks; // number of "selected tracks" + uint16_t itrk[MAXTRACKS]; // index of original track + float zt[MAXTRACKS]; // input track z at bs + float ezt2[MAXTRACKS]; // input error^2 on the above + float ptt2[MAXTRACKS]; // input pt^2 on the above + uint8_t izt[MAXTRACKS]; // interized z-position of input tracks + int32_t iv[MAXTRACKS]; // vertex index for each associated track + + uint32_t nvIntermediate; // the number of vertices after splitting pruning etc. + + __host__ __device__ void init() { + ntrks = 0; + nvIntermediate = 0; + } + }; + + __global__ void init(ZVertexSoA* pdata, WorkSpace* pws) { + pdata->init(); + pws->init(); + } + + class Producer { + public: + using ZVertices = ZVertexSoA; + using WorkSpace = gpuVertexFinder::WorkSpace; + using TkSoA = pixelTrack::TrackSoA; + + Producer(bool oneKernel, + bool useDensity, + bool useDBSCAN, + bool useIterative, + int iminT, // min number of neighbours to be "core" + float ieps, // max absolute distance to cluster + float ierrmax, // max error to be "seed" + float ichi2max // max normalized distance to cluster + ) + : oneKernel_(oneKernel && !(useDBSCAN || useIterative)), + useDensity_(useDensity), + useDBSCAN_(useDBSCAN), + useIterative_(useIterative), + minT(iminT), + eps(ieps), + errmax(ierrmax), + chi2max(ichi2max) {} + + ~Producer() = default; + + ZVertexHeterogeneous makeAsync(cudaStream_t stream, TkSoA const* tksoa, float ptMin) const; + ZVertexHeterogeneous make(TkSoA const* tksoa, float ptMin) const; + + private: + const bool oneKernel_; + const bool useDensity_; + const bool useDBSCAN_; + const bool useIterative_; + + int minT; // min number of neighbours to be "core" + float eps; // max absolute distance to cluster + float errmax; // max error to be "seed" + float chi2max; // max normalized distance to cluster + }; + +} // namespace gpuVertexFinder + +#endif // RecoPixelVertexing_PixelVertexFinding_plugins_gpuVertexFinder_h diff --git a/RecoPixelVertexing/PixelVertexFinding/plugins/gpuVertexFinderImpl.h b/RecoPixelVertexing/PixelVertexFinding/plugins/gpuVertexFinderImpl.h new file mode 100644 index 0000000000000..d685ced488233 --- /dev/null +++ b/RecoPixelVertexing/PixelVertexFinding/plugins/gpuVertexFinderImpl.h @@ -0,0 +1,192 @@ +#ifndef RecoPixelVertexing_PixelVertexFinding_plugins_gpuVertexFinderImpl_h +#define RecoPixelVertexing_PixelVertexFinding_plugins_gpuVertexFinderImpl_h + +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" + +#include "gpuClusterTracksByDensity.h" +#include "gpuClusterTracksDBSCAN.h" +#include "gpuClusterTracksIterative.h" +#include "gpuFitVertices.h" +#include "gpuSortByPt2.h" +#include "gpuSplitVertices.h" + +#undef PIXVERTEX_DEBUG_PRODUCE + +namespace gpuVertexFinder { + + // reject outlier tracks that contribute more than this to the chi2 of the vertex fit + constexpr float maxChi2ForFirstFit = 50.f; + constexpr float maxChi2ForFinalFit = 5000.f; + + // split vertices with a chi2/NDoF greater than this + constexpr float maxChi2ForSplit = 9.f; + + __global__ void loadTracks(TkSoA const* ptracks, ZVertexSoA* soa, WorkSpace* pws, float ptMin) { + assert(ptracks); + assert(soa); + auto const& tracks = *ptracks; + auto const& fit = tracks.stateAtBS; + auto const* quality = tracks.qualityData(); + + auto first = blockIdx.x * blockDim.x + threadIdx.x; + for (int idx = first, nt = TkSoA::stride(); idx < nt; idx += gridDim.x * blockDim.x) { + auto nHits = tracks.nHits(idx); + if (nHits == 0) + break; // this is a guard: maybe we need to move to nTracks... + + // initialize soa... + soa->idv[idx] = -1; + + if (nHits < 4) + continue; // no triplets + if (quality[idx] != pixelTrack::Quality::loose) + continue; + + auto pt = tracks.pt(idx); + + if (pt < ptMin) + continue; + + auto& data = *pws; + auto it = atomicAdd(&data.ntrks, 1); + data.itrk[it] = idx; + data.zt[it] = tracks.zip(idx); + data.ezt2[it] = fit.covariance(idx)(14); + data.ptt2[it] = pt * pt; + } + } + +// #define THREE_KERNELS +#ifndef THREE_KERNELS + __global__ void vertexFinderOneKernel(gpuVertexFinder::ZVertices* pdata, + gpuVertexFinder::WorkSpace* pws, + int minT, // min number of neighbours to be "seed" + float eps, // max absolute distance to cluster + float errmax, // max error to be "seed" + float chi2max // max normalized distance to cluster, + ) { + clusterTracksByDensity(pdata, pws, minT, eps, errmax, chi2max); + __syncthreads(); + fitVertices(pdata, pws, maxChi2ForFirstFit); + __syncthreads(); + splitVertices(pdata, pws, maxChi2ForSplit); + __syncthreads(); + fitVertices(pdata, pws, maxChi2ForFinalFit); + __syncthreads(); + sortByPt2(pdata, pws); + } +#else + __global__ void vertexFinderKernel1(gpuVertexFinder::ZVertices* pdata, + gpuVertexFinder::WorkSpace* pws, + int minT, // min number of neighbours to be "seed" + float eps, // max absolute distance to cluster + float errmax, // max error to be "seed" + float chi2max // max normalized distance to cluster, + ) { + clusterTracksByDensity(pdata, pws, minT, eps, errmax, chi2max); + __syncthreads(); + fitVertices(pdata, pws, maxChi2ForFirstFit); + } + + __global__ void vertexFinderKernel2(gpuVertexFinder::ZVertices* pdata, gpuVertexFinder::WorkSpace* pws) { + fitVertices(pdata, pws, maxChi2ForFinalFit); + __syncthreads(); + sortByPt2(pdata, pws); + } +#endif + +#ifdef __CUDACC__ + ZVertexHeterogeneous Producer::makeAsync(cudaStream_t stream, TkSoA const* tksoa, float ptMin) const { +#ifdef PIXVERTEX_DEBUG_PRODUCE + std::cout << "producing Vertices on GPU" << std::endl; +#endif // PIXVERTEX_DEBUG_PRODUCE + ZVertexHeterogeneous vertices(cms::cuda::make_device_unique(stream)); +#else + ZVertexHeterogeneous Producer::make(TkSoA const* tksoa, float ptMin) const { +#ifdef PIXVERTEX_DEBUG_PRODUCE + std::cout << "producing Vertices on CPU" << std::endl; +#endif // PIXVERTEX_DEBUG_PRODUCE + ZVertexHeterogeneous vertices(std::make_unique()); +#endif + assert(tksoa); + auto* soa = vertices.get(); + assert(soa); + +#ifdef __CUDACC__ + auto ws_d = cms::cuda::make_device_unique(stream); +#else + auto ws_d = std::make_unique(); +#endif + +#ifdef __CUDACC__ + init<<<1, 1, 0, stream>>>(soa, ws_d.get()); + auto blockSize = 128; + auto numberOfBlocks = (TkSoA::stride() + blockSize - 1) / blockSize; + loadTracks<<>>(tksoa, soa, ws_d.get(), ptMin); + cudaCheck(cudaGetLastError()); +#else + init(soa, ws_d.get()); + loadTracks(tksoa, soa, ws_d.get(), ptMin); +#endif + +#ifdef __CUDACC__ + // Running too many thread lead to problems when printf is enabled. + constexpr int maxThreadsForPrint = 1024 - 256; + constexpr int numBlocks = 1024; + constexpr int threadsPerBlock = 128; + + if (oneKernel_) { + // implemented only for density clustesrs +#ifndef THREE_KERNELS + vertexFinderOneKernel<<<1, maxThreadsForPrint, 0, stream>>>(soa, ws_d.get(), minT, eps, errmax, chi2max); +#else + vertexFinderKernel1<<<1, maxThreadsForPrint, 0, stream>>>(soa, ws_d.get(), minT, eps, errmax, chi2max); + cudaCheck(cudaGetLastError()); + // one block per vertex... + splitVerticesKernel<<>>(soa, ws_d.get(), maxChi2ForSplit); + cudaCheck(cudaGetLastError()); + vertexFinderKernel2<<<1, maxThreadsForPrint, 0, stream>>>(soa, ws_d.get()); +#endif + } else { // five kernels + if (useDensity_) { + clusterTracksByDensityKernel<<<1, maxThreadsForPrint, 0, stream>>>(soa, ws_d.get(), minT, eps, errmax, chi2max); + } else if (useDBSCAN_) { + clusterTracksDBSCAN<<<1, maxThreadsForPrint, 0, stream>>>(soa, ws_d.get(), minT, eps, errmax, chi2max); + } else if (useIterative_) { + clusterTracksIterative<<<1, maxThreadsForPrint, 0, stream>>>(soa, ws_d.get(), minT, eps, errmax, chi2max); + } + cudaCheck(cudaGetLastError()); + fitVerticesKernel<<<1, maxThreadsForPrint, 0, stream>>>(soa, ws_d.get(), maxChi2ForFirstFit); + cudaCheck(cudaGetLastError()); + // one block per vertex... + splitVerticesKernel<<>>(soa, ws_d.get(), maxChi2ForSplit); + cudaCheck(cudaGetLastError()); + fitVerticesKernel<<<1, maxThreadsForPrint, 0, stream>>>(soa, ws_d.get(), maxChi2ForFinalFit); + cudaCheck(cudaGetLastError()); + sortByPt2Kernel<<<1, maxThreadsForPrint, 0, stream>>>(soa, ws_d.get()); + } + cudaCheck(cudaGetLastError()); +#else // __CUDACC__ + if (useDensity_) { + clusterTracksByDensity(soa, ws_d.get(), minT, eps, errmax, chi2max); + } else if (useDBSCAN_) { + clusterTracksDBSCAN(soa, ws_d.get(), minT, eps, errmax, chi2max); + } else if (useIterative_) { + clusterTracksIterative(soa, ws_d.get(), minT, eps, errmax, chi2max); + } +#ifdef PIXVERTEX_DEBUG_PRODUCE + std::cout << "found " << (*ws_d).nvIntermediate << " vertices " << std::endl; +#endif // PIXVERTEX_DEBUG_PRODUCE + fitVertices(soa, ws_d.get(), maxChi2ForFirstFit); + // one block per vertex! + splitVertices(soa, ws_d.get(), maxChi2ForSplit); + fitVertices(soa, ws_d.get(), maxChi2ForFinalFit); + sortByPt2(soa, ws_d.get()); +#endif + + return vertices; + } + +} // namespace gpuVertexFinder + +#endif // RecoPixelVertexing_PixelVertexFinding_plugins_gpuVertexFinderImpl_h diff --git a/RecoPixelVertexing/PixelVertexFinding/python/PixelVertexes_cfi.py b/RecoPixelVertexing/PixelVertexFinding/python/PixelVertexes_cfi.py index 77a9f367b9d9b..903c2a894ff86 100644 --- a/RecoPixelVertexing/PixelVertexFinding/python/PixelVertexes_cfi.py +++ b/RecoPixelVertexing/PixelVertexFinding/python/PixelVertexes_cfi.py @@ -18,5 +18,3 @@ refToPSet_ = cms.string('pvClusterComparer') ) ) - - diff --git a/RecoPixelVertexing/PixelVertexFinding/test/BuildFile.xml b/RecoPixelVertexing/PixelVertexFinding/test/BuildFile.xml index 0f4f4dee63832..f5c154b298574 100644 --- a/RecoPixelVertexing/PixelVertexFinding/test/BuildFile.xml +++ b/RecoPixelVertexing/PixelVertexFinding/test/BuildFile.xml @@ -2,8 +2,41 @@ - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/RecoPixelVertexing/PixelVertexFinding/test/VertexFinder_t.h b/RecoPixelVertexing/PixelVertexFinding/test/VertexFinder_t.h new file mode 100644 index 0000000000000..52253a1e4bbfe --- /dev/null +++ b/RecoPixelVertexing/PixelVertexFinding/test/VertexFinder_t.h @@ -0,0 +1,347 @@ +#include +#include +#include +#include +#include + +#include "HeterogeneousCore/CUDAUtilities/interface/cudaCheck.h" +#include "HeterogeneousCore/CUDAUtilities/interface/requireDevices.h" +#include "HeterogeneousCore/CUDAUtilities/interface/launch.h" +#ifdef USE_DBSCAN +#include "RecoPixelVertexing/PixelVertexFinding/plugins/gpuClusterTracksDBSCAN.h" +#define CLUSTERIZE gpuVertexFinder::clusterTracksDBSCAN +#elif USE_ITERATIVE +#include "RecoPixelVertexing/PixelVertexFinding/plugins/gpuClusterTracksIterative.h" +#define CLUSTERIZE gpuVertexFinder::clusterTracksIterative +#else +#include "RecoPixelVertexing/PixelVertexFinding/plugins/gpuClusterTracksByDensity.h" +#define CLUSTERIZE gpuVertexFinder::clusterTracksByDensityKernel +#endif +#include "RecoPixelVertexing/PixelVertexFinding/plugins/gpuFitVertices.h" +#include "RecoPixelVertexing/PixelVertexFinding/plugins/gpuSortByPt2.h" +#include "RecoPixelVertexing/PixelVertexFinding/plugins/gpuSplitVertices.h" + +#ifdef ONE_KERNEL +#ifdef __CUDACC__ +__global__ void vertexFinderOneKernel(gpuVertexFinder::ZVertices* pdata, + gpuVertexFinder::WorkSpace* pws, + int minT, // min number of neighbours to be "seed" + float eps, // max absolute distance to cluster + float errmax, // max error to be "seed" + float chi2max // max normalized distance to cluster, +) { + clusterTracksByDensity(pdata, pws, minT, eps, errmax, chi2max); + __syncthreads(); + fitVertices(pdata, pws, 50.); + __syncthreads(); + splitVertices(pdata, pws, 9.f); + __syncthreads(); + fitVertices(pdata, pws, 5000.); + __syncthreads(); + sortByPt2(pdata, pws); +} +#endif +#endif + +struct Event { + std::vector zvert; + std::vector itrack; + std::vector ztrack; + std::vector eztrack; + std::vector pttrack; + std::vector ivert; +}; + +struct ClusterGenerator { + explicit ClusterGenerator(float nvert, float ntrack) + : rgen(-13., 13), errgen(0.005, 0.025), clusGen(nvert), trackGen(ntrack), gauss(0., 1.), ptGen(1.) {} + + void operator()(Event& ev) { + int nclus = clusGen(reng); + ev.zvert.resize(nclus); + ev.itrack.resize(nclus); + for (auto& z : ev.zvert) { + z = 3.5f * gauss(reng); + } + + ev.ztrack.clear(); + ev.eztrack.clear(); + ev.ivert.clear(); + for (int iv = 0; iv < nclus; ++iv) { + auto nt = trackGen(reng); + ev.itrack[nclus] = nt; + for (int it = 0; it < nt; ++it) { + auto err = errgen(reng); // reality is not flat.... + ev.ztrack.push_back(ev.zvert[iv] + err * gauss(reng)); + ev.eztrack.push_back(err * err); + ev.ivert.push_back(iv); + ev.pttrack.push_back((iv == 5 ? 1.f : 0.5f) + ptGen(reng)); + ev.pttrack.back() *= ev.pttrack.back(); + } + } + // add noise + auto nt = 2 * trackGen(reng); + for (int it = 0; it < nt; ++it) { + auto err = 0.03f; + ev.ztrack.push_back(rgen(reng)); + ev.eztrack.push_back(err * err); + ev.ivert.push_back(9999); + ev.pttrack.push_back(0.5f + ptGen(reng)); + ev.pttrack.back() *= ev.pttrack.back(); + } + } + + std::mt19937 reng; + std::uniform_real_distribution rgen; + std::uniform_real_distribution errgen; + std::poisson_distribution clusGen; + std::poisson_distribution trackGen; + std::normal_distribution gauss; + std::exponential_distribution ptGen; +}; + +// a macro SORRY +#define LOC_ONGPU(M) ((char*)(onGPU_d.get()) + offsetof(gpuVertexFinder::ZVertices, M)) +#define LOC_WS(M) ((char*)(ws_d.get()) + offsetof(gpuVertexFinder::WorkSpace, M)) + +__global__ void print(gpuVertexFinder::ZVertices const* pdata, gpuVertexFinder::WorkSpace const* pws) { + auto const& __restrict__ data = *pdata; + auto const& __restrict__ ws = *pws; + printf("nt,nv %d %d,%d\n", ws.ntrks, data.nvFinal, ws.nvIntermediate); +} + +int main() { +#ifdef __CUDACC__ + cms::cudatest::requireDevices(); + + auto onGPU_d = cms::cuda::make_device_unique(1, nullptr); + auto ws_d = cms::cuda::make_device_unique(1, nullptr); +#else + auto onGPU_d = std::make_unique(); + auto ws_d = std::make_unique(); +#endif + + Event ev; + + float eps = 0.1f; + std::array par{{eps, 0.01f, 9.0f}}; + for (int nav = 30; nav < 80; nav += 20) { + ClusterGenerator gen(nav, 10); + + for (int i = 8; i < 20; ++i) { + auto kk = i / 4; // M param + + gen(ev); + +#ifdef __CUDACC__ + init<<<1, 1, 0, 0>>>(onGPU_d.get(), ws_d.get()); +#else + onGPU_d->init(); + ws_d->init(); +#endif + + std::cout << "v,t size " << ev.zvert.size() << ' ' << ev.ztrack.size() << std::endl; + auto nt = ev.ztrack.size(); +#ifdef __CUDACC__ + cudaCheck(cudaMemcpy(LOC_WS(ntrks), &nt, sizeof(uint32_t), cudaMemcpyHostToDevice)); + cudaCheck(cudaMemcpy(LOC_WS(zt), ev.ztrack.data(), sizeof(float) * ev.ztrack.size(), cudaMemcpyHostToDevice)); + cudaCheck(cudaMemcpy(LOC_WS(ezt2), ev.eztrack.data(), sizeof(float) * ev.eztrack.size(), cudaMemcpyHostToDevice)); + cudaCheck(cudaMemcpy(LOC_WS(ptt2), ev.pttrack.data(), sizeof(float) * ev.eztrack.size(), cudaMemcpyHostToDevice)); +#else + ::memcpy(LOC_WS(ntrks), &nt, sizeof(uint32_t)); + ::memcpy(LOC_WS(zt), ev.ztrack.data(), sizeof(float) * ev.ztrack.size()); + ::memcpy(LOC_WS(ezt2), ev.eztrack.data(), sizeof(float) * ev.eztrack.size()); + ::memcpy(LOC_WS(ptt2), ev.pttrack.data(), sizeof(float) * ev.eztrack.size()); +#endif + + std::cout << "M eps, pset " << kk << ' ' << eps << ' ' << (i % 4) << std::endl; + + if ((i % 4) == 0) + par = {{eps, 0.02f, 12.0f}}; + if ((i % 4) == 1) + par = {{eps, 0.02f, 9.0f}}; + if ((i % 4) == 2) + par = {{eps, 0.01f, 9.0f}}; + if ((i % 4) == 3) + par = {{0.7f * eps, 0.01f, 9.0f}}; + + uint32_t nv = 0; +#ifdef __CUDACC__ + print<<<1, 1, 0, 0>>>(onGPU_d.get(), ws_d.get()); + cudaCheck(cudaGetLastError()); + cudaDeviceSynchronize(); + +#ifdef ONE_KERNEL + cms::cuda::launch(vertexFinderOneKernel, {1, 512 + 256}, onGPU_d.get(), ws_d.get(), kk, par[0], par[1], par[2]); +#else + cms::cuda::launch(CLUSTERIZE, {1, 512 + 256}, onGPU_d.get(), ws_d.get(), kk, par[0], par[1], par[2]); +#endif + print<<<1, 1, 0, 0>>>(onGPU_d.get(), ws_d.get()); + + cudaCheck(cudaGetLastError()); + cudaDeviceSynchronize(); + + cms::cuda::launch(gpuVertexFinder::fitVerticesKernel, {1, 1024 - 256}, onGPU_d.get(), ws_d.get(), 50.f); + cudaCheck(cudaGetLastError()); + cudaCheck(cudaMemcpy(&nv, LOC_ONGPU(nvFinal), sizeof(uint32_t), cudaMemcpyDeviceToHost)); + +#else + print(onGPU_d.get(), ws_d.get()); + CLUSTERIZE(onGPU_d.get(), ws_d.get(), kk, par[0], par[1], par[2]); + print(onGPU_d.get(), ws_d.get()); + fitVertices(onGPU_d.get(), ws_d.get(), 50.f); + nv = onGPU_d->nvFinal; +#endif + + if (nv == 0) { + std::cout << "NO VERTICES???" << std::endl; + continue; + } + + float* zv = nullptr; + float* wv = nullptr; + float* ptv2 = nullptr; + int32_t* nn = nullptr; + uint16_t* ind = nullptr; + + // keep chi2 separated... + float chi2[2 * nv]; // make space for splitting... + +#ifdef __CUDACC__ + float hzv[2 * nv]; + float hwv[2 * nv]; + float hptv2[2 * nv]; + int32_t hnn[2 * nv]; + uint16_t hind[2 * nv]; + + zv = hzv; + wv = hwv; + ptv2 = hptv2; + nn = hnn; + ind = hind; +#else + zv = onGPU_d->zv; + wv = onGPU_d->wv; + ptv2 = onGPU_d->ptv2; + nn = onGPU_d->ndof; + ind = onGPU_d->sortInd; +#endif + +#ifdef __CUDACC__ + cudaCheck(cudaMemcpy(nn, LOC_ONGPU(ndof), nv * sizeof(int32_t), cudaMemcpyDeviceToHost)); + cudaCheck(cudaMemcpy(chi2, LOC_ONGPU(chi2), nv * sizeof(float), cudaMemcpyDeviceToHost)); +#else + memcpy(chi2, LOC_ONGPU(chi2), nv * sizeof(float)); +#endif + + for (auto j = 0U; j < nv; ++j) + if (nn[j] > 0) + chi2[j] /= float(nn[j]); + { + auto mx = std::minmax_element(chi2, chi2 + nv); + std::cout << "after fit nv, min max chi2 " << nv << " " << *mx.first << ' ' << *mx.second << std::endl; + } + +#ifdef __CUDACC__ + cms::cuda::launch(gpuVertexFinder::fitVerticesKernel, {1, 1024 - 256}, onGPU_d.get(), ws_d.get(), 50.f); + cudaCheck(cudaMemcpy(&nv, LOC_ONGPU(nvFinal), sizeof(uint32_t), cudaMemcpyDeviceToHost)); + cudaCheck(cudaMemcpy(nn, LOC_ONGPU(ndof), nv * sizeof(int32_t), cudaMemcpyDeviceToHost)); + cudaCheck(cudaMemcpy(chi2, LOC_ONGPU(chi2), nv * sizeof(float), cudaMemcpyDeviceToHost)); +#else + fitVertices(onGPU_d.get(), ws_d.get(), 50.f); + nv = onGPU_d->nvFinal; + memcpy(chi2, LOC_ONGPU(chi2), nv * sizeof(float)); +#endif + + for (auto j = 0U; j < nv; ++j) + if (nn[j] > 0) + chi2[j] /= float(nn[j]); + { + auto mx = std::minmax_element(chi2, chi2 + nv); + std::cout << "before splitting nv, min max chi2 " << nv << " " << *mx.first << ' ' << *mx.second << std::endl; + } + +#ifdef __CUDACC__ + // one vertex per block!!! + cms::cuda::launch(gpuVertexFinder::splitVerticesKernel, {1024, 64}, onGPU_d.get(), ws_d.get(), 9.f); + cudaCheck(cudaMemcpy(&nv, LOC_WS(nvIntermediate), sizeof(uint32_t), cudaMemcpyDeviceToHost)); +#else + splitVertices(onGPU_d.get(), ws_d.get(), 9.f); + nv = ws_d->nvIntermediate; +#endif + std::cout << "after split " << nv << std::endl; + +#ifdef __CUDACC__ + cms::cuda::launch(gpuVertexFinder::fitVerticesKernel, {1, 1024 - 256}, onGPU_d.get(), ws_d.get(), 5000.f); + cudaCheck(cudaGetLastError()); + + cms::cuda::launch(gpuVertexFinder::sortByPt2Kernel, {1, 256}, onGPU_d.get(), ws_d.get()); + cudaCheck(cudaGetLastError()); + cudaCheck(cudaMemcpy(&nv, LOC_ONGPU(nvFinal), sizeof(uint32_t), cudaMemcpyDeviceToHost)); +#else + fitVertices(onGPU_d.get(), ws_d.get(), 5000.f); + sortByPt2(onGPU_d.get(), ws_d.get()); + nv = onGPU_d->nvFinal; + memcpy(chi2, LOC_ONGPU(chi2), nv * sizeof(float)); +#endif + + if (nv == 0) { + std::cout << "NO VERTICES???" << std::endl; + continue; + } + +#ifdef __CUDACC__ + cudaCheck(cudaMemcpy(zv, LOC_ONGPU(zv), nv * sizeof(float), cudaMemcpyDeviceToHost)); + cudaCheck(cudaMemcpy(wv, LOC_ONGPU(wv), nv * sizeof(float), cudaMemcpyDeviceToHost)); + cudaCheck(cudaMemcpy(chi2, LOC_ONGPU(chi2), nv * sizeof(float), cudaMemcpyDeviceToHost)); + cudaCheck(cudaMemcpy(ptv2, LOC_ONGPU(ptv2), nv * sizeof(float), cudaMemcpyDeviceToHost)); + cudaCheck(cudaMemcpy(nn, LOC_ONGPU(ndof), nv * sizeof(int32_t), cudaMemcpyDeviceToHost)); + cudaCheck(cudaMemcpy(ind, LOC_ONGPU(sortInd), nv * sizeof(uint16_t), cudaMemcpyDeviceToHost)); +#endif + for (auto j = 0U; j < nv; ++j) + if (nn[j] > 0) + chi2[j] /= float(nn[j]); + { + auto mx = std::minmax_element(chi2, chi2 + nv); + std::cout << "nv, min max chi2 " << nv << " " << *mx.first << ' ' << *mx.second << std::endl; + } + + { + auto mx = std::minmax_element(wv, wv + nv); + std::cout << "min max error " << 1. / std::sqrt(*mx.first) << ' ' << 1. / std::sqrt(*mx.second) << std::endl; + } + + { + auto mx = std::minmax_element(ptv2, ptv2 + nv); + std::cout << "min max ptv2 " << *mx.first << ' ' << *mx.second << std::endl; + std::cout << "min max ptv2 " << ptv2[ind[0]] << ' ' << ptv2[ind[nv - 1]] << " at " << ind[0] << ' ' + << ind[nv - 1] << std::endl; + } + + float dd[nv]; + for (auto kv = 0U; kv < nv; ++kv) { + auto zr = zv[kv]; + auto md = 500.0f; + for (auto zs : ev.ztrack) { + auto d = std::abs(zr - zs); + md = std::min(d, md); + } + dd[kv] = md; + } + if (i == 6) { + for (auto d : dd) + std::cout << d << ' '; + std::cout << std::endl; + } + auto mx = std::minmax_element(dd, dd + nv); + float rms = 0; + for (auto d : dd) + rms += d * d; + rms = std::sqrt(rms) / (nv - 1); + std::cout << "min max rms " << *mx.first << ' ' << *mx.second << ' ' << rms << std::endl; + + } // loop on events + } // lopp on ave vert + + return 0; +} diff --git a/RecoPixelVertexing/PixelVertexFinding/test/cpuVertexFinder_t.cpp b/RecoPixelVertexing/PixelVertexFinding/test/cpuVertexFinder_t.cpp new file mode 100644 index 0000000000000..a7906fe0d03f5 --- /dev/null +++ b/RecoPixelVertexing/PixelVertexFinding/test/cpuVertexFinder_t.cpp @@ -0,0 +1 @@ +#include "VertexFinder_t.h" diff --git a/RecoPixelVertexing/PixelVertexFinding/test/gpuVertexFinder_t.cu b/RecoPixelVertexing/PixelVertexFinding/test/gpuVertexFinder_t.cu new file mode 100644 index 0000000000000..a7906fe0d03f5 --- /dev/null +++ b/RecoPixelVertexing/PixelVertexFinding/test/gpuVertexFinder_t.cu @@ -0,0 +1 @@ +#include "VertexFinder_t.h" diff --git a/RecoTauTag/RecoTau/python/tools/runTauIdMVA.py b/RecoTauTag/RecoTau/python/tools/runTauIdMVA.py index 0745629fc1134..c06a99fe7c0cf 100644 --- a/RecoTauTag/RecoTau/python/tools/runTauIdMVA.py +++ b/RecoTauTag/RecoTau/python/tools/runTauIdMVA.py @@ -18,7 +18,9 @@ class TauIDEmbedder(object): ] def __init__(self, process, debug = False, + originalTauName = "slimmedTaus", updatedTauName = "slimmedTausNewID", + postfix = "", toKeep = ["deepTau2017v2p1"], tauIdDiscrMVA_trainings_run2_2017 = { 'tauIdMVAIsoDBoldDMwLT2017' : "tauIdMVAIsoDBoldDMwLT2017", }, tauIdDiscrMVA_WPs_run2_2017 = { @@ -38,7 +40,9 @@ def __init__(self, process, debug = False, super(TauIDEmbedder, self).__init__() self.process = process self.debug = debug + self.originalTauName = originalTauName self.updatedTauName = updatedTauName + self.postfix = postfix self.process.load('RecoTauTag.Configuration.loadRecoTauTagMVAsFromPrepDB_cfi') if len(conditionDB) != 0: self.process.CondDBTauConnection.connect = cms.string(conditionDB) @@ -126,8 +130,8 @@ def loadMVA_WPs_run2_2017(self): ) def runTauID(self): - self.process.rerunMvaIsolationTask = cms.Task() - self.process.rerunMvaIsolationSequence = cms.Sequence() + _rerunMvaIsolationTask = cms.Task() + _rerunMvaIsolationSequence = cms.Sequence() tauIDSources = cms.PSet() # rerun the seq to obtain the 2017 nom training with 0.5 iso cone, old DM, ptph>1, trained on 2017MCv1 @@ -152,19 +156,21 @@ def runTauID(self): if self.debug: print ("runTauID: not is_above_cmssw_version(9, 4, 4). Will update the list of available in DB samples to access 2017v1") self.loadMVA_WPs_run2_2017() - self.process.rerunDiscriminationByIsolationOldDMMVArun2017v1raw = patDiscriminationByIsolationMVArun2v1raw.clone( - PATTauProducer = cms.InputTag('slimmedTaus'), + _byIsolationOldDMMVArun2017v1raw = "rerunDiscriminationByIsolationOldDMMVArun2017v1raw"+self.postfix + setattr(self.process,_byIsolationOldDMMVArun2017v1raw,patDiscriminationByIsolationMVArun2v1raw.clone( + PATTauProducer = self.originalTauName, Prediscriminants = noPrediscriminants, loadMVAfromDB = cms.bool(True), - mvaName = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT2017v1"),#RecoTauTag_tauIdMVAIsoDBoldDMwLT2016v1 writeTauIdDiscrMVAs + mvaName = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT2017v1"), mvaOpt = cms.string("DBoldDMwLTwGJ"), verbosity = cms.int32(0) - ) + )) - self.process.rerunDiscriminationByIsolationOldDMMVArun2017v1 = patDiscriminationByIsolationMVArun2v1.clone( - PATTauProducer = cms.InputTag('slimmedTaus'), + _byIsolationOldDMMVArun2017v1 = "rerunDiscriminationByIsolationOldDMMVArun2017v1"+self.postfix + setattr(self.process,_byIsolationOldDMMVArun2017v1,patDiscriminationByIsolationMVArun2v1.clone( + PATTauProducer = self.originalTauName, Prediscriminants = noPrediscriminants, - toMultiplex = cms.InputTag('rerunDiscriminationByIsolationOldDMMVArun2017v1raw'), + toMultiplex = _byIsolationOldDMMVArun2017v1raw, loadMVAfromDB = cms.bool(True), mvaOutput_normalization = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT2017v1_mvaOutput_normalization"), #writeTauIdDiscrMVAoutputNormalizations mapping = cms.VPSet( @@ -183,23 +189,23 @@ def runTauID(self): "_WPEff50", "_WPEff40" ) - ) + )) - self.rerunIsolationOldDMMVArun2017v1Task = cms.Task( - self.process.rerunDiscriminationByIsolationOldDMMVArun2017v1raw, - self.process.rerunDiscriminationByIsolationOldDMMVArun2017v1 + _rerunIsolationOldDMMVArun2017v1Task = cms.Task( + getattr(self.process,_byIsolationOldDMMVArun2017v1raw), + getattr(self.process,_byIsolationOldDMMVArun2017v1) ) - self.process.rerunMvaIsolationTask.add(self.rerunIsolationOldDMMVArun2017v1Task) - self.process.rerunMvaIsolationSequence += cms.Sequence(self.rerunIsolationOldDMMVArun2017v1Task) + _rerunMvaIsolationTask.add(_rerunIsolationOldDMMVArun2017v1Task) + _rerunMvaIsolationSequence += cms.Sequence(_rerunIsolationOldDMMVArun2017v1Task) - tauIDSources.byIsolationMVArun2017v1DBoldDMwLTraw2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMMVArun2017v1", "raw") - tauIDSources.byVVLooseIsolationMVArun2017v1DBoldDMwLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMMVArun2017v1", "_WPEff95") - tauIDSources.byVLooseIsolationMVArun2017v1DBoldDMwLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMMVArun2017v1", "_WPEff90") - tauIDSources.byLooseIsolationMVArun2017v1DBoldDMwLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMMVArun2017v1", "_WPEff80") - tauIDSources.byMediumIsolationMVArun2017v1DBoldDMwLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMMVArun2017v1", "_WPEff70") - tauIDSources.byTightIsolationMVArun2017v1DBoldDMwLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMMVArun2017v1", "_WPEff60") - tauIDSources.byVTightIsolationMVArun2017v1DBoldDMwLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMMVArun2017v1", "_WPEff50") - tauIDSources.byVVTightIsolationMVArun2017v1DBoldDMwLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMMVArun2017v1", "_WPEff40") + tauIDSources.byIsolationMVArun2017v1DBoldDMwLTraw2017 = self.tauIDMVAinputs(_byIsolationOldDMMVArun2017v1, "raw") + tauIDSources.byVVLooseIsolationMVArun2017v1DBoldDMwLT2017 = self.tauIDMVAinputs(_byIsolationOldDMMVArun2017v1, "_WPEff95") + tauIDSources.byVLooseIsolationMVArun2017v1DBoldDMwLT2017 = self.tauIDMVAinputs(_byIsolationOldDMMVArun2017v1, "_WPEff90") + tauIDSources.byLooseIsolationMVArun2017v1DBoldDMwLT2017 = self.tauIDMVAinputs(_byIsolationOldDMMVArun2017v1, "_WPEff80") + tauIDSources.byMediumIsolationMVArun2017v1DBoldDMwLT2017 = self.tauIDMVAinputs(_byIsolationOldDMMVArun2017v1, "_WPEff70") + tauIDSources.byTightIsolationMVArun2017v1DBoldDMwLT2017 = self.tauIDMVAinputs(_byIsolationOldDMMVArun2017v1, "_WPEff60") + tauIDSources.byVTightIsolationMVArun2017v1DBoldDMwLT2017 = self.tauIDMVAinputs(_byIsolationOldDMMVArun2017v1, "_WPEff50") + tauIDSources.byVVTightIsolationMVArun2017v1DBoldDMwLT2017 = self.tauIDMVAinputs(_byIsolationOldDMMVArun2017v1, "_WPEff40") if "2017v2" in self.toKeep: @@ -223,19 +229,21 @@ def runTauID(self): if self.debug: print ("runTauID: not is_above_cmssw_version(9, 4, 5). Will update the list of available in DB samples to access 2017v2") self.loadMVA_WPs_run2_2017() - self.process.rerunDiscriminationByIsolationOldDMMVArun2017v2raw = patDiscriminationByIsolationMVArun2v1raw.clone( - PATTauProducer = cms.InputTag('slimmedTaus'), + _byIsolationOldDMMVArun2017v2raw = "rerunDiscriminationByIsolationOldDMMVArun2017v2raw"+self.postfix + setattr(self.process,_byIsolationOldDMMVArun2017v2raw,patDiscriminationByIsolationMVArun2v1raw.clone( + PATTauProducer = self.originalTauName, Prediscriminants = noPrediscriminants, loadMVAfromDB = cms.bool(True), - mvaName = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT2017v2"),#RecoTauTag_tauIdMVAIsoDBoldDMwLT2016v1 writeTauIdDiscrMVAs + mvaName = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT2017v2"), mvaOpt = cms.string("DBoldDMwLTwGJ"), verbosity = cms.int32(0) - ) + )) - self.process.rerunDiscriminationByIsolationOldDMMVArun2017v2 = patDiscriminationByIsolationMVArun2v1.clone( - PATTauProducer = cms.InputTag('slimmedTaus'), + _byIsolationOldDMMVArun2017v2 = "rerunDiscriminationByIsolationOldDMMVArun2017v2"+self.postfix + setattr(self.process,_byIsolationOldDMMVArun2017v2,patDiscriminationByIsolationMVArun2v1.clone( + PATTauProducer = self.originalTauName, Prediscriminants = noPrediscriminants, - toMultiplex = cms.InputTag('rerunDiscriminationByIsolationOldDMMVArun2017v2raw'), + toMultiplex = _byIsolationOldDMMVArun2017v2raw, loadMVAfromDB = cms.bool(True), mvaOutput_normalization = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT2017v2_mvaOutput_normalization"), #writeTauIdDiscrMVAoutputNormalizations mapping = cms.VPSet( @@ -255,23 +263,23 @@ def runTauID(self): "_WPEff40" ), verbosity = cms.int32(0) - ) + )) - self.rerunIsolationOldDMMVArun2017v2Task = cms.Task( - self.process.rerunDiscriminationByIsolationOldDMMVArun2017v2raw, - self.process.rerunDiscriminationByIsolationOldDMMVArun2017v2 + _rerunIsolationOldDMMVArun2017v2Task = cms.Task( + getattr(self.process,_byIsolationOldDMMVArun2017v2raw), + getattr(self.process,_byIsolationOldDMMVArun2017v2) ) - self.process.rerunMvaIsolationTask.add(self.rerunIsolationOldDMMVArun2017v2Task) - self.process.rerunMvaIsolationSequence += cms.Sequence(self.rerunIsolationOldDMMVArun2017v2Task) - - tauIDSources.byIsolationMVArun2017v2DBoldDMwLTraw2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMMVArun2017v2", "raw") - tauIDSources.byVVLooseIsolationMVArun2017v2DBoldDMwLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMMVArun2017v2", "_WPEff95") - tauIDSources.byVLooseIsolationMVArun2017v2DBoldDMwLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMMVArun2017v2", "_WPEff90") - tauIDSources.byLooseIsolationMVArun2017v2DBoldDMwLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMMVArun2017v2", "_WPEff80") - tauIDSources.byMediumIsolationMVArun2017v2DBoldDMwLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMMVArun2017v2", "_WPEff70") - tauIDSources.byTightIsolationMVArun2017v2DBoldDMwLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMMVArun2017v2", "_WPEff60") - tauIDSources.byVTightIsolationMVArun2017v2DBoldDMwLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMMVArun2017v2", "_WPEff50") - tauIDSources.byVVTightIsolationMVArun2017v2DBoldDMwLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMMVArun2017v2", "_WPEff40") + _rerunMvaIsolationTask.add(_rerunIsolationOldDMMVArun2017v2Task) + _rerunMvaIsolationSequence += cms.Sequence(_rerunIsolationOldDMMVArun2017v2Task) + + tauIDSources.byIsolationMVArun2017v2DBoldDMwLTraw2017 = self.tauIDMVAinputs(_byIsolationOldDMMVArun2017v2, "raw") + tauIDSources.byVVLooseIsolationMVArun2017v2DBoldDMwLT2017 = self.tauIDMVAinputs(_byIsolationOldDMMVArun2017v2, "_WPEff95") + tauIDSources.byVLooseIsolationMVArun2017v2DBoldDMwLT2017 = self.tauIDMVAinputs(_byIsolationOldDMMVArun2017v2, "_WPEff90") + tauIDSources.byLooseIsolationMVArun2017v2DBoldDMwLT2017 = self.tauIDMVAinputs(_byIsolationOldDMMVArun2017v2, "_WPEff80") + tauIDSources.byMediumIsolationMVArun2017v2DBoldDMwLT2017 = self.tauIDMVAinputs(_byIsolationOldDMMVArun2017v2, "_WPEff70") + tauIDSources.byTightIsolationMVArun2017v2DBoldDMwLT2017 = self.tauIDMVAinputs(_byIsolationOldDMMVArun2017v2, "_WPEff60") + tauIDSources.byVTightIsolationMVArun2017v2DBoldDMwLT2017 = self.tauIDMVAinputs(_byIsolationOldDMMVArun2017v2, "_WPEff50") + tauIDSources.byVVTightIsolationMVArun2017v2DBoldDMwLT2017 = self.tauIDMVAinputs(_byIsolationOldDMMVArun2017v2, "_WPEff40") if "newDM2017v2" in self.toKeep: self.tauIdDiscrMVA_2017_version = "v2" @@ -294,19 +302,21 @@ def runTauID(self): if self.debug: print ("runTauID: not is_above_cmssw_version(9, 4, 5). Will update the list of available in DB samples to access newDM2017v2") self.loadMVA_WPs_run2_2017() - self.process.rerunDiscriminationByIsolationNewDMMVArun2017v2raw = patDiscriminationByIsolationMVArun2v1raw.clone( - PATTauProducer = cms.InputTag('slimmedTaus'), + _byIsolationNewDMMVArun2017v2raw = "rerunDiscriminationByIsolationNewDMMVArun2017v2raw"+self.postfix + setattr(self.process,_byIsolationNewDMMVArun2017v2raw,patDiscriminationByIsolationMVArun2v1raw.clone( + PATTauProducer = self.originalTauName, Prediscriminants = noPrediscriminants, loadMVAfromDB = cms.bool(True), - mvaName = cms.string("RecoTauTag_tauIdMVAIsoDBnewDMwLT2017v2"),#RecoTauTag_tauIdMVAIsoDBoldDMwLT2016v1 writeTauIdDiscrMVAs + mvaName = cms.string("RecoTauTag_tauIdMVAIsoDBnewDMwLT2017v2"), mvaOpt = cms.string("DBnewDMwLTwGJ"), verbosity = cms.int32(0) - ) + )) - self.process.rerunDiscriminationByIsolationNewDMMVArun2017v2 = patDiscriminationByIsolationMVArun2v1.clone( - PATTauProducer = cms.InputTag('slimmedTaus'), + _byIsolationNewDMMVArun2017v2 = "rerunDiscriminationByIsolationNewDMMVArun2017v2"+self.postfix + setattr(self.process,_byIsolationNewDMMVArun2017v2,patDiscriminationByIsolationMVArun2v1.clone( + PATTauProducer = self.originalTauName, Prediscriminants = noPrediscriminants, - toMultiplex = cms.InputTag('rerunDiscriminationByIsolationNewDMMVArun2017v2raw'), + toMultiplex = _byIsolationNewDMMVArun2017v2raw, loadMVAfromDB = cms.bool(True), mvaOutput_normalization = cms.string("RecoTauTag_tauIdMVAIsoDBnewDMwLT2017v2_mvaOutput_normalization"), #writeTauIdDiscrMVAoutputNormalizations mapping = cms.VPSet( @@ -326,23 +336,23 @@ def runTauID(self): "_WPEff40" ), verbosity = cms.int32(0) - ) + )) - self.rerunIsolationNewDMMVArun2017v2Task = cms.Task( - self.process.rerunDiscriminationByIsolationNewDMMVArun2017v2raw, - self.process.rerunDiscriminationByIsolationNewDMMVArun2017v2 + _rerunIsolationNewDMMVArun2017v2Task = cms.Task( + getattr(self.process,_byIsolationNewDMMVArun2017v2raw), + getattr(self.process,_byIsolationNewDMMVArun2017v2) ) - self.process.rerunMvaIsolationTask.add(self.rerunIsolationNewDMMVArun2017v2Task) - self.process.rerunMvaIsolationSequence += cms.Sequence(self.rerunIsolationNewDMMVArun2017v2Task) - - tauIDSources.byIsolationMVArun2017v2DBnewDMwLTraw2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationNewDMMVArun2017v2", "raw") - tauIDSources.byVVLooseIsolationMVArun2017v2DBnewDMwLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationNewDMMVArun2017v2", "_WPEff95") - tauIDSources.byVLooseIsolationMVArun2017v2DBnewDMwLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationNewDMMVArun2017v2", "_WPEff90") - tauIDSources.byLooseIsolationMVArun2017v2DBnewDMwLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationNewDMMVArun2017v2", "_WPEff80") - tauIDSources.byMediumIsolationMVArun2017v2DBnewDMwLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationNewDMMVArun2017v2", "_WPEff70") - tauIDSources.byTightIsolationMVArun2017v2DBnewDMwLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationNewDMMVArun2017v2", "_WPEff60") - tauIDSources.byVTightIsolationMVArun2017v2DBnewDMwLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationNewDMMVArun2017v2", "_WPEff50") - tauIDSources.byVVTightIsolationMVArun2017v2DBnewDMwLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationNewDMMVArun2017v2", "_WPEff40") + _rerunMvaIsolationTask.add(_rerunIsolationNewDMMVArun2017v2Task) + _rerunMvaIsolationSequence += cms.Sequence(_rerunIsolationNewDMMVArun2017v2Task) + + tauIDSources.byIsolationMVArun2017v2DBnewDMwLTraw2017 = self.tauIDMVAinputs(_byIsolationNewDMMVArun2017v2, "raw") + tauIDSources.byVVLooseIsolationMVArun2017v2DBnewDMwLT2017 = self.tauIDMVAinputs(_byIsolationNewDMMVArun2017v2, "_WPEff95") + tauIDSources.byVLooseIsolationMVArun2017v2DBnewDMwLT2017 = self.tauIDMVAinputs(_byIsolationNewDMMVArun2017v2, "_WPEff90") + tauIDSources.byLooseIsolationMVArun2017v2DBnewDMwLT2017 = self.tauIDMVAinputs(_byIsolationNewDMMVArun2017v2, "_WPEff80") + tauIDSources.byMediumIsolationMVArun2017v2DBnewDMwLT2017 = self.tauIDMVAinputs(_byIsolationNewDMMVArun2017v2, "_WPEff70") + tauIDSources.byTightIsolationMVArun2017v2DBnewDMwLT2017 = self.tauIDMVAinputs(_byIsolationNewDMMVArun2017v2, "_WPEff60") + tauIDSources.byVTightIsolationMVArun2017v2DBnewDMwLT2017 = self.tauIDMVAinputs(_byIsolationNewDMMVArun2017v2, "_WPEff50") + tauIDSources.byVVTightIsolationMVArun2017v2DBnewDMwLT2017 = self.tauIDMVAinputs(_byIsolationNewDMMVArun2017v2, "_WPEff40") if "dR0p32017v2" in self.toKeep: self.tauIdDiscrMVA_2017_version = "v2" @@ -365,8 +375,9 @@ def runTauID(self): if self.debug: print ("runTauID: not is_above_cmssw_version(9, 4, 5). Will update the list of available in DB samples to access dR0p32017v2") self.loadMVA_WPs_run2_2017() - self.process.rerunDiscriminationByIsolationOldDMdR0p3MVArun2017v2raw = patDiscriminationByIsolationMVArun2v1raw.clone( - PATTauProducer = cms.InputTag('slimmedTaus'), + _byIsolationOldDMdR0p3MVArun2017v2raw = "rerunDiscriminationByIsolationOldDMdR0p3MVArun2017v2raw"+self.postfix + setattr(self.process,_byIsolationOldDMdR0p3MVArun2017v2raw,patDiscriminationByIsolationMVArun2v1raw.clone( + PATTauProducer = self.originalTauName, Prediscriminants = noPrediscriminants, loadMVAfromDB = cms.bool(True), mvaName = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMdR0p3wLT2017v2"), @@ -376,12 +387,13 @@ def runTauID(self): srcNeutralIsoPtSum = cms.string('neutralIsoPtSumdR03'), srcPhotonPtSumOutsideSignalCone = cms.string('photonPtSumOutsideSignalConedR03'), verbosity = cms.int32(0) - ) + )) - self.process.rerunDiscriminationByIsolationOldDMdR0p3MVArun2017v2= patDiscriminationByIsolationMVArun2v1.clone( - PATTauProducer = cms.InputTag('slimmedTaus'), + _byIsolationOldDMdR0p3MVArun2017v2 = "rerunDiscriminationByIsolationOldDMdR0p3MVArun2017v2"+self.postfix + setattr(self.process,_byIsolationOldDMdR0p3MVArun2017v2,patDiscriminationByIsolationMVArun2v1.clone( + PATTauProducer = self.originalTauName, Prediscriminants = noPrediscriminants, - toMultiplex = cms.InputTag('rerunDiscriminationByIsolationOldDMdR0p3MVArun2017v2raw'), + toMultiplex = _byIsolationOldDMdR0p3MVArun2017v2raw, loadMVAfromDB = cms.bool(True), mvaOutput_normalization = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMdR0p3wLT2017v2_mvaOutput_normalization"), #writeTauIdDiscrMVAoutputNormalizations mapping = cms.VPSet( @@ -401,38 +413,38 @@ def runTauID(self): "_WPEff40" ), verbosity = cms.int32(0) - ) + )) - self.rerunIsolationOldDMdR0p3MVArun2017v2Task = cms.Task( - self.process.rerunDiscriminationByIsolationOldDMdR0p3MVArun2017v2raw, - self.process.rerunDiscriminationByIsolationOldDMdR0p3MVArun2017v2 + _rerunIsolationOldDMdR0p3MVArun2017v2Task = cms.Task( + getattr(self.process,_byIsolationOldDMdR0p3MVArun2017v2raw), + getattr(self.process,_byIsolationOldDMdR0p3MVArun2017v2) ) - self.process.rerunMvaIsolationTask.add(self.rerunIsolationOldDMdR0p3MVArun2017v2Task) - self.process.rerunMvaIsolationSequence += cms.Sequence(self.rerunIsolationOldDMdR0p3MVArun2017v2Task) - - tauIDSources.byIsolationMVArun2017v2DBoldDMdR0p3wLTraw2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMdR0p3MVArun2017v2", "raw") - tauIDSources.byVVLooseIsolationMVArun2017v2DBoldDMdR0p3wLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMdR0p3MVArun2017v2", "_WPEff95") - tauIDSources.byVLooseIsolationMVArun2017v2DBoldDMdR0p3wLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMdR0p3MVArun2017v2", "_WPEff90") - tauIDSources.byLooseIsolationMVArun2017v2DBoldDMdR0p3wLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMdR0p3MVArun2017v2", "_WPEff80") - tauIDSources.byMediumIsolationMVArun2017v2DBoldDMdR0p3wLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMdR0p3MVArun2017v2", "_WPEff70") - tauIDSources.byTightIsolationMVArun2017v2DBoldDMdR0p3wLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMdR0p3MVArun2017v2", "_WPEff60") - tauIDSources.byVTightIsolationMVArun2017v2DBoldDMdR0p3wLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMdR0p3MVArun2017v2", "_WPEff50") - tauIDSources.byVVTightIsolationMVArun2017v2DBoldDMdR0p3wLT2017 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMdR0p3MVArun2017v2", "_WPEff40") + _rerunMvaIsolationTask.add(_rerunIsolationOldDMdR0p3MVArun2017v2Task) + _rerunMvaIsolationSequence += cms.Sequence(_rerunIsolationOldDMdR0p3MVArun2017v2Task) + + tauIDSources.byIsolationMVArun2017v2DBoldDMdR0p3wLTraw2017 = self.tauIDMVAinputs(_byIsolationOldDMdR0p3MVArun2017v2, "raw") + tauIDSources.byVVLooseIsolationMVArun2017v2DBoldDMdR0p3wLT2017 = self.tauIDMVAinputs(_byIsolationOldDMdR0p3MVArun2017v2, "_WPEff95") + tauIDSources.byVLooseIsolationMVArun2017v2DBoldDMdR0p3wLT2017 = self.tauIDMVAinputs(_byIsolationOldDMdR0p3MVArun2017v2, "_WPEff90") + tauIDSources.byLooseIsolationMVArun2017v2DBoldDMdR0p3wLT2017 = self.tauIDMVAinputs(_byIsolationOldDMdR0p3MVArun2017v2, "_WPEff80") + tauIDSources.byMediumIsolationMVArun2017v2DBoldDMdR0p3wLT2017 = self.tauIDMVAinputs(_byIsolationOldDMdR0p3MVArun2017v2, "_WPEff70") + tauIDSources.byTightIsolationMVArun2017v2DBoldDMdR0p3wLT2017 = self.tauIDMVAinputs(_byIsolationOldDMdR0p3MVArun2017v2, "_WPEff60") + tauIDSources.byVTightIsolationMVArun2017v2DBoldDMdR0p3wLT2017 = self.tauIDMVAinputs(_byIsolationOldDMdR0p3MVArun2017v2, "_WPEff50") + tauIDSources.byVVTightIsolationMVArun2017v2DBoldDMdR0p3wLT2017 = self.tauIDMVAinputs(_byIsolationOldDMdR0p3MVArun2017v2, "_WPEff40") # 2016 training strategy(v2) - essentially the same as 2017 training strategy (v1), trained on 2016MC, old DM - currently not implemented in the tau sequence of any release # self.process.rerunDiscriminationByIsolationOldDMMVArun2v2raw = patDiscriminationByIsolationMVArun2v1raw.clone( - # PATTauProducer = cms.InputTag('slimmedTaus'), + # PATTauProducer = self.originalTauName, # Prediscriminants = noPrediscriminants, # loadMVAfromDB = cms.bool(True), - # mvaName = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT2016v2"),#RecoTauTag_tauIdMVAIsoDBoldDMwLT2016v1 writeTauIdDiscrMVAs + # mvaName = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT2016v2"), # mvaOpt = cms.string("DBoldDMwLTwGJ"), # verbosity = cms.int32(0) # ) # # # self.process.rerunDiscriminationByIsolationOldDMMVArun2v2VLoose = patDiscriminationByIsolationMVArun2v1VLoose.clone( - # PATTauProducer = cms.InputTag('slimmedTaus'), + # PATTauProducer = self.originalTauName, # Prediscriminants = noPrediscriminants, - # toMultiplex = cms.InputTag('rerunDiscriminationByIsolationOldDMMVArun2v2raw'), + # toMultiplex = 'rerunDiscriminationByIsolationOldDMMVArun2v2raw', # key = cms.InputTag('rerunDiscriminationByIsolationOldDMMVArun2v2raw:category'),#? # loadMVAfromDB = cms.bool(True), # mvaOutput_normalization = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT2016v2_mvaOutput_normalization"), #writeTauIdDiscrMVAoutputNormalizations @@ -447,19 +459,21 @@ def runTauID(self): # 2016 training strategy(v1), trained on 2016MC, old DM if "2016v1" in self.toKeep: - self.process.rerunDiscriminationByIsolationOldDMMVArun2v1raw = patDiscriminationByIsolationMVArun2v1raw.clone( - PATTauProducer = cms.InputTag('slimmedTaus'), + _byIsolationOldDMMVArun2016v1raw = "rerunDiscriminationByIsolationOldDMMVArun2v1raw"+self.postfix + setattr(self.process,_byIsolationOldDMMVArun2016v1raw,patDiscriminationByIsolationMVArun2v1raw.clone( + PATTauProducer = self.originalTauName, Prediscriminants = noPrediscriminants, loadMVAfromDB = cms.bool(True), mvaName = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT2016v1"), mvaOpt = cms.string("DBoldDMwLT"), verbosity = cms.int32(0) - ) + )) - self.process.rerunDiscriminationByIsolationOldDMMVArun2v1 = patDiscriminationByIsolationMVArun2v1.clone( - PATTauProducer = cms.InputTag('slimmedTaus'), + _byIsolationOldDMMVArun2016v1 = "rerunDiscriminationByIsolationOldDMMVArun2v1"+self.postfix + setattr(self.process,_byIsolationOldDMMVArun2016v1,patDiscriminationByIsolationMVArun2v1.clone( + PATTauProducer = self.originalTauName, Prediscriminants = noPrediscriminants, - toMultiplex = cms.InputTag('rerunDiscriminationByIsolationOldDMMVArun2v1raw'), + toMultiplex = _byIsolationOldDMMVArun2016v1raw, loadMVAfromDB = cms.bool(True), mvaOutput_normalization = cms.string("RecoTauTag_tauIdMVAIsoDBoldDMwLT2016v1_mvaOutput_normalization"), mapping = cms.VPSet( @@ -477,38 +491,40 @@ def runTauID(self): "_WPEff50", "_WPEff40" ) - ) + )) - self.rerunIsolationOldDMMVArun2016v1Task = cms.Task( - self.process.rerunDiscriminationByIsolationOldDMMVArun2v1raw, - self.process.rerunDiscriminationByIsolationOldDMMVArun2v1 + _rerunIsolationOldDMMVArun2016v1Task = cms.Task( + getattr(self.process,_byIsolationOldDMMVArun2016v1raw), + getattr(self.process,_byIsolationOldDMMVArun2016v1) ) - self.process.rerunMvaIsolationTask.add(self.rerunIsolationOldDMMVArun2016v1Task) - self.process.rerunMvaIsolationSequence += cms.Sequence(self.rerunIsolationOldDMMVArun2016v1Task) + _rerunMvaIsolationTask.add(_rerunIsolationOldDMMVArun2016v1Task) + _rerunMvaIsolationSequence += cms.Sequence(_rerunIsolationOldDMMVArun2016v1Task) - tauIDSources.byIsolationMVArun2v1DBoldDMwLTraw2016 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMMVArun2v1", "raw") - tauIDSources.byVLooseIsolationMVArun2v1DBoldDMwLT2016 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMMVArun2v1", "_WPEff90") - tauIDSources.byLooseIsolationMVArun2v1DBoldDMwLT2016 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMMVArun2v1", "_WPEff80") - tauIDSources.byMediumIsolationMVArun2v1DBoldDMwLT2016 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMMVArun2v1", "_WPEff70") - tauIDSources.byTightIsolationMVArun2v1DBoldDMwLT2016 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMMVArun2v1", "_WPEff60") - tauIDSources.byVTightIsolationMVArun2v1DBoldDMwLT2016 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMMVArun2v1", "_WPEff50") - tauIDSources.byVVTightIsolationMVArun2v1DBoldDMwLT2016 = self.tauIDMVAinputs("rerunDiscriminationByIsolationOldDMMVArun2v1", "_WPEff40") + tauIDSources.byIsolationMVArun2v1DBoldDMwLTraw2016 = self.tauIDMVAinputs(_byIsolationOldDMMVArun2016v1, "raw") + tauIDSources.byVLooseIsolationMVArun2v1DBoldDMwLT2016 = self.tauIDMVAinputs(_byIsolationOldDMMVArun2016v1, "_WPEff90") + tauIDSources.byLooseIsolationMVArun2v1DBoldDMwLT2016 = self.tauIDMVAinputs(_byIsolationOldDMMVArun2016v1, "_WPEff80") + tauIDSources.byMediumIsolationMVArun2v1DBoldDMwLT2016 = self.tauIDMVAinputs(_byIsolationOldDMMVArun2016v1, "_WPEff70") + tauIDSources.byTightIsolationMVArun2v1DBoldDMwLT2016 = self.tauIDMVAinputs(_byIsolationOldDMMVArun2016v1, "_WPEff60") + tauIDSources.byVTightIsolationMVArun2v1DBoldDMwLT2016 = self.tauIDMVAinputs(_byIsolationOldDMMVArun2016v1, "_WPEff50") + tauIDSources.byVVTightIsolationMVArun2v1DBoldDMwLT2016 = self.tauIDMVAinputs(_byIsolationOldDMMVArun2016v1, "_WPEff40") # 2016 training strategy(v1), trained on 2016MC, new DM if "newDM2016v1" in self.toKeep: - self.process.rerunDiscriminationByIsolationNewDMMVArun2v1raw = patDiscriminationByIsolationMVArun2v1raw.clone( - PATTauProducer = cms.InputTag('slimmedTaus'), + _byIsolationNewDMMVArun2016v1raw = "rerunDiscriminationByIsolationNewDMMVArun2v1raw"+self.postfix + setattr(self.process,_byIsolationNewDMMVArun2016v1raw,patDiscriminationByIsolationMVArun2v1raw.clone( + PATTauProducer = self.originalTauName, Prediscriminants = noPrediscriminants, loadMVAfromDB = cms.bool(True), mvaName = cms.string("RecoTauTag_tauIdMVAIsoDBnewDMwLT2016v1"), mvaOpt = cms.string("DBnewDMwLT"), verbosity = cms.int32(0) - ) + )) - self.process.rerunDiscriminationByIsolationNewDMMVArun2v1 = patDiscriminationByIsolationMVArun2v1.clone( - PATTauProducer = cms.InputTag('slimmedTaus'), + _byIsolationNewDMMVArun2016v1 = "rerunDiscriminationByIsolationNewDMMVArun2v1"+self.postfix + setattr(self.process,_byIsolationNewDMMVArun2016v1,patDiscriminationByIsolationMVArun2v1.clone( + PATTauProducer = self.originalTauName, Prediscriminants = noPrediscriminants, - toMultiplex = cms.InputTag('rerunDiscriminationByIsolationNewDMMVArun2v1raw'), + toMultiplex = _byIsolationNewDMMVArun2016v1raw, loadMVAfromDB = cms.bool(True), mvaOutput_normalization = cms.string("RecoTauTag_tauIdMVAIsoDBnewDMwLT2016v1_mvaOutput_normalization"), mapping = cms.VPSet( @@ -526,26 +542,27 @@ def runTauID(self): "_WPEff50", "_WPEff40" ) - ) + )) - self.rerunIsolationNewDMMVArun2016v1Task = cms.Task( - self.process.rerunDiscriminationByIsolationNewDMMVArun2v1raw, - self.process.rerunDiscriminationByIsolationNewDMMVArun2v1 + _rerunIsolationNewDMMVArun2016v1Task = cms.Task( + getattr(self.process,_byIsolationNewDMMVArun2016v1raw), + getattr(self.process,_byIsolationNewDMMVArun2016v1) ) - self.process.rerunMvaIsolationTask.add(self.rerunIsolationNewDMMVArun2016v1Task) - self.process.rerunMvaIsolationSequence += cms.Sequence(self.rerunIsolationNewDMMVArun2016v1Task) + _rerunMvaIsolationTask.add(_rerunIsolationNewDMMVArun2016v1Task) + _rerunMvaIsolationSequence += cms.Sequence(_rerunIsolationNewDMMVArun2016v1Task) - tauIDSources.byIsolationMVArun2v1DBnewDMwLTraw2016 = self.tauIDMVAinputs("rerunDiscriminationByIsolationNewDMMVArun2v1", "raw") - tauIDSources.byVLooseIsolationMVArun2v1DBnewDMwLT2016 = self.tauIDMVAinputs("rerunDiscriminationByIsolationNewDMMVArun2v1", "_WPEff90") - tauIDSources.byLooseIsolationMVArun2v1DBnewDMwLT2016 = self.tauIDMVAinputs("rerunDiscriminationByIsolationNewDMMVArun2v1", "_WPEff80") - tauIDSources.byMediumIsolationMVArun2v1DBnewDMwLT2016 = self.tauIDMVAinputs("rerunDiscriminationByIsolationNewDMMVArun2v1", "_WPEff70") - tauIDSources.byTightIsolationMVArun2v1DBnewDMwLT2016 = self.tauIDMVAinputs("rerunDiscriminationByIsolationNewDMMVArun2v1", "_WPEff60") - tauIDSources.byVTightIsolationMVArun2v1DBnewDMwLT2016 = self.tauIDMVAinputs("rerunDiscriminationByIsolationNewDMMVArun2v1", "_WPEff50") - tauIDSources.byVVTightIsolationMVArun2v1DBnewDMwLT2016 = self.tauIDMVAinputs("rerunDiscriminationByIsolationNewDMMVArun2v1", "_WPEff40") + tauIDSources.byIsolationMVArun2v1DBnewDMwLTraw2016 = self.tauIDMVAinputs(_byIsolationNewDMMVArun2016v1, "raw") + tauIDSources.byVLooseIsolationMVArun2v1DBnewDMwLT2016 = self.tauIDMVAinputs(_byIsolationNewDMMVArun2016v1, "_WPEff90") + tauIDSources.byLooseIsolationMVArun2v1DBnewDMwLT2016 = self.tauIDMVAinputs(_byIsolationNewDMMVArun2016v1, "_WPEff80") + tauIDSources.byMediumIsolationMVArun2v1DBnewDMwLT2016 = self.tauIDMVAinputs(_byIsolationNewDMMVArun2016v1, "_WPEff70") + tauIDSources.byTightIsolationMVArun2v1DBnewDMwLT2016 = self.tauIDMVAinputs(_byIsolationNewDMMVArun2016v1, "_WPEff60") + tauIDSources.byVTightIsolationMVArun2v1DBnewDMwLT2016 = self.tauIDMVAinputs(_byIsolationNewDMMVArun2016v1, "_WPEff50") + tauIDSources.byVVTightIsolationMVArun2v1DBnewDMwLT2016 = self.tauIDMVAinputs(_byIsolationNewDMMVArun2016v1, "_WPEff40") if "deepTau2017v1" in self.toKeep: if self.debug: print ("Adding DeepTau IDs") + _deepTauName = "deepTau2017v1" workingPoints_ = { "e": { "VVVLoose" : 0.96424, @@ -580,10 +597,10 @@ def runTauID(self): } } file_names = ['RecoTauTag/TrainingFiles/data/DeepTauId/deepTau_2017v1_20L1024N_quantized.pb'] - self.process.deepTau2017v1 = cms.EDProducer("DeepTauId", + setattr(self.process,_deepTauName+self.postfix,cms.EDProducer("DeepTauId", electrons = cms.InputTag('slimmedElectrons'), muons = cms.InputTag('slimmedMuons'), - taus = cms.InputTag('slimmedTaus'), + taus = cms.InputTag(self.originalTauName), pfcands = cms.InputTag('packedPFCandidates'), vertices = cms.InputTag('offlineSlimmedPrimaryVertices'), rho = cms.InputTag('fixedGridRhoAll'), @@ -592,16 +609,19 @@ def runTauID(self): version = cms.uint32(self.getDeepTauVersion(file_names[0])[1]), debug_level = cms.int32(0), disable_dxy_pca = cms.bool(False) - ) + )) + + self.processDeepProducer(_deepTauName, tauIDSources, workingPoints_) - self.processDeepProducer('deepTau2017v1', tauIDSources, workingPoints_) + _deepTauProducer = getattr(self.process,_deepTauName+self.postfix) + _rerunMvaIsolationTask.add(_deepTauProducer) + _rerunMvaIsolationSequence += _deepTauProducer - self.process.rerunMvaIsolationTask.add(self.process.deepTau2017v1) - self.process.rerunMvaIsolationSequence += self.process.deepTau2017v1 if "deepTau2017v2" in self.toKeep: if self.debug: print ("Adding DeepTau IDs") + _deepTauName = "deepTau2017v2" workingPoints_ = { "e": { "VVVLoose": 0.0630386, @@ -636,10 +656,10 @@ def runTauID(self): 'inner:RecoTauTag/TrainingFiles/data/DeepTauId/deepTau_2017v2p6_e6_inner.pb', 'outer:RecoTauTag/TrainingFiles/data/DeepTauId/deepTau_2017v2p6_e6_outer.pb', ] - self.process.deepTau2017v2 = cms.EDProducer("DeepTauId", + setattr(self.process,_deepTauName+self.postfix,cms.EDProducer("DeepTauId", electrons = cms.InputTag('slimmedElectrons'), muons = cms.InputTag('slimmedMuons'), - taus = cms.InputTag('slimmedTaus'), + taus = cms.InputTag(self.originalTauName), pfcands = cms.InputTag('packedPFCandidates'), vertices = cms.InputTag('offlineSlimmedPrimaryVertices'), rho = cms.InputTag('fixedGridRhoAll'), @@ -648,16 +668,19 @@ def runTauID(self): version = cms.uint32(self.getDeepTauVersion(file_names[0])[1]), debug_level = cms.int32(0), disable_dxy_pca = cms.bool(False) - ) + )) - self.processDeepProducer('deepTau2017v2', tauIDSources, workingPoints_) + self.processDeepProducer(_deepTauName, tauIDSources, workingPoints_) + + _deepTauProducer = getattr(self.process,_deepTauName+self.postfix) + _rerunMvaIsolationTask.add(_deepTauProducer) + _rerunMvaIsolationSequence += _deepTauProducer - self.process.rerunMvaIsolationTask.add(self.process.deepTau2017v2) - self.process.rerunMvaIsolationSequence += self.process.deepTau2017v2 if "deepTau2017v2p1" in self.toKeep: if self.debug: print ("Adding DeepTau IDs") + _deepTauName = "deepTau2017v2p1" workingPoints_ = { "e": { "VVVLoose": 0.0630386, @@ -692,10 +715,10 @@ def runTauID(self): 'inner:RecoTauTag/TrainingFiles/data/DeepTauId/deepTau_2017v2p6_e6_inner.pb', 'outer:RecoTauTag/TrainingFiles/data/DeepTauId/deepTau_2017v2p6_e6_outer.pb', ] - self.process.deepTau2017v2p1 = cms.EDProducer("DeepTauId", + setattr(self.process,_deepTauName+self.postfix,cms.EDProducer("DeepTauId", electrons = cms.InputTag('slimmedElectrons'), muons = cms.InputTag('slimmedMuons'), - taus = cms.InputTag('slimmedTaus'), + taus = cms.InputTag(self.originalTauName), pfcands = cms.InputTag('packedPFCandidates'), vertices = cms.InputTag('offlineSlimmedPrimaryVertices'), rho = cms.InputTag('fixedGridRhoAll'), @@ -705,16 +728,19 @@ def runTauID(self): debug_level = cms.int32(0), disable_dxy_pca = cms.bool(True), is_online = cms.bool(False) - ) + )) - self.processDeepProducer('deepTau2017v2p1', tauIDSources, workingPoints_) + self.processDeepProducer(_deepTauName, tauIDSources, workingPoints_) + + _deepTauProducer = getattr(self.process,_deepTauName+self.postfix) + _rerunMvaIsolationTask.add(_deepTauProducer) + _rerunMvaIsolationSequence += _deepTauProducer - self.process.rerunMvaIsolationTask.add(self.process.deepTau2017v2p1) - self.process.rerunMvaIsolationSequence += self.process.deepTau2017v2p1 if "DPFTau_2016_v0" in self.toKeep: if self.debug: print ("Adding DPFTau isolation (v0)") + _deepTauName = "DPFTau_2016_v0" workingPoints_ = { "all": { "Tight" : "if(decayMode == 0) return (0.898328 - 0.000160992 * pt);" + \ @@ -730,19 +756,20 @@ def runTauID(self): } } file_names = [ 'RecoTauTag/TrainingFiles/data/DPFTauId/DPFIsolation_2017v0_quantized.pb' ] - self.process.dpfTau2016v0 = cms.EDProducer("DPFIsolation", + setattr(self.process,_deepTauName+self.postfix,cms.EDProducer("DPFIsolation", pfcands = cms.InputTag('packedPFCandidates'), - taus = cms.InputTag('slimmedTaus'), + taus = cms.InputTag(self.originalTauName), vertices = cms.InputTag('offlineSlimmedPrimaryVertices'), graph_file = cms.vstring(file_names), version = cms.uint32(self.getDpfTauVersion(file_names[0])), mem_mapped = cms.bool(False) - ) + )) - self.processDeepProducer('dpfTau2016v0', tauIDSources, workingPoints_) + self.processDeepProducer(_deepTauName, tauIDSources, workingPoints_) - self.process.rerunMvaIsolationTask.add(self.process.dpfTau2016v0) - self.process.rerunMvaIsolationSequence += self.process.dpfTau2016v0 + _deepTauProducer = getattr(self.process,_deepTauName+self.postfix) + _rerunMvaIsolationTask.add(_deepTauProducer) + _rerunMvaIsolationSequence += _deepTauProducer if "DPFTau_2016_v1" in self.toKeep: @@ -750,32 +777,36 @@ def runTauID(self): print ("WARNING: WPs are not defined for DPFTau_2016_v1") print ("WARNING: The score of DPFTau_2016_v1 is inverted: i.e. for Sig->0, for Bkg->1 with -1 for undefined input (preselection not passed).") + _deepTauName = "DPFTau_2016_v1" workingPoints_ = { "all": {"Tight" : 0.123} #FIXME: define WP } file_names = [ 'RecoTauTag/TrainingFiles/data/DPFTauId/DPFIsolation_2017v1_quantized.pb' ] - self.process.dpfTau2016v1 = cms.EDProducer("DPFIsolation", + setattr(self.process,_deepTauName+self.postfix,cms.EDProducer("DPFIsolation", pfcands = cms.InputTag('packedPFCandidates'), - taus = cms.InputTag('slimmedTaus'), + taus = cms.InputTag(self.originalTauName), vertices = cms.InputTag('offlineSlimmedPrimaryVertices'), graph_file = cms.vstring(file_names), version = cms.uint32(self.getDpfTauVersion(file_names[0])), mem_mapped = cms.bool(False) - ) + )) + + self.processDeepProducer(_deepTauName, tauIDSources, workingPoints_) - self.processDeepProducer('dpfTau2016v1', tauIDSources, workingPoints_) + _deepTauProducer = getattr(self.process,_deepTauName+self.postfix) + _rerunMvaIsolationTask.add(_deepTauProducer) + _rerunMvaIsolationSequence += _deepTauProducer - self.process.rerunMvaIsolationTask.add(self.process.dpfTau2016v1) - self.process.rerunMvaIsolationSequence += self.process.dpfTau2016v1 if "againstEle2018" in self.toKeep: antiElectronDiscrMVA6_version = "MVA6v3_noeveto" ### Define new anti-e discriminants ## Raw from RecoTauTag.RecoTau.patTauDiscriminationAgainstElectronMVA6_cfi import patTauDiscriminationAgainstElectronMVA6 - self.process.patTauDiscriminationByElectronRejectionMVA62018Raw = patTauDiscriminationAgainstElectronMVA6.clone( - PATTauProducer = cms.InputTag('slimmedTaus'), + _byElectronRejectionMVA62018Raw = "patTauDiscriminationByElectronRejectionMVA62018Raw"+self.postfix + setattr(self.process,_byElectronRejectionMVA62018Raw,patTauDiscriminationAgainstElectronMVA6.clone( + PATTauProducer = self.originalTauName, Prediscriminants = noPrediscriminants, #already selected for MiniAOD srcElectrons = cms.InputTag('slimmedElectrons'), vetoEcalCracks = cms.bool(False), #keep taus in EB-EE cracks @@ -787,13 +818,14 @@ def runTauID(self): mvaName_wGwGSF_EC = 'RecoTauTag_antiElectron'+antiElectronDiscrMVA6_version+'_gbr_wGwGSF_EC', mvaName_woGwGSF_BL = 'RecoTauTag_antiElectron'+antiElectronDiscrMVA6_version+'_gbr_woGwGSF_BL', mvaName_woGwGSF_EC = 'RecoTauTag_antiElectron'+antiElectronDiscrMVA6_version+'_gbr_woGwGSF_EC' - ) + )) ## WPs from RecoTauTag.RecoTau.PATTauDiscriminantCutMultiplexer_cfi import patTauDiscriminantCutMultiplexer - self.process.patTauDiscriminationByElectronRejectionMVA62018 = patTauDiscriminantCutMultiplexer.clone( - PATTauProducer = self.process.patTauDiscriminationByElectronRejectionMVA62018Raw.PATTauProducer, - Prediscriminants = self.process.patTauDiscriminationByElectronRejectionMVA62018Raw.Prediscriminants, - toMultiplex = cms.InputTag("patTauDiscriminationByElectronRejectionMVA62018Raw"), + _byElectronRejectionMVA62018 = "patTauDiscriminationByElectronRejectionMVA62018"+self.postfix + setattr(self.process,"patTauDiscriminationByElectronRejectionMVA62018"+self.postfix,patTauDiscriminantCutMultiplexer.clone( + PATTauProducer = self.originalTauName, + Prediscriminants = noPrediscriminants, + toMultiplex = _byElectronRejectionMVA62018Raw, mapping = cms.VPSet( cms.PSet( category = cms.uint32(0), @@ -843,24 +875,23 @@ def runTauID(self): "_WPeff70", "_WPeff60" ) - ) + )) ### Put all new anti-e discrminats to a sequence - self.process.patTauDiscriminationByElectronRejectionMVA62018Task = cms.Task( - self.process.patTauDiscriminationByElectronRejectionMVA62018Raw, - self.process.patTauDiscriminationByElectronRejectionMVA62018 + _patTauDiscriminationByElectronRejectionMVA62018Task = cms.Task( + getattr(self.process,_byElectronRejectionMVA62018Raw), + getattr(self.process,_byElectronRejectionMVA62018) ) - self.process.patTauDiscriminationByElectronRejectionMVA62018Seq = cms.Sequence(self.process.patTauDiscriminationByElectronRejectionMVA62018Task) - self.process.rerunMvaIsolationTask.add(self.process.patTauDiscriminationByElectronRejectionMVA62018Task) - self.process.rerunMvaIsolationSequence += self.process.patTauDiscriminationByElectronRejectionMVA62018Seq + _rerunMvaIsolationTask.add(_patTauDiscriminationByElectronRejectionMVA62018Task) + _rerunMvaIsolationSequence += cms.Sequence(_patTauDiscriminationByElectronRejectionMVA62018Task) _againstElectronTauIDSources = cms.PSet( - againstElectronMVA6Raw2018 = self.tauIDMVAinputs("patTauDiscriminationByElectronRejectionMVA62018", "raw"), - againstElectronMVA6category2018 = self.tauIDMVAinputs("patTauDiscriminationByElectronRejectionMVA62018", "category"), - againstElectronVLooseMVA62018 = self.tauIDMVAinputs("patTauDiscriminationByElectronRejectionMVA62018", "_WPeff98"), - againstElectronLooseMVA62018 = self.tauIDMVAinputs("patTauDiscriminationByElectronRejectionMVA62018", "_WPeff90"), - againstElectronMediumMVA62018 = self.tauIDMVAinputs("patTauDiscriminationByElectronRejectionMVA62018", "_WPeff80"), - againstElectronTightMVA62018 = self.tauIDMVAinputs("patTauDiscriminationByElectronRejectionMVA62018", "_WPeff70"), - againstElectronVTightMVA62018 = self.tauIDMVAinputs("patTauDiscriminationByElectronRejectionMVA62018", "_WPeff60") + againstElectronMVA6Raw2018 = self.tauIDMVAinputs(_byElectronRejectionMVA62018, "raw"), + againstElectronMVA6category2018 = self.tauIDMVAinputs(_byElectronRejectionMVA62018, "category"), + againstElectronVLooseMVA62018 = self.tauIDMVAinputs(_byElectronRejectionMVA62018, "_WPeff98"), + againstElectronLooseMVA62018 = self.tauIDMVAinputs(_byElectronRejectionMVA62018, "_WPeff90"), + againstElectronMediumMVA62018 = self.tauIDMVAinputs(_byElectronRejectionMVA62018, "_WPeff80"), + againstElectronTightMVA62018 = self.tauIDMVAinputs(_byElectronRejectionMVA62018, "_WPeff70"), + againstElectronVTightMVA62018 = self.tauIDMVAinputs(_byElectronRejectionMVA62018, "_WPeff60") ) _tauIDSourcesWithAgainistEle = cms.PSet( tauIDSources.clone(), @@ -872,19 +903,21 @@ def runTauID(self): if self.debug: print ("Adding newDMPhase2v1 ID") def tauIDMVAinputs(module, wp): return cms.PSet(inputTag = cms.InputTag(module), workingPointIndex = cms.int32(-1 if wp=="raw" else -2 if wp=="category" else getattr(self.process, module).workingPoints.index(wp))) - self.process.rerunDiscriminationByIsolationMVADBnewDMwLTPhase2raw = patDiscriminationByIsolationMVArun2v1raw.clone( - PATTauProducer = 'slimmedTaus', + _byIsolationNewDMMVAPhase2raw = "rerunDiscriminationByIsolationMVADBnewDMwLTPhase2raw"+self.postfix + setattr(self.process,_byIsolationNewDMMVAPhase2raw,patDiscriminationByIsolationMVArun2v1raw.clone( + PATTauProducer = self.originalTauName, Prediscriminants = noPrediscriminants, loadMVAfromDB = True, mvaName = 'RecoTauTag_tauIdMVAIsoPhase2', mvaOpt = 'DBnewDMwLTwGJPhase2', verbosity = 0 - ) + )) - self.process.rerunDiscriminationByIsolationMVADBnewDMwLTPhase2 = patDiscriminationByIsolationMVArun2v1.clone( - PATTauProducer = 'slimmedTaus', + _byIsolationNewDMMVAPhase2 = "rerunDiscriminationByIsolationMVADBnewDMwLTPhase2"+self.postfix + setattr(self.process,_byIsolationNewDMMVAPhase2,patDiscriminationByIsolationMVArun2v1.clone( + PATTauProducer = self.originalTauName, Prediscriminants = noPrediscriminants, - toMultiplex = 'rerunDiscriminationByIsolationMVADBnewDMwLTPhase2raw', + toMultiplex = _byIsolationNewDMMVAPhase2raw, loadMVAfromDB = True, mvaOutput_normalization = 'RecoTauTag_tauIdMVAIsoPhase2_mvaOutput_normalization', mapping = cms.VPSet( @@ -903,57 +936,59 @@ def tauIDMVAinputs(module, wp): "_VTight", "_VVTight" ) + )) + _rerunIsolationMVADBnewDMwLTPhase2Task = cms.Task( + getattr(self.process,_byIsolationNewDMMVAPhase2raw), + getattr(self.process,_byIsolationNewDMMVAPhase2) ) - self.process.rerunIsolationMVADBnewDMwLTPhase2Task = cms.Task( - self.process.rerunDiscriminationByIsolationMVADBnewDMwLTPhase2raw, - self.process.rerunDiscriminationByIsolationMVADBnewDMwLTPhase2 - ) - self.process.rerunMvaIsolationTask.add(self.process.rerunIsolationMVADBnewDMwLTPhase2Task) - self.process.rerunMvaIsolationSequence += cms.Sequence(self.process.rerunIsolationMVADBnewDMwLTPhase2Task) - - tauIDSources.byIsolationMVADBnewDMwLTPhase2raw = tauIDMVAinputs("rerunDiscriminationByIsolationMVADBnewDMwLTPhase2", "raw") - tauIDSources.byVVLooseIsolationMVADBnewDMwLTPhase2 = tauIDMVAinputs("rerunDiscriminationByIsolationMVADBnewDMwLTPhase2", "_VVLoose") - tauIDSources.byVLooseIsolationMVADBnewDMwLTPhase2 = tauIDMVAinputs("rerunDiscriminationByIsolationMVADBnewDMwLTPhase2", "_VLoose") - tauIDSources.byLooseIsolationMVADBnewDMwLTPhase2 = tauIDMVAinputs("rerunDiscriminationByIsolationMVADBnewDMwLTPhase2", "_Loose") - tauIDSources.byMediumIsolationMVADBnewDMwLTPhase2 = tauIDMVAinputs("rerunDiscriminationByIsolationMVADBnewDMwLTPhase2", "_Medium") - tauIDSources.byTightIsolationMVADBnewDMwLTPhase2 = tauIDMVAinputs("rerunDiscriminationByIsolationMVADBnewDMwLTPhase2", "_Tight") - tauIDSources.byVTightIsolationMVADBnewDMwLTPhase2 = tauIDMVAinputs("rerunDiscriminationByIsolationMVADBnewDMwLTPhase2", "_VTight") - tauIDSources.byVVTightIsolationMVADBnewDMwLTPhase2 = tauIDMVAinputs("rerunDiscriminationByIsolationMVADBnewDMwLTPhase2", "_VVTight") + _rerunMvaIsolationTask.add(_rerunIsolationMVADBnewDMwLTPhase2Task) + _rerunMvaIsolationSequence += cms.Sequence(_rerunIsolationMVADBnewDMwLTPhase2Task) + + tauIDSources.byIsolationMVADBnewDMwLTPhase2raw = tauIDMVAinputs(_byIsolationNewDMMVAPhase2, "raw") + tauIDSources.byVVLooseIsolationMVADBnewDMwLTPhase2 = tauIDMVAinputs(_byIsolationNewDMMVAPhase2, "_VVLoose") + tauIDSources.byVLooseIsolationMVADBnewDMwLTPhase2 = tauIDMVAinputs(_byIsolationNewDMMVAPhase2, "_VLoose") + tauIDSources.byLooseIsolationMVADBnewDMwLTPhase2 = tauIDMVAinputs(_byIsolationNewDMMVAPhase2, "_Loose") + tauIDSources.byMediumIsolationMVADBnewDMwLTPhase2 = tauIDMVAinputs(_byIsolationNewDMMVAPhase2, "_Medium") + tauIDSources.byTightIsolationMVADBnewDMwLTPhase2 = tauIDMVAinputs(_byIsolationNewDMMVAPhase2, "_Tight") + tauIDSources.byVTightIsolationMVADBnewDMwLTPhase2 = tauIDMVAinputs(_byIsolationNewDMMVAPhase2, "_VTight") + tauIDSources.byVVTightIsolationMVADBnewDMwLTPhase2 = tauIDMVAinputs(_byIsolationNewDMMVAPhase2, "_VVTight") if "againstElePhase2v1" in self.toKeep: if self.debug: print ("Adding anti-e Phase2v1 ID") ### Define new anti-e discriminants for Phase2 ## Raw from RecoTauTag.RecoTau.PATTauDiscriminationAgainstElectronMVA6Phase2_cff import patTauDiscriminationAgainstElectronMVA6Phase2Raw, patTauDiscriminationAgainstElectronMVA6Phase2, mergedSlimmedElectronsForTauId - self.process.patTauDiscriminationByElectronRejectionMVA6Phase2v1Raw = patTauDiscriminationAgainstElectronMVA6Phase2Raw.clone( - PATTauProducer = 'slimmedTaus', + _byElectronRejectionMVA6Phase2v1Raw = "patTauDiscriminationByElectronRejectionMVA6Phase2v1Raw"+self.postfix + setattr(self.process,_byElectronRejectionMVA6Phase2v1Raw,patTauDiscriminationAgainstElectronMVA6Phase2Raw.clone( + PATTauProducer = self.originalTauName, Prediscriminants = noPrediscriminants #already selected for MiniAOD - ) + )) ## WPs - self.process.patTauDiscriminationByElectronRejectionMVA6Phase2v1 = patTauDiscriminationAgainstElectronMVA6Phase2.clone( - PATTauProducer = self.process.patTauDiscriminationByElectronRejectionMVA6Phase2v1Raw.PATTauProducer, - Prediscriminants = self.process.patTauDiscriminationByElectronRejectionMVA6Phase2v1Raw.Prediscriminants, - toMultiplex = 'patTauDiscriminationByElectronRejectionMVA6Phase2v1Raw' - ) + _byElectronRejectionMVA6Phase2v1 = "patTauDiscriminationByElectronRejectionMVA6Phase2v1"+self.postfix + setattr(self.process,_byElectronRejectionMVA6Phase2v1,patTauDiscriminationAgainstElectronMVA6Phase2.clone( + PATTauProducer = self.originalTauName, + Prediscriminants = noPrediscriminants, + toMultiplex = _byElectronRejectionMVA6Phase2v1Raw + )) ### Put all new phase2 anti-e discrminats to a sequence - self.process.mergedSlimmedElectronsForTauId = mergedSlimmedElectronsForTauId - self.process.patTauDiscriminationByElectronRejectionMVA6Phase2v1Task = cms.Task( + if not hasattr(self.process,"mergedSlimmedElectronsForTauId"): + self.process.mergedSlimmedElectronsForTauId = mergedSlimmedElectronsForTauId + _patTauDiscriminationByElectronRejectionMVA6Phase2v1Task = cms.Task( self.process.mergedSlimmedElectronsForTauId, - self.process.patTauDiscriminationByElectronRejectionMVA6Phase2v1Raw, - self.process.patTauDiscriminationByElectronRejectionMVA6Phase2v1 + getattr(self.process,_byElectronRejectionMVA6Phase2v1Raw), + getattr(self.process,_byElectronRejectionMVA6Phase2v1) ) - self.process.patTauDiscriminationByElectronRejectionMVA6Phase2v1Seq = cms.Sequence(self.process.patTauDiscriminationByElectronRejectionMVA6Phase2v1Task) - self.process.rerunMvaIsolationTask.add(self.process.patTauDiscriminationByElectronRejectionMVA6Phase2v1Task) - self.process.rerunMvaIsolationSequence += self.process.patTauDiscriminationByElectronRejectionMVA6Phase2v1Seq + _rerunMvaIsolationTask.add(_patTauDiscriminationByElectronRejectionMVA6Phase2v1Task) + _rerunMvaIsolationSequence += cms.Sequence(_patTauDiscriminationByElectronRejectionMVA6Phase2v1Task) _againstElectronTauIDPhase2v1Sources = cms.PSet( - againstElectronMVA6RawPhase2v1 = self.tauIDMVAinputs("patTauDiscriminationByElectronRejectionMVA6Phase2v1", "raw"), - againstElectronMVA6categoryPhase2v1 = self.tauIDMVAinputs("patTauDiscriminationByElectronRejectionMVA6Phase2v1", "category"), - againstElectronVLooseMVA6Phase2v1 = self.tauIDMVAinputs("patTauDiscriminationByElectronRejectionMVA6Phase2v1", "_VLoose"), - againstElectronLooseMVA6Phase2v1 = self.tauIDMVAinputs("patTauDiscriminationByElectronRejectionMVA6Phase2v1", "_Loose"), - againstElectronMediumMVA6Phase2v1 = self.tauIDMVAinputs("patTauDiscriminationByElectronRejectionMVA6Phase2v1", "_Medium"), - againstElectronTightMVA6Phase2v1 = self.tauIDMVAinputs("patTauDiscriminationByElectronRejectionMVA6Phase2v1", "_Tight"), - againstElectronVTightMVA6Phase2v1 = self.tauIDMVAinputs("patTauDiscriminationByElectronRejectionMVA6Phase2v1", "_VTight") + againstElectronMVA6RawPhase2v1 = self.tauIDMVAinputs(_byElectronRejectionMVA6Phase2v1, "raw"), + againstElectronMVA6categoryPhase2v1 = self.tauIDMVAinputs(_byElectronRejectionMVA6Phase2v1, "category"), + againstElectronVLooseMVA6Phase2v1 = self.tauIDMVAinputs(_byElectronRejectionMVA6Phase2v1, "_VLoose"), + againstElectronLooseMVA6Phase2v1 = self.tauIDMVAinputs(_byElectronRejectionMVA6Phase2v1, "_Loose"), + againstElectronMediumMVA6Phase2v1 = self.tauIDMVAinputs(_byElectronRejectionMVA6Phase2v1, "_Medium"), + againstElectronTightMVA6Phase2v1 = self.tauIDMVAinputs(_byElectronRejectionMVA6Phase2v1, "_Tight"), + againstElectronVTightMVA6Phase2v1 = self.tauIDMVAinputs(_byElectronRejectionMVA6Phase2v1, "_VTight") ) _tauIDSourcesWithAgainistElePhase2v1 = cms.PSet( tauIDSources.clone(), @@ -964,7 +999,7 @@ def tauIDMVAinputs(module, wp): if self.debug: print('Embedding new TauIDs into \"'+self.updatedTauName+'\"') if not hasattr(self.process, self.updatedTauName): embedID = cms.EDProducer("PATTauIDEmbedder", - src = cms.InputTag('slimmedTaus'), + src = cms.InputTag(self.originalTauName), tauIDSources = tauIDSources ) setattr(self.process, self.updatedTauName, embedID) @@ -973,21 +1008,23 @@ def tauIDMVAinputs(module, wp): getattr(self.process, self.updatedTauName).tauIDSources, tauIDSources) getattr(self.process, self.updatedTauName).tauIDSources = tauIDSources + setattr(self.process,"rerunMvaIsolationTask"+self.postfix,_rerunMvaIsolationTask) + setattr(self.process,"rerunMvaIsolationSequence"+self.postfix,_rerunMvaIsolationSequence) def processDeepProducer(self, producer_name, tauIDSources, workingPoints_): for target,points in six.iteritems(workingPoints_): setattr(tauIDSources, 'by{}VS{}raw'.format(producer_name[0].upper()+producer_name[1:], target), - cms.PSet(inputTag = cms.InputTag(producer_name, 'VS{}'.format(target)), workingPointIndex = cms.int32(-1))) + cms.PSet(inputTag = cms.InputTag(producer_name+self.postfix, 'VS{}'.format(target)), workingPointIndex = cms.int32(-1))) cut_expressions = [] for index, (point,cut) in enumerate(six.iteritems(points)): cut_expressions.append(str(cut)) setattr(tauIDSources, 'by{}{}VS{}'.format(point, producer_name[0].upper()+producer_name[1:], target), - cms.PSet(inputTag = cms.InputTag(producer_name, 'VS{}'.format(target)), workingPointIndex = cms.int32(index))) + cms.PSet(inputTag = cms.InputTag(producer_name+self.postfix, 'VS{}'.format(target)), workingPointIndex = cms.int32(index))) - setattr(getattr(self.process, producer_name), 'VS{}WP'.format(target), cms.vstring(*cut_expressions)) + setattr(getattr(self.process, producer_name+self.postfix), 'VS{}WP'.format(target), cms.vstring(*cut_expressions)) def getDpfTauVersion(self, file_name): diff --git a/RecoTauTag/RecoTau/test/runDeepTauIDsOnMiniAOD.py b/RecoTauTag/RecoTau/test/runDeepTauIDsOnMiniAOD.py index 9a555068fea5b..96a4cd280660f 100644 --- a/RecoTauTag/RecoTau/test/runDeepTauIDsOnMiniAOD.py +++ b/RecoTauTag/RecoTau/test/runDeepTauIDsOnMiniAOD.py @@ -22,24 +22,33 @@ # Input source process.source = cms.Source('PoolSource', fileNames = cms.untracked.vstring( - # File from dataset DY1JetsToLL_M-50_TuneCP5_13TeV-madgraphMLM-pythia8 - '/store/relval/CMSSW_10_5_0_pre1/RelValZTT_13/MINIAODSIM/PU25ns_103X_upgrade2018_realistic_v8-v1/20000/EA29017F-9967-3F41-BB8A-22C44A454235.root' + # File from dataset TTToSemiLeptonic_TuneCP5_13TeV-powheg-pythia8 + '/store/mc/RunIISummer20UL18MiniAOD/TTToSemiLeptonic_TuneCP5_13TeV-powheg-pythia8/MINIAODSIM/106X_upgrade2018_realistic_v11_L1v1-v2/00000/009636D7-07B2-DB49-882D-C251FD62CCE7.root' )) process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(eventsToProcess) ) # Add new TauIDs import RecoTauTag.RecoTau.tools.runTauIdMVA as tauIdConfig +toKeep = [ "2017v2", "dR0p32017v2", "newDM2017v2", + # "deepTau2017v1", + "deepTau2017v2p1", + # "DPFTau_2016_v0", + # "DPFTau_2016_v1", + "againstEle2018", + ] tauIdEmbedder = tauIdConfig.TauIDEmbedder(process, debug = False, updatedTauName = updatedTauName, - toKeep = [ "2017v2", "dR0p32017v2", "newDM2017v2", - # "deepTau2017v1", - "deepTau2017v2p1", - # "DPFTau_2016_v0", - # "DPFTau_2016_v1", - "againstEle2018", - ]) + toKeep = toKeep) tauIdEmbedder.runTauID() +#Another tau collection with updated tauIDs +postfix = "Ver2" +tauIdEmbedder2 = tauIdConfig.TauIDEmbedder(process, debug = False, + originalTauName = "slimmedTaus", #one can run on top of other collection than default "slimmedTaus" + updatedTauName = updatedTauName+postfix, + postfix = postfix, # defaut "", specify non-trivial postfix if tool is run more than one time + toKeep = toKeep) +tauIdEmbedder2.runTauID() # Output definition process.out = cms.OutputModule("PoolOutputModule", @@ -55,11 +64,14 @@ process.out.outputCommands = MINIAODSIMEventContent.outputCommands process.out.overrideBranchesSplitLevel = MiniAODOverrideBranchesSplitLevel process.out.outputCommands.append("keep *_"+updatedTauName+"_*_*") +process.out.outputCommands.append("keep *_"+updatedTauName+postfix+"_*_*") # Path and EndPath definitions process.p = cms.Path( process.rerunMvaIsolationSequence * getattr(process,updatedTauName) + * getattr(process,"rerunMvaIsolationSequence"+postfix) * + getattr(process,updatedTauName+postfix) ) process.endjob = cms.EndPath(process.endOfProcess) process.outpath = cms.EndPath(process.out) diff --git a/RecoTracker/Configuration/python/customizePixelOnlyForProfiling.py b/RecoTracker/Configuration/python/customizePixelOnlyForProfiling.py new file mode 100644 index 0000000000000..24774bbda649c --- /dev/null +++ b/RecoTracker/Configuration/python/customizePixelOnlyForProfiling.py @@ -0,0 +1,59 @@ +import FWCore.ParameterSet.Config as cms + +# Customise the Pixel-only reconstruction to run on GPU +# +# Run the unpacker, clustering, ntuplets, track fit and vertex reconstruction on GPU. +def customizePixelOnlyForProfilingGPUOnly(process): + + process.consumer = cms.EDAnalyzer("GenericConsumer", + eventProducts = cms.untracked.vstring('caHitNtupletCUDA', 'pixelVertexCUDA') + ) + + process.consume_step = cms.EndPath(process.consumer) + + process.schedule = cms.Schedule(process.raw2digi_step, process.reconstruction_step, process.consume_step) + + return process + + +# Customise the Pixel-only reconstruction to run on GPU, and copy the data to the host +# +# Run the unpacker, clustering, ntuplets, track fit and vertex reconstruction on GPU, +# and copy all the products to the host in SoA format. +# +# The same customisation can be also used on the SoA CPU workflow, running up to the +# tracks and vertices on the CPU in SoA format, without conversion to legacy format. +def customizePixelOnlyForProfilingGPUWithHostCopy(process): + + #? process.siPixelRecHitSoAFromLegacy.convertToLegacy = False + + process.consumer = cms.EDAnalyzer("GenericConsumer", + eventProducts = cms.untracked.vstring('pixelTrackSoA', 'pixelVertexSoA') + ) + + process.consume_step = cms.EndPath(process.consumer) + + process.schedule = cms.Schedule(process.raw2digi_step, process.reconstruction_step, process.consume_step) + + return process + + +# Customise the Pixel-only reconstruction to run on GPU, copy the data to the host, +# and convert to legacy format +# +# Run the unpacker, clustering, ntuplets, track fit and vertex reconstruction on GPU; +# copy all the products to the host in SoA format; and convert them to legacy format. +# +# The same customisation can be also used on the CPU workflow, running up to the +# tracks and vertices on the CPU. +def customizePixelOnlyForProfiling(process): + + process.consumer = cms.EDAnalyzer("GenericConsumer", + eventProducts = cms.untracked.vstring('pixelTracks', 'pixelVertices') + ) + + process.consume_step = cms.EndPath(process.consumer) + + process.schedule = cms.Schedule(process.raw2digi_step, process.reconstruction_step, process.consume_step) + + return process diff --git a/RecoTracker/FinalTrackSelectors/BuildFile.xml b/RecoTracker/FinalTrackSelectors/BuildFile.xml index c3b79de3f91c6..1560d1b669aa3 100644 --- a/RecoTracker/FinalTrackSelectors/BuildFile.xml +++ b/RecoTracker/FinalTrackSelectors/BuildFile.xml @@ -5,10 +5,10 @@ + + - - diff --git a/RecoTracker/FinalTrackSelectors/plugins/BuildFile.xml b/RecoTracker/FinalTrackSelectors/plugins/BuildFile.xml index a86a5ebe517ce..944b395eafaed 100644 --- a/RecoTracker/FinalTrackSelectors/plugins/BuildFile.xml +++ b/RecoTracker/FinalTrackSelectors/plugins/BuildFile.xml @@ -27,6 +27,7 @@ + diff --git a/RecoTracker/GeometryESProducer/plugins/TrackerMTDRecoGeometryESProducer.cc b/RecoTracker/GeometryESProducer/plugins/TrackerMTDRecoGeometryESProducer.cc new file mode 100644 index 0000000000000..12ceadaa7270a --- /dev/null +++ b/RecoTracker/GeometryESProducer/plugins/TrackerMTDRecoGeometryESProducer.cc @@ -0,0 +1,70 @@ +#include "Geometry/TrackerNumberingBuilder/interface/GeometricDet.h" +#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" +#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" +#include "RecoTracker/Record/interface/TrackerRecoGeometryRecord.h" +#include "RecoTracker/TkDetLayers/interface/GeometricSearchTrackerBuilder.h" +#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" +#include "Geometry/Records/interface/TrackerTopologyRcd.h" +#include "Geometry/MTDGeometryBuilder/interface/MTDGeometry.h" +#include "Geometry/MTDNumberingBuilder/interface/MTDTopology.h" +#include "Geometry/Records/interface/MTDTopologyRcd.h" +#include "Geometry/Records/interface/MTDDigiGeometryRecord.h" + +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/ModuleFactory.h" +#include "FWCore/Framework/interface/ESProducer.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" + +#include +#include + +class TrackerMTDRecoGeometryESProducer : public edm::ESProducer { +public: + TrackerMTDRecoGeometryESProducer(const edm::ParameterSet &p); + + std::unique_ptr produce(const TrackerRecoGeometryRecord &); + + static void fillDescriptions(edm::ConfigurationDescriptions &descriptions); + +private: + edm::ESGetToken geomToken_; + edm::ESGetToken tTopToken_; + edm::ESGetToken mtdgeomToken_; + edm::ESGetToken mtdTopToken_; + bool usePhase2Stacks_; +}; + +using namespace edm; + +TrackerMTDRecoGeometryESProducer::TrackerMTDRecoGeometryESProducer(const edm::ParameterSet &p) + : usePhase2Stacks_(p.getParameter("usePhase2Stacks")) { + auto c = setWhatProduced(this); + + tTopToken_ = c.consumes(); + geomToken_ = c.consumes(edm::ESInputTag("", p.getUntrackedParameter("trackerGeometryLabel"))); + mtdgeomToken_ = c.consumes(); + mtdTopToken_ = c.consumes(); +} + +std::unique_ptr TrackerMTDRecoGeometryESProducer::produce( + const TrackerRecoGeometryRecord &iRecord) { + TrackerGeometry const &tG = iRecord.get(geomToken_); + MTDGeometry const &mG = iRecord.get(mtdgeomToken_); + + GeometricSearchTrackerBuilder builder; + return std::unique_ptr( + builder.build(tG.trackerDet(), &tG, &iRecord.get(tTopToken_), &mG, &iRecord.get(mtdTopToken_), usePhase2Stacks_)); +} + +void TrackerMTDRecoGeometryESProducer::fillDescriptions(edm::ConfigurationDescriptions &descriptions) { + edm::ParameterSetDescription desc; + + desc.add("usePhase2Stacks", false); + desc.addUntracked("trackerGeometryLabel", ""); + descriptions.addDefault(desc); +} + +DEFINE_FWK_EVENTSETUP_MODULE(TrackerMTDRecoGeometryESProducer); diff --git a/RecoTracker/GeometryESProducer/python/TrackerMTDRecoGeometryESProducer_cfi.py b/RecoTracker/GeometryESProducer/python/TrackerMTDRecoGeometryESProducer_cfi.py new file mode 100644 index 0000000000000..2d8709b2618ae --- /dev/null +++ b/RecoTracker/GeometryESProducer/python/TrackerMTDRecoGeometryESProducer_cfi.py @@ -0,0 +1,8 @@ +import FWCore.ParameterSet.Config as cms + +TrackerRecoGeometryESProducer = cms.ESProducer("TrackerMTDRecoGeometryESProducer", + usePhase2Stacks = cms.bool(False) +) + +from Configuration.ProcessModifiers.vectorHits_cff import vectorHits +vectorHits.toModify(TrackerRecoGeometryESProducer, usePhase2Stacks = True) diff --git a/RecoTracker/MkFit/plugins/MkFitOutputConverter.cc b/RecoTracker/MkFit/plugins/MkFitOutputConverter.cc index 87ac3e4023677..b21bc7c35b8b0 100644 --- a/RecoTracker/MkFit/plugins/MkFitOutputConverter.cc +++ b/RecoTracker/MkFit/plugins/MkFitOutputConverter.cc @@ -190,7 +190,8 @@ std::vector MkFitOutputConverter::createDetLayers(const mkfit:: const int subdet, const int layer, const int isStereo, const DetId& detId, const DetLayer* lay) { const int index = lnc.convertLayerNumber(subdet, layer, false, isStereo, isPlusSide(detId)); if (index < 0 or static_cast(index) >= dets.size()) { - throw cms::Exception("LogicError") << "Invalid mkFit layer index " << index << " for DetId " << detId + throw cms::Exception("LogicError") << "Invalid mkFit layer index " << index << " for det rawId " << detId.rawId() + << " " << " subdet " << subdet << " layer " << layer << " isStereo " << isStereo; } dets[index] = lay; diff --git a/RecoTracker/Record/interface/TrackerRecoGeometryRecord.h b/RecoTracker/Record/interface/TrackerRecoGeometryRecord.h index 89d99257f6683..7c7f764c34e41 100644 --- a/RecoTracker/Record/interface/TrackerRecoGeometryRecord.h +++ b/RecoTracker/Record/interface/TrackerRecoGeometryRecord.h @@ -5,11 +5,18 @@ #include "FWCore/Framework/interface/DependentRecordImplementation.h" #include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" #include "Geometry/Records/interface/TrackerTopologyRcd.h" +#include "Geometry/Records/interface/MTDGeometryRecord.h" +#include "Geometry/Records/interface/MTDDigiGeometryRecord.h" +#include "Geometry/Records/interface/MTDTopologyRcd.h" #include "FWCore/Utilities/interface/mplVector.h" -class TrackerRecoGeometryRecord : public edm::eventsetup::DependentRecordImplementation< - TrackerRecoGeometryRecord, - edm::mpl::Vector > {}; +class TrackerRecoGeometryRecord + : public edm::eventsetup::DependentRecordImplementation > {}; #endif diff --git a/RecoTracker/TkDetLayers/BuildFile.xml b/RecoTracker/TkDetLayers/BuildFile.xml index ac0c879187f94..daee53060a497 100644 --- a/RecoTracker/TkDetLayers/BuildFile.xml +++ b/RecoTracker/TkDetLayers/BuildFile.xml @@ -8,4 +8,5 @@ + diff --git a/RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h b/RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h index 1f50c1c9dd766..53d41ae3b18f2 100644 --- a/RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h +++ b/RecoTracker/TkDetLayers/interface/GeometricSearchTracker.h @@ -4,6 +4,7 @@ #include "TrackingTools/DetLayers/interface/BarrelDetLayer.h" #include "TrackingTools/DetLayers/interface/ForwardDetLayer.h" #include "TrackingTools/DetLayers/interface/DetLayerGeometry.h" +#include "RecoMTD/DetLayers/interface/MTDDetLayerGeometry.h" class TrackerTopology; @@ -26,6 +27,12 @@ class GeometricSearchTracker : public DetLayerGeometry { ~GeometricSearchTracker() override __attribute__((cold)); + void addDetLayerGeometry(); + + void addMTDLayers(const std::vector& btl, + const std::vector& negEtl, + const std::vector& posEtl); + std::vector const& allLayers() const { return theAllLayers; } std::vector const& barrelLayers() const { return theBarrelLayers; } @@ -52,6 +59,9 @@ class GeometricSearchTracker : public DetLayerGeometry { /// obsolete method. Use idToLayer() instead. const DetLayer* detLayer(const DetId& id) const { return idToLayer(id); }; + //Need to make this pointer public so the tracker builder can build the MTD + MTDDetLayerGeometry* mtdDetLayerGeometry; + private: std::vector theAllLayers; std::vector theBarrelLayers; @@ -70,6 +80,12 @@ class GeometricSearchTracker : public DetLayerGeometry { std::vector thePosTidLayers; std::vector thePosTecLayers; + //MTD stuff + std::vector theBTLLayers; + std::vector theETLLayers; + std::vector theNegETLLayers; + std::vector thePosETLLayers; + const TrackerTopology* theTrkTopo; }; diff --git a/RecoTracker/TkDetLayers/interface/GeometricSearchTrackerBuilder.h b/RecoTracker/TkDetLayers/interface/GeometricSearchTrackerBuilder.h index 893f7fdf1b2b9..19c5077180d77 100644 --- a/RecoTracker/TkDetLayers/interface/GeometricSearchTrackerBuilder.h +++ b/RecoTracker/TkDetLayers/interface/GeometricSearchTrackerBuilder.h @@ -6,6 +6,7 @@ #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" class TrackerTopology; +class MTDTopology; /** GeometricSearchTrackerBuilder implementation * @@ -20,6 +21,14 @@ class GeometricSearchTrackerBuilder { const TrackerGeometry* theGeomDetGeometry, const TrackerTopology* tTopo, const bool usePhase2Stacks = false) __attribute__((cold)); + + //This constructor builds also the MTD geometry + GeometricSearchTracker* build(const GeometricDet* theGeometricTracker, + const TrackerGeometry* theGeomDetGeometry, + const TrackerTopology* tTopo, + const MTDGeometry* mtd, + const MTDTopology* mTopo, + const bool usePhase2Stacks = false) __attribute__((cold)); }; #endif diff --git a/RecoTracker/TkDetLayers/src/GeometricSearchTracker.cc b/RecoTracker/TkDetLayers/src/GeometricSearchTracker.cc index ff4a370995734..49af2946cc83d 100644 --- a/RecoTracker/TkDetLayers/src/GeometricSearchTracker.cc +++ b/RecoTracker/TkDetLayers/src/GeometricSearchTracker.cc @@ -78,46 +78,101 @@ GeometricSearchTracker::~GeometricSearchTracker() { #include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h" const DetLayer* GeometricSearchTracker::idToLayer(const DetId& id) const { - switch (id.subdetId()) { - case StripSubdetector::TIB: - return theTibLayers[theTrkTopo->tibLayer(id) - 1]; - break; - - case StripSubdetector::TOB: - return theTobLayers[theTrkTopo->tobLayer(id) - 1]; - break; - - case StripSubdetector::TID: - if (theTrkTopo->tidSide(id) == 1) { - return theNegTidLayers[theTrkTopo->tidWheel(id) - 1]; - } else if (theTrkTopo->tidSide(id) == 2) { - return thePosTidLayers[theTrkTopo->tidWheel(id) - 1]; - } - break; - - case StripSubdetector::TEC: - if (theTrkTopo->tecSide(id) == 1) { - return theNegTecLayers[theTrkTopo->tecWheel(id) - 1]; - } else if (theTrkTopo->tecSide(id) == 2) { - return thePosTecLayers[theTrkTopo->tecWheel(id) - 1]; - } - break; - - case PixelSubdetector::PixelBarrel: - return thePixelBarrelLayers[theTrkTopo->pxbLayer(id) - 1]; - break; - - case PixelSubdetector::PixelEndcap: - if (theTrkTopo->pxfSide(id) == 1) { - return theNegPixelForwardLayers[theTrkTopo->pxfDisk(id) - 1]; - } else if (theTrkTopo->pxfSide(id) == 2) { - return thePosPixelForwardLayers[theTrkTopo->pxfDisk(id) - 1]; - } - break; - - default: - edm::LogError("TkDetLayers") << "ERROR:layer not found!"; - // throw(something); + //If it's a tracker Det + if (id.det() == DetId::Detector::Tracker) { + switch (id.subdetId()) { + case StripSubdetector::TIB: + return theTibLayers[theTrkTopo->tibLayer(id) - 1]; + break; + + case StripSubdetector::TOB: + return theTobLayers[theTrkTopo->tobLayer(id) - 1]; + break; + + case StripSubdetector::TID: + if (theTrkTopo->tidSide(id) == 1) { + return theNegTidLayers[theTrkTopo->tidWheel(id) - 1]; + } else if (theTrkTopo->tidSide(id) == 2) { + return thePosTidLayers[theTrkTopo->tidWheel(id) - 1]; + } + break; + + case StripSubdetector::TEC: + if (theTrkTopo->tecSide(id) == 1) { + return theNegTecLayers[theTrkTopo->tecWheel(id) - 1]; + } else if (theTrkTopo->tecSide(id) == 2) { + return thePosTecLayers[theTrkTopo->tecWheel(id) - 1]; + } + break; + + case PixelSubdetector::PixelBarrel: + return thePixelBarrelLayers[theTrkTopo->pxbLayer(id) - 1]; + break; + + case PixelSubdetector::PixelEndcap: + if (theTrkTopo->pxfSide(id) == 1) { + return theNegPixelForwardLayers[theTrkTopo->pxfDisk(id) - 1]; + } else if (theTrkTopo->pxfSide(id) == 2) { + return thePosPixelForwardLayers[theTrkTopo->pxfDisk(id) - 1]; + } + break; + + default: + edm::LogError("TkDetLayers") << "ERROR:layer not found!"; + // throw(something); + } + return nullptr; //just to avoid compile warnings + } else if (id.det() == DetId::Forward && id.subdetId() == FastTime) { + //If it's MTD + return mtdDetLayerGeometry->idToLayer(id); } return nullptr; //just to avoid compile warnings } + +void GeometricSearchTracker::addDetLayerGeometry() { mtdDetLayerGeometry = new MTDDetLayerGeometry(); } + +void GeometricSearchTracker::addMTDLayers(const std::vector& btl, + const std::vector& negEtl, + const std::vector& posEtl) { + //Barrel + theBTLLayers.assign(btl.begin(), btl.end()); + theBarrelLayers.insert(theBarrelLayers.end(), theBTLLayers.begin(), theBTLLayers.end()); + //Endcap + theNegETLLayers.assign(negEtl.begin(), negEtl.end()); + thePosETLLayers.assign(posEtl.begin(), posEtl.end()); + theETLLayers.assign(negEtl.begin(), negEtl.end()); + theETLLayers.insert(theETLLayers.end(), posEtl.begin(), posEtl.end()); + theNegForwardLayers.insert(theNegForwardLayers.end(), theNegETLLayers.begin(), theNegETLLayers.end()); + thePosForwardLayers.insert(thePosForwardLayers.end(), thePosETLLayers.begin(), thePosETLLayers.end()); + //Reordering of tracker + MTD layers + theForwardLayers.clear(); + theAllLayers.clear(); + theForwardLayers.assign(theNegForwardLayers.begin(), theNegForwardLayers.end()); + theForwardLayers.insert(theForwardLayers.end(), thePosForwardLayers.begin(), thePosForwardLayers.end()); + theAllLayers.assign(theBarrelLayers.begin(), theBarrelLayers.end()); + theAllLayers.insert(theAllLayers.end(), theForwardLayers.begin(), theForwardLayers.end()); + + // number the layers + int sq = 0; + for (auto l : theAllLayers) + const_cast(*l).setSeqNum(sq++); + + edm::LogInfo("MTDDetLayers") << "------ GeometricSearchTracker+MTD constructed with: ------" + << "\n" + << "n pxlBarLayers: " << this->pixelBarrelLayers().size() << "\n" + << "n tibLayers: " << this->tibLayers().size() << "\n" + << "n tobLayers: " << this->tobLayers().size() << "\n" + << "n negPxlFwdLayers: " << this->negPixelForwardLayers().size() << "\n" + << "n posPxlFwdLayers: " << this->posPixelForwardLayers().size() << "\n" + << "n negTidLayers: " << this->negTidLayers().size() << "\n" + << "n posTidLayers: " << this->posTidLayers().size() << "\n" + << "n negTecLayers: " << this->negTecLayers().size() << "\n" + << "n posTecLayers: " << this->posTecLayers().size() << "\n" + << "n barreLayers: " << this->barrelLayers().size() << "\n" + << "n negforwardLayers: " << this->negForwardLayers().size() << "\n" + << "n posForwardLayers: " << this->posForwardLayers().size() << "\n" + << "n MTDbarrelLayers: " << this->theBTLLayers.size() << "\n" + << "n MTDnegLayers: " << this->theNegETLLayers.size() << "\n" + << "n MTDposLayers: " << this->thePosETLLayers.size() << "\n" + << "\nn Total : " << theAllLayers.size() << std::endl; +} diff --git a/RecoTracker/TkDetLayers/src/GeometricSearchTrackerBuilder.cc b/RecoTracker/TkDetLayers/src/GeometricSearchTrackerBuilder.cc index 51cd455a23717..e37decf07465e 100644 --- a/RecoTracker/TkDetLayers/src/GeometricSearchTrackerBuilder.cc +++ b/RecoTracker/TkDetLayers/src/GeometricSearchTrackerBuilder.cc @@ -14,14 +14,15 @@ #include "Geometry/CommonDetUnit/interface/GeomDet.h" #include "DataFormats/TrackerCommon/interface/TrackerTopology.h" +#include "Geometry/MTDNumberingBuilder/interface/MTDTopology.h" #include "DataFormats/Common/interface/Trie.h" using namespace std; -GeometricSearchTracker* GeometricSearchTrackerBuilder::build(const GeometricDet* theGeometricTracker, - const TrackerGeometry* theGeomDetGeometry, - const TrackerTopology* tTopo, +GeometricSearchTracker *GeometricSearchTrackerBuilder::build(const GeometricDet *theGeometricTracker, + const TrackerGeometry *theGeomDetGeometry, + const TrackerTopology *tTopo, const bool usePhase2Stacks) { PixelBarrelLayerBuilder aPixelBarrelLayerBuilder; Phase2OTBarrelLayerBuilder aPhase2OTBarrelLayerBuilder; @@ -33,24 +34,24 @@ GeometricSearchTracker* GeometricSearchTrackerBuilder::build(const GeometricDet* TIDLayerBuilder aTIDLayerBuilder; TECLayerBuilder aTECLayerBuilder; - vector thePxlBarLayers; - vector theTIBLayers; - vector theTOBLayers; - vector theNegPxlFwdLayers; - vector thePosPxlFwdLayers; - vector theNegTIDLayers; - vector thePosTIDLayers; - vector theNegTECLayers; - vector thePosTECLayers; + vector thePxlBarLayers; + vector theTIBLayers; + vector theTOBLayers; + vector theNegPxlFwdLayers; + vector thePosPxlFwdLayers; + vector theNegTIDLayers; + vector thePosTIDLayers; + vector theNegTECLayers; + vector thePosTECLayers; bool useBrothers = !usePhase2Stacks; - vector theGeometricDetLayers = theGeometricTracker->components(); - for (vector::const_iterator it = theGeometricDetLayers.begin(); + vector theGeometricDetLayers = theGeometricTracker->components(); + for (vector::const_iterator it = theGeometricDetLayers.begin(); it != theGeometricDetLayers.end(); it++) { if ((*it)->type() == GeometricDet::PixelBarrel) { - vector thePxlBarGeometricDetLayers = (*it)->components(); - for (vector::const_iterator it2 = thePxlBarGeometricDetLayers.begin(); + vector thePxlBarGeometricDetLayers = (*it)->components(); + for (vector::const_iterator it2 = thePxlBarGeometricDetLayers.begin(); it2 != thePxlBarGeometricDetLayers.end(); it2++) { thePxlBarLayers.push_back(aPixelBarrelLayerBuilder.build(*it2, theGeomDetGeometry)); @@ -58,8 +59,8 @@ GeometricSearchTracker* GeometricSearchTrackerBuilder::build(const GeometricDet* } if ((*it)->type() == GeometricDet::PixelPhase1Barrel) { - vector thePxlBarGeometricDetLayers = (*it)->components(); - for (vector::const_iterator it2 = thePxlBarGeometricDetLayers.begin(); + vector thePxlBarGeometricDetLayers = (*it)->components(); + for (vector::const_iterator it2 = thePxlBarGeometricDetLayers.begin(); it2 != thePxlBarGeometricDetLayers.end(); it2++) { thePxlBarLayers.push_back(aPixelBarrelLayerBuilder.build(*it2, theGeomDetGeometry)); @@ -67,8 +68,8 @@ GeometricSearchTracker* GeometricSearchTrackerBuilder::build(const GeometricDet* } if ((*it)->type() == GeometricDet::PixelPhase2Barrel) { - vector thePxlBarGeometricDetLayers = (*it)->components(); - for (vector::const_iterator it2 = thePxlBarGeometricDetLayers.begin(); + vector thePxlBarGeometricDetLayers = (*it)->components(); + for (vector::const_iterator it2 = thePxlBarGeometricDetLayers.begin(); it2 != thePxlBarGeometricDetLayers.end(); it2++) { thePxlBarLayers.push_back(aPixelBarrelLayerBuilder.build(*it2, theGeomDetGeometry)); @@ -76,8 +77,8 @@ GeometricSearchTracker* GeometricSearchTrackerBuilder::build(const GeometricDet* } if ((*it)->type() == GeometricDet::TIB) { - vector theTIBGeometricDetLayers = (*it)->components(); - for (vector::const_iterator it2 = theTIBGeometricDetLayers.begin(); + vector theTIBGeometricDetLayers = (*it)->components(); + for (vector::const_iterator it2 = theTIBGeometricDetLayers.begin(); it2 != theTIBGeometricDetLayers.end(); it2++) { theTIBLayers.push_back(aTIBLayerBuilder.build(*it2, theGeomDetGeometry)); @@ -85,8 +86,8 @@ GeometricSearchTracker* GeometricSearchTrackerBuilder::build(const GeometricDet* } if ((*it)->type() == GeometricDet::TOB) { - vector theTOBGeometricDetLayers = (*it)->components(); - for (vector::const_iterator it2 = theTOBGeometricDetLayers.begin(); + vector theTOBGeometricDetLayers = (*it)->components(); + for (vector::const_iterator it2 = theTOBGeometricDetLayers.begin(); it2 != theTOBGeometricDetLayers.end(); it2++) { theTOBLayers.push_back(aTOBLayerBuilder.build(*it2, theGeomDetGeometry)); @@ -94,9 +95,9 @@ GeometricSearchTracker* GeometricSearchTrackerBuilder::build(const GeometricDet* } if ((*it)->type() == GeometricDet::OTPhase2Barrel) { - vector theTOBGeometricDetLayers = (*it)->components(); + vector theTOBGeometricDetLayers = (*it)->components(); - for (vector::const_iterator it2 = theTOBGeometricDetLayers.begin(); + for (vector::const_iterator it2 = theTOBGeometricDetLayers.begin(); it2 != theTOBGeometricDetLayers.end(); it2++) { theTOBLayers.push_back(aPhase2OTBarrelLayerBuilder.build(*it2, theGeomDetGeometry, useBrothers)); @@ -104,8 +105,8 @@ GeometricSearchTracker* GeometricSearchTrackerBuilder::build(const GeometricDet* } if ((*it)->type() == GeometricDet::PixelEndCap) { - vector thePxlFwdGeometricDetLayers = (*it)->components(); - for (vector::const_iterator it2 = thePxlFwdGeometricDetLayers.begin(); + vector thePxlFwdGeometricDetLayers = (*it)->components(); + for (vector::const_iterator it2 = thePxlFwdGeometricDetLayers.begin(); it2 != thePxlFwdGeometricDetLayers.end(); it2++) { if ((*it2)->positionBounds().z() < 0) @@ -116,8 +117,8 @@ GeometricSearchTracker* GeometricSearchTrackerBuilder::build(const GeometricDet* } if ((*it)->type() == GeometricDet::PixelPhase1EndCap) { - vector thePxlFwdGeometricDetLayers = (*it)->components(); - for (vector::const_iterator it2 = thePxlFwdGeometricDetLayers.begin(); + vector thePxlFwdGeometricDetLayers = (*it)->components(); + for (vector::const_iterator it2 = thePxlFwdGeometricDetLayers.begin(); it2 != thePxlFwdGeometricDetLayers.end(); it2++) { if ((*it2)->positionBounds().z() < 0) @@ -128,8 +129,8 @@ GeometricSearchTracker* GeometricSearchTrackerBuilder::build(const GeometricDet* } if ((*it)->type() == GeometricDet::PixelPhase2EndCap) { - vector thePxlFwdGeometricDetLayers = (*it)->components(); - for (vector::const_iterator it2 = thePxlFwdGeometricDetLayers.begin(); + vector thePxlFwdGeometricDetLayers = (*it)->components(); + for (vector::const_iterator it2 = thePxlFwdGeometricDetLayers.begin(); it2 != thePxlFwdGeometricDetLayers.end(); it2++) { //FIXME: this is just to keep the compatibility with the PixelPhase1 extension layout @@ -154,8 +155,8 @@ GeometricSearchTracker* GeometricSearchTrackerBuilder::build(const GeometricDet* } if ((*it)->type() == GeometricDet::TID) { - vector theTIDGeometricDetLayers = (*it)->components(); - for (vector::const_iterator it2 = theTIDGeometricDetLayers.begin(); + vector theTIDGeometricDetLayers = (*it)->components(); + for (vector::const_iterator it2 = theTIDGeometricDetLayers.begin(); it2 != theTIDGeometricDetLayers.end(); it2++) { if ((*it2)->positionBounds().z() < 0) @@ -166,10 +167,10 @@ GeometricSearchTracker* GeometricSearchTrackerBuilder::build(const GeometricDet* } if ((*it)->type() == GeometricDet::OTPhase2EndCap) { - vector theTIDGeometricDetLayers = (*it)->components(); + vector theTIDGeometricDetLayers = (*it)->components(); bool useBrothers = !usePhase2Stacks; - for (vector::const_iterator it2 = theTIDGeometricDetLayers.begin(); + for (vector::const_iterator it2 = theTIDGeometricDetLayers.begin(); it2 != theTIDGeometricDetLayers.end(); it2++) { if ((*it2)->positionBounds().z() < 0) @@ -180,8 +181,8 @@ GeometricSearchTracker* GeometricSearchTrackerBuilder::build(const GeometricDet* } if ((*it)->type() == GeometricDet::TEC) { - vector theTECGeometricDetLayers = (*it)->components(); - for (vector::const_iterator it2 = theTECGeometricDetLayers.begin(); + vector theTECGeometricDetLayers = (*it)->components(); + for (vector::const_iterator it2 = theTECGeometricDetLayers.begin(); it2 != theTECGeometricDetLayers.end(); it2++) { if ((*it2)->positionBounds().z() < 0) @@ -203,3 +204,42 @@ GeometricSearchTracker* GeometricSearchTrackerBuilder::build(const GeometricDet* thePosTECLayers, tTopo); } + +GeometricSearchTracker *GeometricSearchTrackerBuilder::build(const GeometricDet *theGeometricTracker, + const TrackerGeometry *theGeomDetGeometry, + const TrackerTopology *tTopo, + const MTDGeometry *mtd, + const MTDTopology *mTopo, + const bool usePhase2Stacks) { + //Tracker part + GeometricSearchTracker *theSearchTrack = this->build(theGeometricTracker, theGeomDetGeometry, tTopo, usePhase2Stacks); + + theSearchTrack->addDetLayerGeometry(); + theSearchTrack->mtdDetLayerGeometry->buildLayers(mtd, mTopo); + theSearchTrack->mtdDetLayerGeometry->sortLayers(); + + std::vector barrel; + for (auto &&e : theSearchTrack->mtdDetLayerGeometry->allBarrelLayers()) { + auto p = dynamic_cast(e); + if (p) { + barrel.push_back(p); + } + } + std::vector backward; + for (auto &&e : theSearchTrack->mtdDetLayerGeometry->allBackwardLayers()) { + auto p = dynamic_cast(e); + if (p) { + backward.push_back(p); + } + } + std::vector forward; + for (auto &&e : theSearchTrack->mtdDetLayerGeometry->allForwardLayers()) { + auto p = dynamic_cast(e); + if (p) { + forward.push_back(p); + } + } + //Include the MTD layers in the TrackerSearchGeometry + theSearchTrack->addMTDLayers(barrel, backward, forward); + return theSearchTrack; +} diff --git a/RecoTracker/TkNavigation/plugins/SimpleBarrelNavigableLayer.cc b/RecoTracker/TkNavigation/plugins/SimpleBarrelNavigableLayer.cc index 6824dab41fd31..c4f2dea02c8e6 100644 --- a/RecoTracker/TkNavigation/plugins/SimpleBarrelNavigableLayer.cc +++ b/RecoTracker/TkNavigation/plugins/SimpleBarrelNavigableLayer.cc @@ -114,15 +114,13 @@ vector SimpleBarrelNavigableLayer::nextLayers(const FreeTraject bool signZmomentumXORdir = (((momentum.z() > 0) && !(dir == alongMomentum)) || (!(momentum.z() > 0) && (dir == alongMomentum))); - if - LIKELY(dirOppositeXORisInOutTrackBarrel && dirOppositeXORisInOutTrackFWD) { - if (signZmomentumXORdir) { - wellInside(ftsWithoutErrors, dir, theNegOuterLayers, result); - } else { - wellInside(ftsWithoutErrors, dir, thePosOuterLayers, result); - } + if LIKELY (dirOppositeXORisInOutTrackBarrel && dirOppositeXORisInOutTrackFWD) { + if (signZmomentumXORdir) { + wellInside(ftsWithoutErrors, dir, theNegOuterLayers, result); + } else { + wellInside(ftsWithoutErrors, dir, thePosOuterLayers, result); } - else if (!dirOppositeXORisInOutTrackBarrel && !dirOppositeXORisInOutTrackFWD) { + } else if (!dirOppositeXORisInOutTrackBarrel && !dirOppositeXORisInOutTrackFWD) { if (signZmomentumXORdir) { wellInside(ftsWithoutErrors, dir, thePosInnerLayers, result); } else { @@ -152,21 +150,20 @@ vector SimpleBarrelNavigableLayer::nextLayers(const FreeTraject LogDebug("SimpleBarrelNavigableLayer") << "goingIntoTheBarrel: " << goingIntoTheBarrel; - if - UNLIKELY(theSelfSearch && result.empty()) { - if (!goingIntoTheBarrel) { - LogDebug("SimpleBarrelNavigableLayer") - << " state is not going toward the center of the barrel. not adding self search."; - } else { - const BarrelDetLayer* bl = reinterpret_cast(detLayer()); - unsigned int before = result.size(); - LogDebug("SimpleBarrelNavigableLayer") << " I am trying to added myself as a next layer."; - wellInside(ftsWithoutErrors, dir, bl, result); - unsigned int after = result.size(); - if (before != after) - LogDebug("SimpleBarrelNavigableLayer") << " I have added myself as a next layer."; - } + if UNLIKELY (theSelfSearch && result.empty()) { + if (!goingIntoTheBarrel) { + LogDebug("SimpleBarrelNavigableLayer") + << " state is not going toward the center of the barrel. not adding self search."; + } else { + const BarrelDetLayer* bl = reinterpret_cast(detLayer()); + unsigned int before = result.size(); + LogDebug("SimpleBarrelNavigableLayer") << " I am trying to added myself as a next layer."; + wellInside(ftsWithoutErrors, dir, bl, result); + unsigned int after = result.size(); + if (before != after) + LogDebug("SimpleBarrelNavigableLayer") << " I have added myself as a next layer."; } + } return result; } diff --git a/RecoTracker/TkNavigation/plugins/SimpleNavigationSchool.cc b/RecoTracker/TkNavigation/plugins/SimpleNavigationSchool.cc index 1ff9051dfcd7b..6d80ce4572902 100644 --- a/RecoTracker/TkNavigation/plugins/SimpleNavigationSchool.cc +++ b/RecoTracker/TkNavigation/plugins/SimpleNavigationSchool.cc @@ -82,9 +82,10 @@ void SimpleNavigationSchool::linkBarrelLayers(SymmetricLayerFinder& symFinder) { FDLC leftFL; FDLC rightFL; - // always add next barrel layer first - if (i + 1 != theBarrelLayers.end()) + //always add next barrel layer first + if (i + 1 != theBarrelLayers.end()) { reachableBL.push_back(*(i + 1)); + } // Add closest reachable forward layer (except for last BarrelLayer) if (i != theBarrelLayers.end() - 1) { diff --git a/RecoTracker/TkNavigation/test/NavigationSchoolAnalyzer.cc b/RecoTracker/TkNavigation/test/NavigationSchoolAnalyzer.cc index af3f1ecde9258..fc7f1e8536475 100644 --- a/RecoTracker/TkNavigation/test/NavigationSchoolAnalyzer.cc +++ b/RecoTracker/TkNavigation/test/NavigationSchoolAnalyzer.cc @@ -37,6 +37,9 @@ #include "DataFormats/MuonDetId/interface/CSCDetId.h" #include "DataFormats/MuonDetId/interface/DTChamberId.h" +#include +#include + #include "TrackingTools/DetLayers/interface/NavigationSchool.h" #include "RecoTracker/Record/interface/NavigationSchoolRecord.h" @@ -75,6 +78,12 @@ void NavigationSchoolAnalyzer::print(std::ostream& os, const DetLayer* dl) { if (GeomDetEnumerators::isTracker(dl->subDetector())) { LorW = tTopo->layer(tag->geographicalId()); side = tTopo->side(tag->geographicalId()); + } else if (dl->subDetector() == GeomDetEnumerators::TimingEndcap) { + ETLDetId id(dl->basicComponents().front()->geographicalId().rawId()); + LorW = id.nDisc(); + //The MTD side returns 0 for the negative side and 1 for the positive side + //In order to be comp + side = id.mtdSide() + 1; } else { switch (dl->subDetector()) { case GeomDetEnumerators::DT: diff --git a/RecoTracker/TkNavigation/test/NavigationSchoolAnalyzer_cfg.py b/RecoTracker/TkNavigation/test/NavigationSchoolAnalyzer_cfg.py index dd7c78377a1ed..89b73e37f9efc 100644 --- a/RecoTracker/TkNavigation/test/NavigationSchoolAnalyzer_cfg.py +++ b/RecoTracker/TkNavigation/test/NavigationSchoolAnalyzer_cfg.py @@ -6,8 +6,7 @@ # process.load("Configuration.StandardSequences.Geometry_cff") #process.load('Configuration.StandardSequences.GeometryRecoDB_cff') -#process.load('Configuration.Geometry.GeometryExtended2023D1Reco_cff') -process.load('Configuration.Geometry.GeometryExtended2023D4Reco_cff') +process.load('Configuration.Geometry.GeometryExtended2026D76Reco_cff') process.load('Configuration.StandardSequences.MagneticField_AutoFromDBCurrent_cff') process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') from Configuration.AlCa.GlobalTag import GlobalTag @@ -23,6 +22,13 @@ # indentation = cms.untracked.string('$$') #) + +#This has to be modified in order to read the tracker + MTD structure +process.TrackerRecoGeometryESProducer = cms.ESProducer("TrackerMTDRecoGeometryESProducer", + usePhase2Stacks = cms.bool(False) +) + + process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(1) ) diff --git a/RecoTracker/TkSeedGenerator/plugins/BuildFile.xml b/RecoTracker/TkSeedGenerator/plugins/BuildFile.xml index 4dc0bfafbb439..65c849c69bbdf 100644 --- a/RecoTracker/TkSeedGenerator/plugins/BuildFile.xml +++ b/RecoTracker/TkSeedGenerator/plugins/BuildFile.xml @@ -1,19 +1,15 @@ - + - - - - - - + + @@ -26,14 +22,21 @@ + + + + + + + @@ -44,5 +47,4 @@ - diff --git a/RecoTracker/TkSeedGenerator/plugins/SeedProducerFromSoA.cc b/RecoTracker/TkSeedGenerator/plugins/SeedProducerFromSoA.cc new file mode 100644 index 0000000000000..0e5823fc46c46 --- /dev/null +++ b/RecoTracker/TkSeedGenerator/plugins/SeedProducerFromSoA.cc @@ -0,0 +1,170 @@ +#include "CUDADataFormats/Track/interface/PixelTrackHeterogeneous.h" +#include "DataFormats/BeamSpot/interface/BeamSpot.h" +#include "DataFormats/GeometrySurface/interface/Plane.h" +#include "DataFormats/TrackerCommon/interface/TrackerTopology.h" +#include "DataFormats/TrackingRecHit/interface/InvalidTrackingRecHit.h" +#include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h" +#include "DataFormats/TrajectoryState/interface/LocalTrajectoryParameters.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" +#include "FWCore/Framework/interface/ESHandle.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/Framework/interface/global/EDProducer.h" +#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h" +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/ParameterSet/interface/ParameterSetDescription.h" +#include "FWCore/PluginManager/interface/ModuleDef.h" +#include "FWCore/Utilities/interface/EDGetToken.h" +#include "FWCore/Utilities/interface/InputTag.h" +#include "Geometry/CommonDetUnit/interface/GeomDet.h" +#include "Geometry/Records/interface/TrackerDigiGeometryRecord.h" +#include "Geometry/Records/interface/TrackerTopologyRcd.h" +#include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" +#include "RecoPixelVertexing/PixelTrackFitting/interface/FitUtils.h" +#include "TrackingTools/AnalyticalJacobians/interface/JacobianLocalToCurvilinear.h" +#include "TrackingTools/MaterialEffects/interface/PropagatorWithMaterial.h" +#include "TrackingTools/Records/interface/TrackingComponentsRecord.h" +#include "TrackingTools/TrajectoryParametrization/interface/CurvilinearTrajectoryError.h" +#include "TrackingTools/TrajectoryParametrization/interface/GlobalTrajectoryParameters.h" +#include "TrackingTools/TrajectoryState/interface/TrajectoryStateTransform.h" + +/* + produces seeds directly from cuda produced tuples +*/ +class SeedProducerFromSoA : public edm::global::EDProducer<> { +public: + explicit SeedProducerFromSoA(const edm::ParameterSet& iConfig); + ~SeedProducerFromSoA() override = default; + + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + +private: + void produce(edm::StreamID streamID, edm::Event& iEvent, const edm::EventSetup& iSetup) const override; + + // Event data tokens + const edm::EDGetTokenT tBeamSpot_; + const edm::EDGetTokenT tokenTrack_; + // Event setup tokens + const edm::ESGetToken idealMagneticFieldToken_; + const edm::ESGetToken trackerDigiGeometryToken_; + const edm::ESGetToken trackerPropagatorToken_; + int32_t minNumberOfHits_; +}; + +SeedProducerFromSoA::SeedProducerFromSoA(const edm::ParameterSet& iConfig) + : tBeamSpot_(consumes(iConfig.getParameter("beamSpot"))), + tokenTrack_(consumes(iConfig.getParameter("src"))), + idealMagneticFieldToken_(esConsumes()), + trackerDigiGeometryToken_(esConsumes()), + trackerPropagatorToken_(esConsumes(edm::ESInputTag("PropagatorWithMaterial"))), + minNumberOfHits_(iConfig.getParameter("minNumberOfHits")) + +{ + produces(); +} + +void SeedProducerFromSoA::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + desc.add("beamSpot", edm::InputTag("offlineBeamSpot")); + desc.add("src", edm::InputTag("pixelTrackSoA")); + desc.add("minNumberOfHits", 0); + + descriptions.addWithDefaultLabel(desc); +} + +void SeedProducerFromSoA::produce(edm::StreamID streamID, edm::Event& iEvent, const edm::EventSetup& iSetup) const { + // std::cout << "Converting gpu helix to trajectory seed" << std::endl; + auto result = std::make_unique(); + + auto const& fieldESH = iSetup.getHandle(idealMagneticFieldToken_); + auto const& tracker = iSetup.getHandle(trackerDigiGeometryToken_); + auto const& dus = tracker->detUnits(); + + auto const& propagatorHandle = iSetup.getHandle(trackerPropagatorToken_); + const Propagator* propagator = &(*propagatorHandle); + + const auto& bsh = iEvent.get(tBeamSpot_); + // std::cout << "beamspot " << bsh.x0() << ' ' << bsh.y0() << ' ' << bsh.z0() << std::endl; + GlobalPoint bs(bsh.x0(), bsh.y0(), bsh.z0()); + + const auto& tsoa = *(iEvent.get(tokenTrack_)); + + auto const* quality = tsoa.qualityData(); + auto const& fit = tsoa.stateAtBS; + auto const& detIndices = tsoa.detIndices; + auto maxTracks = tsoa.stride(); + + int32_t nt = 0; + for (int32_t it = 0; it < maxTracks; ++it) { + auto nHits = tsoa.nHits(it); + if (nHits == 0) + break; // this is a guard: maybe we need to move to nTracks... + + auto q = quality[it]; + if (q != pixelTrack::Quality::loose) + continue; // FIXME + if (nHits < minNumberOfHits_) + continue; + ++nt; + + // fill hits with invalid just to hold the detId + auto b = detIndices.begin(it); + edm::OwnVector hits; + for (int iHit = 0; iHit < nHits; ++iHit) { + auto const* det = dus[*(b + iHit)]; + // FIXME at some point get a proper type ... + hits.push_back(new InvalidTrackingRecHit(*det, TrackingRecHit::bad)); + } + + // mind: this values are respect the beamspot! + + float phi = tsoa.phi(it); + + riemannFit::Vector5d ipar, opar; + riemannFit::Matrix5d icov, ocov; + fit.copyToDense(ipar, icov, it); + riemannFit::transformToPerigeePlane(ipar, icov, opar, ocov); + + LocalTrajectoryParameters lpar(opar(0), opar(1), opar(2), opar(3), opar(4), 1.); + AlgebraicSymMatrix55 m; + for (int i = 0; i < 5; ++i) + for (int j = i; j < 5; ++j) + m(i, j) = ocov(i, j); + + float sp = std::sin(phi); + float cp = std::cos(phi); + Surface::RotationType rot(sp, -cp, 0, 0, 0, -1.f, cp, sp, 0); + + Plane impPointPlane(bs, rot); + GlobalTrajectoryParameters gp(impPointPlane.toGlobal(lpar.position()), + impPointPlane.toGlobal(lpar.momentum()), + lpar.charge(), + fieldESH.product()); + + JacobianLocalToCurvilinear jl2c(impPointPlane, lpar, *fieldESH.product()); + + AlgebraicSymMatrix55 mo = ROOT::Math::Similarity(jl2c.jacobian(), m); + + FreeTrajectoryState fts(gp, CurvilinearTrajectoryError(mo)); + + auto const& lastHit = hits.back(); + + TrajectoryStateOnSurface outerState = propagator->propagate(fts, *lastHit.surface()); + + if (!outerState.isValid()) { + edm::LogError("SeedFromGPU") << " was trying to create a seed from:\n" + << fts << "\n propagating to: " << lastHit.geographicalId().rawId(); + continue; + } + + auto const& pTraj = trajectoryStateTransform::persistentState(outerState, lastHit.geographicalId().rawId()); + + result->emplace_back(pTraj, hits, alongMomentum); + } + + iEvent.put(std::move(result)); +} + +DEFINE_FWK_MODULE(SeedProducerFromSoA); diff --git a/RecoVertex/KalmanVertexFit/plugins/KVFTest.cc b/RecoVertex/KalmanVertexFit/plugins/KVFTest.cc index c7c6be3743a7f..cf350fb2736b8 100644 --- a/RecoVertex/KalmanVertexFit/plugins/KVFTest.cc +++ b/RecoVertex/KalmanVertexFit/plugins/KVFTest.cc @@ -6,16 +6,9 @@ #include "DataFormats/Common/interface/Handle.h" #include "FWCore/Framework/interface/MakerMacros.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/Framework/interface/ESHandle.h" - -#include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" -#include "TrackingTools/Records/interface/TransientTrackRecord.h" #include "TrackingTools/TransientTrack/interface/TransientTrack.h" #include "RecoVertex/VertexPrimitives/interface/TransientVertex.h" #include "RecoVertex/KalmanVertexFit/interface/KalmanVertexFitter.h" -#include "MagneticField/Engine/interface/MagneticField.h" -#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" - #include #include @@ -23,7 +16,10 @@ using namespace reco; using namespace edm; using namespace std; -KVFTest::KVFTest(const edm::ParameterSet& iConfig) : theConfig(iConfig) { +KVFTest::KVFTest(const edm::ParameterSet& iConfig) + : estoken_MF(esConsumes()), + estoken_TTB(esConsumes(edm::ESInputTag("", "TransientTrackBuilder"))), + theConfig(iConfig) { token_tracks = consumes(iConfig.getParameter("TrackLabel")); outputFile_ = iConfig.getUntrackedParameter("outputFile"); kvfPSet = iConfig.getParameter("KVFParameters"); @@ -51,9 +47,7 @@ void KVFTest::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { iEvent.getByToken(token_associatorForParamAtPca, associatorForParamAtPca); if (not tree) { - edm::ESHandle magField; - iSetup.get().get(magField); - tree = std::make_unique("VertexFitter", magField.product()); + tree = std::make_unique("VertexFitter", &iSetup.getData(estoken_MF)); } edm::LogInfo("RecoVertex/KVFTest") << "Reconstructing event number: " << iEvent.id() << "\n"; @@ -67,15 +61,14 @@ void KVFTest::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { } else { edm::LogInfo("RecoVertex/KVFTest") << "Found: " << (*tks).size() << " reconstructed tracks" << "\n"; - std::cout << "got " << (*tks).size() << " tracks " << std::endl; + edm::LogPrint("RecoVertex/KVFTest") << "got " << (*tks).size() << " tracks " << std::endl; // Transform Track to TransientTrack //get the builder: - edm::ESHandle theB; - iSetup.get().get("TransientTrackBuilder", theB); + const auto& theB = &iSetup.getData(estoken_TTB); //do the conversion: - std::vector t_tks = (*theB).build(tks); + std::vector t_tks = theB->build(tks); edm::LogInfo("RecoVertex/KVFTest") << "Found: " << t_tks.size() << " reconstructed tracks" << "\n"; @@ -86,7 +79,7 @@ void KVFTest::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { KalmanVertexFitter kvf(true); TransientVertex tv = kvf.vertex(t_tks); - std::cout << "Position: " << Vertex::Point(tv.position()) << "\n"; + edm::LogPrint("RecoVertex/KVFTest") << "Position: " << Vertex::Point(tv.position()) << "\n"; // For the analysis: compare to your SimVertex TrackingVertex sv = getSimVertex(iEvent); diff --git a/RecoVertex/KalmanVertexFit/plugins/KVFTest.h b/RecoVertex/KalmanVertexFit/plugins/KVFTest.h index 41e77fded46da..9cb3f4deda237 100644 --- a/RecoVertex/KalmanVertexFit/plugins/KVFTest.h +++ b/RecoVertex/KalmanVertexFit/plugins/KVFTest.h @@ -15,25 +15,27 @@ #include // user include files -#include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" - +#include "DataFormats/TrackReco/interface/TrackFwd.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" - +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" -#include "SimDataFormats/Vertex/interface/SimVertex.h" -#include "SimDataFormats/TrackingAnalysis/interface/TrackingVertexContainer.h" -#include "SimDataFormats/Associations/interface/TrackToTrackingParticleAssociator.h" +#include "MagneticField/Engine/interface/MagneticField.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" #include "RecoVertex/KalmanVertexFit/interface/SimpleVertexTree.h" -#include "DataFormats/TrackReco/interface/TrackFwd.h" +#include "SimDataFormats/Associations/interface/TrackToTrackingParticleAssociator.h" +#include "SimDataFormats/TrackingAnalysis/interface/TrackingVertexContainer.h" +#include "SimDataFormats/Vertex/interface/SimVertex.h" +#include "TrackingTools/Records/interface/TransientTrackRecord.h" +#include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" #include /** * This is a very simple test analyzer mean to test the KalmanVertexFitter */ -class KVFTest : public edm::EDAnalyzer { +class KVFTest : public edm::one::EDAnalyzer<> { public: explicit KVFTest(const edm::ParameterSet&); ~KVFTest() override; @@ -46,6 +48,9 @@ class KVFTest : public edm::EDAnalyzer { private: TrackingVertex getSimVertex(const edm::Event& iEvent) const; + const edm::ESGetToken estoken_MF; + const edm::ESGetToken estoken_TTB; + edm::ParameterSet theConfig; edm::ParameterSet kvfPSet; std::unique_ptr tree; diff --git a/RecoVertex/KalmanVertexFit/plugins/KVFTrackUpdate.cc b/RecoVertex/KalmanVertexFit/plugins/KVFTrackUpdate.cc index 47fb5060e58ab..4c0426ad7b072 100644 --- a/RecoVertex/KalmanVertexFit/plugins/KVFTrackUpdate.cc +++ b/RecoVertex/KalmanVertexFit/plugins/KVFTrackUpdate.cc @@ -6,10 +6,6 @@ #include "DataFormats/Common/interface/Handle.h" #include "FWCore/Framework/interface/MakerMacros.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "FWCore/Framework/interface/ESHandle.h" - -#include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" -#include "TrackingTools/Records/interface/TransientTrackRecord.h" #include "TrackingTools/TransientTrack/interface/TransientTrack.h" #include "RecoVertex/VertexPrimitives/interface/TransientVertex.h" #include "RecoVertex/KalmanVertexFit/interface/KalmanVertexFitter.h" @@ -23,7 +19,8 @@ using namespace reco; using namespace edm; using namespace std; -KVFTrackUpdate::KVFTrackUpdate(const edm::ParameterSet& iConfig) { +KVFTrackUpdate::KVFTrackUpdate(const edm::ParameterSet& iConfig) + : estoken_TTB(esConsumes(edm::ESInputTag("", "TransientTrackBuilder"))) { token_tracks = consumes(iConfig.getParameter("TrackLabel")); token_beamSpot = consumes(iConfig.getParameter("beamSpotLabel")); } @@ -49,15 +46,14 @@ void KVFTrackUpdate::analyze(const edm::Event& iEvent, const edm::EventSetup& iS edm::LogInfo("RecoVertex/KVFTrackUpdate") << "Found: " << (*tks).size() << " reconstructed tracks" << "\n"; - std::cout << "got " << (*tks).size() << " tracks " << std::endl; + edm::LogPrint("RecoVertex/KVFTrackUpdate") << "got " << (*tks).size() << " tracks " << std::endl; // Transform Track to TransientTrack //get the builder: - edm::ESHandle theB; - iSetup.get().get("TransientTrackBuilder", theB); + const auto& theB = &iSetup.getData(estoken_TTB); //do the conversion: - std::vector t_tks = (*theB).build(tks); + std::vector t_tks = theB->build(tks); edm::LogInfo("RecoVertex/KVFTrackUpdate") << "Found: " << t_tks.size() << " reconstructed tracks" << "\n"; @@ -77,10 +73,10 @@ void KVFTrackUpdate::analyze(const edm::Event& iEvent, const edm::EventSetup& iS SingleTrackVertexConstraint stvc; for (unsigned int i = 0; i < t_tks.size(); i++) { SingleTrackVertexConstraint::BTFtuple a = stvc.constrain(t_tks[i], glbPos, glbErrPos); - std::cout << "Chi2: " << std::get<2>(a) << std::endl; + edm::LogPrint("RecoVertex/KVFTrackUpdate") << "Chi2: " << std::get<2>(a) << std::endl; if (recoBeamSpotHandle.isValid()) { SingleTrackVertexConstraint::BTFtuple b = stvc.constrain(t_tks[i], *recoBeamSpotHandle); - std::cout << "Chi2: " << std::get<2>(b) << std::endl; + edm::LogPrint("RecoVertex/KVFTrackUpdate") << "Chi2: " << std::get<2>(b) << std::endl; } } } diff --git a/RecoVertex/KalmanVertexFit/plugins/KVFTrackUpdate.h b/RecoVertex/KalmanVertexFit/plugins/KVFTrackUpdate.h index 1affe470b570f..d01917ba08ec6 100644 --- a/RecoVertex/KalmanVertexFit/plugins/KVFTrackUpdate.h +++ b/RecoVertex/KalmanVertexFit/plugins/KVFTrackUpdate.h @@ -3,7 +3,7 @@ // user include files #include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" @@ -11,13 +11,15 @@ #include "FWCore/ParameterSet/interface/ParameterSet.h" #include "DataFormats/TrackReco/interface/TrackFwd.h" #include "DataFormats/BeamSpot/interface/BeamSpot.h" +#include "TrackingTools/TransientTrack/interface/TransientTrackBuilder.h" +#include "TrackingTools/Records/interface/TransientTrackRecord.h" /** * This is a very simple test analyzer to test the update of a track with * a vertex constraint with the Kalman filter. */ -class KVFTrackUpdate : public edm::EDAnalyzer { +class KVFTrackUpdate : public edm::one::EDAnalyzer<> { public: explicit KVFTrackUpdate(const edm::ParameterSet&); ~KVFTrackUpdate() override; @@ -28,6 +30,7 @@ class KVFTrackUpdate : public edm::EDAnalyzer { void endJob() override; private: + const edm::ESGetToken estoken_TTB; edm::EDGetTokenT token_tracks; edm::EDGetTokenT token_beamSpot; }; diff --git a/RecoVertex/PrimaryVertexProducer/BuildFile.xml b/RecoVertex/PrimaryVertexProducer/BuildFile.xml index e9f239c3e3809..4109da36327ba 100644 --- a/RecoVertex/PrimaryVertexProducer/BuildFile.xml +++ b/RecoVertex/PrimaryVertexProducer/BuildFile.xml @@ -8,6 +8,7 @@ + diff --git a/RecoVertex/PrimaryVertexProducer/interface/DAClusterizerInZ_vect.h b/RecoVertex/PrimaryVertexProducer/interface/DAClusterizerInZ_vect.h index ce45577aca261..cf1d95d009a8b 100644 --- a/RecoVertex/PrimaryVertexProducer/interface/DAClusterizerInZ_vect.h +++ b/RecoVertex/PrimaryVertexProducer/interface/DAClusterizerInZ_vect.h @@ -189,7 +189,8 @@ class DAClusterizerInZ_vect final : public TrackClusterizerInZ { double update( double beta, track_t >racks, vertex_t &gvertices, const double rho0 = 0, const bool updateTc = false) const; - void dump(const double beta, const vertex_t &y, const track_t &tks, const int verbosity = 0) const; + void dump( + const double beta, const vertex_t &y, const track_t &tks, const int verbosity = 0, const double rho0 = 0.) const; bool merge(vertex_t &y, track_t &tks, double &beta) const; bool purge(vertex_t &, track_t &, double &, const double) const; bool split(const double beta, track_t &t, vertex_t &y, double threshold = 1.) const; diff --git a/RecoVertex/PrimaryVertexProducer/plugins/BuildFile.xml b/RecoVertex/PrimaryVertexProducer/plugins/BuildFile.xml index 805c8cee567d8..d23d09e4aa957 100644 --- a/RecoVertex/PrimaryVertexProducer/plugins/BuildFile.xml +++ b/RecoVertex/PrimaryVertexProducer/plugins/BuildFile.xml @@ -1,7 +1,6 @@ - diff --git a/RecoVertex/PrimaryVertexProducer/src/DAClusterizerInZ_vect.cc b/RecoVertex/PrimaryVertexProducer/src/DAClusterizerInZ_vect.cc index f9312dcebc26a..6742f54d2d20b 100644 --- a/RecoVertex/PrimaryVertexProducer/src/DAClusterizerInZ_vect.cc +++ b/RecoVertex/PrimaryVertexProducer/src/DAClusterizerInZ_vect.cc @@ -452,7 +452,7 @@ unsigned int DAClusterizerInZ_vect::thermalize( std::cout << "DAClusterizerInZ_vect.thermalize niter = " << niter << " at T = " << 1 / beta << " nv = " << v.getSize() << std::endl; if (DEBUGLEVEL > 2) - dump(beta, v, tks, 0); + dump(beta, v, tks, 0, rho0); } #endif @@ -483,31 +483,26 @@ bool DAClusterizerInZ_vect::merge(vertex_t& y, track_t& tks, double& beta) const for (unsigned int ik = 0; ik < critical.size(); ik++) { unsigned int k = critical[ik].second; double rho = y.rho[k] + y.rho[k + 1]; - double swE = y.swE[k] + y.swE[k + 1] - y.rho[k] * y.rho[k + 1] / rho * std::pow(y.zvtx[k + 1] - y.zvtx[k], 2); - double Tc = 2 * swE / (y.sw[k] + y.sw[k + 1]); - if (Tc * beta < 1) { #ifdef DEBUG - assert((k + 1) < nv); - if (DEBUGLEVEL > 1) { - std::cout << "merging " << fixed << setprecision(4) << y.zvtx[k + 1] << " and " << y.zvtx[k] << " Tc = " << Tc - << " sw = " << y.sw[k] + y.sw[k + 1] << std::endl; - } + assert((k + 1) < nv); + if (DEBUGLEVEL > 1) { + std::cout << "merging " << fixed << setprecision(4) << y.zvtx[k + 1] << " and " << y.zvtx[k] + << " sw = " << y.sw[k] + y.sw[k + 1] << std::endl; + } #endif - if (rho > 0) { - y.zvtx[k] = (y.rho[k] * y.zvtx[k] + y.rho[k + 1] * y.zvtx[k + 1]) / rho; - } else { - y.zvtx[k] = 0.5 * (y.zvtx[k] + y.zvtx[k + 1]); - } - y.rho[k] = rho; - y.sw[k] += y.sw[k + 1]; - y.swE[k] = swE; - y.removeItem(k + 1, tks); - set_vtx_range(beta, tks, y); - y.extractRaw(); - return true; + if (rho > 0) { + y.zvtx[k] = (y.rho[k] * y.zvtx[k] + y.rho[k + 1] * y.zvtx[k + 1]) / rho; + } else { + y.zvtx[k] = 0.5 * (y.zvtx[k] + y.zvtx[k + 1]); } + y.rho[k] = rho; + y.sw[k] += y.sw[k + 1]; + y.removeItem(k + 1, tks); + set_vtx_range(beta, tks, y); + y.extractRaw(); + return true; } return false; @@ -645,9 +640,11 @@ double DAClusterizerInZ_vect::beta0(double betamax, track_t const& tks, vertex_t bool DAClusterizerInZ_vect::split(const double beta, track_t& tks, vertex_t& y, double threshold) const { // split only critical vertices (Tc >~ T=1/beta <==> beta*Tc>~1) - // an update must have been made just before doing this (same beta, no merging) // returns true if at least one cluster was split + // update the sums needed for Tc, rho0 is never non-zero while splitting is still active + update(beta, tks, y, 0., true); // the "true" flag enables Tc evaluation + constexpr double epsilon = 1e-3; // minimum split size unsigned int nv = y.getSize(); @@ -794,9 +791,8 @@ vector DAClusterizerInZ_vect::vertices(const vector DAClusterizerInZ_vect::vertices(const vector DAClusterizerInZ_vect::vertices(const vector 0) { - rho0 = 1. / nt; + rho0 = y.getSize() > 1 ? 1. / y.getSize() : 1.; for (unsigned int a = 0; a < 5; a++) { update(beta, tks, y, a * rho0 / 5.); // adiabatic turn-on } } thermalize(beta, tks, y, delta_lowT_, rho0); - update(beta, tks, y, rho0, true); #ifdef DEBUG verify(y, tks); @@ -860,13 +854,13 @@ vector DAClusterizerInZ_vect::vertices(const vector("useVertex"); token_vertices = iC.consumes>(theParameters.getParameter("vertices")); @@ -108,9 +108,7 @@ void V0Fitter::fitAll(const edm::Event& iEvent, referencePos = referenceVtx.position(); } - edm::ESHandle theMagneticFieldHandle; - iSetup.get().get(theMagneticFieldHandle); - const MagneticField* theMagneticField = theMagneticFieldHandle.product(); + const MagneticField* theMagneticField = &iSetup.getData(esTokenMF_); std::vector theTrackRefs; std::vector theTransTracks; diff --git a/RecoVertex/V0Producer/src/V0Fitter.h b/RecoVertex/V0Producer/src/V0Fitter.h index a92ce2b3598be..5b399f64f6053 100644 --- a/RecoVertex/V0Producer/src/V0Fitter.h +++ b/RecoVertex/V0Producer/src/V0Fitter.h @@ -46,6 +46,8 @@ class dso_hidden V0Fitter { reco::VertexCompositeCandidateCollection& l); private: + const edm::ESGetToken esTokenMF_; + bool vertexFitter_; bool useRefTracks_; bool doKShorts_; diff --git a/RecoVertex/V0Producer/test/V0Analyzer.cc b/RecoVertex/V0Producer/test/V0Analyzer.cc index 8b5715eb047d5..1f7304b4b155a 100644 --- a/RecoVertex/V0Producer/test/V0Analyzer.cc +++ b/RecoVertex/V0Producer/test/V0Analyzer.cc @@ -23,18 +23,12 @@ // user include files #include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" - -#include "FWCore/Framework/interface/ESHandle.h" - +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/EventSetup.h" #include "FWCore/Framework/interface/MakerMacros.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" - -#include "FWCore/Framework/interface/ESHandle.h" - #include "TrackingTools/TransientTrack/interface/TransientTrack.h" //#include "DataFormats/TrackReco/interface/Track.h" @@ -72,7 +66,7 @@ // class declaration // -class V0Analyzer : public edm::EDAnalyzer { +class V0Analyzer : public edm::one::EDAnalyzer { public: explicit V0Analyzer(const edm::ParameterSet&); ~V0Analyzer(); @@ -83,6 +77,9 @@ class V0Analyzer : public edm::EDAnalyzer { virtual void analyze(const edm::Event&, const edm::EventSetup&); virtual void endJob(); + const edm::ESGetToken m_mfToken; + const edm::ESGetToken m_geomToken; + std::string algoLabel; std::string recoAlgoLabel; std::string SimTkLabel; @@ -154,9 +151,11 @@ const double piMassSq = 0.019479101; // // constructors and destructor -// + V0Analyzer::V0Analyzer(const edm::ParameterSet& iConfig) - : algoLabel(iConfig.getUntrackedParameter("recoAlgorithm", std::string("ctfV0Prod"))), + : m_mfToken(esConsumes()), + m_geomToken(esConsumes()), + algoLabel(iConfig.getUntrackedParameter("recoAlgorithm", std::string("ctfV0Prod"))), recoAlgoLabel(iConfig.getUntrackedParameter("trackingAlgo", std::string("ctfWithMaterialTracks"))), SimTkLabel(iConfig.getUntrackedParameter("moduleLabelTk", std::string("g4SimHits"))), SimVtxLabel(iConfig.getUntrackedParameter("moduleLabelVtx", std::string("g4SimHits"))), @@ -166,6 +165,8 @@ V0Analyzer::V0Analyzer(const edm::ParameterSet& iConfig) //now do what ever initialization is needed //theHistoFile = 0; + usesResource(TFileService::kSharedResource); + numDiff1 = numDiff2 = 0; } @@ -370,11 +371,8 @@ void V0Analyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup Handle SimVtx; Handle RecoTk; - ESHandle bFieldHandle; - iSetup.get().get(bFieldHandle); - - ESHandle trackerGeomHandle; - iSetup.get().get(trackerGeomHandle); + ESHandle bFieldHandle = iSetup.getHandle(m_mfToken); + ESHandle trackerGeomHandle = iSetup.getHandle(m_geomToken); //const TrackerGeometry* trackerGeom = trackerGeomHandle.product(); diff --git a/SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalFenixAmplitudeFilter.h b/SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalEBFenixAmplitudeFilter.h similarity index 73% rename from SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalFenixAmplitudeFilter.h rename to SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalEBFenixAmplitudeFilter.h index efc512659f0ba..4ae45a6bc5951 100644 --- a/SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalFenixAmplitudeFilter.h +++ b/SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalEBFenixAmplitudeFilter.h @@ -1,5 +1,5 @@ -#ifndef ECAL_FENIX_AMPLITUDE_FILTER_H -#define ECAL_FENIX_AMPLITUDE_FILTER_H +#ifndef SimCalorimetry_EcalEBTrigPrimAlgos_EcalEBFenixAmplitudeFilter_h +#define SimCalorimetry_EcalEBTrigPrimAlgos_EcalEBFenixAmplitudeFilter_h #include #include @@ -8,13 +8,13 @@ class EcalTPGWeightIdMap; class EcalTPGWeightGroup; /** - \ class EcalFenixAmplitudeFilter + \ class EcalEBFenixAmplitudeFilter \brief calculates .... for Fenix strip, barrel * input: 18 bits * output: 18 bits * */ -class EcalFenixAmplitudeFilter { +class EcalEBFenixAmplitudeFilter { private: int peakFlag_[5]; int inputsAlreadyIn_; @@ -29,8 +29,8 @@ class EcalFenixAmplitudeFilter { int processedFgvbOutput_; public: - EcalFenixAmplitudeFilter(); - virtual ~EcalFenixAmplitudeFilter(); + EcalEBFenixAmplitudeFilter(); + virtual ~EcalEBFenixAmplitudeFilter(); virtual void process(std::vector &addout, std::vector &output, std::vector &fgvbIn, diff --git a/SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalFenixLinearizer.h b/SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalEBFenixLinearizer.h similarity index 69% rename from SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalFenixLinearizer.h rename to SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalEBFenixLinearizer.h index dd3d9a73b22de..368347aec0775 100644 --- a/SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalFenixLinearizer.h +++ b/SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalEBFenixLinearizer.h @@ -1,5 +1,5 @@ -#ifndef ECAL_FENIX_LINEARIZER_H -#define ECAL_FENIX_LINEARIZER_H +#ifndef SimCalorimetry_EcalEBTrigPrimAlgos_EcalEBFenixLinearizer_h +#define SimCalorimetry_EcalEBTrigPrimAlgos_EcalEBFenixLinearizer_h #include #include @@ -9,14 +9,14 @@ #include /** - \class EcalFenixLinearizer + \class EcalEBFenixLinearizer \brief Linearisation for Fenix strip * input: 16 bits corresponding to input EBDataFrame * output: 18 bits * */ -class EcalFenixLinearizer { +class EcalEBFenixLinearizer { private: bool famos_; int uncorrectedSample_; @@ -37,8 +37,8 @@ class EcalFenixLinearizer { int process(); public: - EcalFenixLinearizer(bool famos); - virtual ~EcalFenixLinearizer(); + EcalEBFenixLinearizer(bool famos); + virtual ~EcalEBFenixLinearizer(); template void process(const T &, std::vector &); @@ -49,7 +49,7 @@ class EcalFenixLinearizer { }; template -void EcalFenixLinearizer::process(const T &df, std::vector &output_percry) { +void EcalEBFenixLinearizer::process(const T &df, std::vector &output_percry) { //We know a tower numbering is: // S1 S2 S3 S4 S5 // @@ -59,21 +59,11 @@ void EcalFenixLinearizer::process(const T &df, std::vector &output_percry) // 1 8 11 18 21 // 0 9 10 19 20 - //std::cout << " EcalFenixLinearizer::process(const .. DataFrame " << std::endl; - for (int i = 0; i < df.size(); i++) { - //std::cout << df[i] << " "; - } - for (int i = 0; i < df.size(); i++) { setInput(df[i]); output_percry[i] = process(); } - //std::cout << " EcalFenixLinearizer::process(const .. Final output " << std::endl; - for (int i = 0; i < df.size(); i++) { - //std::cout << " output_percry " << output_percry[i]<< " "; - } - return; } diff --git a/SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalFenixPeakFinder.h b/SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalEBFenixPeakFinder.h similarity index 72% rename from SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalFenixPeakFinder.h rename to SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalEBFenixPeakFinder.h index 93c1c42662a6b..f39426c8b777e 100644 --- a/SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalFenixPeakFinder.h +++ b/SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalEBFenixPeakFinder.h @@ -1,10 +1,10 @@ -#ifndef ECAL_FENIX_PEAKFINDER_H -#define ECAL_FENIX_PEAKFINDER_H +#ifndef SimCalorimetry_EcalEBTrigPrimAlgos_EcalEBFenixPeakFinder_h +#define SimCalorimetry_EcalEBTrigPrimAlgos_EcalEBFenixPeakFinder_h #include /** - \ class EcalFenixPeakFinder + \ class EcalEBFenixPeakFinder \brief calculates the peak for Fenix strip, barrel * input : 18 bits * output: boolean @@ -13,7 +13,7 @@ * ----> do we really need caloVShape? */ -class EcalFenixPeakFinder { +class EcalEBFenixPeakFinder { private: bool disabled; int setInput(int input); @@ -23,8 +23,8 @@ class EcalFenixPeakFinder { int buffer_[3]; public: - EcalFenixPeakFinder(); - virtual ~EcalFenixPeakFinder(); + EcalEBFenixPeakFinder(); + virtual ~EcalEBFenixPeakFinder(); virtual std::vector process(std::vector& filtout, std::vector& output); // from CaloVShape // virtual double operator()(double) const {return 0.;} diff --git a/SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalFenixStripFormatEB.h b/SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalEBFenixStripFormatEB.h similarity index 70% rename from SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalFenixStripFormatEB.h rename to SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalEBFenixStripFormatEB.h index bbd6d886cead5..b379c556dd041 100644 --- a/SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalFenixStripFormatEB.h +++ b/SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalEBFenixStripFormatEB.h @@ -1,5 +1,5 @@ -#ifndef ECAL_FENIX_STRIP_FORMAT_EB_H -#define ECAL_FENIX_STRIP_FORMAT_EB_H +#ifndef SimCalorimetry_EcalEBTrigPrimAlgos_EcalEBFenixStripFormatEB_h +#define SimCalorimetry_EcalEBTrigPrimAlgos_EcalEBFenixStripFormatEB_h #include #include @@ -7,7 +7,7 @@ class EcalTPGSlidingWindow; /** - \class EcalFenixStripFormatEB + \class EcalEBFenixStripFormatEB \brief Formatting for Fenix strip * input: 18 bits + 3x 1bit (fgvb, gapflagbit, output from peakfinder) * output:16 bits @@ -15,7 +15,7 @@ class EcalTPGSlidingWindow; * --- not really a calodataframe no? */ -class EcalFenixStripFormatEB { +class EcalEBFenixStripFormatEB { private: int inputsFGVB_; int inputPeak_; @@ -27,8 +27,8 @@ class EcalFenixStripFormatEB { int process(); public: - EcalFenixStripFormatEB(); - virtual ~EcalFenixStripFormatEB(); + EcalEBFenixStripFormatEB(); + virtual ~EcalEBFenixStripFormatEB(); virtual void process(std::vector &, std::vector &, std::vector &, std::vector &); void setParameters(uint32_t &, const EcalTPGSlidingWindow *&); }; diff --git a/SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalFenixTcpFormat.h b/SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalEBFenixTcpFormat.h similarity index 80% rename from SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalFenixTcpFormat.h rename to SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalEBFenixTcpFormat.h index e4f84312ea4ec..b61a19a4b40c3 100644 --- a/SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalFenixTcpFormat.h +++ b/SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalEBFenixTcpFormat.h @@ -1,5 +1,5 @@ -#ifndef ECAL_FENIX_TCP_FORMAT_H -#define ECAL_FENIX_TCP_FORMAT_H +#ifndef SimCalorimetry_EcalEBTrigPrimAlgos_EcalEBFenixTcpFormat_h +#define SimCalorimetry_EcalEBTrigPrimAlgos_EcalEBFenixTcpFormat_h #include "DataFormats/EcalDigi/interface/EcalEBTriggerPrimitiveSample.h" #include @@ -10,7 +10,7 @@ class EcalTPGTowerStatus; class EcalTPGSpike; /** - \class EcalFenixStripFormat + \class EcalEBFenixTcpFormat \brief Formatting for Fenix Tcp * input 10 bits from Ettot * 1 bit from fgvb @@ -19,10 +19,10 @@ class EcalTPGSpike; * simple formatting * */ -class EcalFenixTcpFormat { +class EcalEBFenixTcpFormat { public: - EcalFenixTcpFormat(bool tccFormat, bool debug, bool famos, int binOfMax); - virtual ~EcalFenixTcpFormat(); + EcalEBFenixTcpFormat(bool tccFormat, bool debug, bool famos, int binOfMax); + virtual ~EcalEBFenixTcpFormat(); void process(std::vector &, std::vector &); void process(std::vector &Et, diff --git a/SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalEBTrigPrimTestAlgo.h b/SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalEBTrigPrimTestAlgo.h index 590ec84824998..a56af8869ff3f 100644 --- a/SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalEBTrigPrimTestAlgo.h +++ b/SimCalorimetry/EcalEBTrigPrimAlgos/interface/EcalEBTrigPrimTestAlgo.h @@ -1,5 +1,5 @@ -#ifndef EcalEBTrigPrimTestAlgo_h -#define EcalEBTrigPrimTestAlgo_h +#ifndef SimCalorimetry_EcalEBTrigPrimAlgos_EcalEBTrigPrimTestAlgo_h +#define SimCalorimetry_EcalEBTrigPrimAlgos_EcalEBTrigPrimTestAlgo_h /** \class EcalEBTrigPrimTestAlgo \author N. Marinelli - Univ. of Notre Dame * forPhase II @@ -14,22 +14,17 @@ #include "Geometry/CaloTopology/interface/EcalTrigTowerConstituentsMap.h" #include "DataFormats/EcalDetId/interface/EcalTriggerElectronicsId.h" #include "DataFormats/Common/interface/SortedCollection.h" -//#include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h" #include "DataFormats/EcalDigi/interface/EcalDigiCollections.h" -#include "FWCore/Framework/interface/EventSetup.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "Geometry/CaloGeometry/interface/CaloGeometry.h" -#include "Geometry/Records/interface/CaloGeometryRecord.h" -#include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h" #include "Geometry/CaloGeometry/interface/CaloCellGeometry.h" -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include #include @@ -37,21 +32,24 @@ class EcalTrigTowerDetId; class ETPCoherenceTest; class EcalEBTriggerPrimitiveSample; -class CaloSubdetectorGeometry; class EBDataFrame; class EcalEBTrigPrimTestAlgo { public: - explicit EcalEBTrigPrimTestAlgo( - const edm::EventSetup &setup, int nSamples, int binofmax, bool tcpFormat, bool barrelOnly, bool debug, bool famos); + // not BarrelOnly + explicit EcalEBTrigPrimTestAlgo(const EcalTrigTowerConstituentsMap *eTTmap, + const CaloGeometry *theGeometry, + int nSamples, + int binofmax, + bool tcpFormat, + bool debug, + bool famos); + //barrel only + explicit EcalEBTrigPrimTestAlgo(int nSamples, int binofmax, bool tcpFormat, bool debug, bool famos); virtual ~EcalEBTrigPrimTestAlgo(); - // void run(const edm::EventSetup &, const EcalRecHitCollection *col, EcalEBTrigPrimDigiCollection & result, EcalEBTrigPrimDigiCollection & resultTcp); - void run(const edm::EventSetup &, - const EBDigiCollection *col, - EcalEBTrigPrimDigiCollection &result, - EcalEBTrigPrimDigiCollection &resultTcp); + void run(const EBDigiCollection *col, EcalEBTrigPrimDigiCollection &result, EcalEBTrigPrimDigiCollection &resultTcp); void setPointers(const EcalTPGLinearizationConst *ecaltpLin, const EcalTPGPedestals *ecaltpPed, @@ -76,7 +74,7 @@ class EcalEBTrigPrimTestAlgo { } private: - void init(const edm::EventSetup &); + void init(); template void initStructures(std::vector > > > &towMap); template @@ -97,9 +95,8 @@ class EcalEBTrigPrimTestAlgo { return ind; } - edm::ESHandle eTTmap_; - // const CaloSubdetectorGeometry *theEndcapGeometry; - edm::ESHandle theGeometry; + const EcalTrigTowerConstituentsMap *eTTmap_ = nullptr; + const CaloGeometry *theGeometry_ = nullptr; float threshold; int nSamples_; @@ -129,11 +126,11 @@ class EcalEBTrigPrimTestAlgo { const EcalElectronicsMapping *theMapping_; - std::vector linearizer_; - EcalFenixAmplitudeFilter *amplitude_filter_; - EcalFenixPeakFinder *peak_finder_; - EcalFenixStripFormatEB *fenixFormatterEB_; - EcalFenixTcpFormat *fenixTcpFormat_; + std::vector linearizer_; + EcalEBFenixAmplitudeFilter *amplitude_filter_; + EcalEBFenixPeakFinder *peak_finder_; + EcalEBFenixStripFormatEB *fenixFormatterEB_; + EcalEBFenixTcpFormat *fenixTcpFormat_; // const EcalTPGPedestals *ecaltpPed_; @@ -147,10 +144,10 @@ class EcalEBTrigPrimTestAlgo { const EcalTPGTowerStatus *ecaltpgBadTT_; const EcalTPGSpike *ecaltpgSpike_; - EcalFenixLinearizer *getLinearizer(int i) const { return linearizer_[i]; } + EcalEBFenixLinearizer *getLinearizer(int i) const { return linearizer_[i]; } std::vector > lin_out_; // - EcalFenixAmplitudeFilter *getFilter() const { return amplitude_filter_; } + EcalEBFenixAmplitudeFilter *getFilter() const { return amplitude_filter_; } std::vector filt_out_; std::vector peak_out_; std::vector format_out_; @@ -159,10 +156,10 @@ class EcalEBTrigPrimTestAlgo { std::vector fgvb_out_temp_; // - EcalFenixPeakFinder *getPeakFinder() const { return peak_finder_; } - EcalFenixStripFormatEB *getFormatterEB() const { return fenixFormatterEB_; } + EcalEBFenixPeakFinder *getPeakFinder() const { return peak_finder_; } + EcalEBFenixStripFormatEB *getFormatterEB() const { return fenixFormatterEB_; } // - EcalFenixTcpFormat *getFormatter() const { return fenixTcpFormat_; } + EcalEBFenixTcpFormat *getFormatter() const { return fenixTcpFormat_; } std::vector tcpformat_out_; }; diff --git a/SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalFenixAmplitudeFilter.cc b/SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalEBFenixAmplitudeFilter.cc similarity index 72% rename from SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalFenixAmplitudeFilter.cc rename to SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalEBFenixAmplitudeFilter.cc index aa74beae06a7e..ce4224d12db9f 100644 --- a/SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalFenixAmplitudeFilter.cc +++ b/SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalEBFenixAmplitudeFilter.cc @@ -1,28 +1,28 @@ -#include +#include #include "CondFormats/EcalObjects/interface/EcalTPGWeightIdMap.h" #include "CondFormats/EcalObjects/interface/EcalTPGWeightGroup.h" #include "CondFormats/EcalObjects/interface/EcalTPGGroups.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include -EcalFenixAmplitudeFilter::EcalFenixAmplitudeFilter() : inputsAlreadyIn_(0), shift_(6) {} +EcalEBFenixAmplitudeFilter::EcalEBFenixAmplitudeFilter() : inputsAlreadyIn_(0), shift_(6) {} -EcalFenixAmplitudeFilter::~EcalFenixAmplitudeFilter() {} +EcalEBFenixAmplitudeFilter::~EcalEBFenixAmplitudeFilter() {} -int EcalFenixAmplitudeFilter::setInput(int input, int fgvb) { +int EcalEBFenixAmplitudeFilter::setInput(int input, int fgvb) { if (input > 0X3FFFF) { std::cout << "ERROR IN INPUT OF AMPLITUDE FILTER" << std::endl; return -1; } if (inputsAlreadyIn_ < 5) { - //std::cout << " EcalFenixAmplitudeFilter::setInput inputsAlreadyIn_<5 input " << input << std::endl; + //std::cout << " EcalEBFenixAmplitudeFilter::setInput inputsAlreadyIn_<5 input " << input << std::endl; buffer_[inputsAlreadyIn_] = input; fgvbBuffer_[inputsAlreadyIn_] = fgvb; inputsAlreadyIn_++; } else { for (int i = 0; i < 4; i++) { buffer_[i] = buffer_[i + 1]; - //std::cout << " EcalFenixAmplitudeFilter::setInput inputsAlreadyIn buffer " << buffer_[i] << std::endl; + //std::cout << " EcalEBFenixAmplitudeFilter::setInput inputsAlreadyIn buffer " << buffer_[i] << std::endl; fgvbBuffer_[i] = fgvbBuffer_[i + 1]; } buffer_[4] = input; @@ -31,10 +31,10 @@ int EcalFenixAmplitudeFilter::setInput(int input, int fgvb) { return 1; } -void EcalFenixAmplitudeFilter::process(std::vector &addout, - std::vector &output, - std::vector &fgvbIn, - std::vector &fgvbOut) { +void EcalEBFenixAmplitudeFilter::process(std::vector &addout, + std::vector &output, + std::vector &fgvbIn, + std::vector &fgvbOut) { // test inputsAlreadyIn_ = 0; @@ -45,7 +45,7 @@ void EcalFenixAmplitudeFilter::process(std::vector &addout, // test end - //std::cout << " EcalFenixAmplitudeFilter::process(std::vector &addout size " << addout.size() << std::endl; + //std::cout << " EcalEBFenixAmplitudeFilter::process(std::vector &addout size " << addout.size() << std::endl; for (unsigned int i = 0; i < addout.size(); i++) { setInput(addout[i], fgvbIn[i]); for (unsigned int i = 0; i < 5; i++) { @@ -69,7 +69,7 @@ void EcalFenixAmplitudeFilter::process(std::vector &addout, return; } -void EcalFenixAmplitudeFilter::process() { +void EcalEBFenixAmplitudeFilter::process() { //UB FIXME: 5 processedOutput_ = 0; processedFgvbOutput_ = 0; @@ -92,9 +92,9 @@ void EcalFenixAmplitudeFilter::process() { processedFgvbOutput_ = fgvbInt; } -void EcalFenixAmplitudeFilter::setParameters(uint32_t raw, - const EcalTPGWeightIdMap *ecaltpgWeightMap, - const EcalTPGWeightGroup *ecaltpgWeightGroup) { +void EcalEBFenixAmplitudeFilter::setParameters(uint32_t raw, + const EcalTPGWeightIdMap *ecaltpgWeightMap, + const EcalTPGWeightGroup *ecaltpgWeightGroup) { uint32_t params_[5]; const EcalTPGGroups::EcalTPGGroupsMap &groupmap = ecaltpgWeightGroup->getMap(); EcalTPGGroups::EcalTPGGroupsMapItr it = groupmap.find(raw); diff --git a/SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalFenixLinearizer.cc b/SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalEBFenixLinearizer.cc similarity index 74% rename from SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalFenixLinearizer.cc rename to SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalEBFenixLinearizer.cc index 2f232249fa773..b6ee95d4637c2 100644 --- a/SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalFenixLinearizer.cc +++ b/SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalEBFenixLinearizer.cc @@ -1,4 +1,4 @@ -#include +#include #include #include @@ -6,10 +6,10 @@ #include "FWCore/MessageLogger/interface/MessageLogger.h" -EcalFenixLinearizer::EcalFenixLinearizer(bool famos) +EcalEBFenixLinearizer::EcalEBFenixLinearizer(bool famos) : famos_(famos), init_(false), linConsts_(nullptr), peds_(nullptr), badXStatus_(nullptr) {} -EcalFenixLinearizer::~EcalFenixLinearizer() { +EcalEBFenixLinearizer::~EcalEBFenixLinearizer() { if (init_) { for (int i = 0; i < (int)vectorbadXStatus_.size(); i++) { delete vectorbadXStatus_[i]; @@ -17,10 +17,10 @@ EcalFenixLinearizer::~EcalFenixLinearizer() { } } -void EcalFenixLinearizer::setParameters(uint32_t raw, - const EcalTPGPedestals *ecaltpPed, - const EcalTPGLinearizationConst *ecaltpLin, - const EcalTPGCrystalStatus *ecaltpBadX) { +void EcalEBFenixLinearizer::setParameters(uint32_t raw, + const EcalTPGPedestals *ecaltpPed, + const EcalTPGLinearizationConst *ecaltpLin, + const EcalTPGCrystalStatus *ecaltpBadX) { const EcalTPGLinearizationConstMap &linMap = ecaltpLin->getMap(); EcalTPGLinearizationConstMapIterator it = linMap.find(raw); @@ -48,24 +48,24 @@ void EcalFenixLinearizer::setParameters(uint32_t raw, } } -int EcalFenixLinearizer::process() { +int EcalEBFenixLinearizer::process() { int output = (uncorrectedSample_ - base_); //Substract base - //std::cout << " EcalFenixLinearizer::process() output non bit shifted " << output << std::endl; + //std::cout << " EcalEBFenixLinearizer::process() output non bit shifted " << output << std::endl; if (famos_ || output < 0) return 0; if (output < 0) return shift_ << 12; // FENIX bug(!) output = (output * mult_) >> (shift_ + 2); //Apply multiplicative factor - //std::cout << " EcalFenixLinearizer::process() output 2nd step " << output << std::endl; + //std::cout << " EcalEBFenixLinearizer::process() output 2nd step " << output << std::endl; if (output > 0X3FFFF) output = 0X3FFFF; //Saturation if too high - //std::cout << " EcalFenixLinearizer::process() output 3rd step " << output << std::endl; + //std::cout << " EcalEBFenixLinearizer::process() output 3rd step " << output << std::endl; return output; } -int EcalFenixLinearizer::setInput(const EcalMGPASample &RawSam) { - //std::cout << " EcalFenixLinearizer::setInput RawSam.raw() " << RawSam.raw() << std::endl; +int EcalEBFenixLinearizer::setInput(const EcalMGPASample &RawSam) { + //std::cout << " EcalEBFenixLinearizer::setInput RawSam.raw() " << RawSam.raw() << std::endl; if (RawSam.raw() > 0X3FFF) { LogDebug("EcalTPG") << "ERROR IN INPUT SAMPLE OF FENIX LINEARIZER"; return -1; @@ -118,7 +118,7 @@ int EcalFenixLinearizer::setInput(const EcalMGPASample &RawSam) { } } - //std::cout << " EcalFenixLinearizer::setInput uncorrectedSample_ " << RawSam.adc() << " gainID " << gainID_ << " baseline " << base_ << std::endl; + //std::cout << " EcalEBFenixLinearizer::setInput uncorrectedSample_ " << RawSam.adc() << " gainID " << gainID_ << " baseline " << base_ << std::endl; if (famos_) base_ = 200; //FIXME by preparing a correct TPG.txt for Famos diff --git a/SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalFenixPeakFinder.cc b/SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalEBFenixPeakFinder.cc similarity index 59% rename from SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalFenixPeakFinder.cc rename to SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalEBFenixPeakFinder.cc index fc40883c351bb..e8c17b88c0905 100644 --- a/SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalFenixPeakFinder.cc +++ b/SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalEBFenixPeakFinder.cc @@ -1,26 +1,26 @@ -#include +#include #include -EcalFenixPeakFinder::EcalFenixPeakFinder() : inputsAlreadyIn_(0) {} +EcalEBFenixPeakFinder::EcalEBFenixPeakFinder() : inputsAlreadyIn_(0) {} -EcalFenixPeakFinder::~EcalFenixPeakFinder() {} +EcalEBFenixPeakFinder::~EcalEBFenixPeakFinder() {} -int EcalFenixPeakFinder::setInput(int input) { +int EcalEBFenixPeakFinder::setInput(int input) { if (inputsAlreadyIn_ < 3) { - //std::cout << " EcalFenixPeakFinder::setInput inputsAlreadyIn_<3 input " << input << std::endl; + //std::cout << " EcalEBFenixPeakFinder::setInput inputsAlreadyIn_<3 input " << input << std::endl; buffer_[inputsAlreadyIn_] = input; inputsAlreadyIn_++; } else { for (int i = 0; i < 2; i++) { buffer_[i] = buffer_[i + 1]; - //std::cout << " EcalFenixPeakFinder::setInput inputsAlreadyIn buffer " << buffer_[i] << std::endl; + //std::cout << " EcalEBFenixPeakFinder::setInput inputsAlreadyIn buffer " << buffer_[i] << std::endl; } buffer_[2] = input; } return 1; } -int EcalFenixPeakFinder::process() { +int EcalEBFenixPeakFinder::process() { if (inputsAlreadyIn_ < 3) return 0; if (buffer_[1] > buffer_[0] && buffer_[1] > buffer_[2]) @@ -29,7 +29,7 @@ int EcalFenixPeakFinder::process() { return 0; } -std::vector EcalFenixPeakFinder::process(std::vector &filtout, std::vector &output) { +std::vector EcalEBFenixPeakFinder::process(std::vector &filtout, std::vector &output) { // FIXME: 3 inputsAlreadyIn_ = 0; for (unsigned int i = 0; i < 3; i++) @@ -37,7 +37,7 @@ std::vector EcalFenixPeakFinder::process(std::vector &filtout, std::ve // std::vector output; - //std::cout << " EcalFenixPeakFinder::process( " << filtout.size() << std::endl; + //std::cout << " EcalEBFenixPeakFinder::process( " << filtout.size() << std::endl; // attention, we have to shift by one, because the peak is found one too late for (unsigned int i = 0; i < filtout.size(); i++) { setInput(filtout[i]); diff --git a/SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalFenixStripFormatEB.cc b/SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalEBFenixStripFormatEB.cc similarity index 50% rename from SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalFenixStripFormatEB.cc rename to SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalEBFenixStripFormatEB.cc index c8548fae9bd97..316b889e890d0 100644 --- a/SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalFenixStripFormatEB.cc +++ b/SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalEBFenixStripFormatEB.cc @@ -1,44 +1,44 @@ -#include +#include #include #include "FWCore/MessageLogger/interface/MessageLogger.h" -EcalFenixStripFormatEB::EcalFenixStripFormatEB() : shift_(0) {} +EcalEBFenixStripFormatEB::EcalEBFenixStripFormatEB() : shift_(0) {} -EcalFenixStripFormatEB::~EcalFenixStripFormatEB() {} +EcalEBFenixStripFormatEB::~EcalEBFenixStripFormatEB() {} -int EcalFenixStripFormatEB::setInput(int input, int inputPeak, int inputsFGVB) { +int EcalEBFenixStripFormatEB::setInput(int input, int inputPeak, int inputsFGVB) { inputsFGVB_ = inputsFGVB; inputPeak_ = inputPeak; input_ = input; return 0; } -int EcalFenixStripFormatEB::process() { +int EcalEBFenixStripFormatEB::process() { // buffer_=input_>>shift_; //FIXME: buffer why? if (inputPeak_ == 0) return ((inputsFGVB_ & 0x1) << 12); // int output=buffer_; int output = input_ >> shift_; - //std::cout << " EcalFenixStripFormatEB::process() input_ " << input_ << " output after shift " << output << std::endl; + //std::cout << " EcalEBFenixStripFormatEB::process() input_ " << input_ << " output after shift " << output << std::endl; if (output > 0XFFF) output = 0XFFF; //ok: barrel saturates at 12 bits // Add stripFGVB output |= ((inputsFGVB_ & 0x1) << 12); - //std::cout << " EcalFenixStripFormatEB::process() output after adding FGVB " << output << std::endl; + //std::cout << " EcalEBFenixStripFormatEB::process() output after adding FGVB " << output << std::endl; return output; } -void EcalFenixStripFormatEB::process(std::vector &sFGVBout, - std::vector &peakout, - std::vector &filtout, - std::vector &output) { +void EcalEBFenixStripFormatEB::process(std::vector &sFGVBout, + std::vector &peakout, + std::vector &filtout, + std::vector &output) { if (peakout.size() != filtout.size() || sFGVBout.size() != filtout.size()) { edm::LogWarning("EcalTPG") - << " problem in EcalFenixStripFormatEB: sfgvb_out, peak_out and filt_out don't have the same size"; + << " problem in EcalEBFenixStripFormatEB: sfgvb_out, peak_out and filt_out don't have the same size"; } - //std::cout << " EcalFenixStripFormatEB::process(std::vector ... filtout size " << filtout.size() << std::endl; + //std::cout << " EcalEBFenixStripFormatEB::process(std::vector ... filtout size " << filtout.size() << std::endl; for (unsigned int i = 0; i < filtout.size(); i++) { //std::cout << " Looping over filtout " << filtout[i] << " " << peakout[i] << std::endl; setInput(filtout[i], peakout[i], sFGVBout[i]); @@ -48,7 +48,7 @@ void EcalFenixStripFormatEB::process(std::vector &sFGVBout, return; } -void EcalFenixStripFormatEB::setParameters(uint32_t &id, const EcalTPGSlidingWindow *&slWin) { +void EcalEBFenixStripFormatEB::setParameters(uint32_t &id, const EcalTPGSlidingWindow *&slWin) { const EcalTPGSlidingWindowMap &slwinmap = slWin->getMap(); EcalTPGSlidingWindowMapIterator it = slwinmap.find(id); if (it != slwinmap.end()) diff --git a/SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalFenixTcpFormat.cc b/SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalEBFenixTcpFormat.cc similarity index 76% rename from SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalFenixTcpFormat.cc rename to SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalEBFenixTcpFormat.cc index f5fd039bd365d..6bf0a35922054 100644 --- a/SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalFenixTcpFormat.cc +++ b/SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalEBFenixTcpFormat.cc @@ -1,4 +1,4 @@ -#include +#include #include "CondFormats/EcalObjects/interface/EcalTPGLutGroup.h" #include "CondFormats/EcalObjects/interface/EcalTPGLutIdMap.h" #include "CondFormats/EcalObjects/interface/EcalTPGTowerStatus.h" @@ -8,19 +8,19 @@ using namespace std; -EcalFenixTcpFormat::EcalFenixTcpFormat(bool tcpFormat, bool debug, bool famos, int binOfMax) +EcalEBFenixTcpFormat::EcalEBFenixTcpFormat(bool tcpFormat, bool debug, bool famos, int binOfMax) : tcpFormat_(tcpFormat), debug_(debug), famos_(famos), binOfMax_(binOfMax) { status_ = 0; badTTStatus_ = &status_; } -EcalFenixTcpFormat::~EcalFenixTcpFormat() {} +EcalEBFenixTcpFormat::~EcalEBFenixTcpFormat() {} -void EcalFenixTcpFormat::process(std::vector &Etin, std::vector &Etout) { +void EcalEBFenixTcpFormat::process(std::vector &Etin, std::vector &Etout) { // put TP-s in the output // on request also in TcpFormat // for famos version we have to write dummies except for the middle - // std::cout << " EcalFenixTcpFormat::process(... Etout size " << Etout.size() << " Et size " << Etin.size() << std::endl; + // std::cout << " EcalEBFenixTcpFormat::process(... Etout size " << Etout.size() << " Et size " << Etin.size() << std::endl; int myEt; int eTTotShift = 2; @@ -46,17 +46,17 @@ void EcalFenixTcpFormat::process(std::vector &Etin, std::vector &Etout } } -void EcalFenixTcpFormat::process(std::vector &Et, - std::vector &fgvb, - std::vector &sfgvb, - int eTTotShift, - std::vector &out, - std::vector &out2, - bool isInInnerRings) { +void EcalEBFenixTcpFormat::process(std::vector &Et, + std::vector &fgvb, + std::vector &sfgvb, + int eTTotShift, + std::vector &out, + std::vector &out2, + bool isInInnerRings) { // put TP-s in the output // on request also in TcpFormat // for famos version we have to write dummies except for the middle - //std::cout << " EcalFenixTcpFormat::process(... out size " << out.size() << " Et size " << Et.size() << " Et[0] " << Et[0] << std::endl; + //std::cout << " EcalEBFenixTcpFormat::process(... out size " << out.size() << " Et size " << Et.size() << " Et[0] " << Et[0] << std::endl; int myEt; if (famos_) { @@ -128,11 +128,11 @@ void EcalFenixTcpFormat::process(std::vector &Et, } } -void EcalFenixTcpFormat::setParameters(uint32_t towid, - const EcalTPGLutGroup *ecaltpgLutGroup, - const EcalTPGLutIdMap *ecaltpgLut, - const EcalTPGTowerStatus *ecaltpgbadTT, - const EcalTPGSpike *ecaltpgSpike) { +void EcalEBFenixTcpFormat::setParameters(uint32_t towid, + const EcalTPGLutGroup *ecaltpgLutGroup, + const EcalTPGLutIdMap *ecaltpgLut, + const EcalTPGTowerStatus *ecaltpgbadTT, + const EcalTPGSpike *ecaltpgSpike) { // Get TP zeroing threshold - defaut to 1023 for old data (no record found or EE) spikeZeroThresh_ = 1023; if (ecaltpgSpike != nullptr) { diff --git a/SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalEBTrigPrimTestAlgo.cc b/SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalEBTrigPrimTestAlgo.cc index 5387566789389..48dfda5f7b9c8 100644 --- a/SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalEBTrigPrimTestAlgo.cc +++ b/SimCalorimetry/EcalEBTrigPrimAlgos/src/EcalEBTrigPrimTestAlgo.cc @@ -39,36 +39,51 @@ const unsigned int EcalEBTrigPrimTestAlgo::nrSamples_ = 5; const unsigned int EcalEBTrigPrimTestAlgo::maxNrTowers_ = 2448; const unsigned int EcalEBTrigPrimTestAlgo::maxNrSamplesOut_ = 10; -EcalEBTrigPrimTestAlgo::EcalEBTrigPrimTestAlgo( - const edm::EventSetup &setup, int nSam, int binofmax, bool tcpFormat, bool barrelOnly, bool debug, bool famos) +// not BarrelOnly +EcalEBTrigPrimTestAlgo::EcalEBTrigPrimTestAlgo(const EcalTrigTowerConstituentsMap *eTTmap, + const CaloGeometry *theGeometry, + int nSam, + int binofmax, + bool tcpFormat, + bool debug, + bool famos) + : eTTmap_(eTTmap), + theGeometry_(theGeometry), + nSamples_(nSam), + binOfMaximum_(binofmax), + tcpFormat_(tcpFormat), + barrelOnly_(false), + debug_(debug), + famos_(famos) + +{ + maxNrSamples_ = 10; + this->init(); +} + +//barrel only +EcalEBTrigPrimTestAlgo::EcalEBTrigPrimTestAlgo(int nSam, int binofmax, bool tcpFormat, bool debug, bool famos) : nSamples_(nSam), binOfMaximum_(binofmax), tcpFormat_(tcpFormat), - barrelOnly_(barrelOnly), + barrelOnly_(true), debug_(debug), famos_(famos) { maxNrSamples_ = 10; - this->init(setup); + this->init(); } //---------------------------------------------------------------------- -void EcalEBTrigPrimTestAlgo::init(const edm::EventSetup &setup) { - if (!barrelOnly_) { - //edm::ESHandle theGeometry; - // edm::ESHandle theEndcapGeometry_handle; - setup.get().get(theGeometry); - setup.get().get(eTTmap_); - } - +void EcalEBTrigPrimTestAlgo::init() { // initialise data structures initStructures(towerMapEB_); hitTowers_.resize(maxNrTowers_); linearizer_.resize(nbMaxXtals_); for (int i = 0; i < nbMaxXtals_; i++) - linearizer_[i] = new EcalFenixLinearizer(famos_); + linearizer_[i] = new EcalEBFenixLinearizer(famos_); // std::vector v; @@ -77,18 +92,18 @@ void EcalEBTrigPrimTestAlgo::init(const edm::EventSetup &setup) { for (int i = 0; i < 5; i++) lin_out_[i] = v; // - amplitude_filter_ = new EcalFenixAmplitudeFilter(); + amplitude_filter_ = new EcalEBFenixAmplitudeFilter(); filt_out_.resize(maxNrSamples_); peak_out_.resize(maxNrSamples_); // these two are dummy fgvb_out_.resize(maxNrSamples_); fgvb_out_temp_.resize(maxNrSamples_); // - peak_finder_ = new EcalFenixPeakFinder(); - fenixFormatterEB_ = new EcalFenixStripFormatEB(); + peak_finder_ = new EcalEBFenixPeakFinder(); + fenixFormatterEB_ = new EcalEBFenixStripFormatEB(); format_out_.resize(maxNrSamples_); // - fenixTcpFormat_ = new EcalFenixTcpFormat(tcpFormat_, debug_, famos_, binOfMaximum_); + fenixTcpFormat_ = new EcalEBFenixTcpFormat(tcpFormat_, debug_, famos_, binOfMaximum_); tcpformat_out_.resize(maxNrSamples_); } //---------------------------------------------------------------------- @@ -102,8 +117,7 @@ EcalEBTrigPrimTestAlgo::~EcalEBTrigPrimTestAlgo() { delete fenixTcpFormat_; } -void EcalEBTrigPrimTestAlgo::run(const edm::EventSetup &setup, - EBDigiCollection const *digi, +void EcalEBTrigPrimTestAlgo::run(EBDigiCollection const *digi, EcalEBTrigPrimDigiCollection &result, EcalEBTrigPrimDigiCollection &resultTcp) { //typedef typename Coll::Digi Digi; diff --git a/SimCalorimetry/EcalEBTrigPrimProducers/plugins/EcalEBTrigPrimProducer.cc b/SimCalorimetry/EcalEBTrigPrimProducers/plugins/EcalEBTrigPrimProducer.cc index e69686dfeb4cc..de56b3beee4ce 100644 --- a/SimCalorimetry/EcalEBTrigPrimProducers/plugins/EcalEBTrigPrimProducer.cc +++ b/SimCalorimetry/EcalEBTrigPrimProducers/plugins/EcalEBTrigPrimProducer.cc @@ -69,14 +69,24 @@ EcalEBTrigPrimProducer::EcalEBTrigPrimProducer(const edm::ParameterSet& iConfig) produces(); if (tcpFormat_) produces("formatTCP"); + if (not barrelOnly_) { + eTTmapToken_ = esConsumes(); + theGeometryToken_ = esConsumes(); + } } void EcalEBTrigPrimProducer::beginRun(edm::Run const& run, edm::EventSetup const& setup) { //ProcessHistory is guaranteed to be constant for an entire Run //binOfMaximum_ = findBinOfMaximum(fillBinOfMaximumFromHistory_,binOfMaximum_,run.processHistory()); - algo_ = std::make_unique( - setup, nSamples_, binOfMaximum_, tcpFormat_, barrelOnly_, debug_, famos_); + if (barrelOnly_) { + algo_ = std::make_unique(nSamples_, binOfMaximum_, tcpFormat_, debug_, famos_); + } else { + auto const& theGeometry = setup.getData(theGeometryToken_); + auto const& eTTmap = setup.getData(eTTmapToken_); + algo_ = std::make_unique( + &eTTmap, &theGeometry, nSamples_, binOfMaximum_, tcpFormat_, debug_, famos_); + } // get a first version of the records cacheID_ = this->getRecords(setup); nEvent_ = 0; @@ -164,7 +174,7 @@ void EcalEBTrigPrimProducer::produce(edm::Event& e, const edm::EventSetup& iSetu const EBDigiCollection* ebdigi = nullptr; ebdigi = barrelDigiHandle.product(); - algo_->run(iSetup, ebdigi, *pOut, *pOutTcp); + algo_->run(ebdigi, *pOut, *pOutTcp); if (debug_) std::cout << "produce" diff --git a/SimCalorimetry/EcalEBTrigPrimProducers/plugins/EcalEBTrigPrimProducer.h b/SimCalorimetry/EcalEBTrigPrimProducers/plugins/EcalEBTrigPrimProducer.h index fea01db789f55..5b70bcd345f42 100644 --- a/SimCalorimetry/EcalEBTrigPrimProducers/plugins/EcalEBTrigPrimProducer.h +++ b/SimCalorimetry/EcalEBTrigPrimProducers/plugins/EcalEBTrigPrimProducer.h @@ -39,6 +39,9 @@ #include "CondFormats/EcalObjects/interface/EcalTPGWeightIdMap.h" #include "CondFormats/EcalObjects/interface/EcalTPGWeightGroup.h" #include "CondFormats/EcalObjects/interface/EcalTPGTowerStatus.h" +#include "Geometry/CaloGeometry/interface/CaloGeometry.h" +#include "Geometry/CaloTopology/interface/EcalTrigTowerConstituentsMap.h" +#include "Geometry/Records/interface/CaloGeometryRecord.h" class EcalEBTrigPrimTestAlgo; @@ -72,6 +75,9 @@ class EcalEBTrigPrimProducer : public edm::stream::EDProducer<> { edm::ESGetToken theEcalTPGLutIdMap_Token_; edm::ESGetToken theEcalTPGTowerStatus_Token_; edm::ESGetToken theEcalTPGSpike_Token_; + //these are only used if we also handle the endcap + edm::ESGetToken eTTmapToken_; + edm::ESGetToken theGeometryToken_; int binOfMaximum_; bool fillBinOfMaximumFromHistory_; diff --git a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixAmplitudeFilter.h b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixAmplitudeFilter.h index 5e5106431c37f..88bb334464b16 100644 --- a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixAmplitudeFilter.h +++ b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixAmplitudeFilter.h @@ -1,5 +1,5 @@ -#ifndef ECAL_FENIX_AMPLITUDE_FILTER_H -#define ECAL_FENIX_AMPLITUDE_FILTER_H +#ifndef SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXAMPLITUDEFILTER_H +#define SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXAMPLITUDEFILTER_H #include #include @@ -18,18 +18,21 @@ class EcalFenixAmplitudeFilter { private: int peakFlag_[5]; int inputsAlreadyIn_; + uint32_t stripid_; int buffer_[5]; int fgvbBuffer_[5]; int weights_[5]; int shift_; int setInput(int input, int fgvb); void process(); + bool tpInfoPrintout_; int processedOutput_; int processedFgvbOutput_; public: EcalFenixAmplitudeFilter(); + EcalFenixAmplitudeFilter(bool TPinfoPrintout); virtual ~EcalFenixAmplitudeFilter(); virtual void process(std::vector &addout, std::vector &output, diff --git a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixBypassLin.h b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixBypassLin.h index 14348b73af5ac..f15c76ad42c50 100644 --- a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixBypassLin.h +++ b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixBypassLin.h @@ -1,5 +1,5 @@ -#ifndef ECAL_FENIX_BYPASS_LIN_H -#define ECAL_FENIX_BYPASS_LIN_H +#ifndef SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXBYPASSLIN_H +#define SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXBYPASSLIN_H #include diff --git a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixEtStrip.h b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixEtStrip.h index c43a5724809d7..0aa569588a6aa 100644 --- a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixEtStrip.h +++ b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixEtStrip.h @@ -1,5 +1,5 @@ -#ifndef ECAL_FENIX_ET_STRIP_H -#define ECAL_FENIX_ET_STRIP_H +#ifndef SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXETSTRIPH +#define SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXETSTRIPH #include /** diff --git a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixEtTot.h b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixEtTot.h index ec0bac4a8425d..a29986c7de55a 100644 --- a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixEtTot.h +++ b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixEtTot.h @@ -1,5 +1,5 @@ -#ifndef ECAL_FENIX_ET_TOT_H -#define ECAL_FENIX_ET_TOT_H +#ifndef SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXETTOT_H +#define SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXETTOT_H #include "DataFormats/EcalDigi/interface/EBDataFrame.h" #include @@ -8,7 +8,9 @@ \class EcalFenixEtTot \brief class for calculation of Et for Fenix tcp - * calculates the sum + * calculates the sum. + * As in the firmware the Et sum is splitted in even and odd sum according to the OddEvenBit. + * The bit (14th) is handled by strip. * * inputs: * -5x 12 bits (12 first bits of output of passlin or take 13 bits and @@ -17,6 +19,7 @@ 5X 10 bits (10 first bits) according to the second parameter) * -number of interesting bits according EE or EBDataFrame + -mask to apply before checking for oddEven flaf * * output :12 bits (EB) or 10(EE) * @@ -28,7 +31,12 @@ class EcalFenixEtTot { virtual ~EcalFenixEtTot(); virtual std::vector process(const std::vector &); - void process(std::vector> &, int nStr, int bitMask, std::vector &out); + void process(std::vector> &, + int nStr, + int bitMask, + int bitOddEven, + std::vector &out_even, + std::vector &out_odd); private: }; diff --git a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixFgvbEB.h b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixFgvbEB.h index b2d27426826ca..4e914bc228fca 100644 --- a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixFgvbEB.h +++ b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixFgvbEB.h @@ -1,5 +1,5 @@ -#ifndef ECAL_FENIX_FGVB_EB_H -#define ECAL_FENIX_FGVB_EB_H +#ifndef SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXFGVBEB_H +#define SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXFGVBEB_H #include #include diff --git a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixLinearizer.h b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixLinearizer.h index c5755b21b2a8f..1b75de8fbd3b5 100644 --- a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixLinearizer.h +++ b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixLinearizer.h @@ -1,5 +1,5 @@ -#ifndef ECAL_FENIX_LINEARIZER_H -#define ECAL_FENIX_LINEARIZER_H +#ifndef SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXLINEARIZER_H +#define SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXLINEARIZER_H #include #include diff --git a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixMaxof2.h b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixMaxof2.h index 61538bcec3ec2..b9a76c64bd2de 100644 --- a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixMaxof2.h +++ b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixMaxof2.h @@ -1,5 +1,5 @@ -#ifndef ECAL_FENIX_MAXOF2_H -#define ECAL_FENIX_MAXOF2_H +#ifndef SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXMAXOF2_H +#define SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXMAXOF2_H #include @@ -12,6 +12,8 @@ * computes 4 sums of 2 strips and gives the max * max limited by 0xfff * + * As in the firmware the computation is performed only on the even energy sum, + * so the oddEvenFlag (14th bit) is used to exclude the energy of the odd strips from the computation. D.Valsecchi. * */ @@ -19,7 +21,7 @@ class EcalFenixMaxof2 { public: EcalFenixMaxof2(int maxNrSamples, int nbMaxStrips); virtual ~EcalFenixMaxof2(); - void process(std::vector> &, int nStr, int bitMask, std::vector &out); + void process(std::vector> &, int nStr, int bitMask, int bitOddEven, std::vector &out); private: int nbMaxStrips_; diff --git a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixOddAmplitudeFilter.h b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixOddAmplitudeFilter.h new file mode 100644 index 0000000000000..2e55f96007ce9 --- /dev/null +++ b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixOddAmplitudeFilter.h @@ -0,0 +1,45 @@ +#ifndef SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXODDAMPLITUDEFILTER_H +#define SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXODDAMPLITUDEFILTER_H + +#include +#include +#include + +class EcalTPGOddWeightIdMap; +class EcalTPGOddWeightGroup; + +/** + \ class EcalFenixOddAmplitudeFilter + * The purpose of this class is to implement the second (odd) ECAL FENIX amplitude filter + * Derived from SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixAmplitudeFilter.cc, interface/EcalFenixAmplitudeFilter.h + * input: 18 bits + * output: 18 bits + * + */ +class EcalFenixOddAmplitudeFilter { +private: + int peakFlag_[5]; + int inputsAlreadyIn_; + uint32_t stripid_; + int buffer_[5]; + int weights_[5]; + int shift_; + bool debug_; + bool tpInfoPrintout_; + int setInput(int input); + void process(); + + int processedOutput_; + int processedFgvbOutput_; + +public: + EcalFenixOddAmplitudeFilter(); + EcalFenixOddAmplitudeFilter(bool TPinfoPrintout); + virtual ~EcalFenixOddAmplitudeFilter(); + virtual void process(std::vector &addout, std::vector &output); + void setParameters(uint32_t raw, + const EcalTPGOddWeightIdMap *ecaltpgOddWeightMap, + const EcalTPGOddWeightGroup *ecaltpgOddWeightGroup); +}; + +#endif diff --git a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixPeakFinder.h b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixPeakFinder.h index bc55d0fd4fd42..0fe08e8d2e2c5 100644 --- a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixPeakFinder.h +++ b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixPeakFinder.h @@ -1,5 +1,5 @@ -#ifndef ECAL_FENIX_PEAKFINDER_H -#define ECAL_FENIX_PEAKFINDER_H +#ifndef SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXPEAKFINDER_H +#define SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXPEAKFINDER_H #include diff --git a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixStrip.h b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixStrip.h index 082c7346fa649..4038ac52b6510 100644 --- a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixStrip.h +++ b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixStrip.h @@ -1,7 +1,8 @@ -#ifndef ECAL_FENIXSTRIP_H -#define ECAL_FENIXSTRIP_H +#ifndef SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXSTRIP_H +#define SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXSTRIP_H #include +#include #include #include #include @@ -11,6 +12,7 @@ #include "Geometry/EcalMapping/interface/EcalElectronicsMapping.h" #include #include +#include class EBDataFrame; class EcalTriggerPrimitiveSample; @@ -20,6 +22,7 @@ class EcalFenixStripFgvbEE; class EcalFenixStripFormatEB; class EcalFenixStripFormatEE; class EcalTPGStripStatus; +class EcalTPGTPMode; /** \class EcalFenixStrip @@ -28,7 +31,12 @@ class EcalTPGStripStatus; class EcalFenixStrip { public: // constructor, destructor - EcalFenixStrip(const EcalElectronicsMapping *theMapping, bool debug, bool famos, int maxNrSamples, int nbMaxXtals); + EcalFenixStrip(const EcalElectronicsMapping *theMapping, + bool debug, + bool famos, + int maxNrSamples, + int nbMaxXtals, + bool TPinfoPrintout); virtual ~EcalFenixStrip(); private: @@ -37,10 +45,12 @@ class EcalFenixStrip { bool debug_; bool famos_; int nbMaxXtals_; + bool tpInfoPrintout_; std::vector linearizer_; EcalFenixAmplitudeFilter *amplitude_filter_; + EcalFenixOddAmplitudeFilter *oddAmplitude_filter_; EcalFenixPeakFinder *peak_finder_; @@ -55,8 +65,15 @@ class EcalFenixStrip { // data formats for each event std::vector> lin_out_; std::vector add_out_; - std::vector filt_out_; - std::vector peak_out_; + + // Data formats for even filter. Up to the adder only 1 path, then splitted. + std::vector even_filt_out_; + std::vector even_peak_out_; + + // Data formats for odd filter, as data path is duplicated for odd filter + std::vector odd_filt_out_; + std::vector odd_peak_out_; + std::vector format_out_; std::vector fgvb_out_; std::vector fgvb_out_temp_; @@ -65,10 +82,13 @@ class EcalFenixStrip { const EcalTPGLinearizationConst *ecaltpLin_; const EcalTPGWeightIdMap *ecaltpgWeightMap_; const EcalTPGWeightGroup *ecaltpgWeightGroup_; + const EcalTPGOddWeightIdMap *ecaltpgOddWeightMap_; + const EcalTPGOddWeightGroup *ecaltpgOddWeightGroup_; const EcalTPGSlidingWindow *ecaltpgSlidW_; const EcalTPGFineGrainStripEE *ecaltpgFgStripEE_; const EcalTPGCrystalStatus *ecaltpgBadX_; const EcalTPGStripStatus *ecaltpgStripStatus_; + const EcalTPGTPMode *ecaltpgTPMode_; bool identif_; @@ -77,21 +97,42 @@ class EcalFenixStrip { const EcalTPGLinearizationConst *ecaltpLin, const EcalTPGWeightIdMap *ecaltpgWeightMap, const EcalTPGWeightGroup *ecaltpgWeightGroup, + const EcalTPGOddWeightIdMap *ecaltpgOddWeightMap, + const EcalTPGOddWeightGroup *ecaltpgOddWeightGroup, const EcalTPGSlidingWindow *ecaltpgSlidW, const EcalTPGFineGrainStripEE *ecaltpgFgStripEE, const EcalTPGCrystalStatus *ecaltpgBadX, - const EcalTPGStripStatus *ecaltpgStripStatus) { + const EcalTPGStripStatus *ecaltpgStripStatus, + const EcalTPGTPMode *ecaltpgTPMode) { ecaltpPed_ = ecaltpPed; ecaltpLin_ = ecaltpLin; ecaltpgWeightMap_ = ecaltpgWeightMap; ecaltpgWeightGroup_ = ecaltpgWeightGroup; + ecaltpgOddWeightMap_ = ecaltpgOddWeightMap; + ecaltpgOddWeightGroup_ = ecaltpgOddWeightGroup; ecaltpgSlidW_ = ecaltpgSlidW; ecaltpgFgStripEE_ = ecaltpgFgStripEE; ecaltpgBadX_ = ecaltpgBadX; ecaltpgStripStatus_ = ecaltpgStripStatus; + ecaltpgTPMode_ = ecaltpgTPMode; } // main methods + void process(std::vector &samples, int nrXtals, std::vector &out); + void process(std::vector &samples, int nrXtals, std::vector &out); + + template + void process_part1(int identif, + std::vector &df, + int nrXtals, + uint32_t stripid, + const EcalTPGPedestals *ecaltpPed, + const EcalTPGLinearizationConst *ecaltpLin, + const EcalTPGWeightIdMap *ecaltpgWeightMap, + const EcalTPGWeightGroup *ecaltpgWeightGroup, + const EcalTPGOddWeightIdMap *ecaltpgOddWeightMap, + const EcalTPGOddWeightGroup *ecaltpgOddWeightGroup, + const EcalTPGCrystalStatus *ecaltpBadX); // process method is splitted in 2 parts: // the first one is overloaded, the same except input // the second part is slightly different for barrel/endcap @@ -108,7 +149,8 @@ class EcalFenixStrip { EcalFenixLinearizer *getLinearizer(int i) const { return linearizer_[i]; } EcalFenixEtStrip *getAdder() const { return adder_; } - EcalFenixAmplitudeFilter *getFilter() const { return amplitude_filter_; } + EcalFenixAmplitudeFilter *getEvenFilter() const { return amplitude_filter_; } + EcalFenixOddAmplitudeFilter *getOddFilter() const { return oddAmplitude_filter_; } EcalFenixPeakFinder *getPeakFinder() const { return peak_finder_; } EcalFenixStripFormatEB *getFormatterEB() const { return fenixFormatterEB_; } @@ -118,159 +160,5 @@ class EcalFenixStrip { void setbadStripMissing(bool flag) { identif_ = flag; } bool getbadStripMissing() const { return identif_; } - - // ========================= implementations - // ============================================================== - void process(std::vector &samples, int nrXtals, std::vector &out) { - // now call processing - if (samples.empty()) { - std::cout << " Warning: 0 size vector found in EcalFenixStripProcess!!!!!" << std::endl; - return; - } - const EcalTriggerElectronicsId elId = theMapping_->getTriggerElectronicsId(samples[0].id()); - uint32_t stripid = elId.rawId() & 0xfffffff8; // from Pascal - - identif_ = getFGVB()->getMissedStripFlag(); - - process_part1(identif_, - samples, - nrXtals, - stripid, - ecaltpPed_, - ecaltpLin_, - ecaltpgWeightMap_, - ecaltpgWeightGroup_, - ecaltpgBadX_); // templated part - process_part2_barrel(stripid, ecaltpgSlidW_, - ecaltpgFgStripEE_); // part different for barrel/endcap - out = format_out_; - } - - void process(std::vector &samples, int nrXtals, std::vector &out) { - // now call processing - if (samples.empty()) { - std::cout << " Warning: 0 size vector found in EcalFenixStripProcess!!!!!" << std::endl; - return; - } - const EcalTriggerElectronicsId elId = theMapping_->getTriggerElectronicsId(samples[0].id()); - uint32_t stripid = elId.rawId() & 0xfffffff8; // from Pascal - - identif_ = getFGVB()->getMissedStripFlag(); - - process_part1(identif_, - samples, - nrXtals, - stripid, - ecaltpPed_, - ecaltpLin_, - ecaltpgWeightMap_, - ecaltpgWeightGroup_, - ecaltpgBadX_); // templated part - process_part2_endcap(stripid, ecaltpgSlidW_, ecaltpgFgStripEE_, ecaltpgStripStatus_); - out = format_out_; // FIXME: timing - return; - } - - template - void process_part1(int identif, - std::vector &df, - int nrXtals, - uint32_t stripid, - const EcalTPGPedestals *ecaltpPed, - const EcalTPGLinearizationConst *ecaltpLin, - const EcalTPGWeightIdMap *ecaltpgWeightMap, - const EcalTPGWeightGroup *ecaltpgWeightGroup, - const EcalTPGCrystalStatus *ecaltpBadX) { - if (debug_) - std::cout << "\n\nEcalFenixStrip input is a vector of size: " << nrXtals << std::endl; - - // loop over crystals - for (int cryst = 0; cryst < nrXtals; cryst++) { - if (debug_) { - std::cout << std::endl; - std::cout << "cryst= " << cryst << " EBDataFrame/EEDataFrame is: " << std::endl; - for (int i = 0; i < df[cryst].size(); i++) { - std::cout << " " << std::dec << df[cryst][i].adc(); - } - std::cout << std::endl; - } - // call linearizer - this->getLinearizer(cryst)->setParameters(df[cryst].id().rawId(), ecaltpPed, ecaltpLin, ecaltpBadX); - this->getLinearizer(cryst)->process(df[cryst], lin_out_[cryst]); - } - - if (debug_) { - std::cout << "output of linearizer is a vector of size: " << std::dec << lin_out_.size() << " of which used " - << nrXtals << std::endl; - for (int ix = 0; ix < nrXtals; ix++) { - std::cout << "cryst: " << ix << " value : " << std::dec << std::endl; - std::cout << " lin_out[ix].size()= " << std::dec << lin_out_[ix].size() << std::endl; - for (unsigned int i = 0; i < lin_out_[ix].size(); i++) { - std::cout << " " << std::dec << (lin_out_[ix])[i]; - } - std::cout << std::endl; - } - - std::cout << std::endl; - } - - // Now call the sFGVB - this is common between EB and EE! - getFGVB()->setParameters(identif, stripid, ecaltpgFgStripEE_); - getFGVB()->process(lin_out_, fgvb_out_temp_); - - if (debug_) { - std::cout << "output of strip fgvb is a vector of size: " << std::dec << fgvb_out_temp_.size() << std::endl; - for (unsigned int i = 0; i < fgvb_out_temp_.size(); i++) { - std::cout << " " << std::dec << (fgvb_out_temp_[i]); - } - std::cout << std::endl; - } - - // call adder - this->getAdder()->process(lin_out_, nrXtals, add_out_); // add_out is of size SIZEMAX=maxNrSamples - - if (debug_) { - std::cout << "output of adder is a vector of size: " << std::dec << add_out_.size() << std::endl; - for (unsigned int ix = 0; ix < add_out_.size(); ix++) { - std::cout << "cryst: " << ix << " value : " << std::dec << add_out_[ix] << std::endl; - } - std::cout << std::endl; - } - - if (famos_) { - filt_out_[0] = add_out_[0]; - peak_out_[0] = add_out_[0]; - return; - } else { - // call amplitudefilter - this->getFilter()->setParameters(stripid, ecaltpgWeightMap, ecaltpgWeightGroup); - this->getFilter()->process(add_out_, filt_out_, fgvb_out_temp_, fgvb_out_); - - if (debug_) { - std::cout << "output of filter is a vector of size: " << std::dec << filt_out_.size() << std::endl; - for (unsigned int ix = 0; ix < filt_out_.size(); ix++) { - std::cout << "cryst: " << ix << " value : " << std::dec << filt_out_[ix] << std::endl; - } - std::cout << std::endl; - - std::cout << "output of sfgvb after filter is a vector of size: " << std::dec << fgvb_out_.size() << std::endl; - for (unsigned int ix = 0; ix < fgvb_out_.size(); ix++) { - std::cout << "cryst: " << ix << " value : " << std::dec << fgvb_out_[ix] << std::endl; - } - std::cout << std::endl; - } - - // call peakfinder - this->getPeakFinder()->process(filt_out_, peak_out_); - if (debug_) { - std::cout << "output of peakfinder is a vector of size: " << peak_out_.size() << std::endl; - for (unsigned int ix = 0; ix < peak_out_.size(); ix++) { - std::cout << "cryst: " << ix << " value : " << peak_out_[ix] << std::endl; - } - std::cout << std::endl; - } - return; - } - } }; #endif diff --git a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixStripFgvbEE.h b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixStripFgvbEE.h index 02e45b34db240..d5fc4a575a355 100644 --- a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixStripFgvbEE.h +++ b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixStripFgvbEE.h @@ -1,5 +1,5 @@ -#ifndef ECAL_FENIXSTRIP_FGVB_EE_H -#define ECAL_FENIXSTRIP_FGVB_EE_H +#ifndef SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXSTRIPFGVBEE_H +#define SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXSTRIPFGVBEE_H #include #include diff --git a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixStripFormatEB.h b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixStripFormatEB.h index 7d39c01928c22..64b2302d1d0dc 100644 --- a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixStripFormatEB.h +++ b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixStripFormatEB.h @@ -1,10 +1,11 @@ -#ifndef ECAL_FENIX_STRIP_FORMAT_EB_H -#define ECAL_FENIX_STRIP_FORMAT_EB_H +#ifndef SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXSTRIPFORMATEB_H +#define SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXSTRIPFORMATEB_H #include #include class EcalTPGSlidingWindow; +class EcalTPGTPMode; /** \class EcalFenixStripFormatEB @@ -18,18 +19,26 @@ class EcalTPGSlidingWindow; class EcalFenixStripFormatEB { private: int inputsFGVB_; - int inputPeak_; - int input_; + int inputEvenPeak_; + int inputOddPeak_; + int input_even_; + int input_odd_; uint32_t shift_; + const EcalTPGTPMode *ecaltpgTPMode_; // int buffer_; - int setInput(int input, int inputPeak, int inputsFGVB); + int setInput(int input_even, int inputEvenPeak, int input_odd, int inputOddPeak, int inputsFGVB); int process(); public: EcalFenixStripFormatEB(); virtual ~EcalFenixStripFormatEB(); - virtual void process(std::vector &, std::vector &, std::vector &, std::vector &); - void setParameters(uint32_t &, const EcalTPGSlidingWindow *&); + virtual void process(std::vector &sFGVBout, + std::vector &peakout_even, + std::vector &filtout_even, + std::vector &peakout_odd, + std::vector &filtout_odd, + std::vector &output); + void setParameters(uint32_t &, const EcalTPGSlidingWindow *&, const EcalTPGTPMode *); }; #endif diff --git a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixStripFormatEE.h b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixStripFormatEE.h index 7586fe1659024..ee050c418aaf2 100644 --- a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixStripFormatEE.h +++ b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixStripFormatEE.h @@ -1,11 +1,12 @@ -#ifndef ECAL_FENIX_STRIP_FORMAT_EE_H -#define ECAL_FENIX_STRIP_FORMAT_EE_H +#ifndef SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXSTRIPFORMATEE_H +#define SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXSTRIPFORMATEE_H #include #include class EcalTPGSlidingWindow; class EcalTPGStripStatus; +class EcalTPGTPMode; /** \class EcalFenixStripFormatEE @@ -18,21 +19,29 @@ class EcalTPGStripStatus; class EcalFenixStripFormatEE { private: - int inputPeak_; - int input_; + int inputEvenPeak_; + int inputOddPeak_; + int input_even_; + int input_odd_; uint32_t shift_; int fgvb_; uint16_t stripStatus_; + const EcalTPGTPMode *ecaltpgTPMode_; - int setInput(int input, int inputPeak, int fgvb); + int setInput(int input_even, int inputEvenPeak, int input_odd, int inputOddPeak, int fgvb); int process(); public: EcalFenixStripFormatEE(); virtual ~EcalFenixStripFormatEE(); - virtual void process(std::vector &, std::vector &, std::vector &, std::vector &); - void setParameters(uint32_t id, const EcalTPGSlidingWindow *&, const EcalTPGStripStatus *); + virtual void process(std::vector &fgvbout, + std::vector &peakout_even, + std::vector &filtout_even, + std::vector &peakout_odd, + std::vector &filtout_odd, + std::vector &output); + void setParameters(uint32_t id, const EcalTPGSlidingWindow *&, const EcalTPGStripStatus *, const EcalTPGTPMode *); }; #endif diff --git a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixTcp.h b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixTcp.h index f61a82c1401b8..3cb4ca94c9888 100644 --- a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixTcp.h +++ b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixTcp.h @@ -1,12 +1,13 @@ -#ifndef ECAL_FENIX_TCP_H -#define ECAL_FENIX_TCP_H +#ifndef SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXTCP_H +#define SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXTCP_H #include #include #include #include #include -#include +#include +#include #include #include @@ -23,6 +24,7 @@ class EcalTPGFineGrainEBIdMap; class EcalTPGFineGrainTowerEE; class EcalTrigTowerDetId; class EcalTPGTowerStatus; +class EcalTPGTPMode; /** \class EcalFenixTcp @@ -31,8 +33,8 @@ class EcalTPGTowerStatus; class EcalFenixTcp { private: bool debug_; - int nbMaxStrips_; + bool tpInfoPrintout_; EcalFenixMaxof2 *maxOf2_; std::vector bypasslin_; @@ -41,11 +43,13 @@ class EcalFenixTcp { EcalFenixTcpFgvbEE *fgvbEE_; EcalFenixTcpsFgvbEB *sfgvbEB_; - EcalFenixTcpFormat *formatter_; + EcalFenixTcpFormatEB *formatter_EB_; + EcalFenixTcpFormatEE *formatter_EE_; // permanent data structures std::vector> bypasslin_out_; - std::vector adder_out_; + std::vector adder_even_out_; + std::vector adder_odd_out_; std::vector maxOf2_out_; std::vector fgvb_out_; std::vector strip_fgvb_out_; @@ -58,7 +62,8 @@ class EcalFenixTcp { const EcalTPGFineGrainEBIdMap *ecaltpgFineGrainEB, const EcalTPGFineGrainTowerEE *ecaltpgFineGrainTowerEE, const EcalTPGTowerStatus *ecaltpgBadTT, - const EcalTPGSpike *ecaltpgSpike) { + const EcalTPGSpike *ecaltpgSpike, + const EcalTPGTPMode *ecaltpgTPMode) { ecaltpgFgEBGroup_ = ecaltpgFgEBGroup; ecaltpgLutGroup_ = ecaltpgLutGroup; ecaltpgLut_ = ecaltpgLut; @@ -66,10 +71,12 @@ class EcalFenixTcp { ecaltpgFineGrainTowerEE_ = ecaltpgFineGrainTowerEE; ecaltpgBadTT_ = ecaltpgBadTT; ecaltpgSpike_ = ecaltpgSpike; + ecaltpgTPMode_ = ecaltpgTPMode; } // end temporary, for timing tests - EcalFenixTcp(bool tcpFormat, bool debug, bool famos, int binOfMax, int maxNrSamples, int nbMaxStrips); + EcalFenixTcp( + bool tcpFormat, bool debug, bool famos, int binOfMax, int maxNrSamples, int nbMaxStrips, bool TPinfoPrintout); virtual ~EcalFenixTcp(); void process(std::vector &bid, // dummy argument for template call @@ -87,11 +94,12 @@ class EcalFenixTcp { bool isInInnerRings, EcalTrigTowerDetId thisTower); - void process_part1(std::vector> &tpframetow, int nStr, int bitMask); + void process_part1(std::vector> &tpframetow, int nStr, int bitMask, int bitOddEven); void process_part2_barrel(std::vector> &, int nStr, int bitMask, + int bitOddEven, const EcalTPGFineGrainEBGroup *ecaltpgFgEBGroup, const EcalTPGLutGroup *ecaltpgLutGroup, const EcalTPGLutIdMap *ecaltpgLut, @@ -105,6 +113,7 @@ class EcalFenixTcp { void process_part2_endcap(std::vector> &, int nStr, int bitMask, + int bitOddEven, const EcalTPGLutGroup *ecaltpgLutGroup, const EcalTPGLutIdMap *ecaltpgLut, const EcalTPGFineGrainTowerEE *ecaltpgFineGrainTowerEE, @@ -117,7 +126,8 @@ class EcalFenixTcp { EcalFenixBypassLin *getBypasslin(int i) const { return bypasslin_[i]; } EcalFenixEtTot *getAdder() const { return adder_; } EcalFenixMaxof2 *getMaxOf2() const { return maxOf2_; } - EcalFenixTcpFormat *getFormatter() const { return formatter_; } + EcalFenixTcpFormatEB *getFormatterEB() const { return formatter_EB_; } + EcalFenixTcpFormatEE *getFormatterEE() const { return formatter_EE_; } EcalFenixFgvbEB *getFGVBEB() const { return fgvbEB_; } EcalFenixTcpFgvbEE *getFGVBEE() const { return fgvbEE_; } EcalFenixTcpsFgvbEB *getsFGVBEB() const { return sfgvbEB_; } @@ -129,6 +139,7 @@ class EcalFenixTcp { const EcalTPGFineGrainTowerEE *ecaltpgFineGrainTowerEE_; const EcalTPGTowerStatus *ecaltpgBadTT_; const EcalTPGSpike *ecaltpgSpike_; + const EcalTPGTPMode *ecaltpgTPMode_; }; #endif diff --git a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixTcpFgvbEE.h b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixTcpFgvbEE.h index a86330dd23a08..cd4ffca87b15b 100644 --- a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixTcpFgvbEE.h +++ b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixTcpFgvbEE.h @@ -1,5 +1,5 @@ -#ifndef ECAL_FENIXTCP_FGVB_EE_H -#define ECAL_FENIXTCP_FGVB_EE_H +#ifndef SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXTCPFGVBEE_H +#define SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXTCPFGVBEE_H #include #include diff --git a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixTcpFormatEB.h b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixTcpFormatEB.h new file mode 100644 index 0000000000000..21076c98d2831 --- /dev/null +++ b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixTcpFormatEB.h @@ -0,0 +1,58 @@ +#ifndef SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXTCPFORMATEB_H +#define SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXTCPFORMATEB_H + +#include "DataFormats/EcalDigi/interface/EcalTriggerPrimitiveSample.h" +#include + +class EcalTPGLutGroup; +class EcalTPGLutIdMap; +class EcalTPGTowerStatus; +class EcalTPGSpike; +class EcalTPGTPMode; + +/** + \class EcalFenixStripFormat + \brief Formatting for Fenix Tcp EB + * input 10 bits from Ettot + * 1 bit from fgvb / ODD>even flag + * 3 bits TriggerTowerFlag + * output: 16 bits + * simple formatting + * + * Using even_sum and odd_sum as inputs. Deciding the option with TPmode options + */ +class EcalFenixTcpFormatEB { +public: + EcalFenixTcpFormatEB(bool tccFormat, bool debug, bool famos, int binOfMax); + virtual ~EcalFenixTcpFormatEB(); + virtual std::vector process(const std::vector &, const std::vector &) { + std::vector v; + return v; + } + void process(std::vector &Et_even_sum, + std::vector &Et_odd_sum, + std::vector &fgvb, + std::vector &sfgvb, + int eTTotShift, + std::vector &out, + std::vector &outTcc); + void setParameters(uint32_t towid, + const EcalTPGLutGroup *ecaltpgLutGroup, + const EcalTPGLutIdMap *ecaltpgLut, + const EcalTPGTowerStatus *ecaltpgbadTT, + const EcalTPGSpike *ecaltpgSpike, + const EcalTPGTPMode *ecaltpgTPMode); + +private: + const unsigned int *lut_; + const uint16_t *badTTStatus_; + uint16_t status_; + bool tcpFormat_; + bool debug_; + bool famos_; + unsigned int binOfMax_; + uint16_t spikeZeroThresh_; + const EcalTPGTPMode *ecaltpgTPMode_; +}; + +#endif diff --git a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixTcpFormat.h b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixTcpFormatEE.h similarity index 66% rename from SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixTcpFormat.h rename to SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixTcpFormatEE.h index ce96d16d213f5..d608d663c619d 100644 --- a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixTcpFormat.h +++ b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalFenixTcpFormatEE.h @@ -1,5 +1,5 @@ -#ifndef ECAL_FENIX_TCP_FORMAT_H -#define ECAL_FENIX_TCP_FORMAT_H +#ifndef SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXTCPFORMATEE_H +#define SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALFENIXTCPFORMATEE_H #include "DataFormats/EcalDigi/interface/EcalTriggerPrimitiveSample.h" #include @@ -8,10 +8,11 @@ class EcalTPGLutGroup; class EcalTPGLutIdMap; class EcalTPGTowerStatus; class EcalTPGSpike; +class EcalTPGTPMode; /** - \class EcalFenixStripFormat - \brief Formatting for Fenix Tcp + \class EcalFenixStripFormatEE + \brief Formatting for Fenix Tcp EE * input 10 bits from Ettot * 1 bit from fgvb * 3 bits TriggerTowerFlag @@ -19,15 +20,16 @@ class EcalTPGSpike; * simple formatting * */ -class EcalFenixTcpFormat { +class EcalFenixTcpFormatEE { public: - EcalFenixTcpFormat(bool tccFormat, bool debug, bool famos, int binOfMax); - virtual ~EcalFenixTcpFormat(); + EcalFenixTcpFormatEE(bool tccFormat, bool debug, bool famos, int binOfMax); + virtual ~EcalFenixTcpFormatEE(); virtual std::vector process(const std::vector &, const std::vector &) { std::vector v; return v; } - void process(std::vector &Et, + void process(std::vector &Et_even_sum, + std::vector &Et_odd_sum, std::vector &fgvb, std::vector &sfgvb, int eTTotShift, @@ -38,7 +40,8 @@ class EcalFenixTcpFormat { const EcalTPGLutGroup *ecaltpgLutGroup, const EcalTPGLutIdMap *ecaltpgLut, const EcalTPGTowerStatus *ecaltpgbadTT, - const EcalTPGSpike *ecaltpgSpike); + const EcalTPGSpike *ecaltpgSpike, + const EcalTPGTPMode *ecaltpgTPMode); private: const unsigned int *lut_; @@ -49,6 +52,7 @@ class EcalFenixTcpFormat { bool famos_; unsigned int binOfMax_; uint16_t spikeZeroThresh_; + const EcalTPGTPMode *ecaltpgTPMode_; }; #endif diff --git a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalTrigPrimFunctionalAlgo.h b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalTrigPrimFunctionalAlgo.h index e7952eea1a762..42141f3eade80 100644 --- a/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalTrigPrimFunctionalAlgo.h +++ b/SimCalorimetry/EcalTrigPrimAlgos/interface/EcalTrigPrimFunctionalAlgo.h @@ -1,5 +1,5 @@ -#ifndef EcalTrigPrimFunctionalAlgo_h -#define EcalTrigPrimFunctionalAlgo_h +#ifndef SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALTRIGPRIMFUNCTIONALALGO_h +#define SIMCALORIMETRY_ECALTRIGPRIMALGOS_ECALTRIGPRIMFUNCTIONALALGO_h /** \class EcalTrigPrimFunctionalAlgo * * EcalTrigPrimFunctionalAlgo is the main algorithm class for TPG @@ -7,7 +7,7 @@ * Structure is as close as possible to electronics * * - * \author Ursula Berthon, Stephanie Baffioni, LLR Palaiseau + * \author Ursula Berthon, Stephanie Baffioni, LLR Palaiseau * * \version 1st Version may 2006 * \version 2nd Version jul 2006 @@ -31,6 +31,7 @@ #include #include +#include /** Main Algo for Ecal trigger primitives. */ @@ -51,11 +52,16 @@ class EcalTrigPrimFunctionalAlgo { int binofmax, bool tcpFormat, bool debug, - bool famos); + bool famos, + bool TPinfoPrintout); //barrel only - explicit EcalTrigPrimFunctionalAlgo( - const EcalElectronicsMapping *theMapping, int binofmax, bool tcpFormat, bool debug, bool famos); + explicit EcalTrigPrimFunctionalAlgo(const EcalElectronicsMapping *theMapping, + int binofmax, + bool tcpFormat, + bool debug, + bool famos, + bool TPinfoPrintout); virtual ~EcalTrigPrimFunctionalAlgo(); @@ -74,17 +80,23 @@ class EcalTrigPrimFunctionalAlgo { const EcalTPGSlidingWindow *ecaltpgSlidW, const EcalTPGWeightIdMap *ecaltpgWeightMap, const EcalTPGWeightGroup *ecaltpgWeightGroup, + const EcalTPGOddWeightIdMap *ecaltpgOddWeightMap, + const EcalTPGOddWeightGroup *ecaltpgOddWeightGroup, const EcalTPGFineGrainStripEE *ecaltpgFgStripEE, const EcalTPGCrystalStatus *ecaltpgBadX, - const EcalTPGStripStatus *ecaltpgStripStatus) { + const EcalTPGStripStatus *ecaltpgStripStatus, + const EcalTPGTPMode *ecaltpgTPMode) { estrip_->setPointers(ecaltpPed, ecaltpLin, ecaltpgWeightMap, ecaltpgWeightGroup, + ecaltpgOddWeightMap, + ecaltpgOddWeightGroup, ecaltpgSlidW, ecaltpgFgStripEE, ecaltpgBadX, - ecaltpgStripStatus); + ecaltpgStripStatus, + ecaltpgTPMode); } void setPointers2(const EcalTPGFineGrainEBGroup *ecaltpgFgEBGroup, const EcalTPGLutGroup *ecaltpgLutGroup, @@ -92,14 +104,16 @@ class EcalTrigPrimFunctionalAlgo { const EcalTPGFineGrainEBIdMap *ecaltpgFineGrainEB, const EcalTPGFineGrainTowerEE *ecaltpgFineGrainTowerEE, const EcalTPGTowerStatus *ecaltpgBadTT, - const EcalTPGSpike *ecaltpgSpike) { + const EcalTPGSpike *ecaltpgSpike, + const EcalTPGTPMode *ecaltpgTPMode) { etcp_->setPointers(ecaltpgFgEBGroup, ecaltpgLutGroup, ecaltpgLut, ecaltpgFineGrainEB, ecaltpgFineGrainTowerEE, ecaltpgBadTT, - ecaltpgSpike); + ecaltpgSpike, + ecaltpgTPMode); } private: @@ -139,6 +153,7 @@ class EcalTrigPrimFunctionalAlgo { bool barrelOnly_; bool debug_; bool famos_; + bool tpInfoPrintout_; static const unsigned int nrSamples_; // nr samples to write, should not be changed since by // convention the size means that it is coming from simulation @@ -184,6 +199,10 @@ void EcalTrigPrimFunctionalAlgo::run_part2( estrip_->getFGVB()->setbadStripMissing(false); for (int itow = 0; itow < nrTowers_; ++itow) { + if (tpInfoPrintout_) { + std::cout << "+++++++++++++++++++++++++++++++++++++++++++++++++" << std::endl; + std::cout << "on Tower " << itow << " of " << nrTowers_ << std::endl; + } int index = hitTowers_[itow].first; const EcalTrigTowerDetId &thisTower = hitTowers_[itow].second; @@ -194,6 +213,10 @@ void EcalTrigPrimFunctionalAlgo::run_part2( // size; nr of crystals/strip if ((towerMap[index])[i].first > 0) { + if (tpInfoPrintout_) { + std::cout << "-------------------------------------------------" << std::endl; + std::cout << "on Strip index " << i << std::endl; + } estrip_->process(df, (towerMap[index])[i].first, striptp_[nstr++]); } } // loop over strips in one tower diff --git a/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixAmplitudeFilter.cc b/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixAmplitudeFilter.cc index 7fbddbc3b82ae..ffcc959b66834 100644 --- a/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixAmplitudeFilter.cc +++ b/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixAmplitudeFilter.cc @@ -5,13 +5,14 @@ #include #include -EcalFenixAmplitudeFilter::EcalFenixAmplitudeFilter() : inputsAlreadyIn_(0), shift_(6) {} +EcalFenixAmplitudeFilter::EcalFenixAmplitudeFilter(bool tpInfoPrintout) + : inputsAlreadyIn_(0), stripid_{0}, shift_(6), tpInfoPrintout_(tpInfoPrintout) {} EcalFenixAmplitudeFilter::~EcalFenixAmplitudeFilter() {} int EcalFenixAmplitudeFilter::setInput(int input, int fgvb) { if (input > 0X3FFFF) { - std::cout << "ERROR IN INPUT OF AMPLITUDE FILTER" << std::endl; + edm::LogError("EcalTPG") << "ERROR IN INPUT OF EVEN AMPLITUDE FILTER"; return -1; } if (inputsAlreadyIn_ < 5) { @@ -36,13 +37,16 @@ void EcalFenixAmplitudeFilter::process(std::vector &addout, // test inputsAlreadyIn_ = 0; for (unsigned int i = 0; i < 5; i++) { - buffer_[i] = 0; // FIXME: 5 + buffer_[i] = 0; fgvbBuffer_[i] = 0; } - // test end for (unsigned int i = 0; i < addout.size(); i++) { + // Only save TP info for Clock i >= 4 (from 0-9) because first 5 digis required to produce first ET value + if (i >= 4 && tpInfoPrintout_) { + std::cout << i << std::dec; + } setInput(addout[i], fgvbIn[i]); process(); output[i] = processedOutput_; @@ -81,11 +85,28 @@ void EcalFenixAmplitudeFilter::process() { output = 0X3FFFF; processedOutput_ = output; processedFgvbOutput_ = fgvbInt; + + if (tpInfoPrintout_) { + std::cout << " " << stripid_; + for (int i = 0; i < 5; i++) { + std::cout << " " << weights_[i] << std::dec; + } + for (int i = 0; i < 5; i++) { + std::cout << " " << weights_[i] / 64.0 << std::dec; + } + for (int i = 0; i < 5; i++) { + std::cout << " " << buffer_[i] << std::dec; + } // digis + std::cout << " --> output: " << output; + std::cout << " EVEN"; + std::cout << std::endl; + } } void EcalFenixAmplitudeFilter::setParameters(uint32_t raw, const EcalTPGWeightIdMap *ecaltpgWeightMap, const EcalTPGWeightGroup *ecaltpgWeightGroup) { + stripid_ = raw; uint32_t params_[5]; const EcalTPGGroups::EcalTPGGroupsMap &groupmap = ecaltpgWeightGroup->getMap(); EcalTPGGroups::EcalTPGGroupsMapItr it = groupmap.find(raw); @@ -95,18 +116,9 @@ void EcalFenixAmplitudeFilter::setParameters(uint32_t raw, EcalTPGWeightIdMap::EcalTPGWeightMapItr itw = weightmap.find(weightid); (*itw).second.getValues(params_[0], params_[1], params_[2], params_[3], params_[4]); - // we have to transform negative coded in 7 bits into negative coded in 32 - // bits maybe this should go into the getValue method?? - // std::cout << "peak flag settings" << std::endl; for (int i = 0; i < 5; ++i) { weights_[i] = (params_[i] & 0x40) ? (int)(params_[i] | 0xffffffc0) : (int)(params_[i]); - - // Construct the peakFlag for sFGVB processing - // peakFlag_[i] = ((params_[i] & 0x80) > 0x0) ? 1 : 0; - // std::cout << " " << params_[i] << std::endl; - // std::cout << " " << peakFlag_[i] << std::endl; } - // std::cout << std::endl; } else edm::LogWarning("EcalTPG") << " could not find EcalTPGGroupsMap entry for " << raw; } diff --git a/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixEtTot.cc b/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixEtTot.cc index d70968e746650..4e7d5367c0d73 100644 --- a/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixEtTot.cc +++ b/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixEtTot.cc @@ -13,18 +13,28 @@ std::vector EcalFenixEtTot::process(const std::vector &calod void EcalFenixEtTot::process(std::vector> &bypasslinout, int nStr, int bitMask, - std::vector &output) { - for (unsigned int i = 0; i < output.size(); i++) { - output[i] = 0; + int bitOddEven, + std::vector &output_even, + std::vector &output_odd) { + for (unsigned int i = 0; i < output_even.size(); i++) { + output_even[i] = 0; + output_odd[i] = 0; } int mask = (1 << bitMask) - 1; for (int istrip = 0; istrip < nStr; istrip++) { for (unsigned int i = 0; i < bypasslinout[istrip].size(); i++) { - output[i] += (bypasslinout[istrip][i] & mask); // fix bug inn case of EE: MSB are set for FG, so + int output = (bypasslinout[istrip][i] & mask); // fix bug inn case of EE: MSB are set for FG, so // need to apply mask in summation. - if (output[i] > mask) - output[i] = mask; + if (output > mask) + output = mask; + // Check the oddeven flag to assign the amplitude to the correct sum + // If the feature is off in the strip fenix the bit will be always 0 and only the even sum will be summed + if ((bypasslinout[istrip][i] >> bitOddEven) & 1) { + output_odd[i] += output; + } else { + output_even[i] += output; + } } } return; diff --git a/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixMaxof2.cc b/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixMaxof2.cc index ca2e74041da23..0b83b8ba99d05 100644 --- a/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixMaxof2.cc +++ b/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixMaxof2.cc @@ -10,23 +10,34 @@ EcalFenixMaxof2::EcalFenixMaxof2(int maxNrSamples, int nbMaxStrips) : nbMaxStrip EcalFenixMaxof2::~EcalFenixMaxof2() {} -void EcalFenixMaxof2::process(std::vector> &bypasslinout, - int nstrip, - int bitMask, - std::vector &output) { +void EcalFenixMaxof2::process( + std::vector> &bypasslinout, int nstrip, int bitMask, int bitOddEven, std::vector &output) { int mask = (1 << bitMask) - 1; + bool strip_oddmask[nstrip][output.size()]; + for (int i2strip = 0; i2strip < nstrip - 1; ++i2strip) for (unsigned int i = 0; i < output.size(); i++) sumby2_[i2strip][i] = 0; for (unsigned int i = 0; i < output.size(); i++) output[i] = 0; + // Prepare also the mask of strips to be avoided because of the odd>even energy flag + for (int istrip = 0; istrip < nstrip; ++istrip) { + for (unsigned int i = 0; i < output.size(); i++) { + if ((bypasslinout[istrip][i] >> bitOddEven) & 1) + strip_oddmask[istrip][i] = false; + else + strip_oddmask[istrip][i] = true; + } + } + for (unsigned int i = 0; i < output.size(); i++) { if (nstrip - 1 == 0) { - output[i] = ((bypasslinout[0][i]) & mask); + output[i] = strip_oddmask[0][i] * ((bypasslinout[0][i]) & mask); } else { for (int i2strip = 0; i2strip < nstrip - 1; ++i2strip) { - sumby2_[i2strip][i] = ((bypasslinout[i2strip][i]) & mask) + ((bypasslinout[i2strip + 1][i]) & mask); + sumby2_[i2strip][i] = strip_oddmask[i2strip][i] * ((bypasslinout[i2strip][i]) & mask) + + strip_oddmask[i2strip + 1][i] * ((bypasslinout[i2strip + 1][i]) & mask); if (sumby2_[i2strip][i] > output[i]) { output[i] = sumby2_[i2strip][i]; } diff --git a/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixOddAmplitudeFilter.cc b/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixOddAmplitudeFilter.cc new file mode 100644 index 0000000000000..14bc96354747e --- /dev/null +++ b/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixOddAmplitudeFilter.cc @@ -0,0 +1,109 @@ +#include "CondFormats/EcalObjects/interface/EcalTPGGroups.h" +#include "CondFormats/EcalObjects/interface/EcalTPGOddWeightGroup.h" +#include "CondFormats/EcalObjects/interface/EcalTPGOddWeightIdMap.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include +#include +#include +#include + +EcalFenixOddAmplitudeFilter::EcalFenixOddAmplitudeFilter(bool tpInfoPrintout) + : inputsAlreadyIn_(0), stripid_{0}, shift_(6), tpInfoPrintout_(tpInfoPrintout) {} + +EcalFenixOddAmplitudeFilter::~EcalFenixOddAmplitudeFilter() {} + +int EcalFenixOddAmplitudeFilter::setInput(int input) { + if (input > 0X3FFFF) { + edm::LogError("EcalTPG") << "ERROR IN INPUT OF ODD AMPLITUDE FILTER"; + return -1; + } + if (inputsAlreadyIn_ < 5) { + buffer_[inputsAlreadyIn_] = input; + inputsAlreadyIn_++; + } else { + for (int i = 0; i < 4; i++) { + buffer_[i] = buffer_[i + 1]; + } + buffer_[4] = input; + } + return 1; +} + +void EcalFenixOddAmplitudeFilter::process(std::vector &addout, std::vector &output) { + inputsAlreadyIn_ = 0; + for (unsigned int i = 0; i < 5; i++) { + buffer_[i] = 0; + } + + for (unsigned int i = 0; i < addout.size(); i++) { + // Only save TP info for Clock i >= 4 (from 0-9) because first 5 digis required to produce first ET value + if (i >= 4 && tpInfoPrintout_) { + std::cout << i << std::dec; + } + setInput(addout[i]); + process(); + output[i] = processedOutput_; + } + // shift the result by 1! + for (unsigned int i = 0; i < (output.size()); i++) { + if (i != output.size() - 1) { + output[i] = output[i + 1]; + } else { + output[i] = 0; + } + } + return; +} + +void EcalFenixOddAmplitudeFilter::process() { + processedOutput_ = 0; + if (inputsAlreadyIn_ < 5) + return; + int output = 0; + + for (int i = 0; i < 5; i++) { + output += (weights_[i] * buffer_[i]) >> shift_; + } + + if (output < 0) + output = 0; + if (output > 0X3FFFF) + output = 0X3FFFF; + processedOutput_ = output; + + if (tpInfoPrintout_) { + std::cout << " " << stripid_; + for (int i = 0; i < 5; i++) { + std::cout << " " << weights_[i] << std::dec; + } + for (int i = 0; i < 5; i++) { + std::cout << " " << weights_[i] / 64.0 << std::dec; + } + for (int i = 0; i < 5; i++) { + std::cout << " " << buffer_[i] << std::dec; + } // Digis + std::cout << " --> output: " << output; + std::cout << " ODD"; + std::cout << std::endl; + } +} + +void EcalFenixOddAmplitudeFilter::setParameters(uint32_t raw, + const EcalTPGOddWeightIdMap *ecaltpgOddWeightMap, + const EcalTPGOddWeightGroup *ecaltpgOddWeightGroup) { + stripid_ = raw; + uint32_t params_[5]; + const EcalTPGGroups::EcalTPGGroupsMap &groupmap = ecaltpgOddWeightGroup->getMap(); + EcalTPGGroups::EcalTPGGroupsMapItr it = groupmap.find(raw); + if (it != groupmap.end()) { + uint32_t weightid = (*it).second; + const EcalTPGOddWeightIdMap::EcalTPGWeightMap &weightmap = ecaltpgOddWeightMap->getMap(); + EcalTPGOddWeightIdMap::EcalTPGWeightMapItr itw = weightmap.find(weightid); + (*itw).second.getValues(params_[0], params_[1], params_[2], params_[3], params_[4]); + + for (int i = 0; i < 5; ++i) { + weights_[i] = (params_[i] & 0x40) ? (int)(params_[i] | 0xffffffc0) : (int)(params_[i]); + } + } else + edm::LogWarning("EcalTPG") << " could not find EcalTPGGroupsMap entry for " << raw; +} diff --git a/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixStrip.cc b/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixStrip.cc index 32667292d7277..a55c64f9dead9 100644 --- a/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixStrip.cc +++ b/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixStrip.cc @@ -2,20 +2,29 @@ #include #include #include +#include +#include "FWCore/MessageLogger/interface/MessageLogger.h" #include "Geometry/EcalMapping/interface/EcalElectronicsMapping.h" #include +#include +#include //------------------------------------------------------------------------------------- -EcalFenixStrip::EcalFenixStrip( - const EcalElectronicsMapping *theMapping, bool debug, bool famos, int maxNrSamples, int nbMaxXtals) - : theMapping_(theMapping), debug_(debug), famos_(famos), nbMaxXtals_(nbMaxXtals) { +EcalFenixStrip::EcalFenixStrip(const EcalElectronicsMapping *theMapping, + bool debug, + bool famos, + int maxNrSamples, + int nbMaxXtals, + bool tpInfoPrintout) + : theMapping_(theMapping), debug_(debug), famos_(famos), nbMaxXtals_(nbMaxXtals), tpInfoPrintout_(tpInfoPrintout) { linearizer_.resize(nbMaxXtals_); for (int i = 0; i < nbMaxXtals_; i++) linearizer_[i] = new EcalFenixLinearizer(famos_); adder_ = new EcalFenixEtStrip(); - amplitude_filter_ = new EcalFenixAmplitudeFilter(); + amplitude_filter_ = new EcalFenixAmplitudeFilter(tpInfoPrintout); + oddAmplitude_filter_ = new EcalFenixOddAmplitudeFilter(tpInfoPrintout); peak_finder_ = new EcalFenixPeakFinder(); fenixFormatterEB_ = new EcalFenixStripFormatEB(); fenixFormatterEE_ = new EcalFenixStripFormatEE(); @@ -28,8 +37,12 @@ EcalFenixStrip::EcalFenixStrip( for (int i = 0; i < 5; i++) lin_out_[i] = v; add_out_.resize(maxNrSamples); - filt_out_.resize(maxNrSamples); - peak_out_.resize(maxNrSamples); + + even_filt_out_.resize(maxNrSamples); + even_peak_out_.resize(maxNrSamples); + odd_filt_out_.resize(maxNrSamples); + odd_peak_out_.resize(maxNrSamples); + format_out_.resize(maxNrSamples); fgvb_out_.resize(maxNrSamples); fgvb_out_temp_.resize(maxNrSamples); @@ -41,12 +54,209 @@ EcalFenixStrip::~EcalFenixStrip() { delete linearizer_[i]; delete adder_; delete amplitude_filter_; + delete oddAmplitude_filter_; delete peak_finder_; delete fenixFormatterEB_; delete fenixFormatterEE_; delete fgvbEE_; } +void EcalFenixStrip::process(std::vector &samples, int nrXtals, std::vector &out) { + // now call processing + if (samples.empty()) { + edm::LogWarning("EcalTPG") << "Warning: 0 size vector found in EcalFenixStripProcess!!!!!"; + return; + } + const EcalTriggerElectronicsId elId = theMapping_->getTriggerElectronicsId(samples[0].id()); + uint32_t stripid = elId.rawId() & 0xfffffff8; // from Pascal + + identif_ = getFGVB()->getMissedStripFlag(); + + process_part1(identif_, + samples, + nrXtals, + stripid, + ecaltpPed_, + ecaltpLin_, + ecaltpgWeightMap_, + ecaltpgWeightGroup_, + ecaltpgOddWeightMap_, + ecaltpgOddWeightGroup_, + ecaltpgBadX_); // templated part + process_part2_barrel(stripid, ecaltpgSlidW_, + ecaltpgFgStripEE_); // part different for barrel/endcap + out = format_out_; +} + +void EcalFenixStrip::process(std::vector &samples, int nrXtals, std::vector &out) { + // now call processing + if (samples.empty()) { + std::cout << " Warning: 0 size vector found in EcalFenixStripProcess!!!!!" << std::endl; + return; + } + const EcalTriggerElectronicsId elId = theMapping_->getTriggerElectronicsId(samples[0].id()); + uint32_t stripid = elId.rawId() & 0xfffffff8; // from Pascal + + identif_ = getFGVB()->getMissedStripFlag(); + + process_part1(identif_, + samples, + nrXtals, + stripid, + ecaltpPed_, + ecaltpLin_, + ecaltpgWeightMap_, + ecaltpgWeightGroup_, + ecaltpgOddWeightMap_, + ecaltpgOddWeightGroup_, + ecaltpgBadX_); // templated part + process_part2_endcap(stripid, ecaltpgSlidW_, ecaltpgFgStripEE_, ecaltpgStripStatus_); + out = format_out_; // FIXME: timing + return; +} + +/* +* strip level processing - part1. +* The linearizer and adder are run only once. +* Then the even and odd filters and peak finder are run looking at the TPmode flag +*/ +template +void EcalFenixStrip::process_part1(int identif, + std::vector &df, + int nrXtals, + uint32_t stripid, + const EcalTPGPedestals *ecaltpPed, + const EcalTPGLinearizationConst *ecaltpLin, + const EcalTPGWeightIdMap *ecaltpgWeightMap, + const EcalTPGWeightGroup *ecaltpgWeightGroup, + const EcalTPGOddWeightIdMap *ecaltpgOddWeightMap, + const EcalTPGOddWeightGroup *ecaltpgOddWeightGroup, + const EcalTPGCrystalStatus *ecaltpBadX) { + if (debug_) { + std::cout << "\n\nEcalFenixStrip input is a vector of size: " << nrXtals << std::endl; + std::cout << " " << std::endl; + std::cout << "ECAL TPG TPMode printout:" << std::endl; + ecaltpgTPMode_->print(std::cout); + } + + // loop over crystals + for (int cryst = 0; cryst < nrXtals; cryst++) { + if (debug_) { + std::cout << std::endl; + std::cout << "crystal " << cryst << " EBDataFrame/EEDataFrame is (ADC counts): " << std::endl; + for (int i = 0; i < df[cryst].size(); i++) { + std::cout << " " << std::dec << df[cryst][i].adc(); + } + std::cout << std::endl; + } + // call linearizer + this->getLinearizer(cryst)->setParameters(df[cryst].id().rawId(), ecaltpPed, ecaltpLin, ecaltpBadX); + this->getLinearizer(cryst)->process(df[cryst], lin_out_[cryst]); + } + + if (debug_) { + std::cout << "output of linearizer is a vector of size: " << std::dec << lin_out_.size() << " of which used " + << nrXtals << std::endl; + for (int ix = 0; ix < nrXtals; ix++) { + std::cout << "cryst: " << ix << " value : " << std::dec << std::endl; + std::cout << " lin_out[ix].size() = " << std::dec << lin_out_[ix].size() << std::endl; + for (unsigned int i = 0; i < lin_out_[ix].size(); i++) { + std::cout << " " << std::dec << (lin_out_[ix])[i]; + } + std::cout << std::endl; + } + std::cout << std::endl; + } + + // Now call the sFGVB - this is common between EB and EE! + getFGVB()->setParameters(identif, stripid, ecaltpgFgStripEE_); + getFGVB()->process(lin_out_, fgvb_out_temp_); + + if (debug_) { + std::cout << "output of strip fgvb is a vector of size: " << std::dec << fgvb_out_temp_.size() << std::endl; + for (unsigned int i = 0; i < fgvb_out_temp_.size(); i++) { + std::cout << " " << std::dec << (fgvb_out_temp_[i]); + } + std::cout << std::endl; + } + // call adder + this->getAdder()->process(lin_out_, nrXtals, add_out_); // add_out is of size SIZEMAX=maxNrSamples + + if (debug_) { + std::cout << "output of adder is a vector of size: " << std::dec << add_out_.size() << std::endl; + for (unsigned int ix = 0; ix < add_out_.size(); ix++) { + std::cout << "Clock: " << ix << " value : " << std::dec << add_out_[ix] << std::endl; + } + std::cout << std::endl; + } + + if (famos_) { + even_filt_out_[0] = add_out_[0]; + even_peak_out_[0] = add_out_[0]; + return; + } else { + // This is where the amplitude filters are called + // the TPmode flag will determine which are called and if the peak finder is called. + // Call even amplitude filter + this->getEvenFilter()->setParameters(stripid, ecaltpgWeightMap, ecaltpgWeightGroup); + this->getEvenFilter()->process(add_out_, even_filt_out_, fgvb_out_temp_, fgvb_out_); + + // Print out even filter ET and sfgvb values + if (debug_) { + std::cout << "output of EVEN filter is a vector of size: " << std::dec << even_filt_out_.size() << std::endl; + for (unsigned int ix = 0; ix < even_filt_out_.size(); ix++) { + std::cout << "Clock: " << ix << " value : " << std::dec << even_filt_out_[ix] << std::endl; + } + std::cout << std::endl; + std::cout << "output of EVEN sfgvb after filter is a vector of size: " << std::dec << fgvb_out_.size() + << std::endl; + for (unsigned int ix = 0; ix < fgvb_out_.size(); ix++) { + std::cout << "Clock: " << ix << " value : " << std::dec << fgvb_out_[ix] << std::endl; + } + std::cout << std::endl; + } + + // Call peak finder on even filter output + this->getPeakFinder()->process(even_filt_out_, even_peak_out_); + + // Print out even filter peak finder values + if (debug_) { + std::cout << "output of EVEN peakfinder is a vector of size: " << even_peak_out_.size() << std::endl; + for (unsigned int ix = 0; ix < even_peak_out_.size(); ix++) { + std::cout << "Clock: " << ix << " value : " << even_peak_out_[ix] << std::endl; + } + std::cout << std::endl; + } + + // Run the odd filter + this->getOddFilter()->setParameters(stripid, ecaltpgOddWeightMap, ecaltpgOddWeightGroup); + this->getOddFilter()->process(add_out_, odd_filt_out_); + + // Print out odd filter ET + if (debug_) { + std::cout << "output of ODD filter is a vector of size: " << std::dec << odd_filt_out_.size() << std::endl; + for (unsigned int ix = 0; ix < odd_filt_out_.size(); ix++) { + std::cout << "Clock: " << ix << " value : " << std::dec << odd_filt_out_[ix] << std::endl; + } + std::cout << std::endl; + } + + // And run the odd peak finder always (then the formatter will use the configuration to decide to use it or not) + // Call peak finder on even filter output + this->getPeakFinder()->process(odd_filt_out_, odd_peak_out_); + + if (debug_) { + std::cout << "output of ODD peakfinder is a vector of size: " << odd_peak_out_.size() << std::endl; + for (unsigned int ix = 0; ix < odd_peak_out_.size(); ix++) { + std::cout << "Clock: " << ix << " value : " << odd_peak_out_[ix] << std::endl; + } + std::cout << std::endl; + } + + return; + } +} + //---------------------------------------------------------------------------------- void EcalFenixStrip::process_part2_barrel(uint32_t stripid, const EcalTPGSlidingWindow *ecaltpgSlidW, @@ -56,14 +266,15 @@ void EcalFenixStrip::process_part2_barrel(uint32_t stripid, // this->getFGVB()->process(lin_out_,fgvb_out_); // call formatter - this->getFormatterEB()->setParameters(stripid, ecaltpgSlidW); - this->getFormatterEB()->process(fgvb_out_, peak_out_, filt_out_, format_out_); - // this is a test: + this->getFormatterEB()->setParameters(stripid, ecaltpgSlidW, ecaltpgTPMode_); + this->getFormatterEB()->process(fgvb_out_, even_peak_out_, even_filt_out_, odd_peak_out_, odd_filt_out_, format_out_); + if (debug_) { - std::cout << "output of formatter is a vector of size: " << format_out_.size() << std::endl; + std::cout << "output of strip EB formatter is a vector of size: " << format_out_.size() << std::endl; std::cout << "value : " << std::endl; - for (unsigned int i = 0; i < format_out_.size(); i++) { - std::cout << " " << format_out_[i]; + for (unsigned int ix = 0; ix < format_out_.size(); ix++) { + std::cout << "Clock: " << ix << " value : " << format_out_[ix] << " 0b" + << std::bitset<14>(format_out_[ix]).to_string() << std::endl; } std::cout << std::endl; } @@ -79,16 +290,15 @@ void EcalFenixStrip::process_part2_endcap(uint32_t stripid, // this->getFGVB()->process(lin_out_,fgvb_out_); // call formatter - this->getFormatterEE()->setParameters(stripid, ecaltpgSlidW, ecaltpgStripStatus); - - this->getFormatterEE()->process(fgvb_out_, peak_out_, filt_out_, format_out_); + this->getFormatterEE()->setParameters(stripid, ecaltpgSlidW, ecaltpgStripStatus, ecaltpgTPMode_); + this->getFormatterEE()->process(fgvb_out_, even_peak_out_, even_filt_out_, odd_peak_out_, odd_filt_out_, format_out_); - // this is a test: if (debug_) { - std::cout << "output of formatter is a vector of size: " << format_out_.size() << std::endl; + std::cout << "output of strip EE formatter is a vector of size: " << format_out_.size() << std::endl; std::cout << "value : " << std::endl; - for (unsigned int i = 0; i < format_out_.size(); i++) { - std::cout << " " << std::dec << format_out_[i]; + for (unsigned int ix = 0; ix < format_out_.size(); ix++) { + std::cout << "Clock: " << ix << " value : " << format_out_[ix] << " 0b" + << std::bitset<14>(format_out_[ix]).to_string() << std::endl; } std::cout << std::endl; } diff --git a/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixStripFormatEB.cc b/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixStripFormatEB.cc index e8bc3698b2f72..15c541dcea5a7 100644 --- a/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixStripFormatEB.cc +++ b/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixStripFormatEB.cc @@ -1,50 +1,108 @@ #include "FWCore/MessageLogger/interface/MessageLogger.h" #include +#include #include EcalFenixStripFormatEB::EcalFenixStripFormatEB() : shift_(0) {} EcalFenixStripFormatEB::~EcalFenixStripFormatEB() {} -int EcalFenixStripFormatEB::setInput(int input, int inputPeak, int inputsFGVB) { +int EcalFenixStripFormatEB::setInput( + int input_even, int inputEvenPeak, int input_odd, int inputOddPeak, int inputsFGVB) { inputsFGVB_ = inputsFGVB; - inputPeak_ = inputPeak; - input_ = input; + inputEvenPeak_ = inputEvenPeak; + input_even_ = input_even; + inputOddPeak_ = inputOddPeak; + input_odd_ = input_odd; return 0; } int EcalFenixStripFormatEB::process() { - // buffer_=input_>>shift_; //FIXME: buffer why? + int even_output = 0; + int odd_output = 0; + + if (ecaltpgTPMode_->DisableEBEvenPeakFinder) { + even_output = input_even_ >> shift_; + } else { + if (inputEvenPeak_ == 1) + even_output = input_even_ >> shift_; + } + + if (ecaltpgTPMode_->EnableEBOddPeakFinder) { + if (inputOddPeak_ == 1) + odd_output = input_odd_ >> shift_; + } else { + odd_output = input_odd_ >> shift_; + } + + // Prepare the amplitude output for the strip looking at the TPmode options + int output = 0; + bool is_odd_larger = false; + if (ecaltpgTPMode_->EnableEBOddFilter && odd_output > even_output) + is_odd_larger = + true; // If running with odd filter enabled, check if odd output is larger regardless of strip formatter output mode + switch (ecaltpgTPMode_->FenixEBStripOutput) { + case 0: // even filter out + output = even_output; + break; + case 1: // odd filter out + if (ecaltpgTPMode_->EnableEBOddFilter) + output = odd_output; + else + output = even_output; + break; + case 2: // larger between odd and even + if (ecaltpgTPMode_->EnableEBOddFilter && odd_output > even_output) { + output = odd_output; + } else + output = even_output; + break; + case 3: // even + odd + if (ecaltpgTPMode_->EnableEBOddFilter) + output = even_output + odd_output; + else + output = even_output; + break; + } - if (inputPeak_ == 0) - return ((inputsFGVB_ & 0x1) << 12); - // int output=buffer_; - int output = input_ >> shift_; if (output > 0XFFF) output = 0XFFF; // ok: barrel saturates at 12 bits - // Add stripFGVB + + // Info bits + // bit12 is sFGVB, bit13 is for odd>even flagging output |= ((inputsFGVB_ & 0x1) << 12); + // if the flagging mode is OFF the bit stays 0, since it is not used for other things + if (ecaltpgTPMode_->EnableEBOddFilter && ecaltpgTPMode_->FenixEBStripInfobit2) { + output |= ((is_odd_larger & 0x1) << 13); + } + return output; } void EcalFenixStripFormatEB::process(std::vector &sFGVBout, - std::vector &peakout, - std::vector &filtout, + std::vector &peakout_even, + std::vector &filtout_even, + std::vector &peakout_odd, + std::vector &filtout_odd, std::vector &output) { - if (peakout.size() != filtout.size() || sFGVBout.size() != filtout.size()) { + if (peakout_even.size() != filtout_even.size() || sFGVBout.size() != filtout_even.size() || + peakout_odd.size() != filtout_odd.size() || filtout_odd.size() != filtout_even.size()) { edm::LogWarning("EcalTPG") << " problem in EcalFenixStripFormatEB: sfgvb_out, peak_out and " "filt_out don't have the same size"; } - for (unsigned int i = 0; i < filtout.size(); i++) { - setInput(filtout[i], peakout[i], sFGVBout[i]); - + for (unsigned int i = 0; i < filtout_even.size(); i++) { + setInput(filtout_even[i], peakout_even[i], filtout_odd[i], peakout_odd[i], sFGVBout[i]); output[i] = process(); } return; } -void EcalFenixStripFormatEB::setParameters(uint32_t &id, const EcalTPGSlidingWindow *&slWin) { +void EcalFenixStripFormatEB::setParameters(uint32_t &id, + const EcalTPGSlidingWindow *&slWin, + const EcalTPGTPMode *ecaltptTPMode) { + // TP mode contains options for the formatter (odd/even filters config) + ecaltpgTPMode_ = ecaltptTPMode; const EcalTPGSlidingWindowMap &slwinmap = slWin->getMap(); EcalTPGSlidingWindowMapIterator it = slwinmap.find(id); if (it != slwinmap.end()) diff --git a/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixStripFormatEE.cc b/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixStripFormatEE.cc index d9520aad7f278..4aa9ba95a14f8 100644 --- a/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixStripFormatEE.cc +++ b/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixStripFormatEE.cc @@ -1,5 +1,6 @@ #include #include +#include #include #include "FWCore/MessageLogger/interface/MessageLogger.h" @@ -13,9 +14,11 @@ EcalFenixStripFormatEE::~EcalFenixStripFormatEE() {} //----------------------------------------------------------------------------------------- -int EcalFenixStripFormatEE::setInput(int input, int inputPeak, int fgvb) { - inputPeak_ = inputPeak; - input_ = input; +int EcalFenixStripFormatEE::setInput(int input_even, int inputEvenPeak, int input_odd, int inputOddPeak, int fgvb) { + inputEvenPeak_ = inputEvenPeak; + input_even_ = input_even; + inputOddPeak_ = inputOddPeak; + input_odd_ = input_odd; fgvb_ = fgvb; return 0; } @@ -26,33 +29,87 @@ int EcalFenixStripFormatEE::process() { if (stripStatus_ != 0) return 0; - // Peak not found - only return fgvb - if (inputPeak_ == 0) - return ((fgvb_ & 0x1) << 12); + int even_output = 0; + int odd_output = 0; - int output = input_ >> shift_; + if (ecaltpgTPMode_->DisableEEEvenPeakFinder) { + even_output = input_even_ >> shift_; + } else { + if (inputEvenPeak_ == 1) + even_output = input_even_ >> shift_; + } + + if (ecaltpgTPMode_->EnableEEOddPeakFinder) { + if (inputOddPeak_ == 1) + odd_output = input_odd_ >> shift_; + } else { + odd_output = input_odd_ >> shift_; + } + + // Prepare the amplitude output for the strip looking at the TPmode options + int output = 0; + bool is_odd_larger = false; + + if (ecaltpgTPMode_->EnableEEOddFilter && (odd_output > even_output)) + is_odd_larger = + true; // If running with odd filter enabled, check if odd output is larger regardless of strip formatter output mode + switch (ecaltpgTPMode_->FenixEEStripOutput) { + case 0: // even filter out + output = even_output; + break; + case 1: // odd filter out + if (ecaltpgTPMode_->EnableEEOddFilter) + output = odd_output; + else + output = even_output; + break; + case 2: // larger between odd and even + if (ecaltpgTPMode_->EnableEEOddFilter && (odd_output > even_output)) { + output = odd_output; + } else + output = even_output; + break; + case 3: // even + odd + if (ecaltpgTPMode_->EnableEEOddFilter) + output = even_output + odd_output; + else + output = even_output; + break; + } // barrel saturates at 12 bits, endcap at 10! // Pascal: finally no,endcap has 12 bits as in EB (bug in FENIX!!!!) if (output > 0XFFF) output = 0XFFF; - output = output | ((fgvb_ & 0x1) << 12); // Pascal (was 10) + + // Info bits + // bit12 is sFGVB, bit13 is for odd>even flagging + output |= ((fgvb_ & 0x1) << 12); + + if (ecaltpgTPMode_->EnableEEOddFilter && ecaltpgTPMode_->FenixEEStripInfobit2) { + output |= ((is_odd_larger & 0x1) << 13); + } return output; } //------------------------------------------------------------------------------------------ void EcalFenixStripFormatEE::process(std::vector &fgvbout, - std::vector &peakout, - std::vector &filtout, + std::vector &peakout_even, + std::vector &filtout_even, + std::vector &peakout_odd, + std::vector &filtout_odd, std::vector &output) { - if (peakout.size() != filtout.size()) { + if (peakout_even.size() != filtout_even.size() || fgvbout.size() != filtout_even.size() || + peakout_odd.size() != filtout_odd.size() || filtout_odd.size() != filtout_even.size()) { edm::LogWarning("EcalTPG") << " problem in EcalFenixStripFormatEE: peak_out and filt_out don't " "have the same size"; - std::cout << " Size peak_out" << peakout.size() << ", size filt_out:" << filtout.size() << std::flush << std::endl; + std::cout << " Size peak_out" << peakout_even.size() << ", size filt_out:" << filtout_even.size() << std::flush + << std::endl; } - for (unsigned int i = 0; i < filtout.size(); i++) { - setInput(filtout[i], peakout[i], fgvbout[i]); + + for (unsigned int i = 0; i < filtout_even.size(); i++) { + setInput(filtout_even[i], peakout_even[i], filtout_odd[i], peakout_odd[i], fgvbout[i]); output[i] = process(); } return; @@ -61,7 +118,10 @@ void EcalFenixStripFormatEE::process(std::vector &fgvbout, void EcalFenixStripFormatEE::setParameters(uint32_t id, const EcalTPGSlidingWindow *&slWin, - const EcalTPGStripStatus *stripStatus) { + const EcalTPGStripStatus *stripStatus, + const EcalTPGTPMode *ecaltpgTPMode) { + // TP mode contains options for the formatter (odd/even filters config) + ecaltpgTPMode_ = ecaltpgTPMode; const EcalTPGSlidingWindowMap &slwinmap = slWin->getMap(); EcalTPGSlidingWindowMapIterator it = slwinmap.find(id); if (it != slwinmap.end()) diff --git a/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixTcp.cc b/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixTcp.cc index 7a3f1d82d2c86..2d011183013c5 100644 --- a/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixTcp.cc +++ b/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixTcp.cc @@ -1,24 +1,26 @@ #include -#include #include "CondFormats/EcalObjects/interface/EcalTPGFineGrainEBGroup.h" #include "CondFormats/EcalObjects/interface/EcalTPGFineGrainEBIdMap.h" #include "CondFormats/EcalObjects/interface/EcalTPGFineGrainTowerEE.h" #include "CondFormats/EcalObjects/interface/EcalTPGLutGroup.h" #include "CondFormats/EcalObjects/interface/EcalTPGLutIdMap.h" +#include #include "FWCore/Framework/interface/ESHandle.h" #include //---------------------------------------------------------------------------------------- -EcalFenixTcp::EcalFenixTcp(bool tcpFormat, bool debug, bool famos, int binOfMax, int maxNrSamples, int nbMaxStrips) - : debug_(debug), nbMaxStrips_(nbMaxStrips) { +EcalFenixTcp::EcalFenixTcp( + bool tcpFormat, bool debug, bool famos, int binOfMax, int maxNrSamples, int nbMaxStrips, bool tpInfoPrintout) + : debug_(debug), nbMaxStrips_(nbMaxStrips), tpInfoPrintout_(tpInfoPrintout) { bypasslin_.resize(nbMaxStrips_); for (int i = 0; i < nbMaxStrips_; i++) bypasslin_[i] = new EcalFenixBypassLin(); adder_ = new EcalFenixEtTot(); maxOf2_ = new EcalFenixMaxof2(maxNrSamples, nbMaxStrips_); - formatter_ = new EcalFenixTcpFormat(tcpFormat, debug_, famos, binOfMax); + formatter_EB_ = new EcalFenixTcpFormatEB(tcpFormat, debug_, famos, binOfMax); + formatter_EE_ = new EcalFenixTcpFormatEE(tcpFormat, debug_, famos, binOfMax); fgvbEB_ = new EcalFenixFgvbEB(maxNrSamples); fgvbEE_ = new EcalFenixTcpFgvbEE(maxNrSamples); sfgvbEB_ = new EcalFenixTcpsFgvbEB(); @@ -28,7 +30,9 @@ EcalFenixTcp::EcalFenixTcp(bool tcpFormat, bool debug, bool famos, int binOfMax, std::vector vec(maxNrSamples, 0); for (int i = 0; i < nbMaxStrips_; i++) bypasslin_out_[i] = vec; - adder_out_.resize(maxNrSamples); + + adder_even_out_.resize(maxNrSamples); + adder_odd_out_.resize(maxNrSamples); maxOf2_out_.resize(maxNrSamples); fgvb_out_.resize(maxNrSamples); strip_fgvb_out_.resize(maxNrSamples); @@ -39,7 +43,8 @@ EcalFenixTcp::~EcalFenixTcp() { delete bypasslin_[i]; delete adder_; delete maxOf2_; - delete formatter_; + delete formatter_EB_; + delete formatter_EE_; delete fgvbEB_; delete fgvbEE_; } @@ -53,11 +58,14 @@ void EcalFenixTcp::process(std::vector &bid, // dummy argument for bool isInInnerRing, EcalTrigTowerDetId towid) { int bitMask = 12; - process_part1(tpframetow, nStr, bitMask); + // The 14th bit is always used for the odd>even flag. If the flagging is off in the Strip fenix the feature will be not used. + int bitOddEven = 13; + process_part1(tpframetow, nStr, bitMask, bitOddEven); process_part2_barrel(tpframetow, nStr, bitMask, + bitOddEven, ecaltpgFgEBGroup_, ecaltpgLutGroup_, ecaltpgLut_, @@ -78,12 +86,15 @@ void EcalFenixTcp::process(std::vector &bid, // dummy argument for bool isInInnerRing, EcalTrigTowerDetId towid) { int bitMask = 12; // Pascal: endcap has 12 bits as in EB (bug in FENIX!!!!) - // {was 10 before] - process_part1(tpframetow, nStr, bitMask); + // The 14th bit is always used for the odd>even flag. If the flagging is off in the Strip fenix the feature will be not used. + int bitOddEven = 13; + + process_part1(tpframetow, nStr, bitMask, bitOddEven); process_part2_endcap(tpframetow, nStr, bitMask, + bitOddEven, ecaltpgLutGroup_, ecaltpgLut_, ecaltpgFineGrainTowerEE_, @@ -94,42 +105,31 @@ void EcalFenixTcp::process(std::vector &bid, // dummy argument for towid); } //----------------------------------------------------------------------------------------- -void EcalFenixTcp::process_part1(std::vector> &tpframetow, int nStr, int bitMask) { - // //call bypasslin - // for (int istrip=0;istripgetBypasslin(istrip)->process(tpframetow[istrip],bypasslin_out_[istrip]); - // } - // //this is a test - // if (debug_) { - // std::cout<<"bypasslinout = "< stripin= bypasslin_out_[istrip]; - // for (unsigned int is=0;is> &tpframetow, int nStr, int bitMask, int bitOddEven) { // //call adder // this->getAdder()->process(bypasslin_out_, nStr, bitMask,adder_out_); - this->getAdder()->process(tpframetow, nStr, bitMask, adder_out_); + this->getAdder()->process(tpframetow, nStr, bitMask, bitOddEven, adder_even_out_, adder_odd_out_); // this is a test: if (debug_) { - std::cout << "output of adder is a vector of size: " << adder_out_.size() << std::endl; - std::cout << "value : " << std::endl; - for (unsigned int i = 0; i < adder_out_.size(); i++) { - std::cout << " " << adder_out_[i]; + std::cout << "output of TCP adder is a vector of size: " << adder_even_out_.size() << std::endl; + std::cout << "even sum : " << std::endl; + for (unsigned int i = 0; i < adder_even_out_.size(); i++) { + std::cout << " " << adder_even_out_[i]; + } + std::cout << std::endl; + std::cout << "odd sum : " << std::endl; + for (unsigned int i = 0; i < adder_odd_out_.size(); i++) { + std::cout << " " << adder_odd_out_[i]; } std::cout << std::endl; } - // return adder_out; return; } //----------------------------------------------------------------------------------------- void EcalFenixTcp::process_part2_barrel(std::vector> &bypasslinout, int nStr, int bitMask, + int bitOddEven, const EcalTPGFineGrainEBGroup *ecaltpgFgEBGroup, const EcalTPGLutGroup *ecaltpgLutGroup, const EcalTPGLutIdMap *ecaltpgLut, @@ -140,9 +140,10 @@ void EcalFenixTcp::process_part2_barrel(std::vector> &bypasslin std::vector &tcp_outTcc, EcalTrigTowerDetId towid) { // call maxof2 - // this->getMaxOf2()->process(bypasslin_out_,nStr,maxOf2_out_); - this->getMaxOf2()->process(bypasslinout, nStr, bitMask, maxOf2_out_); - // this is a test: + // this->getMaxOf2()->process(bypasslin_out_,nStr,maxOf2_out_); + // the oddEven flag is used to exclude "odd" strip from the computation of the maxof2 as in the fenix firmware + this->getMaxOf2()->process(bypasslinout, nStr, bitMask, bitOddEven, maxOf2_out_); + if (debug_) { std::cout << "output of maxof2 is a vector of size: " << maxOf2_out_.size() << std::endl; std::cout << "value : " << std::endl; @@ -153,9 +154,9 @@ void EcalFenixTcp::process_part2_barrel(std::vector> &bypasslin } // call fgvb - this->getFGVBEB()->setParameters(towid.rawId(), ecaltpgFgEBGroup, ecaltpgFineGrainEB); - this->getFGVBEB()->process(adder_out_, maxOf2_out_, fgvb_out_); + // The FGVB is computed only on the even sum, as in the firmware + this->getFGVBEB()->process(adder_even_out_, maxOf2_out_, fgvb_out_); // Call sFGVB this->getsFGVBEB()->process(bypasslinout, nStr, bitMask, strip_fgvb_out_); @@ -173,14 +174,22 @@ void EcalFenixTcp::process_part2_barrel(std::vector> &bypasslin // call formatter int eTTotShift = 2; - this->getFormatter()->setParameters(towid.rawId(), ecaltpgLutGroup, ecaltpgLut, ecaltpgBadTT, ecaltpgSpike); - this->getFormatter()->process(adder_out_, fgvb_out_, strip_fgvb_out_, eTTotShift, tcp_out, tcp_outTcc, false); - // this is a test: + this->getFormatterEB()->setParameters( + towid.rawId(), ecaltpgLutGroup, ecaltpgLut, ecaltpgBadTT, ecaltpgSpike, ecaltpgTPMode_); + this->getFormatterEB()->process( + adder_even_out_, adder_odd_out_, fgvb_out_, strip_fgvb_out_, eTTotShift, tcp_out, tcp_outTcc); + + if (tpInfoPrintout_) { + for (unsigned int i = 3; i < tcp_out.size(); i++) { + std::cout << " " << i << " " << std::dec << tcp_out[i] << std::endl; + } + } + if (debug_) { std::cout << "output of TCP formatter Barrel is a vector of size: " << std::dec << tcp_out.size() << std::endl; std::cout << "value : " << std::endl; for (unsigned int i = 0; i < tcp_out.size(); i++) { - std::cout << " " << i << " " << std::dec << tcp_out[i]; + std::cout << " " << i << " " << std::dec << tcp_out[i] << std::endl; } std::cout << std::endl; } @@ -191,6 +200,7 @@ void EcalFenixTcp::process_part2_barrel(std::vector> &bypasslin void EcalFenixTcp::process_part2_endcap(std::vector> &bypasslinout, int nStr, int bitMask, + int bitOddEven, const EcalTPGLutGroup *ecaltpgLutGroup, const EcalTPGLutIdMap *ecaltpgLut, const EcalTPGFineGrainTowerEE *ecaltpgFineGrainTowerEE, @@ -215,10 +225,13 @@ void EcalFenixTcp::process_part2_endcap(std::vector> &bypasslin int eTTotShift = 2; // Pascal: endcap has 12 bits as in EB (bug in FENIX!!!!) // so shift must be applied to just keep [11:2] - this->getFormatter()->setParameters(towid.rawId(), ecaltpgLutGroup, ecaltpgLut, ecaltpgbadTT, nullptr); + this->getFormatterEE()->setParameters( + towid.rawId(), ecaltpgLutGroup, ecaltpgLut, ecaltpgbadTT, nullptr, ecaltpgTPMode_); - this->getFormatter()->process( - adder_out_, fgvb_out_, strip_fgvb_out_, eTTotShift, tcp_out, tcp_outTcc, isInInnerRings); + // Pass both the even and the odd Et sums to the EE formatter also if there is not TCP in the electronics. + // The feature can be implemented in the TCC in the future: the emulator is kept generic. + this->getFormatterEE()->process( + adder_even_out_, adder_odd_out_, fgvb_out_, strip_fgvb_out_, eTTotShift, tcp_out, tcp_outTcc, isInInnerRings); // this is a test: if (debug_) { std::cout << "output of TCP formatter(endcap) is a vector of size: " << std::dec << tcp_out.size() << std::endl; diff --git a/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixTcpFormat.cc b/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixTcpFormatEB.cc similarity index 55% rename from SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixTcpFormat.cc rename to SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixTcpFormatEB.cc index 64964ad26f0f6..168eb8ed948a1 100644 --- a/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixTcpFormat.cc +++ b/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixTcpFormatEB.cc @@ -2,40 +2,38 @@ #include "CondFormats/EcalObjects/interface/EcalTPGLutIdMap.h" #include "CondFormats/EcalObjects/interface/EcalTPGSpike.h" #include "CondFormats/EcalObjects/interface/EcalTPGTowerStatus.h" +#include "CondFormats/EcalObjects/interface/EcalTPGTPMode.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" -#include +#include #include - using namespace std; -EcalFenixTcpFormat::EcalFenixTcpFormat(bool tcpFormat, bool debug, bool famos, int binOfMax) +EcalFenixTcpFormatEB::EcalFenixTcpFormatEB(bool tcpFormat, bool debug, bool famos, int binOfMax) : tcpFormat_(tcpFormat), debug_(debug), famos_(famos), binOfMax_(binOfMax) { status_ = 0; badTTStatus_ = &status_; } -EcalFenixTcpFormat::~EcalFenixTcpFormat() {} +EcalFenixTcpFormatEB::~EcalFenixTcpFormatEB() {} -void EcalFenixTcpFormat::process(std::vector &Et, - std::vector &fgvb, - std::vector &sfgvb, - int eTTotShift, - std::vector &out, - std::vector &out2, - bool isInInnerRings) { +void EcalFenixTcpFormatEB::process(std::vector &Et_even_sum, + std::vector &Et_odd_sum, + std::vector &fgvb, + std::vector &sfgvb, + int eTTotShift, + std::vector &out, + std::vector &out2) { // put TP-s in the output // on request also in TcpFormat // for famos version we have to write dummies except for the middle - int myEt; + int myEt = 0; if (famos_) { for (unsigned int i = 0; i < out.size(); ++i) { if (i == binOfMax_ - 1) { - myEt = Et[0] >> eTTotShift; + myEt = Et_even_sum[i] >> eTTotShift; if (myEt > 0x3ff) myEt = 0x3ff; - if (isInInnerRings) - myEt = myEt / 2; // badTTStatus_ ==0 if the TT works // badTTStatus_ !=0 if there are some problems @@ -52,24 +50,48 @@ void EcalFenixTcpFormat::process(std::vector &Et, out[i] = EcalTriggerPrimitiveSample(); } } else { - for (unsigned int i = 0; i < Et.size(); ++i) { + for (unsigned int i = 0; i < Et_even_sum.size(); ++i) { int myFgvb = fgvb[i]; int mysFgvb = sfgvb[i]; - // myEt=Et[i]>>eTTotShift; - // if (myEt>0x3ff) myEt=0x3ff ; - // if (isInInnerRings) myEt = myEt /2 ; + bool is_odd_larger = false; + + // Check if odd sum is larger than even sum, in case flag_EB_odd_even_tcp is used + if (Et_odd_sum[i] > Et_even_sum[i]) { + is_odd_larger = true; + } + + switch (ecaltpgTPMode_->EBFenixTcpOutput) { + case 0: //output even sum + myEt = Et_even_sum[i]; + break; + case 1: // output larger of odd and even + if (Et_odd_sum[i] > Et_even_sum[i]) { + myEt = Et_odd_sum[i]; + } else { + myEt = Et_even_sum[i]; + } + break; + case 2: // output even+odd + myEt = Et_even_sum[i] + Et_odd_sum[i]; + break; + default: + // In case of unknown configuration switch to default + myEt = Et_even_sum[i]; + break; + } + + // check TPmode config to decide to output the FGVB or the odd>even flag + int infobit1 = myFgvb; + if (ecaltpgTPMode_->EBFenixTcpInfobit1) + infobit1 = is_odd_larger; - // bug fix 091009: - myEt = Et[i]; if (myEt > 0xfff) myEt = 0xfff; - if (isInInnerRings) - myEt = myEt / 2; myEt >>= eTTotShift; if (myEt > 0x3ff) myEt = 0x3ff; - // Spike killing + // Spike killer if ((myEt > spikeZeroThresh_) && (mysFgvb == 0)) { myEt = 0; } @@ -82,19 +104,20 @@ void EcalFenixTcpFormat::process(std::vector &Et, int ttFlag = (lut_out & 0x700) >> 8; if (tcpFormat_) { - out2[i] = EcalTriggerPrimitiveSample(((ttFlag & 0x7) << 11) | ((myFgvb & 0x1) << 10) | (myEt & 0x3ff)); + out2[i] = EcalTriggerPrimitiveSample(((ttFlag & 0x7) << 11) | ((infobit1 & 0x1) << 10) | (myEt & 0x3ff)); } myEt = lut_out & 0xff; - out[i] = EcalTriggerPrimitiveSample(myEt, myFgvb, mysFgvb, ttFlag); + out[i] = EcalTriggerPrimitiveSample(myEt, infobit1, mysFgvb, ttFlag); } } } -void EcalFenixTcpFormat::setParameters(uint32_t towid, - const EcalTPGLutGroup *ecaltpgLutGroup, - const EcalTPGLutIdMap *ecaltpgLut, - const EcalTPGTowerStatus *ecaltpgbadTT, - const EcalTPGSpike *ecaltpgSpike) { +void EcalFenixTcpFormatEB::setParameters(uint32_t towid, + const EcalTPGLutGroup *ecaltpgLutGroup, + const EcalTPGLutIdMap *ecaltpgLut, + const EcalTPGTowerStatus *ecaltpgbadTT, + const EcalTPGSpike *ecaltpgSpike, + const EcalTPGTPMode *ecaltpgTPMode) { // Get TP zeroing threshold - defaut to 1023 for old data (no record found or // EE) spikeZeroThresh_ = 1023; @@ -125,4 +148,6 @@ void EcalFenixTcpFormat::setParameters(uint32_t towid, if (itbadTT != badTTMap.end()) { badTTStatus_ = &(*itbadTT).second; } + + ecaltpgTPMode_ = ecaltpgTPMode; } diff --git a/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixTcpFormatEE.cc b/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixTcpFormatEE.cc new file mode 100644 index 0000000000000..810fc5352bcf7 --- /dev/null +++ b/SimCalorimetry/EcalTrigPrimAlgos/src/EcalFenixTcpFormatEE.cc @@ -0,0 +1,158 @@ +#include "CondFormats/EcalObjects/interface/EcalTPGLutGroup.h" +#include "CondFormats/EcalObjects/interface/EcalTPGLutIdMap.h" +#include "CondFormats/EcalObjects/interface/EcalTPGSpike.h" +#include "CondFormats/EcalObjects/interface/EcalTPGTowerStatus.h" +#include "CondFormats/EcalObjects/interface/EcalTPGTPMode.h" +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include + +using namespace std; + +EcalFenixTcpFormatEE::EcalFenixTcpFormatEE(bool tcpFormat, bool debug, bool famos, int binOfMax) + : tcpFormat_(tcpFormat), debug_(debug), famos_(famos), binOfMax_(binOfMax) { + status_ = 0; + badTTStatus_ = &status_; +} + +EcalFenixTcpFormatEE::~EcalFenixTcpFormatEE() {} + +void EcalFenixTcpFormatEE::process(std::vector &Et_even_sum, + std::vector &Et_odd_sum, + std::vector &fgvb, + std::vector &sfgvb, + int eTTotShift, + std::vector &out, + std::vector &out2, + bool isInInnerRings) { + // put TP-s in the output + // on request also in TcpFormat + // for famos version we have to write dummies except for the middle + + int myEt; + if (famos_) { + for (unsigned int i = 0; i < out.size(); ++i) { + if (i == binOfMax_ - 1) { + myEt = Et_even_sum[i] >> eTTotShift; + if (isInInnerRings && (myEt <= 0xfff)) + myEt = myEt / 2; + if (myEt > 0xfff) + myEt = 0xfff; + + // badTTStatus_ ==0 if the TT works + // badTTStatus_ !=0 if there are some problems + int lut_out; + if (*badTTStatus_ != 0) { + lut_out = 0; + } else + lut_out = (lut_)[myEt]; + + int ttFlag = (lut_out & 0x700) >> 8; + myEt = lut_out & 0xff; + out[i] = EcalTriggerPrimitiveSample(myEt, fgvb[0], sfgvb[0], ttFlag); + } else + out[i] = EcalTriggerPrimitiveSample(); + } + } else { + for (unsigned int i = 0; i < Et_even_sum.size(); ++i) { + int myFgvb = fgvb[i]; + int mysFgvb = sfgvb[i]; + bool is_odd_larger = false; + + // Check if odd sum is larger than even sum, in case flag_EE_odd_even_tcp is used + if (Et_odd_sum[i] > Et_even_sum[i]) { + is_odd_larger = true; + } + + switch (ecaltpgTPMode_->EEFenixTcpOutput) { + case 0: //output even sum + myEt = Et_even_sum[i]; + break; + case 1: // output larger of odd and even + if (Et_odd_sum[i] > Et_even_sum[i]) { + myEt = Et_odd_sum[i]; + } else { + myEt = Et_even_sum[i]; + } + break; + case 2: // output even+odd + myEt = Et_even_sum[i] + Et_odd_sum[i]; + break; + default: + // In case of unknown configuration switch to default + myEt = Et_even_sum[i]; + break; + } + + // check TPmode config to decide to output the FGVB or the odd>even flag + int infobit1 = myFgvb; + if (ecaltpgTPMode_->EEFenixTcpInfobit1) + infobit1 = is_odd_larger; + + if (isInInnerRings && (myEt <= 0xfff)) + myEt = myEt / 2; + if (myEt > 0xfff) + myEt = 0xfff; + myEt >>= eTTotShift; + if (myEt > 0x3ff) + myEt = 0x3ff; + + // Spike killing + if ((myEt > spikeZeroThresh_) && (mysFgvb == 0)) { + myEt = 0; + } + + int lut_out; + if (*badTTStatus_ != 0) { + lut_out = 0; + } else + lut_out = (lut_)[myEt]; + + int ttFlag = (lut_out & 0x700) >> 8; + if (tcpFormat_) { + out2[i] = EcalTriggerPrimitiveSample(((ttFlag & 0x7) << 11) | ((infobit1 & 0x1) << 10) | (myEt & 0x3ff)); + } + myEt = lut_out & 0xff; + out[i] = EcalTriggerPrimitiveSample(myEt, infobit1, mysFgvb, ttFlag); + } + } +} + +void EcalFenixTcpFormatEE::setParameters(uint32_t towid, + const EcalTPGLutGroup *ecaltpgLutGroup, + const EcalTPGLutIdMap *ecaltpgLut, + const EcalTPGTowerStatus *ecaltpgbadTT, + const EcalTPGSpike *ecaltpgSpike, + const EcalTPGTPMode *ecaltpgTPMode) { + // Get TP zeroing threshold - defaut to 1023 for old data (no record found or + // EE) + spikeZeroThresh_ = 1023; + if (ecaltpgSpike != nullptr) { + const EcalTPGSpike::EcalTPGSpikeMap &spikeMap = ecaltpgSpike->getMap(); + EcalTPGSpike::EcalTPGSpikeMapIterator sit = spikeMap.find(towid); + if (sit != spikeMap.end()) { + spikeZeroThresh_ = sit->second; + } + } + + const EcalTPGGroups::EcalTPGGroupsMap &groupmap = ecaltpgLutGroup->getMap(); + EcalTPGGroups::EcalTPGGroupsMapItr it = groupmap.find(towid); + if (it != groupmap.end()) { + uint32_t lutid = (*it).second; + const EcalTPGLutIdMap::EcalTPGLutMap &lutmap = ecaltpgLut->getMap(); + EcalTPGLutIdMap::EcalTPGLutMapItr itl = lutmap.find(lutid); + if (itl != lutmap.end()) { + lut_ = (*itl).second.getLut(); + } else + edm::LogWarning("EcalTPG") << " could not find EcalTPGLutMap for " << lutid; + + } else + edm::LogWarning("EcalTPG") << " could not find EcalTPGFineGrainTowerEEMap for " << towid; + + const EcalTPGTowerStatusMap &badTTMap = ecaltpgbadTT->getMap(); + EcalTPGTowerStatusMapIterator itbadTT = badTTMap.find(towid); + if (itbadTT != badTTMap.end()) { + badTTStatus_ = &(*itbadTT).second; + } + + ecaltpgTPMode_ = ecaltpgTPMode; +} diff --git a/SimCalorimetry/EcalTrigPrimAlgos/src/EcalTrigPrimFunctionalAlgo.cc b/SimCalorimetry/EcalTrigPrimAlgos/src/EcalTrigPrimFunctionalAlgo.cc index 9877047d07e43..5c9acd2384d26 100644 --- a/SimCalorimetry/EcalTrigPrimAlgos/src/EcalTrigPrimFunctionalAlgo.cc +++ b/SimCalorimetry/EcalTrigPrimAlgos/src/EcalTrigPrimFunctionalAlgo.cc @@ -1,11 +1,11 @@ /** \class EcalTrigPrimFunctionalAlgo * * EcalTrigPrimFunctionalAlgo is the main algorithm class for TPG - * It coordinates all the aother algorithms + * It coordinates all the other algorithms * Structure is very close to electronics * * - * \author Ursula Berthon, Stephanie Baffioni, LLR Palaiseau + * \author Ursula Berthon, Stephanie Baffioni, LLR Palaiseau * * \version 1st Version may 2006 * \version 2nd Version jul 2006 @@ -38,8 +38,7 @@ #include "CondFormats/DataRecord/interface/EcalTPGPedestalsRcd.h" #include "CondFormats/EcalObjects/interface/EcalTPGPedestals.h" -#include -#include +#include const unsigned int EcalTrigPrimFunctionalAlgo::nrSamples_ = 5; // to be written const unsigned int EcalTrigPrimFunctionalAlgo::maxNrSamplesOut_ = 10; @@ -54,7 +53,8 @@ EcalTrigPrimFunctionalAlgo::EcalTrigPrimFunctionalAlgo(const EcalTrigTowerConsti int binofmax, bool tcpFormat, bool debug, - bool famos) + bool famos, + bool tpInfoPrintout) : eTTmap_(eTTmap), theEndcapGeometry_(endcapGeometry), theMapping_(theMapping), @@ -62,7 +62,8 @@ EcalTrigPrimFunctionalAlgo::EcalTrigPrimFunctionalAlgo(const EcalTrigTowerConsti tcpFormat_(tcpFormat), barrelOnly_(true), debug_(debug), - famos_(famos) + famos_(famos), + tpInfoPrintout_(tpInfoPrintout) { if (famos_) @@ -73,13 +74,14 @@ EcalTrigPrimFunctionalAlgo::EcalTrigPrimFunctionalAlgo(const EcalTrigTowerConsti } EcalTrigPrimFunctionalAlgo::EcalTrigPrimFunctionalAlgo( - const EcalElectronicsMapping *theMapping, int binofmax, bool tcpFormat, bool debug, bool famos) + const EcalElectronicsMapping *theMapping, int binofmax, bool tcpFormat, bool debug, bool famos, bool tpInfoPrintout) : theMapping_(theMapping), binOfMaximum_(binofmax), tcpFormat_(tcpFormat), barrelOnly_(true), debug_(debug), - famos_(famos) + famos_(famos), + tpInfoPrintout_(tpInfoPrintout) { if (famos_) @@ -92,8 +94,9 @@ EcalTrigPrimFunctionalAlgo::EcalTrigPrimFunctionalAlgo( //---------------------------------------------------------------------- void EcalTrigPrimFunctionalAlgo::init() { // create main sub algos - estrip_ = std::make_unique(theMapping_, debug_, famos_, maxNrSamples_, nbMaxXtals_); - etcp_ = std::make_unique(tcpFormat_, debug_, famos_, binOfMaximum_, maxNrSamples_, nbMaxStrips_); + estrip_ = std::make_unique(theMapping_, debug_, famos_, maxNrSamples_, nbMaxXtals_, tpInfoPrintout_); + etcp_ = std::make_unique( + tcpFormat_, debug_, famos_, binOfMaximum_, maxNrSamples_, nbMaxStrips_, tpInfoPrintout_); // initialise data structures initStructures(towerMapEB_); diff --git a/SimCalorimetry/EcalTrigPrimProducers/plugins/EcalTrigPrimProducer.cc b/SimCalorimetry/EcalTrigPrimProducers/plugins/EcalTrigPrimProducer.cc index 0e9cadce08b77..bad5f56c4db7a 100644 --- a/SimCalorimetry/EcalTrigPrimProducers/plugins/EcalTrigPrimProducer.cc +++ b/SimCalorimetry/EcalTrigPrimProducers/plugins/EcalTrigPrimProducer.cc @@ -3,11 +3,11 @@ * * EcalTrigPrimProducer produces a EcalTrigPrimDigiCollection * The barrel code does a detailed simulation - * The code for the endcap is simulated in a rough way, due to missing strip + * The code for the endcap is simulated in a rough way, due to missing strip geometry * * - * \author Ursula Berthon, Stephanie Baffioni, LLR Palaiseau + * \author Ursula Berthon, Stephanie Baffioni, LLR Palaiseau * * \version 1st Version may 2006 * \version 2nd Version jul 2006 @@ -44,6 +44,9 @@ #include "CondFormats/DataRecord/interface/EcalTPGTowerStatusRcd.h" #include "CondFormats/DataRecord/interface/EcalTPGWeightGroupRcd.h" #include "CondFormats/DataRecord/interface/EcalTPGWeightIdMapRcd.h" +#include "CondFormats/DataRecord/interface/EcalTPGOddWeightGroupRcd.h" +#include "CondFormats/DataRecord/interface/EcalTPGOddWeightIdMapRcd.h" +#include "CondFormats/DataRecord/interface/EcalTPGTPModeRcd.h" #include "CondFormats/DataRecord/interface/EcalTPGPedestalsRcd.h" #include "CondFormats/EcalObjects/interface/EcalTPGCrystalStatus.h" #include "CondFormats/EcalObjects/interface/EcalTPGFineGrainEBGroup.h" @@ -60,6 +63,9 @@ #include "CondFormats/EcalObjects/interface/EcalTPGTowerStatus.h" #include "CondFormats/EcalObjects/interface/EcalTPGWeightGroup.h" #include "CondFormats/EcalObjects/interface/EcalTPGWeightIdMap.h" +#include "CondFormats/EcalObjects/interface/EcalTPGOddWeightGroup.h" +#include "CondFormats/EcalObjects/interface/EcalTPGOddWeightIdMap.h" +#include "CondFormats/EcalObjects/interface/EcalTPGTPMode.h" #include "Geometry/EcalMapping/interface/EcalMappingRcd.h" #include "Geometry/Records/interface/CaloGeometryRecord.h" @@ -86,6 +92,7 @@ class EcalTrigPrimProducer : public edm::stream::EDProducer<> { bool tcpFormat_; bool debug_; bool famos_; + bool tpInfoPrintout_; edm::EDGetTokenT tokenEB_; edm::EDGetTokenT tokenEE_; @@ -102,8 +109,10 @@ class EcalTrigPrimProducer : public edm::stream::EDProducer<> { // for strips edm::ESGetToken tokenEcalTPGSlidingWindow_; - edm::ESGetToken tokenEcalTPGWEightIdMap_; - edm::ESGetToken tokenEcalTPGWEightGroup_; + edm::ESGetToken tokenEcalTPGWeightIdMap_; + edm::ESGetToken tokenEcalTPGWeightGroup_; + edm::ESGetToken tokenEcalTPGOddWeightIdMap_; + edm::ESGetToken tokenEcalTPGOddWeightGroup_; edm::ESGetToken tokenEcalTPGFineGrainStripEE_; edm::ESGetToken tokenEcalTPGStripStatus_; @@ -116,6 +125,8 @@ class EcalTrigPrimProducer : public edm::stream::EDProducer<> { edm::ESGetToken tokenEcalTPGFineGrainTowerEE_; edm::ESGetToken tokenEcalTPGTowerStatus_; edm::ESGetToken tokenEcalTPGSpike_; + // TPG TP mode + edm::ESGetToken tokenEcalTPGTPMode_; int binOfMaximum_; bool fillBinOfMaximumFromHistory_; @@ -130,6 +141,7 @@ EcalTrigPrimProducer::EcalTrigPrimProducer(const edm::ParameterSet &iConfig) tcpFormat_(iConfig.getParameter("TcpOutput")), debug_(iConfig.getParameter("Debug")), famos_(iConfig.getParameter("Famos")), + tpInfoPrintout_(iConfig.getParameter("TPinfoPrintout")), tokenEB_(consumes( edm::InputTag(iConfig.getParameter("Label"), iConfig.getParameter("InstanceEB")))), tokenEE_(consumes( @@ -139,8 +151,10 @@ EcalTrigPrimProducer::EcalTrigPrimProducer(const edm::ParameterSet &iConfig) tokenEcalTPGPedestals_(esConsumes()), tokenEcalTPGCrystalStatus_(esConsumes()), tokenEcalTPGSlidingWindow_(esConsumes()), - tokenEcalTPGWEightIdMap_(esConsumes()), - tokenEcalTPGWEightGroup_(esConsumes()), + tokenEcalTPGWeightIdMap_(esConsumes()), + tokenEcalTPGWeightGroup_(esConsumes()), + tokenEcalTPGOddWeightIdMap_(esConsumes()), + tokenEcalTPGOddWeightGroup_(esConsumes()), tokenEcalTPGFineGrainStripEE_(esConsumes()), tokenEcalTPGStripStatus_(esConsumes()), tokenEcalTPGFineGrainEBGroup_(esConsumes()), @@ -150,6 +164,7 @@ EcalTrigPrimProducer::EcalTrigPrimProducer(const edm::ParameterSet &iConfig) tokenEcalTPGFineGrainTowerEE_(esConsumes()), tokenEcalTPGTowerStatus_(esConsumes()), tokenEcalTPGSpike_(esConsumes()), + tokenEcalTPGTPMode_(esConsumes()), binOfMaximum_(iConfig.getParameter("binOfMaximum")), fillBinOfMaximumFromHistory_(-1 == binOfMaximum_), cacheID_(0) { @@ -210,12 +225,13 @@ void EcalTrigPrimProducer::beginRun(edm::Run const &run, edm::EventSetup const & auto const &ecalmapping = setup.getData(tokenEcalMapping_); if (barrelOnly_) { - algo_ = std::make_unique(&ecalmapping, binOfMaximum_, tcpFormat_, debug_, famos_); + algo_ = std::make_unique( + &ecalmapping, binOfMaximum_, tcpFormat_, debug_, famos_, tpInfoPrintout_); } else { auto const &endcapGeometry = setup.getData(tokenEndcapGeom_); auto const &eTTmap = setup.getData(tokenETTMap_); algo_ = std::make_unique( - &eTTmap, &endcapGeometry, &ecalmapping, binOfMaximum_, tcpFormat_, debug_, famos_); + &eTTmap, &endcapGeometry, &ecalmapping, binOfMaximum_, tcpFormat_, debug_, famos_, tpInfoPrintout_); } } @@ -235,19 +251,25 @@ unsigned long long EcalTrigPrimProducer::getRecords(edm::EventSetup const &setup // for strips const EcalTPGSlidingWindow *ecaltpgSlidW = &setup.getData(tokenEcalTPGSlidingWindow_); - const EcalTPGWeightIdMap *ecaltpgWeightMap = &setup.getData(tokenEcalTPGWEightIdMap_); - const EcalTPGWeightGroup *ecaltpgWeightGroup = &setup.getData(tokenEcalTPGWEightGroup_); + const EcalTPGWeightIdMap *ecaltpgWeightMap = &setup.getData(tokenEcalTPGWeightIdMap_); + const EcalTPGWeightGroup *ecaltpgWeightGroup = &setup.getData(tokenEcalTPGWeightGroup_); + const EcalTPGOddWeightIdMap *ecaltpgOddWeightMap = &setup.getData(tokenEcalTPGOddWeightIdMap_); + const EcalTPGOddWeightGroup *ecaltpgOddWeightGroup = &setup.getData(tokenEcalTPGOddWeightGroup_); const EcalTPGFineGrainStripEE *ecaltpgFgStripEE = &setup.getData(tokenEcalTPGFineGrainStripEE_); const EcalTPGStripStatus *ecaltpgStripStatus = &setup.getData(tokenEcalTPGStripStatus_); + const EcalTPGTPMode *ecaltpgTPMode = &setup.getData(tokenEcalTPGTPMode_); algo_->setPointers(ecaltpLin, ecaltpPed, ecaltpgSlidW, ecaltpgWeightMap, ecaltpgWeightGroup, + ecaltpgOddWeightMap, + ecaltpgOddWeightGroup, ecaltpgFgStripEE, ecaltpgBadX, - ecaltpgStripStatus); + ecaltpgStripStatus, + ecaltpgTPMode); // .. and for EcalFenixTcp // get parameter records for towers @@ -265,7 +287,8 @@ unsigned long long EcalTrigPrimProducer::getRecords(edm::EventSetup const &setup ecaltpgFineGrainEB, ecaltpgFineGrainTowerEE, ecaltpgBadTT, - ecaltpgSpike); + ecaltpgSpike, + ecaltpgTPMode); // we will suppose that everything is to be updated if the // EcalTPGLinearizationConstRcd has changed @@ -379,6 +402,7 @@ void EcalTrigPrimProducer::fillDescriptions(edm::ConfigurationDescriptions &desc // The code before the existence of fillDescriptions did something special if // 'binOfMaximum' was missing. This replicates that behavior. desc.add("binOfMaximum", -1)->setComment(kComment); + desc.add("TPinfoPrintout", false); descriptions.addDefault(desc); } diff --git a/SimCalorimetry/EcalTrigPrimProducers/python/ecalTrigPrimESDoubleWeights_cff.py b/SimCalorimetry/EcalTrigPrimProducers/python/ecalTrigPrimESDoubleWeights_cff.py new file mode 100644 index 0000000000000..aa9d2fa118561 --- /dev/null +++ b/SimCalorimetry/EcalTrigPrimProducers/python/ecalTrigPrimESDoubleWeights_cff.py @@ -0,0 +1,15 @@ +import FWCore.ParameterSet.Config as cms +from CondCore.CondDB.CondDB_cfi import * + +CondDB.connect = cms.string('frontier://FrontierProd/CMS_CONDITIONS') + +EcalTPGDoubleWeightRecords = cms.ESSource("PoolDBESSource",CondDB, + toGet = cms.VPSet( + cms.PSet(record = cms.string("EcalTPGOddWeightGroupRcd"), + tag = cms.string("EcalTPGOddWeightGroup_mc")), + cms.PSet(record = cms.string("EcalTPGOddWeightIdMapRcd"), + tag = cms.string("EcalTPGOddWeightIdMap_mc")), + cms.PSet(record = cms.string("EcalTPGTPModeRcd"), + tag = cms.string("EcalTPGTPMode_mc")), + ) + ) diff --git a/SimCalorimetry/EcalTrigPrimProducers/python/ecalTriggerPrimitiveDigis_cff.py b/SimCalorimetry/EcalTrigPrimProducers/python/ecalTriggerPrimitiveDigis_cff.py index 1b23381a89e18..e32ea15ffae0f 100644 --- a/SimCalorimetry/EcalTrigPrimProducers/python/ecalTriggerPrimitiveDigis_cff.py +++ b/SimCalorimetry/EcalTrigPrimProducers/python/ecalTriggerPrimitiveDigis_cff.py @@ -9,6 +9,9 @@ # #from SimCalorimetry.EcalTrigPrimProducers.ecalTrigPrimESProducer_cff import * +# Import the records for the new odd weights from tags not yet in the GT +from SimCalorimetry.EcalTrigPrimProducers.ecalTrigPrimESDoubleWeights_cff import * + #Common from Configuration.Eras.Modifier_phase2_hgcal_cff import phase2_hgcal phase2_hgcal.toModify( simEcalTriggerPrimitiveDigis, BarrelOnly = cms.bool(True) ) diff --git a/SimCalorimetry/HGCalAssociatorProducers/plugins/TracksterAssociatorByEnergyScoreImpl.cc b/SimCalorimetry/HGCalAssociatorProducers/plugins/TracksterAssociatorByEnergyScoreImpl.cc new file mode 100644 index 0000000000000..6c78e2e6cfe5f --- /dev/null +++ b/SimCalorimetry/HGCalAssociatorProducers/plugins/TracksterAssociatorByEnergyScoreImpl.cc @@ -0,0 +1,533 @@ +#include "TracksterAssociatorByEnergyScoreImpl.h" + +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "SimDataFormats/CaloAnalysis/interface/SimCluster.h" + +TracksterAssociatorByEnergyScoreImpl::TracksterAssociatorByEnergyScoreImpl( + edm::EDProductGetter const& productGetter, + bool hardScatterOnly, + std::shared_ptr recHitTools, + const std::unordered_map* hitMap) + : hardScatterOnly_(hardScatterOnly), recHitTools_(recHitTools), hitMap_(hitMap), productGetter_(&productGetter) { + layers_ = recHitTools_->lastLayerBH(); +} + +hgcal::association TracksterAssociatorByEnergyScoreImpl::makeConnections( + const edm::Handle& tCH, + const edm::Handle& lCCH, + const edm::Handle& sCCH) const { + // Get collections + const auto& tracksters = *tCH.product(); + const auto& layerClusters = *lCCH.product(); + const auto& simClusters = *sCCH.product(); + auto nTracksters = tracksters.size(); + + //There shouldn't be any SimTracks from different crossings, but maybe they will be added later. + //At the moment there should be one SimTrack in each SimCluster. + auto nSimClusters = simClusters.size(); + std::vector sCIndices; + for (unsigned int scId = 0; scId < nSimClusters; ++scId) { + if (hardScatterOnly_ && (simClusters[scId].g4Tracks()[0].eventId().event() != 0 or + simClusters[scId].g4Tracks()[0].eventId().bunchCrossing() != 0)) { + LogDebug("TracksterAssociatorByEnergyScoreImpl") + << "Excluding SimCluster from event: " << simClusters[scId].g4Tracks()[0].eventId().event() + << " with BX: " << simClusters[scId].g4Tracks()[0].eventId().bunchCrossing() << std::endl; + continue; + } + sCIndices.emplace_back(scId); + } + nSimClusters = sCIndices.size(); + + // Initialize tssInSimCluster. To be returned outside, since it contains the + // information to compute the SimCluster-To-Trackster score. + // tssInSimCluster[scId]: + hgcal::simClusterToTrackster tssInSimCluster; + tssInSimCluster.resize(nSimClusters); + for (unsigned int i = 0; i < nSimClusters; ++i) { + tssInSimCluster[i].simClusterId = i; + tssInSimCluster[i].energy = 0.f; + tssInSimCluster[i].hits_and_fractions.clear(); + } + + // Fill detIdToSimClusterId_Map and update tssInSimCluster + std::unordered_map> detIdToSimClusterId_Map; + for (const auto& scId : sCIndices) { + const auto& hits_and_fractions = simClusters[scId].hits_and_fractions(); + for (const auto& it_haf : hits_and_fractions) { + const auto hitid = it_haf.first; + const auto itcheck = hitMap_->find(hitid); + if (itcheck != hitMap_->end()) { + const auto hit_find_it = detIdToSimClusterId_Map.find(hitid); + if (hit_find_it == detIdToSimClusterId_Map.end()) { + detIdToSimClusterId_Map[hitid] = std::vector(); + } + detIdToSimClusterId_Map[hitid].emplace_back(scId, it_haf.second); + + const HGCRecHit* hit = itcheck->second; + tssInSimCluster[scId].energy += it_haf.second * hit->energy(); + tssInSimCluster[scId].hits_and_fractions.emplace_back(hitid, it_haf.second); + } + } + } // end of loop over SimClusters + +#ifdef EDM_ML_DEBUG + LogDebug("TracksterAssociatorByEnergyScoreImpl") + << "tssInSimCluster INFO (Only SimCluster filled at the moment)" << std::endl; + for (size_t sc = 0; sc < tssInSimCluster.size(); ++sc) { + LogDebug("TracksterAssociatorByEnergyScoreImpl") << "For SimCluster Idx: " << sc << " we have: " << std::endl; + LogDebug("TracksterAssociatorByEnergyScoreImpl") + << " SimClusterIdx: " << tssInSimCluster[sc].simClusterId << std::endl; + LogDebug("TracksterAssociatorByEnergyScoreImpl") + << " Energy: " << tssInSimCluster[sc].energy << std::endl; + LogDebug("TracksterAssociatorByEnergyScoreImpl") << " # of clusters : " << nLayerClusters << std::endl; + double tot_energy = 0.; + for (auto const& haf : tssInSimCluster[sc].hits_and_fractions) { + LogDebug("TracksterAssociatorByEnergyScoreImpl") + << " Hits/fraction/energy: " << (uint32_t)haf.first << "/" << haf.second << "/" + << haf.second * hitMap_->at(haf.first)->energy() << std::endl; + tot_energy += haf.second * hitMap_->at(haf.first)->energy(); + } + LogDebug("TracksterAssociatorByEnergyScoreImpl") << " Tot Sum haf: " << tot_energy << std::endl; + for (auto const& ts : tssInSimCluster[sc].tracksterIdToEnergyAndScore) { + LogDebug("TracksterAssociatorByEnergyScoreImpl") + << " tsIdx/energy/score: " << ts.first << "/" << ts.second.first << "/" << ts.second.second << std::endl; + } + } + + LogDebug("TracksterAssociatorByEnergyScoreImpl") << "detIdToSimClusterId_Map INFO" << std::endl; + for (auto const& detId : detIdToSimClusterId_Map) { + LogDebug("TracksterAssociatorByEnergyScoreImpl") + << "For detId: " << (uint32_t)detId.first + << " we have found the following connections with SimClusters:" << std::endl; + for (auto const& sc : detId.second) { + LogDebug("TracksterAssociatorByEnergyScoreImpl") + << " SimCluster Id: " << sc.clusterId << " with fraction: " << sc.fraction + << " and energy: " << sc.fraction * hitMap_->at(detId.first)->energy() << std::endl; + } + } +#endif + + // Fill detIdToLayerClusterId_Map and scsInTrackster; update tssInSimCluster + std::unordered_map> detIdToLayerClusterId_Map; + // this contains the ids of the simclusters contributing with at least one + // hit to the Trackster. To be returned since this contains the information + // to compute the Trackster-To-SimCluster score. + hgcal::tracksterToSimCluster scsInTrackster; //[tsId][scId]->(energy,score) + scsInTrackster.resize(nTracksters); + + for (unsigned int tsId = 0; tsId < nTracksters; ++tsId) { + for (unsigned int i = 0; i < tracksters[tsId].vertices().size(); ++i) { + const auto lcId = tracksters[tsId].vertices(i); + const auto lcFractionInTs = 1.f / tracksters[tsId].vertex_multiplicity(i); + + const std::vector>& hits_and_fractions = layerClusters[lcId].hitsAndFractions(); + unsigned int numberOfHitsInLC = hits_and_fractions.size(); + + for (unsigned int hitId = 0; hitId < numberOfHitsInLC; hitId++) { + const auto rh_detid = hits_and_fractions[hitId].first; + const auto rhFraction = hits_and_fractions[hitId].second; + + const auto hit_find_in_LC = detIdToLayerClusterId_Map.find(rh_detid); + if (hit_find_in_LC == detIdToLayerClusterId_Map.end()) { + detIdToLayerClusterId_Map[rh_detid] = std::vector(); + } + detIdToLayerClusterId_Map[rh_detid].emplace_back(lcId, rhFraction); + + const auto hit_find_in_SC = detIdToSimClusterId_Map.find(rh_detid); + + if (hit_find_in_SC != detIdToSimClusterId_Map.end()) { + const auto itcheck = hitMap_->find(rh_detid); + const HGCRecHit* hit = itcheck->second; + //Loops through all the simclusters that have the layer cluster rechit under study + //Here is time to update the tssInSimCluster and connect the SimCluster with all + //the Tracksters that have the current rechit detid matched. + for (const auto& h : hit_find_in_SC->second) { + //tssInSimCluster[simclusterId][layerclusterId]-> (energy,score) + //SC_i - > TS_j, TS_k, ... + tssInSimCluster[h.clusterId].tracksterIdToEnergyAndScore[tsId].first += + lcFractionInTs * h.fraction * hit->energy(); + //TS_i -> SC_j, SC_k, ... + scsInTrackster[tsId].emplace_back(h.clusterId, 0.f); + } + } + } // End loop over hits on a LayerCluster + } // End loop over LayerClusters in Trackster + } // End of loop over Tracksters + +#ifdef EDM_ML_DEBUG + for (unsigned int tsId = 0; tsId < nTracksters; ++tsId) { + for (const auto& lcId : tracksters[tsId].vertices()) { + const auto& hits_and_fractions = layerClusters[lcId].hitsAndFractions(); + unsigned int numberOfHitsInLC = hits_and_fractions.size(); + + // This vector will store, for each hit in the Layercluster, the index of + // the SimCluster that contributed the most, in terms of energy, to it. + // Special values are: + // + // -2 --> the reconstruction fraction of the RecHit is 0 (used in the past to monitor Halo Hits) + // -3 --> same as before with the added condition that no SimCluster has been linked to this RecHit + // -1 --> the reco fraction is >0, but no SimCluster has been linked to it + // >=0 --> index of the linked SimCluster + std::vector hitsToSimClusterId(numberOfHitsInLC); + // This will store the index of the SimCluster linked to the LayerCluster that has the largest number of hits in common. + int maxSCId_byNumberOfHits = -1; + // This will store the maximum number of shared hits between a LayerCluster and a SimCluster + unsigned int maxSCNumberOfHitsInLC = 0; + // This will store the index of the SimCluster linked to the LayerCluster that has the largest energy in common. + int maxSCId_byEnergy = -1; + // This will store the maximum number of shared energy between a LayerCluster and a SimCluster + float maxEnergySharedLCandSC = 0.f; + // This will store the fraction of the LayerCluster energy shared with the best(energy) SimCluster: e_shared/lc_energy + float energyFractionOfLCinSC = 0.f; + // This will store the fraction of the SimCluster energy shared with the Trackster: e_shared/sc_energy + float energyFractionOfSCinLC = 0.f; + std::unordered_map occurrencesSCinLC; + unsigned int numberOfNoiseHitsInLC = 0; + std::unordered_map SCEnergyInLC; + + for (unsigned int hitId = 0; hitId < numberOfHitsInLC; hitId++) { + const auto rh_detid = hits_and_fractions[hitId].first; + const auto rhFraction = hits_and_fractions[hitId].second; + + const auto hit_find_in_SC = detIdToSimClusterId_Map.find(rh_detid); + + // if the fraction is zero or the hit does not belong to any SimCluster, + // set the SimCluster Id for the hit to -1; this will + // contribute to the number of noise hits + + // MR Remove the case in which the fraction is 0, since this could be a + // real hit that has been marked as halo. + if (rhFraction == 0.) { + hitsToSimClusterId[hitId] = -2; + } + //Now check if there are SimClusters linked to this rechit of the layercluster + if (hit_find_in_SC == detIdToSimClusterId_Map.end()) { + hitsToSimClusterId[hitId] -= 1; + } else { + const auto itcheck = hitMap_->find(rh_detid); + const HGCRecHit* hit = itcheck->second; + auto maxSCEnergyInLC = 0.f; + auto maxSCId = -1; + //Loop through all the linked SimClusters + for (const auto& h : hit_find_in_SC->second) { + SCEnergyInLC[h.clusterId] += h.fraction * hit->energy(); + // Keep track of which SimCluster contributed the most, in terms + // of energy, to this specific Layer Cluster. + if (SCEnergyInLC[h.clusterId] > maxSCEnergyInLC) { + maxSCEnergyInLC = SCEnergyInLC[h.clusterId]; + maxSCId = h.clusterId; + } + } + hitsToSimClusterId[hitId] = maxSCId; + } + } // End loop over hits on a LayerCluster + + for (const auto& c : hitsToSimClusterId) { + if (c < 0) { + numberOfNoiseHitsInLC++; + } else { + occurrencesSCinLC[c]++; + } + } + + for (const auto& c : occurrencesSCinLC) { + if (c.second > maxSCNumberOfHitsInLC) { + maxSCId_byNumberOfHits = c.first; + maxSCNumberOfHitsInLC = c.second; + } + } + + for (const auto& c : SCEnergyInLC) { + if (c.second > maxEnergySharedLCandSC) { + maxSCId_byEnergy = c.first; + maxEnergySharedLCandSC = c.second; + } + } + + float totalSCEnergyOnLayer = 0.f; + if (maxSCId_byEnergy >= 0) { + totalSCEnergyOnLayer = tssInSimCluster[maxSCId_byEnergy].energy; + energyFractionOfSCinLC = maxEnergySharedLCandSC / totalSCEnergyOnLayer; + if (tracksters[tsId].raw_energy() > 0.f) { + energyFractionOfLCinSC = maxEnergySharedLCandSC / tracksters[tsId].raw_energy(); + } + } + + LogDebug("TracksterAssociatorByEnergyScoreImpl") << std::setw(12) << "TracksterID:" + << "\t" << std::setw(12) << "layerCluster" + << "\t" << std::setw(10) << "lc energy" + << "\t" << std::setw(5) << "nhits" + << "\t" << std::setw(12) << "noise hits" + << "\t" << std::setw(22) << "maxSCId_byNumberOfHits" + << "\t" << std::setw(8) << "nhitsSC" + << "\t" << std::setw(13) << "maxSCId_byEnergy" + << "\t" << std::setw(20) << "maxEnergySharedLCandSC" + << "\t" << std::setw(22) << "totalSCEnergyOnLayer" + << "\t" << std::setw(22) << "energyFractionOfLCinSC" + << "\t" << std::setw(25) << "energyFractionOfSCinLC" + << "\t" + << "\n"; + LogDebug("TracksterAssociatorByEnergyScoreImpl") + << std::setw(12) << tsId << "\t" << std::setw(12) << lcId << "\t" << std::setw(10) + << tracksters[tsId].raw_energy() << "\t" << std::setw(5) << numberOfHitsInLC << "\t" << std::setw(12) + << numberOfNoiseHitsInLC << "\t" << std::setw(22) << maxSCId_byNumberOfHits << "\t" << std::setw(8) + << maxSCNumberOfHitsInLC << "\t" << std::setw(13) << maxSCId_byEnergy << "\t" << std::setw(20) + << maxEnergySharedLCandSC << "\t" << std::setw(22) << totalSCEnergyOnLayer << "\t" << std::setw(22) + << energyFractionOfLCinSC << "\t" << std::setw(25) << energyFractionOfSCinLC << "\n"; + } // End of loop over LayerClusters in Trackster + } // End of loop over Tracksters + + LogDebug("TracksterAssociatorByEnergyScoreImpl") + << "Improved tssInSimCluster INFO (Now containing the linked tracksters id and energy - score still empty)" + << std::endl; + for (size_t sc = 0; sc < tssInSimCluster.size(); ++sc) { + LogDebug("TracksterAssociatorByEnergyScoreImpl") << "For SimCluster Idx: " << sc << " we have: " << std::endl; + LogDebug("TracksterAssociatorByEnergyScoreImpl") + << " SimClusterIdx: " << tssInSimCluster[sc].simClusterId << std::endl; + LogDebug("TracksterAssociatorByEnergyScoreImpl") + << " Energy: " << tssInSimCluster[sc].energy << std::endl; + double tot_energy = 0.; + for (auto const& haf : tssInSimCluster[sc].hits_and_fractions) { + LogDebug("TracksterAssociatorByEnergyScoreImpl") + << " Hits/fraction/energy: " << (uint32_t)haf.first << "/" << haf.second << "/" + << haf.second * hitMap_->at(haf.first)->energy() << std::endl; + tot_energy += haf.second * hitMap_->at(haf.first)->energy(); + } + LogDebug("TracksterAssociatorByEnergyScoreImpl") << " Tot Sum haf: " << tot_energy << std::endl; + for (auto const& ts : tssInSimCluster[sc].tracksterIdToEnergyAndScore) { + LogDebug("TracksterAssociatorByEnergyScoreImpl") + << " tsIdx/energy/score: " << ts.first << "/" << ts.second.first << "/" << ts.second.second << std::endl; + } + } + + LogDebug("TracksterAssociatorByEnergyScoreImpl") << "Improved detIdToSimClusterId_Map INFO" << std::endl; + for (auto const& sc : detIdToSimClusterId_Map) { + LogDebug("TracksterAssociatorByEnergyScoreImpl") + << "For detId: " << (uint32_t)sc.first + << " we have found the following connections with SimClusters:" << std::endl; + for (auto const& sclu : sc.second) { + LogDebug("TracksterAssociatorByEnergyScoreImpl") + << " SimCluster Id: " << sclu.clusterId << " with fraction: " << sclu.fraction + << " and energy: " << sclu.fraction * hitMap_->at(sc.first)->energy() << std::endl; + } + } +#endif + + // Update scsInTrackster; compute the score Trackster-to-SimCluster, + // together with the returned AssociationMap + for (unsigned int tsId = 0; tsId < nTracksters; ++tsId) { + // The SimClusters contributing to the Trackster's LayerClusters should already be unique. + // find the unique SimClusters id contributing to the Trackster's LayerClusters + std::sort(scsInTrackster[tsId].begin(), scsInTrackster[tsId].end()); + auto last = std::unique(scsInTrackster[tsId].begin(), scsInTrackster[tsId].end()); + scsInTrackster[tsId].erase(last, scsInTrackster[tsId].end()); + + // If a reconstructed Trackster has energy 0 but is linked to a + // SimCluster, assigned score 1 + if (tracksters[tsId].raw_energy() == 0. && !scsInTrackster[tsId].empty()) { + for (auto& scPair : scsInTrackster[tsId]) { + scPair.second = 1.; + LogDebug("TracksterAssociatorByEnergyScoreImpl") << "TracksterId : \t " << tsId << "\t SC id : \t" + << scPair.first << "\t score \t " << scPair.second << "\n"; + } + continue; + } + + float invTracksterEnergyWeight = 0.f; + for (unsigned int i = 0; i < tracksters[tsId].vertices().size(); ++i) { + const auto lcId = tracksters[tsId].vertices(i); + const auto lcFractionInTs = 1.f / tracksters[tsId].vertex_multiplicity(i); + + const auto& hits_and_fractions = layerClusters[lcId].hitsAndFractions(); + // Compute the correct normalization + for (auto const& haf : hits_and_fractions) { + invTracksterEnergyWeight += (lcFractionInTs * haf.second * hitMap_->at(haf.first)->energy()) * + (lcFractionInTs * haf.second * hitMap_->at(haf.first)->energy()); + } + } + invTracksterEnergyWeight = 1.f / invTracksterEnergyWeight; + + for (unsigned int i = 0; i < tracksters[tsId].vertices().size(); ++i) { + const auto lcId = tracksters[tsId].vertices(i); + const auto lcFractionInTs = 1.f / tracksters[tsId].vertex_multiplicity(i); + + const auto& hits_and_fractions = layerClusters[lcId].hitsAndFractions(); + unsigned int numberOfHitsInLC = hits_and_fractions.size(); + for (unsigned int i = 0; i < numberOfHitsInLC; ++i) { + DetId rh_detid = hits_and_fractions[i].first; + float rhFraction = hits_and_fractions[i].second * lcFractionInTs; + + const bool hitWithSC = (detIdToSimClusterId_Map.find(rh_detid) != detIdToSimClusterId_Map.end()); + + const auto itcheck = hitMap_->find(rh_detid); + const HGCRecHit* hit = itcheck->second; + float hitEnergyWeight = hit->energy() * hit->energy(); + + for (auto& scPair : scsInTrackster[tsId]) { + float scFraction = 0.f; + if (hitWithSC) { + const auto findHitIt = std::find(detIdToSimClusterId_Map[rh_detid].begin(), + detIdToSimClusterId_Map[rh_detid].end(), + hgcal::detIdInfoInCluster{scPair.first, 0.f}); + if (findHitIt != detIdToSimClusterId_Map[rh_detid].end()) + scFraction = findHitIt->fraction; + } + scPair.second += + (rhFraction - scFraction) * (rhFraction - scFraction) * hitEnergyWeight * invTracksterEnergyWeight; +#ifdef EDM_ML_DEBUG + LogDebug("TracksterAssociatorByEnergyScoreImpl") + << "rh_detid:\t" << (uint32_t)rh_detid << "\ttracksterId:\t" << tsId << "\t" + << "rhfraction,scFraction:\t" << rhFraction << ", " << scFraction << "\t" + << "hitEnergyWeight:\t" << hitEnergyWeight << "\t" + << "current score:\t" << scPair.second << "\t" + << "invTracksterEnergyWeight:\t" << invTracksterEnergyWeight << "\n"; +#endif + } + } // End of loop over Hits within a LayerCluster + } // End of loop over LayerClusters in Trackster + +#ifdef EDM_ML_DEBUG + if (scsInTrackster[tsId].empty()) + LogDebug("TracksterAssociatorByEnergyScoreImpl") << "trackster Id: \t" << tsId << "\tSC id:\t-1 " + << "\t score \t-1" + << "\n"; +#endif + } // End of loop over Tracksters + + // Compute the SimCluster-To-Trackster score + for (const auto& scId : sCIndices) { + float invSCEnergyWeight = 0.f; + + const unsigned int SCNumberOfHits = tssInSimCluster[scId].hits_and_fractions.size(); + if (SCNumberOfHits == 0) + continue; +#ifdef EDM_ML_DEBUG + int tsWithMaxEnergyInSC = -1; + //energy of the most energetic TS from all that were linked to SC + float maxEnergyTSinSC = 0.f; + float SCenergy = tssInSimCluster[scId].energy; + //most energetic TS from all TSs linked to SC over SC energy. + float SCEnergyFractionInTS = 0.f; + for (const auto& ts : tssInSimCluster[scId].tracksterIdToEnergyAndScore) { + if (ts.second.first > maxEnergyTSinSC) { + maxEnergyTSinSC = ts.second.first; + tsWithMaxEnergyInSC = ts.first; + } + } + if (SCenergy > 0.f) + SCEnergyFractionInTS = maxEnergyTSinSC / SCenergy; + + LogDebug("TracksterAssociatorByEnergyScoreImpl") + << std::setw(12) << "simcluster\t" << std::setw(15) << "sc total energy\t" << std::setw(15) + << "scEnergyOnLayer\t" << std::setw(14) << "SCNhitsOnLayer\t" << std::setw(18) << "tsWithMaxEnergyInSC\t" + << std::setw(15) << "maxEnergyTSinSC\t" << std::setw(20) << "SCEnergyFractionInTS" + << "\n"; + LogDebug("TracksterAssociatorByEnergyScoreImpl") + << std::setw(12) << scId << "\t" << std::setw(15) << simClusters[scId].energy() << "\t" << std::setw(15) + << SCenergy << "\t" << std::setw(14) << SCNumberOfHits << "\t" << std::setw(18) << tsWithMaxEnergyInSC << "\t" + << std::setw(15) << maxEnergyTSinSC << "\t" << std::setw(20) << SCEnergyFractionInTS << "\n"; +#endif + // Compute the correct normalization + for (auto const& haf : tssInSimCluster[scId].hits_and_fractions) { + invSCEnergyWeight += std::pow(haf.second * hitMap_->at(haf.first)->energy(), 2); + } + invSCEnergyWeight = 1.f / invSCEnergyWeight; + + for (unsigned int i = 0; i < SCNumberOfHits; ++i) { + auto& sc_hitDetId = tssInSimCluster[scId].hits_and_fractions[i].first; + auto& scFraction = tssInSimCluster[scId].hits_and_fractions[i].second; + + bool hitWithLC = false; + if (scFraction == 0.f) + continue; // hopefully this should never happen + const auto hit_find_in_LC = detIdToLayerClusterId_Map.find(sc_hitDetId); + if (hit_find_in_LC != detIdToLayerClusterId_Map.end()) + hitWithLC = true; + const auto itcheck = hitMap_->find(sc_hitDetId); + const HGCRecHit* hit = itcheck->second; + float hitEnergyWeight = hit->energy() * hit->energy(); + for (auto& tsPair : tssInSimCluster[scId].tracksterIdToEnergyAndScore) { + unsigned int tsId = tsPair.first; + float tsFraction = 0.f; + + for (unsigned int i = 0; i < tracksters[tsId].vertices().size(); ++i) { + const auto lcId = tracksters[tsId].vertices(i); + const auto lcFractionInTs = 1.f / tracksters[tsId].vertex_multiplicity(i); + + if (hitWithLC) { + const auto findHitIt = std::find(detIdToLayerClusterId_Map[sc_hitDetId].begin(), + detIdToLayerClusterId_Map[sc_hitDetId].end(), + hgcal::detIdInfoInCluster{lcId, 0.f}); + if (findHitIt != detIdToLayerClusterId_Map[sc_hitDetId].end()) + tsFraction = findHitIt->fraction * lcFractionInTs; + } + tsPair.second.second += + (tsFraction - scFraction) * (tsFraction - scFraction) * hitEnergyWeight * invSCEnergyWeight; +#ifdef EDM_ML_DEBUG + LogDebug("TracksterAssociatorByEnergyScoreImpl") + << "SCDetId:\t" << (uint32_t)sc_hitDetId << "\tTracksterId:\t" << tracksterId << "\t" + << "tsFraction, scFraction:\t" << tsFraction << ", " << scFraction << "\t" + << "hitEnergyWeight:\t" << hitEnergyWeight << "\t" + << "current score:\t" << tsPair.second.second << "\t" + << "invSCEnergyWeight:\t" << invSCEnergyWeight << "\n"; +#endif + } // End of loop over Trackster's LayerClusters + } // End of loop over Tracksters linked to hits of this SimCluster + } // End of loop over hits of SimCluster on a Layer +#ifdef EDM_ML_DEBUG + if (tssInSimCluster[scId].tracksterIdToEnergyAndScore.empty()) + LogDebug("TracksterAssociatorByEnergyScoreImpl") << "SC Id: \t" << scId << "\tTS id:\t-1 " + << "\t score \t-1" + << "\n"; + + for (const auto& tsPair : tssInSimCluster[scId].tracksterIdToEnergyAndScore) { + LogDebug("TracksterAssociatorByEnergyScoreImpl") + << "SC Id: \t" << scId << "\t TS id: \t" << tsPair.first << "\t score \t" << tsPair.second.second + << "\t shared energy:\t" << tsPair.second.first << "\t shared energy fraction:\t" + << (tsPair.second.first / SCenergy) << "\n"; + } +#endif + } // End loop over SimCluster indices + return {scsInTrackster, tssInSimCluster}; +} + +hgcal::RecoToSimCollectionTracksters TracksterAssociatorByEnergyScoreImpl::associateRecoToSim( + const edm::Handle& tCH, + const edm::Handle& lCCH, + const edm::Handle& sCCH) const { + hgcal::RecoToSimCollectionTracksters returnValue(productGetter_); + const auto& links = makeConnections(tCH, lCCH, sCCH); + + const auto& scsInTrackster = std::get<0>(links); + for (size_t tsId = 0; tsId < scsInTrackster.size(); ++tsId) { + for (auto& scPair : scsInTrackster[tsId]) { + LogDebug("TracksterAssociatorByEnergyScoreImpl") << "Trackster Id: \t" << tsId << "\t SimCluster id: \t" + << scPair.first << "\t score \t" << scPair.second << "\n"; + // Fill AssociationMap + returnValue.insert(edm::Ref(tCH, tsId), // Ref to TS + std::make_pair(edm::Ref(sCCH, scPair.first), + scPair.second) // Pair + ); + } + } + return returnValue; +} + +hgcal::SimToRecoCollectionTracksters TracksterAssociatorByEnergyScoreImpl::associateSimToReco( + const edm::Handle& tCH, + const edm::Handle& lCCH, + const edm::Handle& sCCH) const { + hgcal::SimToRecoCollectionTracksters returnValue(productGetter_); + const auto& links = makeConnections(tCH, lCCH, sCCH); + const auto& tssInSimCluster = std::get<1>(links); + for (size_t scId = 0; scId < tssInSimCluster.size(); ++scId) { + for (auto& tsPair : tssInSimCluster[scId].tracksterIdToEnergyAndScore) { + returnValue.insert( + edm::Ref(sCCH, scId), // Ref to SC + std::make_pair(edm::Ref(tCH, tsPair.first), // Pair > + ); + } + } + return returnValue; +} diff --git a/SimCalorimetry/HGCalAssociatorProducers/plugins/TracksterAssociatorByEnergyScoreImpl.h b/SimCalorimetry/HGCalAssociatorProducers/plugins/TracksterAssociatorByEnergyScoreImpl.h new file mode 100644 index 0000000000000..8c75d5af38797 --- /dev/null +++ b/SimCalorimetry/HGCalAssociatorProducers/plugins/TracksterAssociatorByEnergyScoreImpl.h @@ -0,0 +1,64 @@ +// Original Author: Leonardo Cristella + +#include +#include +#include +#include // shared_ptr + +#include "DataFormats/ForwardDetId/interface/HGCalDetId.h" +#include "DataFormats/HGCRecHit/interface/HGCRecHit.h" +#include "SimDataFormats/Associations/interface/TracksterToSimClusterAssociator.h" +#include "RecoLocalCalo/HGCalRecAlgos/interface/RecHitTools.h" + +namespace edm { + class EDProductGetter; +} + +namespace hgcal { + struct detIdInfoInCluster { + bool operator==(const detIdInfoInCluster &o) const { return clusterId == o.clusterId; }; + long unsigned int clusterId; + float fraction; + detIdInfoInCluster(long unsigned int cId, float fr) { + clusterId = cId; + fraction = fr; + } + }; + + struct simClusterOnLayer { + unsigned int simClusterId; + float energy = 0; + std::vector> hits_and_fractions; + std::unordered_map> tracksterIdToEnergyAndScore; + }; + + typedef std::vector>> tracksterToSimCluster; + typedef std::vector simClusterToTrackster; + typedef std::tuple association; +} // namespace hgcal + +class TracksterAssociatorByEnergyScoreImpl : public hgcal::TracksterToSimClusterAssociatorBaseImpl { +public: + explicit TracksterAssociatorByEnergyScoreImpl(edm::EDProductGetter const &, + bool, + std::shared_ptr, + const std::unordered_map *); + + hgcal::RecoToSimCollectionTracksters associateRecoToSim(const edm::Handle &tCH, + const edm::Handle &lCCH, + const edm::Handle &sCCH) const override; + + hgcal::SimToRecoCollectionTracksters associateSimToReco(const edm::Handle &tCH, + const edm::Handle &lCCH, + const edm::Handle &sCCH) const override; + +private: + const bool hardScatterOnly_; + std::shared_ptr recHitTools_; + const std::unordered_map *hitMap_; + unsigned layers_; + edm::EDProductGetter const *productGetter_; + hgcal::association makeConnections(const edm::Handle &tCH, + const edm::Handle &lCCH, + const edm::Handle &sCCH) const; +}; diff --git a/SimCalorimetry/HGCalAssociatorProducers/plugins/TracksterAssociatorByEnergyScoreProducer.cc b/SimCalorimetry/HGCalAssociatorProducers/plugins/TracksterAssociatorByEnergyScoreProducer.cc new file mode 100644 index 0000000000000..8bd086a89574d --- /dev/null +++ b/SimCalorimetry/HGCalAssociatorProducers/plugins/TracksterAssociatorByEnergyScoreProducer.cc @@ -0,0 +1,67 @@ +// Original author: Leonardo Cristella + +// user include files +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/global/EDProducer.h" + +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/MakerMacros.h" + +#include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "FWCore/Utilities/interface/EDGetToken.h" +#include "FWCore/Utilities/interface/ESGetToken.h" + +#include "SimDataFormats/Associations/interface/TracksterToSimClusterAssociator.h" +#include "TracksterAssociatorByEnergyScoreImpl.h" + +class TracksterAssociatorByEnergyScoreProducer : public edm::global::EDProducer<> { +public: + explicit TracksterAssociatorByEnergyScoreProducer(const edm::ParameterSet &); + ~TracksterAssociatorByEnergyScoreProducer() override; + + static void fillDescriptions(edm::ConfigurationDescriptions &descriptions); + +private: + void produce(edm::StreamID, edm::Event &, const edm::EventSetup &) const override; + edm::EDGetTokenT> hitMap_; + edm::ESGetToken caloGeometry_; + const bool hardScatterOnly_; + std::shared_ptr rhtools_; +}; + +TracksterAssociatorByEnergyScoreProducer::TracksterAssociatorByEnergyScoreProducer(const edm::ParameterSet &ps) + : hitMap_(consumes>(ps.getParameter("hitMapTag"))), + caloGeometry_(esConsumes()), + hardScatterOnly_(ps.getParameter("hardScatterOnly")) { + rhtools_.reset(new hgcal::RecHitTools()); + + // Register the product + produces(); +} + +TracksterAssociatorByEnergyScoreProducer::~TracksterAssociatorByEnergyScoreProducer() {} + +void TracksterAssociatorByEnergyScoreProducer::produce(edm::StreamID, + edm::Event &iEvent, + const edm::EventSetup &es) const { + edm::ESHandle geom = es.getHandle(caloGeometry_); + rhtools_->setGeometry(*geom); + + const std::unordered_map *hitMap = &iEvent.get(hitMap_); + + auto impl = std::make_unique( + iEvent.productGetter(), hardScatterOnly_, rhtools_, hitMap); + auto toPut = std::make_unique(std::move(impl)); + iEvent.put(std::move(toPut)); +} + +void TracksterAssociatorByEnergyScoreProducer::fillDescriptions(edm::ConfigurationDescriptions &cfg) { + edm::ParameterSetDescription desc; + desc.add("hitMapTag", edm::InputTag("hgcalRecHitMapProducer")); + desc.add("hardScatterOnly", true); + + cfg.add("tracksterAssociatorByEnergyScore", desc); +} + +//define this as a plug-in +DEFINE_FWK_MODULE(TracksterAssociatorByEnergyScoreProducer); diff --git a/SimCalorimetry/HGCalAssociatorProducers/python/TSToSCAssociation_cfi.py b/SimCalorimetry/HGCalAssociatorProducers/python/TSToSCAssociation_cfi.py new file mode 100644 index 0000000000000..fe5b6a498740a --- /dev/null +++ b/SimCalorimetry/HGCalAssociatorProducers/python/TSToSCAssociation_cfi.py @@ -0,0 +1,13 @@ +import FWCore.ParameterSet.Config as cms + +tracksterSimClusterAssociation = cms.EDProducer("TSToSCAssociatorEDProducer", + associator = cms.InputTag('tsAssocByEnergyScoreProducer'), + label_scl = cms.InputTag("mix","MergedCaloTruth"), + label_tst = cms.InputTag("ticlTrackstersMerge"), + label_lcl = cms.InputTag("hgcalLayerClusters") +) + +from Configuration.ProcessModifiers.premix_stage2_cff import premix_stage2 +premix_stage2.toModify(tracksterSimClusterAssociation, + label_scl = "mixData:MergedCaloTruth" +) diff --git a/SimCalorimetry/HcalTrigPrimAlgos/interface/HcalTriggerPrimitiveAlgo.h b/SimCalorimetry/HcalTrigPrimAlgos/interface/HcalTriggerPrimitiveAlgo.h index 328596ce06101..82dee6171edf2 100644 --- a/SimCalorimetry/HcalTrigPrimAlgos/interface/HcalTriggerPrimitiveAlgo.h +++ b/SimCalorimetry/HcalTrigPrimAlgos/interface/HcalTriggerPrimitiveAlgo.h @@ -78,9 +78,14 @@ class HcalTriggerPrimitiveAlgo { HcalTrigPrimDigiCollection& result); void setPeakFinderAlgorithm(int algo); void setWeightsQIE11(const edm::ParameterSet& weightsQIE11); + void setWeightQIE11(int aieta, double weight); void setNCTScaleShift(int); void setRCTScaleShift(int); + void setNumFilterPresamplesHBQIE11(int presamples) { numberOfFilterPresamplesHBQIE11_ = presamples; } + + void setNumFilterPresamplesHEQIE11(int presamples) { numberOfFilterPresamplesHEQIE11_ = presamples; } + void setUpgradeFlags(bool hb, bool he, bool hf); void overrideParameters(const edm::ParameterSet& ps); diff --git a/SimCalorimetry/HcalTrigPrimAlgos/src/HcalTriggerPrimitiveAlgo.cc b/SimCalorimetry/HcalTrigPrimAlgos/src/HcalTriggerPrimitiveAlgo.cc index dd989342c8b2d..d37381344ebfd 100644 --- a/SimCalorimetry/HcalTrigPrimAlgos/src/HcalTriggerPrimitiveAlgo.cc +++ b/SimCalorimetry/HcalTrigPrimAlgos/src/HcalTriggerPrimitiveAlgo.cc @@ -866,6 +866,12 @@ void HcalTriggerPrimitiveAlgo::setWeightsQIE11(const edm::ParameterSet& weightsQ } } +void HcalTriggerPrimitiveAlgo::setWeightQIE11(int aieta, double weight) { + // Simple map of |ieta| in HBHE to weight + // Only one weight for SOI-1 TS + weightsQIE11_[aieta] = {{weight, 1.0}}; +} + void HcalTriggerPrimitiveAlgo::setPeakFinderAlgorithm(int algo) { if (algo <= 0 || algo > 2) throw cms::Exception("ERROR: Only algo 1 & 2 are supported.") << std::endl; diff --git a/SimCalorimetry/HcalTrigPrimProducers/python/hcaltpdigi_cff.py b/SimCalorimetry/HcalTrigPrimProducers/python/hcaltpdigi_cff.py index c35df1b9383a4..5d6a02561e738 100644 --- a/SimCalorimetry/HcalTrigPrimProducers/python/hcaltpdigi_cff.py +++ b/SimCalorimetry/HcalTrigPrimProducers/python/hcaltpdigi_cff.py @@ -17,8 +17,10 @@ linearLUTs = cms.bool(False), contain1TSHB = cms.bool(False), contain1TSHE = cms.bool(False), - containPhaseNSHE = cms.double(-999.0), - containPhaseNSHB = cms.double(-999.0), + containPhaseNSHE = cms.double(6.0), + containPhaseNSHB = cms.double(6.0), + overrideDBweightsAndFilterHB = cms.bool(False), + overrideDBweightsAndFilterHE = cms.bool(False), tpScales = tpScales, MaskBit = cms.int32(0x8000), FG_HF_thresholds = cms.vuint32(17, 255), diff --git a/SimCalorimetry/HcalTrigPrimProducers/python/hcaltpdigi_cfi.py b/SimCalorimetry/HcalTrigPrimProducers/python/hcaltpdigi_cfi.py index 75d87b5ea569e..b23674110dea7 100644 --- a/SimCalorimetry/HcalTrigPrimProducers/python/hcaltpdigi_cfi.py +++ b/SimCalorimetry/HcalTrigPrimProducers/python/hcaltpdigi_cfi.py @@ -81,6 +81,8 @@ cms.InputTag('simHcalUnsuppressedDigis:HBHEQIE11DigiCollection'), cms.InputTag('simHcalUnsuppressedDigis:HFQIE10DigiCollection')), InputTagFEDRaw = cms.InputTag("rawDataCollector"), + overrideDBweightsAndFilterHB = cms.bool(False), + overrideDBweightsAndFilterHE = cms.bool(False), RunZS = cms.bool(False), FrontEndFormatError = cms.bool(False), # Front End Format Error, for real data only PeakFinderAlgorithm = cms.int32(2), diff --git a/SimCalorimetry/HcalTrigPrimProducers/src/HcalTrigPrimDigiProducer.cc b/SimCalorimetry/HcalTrigPrimProducers/src/HcalTrigPrimDigiProducer.cc index 9091c938acfa5..6a8f6c2cfdf38 100644 --- a/SimCalorimetry/HcalTrigPrimProducers/src/HcalTrigPrimDigiProducer.cc +++ b/SimCalorimetry/HcalTrigPrimProducers/src/HcalTrigPrimDigiProducer.cc @@ -10,7 +10,7 @@ #include "FWCore/Framework/interface/MakerMacros.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "CalibFormats/CaloTPG/interface/HcalTPGCompressor.h" -#include "CondFormats/HcalObjects/interface/HcalElectronicsMap.h" +#include "CondFormats/HcalObjects/interface/HcalTPChannelParameters.h" #include @@ -40,12 +40,16 @@ HcalTrigPrimDigiProducer::HcalTrigPrimDigiProducer(const edm::ParameterSet& ps) upgrade_ = std::any_of(std::begin(upgrades), std::end(upgrades), [](bool a) { return a; }); legacy_ = std::any_of(std::begin(upgrades), std::end(upgrades), [](bool a) { return !a; }); + overrideDBweightsAndFilterHE_ = ps.getParameter("overrideDBweightsAndFilterHE"); + overrideDBweightsAndFilterHB_ = ps.getParameter("overrideDBweightsAndFilterHB"); + + theAlgo_.setWeightsQIE11(ps.getParameter("weightsQIE11")); + if (ps.exists("parameters")) { auto pset = ps.getUntrackedParameter("parameters"); theAlgo_.overrideParameters(pset); } theAlgo_.setUpgradeFlags(upgrades[0], upgrades[1], upgrades[2]); - theAlgo_.setWeightsQIE11(ps.getParameter("weightsQIE11")); HFEMB_ = false; if (ps.exists("LSConfig")) { @@ -61,6 +65,8 @@ HcalTrigPrimDigiProducer::HcalTrigPrimDigiProducer(const edm::ParameterSet& ps) tok_tpgTranscoder_ = esConsumes(); tok_lutMetadata_ = esConsumes(); tok_trigTowerGeom_ = esConsumes(); + tok_hcalTopo_ = esConsumes(); + // register for data access if (runFrontEndFormatError_) { tok_raw_ = consumes(inputTagFEDRaw_); @@ -76,6 +82,7 @@ HcalTrigPrimDigiProducer::HcalTrigPrimDigiProducer(const edm::ParameterSet& ps) tok_hf_up_ = consumes(inputUpgradeLabel_[1]); } tok_dbService_ = esConsumes(); + tok_dbService_beginRun_ = esConsumes(); produces(); theAlgo_.setPeakFinderAlgorithm(ps.getParameter("PeakFinderAlgorithm")); @@ -85,6 +92,92 @@ HcalTrigPrimDigiProducer::HcalTrigPrimDigiProducer(const edm::ParameterSet& ps) theAlgo_.setRCTScaleShift(hfSS.getParameter("RCTShift")); } +void HcalTrigPrimDigiProducer::beginRun(const edm::Run& run, const edm::EventSetup& eventSetup) { + edm::ESHandle db = eventSetup.getHandle(tok_dbService_beginRun_); + const HcalTopology* topo = &eventSetup.getData(tok_hcalTopo_); + + const HcalElectronicsMap* emap = db->getHcalMapping(); + + int lastHERing = topo->lastHERing(); + int lastHBRing = topo->lastHBRing(); + + // First, determine if we should configure for the filter scheme + // Check the tp version to make this determination + bool foundHB = false; + bool foundHE = false; + bool newHBtp = false; + bool newHEtp = false; + std::vector vIds = emap->allElectronicsIdTrigger(); + for (std::vector::const_iterator eId = vIds.begin(); eId != vIds.end(); eId++) { + // The first HB or HE id is enough to tell whether to use new scheme in HB or HE + if (foundHB and foundHE) + break; + + HcalTrigTowerDetId hcalTTDetId(emap->lookupTrigger(*eId)); + if (hcalTTDetId.null()) + continue; + + int aieta = abs(hcalTTDetId.ieta()); + int tp_version = hcalTTDetId.version(); + + if (aieta <= lastHBRing) { + foundHB = true; + if (tp_version > 1) + newHBtp = true; + } else if (aieta > lastHBRing and aieta < lastHERing) { + foundHE = true; + if (tp_version > 1) + newHEtp = true; + } + } + + std::vector eIds = emap->allElectronicsIdPrecision(); + for (std::vector::const_iterator eId = eIds.begin(); eId != eIds.end(); eId++) { + HcalGenericDetId gid(emap->lookup(*eId)); + if (gid.null() or (gid.genericSubdet() != HcalGenericDetId::HcalGenBarrel and + gid.genericSubdet() != HcalGenericDetId::HcalGenEndcap)) + continue; + + HcalDetId hcalDetId(emap->lookup(*eId)); + if (hcalDetId.null()) + continue; + + int aieta = abs(hcalDetId.ieta()); + + // Do not let ieta 29 in the map + // If the aieta already has a weight in the map, then move on + if (aieta < lastHERing) { + // Filter weight represented in fixed point 8 bit + int fixedPointWeight = db->getHcalTPChannelParameter(hcalDetId)->getauxi1(); + + if (aieta <= lastHBRing) { + // Fix number of filter presamples to one if we are using DB weights + // Size of filter is already known when using DB weights + // Weight from DB represented as 8-bit integer + if (!overrideDBweightsAndFilterHB_) { + if (newHBtp) { + theAlgo_.setNumFilterPresamplesHBQIE11(1); + theAlgo_.setWeightQIE11(aieta, -static_cast(fixedPointWeight) / 256.0); + } else { + theAlgo_.setNumFilterPresamplesHBQIE11(0); + theAlgo_.setWeightQIE11(aieta, 1.0); + } + } + } else if (aieta > lastHBRing) { + if (!overrideDBweightsAndFilterHE_) { + if (newHEtp) { + theAlgo_.setNumFilterPresamplesHEQIE11(1); + theAlgo_.setWeightQIE11(aieta, -static_cast(fixedPointWeight) / 256.0); + } else { + theAlgo_.setNumFilterPresamplesHEQIE11(0); + theAlgo_.setWeightQIE11(aieta, 1.0); + } + } + } + } + } +} + void HcalTrigPrimDigiProducer::produce(edm::Event& iEvent, const edm::EventSetup& eventSetup) { // Step A: get the conditions, for the decoding edm::ESHandle inputCoder = eventSetup.getHandle(tok_tpgCoder_); diff --git a/SimCalorimetry/HcalTrigPrimProducers/src/HcalTrigPrimDigiProducer.h b/SimCalorimetry/HcalTrigPrimProducers/src/HcalTrigPrimDigiProducer.h index d39951a5d3bd1..814aaea4ff824 100644 --- a/SimCalorimetry/HcalTrigPrimProducers/src/HcalTrigPrimDigiProducer.h +++ b/SimCalorimetry/HcalTrigPrimProducers/src/HcalTrigPrimDigiProducer.h @@ -18,6 +18,10 @@ #include "CondFormats/DataRecord/interface/HcalLutMetadataRcd.h" #include "Geometry/HcalTowerAlgo/interface/HcalTrigTowerGeometry.h" #include "Geometry/Records/interface/CaloGeometryRecord.h" +#include "Geometry/HcalTowerAlgo/interface/HcalGeometry.h" +#include "Geometry/CaloGeometry/interface/CaloGeometry.h" +#include "CondFormats/HcalObjects/interface/HcalElectronicsMap.h" + #include class HcalTrigPrimDigiProducer : public edm::stream::EDProducer<> { @@ -26,6 +30,7 @@ class HcalTrigPrimDigiProducer : public edm::stream::EDProducer<> { ~HcalTrigPrimDigiProducer() override {} /**Produces the EDM products,*/ + void beginRun(const edm::Run& r, const edm::EventSetup& c) override; void produce(edm::Event& e, const edm::EventSetup& c) override; private: @@ -41,6 +46,9 @@ class HcalTrigPrimDigiProducer : public edm::stream::EDProducer<> { edm::EDGetTokenT tok_hbhe_; edm::EDGetTokenT tok_hf_; + bool overrideDBweightsAndFilterHE_; + bool overrideDBweightsAndFilterHB_; + /// input tag for FEDRawDataCollection edm::InputTag inputTagFEDRaw_; edm::EDGetTokenT tok_raw_; @@ -59,7 +67,9 @@ class HcalTrigPrimDigiProducer : public edm::stream::EDProducer<> { edm::ESGetToken tok_tpgTranscoder_; edm::ESGetToken tok_lutMetadata_; edm::ESGetToken tok_trigTowerGeom_; + edm::ESGetToken tok_hcalTopo_; edm::ESGetToken tok_dbService_; + edm::ESGetToken tok_dbService_beginRun_; }; #endif diff --git a/SimDataFormats/Associations/interface/LayerClusterToSimClusterAssociator.h b/SimDataFormats/Associations/interface/LayerClusterToSimClusterAssociator.h index a5509353f22a8..094db05e3ba5d 100644 --- a/SimDataFormats/Associations/interface/LayerClusterToSimClusterAssociator.h +++ b/SimDataFormats/Associations/interface/LayerClusterToSimClusterAssociator.h @@ -19,8 +19,11 @@ namespace hgcal { LayerClusterToSimClusterAssociator() = default; LayerClusterToSimClusterAssociator(LayerClusterToSimClusterAssociator &&) = default; LayerClusterToSimClusterAssociator &operator=(LayerClusterToSimClusterAssociator &&) = default; - ~LayerClusterToSimClusterAssociator() = default; + LayerClusterToSimClusterAssociator(const LayerClusterToSimClusterAssociator &) = delete; // stop default + ~LayerClusterToSimClusterAssociator() = default; + const LayerClusterToSimClusterAssociator &operator=(const LayerClusterToSimClusterAssociator &) = + delete; // stop default // ---------- const member functions --------------------- /// Associate a LayerCluster to SimClusters hgcal::RecoToSimCollectionWithSimClusters associateRecoToSim(const edm::Handle &cCCH, @@ -35,11 +38,6 @@ namespace hgcal { } private: - LayerClusterToSimClusterAssociator(const LayerClusterToSimClusterAssociator &) = delete; // stop default - - const LayerClusterToSimClusterAssociator &operator=(const LayerClusterToSimClusterAssociator &) = - delete; // stop default - // ---------- member data -------------------------------- std::unique_ptr m_impl; }; diff --git a/SimDataFormats/Associations/interface/TracksterToSimClusterAssociator.h b/SimDataFormats/Associations/interface/TracksterToSimClusterAssociator.h new file mode 100644 index 0000000000000..0855fb24caa52 --- /dev/null +++ b/SimDataFormats/Associations/interface/TracksterToSimClusterAssociator.h @@ -0,0 +1,49 @@ +#ifndef SimDataFormats_Associations_TracksterToSimClusterAssociator_h +#define SimDataFormats_Associations_TracksterToSimClusterAssociator_h +// Original Author: Leonardo Cristella + +// system include files +#include + +// user include files + +#include "SimDataFormats/Associations/interface/TracksterToSimClusterAssociatorBaseImpl.h" + +// forward declarations + +namespace hgcal { + + class TracksterToSimClusterAssociator { + public: + TracksterToSimClusterAssociator(std::unique_ptr); + TracksterToSimClusterAssociator() = default; + TracksterToSimClusterAssociator(TracksterToSimClusterAssociator &&) = default; + TracksterToSimClusterAssociator &operator=(TracksterToSimClusterAssociator &&) = default; + ~TracksterToSimClusterAssociator() = default; + + // ---------- const member functions --------------------- + /// Associate a Trackster to SimClusters + hgcal::RecoToSimCollectionTracksters associateRecoToSim(const edm::Handle &tCH, + const edm::Handle &lCCH, + const edm::Handle &sCCH) const { + return m_impl->associateRecoToSim(tCH, lCCH, sCCH); + }; + + /// Associate a SimCluster to Tracksters + hgcal::SimToRecoCollectionTracksters associateSimToReco(const edm::Handle &tCH, + const edm::Handle &lCCH, + const edm::Handle &sCCH) const { + return m_impl->associateSimToReco(tCH, lCCH, sCCH); + } + + private: + TracksterToSimClusterAssociator(const TracksterToSimClusterAssociator &) = delete; // stop default + + const TracksterToSimClusterAssociator &operator=(const TracksterToSimClusterAssociator &) = delete; // stop default + + // ---------- member data -------------------------------- + std::unique_ptr m_impl; + }; +} // namespace hgcal + +#endif diff --git a/SimDataFormats/Associations/interface/TracksterToSimClusterAssociatorBaseImpl.h b/SimDataFormats/Associations/interface/TracksterToSimClusterAssociatorBaseImpl.h new file mode 100644 index 0000000000000..236fd1dd3a81c --- /dev/null +++ b/SimDataFormats/Associations/interface/TracksterToSimClusterAssociatorBaseImpl.h @@ -0,0 +1,49 @@ +#ifndef SimDataFormats_Associations_TracksterToSimClusterAssociatorBaseImpl_h +#define SimDataFormats_Associations_TracksterToSimClusterAssociatorBaseImpl_h + +/** \class TracksterToSimClusterAssociatorBaseImpl + * + * Base class for TracksterToSimClusterAssociator. Methods take as input + * the handles of Tracksters, LayerClusters and SimClusters collections and return an + * AssociationMap (oneToManyWithQuality) + * + * \author Leonardo Cristella + */ + +#include "DataFormats/Common/interface/Handle.h" +#include "DataFormats/Common/interface/AssociationMap.h" +#include "DataFormats/HGCalReco/interface/Trackster.h" +#include "DataFormats/CaloRecHit/interface/CaloClusterFwd.h" + +#include "SimDataFormats/CaloAnalysis/interface/SimClusterFwd.h" + +namespace hgcal { + + typedef edm::AssociationMap< + edm::OneToManyWithQualityGeneric>> + SimToRecoCollectionTracksters; + typedef edm::AssociationMap> + RecoToSimCollectionTracksters; + + class TracksterToSimClusterAssociatorBaseImpl { + public: + /// Constructor + TracksterToSimClusterAssociatorBaseImpl(); + /// Destructor + virtual ~TracksterToSimClusterAssociatorBaseImpl(); + + /// Associate a Trackster to SimClusters + virtual hgcal::RecoToSimCollectionTracksters associateRecoToSim( + const edm::Handle &tCH, + const edm::Handle &lCCH, + const edm::Handle &sCCH) const; + + /// Associate a SimCluster to Tracksters + virtual hgcal::SimToRecoCollectionTracksters associateSimToReco( + const edm::Handle &tCH, + const edm::Handle &lCCH, + const edm::Handle &sCCH) const; + }; +} // namespace hgcal + +#endif diff --git a/SimDataFormats/Associations/plugins/BuildFile.xml b/SimDataFormats/Associations/plugins/BuildFile.xml index bd62ae6ee8f1b..dc791a6f1a583 100644 --- a/SimDataFormats/Associations/plugins/BuildFile.xml +++ b/SimDataFormats/Associations/plugins/BuildFile.xml @@ -1,5 +1,8 @@ + + + diff --git a/SimDataFormats/Associations/plugins/TSToSCAssociatorEDProducer.cc b/SimDataFormats/Associations/plugins/TSToSCAssociatorEDProducer.cc new file mode 100644 index 0000000000000..f6e01e8c6beeb --- /dev/null +++ b/SimDataFormats/Associations/plugins/TSToSCAssociatorEDProducer.cc @@ -0,0 +1,95 @@ +// +// Original Author: Leonardo Cristella +// Created: Thu Dec 3 10:52:11 CET 2020 +// +// + +// system include files +#include +#include + +// user include files +#include "FWCore/Framework/interface/global/EDProducer.h" + +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/MakerMacros.h" + +#include "FWCore/Framework/interface/ESHandle.h" + +#include "FWCore/ParameterSet/interface/ParameterSet.h" + +#include "SimDataFormats/Associations/interface/TracksterToSimClusterAssociator.h" + +#include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "DataFormats/HGCalReco/interface/Trackster.h" + +#include "FWCore/Utilities/interface/EDGetToken.h" + +// +// class decleration +// + +class TSToSCAssociatorEDProducer : public edm::global::EDProducer<> { +public: + explicit TSToSCAssociatorEDProducer(const edm::ParameterSet &); + ~TSToSCAssociatorEDProducer() override; + +private: + void produce(edm::StreamID, edm::Event &, const edm::EventSetup &) const override; + + edm::EDGetTokenT SCCollectionToken_; + edm::EDGetTokenT TSCollectionToken_; + edm::EDGetTokenT LCCollectionToken_; + edm::EDGetTokenT associatorToken_; +}; + +TSToSCAssociatorEDProducer::TSToSCAssociatorEDProducer(const edm::ParameterSet &pset) { + produces(); + produces(); + + SCCollectionToken_ = consumes(pset.getParameter("label_scl")); + TSCollectionToken_ = consumes(pset.getParameter("label_tst")); + LCCollectionToken_ = consumes(pset.getParameter("label_lcl")); + associatorToken_ = consumes(pset.getParameter("associator")); +} + +TSToSCAssociatorEDProducer::~TSToSCAssociatorEDProducer() {} + +// +// member functions +// + +// ------------ method called to produce the data ------------ +void TSToSCAssociatorEDProducer::produce(edm::StreamID, edm::Event &iEvent, const edm::EventSetup &iSetup) const { + using namespace edm; + + edm::Handle theAssociator; + iEvent.getByToken(associatorToken_, theAssociator); + + Handle SCCollection; + iEvent.getByToken(SCCollectionToken_, SCCollection); + + Handle TSCollection; + iEvent.getByToken(TSCollectionToken_, TSCollection); + + Handle LCCollection; + iEvent.getByToken(LCCollectionToken_, LCCollection); + + // associate LC and SC + LogTrace("AssociatorValidator") << "Calling associateRecoToSim method\n"; + hgcal::RecoToSimCollectionTracksters recSimColl = + theAssociator->associateRecoToSim(TSCollection, LCCollection, SCCollection); + + LogTrace("AssociatorValidator") << "Calling associateSimToReco method\n"; + hgcal::SimToRecoCollectionTracksters simRecColl = + theAssociator->associateSimToReco(TSCollection, LCCollection, SCCollection); + + auto rts = std::make_unique(recSimColl); + auto str = std::make_unique(simRecColl); + + iEvent.put(std::move(rts)); + iEvent.put(std::move(str)); +} + +// define this as a plug-in +DEFINE_FWK_MODULE(TSToSCAssociatorEDProducer); diff --git a/SimDataFormats/Associations/src/TracksterToSimClusterAssociator.cc b/SimDataFormats/Associations/src/TracksterToSimClusterAssociator.cc new file mode 100644 index 0000000000000..791ab3acfecf1 --- /dev/null +++ b/SimDataFormats/Associations/src/TracksterToSimClusterAssociator.cc @@ -0,0 +1,7 @@ +// Original Author: Leonardo Cristella + +#include "SimDataFormats/Associations/interface/TracksterToSimClusterAssociator.h" + +hgcal::TracksterToSimClusterAssociator::TracksterToSimClusterAssociator( + std::unique_ptr ptr) + : m_impl(std::move(ptr)) {} diff --git a/SimDataFormats/Associations/src/TracksterToSimClusterAssociatorBaseImpl.cc b/SimDataFormats/Associations/src/TracksterToSimClusterAssociatorBaseImpl.cc new file mode 100644 index 0000000000000..a049ff94788e5 --- /dev/null +++ b/SimDataFormats/Associations/src/TracksterToSimClusterAssociatorBaseImpl.cc @@ -0,0 +1,23 @@ +// Original Author: Leonardo Cristella + +#include "SimDataFormats/Associations/interface/TracksterToSimClusterAssociatorBaseImpl.h" + +namespace hgcal { + TracksterToSimClusterAssociatorBaseImpl::TracksterToSimClusterAssociatorBaseImpl(){}; + TracksterToSimClusterAssociatorBaseImpl::~TracksterToSimClusterAssociatorBaseImpl(){}; + + hgcal::RecoToSimCollectionTracksters TracksterToSimClusterAssociatorBaseImpl::associateRecoToSim( + const edm::Handle &tCH, + const edm::Handle &lCCH, + const edm::Handle &sCCH) const { + return hgcal::RecoToSimCollectionTracksters(); + } + + hgcal::SimToRecoCollectionTracksters TracksterToSimClusterAssociatorBaseImpl::associateSimToReco( + const edm::Handle &tCH, + const edm::Handle &lCCH, + const edm::Handle &sCCH) const { + return hgcal::SimToRecoCollectionTracksters(); + } + +} // namespace hgcal diff --git a/SimDataFormats/Associations/src/classes.h b/SimDataFormats/Associations/src/classes.h index a3bd8f46b8c31..840d43f1df8d5 100644 --- a/SimDataFormats/Associations/src/classes.h +++ b/SimDataFormats/Associations/src/classes.h @@ -9,6 +9,7 @@ #include "SimDataFormats/Associations/interface/LayerClusterToCaloParticleAssociator.h" #include "SimDataFormats/Associations/interface/LayerClusterToSimClusterAssociator.h" #include "SimDataFormats/Associations/interface/TrackAssociation.h" +#include "SimDataFormats/Associations/interface/TracksterToSimClusterAssociator.h" #include "SimDataFormats/Associations/interface/TTTrackTruthPair.h" namespace SimDataFormats_Associations { @@ -24,6 +25,8 @@ namespace SimDataFormats_Associations { edm::Wrapper dummy6; + edm::Wrapper dummy7; + reco::VertexSimToRecoCollection vstrc; reco::VertexSimToRecoCollection::const_iterator vstrci; edm::Wrapper wvstrc; diff --git a/SimDataFormats/Associations/src/classes_def.xml b/SimDataFormats/Associations/src/classes_def.xml index ae1132c0e0d79..fc549d0805acf 100644 --- a/SimDataFormats/Associations/src/classes_def.xml +++ b/SimDataFormats/Associations/src/classes_def.xml @@ -15,6 +15,9 @@ + + + @@ -47,6 +50,19 @@ + + + + + + + + + + + + + diff --git a/SimDataFormats/JetMatching/src/classes.h b/SimDataFormats/JetMatching/src/classes.h deleted file mode 100644 index 81a47ad97108e..0000000000000 --- a/SimDataFormats/JetMatching/src/classes.h +++ /dev/null @@ -1,10 +0,0 @@ -#include -#include - -#include "DataFormats/Common/interface/Wrapper.h" -#include "SimDataFormats/JetMatching/interface/JetFlavourInfo.h" -#include "SimDataFormats/JetMatching/interface/JetFlavourInfoMatching.h" -#include "SimDataFormats/JetMatching/interface/JetFlavour.h" -#include "SimDataFormats/JetMatching/interface/JetFlavourMatching.h" -#include "SimDataFormats/JetMatching/interface/MatchedPartons.h" -#include "SimDataFormats/JetMatching/interface/JetMatchedPartons.h" diff --git a/SimFastTiming/FastTimingCommon/interface/BTLDeviceSim.h b/SimFastTiming/FastTimingCommon/interface/BTLDeviceSim.h index b61faac8d9502..c729e567545fc 100644 --- a/SimFastTiming/FastTimingCommon/interface/BTLDeviceSim.h +++ b/SimFastTiming/FastTimingCommon/interface/BTLDeviceSim.h @@ -22,7 +22,7 @@ namespace CLHEP { class BTLDeviceSim { public: - BTLDeviceSim(const edm::ParameterSet& pset); + BTLDeviceSim(const edm::ParameterSet& pset, edm::ConsumesCollector iC); void getEvent(const edm::Event& evt) {} @@ -34,6 +34,8 @@ class BTLDeviceSim { CLHEP::HepRandomEngine* hre); private: + const edm::ESGetToken geomToken_; + const edm::ESGetToken topoToken_; const MTDGeometry* geom_; const MTDTopology* topo_; diff --git a/SimFastTiming/FastTimingCommon/interface/BTLElectronicsSim.h b/SimFastTiming/FastTimingCommon/interface/BTLElectronicsSim.h index fd648bf4cdc88..27e90d3e5a162 100644 --- a/SimFastTiming/FastTimingCommon/interface/BTLElectronicsSim.h +++ b/SimFastTiming/FastTimingCommon/interface/BTLElectronicsSim.h @@ -20,7 +20,7 @@ namespace CLHEP { class BTLElectronicsSim { public: - BTLElectronicsSim(const edm::ParameterSet& pset); + BTLElectronicsSim(const edm::ParameterSet& pset, edm::ConsumesCollector iC); void getEvent(const edm::Event& evt) {} diff --git a/SimFastTiming/FastTimingCommon/interface/ETLDeviceSim.h b/SimFastTiming/FastTimingCommon/interface/ETLDeviceSim.h index 05df1d9fdb4c3..32cdab56ec70b 100644 --- a/SimFastTiming/FastTimingCommon/interface/ETLDeviceSim.h +++ b/SimFastTiming/FastTimingCommon/interface/ETLDeviceSim.h @@ -20,7 +20,7 @@ namespace CLHEP { class ETLDeviceSim { public: - ETLDeviceSim(const edm::ParameterSet& pset); + ETLDeviceSim(const edm::ParameterSet& pset, edm::ConsumesCollector iC); void getEvent(const edm::Event& evt) {} @@ -32,6 +32,7 @@ class ETLDeviceSim { CLHEP::HepRandomEngine* hre); private: + const edm::ESGetToken geomToken_; const MTDGeometry* geom_; float MIPPerMeV_; diff --git a/SimFastTiming/FastTimingCommon/interface/ETLElectronicsSim.h b/SimFastTiming/FastTimingCommon/interface/ETLElectronicsSim.h index e11ff6afab787..79945a097e021 100644 --- a/SimFastTiming/FastTimingCommon/interface/ETLElectronicsSim.h +++ b/SimFastTiming/FastTimingCommon/interface/ETLElectronicsSim.h @@ -24,7 +24,7 @@ namespace CLHEP { class ETLElectronicsSim { public: - ETLElectronicsSim(const edm::ParameterSet& pset); + ETLElectronicsSim(const edm::ParameterSet& pset, edm::ConsumesCollector iC); void getEvent(const edm::Event& evt) {} @@ -43,6 +43,7 @@ class ETLElectronicsSim { static constexpr int dfSIZE = 5; private: + const edm::ESGetToken geomToken_; const MTDGeometry* geom_; const bool debug_; diff --git a/SimFastTiming/FastTimingCommon/interface/MTDDigitizer.h b/SimFastTiming/FastTimingCommon/interface/MTDDigitizer.h index e546279165f59..69c507c67b60b 100644 --- a/SimFastTiming/FastTimingCommon/interface/MTDDigitizer.h +++ b/SimFastTiming/FastTimingCommon/interface/MTDDigitizer.h @@ -9,14 +9,13 @@ #include "DataFormats/ForwardDetId/interface/ETLDetId.h" #include "FWCore/Framework/interface/Frameworkfwd.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" #include "FWCore/Framework/interface/Event.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "FWCore/Framework/interface/ProducesCollector.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "Geometry/Records/interface/MTDDigiGeometryRecord.h" #include "Geometry/MTDGeometryBuilder/interface/MTDGeometry.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "Geometry/CommonDetUnit/interface/GeomDetType.h" #include "Geometry/CommonTopologies/interface/PixelTopology.h" #include "Geometry/MTDGeometryBuilder/interface/ProxyMTDTopology.h" @@ -136,9 +135,10 @@ namespace mtd_digitizer { MTDDigitizer(const edm::ParameterSet& config, edm::ProducesCollector producesCollector, edm::ConsumesCollector& iC) : MTDDigitizerBase(config, producesCollector, iC), + geomToken_(iC.esConsumes()), geom_(nullptr), - deviceSim_(config.getParameterSet("DeviceSimulation")), - electronicsSim_(config.getParameterSet("ElectronicsSimulation")), + deviceSim_(config.getParameterSet("DeviceSimulation"), iC), + electronicsSim_(config.getParameterSet("ElectronicsSimulation"), iC), maxSimHitsAccTime_(config.getParameter("maxSimHitsAccTime")) {} ~MTDDigitizer() override {} @@ -160,15 +160,10 @@ namespace mtd_digitizer { void initializeEvent(edm::Event const& e, edm::EventSetup const& c) override; void finalizeEvent(edm::Event& e, edm::EventSetup const& c, CLHEP::HepRandomEngine* hre) override; - /** - @short actions at the start/end of run - */ - void beginRun(const edm::EventSetup& es) override; - void endRun() override {} - private: void resetSimHitDataAccumulator() { MTDSimHitDataAccumulator().swap(simHitAccumulator_); } + const edm::ESGetToken geomToken_; const MTDGeometry* geom_; // implementations @@ -234,9 +229,13 @@ namespace mtd_digitizer { template void MTDDigitizer::initializeEvent(edm::Event const& e, edm::EventSetup const& c) { + geom_ = &c.getData(geomToken_); + deviceSim_.getEvent(e); + deviceSim_.getEventSetup(c); if (not premixStage1_) { electronicsSim_.getEvent(e); + electronicsSim_.getEventSetup(c); } } @@ -255,18 +254,6 @@ namespace mtd_digitizer { //release memory for next event resetSimHitDataAccumulator(); } - - template - void MTDDigitizer::beginRun(const edm::EventSetup& es) { - edm::ESHandle geom; - es.get().get(geom); - geom_ = geom.product(); - - deviceSim_.getEventSetup(es); - if (not premixStage1_) { - electronicsSim_.getEventSetup(es); - } - } } // namespace mtd_digitizer #endif diff --git a/SimFastTiming/FastTimingCommon/interface/MTDDigitizerBase.h b/SimFastTiming/FastTimingCommon/interface/MTDDigitizerBase.h index 9658d1f3fa99e..c358d6d90d42f 100644 --- a/SimFastTiming/FastTimingCommon/interface/MTDDigitizerBase.h +++ b/SimFastTiming/FastTimingCommon/interface/MTDDigitizerBase.h @@ -78,12 +78,6 @@ class MTDDigitizerBase { virtual void initializeEvent(edm::Event const& e, edm::EventSetup const& c) = 0; virtual void finalizeEvent(edm::Event& e, edm::EventSetup const& c, CLHEP::HepRandomEngine* hre) = 0; - /** - @short actions at the start/end of run - */ - virtual void beginRun(const edm::EventSetup& es) = 0; - virtual void endRun() = 0; - const std::string& name() const { return name_; } protected: diff --git a/SimFastTiming/FastTimingCommon/plugins/MTDDigiProducer.cc b/SimFastTiming/FastTimingCommon/plugins/MTDDigiProducer.cc index 4538e4b8fc82c..ee468120b070c 100644 --- a/SimFastTiming/FastTimingCommon/plugins/MTDDigiProducer.cc +++ b/SimFastTiming/FastTimingCommon/plugins/MTDDigiProducer.cc @@ -56,17 +56,3 @@ void MTDDigiProducer::accumulate(PileUpEventPrincipal const& event, digitizer->accumulate(event, es, randomEngine_); } } - -// -void MTDDigiProducer::beginRun(edm::Run const&, edm::EventSetup const& es) { - for (auto& digitizer : theDigitizers_) { - digitizer->beginRun(es); - } -} - -// -void MTDDigiProducer::endRun(edm::Run const&, edm::EventSetup const&) { - for (auto& digitizer : theDigitizers_) { - digitizer->endRun(); - } -} diff --git a/SimFastTiming/FastTimingCommon/plugins/MTDDigiProducer.h b/SimFastTiming/FastTimingCommon/plugins/MTDDigiProducer.h index dc83a658c50ef..854d0aaa33d37 100644 --- a/SimFastTiming/FastTimingCommon/plugins/MTDDigiProducer.h +++ b/SimFastTiming/FastTimingCommon/plugins/MTDDigiProducer.h @@ -1,6 +1,7 @@ #ifndef SimFastTiming_FastTimingCommon_MTDDigiProducer_h #define SimFastTiming_FastTimingCommon_MTDDigiProducer_h +#include "FWCore/Framework/interface/FrameworkfwdMostUsed.h" #include "FWCore/Framework/interface/ProducesCollector.h" #include "SimGeneral/MixingModule/interface/DigiAccumulatorMixMod.h" #include "SimFastTiming/FastTimingCommon/interface/MTDDigitizerBase.h" @@ -8,12 +9,6 @@ #include #include -namespace edm { - class ConsumesCollector; - class ParameterSet; - class StreamID; -} // namespace edm - namespace CLHEP { class HepRandomEngine; } @@ -30,8 +25,6 @@ class MTDDigiProducer : public DigiAccumulatorMixMod { void finalizeEvent(edm::Event&, edm::EventSetup const&) override; void accumulate(edm::Event const&, edm::EventSetup const&) override; void accumulate(PileUpEventPrincipal const&, edm::EventSetup const&, edm::StreamID const&) override; - void beginRun(edm::Run const&, edm::EventSetup const&) override; - void endRun(edm::Run const&, edm::EventSetup const&) override; ~MTDDigiProducer() override; private: diff --git a/SimFastTiming/FastTimingCommon/plugins/PreMixingMTDWorker.cc b/SimFastTiming/FastTimingCommon/plugins/PreMixingMTDWorker.cc index a2f1fac1b9c15..f9a985d97f844 100644 --- a/SimFastTiming/FastTimingCommon/plugins/PreMixingMTDWorker.cc +++ b/SimFastTiming/FastTimingCommon/plugins/PreMixingMTDWorker.cc @@ -24,9 +24,7 @@ class PreMixingMTDWorker : public PreMixingWorker { PreMixingMTDWorker(const PreMixingMTDWorker&) = delete; PreMixingMTDWorker& operator=(const PreMixingMTDWorker&) = delete; - void beginRun(const edm::Run& run, const edm::EventSetup& ES) override; - void endRun() override; - void initializeEvent(const edm::Event& e, const edm::EventSetup& ES) override {} + void initializeEvent(const edm::Event& e, const edm::EventSetup& ES) override; void addSignals(const edm::Event& e, const edm::EventSetup& ES) override; void addPileups(const PileUpEventPrincipal&, const edm::EventSetup& ES) override; void put(edm::Event& e, const edm::EventSetup& ES, std::vector const& ps, int bs) override; @@ -47,9 +45,9 @@ PreMixingMTDWorker::PreMixingMTDWorker(const edm::ParameterSet& ps, digitizer_(MTDDigitizerFactory::get()->create( ps.getParameter("digitizerName"), ps, producesCollector, iC)) {} -void PreMixingMTDWorker::beginRun(const edm::Run& run, const edm::EventSetup& ES) { digitizer_->beginRun(ES); } - -void PreMixingMTDWorker::endRun() { digitizer_->endRun(); } +void PreMixingMTDWorker::initializeEvent(const edm::Event& e, const edm::EventSetup& ES) { + digitizer_->initializeEvent(e, ES); +} void PreMixingMTDWorker::addSignals(const edm::Event& e, const edm::EventSetup& ES) { edm::Handle handle; diff --git a/SimFastTiming/FastTimingCommon/src/BTLDeviceSim.cc b/SimFastTiming/FastTimingCommon/src/BTLDeviceSim.cc index 812bd6f4321b3..062fec9ffe21a 100644 --- a/SimFastTiming/FastTimingCommon/src/BTLDeviceSim.cc +++ b/SimFastTiming/FastTimingCommon/src/BTLDeviceSim.cc @@ -3,8 +3,8 @@ #include "DataFormats/DetId/interface/DetId.h" #include "DataFormats/ForwardDetId/interface/MTDDetId.h" #include "DataFormats/ForwardDetId/interface/BTLDetId.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" -#include "FWCore/Framework/interface/ESHandle.h" #include "Geometry/CommonDetUnit/interface/GeomDetType.h" #include "Geometry/MTDGeometryBuilder/interface/ProxyMTDTopology.h" #include "Geometry/MTDGeometryBuilder/interface/RectangularMTDTopology.h" @@ -12,8 +12,10 @@ #include "CLHEP/Random/RandGaussQ.h" -BTLDeviceSim::BTLDeviceSim(const edm::ParameterSet& pset) - : geom_(nullptr), +BTLDeviceSim::BTLDeviceSim(const edm::ParameterSet& pset, edm::ConsumesCollector iC) + : geomToken_(iC.esConsumes()), + topoToken_(iC.esConsumes()), + geom_(nullptr), topo_(nullptr), bxTime_(pset.getParameter("bxTime")), LightYield_(pset.getParameter("LightYield")), @@ -23,13 +25,8 @@ BTLDeviceSim::BTLDeviceSim(const edm::ParameterSet& pset) PDE_(pset.getParameter("PhotonDetectionEff")) {} void BTLDeviceSim::getEventSetup(const edm::EventSetup& evs) { - edm::ESHandle geom; - evs.get().get(geom); - geom_ = geom.product(); - - edm::ESHandle mtdTopo; - evs.get().get(mtdTopo); - topo_ = mtdTopo.product(); + geom_ = &evs.getData(geomToken_); + topo_ = &evs.getData(topoToken_); } void BTLDeviceSim::getHitsResponse(const std::vector >& hitRefs, @@ -53,8 +50,7 @@ void BTLDeviceSim::getHitsResponse(const std::vectorgetMTDTopologyMode())); - DetId geoId = BTLDetId(btlid.mtdSide(), btlid.mtdRR(), btlid.module() + boundRef * (btlid.modType() - 1), 0, 1); + DetId geoId = btlid.geographicalId(MTDTopologyMode::crysLayoutFromTopoMode(topo_->getMTDTopologyMode())); const MTDGeomDet* thedet = geom_->idToDet(geoId); if (thedet == nullptr) { diff --git a/SimFastTiming/FastTimingCommon/src/BTLElectronicsSim.cc b/SimFastTiming/FastTimingCommon/src/BTLElectronicsSim.cc index eda2fc34d0ee0..33663dd7dbf17 100644 --- a/SimFastTiming/FastTimingCommon/src/BTLElectronicsSim.cc +++ b/SimFastTiming/FastTimingCommon/src/BTLElectronicsSim.cc @@ -1,5 +1,6 @@ #include "SimFastTiming/FastTimingCommon/interface/BTLElectronicsSim.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "CLHEP/Random/RandPoissonQ.h" @@ -7,7 +8,7 @@ using namespace mtd; -BTLElectronicsSim::BTLElectronicsSim(const edm::ParameterSet& pset) +BTLElectronicsSim::BTLElectronicsSim(const edm::ParameterSet& pset, edm::ConsumesCollector iC) : debug_(pset.getUntrackedParameter("debug", false)), bxTime_(pset.getParameter("bxTime")), testBeamMIPTimeRes_(pset.getParameter("TestBeamMIPTimeRes")), diff --git a/SimFastTiming/FastTimingCommon/src/ETLDeviceSim.cc b/SimFastTiming/FastTimingCommon/src/ETLDeviceSim.cc index 5e5df0868e313..113d55625bef0 100644 --- a/SimFastTiming/FastTimingCommon/src/ETLDeviceSim.cc +++ b/SimFastTiming/FastTimingCommon/src/ETLDeviceSim.cc @@ -1,24 +1,25 @@ #include "CLHEP/Units/GlobalPhysicalConstants.h" #include "SimFastTiming/FastTimingCommon/interface/ETLDeviceSim.h" #include "DataFormats/Math/interface/GeantUnits.h" + #include "DataFormats/DetId/interface/DetId.h" #include "DataFormats/ForwardDetId/interface/MTDDetId.h" #include "DataFormats/ForwardDetId/interface/ETLDetId.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" #include "Geometry/CommonDetUnit/interface/GeomDetType.h" #include "Geometry/CommonTopologies/interface/PixelTopology.h" +#include "Geometry/MTDGeometryBuilder/interface/ProxyMTDTopology.h" +#include "Geometry/MTDGeometryBuilder/interface/RectangularMTDTopology.h" -ETLDeviceSim::ETLDeviceSim(const edm::ParameterSet& pset) - : geom_(nullptr), +ETLDeviceSim::ETLDeviceSim(const edm::ParameterSet& pset, edm::ConsumesCollector iC) + : geomToken_(iC.esConsumes()), + geom_(nullptr), MIPPerMeV_(1.0 / pset.getParameter("meVPerMIP")), bxTime_(pset.getParameter("bxTime")), tofDelay_(pset.getParameter("tofDelay")) {} -void ETLDeviceSim::getEventSetup(const edm::EventSetup& evs) { - edm::ESHandle geom; - evs.get().get(geom); - geom_ = geom.product(); -} +void ETLDeviceSim::getEventSetup(const edm::EventSetup& evs) { geom_ = &evs.getData(geomToken_); } void ETLDeviceSim::getHitsResponse(const std::vector >& hitRefs, const edm::Handle& hits, @@ -49,7 +50,8 @@ void ETLDeviceSim::getHitsResponse(const std::vector(thedet->topology()); + const ProxyMTDTopology& topoproxy = static_cast(thedet->topology()); + const RectangularMTDTopology& topo = static_cast(topoproxy.specificTopology()); const float toa = std::get<2>(hitRefs[i]) + tofDelay_; const PSimHit& hit = hits->at(hitidx); @@ -60,6 +62,20 @@ void ETLDeviceSim::getHitsResponse(const std::vector 1.0 - topo.gapxInterpadFrac() || fractionX < topo.gapxInterpadFrac()) || + (ixbin == 0 && fractionX < topo.gapxBorderFrac()) || + (ixbin == topo.nrows() - 1 && fractionX > 1.0 - topo.gapxBorderFrac())) + continue; + if ((fractionY > 1.0 - topo.gapyInterpadFrac() || fractionY < topo.gapyInterpadFrac()) || + (iybin == 0 && fractionY < topo.gapyBorderFrac()) || + (iybin == topo.ncolumns() - 1 && fractionY > 1.0 - topo.gapyBorderFrac())) + continue; const uint8_t row(thepixel.first), col(thepixel.second); auto simHitIt = diff --git a/SimFastTiming/FastTimingCommon/src/ETLElectronicsSim.cc b/SimFastTiming/FastTimingCommon/src/ETLElectronicsSim.cc index 92409a1306d4a..ba488c21ea147 100644 --- a/SimFastTiming/FastTimingCommon/src/ETLElectronicsSim.cc +++ b/SimFastTiming/FastTimingCommon/src/ETLElectronicsSim.cc @@ -1,12 +1,14 @@ #include "SimFastTiming/FastTimingCommon/interface/ETLElectronicsSim.h" +#include "FWCore/Framework/interface/ConsumesCollector.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "CLHEP/Random/RandGaussQ.h" using namespace mtd; -ETLElectronicsSim::ETLElectronicsSim(const edm::ParameterSet& pset) - : geom_(nullptr), +ETLElectronicsSim::ETLElectronicsSim(const edm::ParameterSet& pset, edm::ConsumesCollector iC) + : geomToken_(iC.esConsumes()), + geom_(nullptr), debug_(pset.getUntrackedParameter("debug", false)), bxTime_(pset.getParameter("bxTime")), integratedLum_(pset.getParameter("IntegratedLuminosity")), @@ -22,11 +24,7 @@ ETLElectronicsSim::ETLElectronicsSim(const edm::ParameterSet& pset) toaLSB_ns_(pset.getParameter("toaLSB_ns")), tdcBitSaturation_(std::pow(2, tdcNbits_) - 1) {} -void ETLElectronicsSim::getEventSetup(const edm::EventSetup& evs) { - edm::ESHandle geom; - evs.get().get(geom); - geom_ = geom.product(); -} +void ETLElectronicsSim::getEventSetup(const edm::EventSetup& evs) { geom_ = &evs.getData(geomToken_); } void ETLElectronicsSim::run(const mtd::MTDSimHitDataAccumulator& input, ETLDigiCollection& output, diff --git a/SimFastTiming/FastTimingCommon/test/MTDDigiDump.cc b/SimFastTiming/FastTimingCommon/test/MTDDigiDump.cc index e3f30247129ab..646cc67dfac7d 100644 --- a/SimFastTiming/FastTimingCommon/test/MTDDigiDump.cc +++ b/SimFastTiming/FastTimingCommon/test/MTDDigiDump.cc @@ -13,14 +13,14 @@ class MTDDigiDump : public edm::one::EDAnalyzer { public: explicit MTDDigiDump(const edm::ParameterSet&); - ~MTDDigiDump(); + ~MTDDigiDump() override; static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); private: - virtual void beginJob() override; - virtual void analyze(const edm::Event&, const edm::EventSetup&) override; - virtual void endJob() override; + void beginJob() override; + void analyze(const edm::Event&, const edm::EventSetup&) override; + void endJob() override; // ----------member data --------------------------- @@ -53,7 +53,7 @@ void MTDDigiDump::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetu // --- BTL DIGIs: - if (h_BTL_digi->size() > 0) { + if (!h_BTL_digi->empty()) { std::cout << " ----------------------------------------" << std::endl; std::cout << " BTL DIGI collection:" << std::endl; @@ -84,7 +84,7 @@ void MTDDigiDump::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetu // --- ETL DIGIs: - if (h_ETL_digi->size() > 0) { + if (!h_ETL_digi->empty()) { std::cout << " ----------------------------------------" << std::endl; std::cout << " ETL DIGI collection:" << std::endl; diff --git a/SimG4CMS/Calo/interface/CaloSD.h b/SimG4CMS/Calo/interface/CaloSD.h index d8fa50d3531a0..64c26ac81cff6 100644 --- a/SimG4CMS/Calo/interface/CaloSD.h +++ b/SimG4CMS/Calo/interface/CaloSD.h @@ -117,6 +117,7 @@ class CaloSD : public SensitiveCaloDetector, } inline void setNumberCheckedHits(int val) { nCheckedHits = val; } + void printDetectorLevels(const G4VTouchable*) const; private: void storeHit(CaloG4Hit*); diff --git a/SimG4CMS/Calo/src/CaloSD.cc b/SimG4CMS/Calo/src/CaloSD.cc index e3ef252b27292..26ef0cd171cae 100644 --- a/SimG4CMS/Calo/src/CaloSD.cc +++ b/SimG4CMS/Calo/src/CaloSD.cc @@ -1100,3 +1100,19 @@ void CaloSD::cleanHitCollection() { cleanIndex = theHC->entries(); } + +void CaloSD::printDetectorLevels(const G4VTouchable* touch) const { + //Print name and copy numbers + int level = ((touch->GetHistoryDepth()) + 1); + std::ostringstream st1; + st1 << level << " Levels:"; + if (level > 0) { + for (int ii = 0; ii < level; ii++) { + int i = level - ii - 1; + G4VPhysicalVolume* pv = touch->GetVolume(i); + std::string name = (pv != nullptr) ? pv->GetName() : "Unknown"; + st1 << " " << name << ":" << touch->GetReplicaNumber(i); + } + } + edm::LogVerbatim("CaloSim") << st1.str(); +} diff --git a/SimG4CMS/Calo/src/HFFibre.cc b/SimG4CMS/Calo/src/HFFibre.cc index dde911db22e78..78ee32ea90403 100644 --- a/SimG4CMS/Calo/src/HFFibre.cc +++ b/SimG4CMS/Calo/src/HFFibre.cc @@ -18,7 +18,8 @@ HFFibre::HFFibre(const std::string& name, const HcalSimulationParameters* hps, edm::ParameterSet const& p) : hcalConstant_(hcons), hcalsimpar_(hps) { - edm::ParameterSet m_HF = p.getParameter("HFShower"); + edm::ParameterSet m_HF = + (p.getParameter("HFShower")).getParameter("HFShowerBlock"); cFibre = c_light * (m_HF.getParameter("CFibre")); edm::LogVerbatim("HFShower") << "HFFibre:: Speed of light in fibre " << cFibre << " m/ns"; diff --git a/SimG4CMS/Calo/src/HFShower.cc b/SimG4CMS/Calo/src/HFShower.cc index aaa2e0a6dff4e..729b035b56d2c 100644 --- a/SimG4CMS/Calo/src/HFShower.cc +++ b/SimG4CMS/Calo/src/HFShower.cc @@ -26,7 +26,8 @@ HFShower::HFShower(const std::string &name, : hcalConstant_(hcons), chkFibre_(chk) { edm::ParameterSet m_HF = p.getParameter("HFShower"); applyFidCut_ = m_HF.getParameter("ApplyFiducialCut"); - probMax_ = m_HF.getParameter("ProbMax"); + edm::ParameterSet m_HF2 = m_HF.getParameter("HFShowerBlock"); + probMax_ = m_HF2.getParameter("ProbMax"); edm::LogVerbatim("HFShower") << "HFShower:: Maximum probability cut off " << probMax_ << " Check flag " << chkFibre_; diff --git a/SimG4CMS/Calo/src/HFShowerLibrary.cc b/SimG4CMS/Calo/src/HFShowerLibrary.cc index 6226ea3d0ae4f..a4e5f18e14790 100644 --- a/SimG4CMS/Calo/src/HFShowerLibrary.cc +++ b/SimG4CMS/Calo/src/HFShowerLibrary.cc @@ -25,10 +25,12 @@ HFShowerLibrary::HFShowerLibrary(const std::string& name, const HcalSimulationParameters* hps, edm::ParameterSet const& p) : hcalConstant_(hcons), hf(nullptr), emBranch(nullptr), hadBranch(nullptr), npe(0) { - edm::ParameterSet m_HF = p.getParameter("HFShower"); + edm::ParameterSet m_HF = + (p.getParameter("HFShower")).getParameter("HFShowerBlock"); probMax = m_HF.getParameter("ProbMax"); - edm::ParameterSet m_HS = p.getParameter("HFShowerLibrary"); + edm::ParameterSet m_HS = + (p.getParameter("HFShowerLibrary")).getParameter("HFLibraryFileBlock"); edm::FileInPath fp = m_HS.getParameter("FileName"); std::string pTreeName = fp.fullPath(); backProb = m_HS.getParameter("BackProbability"); diff --git a/SimG4CMS/Calo/src/HFShowerParam.cc b/SimG4CMS/Calo/src/HFShowerParam.cc index 22a6a56062076..debb8bc48500e 100644 --- a/SimG4CMS/Calo/src/HFShowerParam.cc +++ b/SimG4CMS/Calo/src/HFShowerParam.cc @@ -32,12 +32,13 @@ HFShowerParam::HFShowerParam(const std::string& name, edm::ParameterSet const& p) : hcalConstants_(hcons), fillHisto_(false) { edm::ParameterSet m_HF = p.getParameter("HFShower"); + edm::ParameterSet m_HF2 = m_HF.getParameter("HFShowerBlock"); pePerGeV_ = m_HF.getParameter("PEPerGeV"); trackEM_ = m_HF.getParameter("TrackEM"); bool useShowerLibrary = m_HF.getParameter("UseShowerLibrary"); bool useGflash = m_HF.getParameter("UseHFGflash"); edMin_ = m_HF.getParameter("EminLibrary"); - onlyLong_ = m_HF.getParameter("OnlyLong"); + onlyLong_ = m_HF2.getParameter("OnlyLong"); ref_index_ = m_HF.getParameter("RefIndex"); double lambdaMean = m_HF.getParameter("LambdaMean"); aperture_ = cos(asin(m_HF.getParameter("Aperture"))); diff --git a/SimG4CMS/Calo/src/HGCScintSD.cc b/SimG4CMS/Calo/src/HGCScintSD.cc index d415be815bd0b..2c67408dc65ac 100644 --- a/SimG4CMS/Calo/src/HGCScintSD.cc +++ b/SimG4CMS/Calo/src/HGCScintSD.cc @@ -128,16 +128,20 @@ uint32_t HGCScintSD::setDetUnitId(const G4Step* aStep) { const G4StepPoint* preStepPoint = aStep->GetPreStepPoint(); const G4VTouchable* touch = preStepPoint->GetTouchable(); +#ifdef EDM_ML_DEBUG + edm::LogVerbatim("HGCSim") << "DepthsTop: " << touch->GetHistoryDepth() << ":" << levelT1_ << ":" << levelT2_; + printDetectorLevels(touch); +#endif //determine the exact position in global coordinates in the mass geometry G4ThreeVector hitPoint = preStepPoint->GetPosition(); float globalZ = touch->GetTranslation(0).z(); int iz(globalZ > 0 ? 1 : -1); - int layer, module, cell; - if ((touch->GetHistoryDepth() == levelT1_) || (touch->GetHistoryDepth() == levelT2_)) { + int layer(0), module(-1), cell(-1); + if (geom_mode_ == HGCalGeometryMode::TrapezoidModule) { + layer = touch->GetReplicaNumber(1); + } else if ((touch->GetHistoryDepth() == levelT1_) || (touch->GetHistoryDepth() == levelT2_)) { layer = touch->GetReplicaNumber(0); - module = -1; - cell = -1; #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCSim") << "DepthsTop: " << touch->GetHistoryDepth() << ":" << levelT1_ << ":" << levelT2_ << " name " << touch->GetVolume(0)->GetName() << " layer:module:cell " << layer << ":" diff --git a/SimG4CMS/Calo/src/HGCalSD.cc b/SimG4CMS/Calo/src/HGCalSD.cc index e756eb96df81c..be2335e0f30de 100644 --- a/SimG4CMS/Calo/src/HGCalSD.cc +++ b/SimG4CMS/Calo/src/HGCalSD.cc @@ -38,7 +38,7 @@ HGCalSD::HGCalSD(const std::string& name, clg, p, manager, - (float)(p.getParameter("HGCSD").getParameter("TimeSliceUnit")), + static_cast(p.getParameter("HGCSD").getParameter("TimeSliceUnit")), p.getParameter("HGCSD").getParameter("IgnoreTrackID")), hgcons_(nullptr), slopeMin_(0), @@ -129,16 +129,27 @@ uint32_t HGCalSD::setDetUnitId(const G4Step* aStep) { const G4StepPoint* preStepPoint = aStep->GetPreStepPoint(); const G4VTouchable* touch = preStepPoint->GetTouchable(); +#ifdef EDM_ML_DEBUG + edm::LogVerbatim("HGCSim") << "DepthsTop: " << touch->GetHistoryDepth() << ":" << levelT1_ << ":" << levelT2_; + printDetectorLevels(touch); +#endif //determine the exact position in global coordinates in the mass geometry G4ThreeVector hitPoint = preStepPoint->GetPosition(); float globalZ = touch->GetTranslation(0).z(); int iz(globalZ > 0 ? 1 : -1); - int layer, module, cell; - if ((touch->GetHistoryDepth() == levelT1_) || (touch->GetHistoryDepth() == levelT2_)) { + int layer(0), module(-1), cell(-1); + if (geom_mode_ == HGCalGeometryMode::Hexagon8Module) { + if (touch->GetHistoryDepth() > levelT2_) { + layer = touch->GetReplicaNumber(4); + module = touch->GetReplicaNumber(3); + cell = touch->GetReplicaNumber(1); + } else { + layer = touch->GetReplicaNumber(2); + module = touch->GetReplicaNumber(1); + } + } else if ((touch->GetHistoryDepth() == levelT1_) || (touch->GetHistoryDepth() == levelT2_)) { layer = touch->GetReplicaNumber(0); - module = -1; - cell = -1; #ifdef EDM_ML_DEBUG edm::LogVerbatim("HGCSim") << "DepthsTop: " << touch->GetHistoryDepth() << ":" << levelT1_ << ":" << levelT2_ << " name " << touch->GetVolume(0)->GetName() << " layer:module:cell " << layer << ":" @@ -230,7 +241,7 @@ uint32_t HGCalSD::setDetUnitId(int layer, int module, int cell, int iz, G4ThreeV ignoreRejection(); } } - if ((geom_mode_ == HGCalGeometryMode::Hexagon8File) || (id == 0)) + if ((geom_mode_ == HGCalGeometryMode::Hexagon8File) || (geom_mode_ == HGCalGeometryMode::Hexagon8Module) || (id == 0)) ignoreRejection(); return id; } diff --git a/SimG4CMS/Calo/test/python/runEta37_cfg.py b/SimG4CMS/Calo/test/python/runEta37_cfg.py new file mode 100644 index 0000000000000..7d8c8477aa75b --- /dev/null +++ b/SimG4CMS/Calo/test/python/runEta37_cfg.py @@ -0,0 +1,78 @@ +import FWCore.ParameterSet.Config as cms + +from Configuration.Eras.Era_Run3_cff import Run3 +process = cms.Process("PROD",Run3) +process.load("Configuration.Geometry.GeometryExtended2021Reco_cff") + +#from Configuration.Eras.Era_Run3_dd4hep_cff import Run3_dd4hep +#process = cms.Process("PROD",Run3_dd4hep) +#process.load("Configuration.Geometry.GeometryDD4hepExtended2021Reco_cff") + +process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi") +process.load('FWCore.MessageService.MessageLogger_cfi') +process.load("IOMC.EventVertexGenerators.VtxSmearedGauss_cfi") +process.load("Configuration.StandardSequences.MagneticField_cff") +process.load("Configuration.EventContent.EventContent_cff") +process.load('Configuration.StandardSequences.Generator_cff') +process.load('Configuration.StandardSequences.SimIdeal_cff') +process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff" +) +from Configuration.AlCa.GlobalTag import GlobalTag +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2021_realistic', '') + +process.MessageLogger.cerr.FwkReport.reportEvery = 5 +if hasattr(process,'MessageLogger'): + process.MessageLogger.G4cerr=dict() + process.MessageLogger.HcalSim=dict() + process.MessageLogger.HFShower=dict() + +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(5) +) + +process.source = cms.Source("EmptySource") + +process.generator = cms.EDProducer("FlatRandomEGunProducer", + PGunParameters = cms.PSet( + PartID = cms.vint32(211), + MinEta = cms.double(4.25), + MaxEta = cms.double(4.25), + MinPhi = cms.double(-3.14159265359), + MaxPhi = cms.double(3.14159265359), + MinE = cms.double(30.0), + MaxE = cms.double(30.0) + ), + Verbosity = cms.untracked.int32(0), + AddAntiParticle = cms.bool(False), + firstRun = cms.untracked.uint32(1) +) + +process.output = cms.OutputModule("PoolOutputModule", + process.FEVTSIMEventContent, + fileName = cms.untracked.string('simevent030eta37.root') +) + +process.Timing = cms.Service("Timing") + +process.generation_step = cms.Path(process.pgen) +process.simulation_step = cms.Path(process.psim) +process.out_step = cms.EndPath(process.output) + +process.g4SimHits.Physics.type = 'SimG4Core/Physics/FTFP_BERT_EMM' +#process.g4SimHits.G4Commands = ['/tracking/verbose 1'] + +# Schedule definition +process.schedule = cms.Schedule(process.generation_step, + process.simulation_step, + process.out_step + ) + +# filter all path with the production filter sequence +for path in process.paths: + getattr(process,path)._seq = process.generator * getattr(process,path)._seq + diff --git a/SimG4CMS/Calo/test/python/runHGC5_cfg.py b/SimG4CMS/Calo/test/python/runHGC5_cfg.py new file mode 100644 index 0000000000000..be7b93bd3b88c --- /dev/null +++ b/SimG4CMS/Calo/test/python/runHGC5_cfg.py @@ -0,0 +1,78 @@ +import FWCore.ParameterSet.Config as cms +from Configuration.Eras.Era_Phase2C11_cff import Phase2C11 + +process = cms.Process("PROD",Phase2C11) + +process.load("SimGeneral.HepPDTESSource.pythiapdt_cfi") +process.load("IOMC.EventVertexGenerators.VtxSmearedGauss_cfi") +process.load("Geometry.HGCalCommonData.testHGCV15XML_cfi") +process.load("Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cfi") +process.load("Geometry.EcalCommonData.ecalSimulationParameters_cff") +process.load("Geometry.HGCalCommonData.hgcalV15ParametersInitialization_cfi") +process.load("Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi") +process.load("Geometry.HcalCommonData.hcalDDDSimConstants_cff") +process.load("Configuration.StandardSequences.MagneticField_cff") +process.load("Configuration.EventContent.EventContent_cff") +process.load('Configuration.StandardSequences.Generator_cff') +process.load('Configuration.StandardSequences.SimIdeal_cff') +process.load('FWCore.MessageService.MessageLogger_cfi') +process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff") +from Configuration.AlCa.GlobalTag import GlobalTag +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase2_realistic_T21', '') + +if hasattr(process,'MessageLogger'): + process.MessageLogger.HGCalGeom = dict() + process.MessageLogger.HGCSim = dict() + process.MessageLogger.CaloSim = dict() + +process.load("IOMC.RandomEngine.IOMC_cff") +process.RandomNumberGeneratorService.generator.initialSeed = 456789 +process.RandomNumberGeneratorService.g4SimHits.initialSeed = 9876 +process.RandomNumberGeneratorService.VtxSmeared.initialSeed = 123456789 + +process.Timing = cms.Service("Timing") + +process.maxEvents = cms.untracked.PSet( + input = cms.untracked.int32(10) +) + +process.source = cms.Source("EmptySource", + firstRun = cms.untracked.uint32(1), + firstEvent = cms.untracked.uint32(1) +) + +process.generator = cms.EDProducer("FlatRandomEGunProducer", + PGunParameters = cms.PSet( + PartID = cms.vint32(211), + MinEta = cms.double(1.75), + MaxEta = cms.double(2.50), + MinPhi = cms.double(-3.1415926), + MaxPhi = cms.double(3.1415926), + MinE = cms.double(100.00), + MaxE = cms.double(100.00) + ), + Verbosity = cms.untracked.int32(0), + AddAntiParticle = cms.bool(False) +) + +process.output = cms.OutputModule("PoolOutputModule", + process.FEVTSIMEventContent, + fileName = cms.untracked.string('simevent.root') +) + +process.generation_step = cms.Path(process.pgen) +process.simulation_step = cms.Path(process.psim) +process.out_step = cms.EndPath(process.output) + +process.g4SimHits.Physics.type = 'SimG4Core/Physics/FTFP_BERT_EMN' +process.g4SimHits.Physics.DefaultCutValue = 0.1 + +# Schedule definition +process.schedule = cms.Schedule(process.generation_step, + process.simulation_step, + process.out_step + ) + +# filter all path with the production filter sequence +for path in process.paths: + getattr(process,path)._seq = process.generator * getattr(process,path)._seq diff --git a/SimG4Core/Application/interface/LowEnergyFastSimModel.h b/SimG4Core/Application/interface/LowEnergyFastSimModel.h index 300ab6106cc31..a806a9577c4d2 100644 --- a/SimG4Core/Application/interface/LowEnergyFastSimModel.h +++ b/SimG4Core/Application/interface/LowEnergyFastSimModel.h @@ -10,6 +10,8 @@ #include "G4Region.hh" #include "G4Types.hh" +class TrackingAction; + class LowEnergyFastSimModel : public G4VFastSimulationModel { public: LowEnergyFastSimModel(const G4String& name, G4Region* region, const edm::ParameterSet& parSet); @@ -19,8 +21,9 @@ class LowEnergyFastSimModel : public G4VFastSimulationModel { void DoIt(const G4FastTrack& fastTrack, G4FastStep& fastStep) override; private: - const G4double fEmax; - const G4Envelope* const fRegion; + G4double fEmax; + const G4Envelope* fRegion; + const TrackingAction* fTrackingAction; GFlashHitMaker fHitMaker; LowEnergyFastSimParam param; }; diff --git a/SimG4Core/Application/interface/RunManagerMT.h b/SimG4Core/Application/interface/RunManagerMT.h index 66b71bbdd2c17..093f0c48911b1 100644 --- a/SimG4Core/Application/interface/RunManagerMT.h +++ b/SimG4Core/Application/interface/RunManagerMT.h @@ -102,7 +102,6 @@ class RunManagerMT { const std::string m_PhysicsTablesDir; bool m_StorePhysicsTables; bool m_RestorePhysicsTables; - bool m_UseParametrisedEMPhysics; bool m_check; edm::ParameterSet m_pPhysics; edm::ParameterSet m_pRunAction; diff --git a/SimG4Core/Application/python/g4SimHits_cfi.py b/SimG4Core/Application/python/g4SimHits_cfi.py index 20c3333abbeca..b9572949f64ae 100644 --- a/SimG4Core/Application/python/g4SimHits_cfi.py +++ b/SimG4Core/Application/python/g4SimHits_cfi.py @@ -5,6 +5,9 @@ ## HF Raddam Dose Class in /SimG4CMS/Calo from SimG4CMS.Calo.HFDarkeningParams_cff import * +## HF shower parameters +from Geometry.HcalSimData.HFParameters_cff import * + ## This object is used to customise g4SimHits for different running scenarios common_heavy_suppression = cms.PSet( @@ -159,6 +162,14 @@ CutsOnProton = cms.bool(True), DefaultCutValue = cms.double(1.0), ## cuts in cm G4BremsstrahlungThreshold = cms.double(0.5), ## cut in GeV + G4MuonBremsstrahlungThreshold = cms.double(10000.), ## cut in GeV + G4MscRangeFactor = cms.double(0.04), + G4MscGeomFactor = cms.double(2.5), + G4MscSafetyFactor = cms.double(0.6), + G4MscLambdaLimit = cms.double(1.0), # mm + G4MscStepLimit = cms.string("UseSafety"), + G4GeneralProcess = cms.bool(False), + ReadMuonData = cms.bool(False), Verbosity = cms.untracked.int32(0), # 1 will print cuts as they get set from DD # 2 will do as 1 + will dump Geant4 table of cuts @@ -185,7 +196,7 @@ EmaxFTFP = cms.double(25.), # in GeV EmaxBERTpi = cms.double(12.), # in GeV LowEnergyGflashEcal = cms.bool(False), - LowEnergyGflashEcalEmax = cms.double(100), + LowEnergyGflashEcalEmax = cms.double(0.02), # in GeV GflashEcal = cms.bool(False), GflashHcal = cms.bool(False), GflashEcalHad = cms.bool(False), @@ -213,8 +224,8 @@ EnergyRMSE = cms.vdouble(0.0,0.0), MinStepLimit = cms.double(1.0), ModifyTransportation = cms.bool(False), - ThresholdWarningEnergy = cms.untracked.double(100.0), - ThresholdImportantEnergy = cms.untracked.double(250.0), + ThresholdWarningEnergy = cms.untracked.double(100.0), #in MeV + ThresholdImportantEnergy = cms.untracked.double(250.0), #in MeV ThresholdTrials = cms.untracked.int32(10) ), Generator = cms.PSet( @@ -394,14 +405,11 @@ HFShower = cms.PSet( common_UsePMT, common_UseHF, - ProbMax = cms.double(1.0), - CFibre = cms.double(0.5), PEPerGeV = cms.double(0.31), TrackEM = cms.bool(False), UseShowerLibrary = cms.bool(True), UseHFGflash = cms.bool(False), EminLibrary = cms.double(0.0), - OnlyLong = cms.bool(True), LambdaMean = cms.double(350.0), ApplyFiducialCut = cms.bool(True), RefIndex = cms.double(1.459), @@ -409,18 +417,11 @@ ApertureTrapped = cms.double(0.22), CosApertureTrapped= cms.double(0.5), SinPsiMax = cms.untracked.double(0.5), - ParametrizeLast = cms.untracked.bool(False) + ParametrizeLast = cms.untracked.bool(False), + HFShowerBlock = cms.PSet(refToPSet_ = cms.string("HFShowerBlock")) ), HFShowerLibrary = cms.PSet( - FileName = cms.FileInPath('SimG4CMS/Calo/data/HFShowerLibrary_oldpmt_noatt_eta4_16en_v3.root'), - BackProbability = cms.double(0.2), - TreeEMID = cms.string('emParticles'), - TreeHadID = cms.string('hadParticles'), - Verbosity = cms.untracked.bool(False), - ApplyFiducialCut= cms.bool(True), - BranchPost = cms.untracked.string(''), - BranchEvt = cms.untracked.string(''), - BranchPre = cms.untracked.string('') + HFLibraryFileBlock = cms.PSet(refToPSet_ = cms.string("HFLibraryFileBlock")) ), HFShowerPMT = cms.PSet( common_UsePMT, @@ -604,8 +605,6 @@ ## Change the HFShowerLibrary file from Run 2 ## from Configuration.Eras.Modifier_run2_common_cff import run2_common -run2_common.toModify( g4SimHits.HFShowerLibrary, FileName = 'SimG4CMS/Calo/data/HFShowerLibrary_npmt_noatt_eta4_16en_v4.root' ) -run2_common.toModify( g4SimHits.HFShower, ProbMax = 0.5) ## ## Change HCAL numbering scheme in 2017 diff --git a/SimG4Core/Application/src/LowEnergyFastSimModel.cc b/SimG4Core/Application/src/LowEnergyFastSimModel.cc index ef15c4a228cd2..9722e4a1bc2e5 100644 --- a/SimG4Core/Application/src/LowEnergyFastSimModel.cc +++ b/SimG4Core/Application/src/LowEnergyFastSimModel.cc @@ -2,8 +2,10 @@ #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "SimG4Core/Application/interface/LowEnergyFastSimModel.h" +#include "SimG4Core/Application/interface/TrackingAction.h" #include "G4VFastSimulationModel.hh" +#include "G4EventManager.hh" #include "G4Electron.hh" #include "GFlashHitMaker.hh" #include "G4Region.hh" @@ -12,16 +14,23 @@ constexpr double twomass = 2 * CLHEP::electron_mass_c2; LowEnergyFastSimModel::LowEnergyFastSimModel(const G4String& name, G4Region* region, const edm::ParameterSet& parSet) - : G4VFastSimulationModel(name, region), - fEmax(parSet.getParameter("LowEnergyGflashEcalEmax")), - fRegion(region) {} + : G4VFastSimulationModel(name, region), fRegion(region), fTrackingAction(nullptr) { + fEmax = parSet.getParameter("LowEnergyGflashEcalEmax") * CLHEP::GeV; +} G4bool LowEnergyFastSimModel::IsApplicable(const G4ParticleDefinition& particle) { return (11 == std::abs(particle.GetPDGEncoding())); } G4bool LowEnergyFastSimModel::ModelTrigger(const G4FastTrack& fastTrack) { - G4double energy = fastTrack.GetPrimaryTrack()->GetKineticEnergy(); + const G4Track* track = fastTrack.GetPrimaryTrack(); + if (nullptr == fTrackingAction) { + fTrackingAction = static_cast(G4EventManager::GetEventManager()->GetUserTrackingAction()); + } + int pdgMother = std::abs(fTrackingAction->geant4Track()->GetDefinition()->GetPDGEncoding()); + if (pdgMother == 11 || pdgMother == 22) + return false; + G4double energy = track->GetKineticEnergy(); return energy < fEmax && fRegion == fastTrack.GetEnvelope(); } diff --git a/SimG4Core/Application/src/ParametrisedEMPhysics.cc b/SimG4Core/Application/src/ParametrisedEMPhysics.cc index 9c25252e3a08c..57faef417bb2a 100644 --- a/SimG4Core/Application/src/ParametrisedEMPhysics.cc +++ b/SimG4Core/Application/src/ParametrisedEMPhysics.cc @@ -66,13 +66,20 @@ G4ThreadLocal ParametrisedEMPhysics::TLSmod* ParametrisedEMPhysics::m_tpmod = nu ParametrisedEMPhysics::ParametrisedEMPhysics(const std::string& name, const edm::ParameterSet& p) : G4VPhysicsConstructor(name), theParSet(p) { - // bremsstrahlung threshold and EM verbosity G4EmParameters* param = G4EmParameters::Instance(); G4int verb = theParSet.getUntrackedParameter("Verbosity", 0); param->SetVerbose(verb); - G4double bremth = theParSet.getParameter("G4BremsstrahlungThreshold") * GeV; + G4double bremth = theParSet.getParameter("G4BremsstrahlungThreshold") * CLHEP::GeV; param->SetBremsstrahlungTh(bremth); + G4double mubrth = theParSet.getParameter("G4MuonBremsstrahlungThreshold") * CLHEP::GeV; + param->SetMuHadBremsstrahlungTh(mubrth); + + bool genp = theParSet.getParameter("G4GeneralProcess"); + param->SetGeneralProcessActive(genp); + + bool mudat = theParSet.getParameter("ReadMuonData"); + param->SetRetrieveMuDataFromFile(mudat); bool fluo = theParSet.getParameter("FlagFluo"); param->SetFluo(fluo); diff --git a/SimG4Core/Application/src/RunManagerMT.cc b/SimG4Core/Application/src/RunManagerMT.cc index 177bf0fd2d306..bc79172131078 100644 --- a/SimG4Core/Application/src/RunManagerMT.cc +++ b/SimG4Core/Application/src/RunManagerMT.cc @@ -70,7 +70,6 @@ RunManagerMT::RunManagerMT(edm::ParameterSet const& p) m_PhysicsTablesDir(p.getUntrackedParameter("PhysicsTablesDirectory", "")), m_StorePhysicsTables(p.getUntrackedParameter("StorePhysicsTables", false)), m_RestorePhysicsTables(p.getUntrackedParameter("RestorePhysicsTables", false)), - m_UseParametrisedEMPhysics(p.getUntrackedParameter("UseParametrisedEMPhysics")), m_pPhysics(p.getParameter("Physics")), m_pRunAction(p.getParameter("RunAction")), m_g4overlap(p.getUntrackedParameter("G4CheckOverlap")), @@ -171,8 +170,7 @@ void RunManagerMT::initG4(const DDCompactView* pDD, // adding GFlash, Russian Roulette for eletrons and gamma, // step limiters on top of any Physics Lists - if (m_UseParametrisedEMPhysics) - phys->RegisterPhysics(new ParametrisedEMPhysics("EMoptions", m_pPhysics)); + phys->RegisterPhysics(new ParametrisedEMPhysics("EMoptions", m_pPhysics)); if (m_RestorePhysicsTables) { m_physicsList->SetPhysicsTableRetrieved(m_PhysicsTablesDir); diff --git a/SimG4Core/Configuration/test/dd4hep_ttbar_2026D49_Step1_cfg.py b/SimG4Core/Configuration/test/dd4hep_ttbar_2026D77_Step1_cfg.py similarity index 97% rename from SimG4Core/Configuration/test/dd4hep_ttbar_2026D49_Step1_cfg.py rename to SimG4Core/Configuration/test/dd4hep_ttbar_2026D77_Step1_cfg.py index 0df81bd5a8d43..a8910e03b01a0 100644 --- a/SimG4Core/Configuration/test/dd4hep_ttbar_2026D49_Step1_cfg.py +++ b/SimG4Core/Configuration/test/dd4hep_ttbar_2026D77_Step1_cfg.py @@ -1,8 +1,8 @@ import FWCore.ParameterSet.Config as cms -from Configuration.Eras.Era_Phase2C9_dd4hep_cff import Phase2C9_dd4hep +from Configuration.Eras.Era_Phase2C11_dd4hep_cff import Phase2C11_dd4hep -process = cms.Process('SIM',Phase2C9_dd4hep) +process = cms.Process('SIM',Phase2C11_dd4hep) # import of standard configurations process.load('Configuration.StandardSequences.Services_cff') @@ -10,7 +10,7 @@ process.load('FWCore.MessageService.MessageLogger_cfi') process.load('Configuration.EventContent.EventContent_cff') process.load('SimGeneral.MixingModule.mixNoPU_cfi') -process.load('Configuration.Geometry.GeometryDD4hepExtended2026D49_cff') +process.load('Configuration.Geometry.GeometryDD4hepExtended2026D77_cff') process.load('Configuration.StandardSequences.MagneticField_cff') process.load('Configuration.StandardSequences.Generator_cff') process.load('IOMC.EventVertexGenerators.VtxSmearedHLLHC14TeV_cfi') @@ -22,6 +22,7 @@ if hasattr(process,'MessageLogger'): process.MessageLogger.cerr.Geometry=dict() process.MessageLogger.cerr.SimG4CoreApplication=dict() + process.MessageLogger.cerr.HGCalGeom=dict() process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(10), @@ -85,7 +86,7 @@ # Other statements process.genstepfilter.triggerConditions=cms.vstring("generation_step") from Configuration.AlCa.GlobalTag import GlobalTag -process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase2_realistic_T15', '') +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase2_realistic_T21', '') process.generator = cms.EDFilter("Pythia8GeneratorFilter", PythiaParameters = cms.PSet( diff --git a/SimG4Core/CustomPhysics/data/particle_darkphoton.txt b/SimG4Core/CustomPhysics/data/particle_darkphoton.txt index 3cb6ba44eecbe..c61d7a2d3cc5c 100644 --- a/SimG4Core/CustomPhysics/data/particle_darkphoton.txt +++ b/SimG4Core/CustomPhysics/data/particle_darkphoton.txt @@ -1,4 +1,5 @@ Block MASS # # PDG code mass particle - 1072000 0.0 # darkphoton + 1072000 0.0 # darkphoton + 1023 0.0005 # darkphoton1 Block diff --git a/SimG4Core/CustomPhysics/interface/CMSDarkPairProductionProcess.h b/SimG4Core/CustomPhysics/interface/CMSDarkPairProductionProcess.h index 11a60ee743406..4d3c87e00c7db 100644 --- a/SimG4Core/CustomPhysics/interface/CMSDarkPairProductionProcess.h +++ b/SimG4Core/CustomPhysics/interface/CMSDarkPairProductionProcess.h @@ -32,9 +32,6 @@ class CMSDarkPairProductionProcess : public G4VEmProcess G4double MinPrimaryEnergy(const G4ParticleDefinition*, const G4Material*) override; - // Print few lines of informations about the process: validity range, - void PrintInfo() override; - protected: void InitialiseProcess(const G4ParticleDefinition*) override; diff --git a/SimG4Core/CustomPhysics/src/CMSDarkPairProductionProcess.cc b/SimG4Core/CustomPhysics/src/CMSDarkPairProductionProcess.cc index 883db9885a7b1..30cf43c329126 100644 --- a/SimG4Core/CustomPhysics/src/CMSDarkPairProductionProcess.cc +++ b/SimG4Core/CustomPhysics/src/CMSDarkPairProductionProcess.cc @@ -27,7 +27,8 @@ CMSDarkPairProductionProcess::CMSDarkPairProductionProcess(G4double df, const G4 CMSDarkPairProductionProcess::~CMSDarkPairProductionProcess() {} G4bool CMSDarkPairProductionProcess::IsApplicable(const G4ParticleDefinition& p) { - return (p.GetParticleType() == "darkpho"); + G4int pdg = std::abs(p.GetPDGEncoding()); + return (pdg == 1023 || pdg == 1072000); } void CMSDarkPairProductionProcess::InitialiseProcess(const G4ParticleDefinition* p) { @@ -38,8 +39,6 @@ void CMSDarkPairProductionProcess::InitialiseProcess(const G4ParticleDefinition* } } -G4double CMSDarkPairProductionProcess::MinPrimaryEnergy(const G4ParticleDefinition*, const G4Material*) { - return 2 * electron_mass_c2; +G4double CMSDarkPairProductionProcess::MinPrimaryEnergy(const G4ParticleDefinition* p, const G4Material*) { + return std::max(2 * CLHEP::electron_mass_c2 - p->GetPDGMass(), 0.0); } - -void CMSDarkPairProductionProcess::PrintInfo() {} diff --git a/SimG4Core/CustomPhysics/src/CustomPDGParser.cc b/SimG4Core/CustomPhysics/src/CustomPDGParser.cc index bd88ea236ae5d..6c94db7c9048b 100644 --- a/SimG4Core/CustomPhysics/src/CustomPDGParser.cc +++ b/SimG4Core/CustomPhysics/src/CustomPDGParser.cc @@ -1,12 +1,6 @@ #include -//#include #include -/*CustomPDGParser::CustomPDGParser(int pdgCode) : m_pdgCode(pdgCode) -{ - -}*/ - bool CustomPDGParser::s_isRHadron(int pdg) { int pdgAbs = abs(pdg); return ((pdgAbs % 100000 / 10000 == 9) || (pdgAbs % 10000 / 1000 == 9) || s_isRGlueball(pdg)); @@ -39,7 +33,7 @@ bool CustomPDGParser::s_isRGlueball(int pdg) { bool CustomPDGParser::s_isDphoton(int pdg) { int pdgAbs = abs(pdg); - return (pdgAbs == 1072000); + return (pdgAbs == 1072000) || (pdgAbs == 1023); } bool CustomPDGParser::s_isRMeson(int pdg) { diff --git a/SimG4Core/Generators/src/Generator.cc b/SimG4Core/Generators/src/Generator.cc index 8020681f65aa3..85a4495d72d55 100644 --- a/SimG4Core/Generators/src/Generator.cc +++ b/SimG4Core/Generators/src/Generator.cc @@ -152,7 +152,8 @@ void Generator::HepMC2G4(const HepMC::GenEvent *evt_orig, G4Event *g4evt) { for (pitr = (*vitr)->particles_begin(HepMC::children); pitr != (*vitr)->particles_end(HepMC::children); ++pitr) { // For purposes of this function, the status is defined as follows: // 1: particles are not decayed by generator - // 2: particles are decayed by generator but need to be propagated by + // 2: particles are decayed by generator but need to be propagated by GEANT + // 3: particles are decayed by generator and do not need to be propagated by GEANT int status = (*pitr)->status(); int pdg = (*pitr)->pdg_id(); if (status > 3 && isExotic(pdg) && (!(isExoticNonDetectable(pdg)))) { @@ -163,6 +164,9 @@ void Generator::HepMC2G4(const HepMC::GenEvent *evt_orig, G4Event *g4evt) { // be propagated by GEANT, so do not change their status code. status = 2; } + if (status == 2 && abs(pdg) == 9900015) { + status = 3; + } // Particles which are not decayed by generator if (status == 1) { @@ -244,6 +248,9 @@ void Generator::HepMC2G4(const HepMC::GenEvent *evt_orig, G4Event *g4evt) { if (status > 3 && isExotic(pdg) && (!(isExoticNonDetectable(pdg)))) { status = hasDecayVertex ? 2 : 1; } + if (status == 2 && abs(pdg) == 9900015) { + status = 3; + } // this particle has predefined decay but has no vertex if (2 == status && !hasDecayVertex) { diff --git a/SimG4Core/PhysicsLists/interface/CMSEmStandardPhysics.h b/SimG4Core/PhysicsLists/interface/CMSEmStandardPhysics.h index 2c268d6368fbd..5f6aad8b94421 100644 --- a/SimG4Core/PhysicsLists/interface/CMSEmStandardPhysics.h +++ b/SimG4Core/PhysicsLists/interface/CMSEmStandardPhysics.h @@ -3,16 +3,24 @@ #include "G4VPhysicsConstructor.hh" #include "globals.hh" +#include "G4MscStepLimitType.hh" + +#include "FWCore/ParameterSet/interface/ParameterSet.h" class CMSEmStandardPhysics : public G4VPhysicsConstructor { public: - CMSEmStandardPhysics(G4int ver); + CMSEmStandardPhysics(G4int ver, const edm::ParameterSet& p); ~CMSEmStandardPhysics() override; void ConstructParticle() override; void ConstructProcess() override; private: + G4double fRangeFactor; + G4double fGeomFactor; + G4double fSafetyFactor; + G4double fLambdaLimit; + G4MscStepLimitType fStepLimitType; G4int verbose; }; diff --git a/SimG4Core/PhysicsLists/interface/CMSHadronPhysicsFTFP_BERT.h b/SimG4Core/PhysicsLists/interface/CMSHadronPhysicsFTFP_BERT.h index 1409d40dde967..c6663df263de8 100644 --- a/SimG4Core/PhysicsLists/interface/CMSHadronPhysicsFTFP_BERT.h +++ b/SimG4Core/PhysicsLists/interface/CMSHadronPhysicsFTFP_BERT.h @@ -4,8 +4,8 @@ // // Hadron physics for the new CMS physics list FTFP_BERT_EMM_TRK. // The hadron physics of FTFP_BERT has the transition between Bertini -// (BERT) intra-nuclear cascade model and Fritiof (FTF) string model in the -// energy region [4, 5] GeV (instead of the default for Geant4 10.4). +// (BERT) intra-nuclear cascade model and Fritiof (FTF) string model +// optimized for CMS. //--------------------------------------------------------------------------- // #ifndef SimG4Core_PhysicsLists_CMSHadronPhysicsFTFP_BERT_h @@ -14,32 +14,19 @@ #include "globals.hh" #include "G4ios.hh" -#include "G4VPhysicsConstructor.hh" +#include "G4HadronPhysicsFTFP_BERT.hh" -class CMSHadronPhysicsFTFP_BERT : public G4VPhysicsConstructor { +class CMSHadronPhysicsFTFP_BERT : public G4HadronPhysicsFTFP_BERT { public: explicit CMSHadronPhysicsFTFP_BERT(G4int verb); explicit CMSHadronPhysicsFTFP_BERT(G4double e1, G4double e2, G4double e3); ~CMSHadronPhysicsFTFP_BERT() override; - void ConstructParticle() override; void ConstructProcess() override; -private: - //This calls the specific ones for the different particles in order - void CreateModels(); - void Neutron(); - void Proton(); - void Pion(); - void Kaon(); - void Others(); - void DumpBanner(); - //This contains extra configurataion specific to this PL - void ExtraConfiguration(); - - G4double minFTFP_; - G4double maxBERT_; - G4double maxBERTpi_; + // copy constructor and hide assignment operator + CMSHadronPhysicsFTFP_BERT(CMSHadronPhysicsFTFP_BERT &) = delete; + CMSHadronPhysicsFTFP_BERT &operator=(const CMSHadronPhysicsFTFP_BERT &right) = delete; }; #endif diff --git a/SimG4Core/PhysicsLists/interface/CMSHadronPhysicsFTFP_BERT106.h b/SimG4Core/PhysicsLists/interface/CMSHadronPhysicsFTFP_BERT106.h new file mode 100644 index 0000000000000..91f360b379631 --- /dev/null +++ b/SimG4Core/PhysicsLists/interface/CMSHadronPhysicsFTFP_BERT106.h @@ -0,0 +1,45 @@ +//--------------------------------------------------------------------------- +// Author: Vladimir Ivanchenko +// Date: March 2018 +// +// Hadron physics for the new CMS physics list FTFP_BERT_EMM_TRK. +// The hadron physics of FTFP_BERT has the transition between Bertini +// (BERT) intra-nuclear cascade model and Fritiof (FTF) string model in the +// energy region [4, 5] GeV (instead of the default for Geant4 10.4). +//--------------------------------------------------------------------------- +// +#ifndef SimG4Core_PhysicsLists_CMSHadronPhysicsFTFP_BERT106_h +#define SimG4Core_PhysicsLists_CMSHadronPhysicsFTFP_BERT106_h + +#include "globals.hh" +#include "G4ios.hh" + +#include "G4VPhysicsConstructor.hh" + +class CMSHadronPhysicsFTFP_BERT106 : public G4VPhysicsConstructor { +public: + explicit CMSHadronPhysicsFTFP_BERT106(G4int verb); + explicit CMSHadronPhysicsFTFP_BERT106(G4double e1, G4double e2, G4double e3); + ~CMSHadronPhysicsFTFP_BERT106() override; + + void ConstructParticle() override; + void ConstructProcess() override; + +private: + //This calls the specific ones for the different particles in order + void CreateModels(); + void Neutron(); + void Proton(); + void Pion(); + void Kaon(); + void Others(); + void DumpBanner(); + //This contains extra configurataion specific to this PL + void ExtraConfiguration(); + + G4double minFTFP_; + G4double maxBERT_; + G4double maxBERTpi_; +}; + +#endif diff --git a/SimG4Core/PhysicsLists/plugins/DummyPhysics.cc b/SimG4Core/PhysicsLists/plugins/DummyPhysics.cc index ce9ccffc53787..fd43f80a4aeeb 100644 --- a/SimG4Core/PhysicsLists/plugins/DummyPhysics.cc +++ b/SimG4Core/PhysicsLists/plugins/DummyPhysics.cc @@ -11,5 +11,5 @@ DummyPhysics::DummyPhysics(const edm::ParameterSet& p) : PhysicsList(p) { RegisterPhysics(new DummyEMPhysics(ver)); } RegisterPhysics(new G4DecayPhysics(ver)); - edm::LogInfo("PhysicsList") << "DummyPhysics constructed with EM Physics " << emPhys << " and Decay"; + edm::LogVerbatim("PhysicsList") << "DummyPhysics constructed with EM Physics " << emPhys << " and Decay"; } diff --git a/SimG4Core/PhysicsLists/plugins/FTFPCMS_BERT_EML.cc b/SimG4Core/PhysicsLists/plugins/FTFPCMS_BERT_EML.cc index 4d787bf1548a4..11aad9d53634b 100644 --- a/SimG4Core/PhysicsLists/plugins/FTFPCMS_BERT_EML.cc +++ b/SimG4Core/PhysicsLists/plugins/FTFPCMS_BERT_EML.cc @@ -1,5 +1,4 @@ #include "FTFPCMS_BERT_EML.h" -#include "SimG4Core/PhysicsLists/interface/CMSEmStandardPhysicsLPM.h" #include "SimG4Core/PhysicsLists/interface/CMSHadronPhysicsFTFP_BERT.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" @@ -10,6 +9,7 @@ #include "G4HadronElasticPhysics.hh" #include "G4NeutronTrackingCut.hh" #include "G4HadronicProcessStore.hh" +#include "G4EmStandardPhysics_option1.hh" FTFPCMS_BERT_EML::FTFPCMS_BERT_EML(const edm::ParameterSet& p) : PhysicsList(p) { int ver = p.getUntrackedParameter("Verbosity", 0); @@ -28,7 +28,7 @@ FTFPCMS_BERT_EML::FTFPCMS_BERT_EML(const edm::ParameterSet& p) : PhysicsList(p) if (emPhys) { // EM Physics - RegisterPhysics(new CMSEmStandardPhysicsLPM(ver)); + RegisterPhysics(new G4EmStandardPhysics_option1(ver)); // Synchroton Radiation & GN Physics G4EmExtraPhysics* gn = new G4EmExtraPhysics(ver); diff --git a/SimG4Core/PhysicsLists/plugins/FTFPCMS_BERT_EMM.cc b/SimG4Core/PhysicsLists/plugins/FTFPCMS_BERT_EMM.cc index b022c7d8bc7c7..22d99bcd6afce 100644 --- a/SimG4Core/PhysicsLists/plugins/FTFPCMS_BERT_EMM.cc +++ b/SimG4Core/PhysicsLists/plugins/FTFPCMS_BERT_EMM.cc @@ -1,6 +1,8 @@ #include "FTFPCMS_BERT_EMM.h" +#include "SimG4Core/PhysicsLists/interface/CMSEmStandardPhysics.h" #include "SimG4Core/PhysicsLists/interface/CMSEmStandardPhysicsLPM.h" #include "SimG4Core/PhysicsLists/interface/CMSHadronPhysicsFTFP_BERT.h" +#include "SimG4Core/PhysicsLists/interface/CMSHadronPhysicsFTFP_BERT106.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "G4DecayPhysics.hh" @@ -45,7 +47,7 @@ FTFPCMS_BERT_EMM::FTFPCMS_BERT_EMM(const edm::ParameterSet& p) : PhysicsList(p) RegisterPhysics(new G4HadronElasticPhysics(ver)); // Hadron Physics - RegisterPhysics(new CMSHadronPhysicsFTFP_BERT(minFTFP, maxBERT, maxBERTpi)); + RegisterPhysics(new CMSHadronPhysicsFTFP_BERT106(minFTFP, maxBERT, maxBERTpi)); // Stopping Physics RegisterPhysics(new G4StoppingPhysics(ver)); diff --git a/SimG4Core/PhysicsLists/plugins/FTFPCMS_BERT_EMM_TRK.cc b/SimG4Core/PhysicsLists/plugins/FTFPCMS_BERT_EMM_TRK.cc index 14bdf3da9a597..488d1fd53e8ba 100644 --- a/SimG4Core/PhysicsLists/plugins/FTFPCMS_BERT_EMM_TRK.cc +++ b/SimG4Core/PhysicsLists/plugins/FTFPCMS_BERT_EMM_TRK.cc @@ -1,5 +1,5 @@ #include "FTFPCMS_BERT_EMM_TRK.h" -#include "SimG4Core/PhysicsLists/interface/CMSEmStandardPhysicsLPM.h" +#include "SimG4Core/PhysicsLists/interface/CMSEmStandardPhysics.h" #include "SimG4Core/PhysicsLists/interface/CMSHadronPhysicsFTFP_BERT.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" @@ -23,7 +23,7 @@ FTFPCMS_BERT_EMM_TRK::FTFPCMS_BERT_EMM_TRK(const edm::ParameterSet& p) : Physics if (emPhys) { // EM Physics - RegisterPhysics(new CMSEmStandardPhysicsLPM(ver)); + RegisterPhysics(new CMSEmStandardPhysics(ver, p)); // Synchroton Radiation & GN Physics G4EmExtraPhysics* gn = new G4EmExtraPhysics(ver); diff --git a/SimG4Core/PhysicsLists/plugins/FTFPCMS_BERT_HP_EMM.cc b/SimG4Core/PhysicsLists/plugins/FTFPCMS_BERT_HP_EMM.cc index 60701397b216f..b334cbf5060e8 100644 --- a/SimG4Core/PhysicsLists/plugins/FTFPCMS_BERT_HP_EMM.cc +++ b/SimG4Core/PhysicsLists/plugins/FTFPCMS_BERT_HP_EMM.cc @@ -1,5 +1,5 @@ #include "FTFPCMS_BERT_HP_EMM.h" -#include "SimG4Core/PhysicsLists/interface/CMSEmStandardPhysicsLPM.h" +#include "SimG4Core/PhysicsLists/interface/CMSEmStandardPhysics.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "G4ThermalNeutrons.hh" @@ -28,7 +28,7 @@ FTFPCMS_BERT_HP_EMM::FTFPCMS_BERT_HP_EMM(const edm::ParameterSet& p) : PhysicsLi if (emPhys) { // EM Physics - RegisterPhysics(new CMSEmStandardPhysicsLPM(ver)); + RegisterPhysics(new CMSEmStandardPhysics(ver, p)); // Synchroton Radiation & GN Physics G4EmExtraPhysics* gn = new G4EmExtraPhysics(ver); diff --git a/SimG4Core/PhysicsLists/plugins/FTFPCMS_INCLXX_EMM.cc b/SimG4Core/PhysicsLists/plugins/FTFPCMS_INCLXX_EMM.cc index fa81d3b3dac95..1102e817810e8 100644 --- a/SimG4Core/PhysicsLists/plugins/FTFPCMS_INCLXX_EMM.cc +++ b/SimG4Core/PhysicsLists/plugins/FTFPCMS_INCLXX_EMM.cc @@ -1,5 +1,5 @@ #include "FTFPCMS_INCLXX_EMM.h" -#include "SimG4Core/PhysicsLists/interface/CMSEmStandardPhysicsLPM.h" +#include "SimG4Core/PhysicsLists/interface/CMSEmStandardPhysics.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "G4DecayPhysics.hh" @@ -24,7 +24,7 @@ FTFPCMS_INCLXX_EMM::FTFPCMS_INCLXX_EMM(const edm::ParameterSet& p) : PhysicsList if (emPhys) { // EM Physics - RegisterPhysics(new CMSEmStandardPhysicsLPM(ver)); + RegisterPhysics(new CMSEmStandardPhysics(ver, p)); // Synchroton Radiation & GN Physics G4EmExtraPhysics* gn = new G4EmExtraPhysics(ver); diff --git a/SimG4Core/PhysicsLists/plugins/FTFPCMS_INCLXX_HP_EMM.cc b/SimG4Core/PhysicsLists/plugins/FTFPCMS_INCLXX_HP_EMM.cc index 6c5cc9dacea4d..ae8d7cb1435a3 100644 --- a/SimG4Core/PhysicsLists/plugins/FTFPCMS_INCLXX_HP_EMM.cc +++ b/SimG4Core/PhysicsLists/plugins/FTFPCMS_INCLXX_HP_EMM.cc @@ -1,5 +1,5 @@ #include "FTFPCMS_INCLXX_HP_EMM.h" -#include "SimG4Core/PhysicsLists/interface/CMSEmStandardPhysicsLPM.h" +#include "SimG4Core/PhysicsLists/interface/CMSEmStandardPhysics.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "G4ThermalNeutrons.hh" @@ -28,7 +28,7 @@ FTFPCMS_INCLXX_HP_EMM::FTFPCMS_INCLXX_HP_EMM(const edm::ParameterSet& p) : Physi if (emPhys) { // EM Physics - RegisterPhysics(new CMSEmStandardPhysicsLPM(ver)); + RegisterPhysics(new CMSEmStandardPhysics(ver, p)); // Synchroton Radiation & GN Physics G4EmExtraPhysics* gn = new G4EmExtraPhysics(ver); diff --git a/SimG4Core/PhysicsLists/plugins/QBBCCMS.cc b/SimG4Core/PhysicsLists/plugins/QBBCCMS.cc index 8ae5814db3a71..9d3257f6b80f7 100644 --- a/SimG4Core/PhysicsLists/plugins/QBBCCMS.cc +++ b/SimG4Core/PhysicsLists/plugins/QBBCCMS.cc @@ -1,6 +1,6 @@ #include "QBBCCMS.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "SimG4Core/PhysicsLists/interface/CMSEmStandardPhysicsLPM.h" +#include "SimG4Core/PhysicsLists/interface/CMSEmStandardPhysics.h" #include "G4EmStandardPhysics.hh" #include "G4DecayPhysics.hh" @@ -26,7 +26,7 @@ QBBCCMS::QBBCCMS(const edm::ParameterSet& p) : PhysicsList(p) { if (emPhys) { // EM Physics - RegisterPhysics(new CMSEmStandardPhysicsLPM(ver)); + RegisterPhysics(new CMSEmStandardPhysics(ver, p)); // Synchroton Radiation & GN Physics G4EmExtraPhysics* gn = new G4EmExtraPhysics(ver); diff --git a/SimG4Core/PhysicsLists/plugins/QGSPCMS_BERT_EML.cc b/SimG4Core/PhysicsLists/plugins/QGSPCMS_BERT_EML.cc index 5d3a09176a965..179eba197fa47 100644 --- a/SimG4Core/PhysicsLists/plugins/QGSPCMS_BERT_EML.cc +++ b/SimG4Core/PhysicsLists/plugins/QGSPCMS_BERT_EML.cc @@ -1,5 +1,4 @@ #include "QGSPCMS_BERT_EML.h" -#include "SimG4Core/PhysicsLists/interface/CMSEmStandardPhysics.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "G4DecayPhysics.hh" @@ -9,6 +8,7 @@ #include "G4HadronElasticPhysics.hh" #include "G4NeutronTrackingCut.hh" #include "G4HadronicProcessStore.hh" +#include "G4EmStandardPhysics_option1.hh" #include "G4HadronPhysicsQGSP_BERT.hh" @@ -23,7 +23,7 @@ QGSPCMS_BERT_EML::QGSPCMS_BERT_EML(const edm::ParameterSet& p) : PhysicsList(p) if (emPhys) { // EM Physics - RegisterPhysics(new CMSEmStandardPhysics(ver)); + RegisterPhysics(new G4EmStandardPhysics_option1(ver)); // Synchroton Radiation & GN Physics G4EmExtraPhysics* gn = new G4EmExtraPhysics(ver); diff --git a/SimG4Core/PhysicsLists/plugins/QGSPCMS_BERT_HP_EML.cc b/SimG4Core/PhysicsLists/plugins/QGSPCMS_BERT_HP_EML.cc index 28895f56ef330..adde7f88d0ff6 100644 --- a/SimG4Core/PhysicsLists/plugins/QGSPCMS_BERT_HP_EML.cc +++ b/SimG4Core/PhysicsLists/plugins/QGSPCMS_BERT_HP_EML.cc @@ -1,5 +1,4 @@ #include "QGSPCMS_BERT_HP_EML.h" -#include "SimG4Core/PhysicsLists/interface/CMSEmStandardPhysics.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" #include "G4DecayPhysics.hh" @@ -9,6 +8,7 @@ #include "G4HadronElasticPhysicsHP.hh" #include "G4NeutronTrackingCut.hh" #include "G4HadronicProcessStore.hh" +#include "G4EmStandardPhysics_option1.hh" #include "G4HadronPhysicsQGSP_BERT_HP.hh" @@ -23,7 +23,7 @@ QGSPCMS_BERT_HP_EML::QGSPCMS_BERT_HP_EML(const edm::ParameterSet& p) : PhysicsLi if (emPhys) { // EM Physics - RegisterPhysics(new CMSEmStandardPhysics(ver)); + RegisterPhysics(new G4EmStandardPhysics_option1(ver)); // Synchroton Radiation & GN Physics G4EmExtraPhysics* gn = new G4EmExtraPhysics(ver); diff --git a/SimG4Core/PhysicsLists/plugins/QGSPCMS_FTFP_BERT_EML.cc b/SimG4Core/PhysicsLists/plugins/QGSPCMS_FTFP_BERT_EML.cc index c4318456f97dc..4eb05298da7f2 100644 --- a/SimG4Core/PhysicsLists/plugins/QGSPCMS_FTFP_BERT_EML.cc +++ b/SimG4Core/PhysicsLists/plugins/QGSPCMS_FTFP_BERT_EML.cc @@ -1,5 +1,4 @@ #include "QGSPCMS_FTFP_BERT_EML.h" -#include "SimG4Core/PhysicsLists/interface/CMSEmStandardPhysics.h" #include "SimG4Core/PhysicsLists/interface/HadronPhysicsQGSPCMS_FTFP_BERT.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" @@ -10,6 +9,7 @@ #include "G4HadronElasticPhysics.hh" #include "G4NeutronTrackingCut.hh" #include "G4HadronicProcessStore.hh" +#include "G4EmStandardPhysics_option1.hh" #include "G4HadronPhysicsQGSP_FTFP_BERT.hh" @@ -35,7 +35,7 @@ QGSPCMS_FTFP_BERT_EML::QGSPCMS_FTFP_BERT_EML(const edm::ParameterSet& p) : Physi if (emPhys) { // EM Physics - RegisterPhysics(new CMSEmStandardPhysics(ver)); + RegisterPhysics(new G4EmStandardPhysics_option1(ver)); // Synchroton Radiation & GN Physics G4EmExtraPhysics* gn = new G4EmExtraPhysics(ver); diff --git a/SimG4Core/PhysicsLists/plugins/QGSPCMS_FTFP_BERT_EMM.cc b/SimG4Core/PhysicsLists/plugins/QGSPCMS_FTFP_BERT_EMM.cc index 2854b0316f808..dcc8dd5270ba5 100644 --- a/SimG4Core/PhysicsLists/plugins/QGSPCMS_FTFP_BERT_EMM.cc +++ b/SimG4Core/PhysicsLists/plugins/QGSPCMS_FTFP_BERT_EMM.cc @@ -1,5 +1,5 @@ #include "QGSPCMS_FTFP_BERT_EMM.h" -#include "SimG4Core/PhysicsLists/interface/CMSEmStandardPhysicsLPM.h" +#include "SimG4Core/PhysicsLists/interface/CMSEmStandardPhysics.h" #include "SimG4Core/PhysicsLists/interface/HadronPhysicsQGSPCMS_FTFP_BERT.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" @@ -35,7 +35,7 @@ QGSPCMS_FTFP_BERT_EMM::QGSPCMS_FTFP_BERT_EMM(const edm::ParameterSet& p) : Physi if (emPhys) { // EM Physics - RegisterPhysics(new CMSEmStandardPhysicsLPM(ver)); + RegisterPhysics(new CMSEmStandardPhysics(ver, p)); // Synchroton Radiation & GN Physics G4EmExtraPhysics* gn = new G4EmExtraPhysics(ver); diff --git a/SimG4Core/PhysicsLists/src/CMSEmStandardPhysics.cc b/SimG4Core/PhysicsLists/src/CMSEmStandardPhysics.cc index ce33df2109e7e..3e81c8ae98341 100644 --- a/SimG4Core/PhysicsLists/src/CMSEmStandardPhysics.cc +++ b/SimG4Core/PhysicsLists/src/CMSEmStandardPhysics.cc @@ -1,82 +1,50 @@ #include "SimG4Core/PhysicsLists/interface/CMSEmStandardPhysics.h" -#include "SimG4Core/PhysicsLists/interface/EmParticleList.h" - #include "FWCore/MessageLogger/interface/MessageLogger.h" -#include "G4EmParameters.hh" -#include "G4ParticleTable.hh" - +#include "G4SystemOfUnits.hh" #include "G4ParticleDefinition.hh" -#include "G4LossTableManager.hh" +#include "G4EmParameters.hh" +#include "G4EmBuilder.hh" #include "G4ComptonScattering.hh" #include "G4GammaConversion.hh" #include "G4PhotoElectricEffect.hh" +#include "G4LivermorePhotoElectricModel.hh" + +#include "G4MscStepLimitType.hh" -#include "G4hMultipleScattering.hh" #include "G4eMultipleScattering.hh" -#include "G4MuMultipleScattering.hh" -#include "G4CoulombScattering.hh" +#include "G4hMultipleScattering.hh" #include "G4eCoulombScatteringModel.hh" +#include "G4CoulombScattering.hh" #include "G4WentzelVIModel.hh" #include "G4UrbanMscModel.hh" #include "G4eIonisation.hh" #include "G4eBremsstrahlung.hh" #include "G4eplusAnnihilation.hh" -#include "G4UAtomicDeexcitation.hh" - -#include "G4MuIonisation.hh" -#include "G4MuBremsstrahlung.hh" -#include "G4MuPairProduction.hh" +//#include "G4UAtomicDeexcitation.hh" #include "G4hIonisation.hh" #include "G4ionIonisation.hh" -#include "G4hBremsstrahlung.hh" -#include "G4hPairProduction.hh" +#include "G4ParticleTable.hh" #include "G4Gamma.hh" #include "G4Electron.hh" #include "G4Positron.hh" -#include "G4MuonPlus.hh" -#include "G4MuonMinus.hh" -#include "G4TauMinus.hh" -#include "G4TauPlus.hh" -#include "G4PionPlus.hh" -#include "G4PionMinus.hh" -#include "G4KaonPlus.hh" -#include "G4KaonMinus.hh" -#include "G4BMesonMinus.hh" -#include "G4BMesonPlus.hh" -#include "G4DMesonMinus.hh" -#include "G4DMesonPlus.hh" -#include "G4Proton.hh" -#include "G4AntiProton.hh" -#include "G4SigmaMinus.hh" -#include "G4AntiSigmaMinus.hh" -#include "G4SigmaPlus.hh" -#include "G4AntiSigmaPlus.hh" -#include "G4XiMinus.hh" -#include "G4AntiXiMinus.hh" -#include "G4OmegaMinus.hh" -#include "G4AntiOmegaMinus.hh" -#include "G4LambdacPlus.hh" -#include "G4AntiLambdacPlus.hh" -#include "G4XicPlus.hh" -#include "G4AntiXicPlus.hh" -#include "G4Deuteron.hh" -#include "G4Triton.hh" -#include "G4He3.hh" -#include "G4Alpha.hh" #include "G4GenericIon.hh" #include "G4PhysicsListHelper.hh" #include "G4BuilderType.hh" #include "G4GammaGeneralProcess.hh" +#include "G4LossTableManager.hh" -#include "G4SystemOfUnits.hh" +#include "G4RegionStore.hh" +#include "G4Region.hh" +#include -CMSEmStandardPhysics::CMSEmStandardPhysics(G4int ver) : G4VPhysicsConstructor("CMSEmStandard_eml"), verbose(ver) { +CMSEmStandardPhysics::CMSEmStandardPhysics(G4int ver, const edm::ParameterSet& p) + : G4VPhysicsConstructor("CMSEmStandard_emm"), verbose(ver) { G4EmParameters* param = G4EmParameters::Instance(); param->SetDefaults(); param->SetVerbose(verbose); @@ -85,234 +53,152 @@ CMSEmStandardPhysics::CMSEmStandardPhysics(G4int ver) : G4VPhysicsConstructor("C param->SetMscRangeFactor(0.2); param->SetMscStepLimitType(fMinimal); SetPhysicsType(bElectromagnetic); + fRangeFactor = p.getParameter("G4MscRangeFactor"); + fGeomFactor = p.getParameter("G4MscGeomFactor"); + fSafetyFactor = p.getParameter("G4MscSafetyFactor"); + fLambdaLimit = p.getParameter("G4MscLambdaLimit") * CLHEP::mm; + std::string msc = p.getParameter("G4MscStepLimit"); + fStepLimitType = fUseSafety; + if (msc == "UseSafetyPlus") { + fStepLimitType = fUseSafetyPlus; + } + if (msc == "Minimal") { + fStepLimitType = fMinimal; + } } CMSEmStandardPhysics::~CMSEmStandardPhysics() {} void CMSEmStandardPhysics::ConstructParticle() { - // gamma - G4Gamma::Gamma(); - - // leptons - G4Electron::Electron(); - G4Positron::Positron(); - G4MuonPlus::MuonPlus(); - G4MuonMinus::MuonMinus(); - G4TauMinus::TauMinusDefinition(); - G4TauPlus::TauPlusDefinition(); - - // mesons - G4PionPlus::PionPlusDefinition(); - G4PionMinus::PionMinusDefinition(); - G4KaonPlus::KaonPlusDefinition(); - G4KaonMinus::KaonMinusDefinition(); - G4DMesonMinus::DMesonMinusDefinition(); - G4DMesonPlus::DMesonPlusDefinition(); - G4BMesonMinus::BMesonMinusDefinition(); - G4BMesonPlus::BMesonPlusDefinition(); - - // barions - G4Proton::Proton(); - G4AntiProton::AntiProton(); - G4SigmaMinus::SigmaMinusDefinition(); - G4AntiSigmaMinus::AntiSigmaMinusDefinition(); - G4SigmaPlus::SigmaPlusDefinition(); - G4AntiSigmaPlus::AntiSigmaPlusDefinition(); - G4XiMinus::XiMinusDefinition(); - G4AntiXiMinus::AntiXiMinusDefinition(); - G4OmegaMinus::OmegaMinusDefinition(); - G4AntiOmegaMinus::AntiOmegaMinusDefinition(); - G4LambdacPlus::LambdacPlusDefinition(); - G4AntiLambdacPlus::AntiLambdacPlusDefinition(); - G4XicPlus::XicPlusDefinition(); - G4AntiXicPlus::AntiXicPlusDefinition(); - - // ions - G4Deuteron::Deuteron(); - G4Triton::Triton(); - G4He3::He3(); - G4Alpha::Alpha(); - G4GenericIon::GenericIonDefinition(); + // minimal set of particles for EM physics + G4EmBuilder::ConstructMinimalEmSet(); } void CMSEmStandardPhysics::ConstructProcess() { if (verbose > 0) { - edm::LogVerbatim("PhysicsList") << "### " << GetPhysicsName() << " Construct Processes "; + edm::LogVerbatim("PhysicsList") << "### " << GetPhysicsName() << " Construct EM Processes"; } // This EM builder takes default models of Geant4 10 EMV. // Multiple scattering by Urban for all particles // except e+e- below 100 MeV for which the Urban93 model is used + G4EmBuilder::PrepareEMPhysics(); G4PhysicsListHelper* ph = G4PhysicsListHelper::GetPhysicsListHelper(); - G4LossTableManager* man = G4LossTableManager::Instance(); - - // muon & hadron bremsstrahlung and pair production - G4MuBremsstrahlung* mub = nullptr; - G4MuPairProduction* mup = nullptr; - G4hBremsstrahlung* pib = nullptr; - G4hPairProduction* pip = nullptr; - G4hBremsstrahlung* kb = nullptr; - G4hPairProduction* kp = nullptr; - G4hBremsstrahlung* pb = nullptr; - G4hPairProduction* pp = nullptr; - - // muon & hadron multiple scattering - G4MuMultipleScattering* mumsc = nullptr; - G4hMultipleScattering* pimsc = nullptr; - G4hMultipleScattering* kmsc = nullptr; - G4hMultipleScattering* hmsc = nullptr; - - // muon and hadron single scattering - G4CoulombScattering* muss = nullptr; - G4CoulombScattering* piss = nullptr; - G4CoulombScattering* kss = nullptr; + // processes used by several particles + G4hMultipleScattering* hmsc = new G4hMultipleScattering("ionmsc"); + G4NuclearStopping* pnuc(nullptr); // high energy limit for e+- scattering models and bremsstrahlung - G4double highEnergyLimit = 100 * MeV; - - G4ParticleTable* table = G4ParticleTable::GetParticleTable(); - EmParticleList emList; - for (const auto& particleName : emList.PartNames()) { - G4ParticleDefinition* particle = table->FindParticle(particleName); - - if (particleName == "gamma") { - G4PhotoElectricEffect* pee = new G4PhotoElectricEffect(); - - if (G4EmParameters::Instance()->GeneralProcessActive()) { - G4GammaGeneralProcess* sp = new G4GammaGeneralProcess(); - sp->AddEmProcess(pee); - sp->AddEmProcess(new G4ComptonScattering()); - sp->AddEmProcess(new G4GammaConversion()); - man->SetGammaGeneralProcess(sp); - ph->RegisterProcess(sp, particle); - } else { - ph->RegisterProcess(pee, particle); - ph->RegisterProcess(new G4ComptonScattering(), particle); - ph->RegisterProcess(new G4GammaConversion(), particle); - } - - } else if (particleName == "e-") { - G4eIonisation* eioni = new G4eIonisation(); - - G4eMultipleScattering* msc = new G4eMultipleScattering; - G4UrbanMscModel* msc1 = new G4UrbanMscModel(); - G4WentzelVIModel* msc2 = new G4WentzelVIModel(); - msc1->SetHighEnergyLimit(highEnergyLimit); - msc2->SetLowEnergyLimit(highEnergyLimit); - msc->SetEmModel(msc1); - msc->SetEmModel(msc2); - - G4eCoulombScatteringModel* ssm = new G4eCoulombScatteringModel(); - G4CoulombScattering* ss = new G4CoulombScattering(); - ss->SetEmModel(ssm); - ss->SetMinKinEnergy(highEnergyLimit); - ssm->SetLowEnergyLimit(highEnergyLimit); - ssm->SetActivationLowEnergyLimit(highEnergyLimit); - - ph->RegisterProcess(msc, particle); - ph->RegisterProcess(eioni, particle); - ph->RegisterProcess(new G4eBremsstrahlung(), particle); - ph->RegisterProcess(ss, particle); - - } else if (particleName == "e+") { - G4eIonisation* eioni = new G4eIonisation(); - - G4eMultipleScattering* msc = new G4eMultipleScattering; - G4UrbanMscModel* msc1 = new G4UrbanMscModel(); - G4WentzelVIModel* msc2 = new G4WentzelVIModel(); - msc1->SetHighEnergyLimit(highEnergyLimit); - msc2->SetLowEnergyLimit(highEnergyLimit); - msc->SetEmModel(msc1); - msc->SetEmModel(msc2); - - G4eCoulombScatteringModel* ssm = new G4eCoulombScatteringModel(); - G4CoulombScattering* ss = new G4CoulombScattering(); - ss->SetEmModel(ssm); - ss->SetMinKinEnergy(highEnergyLimit); - ssm->SetLowEnergyLimit(highEnergyLimit); - ssm->SetActivationLowEnergyLimit(highEnergyLimit); - - ph->RegisterProcess(msc, particle); - ph->RegisterProcess(eioni, particle); - ph->RegisterProcess(new G4eBremsstrahlung(), particle); - ph->RegisterProcess(new G4eplusAnnihilation(), particle); - ph->RegisterProcess(ss, particle); - - } else if (particleName == "mu+" || particleName == "mu-") { - if (nullptr == mub) { - mub = new G4MuBremsstrahlung(); - mup = new G4MuPairProduction(); - mumsc = new G4MuMultipleScattering(); - mumsc->SetEmModel(new G4WentzelVIModel()); - muss = new G4CoulombScattering(); - } - ph->RegisterProcess(mumsc, particle); - ph->RegisterProcess(new G4MuIonisation(), particle); - ph->RegisterProcess(mub, particle); - ph->RegisterProcess(mup, particle); - ph->RegisterProcess(muss, particle); - - } else if (particleName == "alpha" || particleName == "He3") { - ph->RegisterProcess(new G4hMultipleScattering(), particle); - ph->RegisterProcess(new G4ionIonisation(), particle); - - } else if (particleName == "GenericIon") { - if (nullptr == hmsc) { - hmsc = new G4hMultipleScattering("ionmsc"); - } - ph->RegisterProcess(hmsc, particle); - ph->RegisterProcess(new G4ionIonisation(), particle); - - } else if (particleName == "pi+" || particleName == "pi-") { - if (nullptr == pib) { - pib = new G4hBremsstrahlung(); - pip = new G4hPairProduction(); - pimsc = new G4hMultipleScattering(); - pimsc->SetEmModel(new G4WentzelVIModel()); - piss = new G4CoulombScattering(); - } - ph->RegisterProcess(pimsc, particle); - ph->RegisterProcess(new G4hIonisation(), particle); - ph->RegisterProcess(pib, particle); - ph->RegisterProcess(pip, particle); - ph->RegisterProcess(piss, particle); - - } else if (particleName == "kaon+" || particleName == "kaon-") { - if (nullptr == kb) { - kb = new G4hBremsstrahlung(); - kp = new G4hPairProduction(); - kmsc = new G4hMultipleScattering(); - kmsc->SetEmModel(new G4WentzelVIModel()); - kss = new G4CoulombScattering(); - } - ph->RegisterProcess(kmsc, particle); - ph->RegisterProcess(new G4hIonisation(), particle); - ph->RegisterProcess(kb, particle); - ph->RegisterProcess(kp, particle); - ph->RegisterProcess(kss, particle); - - } else if (particleName == "proton" || particleName == "anti_proton") { - if (nullptr == pb) { - pb = new G4hBremsstrahlung(); - pp = new G4hPairProduction(); - } - G4hMultipleScattering* pmsc = new G4hMultipleScattering(); - pmsc->SetEmModel(new G4WentzelVIModel()); - G4CoulombScattering* pss = new G4CoulombScattering(); - - ph->RegisterProcess(pmsc, particle); - ph->RegisterProcess(new G4hIonisation(), particle); - ph->RegisterProcess(pb, particle); - ph->RegisterProcess(pp, particle); - ph->RegisterProcess(pss, particle); - - } else if (particle->GetPDGCharge() != 0.0) { - if (nullptr == hmsc) { - hmsc = new G4hMultipleScattering("ionmsc"); - } - ph->RegisterProcess(hmsc, particle); - ph->RegisterProcess(new G4hIonisation(), particle); - } + G4double highEnergyLimit = G4EmParameters::Instance()->MscEnergyLimit(); + + const G4Region* aRegion = G4RegionStore::GetInstance()->GetRegion("HcalRegion", false); + const G4Region* bRegion = G4RegionStore::GetInstance()->GetRegion("HGCalRegion", false); + + // Add gamma EM Processes + G4ParticleDefinition* particle = G4Gamma::Gamma(); + + G4PhotoElectricEffect* pee = new G4PhotoElectricEffect(); + pee->SetEmModel(new G4LivermorePhotoElectricModel()); + + if (G4EmParameters::Instance()->GeneralProcessActive()) { + G4GammaGeneralProcess* sp = new G4GammaGeneralProcess(); + sp->AddEmProcess(pee); + sp->AddEmProcess(new G4ComptonScattering()); + sp->AddEmProcess(new G4GammaConversion()); + G4LossTableManager::Instance()->SetGammaGeneralProcess(sp); + ph->RegisterProcess(sp, particle); + + } else { + ph->RegisterProcess(pee, particle); + ph->RegisterProcess(new G4ComptonScattering(), particle); + ph->RegisterProcess(new G4GammaConversion(), particle); } + + // e- + particle = G4Electron::Electron(); + + G4eIonisation* eioni = new G4eIonisation(); + + G4eMultipleScattering* msc = new G4eMultipleScattering; + G4UrbanMscModel* msc1 = new G4UrbanMscModel(); + G4WentzelVIModel* msc2 = new G4WentzelVIModel(); + G4UrbanMscModel* msc3 = new G4UrbanMscModel(); + msc1->SetHighEnergyLimit(highEnergyLimit); + msc2->SetLowEnergyLimit(highEnergyLimit); + msc3->SetHighEnergyLimit(highEnergyLimit); + msc3->SetRangeFactor(fRangeFactor); + msc3->SetGeomFactor(fGeomFactor); + msc3->SetSafetyFactor(fSafetyFactor); + msc3->SetLambdaLimit(fLambdaLimit); + msc3->SetStepLimitType(fStepLimitType); + msc3->SetLocked(true); + msc->SetEmModel(msc1); + msc->SetEmModel(msc2); + if (nullptr != aRegion) { + msc->AddEmModel(-1, msc3, aRegion); + } + if (nullptr != bRegion) { + msc->AddEmModel(-1, msc3, bRegion); + } + + G4eCoulombScatteringModel* ssm = new G4eCoulombScatteringModel(); + G4CoulombScattering* ss = new G4CoulombScattering(); + ss->SetEmModel(ssm); + ss->SetMinKinEnergy(highEnergyLimit); + ssm->SetLowEnergyLimit(highEnergyLimit); + ssm->SetActivationLowEnergyLimit(highEnergyLimit); + + ph->RegisterProcess(msc, particle); + ph->RegisterProcess(eioni, particle); + ph->RegisterProcess(new G4eBremsstrahlung(), particle); + ph->RegisterProcess(ss, particle); + + // e+ + particle = G4Positron::Positron(); + eioni = new G4eIonisation(); + + msc = new G4eMultipleScattering(); + msc1 = new G4UrbanMscModel(); + msc2 = new G4WentzelVIModel(); + msc3 = new G4UrbanMscModel(); + msc1->SetHighEnergyLimit(highEnergyLimit); + msc2->SetLowEnergyLimit(highEnergyLimit); + msc3->SetHighEnergyLimit(highEnergyLimit); + msc3->SetRangeFactor(fRangeFactor); + msc3->SetGeomFactor(fGeomFactor); + msc3->SetSafetyFactor(fSafetyFactor); + msc3->SetLambdaLimit(fLambdaLimit); + msc3->SetStepLimitType(fStepLimitType); + msc3->SetLocked(true); + msc->SetEmModel(msc1); + msc->SetEmModel(msc2); + if (nullptr != aRegion) { + msc->AddEmModel(-1, msc3, aRegion); + } + if (nullptr != bRegion) { + msc->AddEmModel(-1, msc3, bRegion); + } + + ssm = new G4eCoulombScatteringModel(); + ss = new G4CoulombScattering(); + ss->SetEmModel(ssm); + ss->SetMinKinEnergy(highEnergyLimit); + ssm->SetLowEnergyLimit(highEnergyLimit); + ssm->SetActivationLowEnergyLimit(highEnergyLimit); + + ph->RegisterProcess(msc, particle); + ph->RegisterProcess(eioni, particle); + ph->RegisterProcess(new G4eBremsstrahlung(), particle); + ph->RegisterProcess(new G4eplusAnnihilation(), particle); + ph->RegisterProcess(ss, particle); + + // generic ion + particle = G4GenericIon::GenericIon(); + G4ionIonisation* ionIoni = new G4ionIonisation(); + ph->RegisterProcess(hmsc, particle); + ph->RegisterProcess(ionIoni, particle); + + // muons, hadrons ions + G4EmBuilder::ConstructCharged(hmsc, pnuc); } diff --git a/SimG4Core/PhysicsLists/src/CMSHadronPhysicsFTFP_BERT.cc b/SimG4Core/PhysicsLists/src/CMSHadronPhysicsFTFP_BERT.cc index 3992e8ea30c9e..5c098b3c7c108 100644 --- a/SimG4Core/PhysicsLists/src/CMSHadronPhysicsFTFP_BERT.cc +++ b/SimG4Core/PhysicsLists/src/CMSHadronPhysicsFTFP_BERT.cc @@ -1,192 +1,28 @@ -#include - #include "SimG4Core/PhysicsLists/interface/CMSHadronPhysicsFTFP_BERT.h" -#include "SimG4Core/PhysicsLists/interface/CMSHyperonFTFPBuilder.h" - -#include "globals.hh" -#include "G4ios.hh" #include "G4SystemOfUnits.hh" -#include "G4ParticleDefinition.hh" -#include "G4ParticleTable.hh" -#include "G4PionBuilder.hh" -#include "G4BertiniPionBuilder.hh" -#include "G4FTFPPionBuilder.hh" - -#include "G4KaonBuilder.hh" -#include "G4BertiniKaonBuilder.hh" -#include "G4FTFPKaonBuilder.hh" - -#include "G4ProtonBuilder.hh" -#include "G4BertiniProtonBuilder.hh" -#include "G4FTFPNeutronBuilder.hh" -#include "G4FTFPProtonBuilder.hh" - -#include "G4NeutronBuilder.hh" -#include "G4BertiniNeutronBuilder.hh" -#include "G4FTFPNeutronBuilder.hh" - -#include "G4HyperonFTFPBuilder.hh" -#include "G4AntiBarionBuilder.hh" -#include "G4FTFPAntiBarionBuilder.hh" - -#include "G4MesonConstructor.hh" -#include "G4BaryonConstructor.hh" -#include "G4ShortLivedConstructor.hh" - -#include "G4HadronCaptureProcess.hh" -#include "G4NeutronRadCapture.hh" -#include "G4NeutronInelasticXS.hh" -#include "G4NeutronCaptureXS.hh" - -#include "G4PhysListUtil.hh" #include "G4Threading.hh" -#include "G4DeexPrecoParameters.hh" -#include "G4NuclearLevelData.hh" - -#include "G4ProcessManager.hh" - CMSHadronPhysicsFTFP_BERT::CMSHadronPhysicsFTFP_BERT(G4int) : CMSHadronPhysicsFTFP_BERT(3. * CLHEP::GeV, 6. * CLHEP::GeV, 12 * CLHEP::GeV) {} CMSHadronPhysicsFTFP_BERT::CMSHadronPhysicsFTFP_BERT(G4double e1, G4double e2, G4double e3) - : G4VPhysicsConstructor("hInelastic FTFP_BERT") { - minFTFP_ = e1; - maxBERT_ = e2; - maxBERTpi_ = e3; + : G4HadronPhysicsFTFP_BERT("hInelastic FTFP_BERT", false) { + minFTFP_pion = e1; + maxBERT_pion = e3; + minFTFP_kaon = e1; + maxBERT_kaon = e2; + minFTFP_proton = e1; + maxBERT_proton = e2; + minFTFP_neutron = e1; + maxBERT_neutron = e2; } CMSHadronPhysicsFTFP_BERT::~CMSHadronPhysicsFTFP_BERT() {} -void CMSHadronPhysicsFTFP_BERT::ConstructParticle() { - G4MesonConstructor pMesonConstructor; - pMesonConstructor.ConstructParticle(); - - G4BaryonConstructor pBaryonConstructor; - pBaryonConstructor.ConstructParticle(); - - G4ShortLivedConstructor pShortLivedConstructor; - pShortLivedConstructor.ConstructParticle(); -} - -void CMSHadronPhysicsFTFP_BERT::DumpBanner() { - G4cout << "### FTFP_BERT : transition between BERT and FTFP is over the interval " << minFTFP_ / CLHEP::GeV << " to " - << maxBERT_ / CLHEP::GeV << " GeV" - << " GeV; for pions up to " << maxBERTpi_ / CLHEP::GeV << " GeV" << G4endl; -} - -void CMSHadronPhysicsFTFP_BERT::CreateModels() { - Neutron(); - Proton(); - Pion(); - Kaon(); - Others(); -} - -void CMSHadronPhysicsFTFP_BERT::Neutron() { - //General schema: - // 1) Create a builder - // 2) Call AddBuilder - // 3) Configure the builder, possibly with sub-builders - // 4) Call builder->Build() - auto neu = new G4NeutronBuilder; - AddBuilder(neu); - auto ftfpn = new G4FTFPNeutronBuilder(false); - AddBuilder(ftfpn); - neu->RegisterMe(ftfpn); - ftfpn->SetMinEnergy(minFTFP_); - auto bertn = new G4BertiniNeutronBuilder; - AddBuilder(bertn); - neu->RegisterMe(bertn); - bertn->SetMinEnergy(0.0); - bertn->SetMaxEnergy(maxBERT_); - neu->Build(); -} - -void CMSHadronPhysicsFTFP_BERT::Proton() { - auto pro = new G4ProtonBuilder; - AddBuilder(pro); - auto ftfpp = new G4FTFPProtonBuilder(false); - AddBuilder(ftfpp); - pro->RegisterMe(ftfpp); - ftfpp->SetMinEnergy(minFTFP_); - auto bertp = new G4BertiniProtonBuilder; - AddBuilder(bertp); - pro->RegisterMe(bertp); - bertp->SetMaxEnergy(maxBERT_); - pro->Build(); -} - -void CMSHadronPhysicsFTFP_BERT::Pion() { - auto pi = new G4PionBuilder; - AddBuilder(pi); - auto ftfppi = new G4FTFPPionBuilder(false); - AddBuilder(ftfppi); - pi->RegisterMe(ftfppi); - ftfppi->SetMinEnergy(minFTFP_); - auto bertpi = new G4BertiniPionBuilder; - AddBuilder(bertpi); - pi->RegisterMe(bertpi); - bertpi->SetMaxEnergy(maxBERTpi_); - pi->Build(); -} - -void CMSHadronPhysicsFTFP_BERT::Kaon() { - auto k = new G4KaonBuilder; - AddBuilder(k); - auto ftfpk = new G4FTFPKaonBuilder(false); - AddBuilder(ftfpk); - k->RegisterMe(ftfpk); - ftfpk->SetMinEnergy(minFTFP_); - auto bertk = new G4BertiniKaonBuilder; - AddBuilder(bertk); - k->RegisterMe(bertk); - bertk->SetMaxEnergy(maxBERT_); - k->Build(); -} - -void CMSHadronPhysicsFTFP_BERT::Others() { - //===== Hyperons ====== // - auto hyp = new CMSHyperonFTFPBuilder; - AddBuilder(hyp); - hyp->Build(); - - ///===== Anti-barions==== // - auto abar = new G4AntiBarionBuilder; - AddBuilder(abar); - auto ftfpabar = new G4FTFPAntiBarionBuilder(false); - AddBuilder(ftfpabar); - abar->RegisterMe(ftfpabar); - abar->Build(); -} - void CMSHadronPhysicsFTFP_BERT::ConstructProcess() { if (G4Threading::IsMasterThread()) { DumpBanner(); } CreateModels(); - ExtraConfiguration(); -} - -void CMSHadronPhysicsFTFP_BERT::ExtraConfiguration() { - const G4ParticleDefinition* neutron = G4Neutron::Neutron(); - G4HadronicProcess* inel = G4PhysListUtil::FindInelasticProcess(neutron); - if (inel) { - inel->AddDataSet(new G4NeutronInelasticXS()); - } - - G4HadronicProcess* capture = nullptr; - G4ProcessVector* pvec = neutron->GetProcessManager()->GetProcessList(); - size_t n = pvec->size(); - for (size_t i = 0; i < n; ++i) { - if (fCapture == ((*pvec)[i])->GetProcessSubType()) { - capture = static_cast((*pvec)[i]); - break; - } - } - if (capture) { - capture->RegisterMe(new G4NeutronRadCapture()); - capture->AddDataSet(new G4NeutronCaptureXS()); - } } diff --git a/SimG4Core/PhysicsLists/src/CMSHadronPhysicsFTFP_BERT106.cc b/SimG4Core/PhysicsLists/src/CMSHadronPhysicsFTFP_BERT106.cc new file mode 100644 index 0000000000000..a16def236b433 --- /dev/null +++ b/SimG4Core/PhysicsLists/src/CMSHadronPhysicsFTFP_BERT106.cc @@ -0,0 +1,192 @@ + +#include + +#include "SimG4Core/PhysicsLists/interface/CMSHadronPhysicsFTFP_BERT106.h" +#include "SimG4Core/PhysicsLists/interface/CMSHyperonFTFPBuilder.h" + +#include "globals.hh" +#include "G4ios.hh" +#include "G4SystemOfUnits.hh" +#include "G4ParticleDefinition.hh" +#include "G4ParticleTable.hh" +#include "G4PionBuilder.hh" +#include "G4BertiniPionBuilder.hh" +#include "G4FTFPPionBuilder.hh" + +#include "G4KaonBuilder.hh" +#include "G4BertiniKaonBuilder.hh" +#include "G4FTFPKaonBuilder.hh" + +#include "G4ProtonBuilder.hh" +#include "G4BertiniProtonBuilder.hh" +#include "G4FTFPNeutronBuilder.hh" +#include "G4FTFPProtonBuilder.hh" + +#include "G4NeutronBuilder.hh" +#include "G4BertiniNeutronBuilder.hh" +#include "G4FTFPNeutronBuilder.hh" + +#include "G4HyperonFTFPBuilder.hh" +#include "G4AntiBarionBuilder.hh" +#include "G4FTFPAntiBarionBuilder.hh" + +#include "G4MesonConstructor.hh" +#include "G4BaryonConstructor.hh" +#include "G4ShortLivedConstructor.hh" + +#include "G4HadronCaptureProcess.hh" +#include "G4NeutronRadCapture.hh" +#include "G4NeutronInelasticXS.hh" +#include "G4NeutronCaptureXS.hh" + +#include "G4PhysListUtil.hh" +#include "G4Threading.hh" + +#include "G4DeexPrecoParameters.hh" +#include "G4NuclearLevelData.hh" + +#include "G4ProcessManager.hh" + +CMSHadronPhysicsFTFP_BERT106::CMSHadronPhysicsFTFP_BERT106(G4int) + : CMSHadronPhysicsFTFP_BERT106(3. * CLHEP::GeV, 6. * CLHEP::GeV, 12 * CLHEP::GeV) {} + +CMSHadronPhysicsFTFP_BERT106::CMSHadronPhysicsFTFP_BERT106(G4double e1, G4double e2, G4double e3) + : G4VPhysicsConstructor("hInelastic FTFP_BERT") { + minFTFP_ = e1; + maxBERT_ = e2; + maxBERTpi_ = e3; +} + +CMSHadronPhysicsFTFP_BERT106::~CMSHadronPhysicsFTFP_BERT106() {} + +void CMSHadronPhysicsFTFP_BERT106::ConstructParticle() { + G4MesonConstructor pMesonConstructor; + pMesonConstructor.ConstructParticle(); + + G4BaryonConstructor pBaryonConstructor; + pBaryonConstructor.ConstructParticle(); + + G4ShortLivedConstructor pShortLivedConstructor; + pShortLivedConstructor.ConstructParticle(); +} + +void CMSHadronPhysicsFTFP_BERT106::DumpBanner() { + G4cout << "### FTFP_BERT : transition between BERT and FTFP is over the interval " << minFTFP_ / CLHEP::GeV << " to " + << maxBERT_ / CLHEP::GeV << " GeV" + << " GeV; for pions up to " << maxBERTpi_ / CLHEP::GeV << " GeV" << G4endl; +} + +void CMSHadronPhysicsFTFP_BERT106::CreateModels() { + Neutron(); + Proton(); + Pion(); + Kaon(); + Others(); +} + +void CMSHadronPhysicsFTFP_BERT106::Neutron() { + //General schema: + // 1) Create a builder + // 2) Call AddBuilder + // 3) Configure the builder, possibly with sub-builders + // 4) Call builder->Build() + auto neu = new G4NeutronBuilder; + AddBuilder(neu); + auto ftfpn = new G4FTFPNeutronBuilder(false); + AddBuilder(ftfpn); + neu->RegisterMe(ftfpn); + ftfpn->SetMinEnergy(minFTFP_); + auto bertn = new G4BertiniNeutronBuilder; + AddBuilder(bertn); + neu->RegisterMe(bertn); + bertn->SetMinEnergy(0.0); + bertn->SetMaxEnergy(maxBERT_); + neu->Build(); +} + +void CMSHadronPhysicsFTFP_BERT106::Proton() { + auto pro = new G4ProtonBuilder; + AddBuilder(pro); + auto ftfpp = new G4FTFPProtonBuilder(false); + AddBuilder(ftfpp); + pro->RegisterMe(ftfpp); + ftfpp->SetMinEnergy(minFTFP_); + auto bertp = new G4BertiniProtonBuilder; + AddBuilder(bertp); + pro->RegisterMe(bertp); + bertp->SetMaxEnergy(maxBERT_); + pro->Build(); +} + +void CMSHadronPhysicsFTFP_BERT106::Pion() { + auto pi = new G4PionBuilder; + AddBuilder(pi); + auto ftfppi = new G4FTFPPionBuilder(false); + AddBuilder(ftfppi); + pi->RegisterMe(ftfppi); + ftfppi->SetMinEnergy(minFTFP_); + auto bertpi = new G4BertiniPionBuilder; + AddBuilder(bertpi); + pi->RegisterMe(bertpi); + bertpi->SetMaxEnergy(maxBERTpi_); + pi->Build(); +} + +void CMSHadronPhysicsFTFP_BERT106::Kaon() { + auto k = new G4KaonBuilder; + AddBuilder(k); + auto ftfpk = new G4FTFPKaonBuilder(false); + AddBuilder(ftfpk); + k->RegisterMe(ftfpk); + ftfpk->SetMinEnergy(minFTFP_); + auto bertk = new G4BertiniKaonBuilder; + AddBuilder(bertk); + k->RegisterMe(bertk); + bertk->SetMaxEnergy(maxBERT_); + k->Build(); +} + +void CMSHadronPhysicsFTFP_BERT106::Others() { + //===== Hyperons ====== // + auto hyp = new CMSHyperonFTFPBuilder; + AddBuilder(hyp); + hyp->Build(); + + ///===== Anti-barions==== // + auto abar = new G4AntiBarionBuilder; + AddBuilder(abar); + auto ftfpabar = new G4FTFPAntiBarionBuilder(false); + AddBuilder(ftfpabar); + abar->RegisterMe(ftfpabar); + abar->Build(); +} + +void CMSHadronPhysicsFTFP_BERT106::ConstructProcess() { + if (G4Threading::IsMasterThread()) { + DumpBanner(); + } + CreateModels(); + ExtraConfiguration(); +} + +void CMSHadronPhysicsFTFP_BERT106::ExtraConfiguration() { + const G4ParticleDefinition* neutron = G4Neutron::Neutron(); + G4HadronicProcess* inel = G4PhysListUtil::FindInelasticProcess(neutron); + if (inel) { + inel->AddDataSet(new G4NeutronInelasticXS()); + } + + G4HadronicProcess* capture = nullptr; + G4ProcessVector* pvec = neutron->GetProcessManager()->GetProcessList(); + size_t n = pvec->size(); + for (size_t i = 0; i < n; ++i) { + if (fCapture == ((*pvec)[i])->GetProcessSubType()) { + capture = static_cast((*pvec)[i]); + break; + } + } + if (capture) { + capture->RegisterMe(new G4NeutronRadCapture()); + capture->AddDataSet(new G4NeutronCaptureXS()); + } +} diff --git a/SimG4Core/Watcher/interface/SimWatcher.h b/SimG4Core/Watcher/interface/SimWatcher.h index 9f8a90d10ae9b..5d076bfadd57d 100644 --- a/SimG4Core/Watcher/interface/SimWatcher.h +++ b/SimG4Core/Watcher/interface/SimWatcher.h @@ -24,29 +24,13 @@ called by the dynamic loading code. // Created: Tue Nov 22 15:35:11 EST 2005 // -// system include files - -// user include files - -// forward declarations - class SimWatcher { public: SimWatcher() {} virtual ~SimWatcher() {} - // ---------- const member functions --------------------- - - // ---------- static member functions -------------------- - - // ---------- member functions --------------------------- - -private: - SimWatcher(const SimWatcher &) = delete; // stop default - - const SimWatcher &operator=(const SimWatcher &) = delete; // stop default - - // ---------- member data -------------------------------- + SimWatcher(const SimWatcher &) = delete; + const SimWatcher &operator=(const SimWatcher &) = delete; }; #endif diff --git a/SimPPS/PPSPixelDigiProducer/src/RPixChargeShare.cc b/SimPPS/PPSPixelDigiProducer/src/RPixChargeShare.cc index 523d0a07f6f0b..ad85836a7bd1e 100644 --- a/SimPPS/PPSPixelDigiProducer/src/RPixChargeShare.cc +++ b/SimPPS/PPSPixelDigiProducer/src/RPixChargeShare.cc @@ -35,7 +35,7 @@ RPixChargeShare::RPixChargeShare(const edm::ParameterSet ¶ms, uint32_t det_i } fChargeMap.close(); } else - throw cms::Exception("RPixChargeShare") << "Charge map file not found"; + throw cms::Exception("PPS RPixChargeShare") << "Charge map file not found"; } } @@ -50,24 +50,26 @@ std::map RPixChargeShare::Share(const std::vector::const_iterator i = charge_map.begin(); i != charge_map.end(); ++i) { double hit_pos_x, hit_pos_y; // Used to avoid the abort due to hits out of detector - if (((*i).Position().x() + 16.6 / 2) < 0 || ((*i).Position().x() + 16.6 / 2) > 16.6) { - edm::LogInfo("RPixChargeShare") + if (((*i).Position().x() + ppt.getSimXWidth() / 2.) < 0 || + ((*i).Position().x() + ppt.getSimXWidth() / 2.) > ppt.getSimXWidth()) { + edm::LogInfo("PPS RPixChargeShare") << "**** Attention ((*i).Position().x()+simX_width_/2.)<0||((*i).Position().x()+simX_width_/2.)>simX_width "; - edm::LogInfo("PPS") << "RPixChargeShare " - << "(*i).Position().x() = " << (*i).Position().x(); + edm::LogInfo("PPS RPixChargeShare") << "(*i).Position().x() = " << (*i).Position().x(); continue; } - if (((*i).Position().y() + 24.4 / 2.) < 0 || ((*i).Position().y() + 24.4 / 2.) > 24.4) { - edm::LogInfo("RPixChargeShare") + if (((*i).Position().y() + ppt.getSimYWidth() / 2.) < 0 || + ((*i).Position().y() + ppt.getSimYWidth() / 2.) > ppt.getSimYWidth()) { + edm::LogInfo("PPS RPixChargeShare") << "**** Attention ((*i).Position().y()+simY_width_/2.)<0||((*i).Position().y()+simY_width_/2.)>simY_width "; - edm::LogInfo("PPS") << "RPixChargeShare " - << "(*i).Position().y() = " << (*i).Position().y(); + edm::LogInfo("PPS RPixChargeShare") << "(*i).Position().y() = " << (*i).Position().y(); continue; } PPSPixelTopology::PixelInfo relevant_pixels = ppt.getPixelsInvolved((*i).Position().x(), (*i).Position().y(), (*i).Sigma(), hit_pos_x, hit_pos_y); double effic = relevant_pixels.effFactor(); + if (effic < 1.e-4) + continue; unsigned short pixel_no = ppt.pixelIndex(relevant_pixels); @@ -76,9 +78,8 @@ std::map RPixChargeShare::Share(const std::vector 1) - edm::LogInfo("PPS") << "RPixChargeShare " - << "Efficiency in detector " << det_id_ << " and pixel no " << pixel_no << " : " << effic - << " ch: " << charge_in_pixel << " CHtot: " << cH; + edm::LogInfo("PPS RPixChargeShare ") << "Efficiency in detector " << det_id_ << " and pixel no " << pixel_no + << " : " << effic << " ch: " << charge_in_pixel << " CHtot: " << cH; if (signalCoupling_[0] == 0.) { thePixelChargeMap[pixel_no] += charge_in_pixel; @@ -93,34 +94,42 @@ std::map RPixChargeShare::Share(const std::vector xBinMax_[psize] || ybin > yBinMax_[psize]) + if (xbin > xBinMax_[psize] || ybin > yBinMax_[psize]) { + edm::LogError("PPS RPixChargeShare") << " Array index out of bounds"; continue; + } } if (pixel_width_x > 0.11 && pixel_width_y < 0.151) { // pixel 200x150 um^2 psize = 2; - if (xbin > xBinMax_[psize] || ybin > yBinMax_[psize]) + if (xbin > xBinMax_[psize] || ybin > yBinMax_[psize]) { + edm::LogError("PPS RPixChargeShare") << " Array index out of bounds"; continue; + } } if (pixel_width_x < 0.11 && pixel_width_y > 0.151) { // pixel 100x300 um^2 psize = 1; - if (xbin > xBinMax_[psize] || ybin > yBinMax_[psize]) + if (xbin > xBinMax_[psize] || ybin > yBinMax_[psize]) { + edm::LogError("PPS RPixChargeShare") << " Array index out of bounds"; continue; + } } if (pixel_width_x > 0.11 && pixel_width_y > 0.151) { // pixel 200x300 um^2 psize = 3; - if (xbin > xBinMax_[psize] || ybin > yBinMax_[psize]) + if (xbin > xBinMax_[psize] || ybin > yBinMax_[psize]) { + edm::LogError("PPS RPixChargeShare") << " Array index out of bounds"; continue; + } + } + if (xbin < 0 || ybin < 0) { + edm::LogError("PPS RPixChargeShare") << " Negative array index xbin or ybin"; + continue; } double hit2neighbour[8]; double collect_prob = chargeMap2E_[psize][xbin][ybin]; diff --git a/SimTransport/TotemRPProtonTransportParametrization/src/SimTransportTotemRPProtTranspParLinkDef.h b/SimTransport/TotemRPProtonTransportParametrization/src/SimTransportTotemRPProtTranspParLinkDef.h deleted file mode 100644 index f1585e1fa74df..0000000000000 --- a/SimTransport/TotemRPProtonTransportParametrization/src/SimTransportTotemRPProtTranspParLinkDef.h +++ /dev/null @@ -1,17 +0,0 @@ -#include "SimTransport/TotemRPProtonTransportParametrization/interface/TMultiDimFet.h" -#include "SimTransport/TotemRPProtonTransportParametrization/interface/LHCOpticsApproximator.h" -#include - -#ifdef __CINT__ - -#pragma link off all globals; -#pragma link off all classes; -#pragma link off all functions; - -#pragma link C++ class TMultiDimFet + ; -#pragma link C++ class LHCOpticsApproximator + ; -#pragma link C++ class LHCApertureApproximator + ; -#pragma link C++ class vector < LHCOpticsApproximator> + ; -#pragma link C++ class vector < LHCApertureApproximator> + ; - -#endif diff --git a/SimTransport/TotemRPProtonTransportParametrization/src/classes.h b/SimTransport/TotemRPProtonTransportParametrization/src/classes.h new file mode 100644 index 0000000000000..700bd27502403 --- /dev/null +++ b/SimTransport/TotemRPProtonTransportParametrization/src/classes.h @@ -0,0 +1,3 @@ +#include "SimTransport/TotemRPProtonTransportParametrization/interface/TMultiDimFet.h" +#include "SimTransport/TotemRPProtonTransportParametrization/interface/LHCOpticsApproximator.h" +#include diff --git a/SimTransport/TotemRPProtonTransportParametrization/src/classes_def.xml b/SimTransport/TotemRPProtonTransportParametrization/src/classes_def.xml new file mode 100644 index 0000000000000..b647bb8aa2ba1 --- /dev/null +++ b/SimTransport/TotemRPProtonTransportParametrization/src/classes_def.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/TrackingTools/AnalyticalJacobians/src/AnalyticalCurvilinearJacobianSSE.icc b/TrackingTools/AnalyticalJacobians/src/AnalyticalCurvilinearJacobianSSE.icc index 1564648ac495b..8a5562658ab9e 100644 --- a/TrackingTools/AnalyticalJacobians/src/AnalyticalCurvilinearJacobianSSE.icc +++ b/TrackingTools/AnalyticalJacobians/src/AnalyticalCurvilinearJacobianSSE.icc @@ -50,7 +50,7 @@ void AnalyticalCurvilinearJacobian::computeFullJacobian(const GlobalTrajectoryPa Vec4D tt = t * t; tt = mathSSE::sqrt(hadd(tt, tt)); -#ifdef CMS_USE_AVX +#ifdef CMS_USE_AVX2 const __m256d neg = _mm256_setr_pd(-0.0, 0.0, -0.0, 0.0); Vec4D res(_mm256_xor_pd(neg, _mm256_div_pd(_mm256_shuffle_pd(t.vec, t.vec, 5), tt.vec))); Vec2D u1(res.xy()); diff --git a/TrackingTools/RecoGeometry/src/GlobalDetLayerGeometry.cc b/TrackingTools/RecoGeometry/src/GlobalDetLayerGeometry.cc index 320c57543a8f9..d12c61b200af9 100644 --- a/TrackingTools/RecoGeometry/src/GlobalDetLayerGeometry.cc +++ b/TrackingTools/RecoGeometry/src/GlobalDetLayerGeometry.cc @@ -12,7 +12,8 @@ const DetLayer* GlobalDetLayerGeometry::idToLayer(const DetId& detId) const { else { throw cms::Exception("DetLayers") << "Error: called GlobalDetLayerGeometry::idToLayer() for a detId which is neither Tracker nor Muon " - << (mtd_ == nullptr ? "" : "nor MTD ") << detId; + << (mtd_ == nullptr ? "" : "nor MTD ") << " det rawId " << detId.rawId() << " det " << detId.det() + << " subdetId " << detId.subdetId(); } } diff --git a/Utilities/ReleaseScripts/scripts/cmssw_fix_interface.py b/Utilities/ReleaseScripts/scripts/cmssw_fix_interface.py new file mode 100755 index 0000000000000..52466a0ce8b32 --- /dev/null +++ b/Utilities/ReleaseScripts/scripts/cmssw_fix_interface.py @@ -0,0 +1,53 @@ +#!/usr/bin/env python + +import os +import sys +import argparse + + +parser = argparse.ArgumentParser(description='Find includes only used in one non-interface directory.') +parser.add_argument('packageName', + help='name of package to check interface usage') +parser.add_argument('--fix', dest='shouldFix', action='store_true', + help='move file and fix includes if only used in 1 directory') +parser.add_argument('--remove', dest='removeUnused', action='store_true', + help='remove interface files that are not included anywhere') + +args = parser.parse_args() + +packageName = args.packageName +shouldFix = args.shouldFix +removeUnused = args.removeUnused + +interfaceDir = packageName+"/interface" +from os.path import isfile, join +onlyfiles = [join(interfaceDir,f) for f in os.listdir(interfaceDir) if isfile(join(interfaceDir, f))] + +for f in onlyfiles: + print("checking {filename}".format(filename=f)) + result = os.popen('git grep \'#include [",<]{filename}[",>]\' | awk -F\':\' \'{{print $1}}\' | sort -u'.format(filename=f)) + + filesUsing = [l[:-1] for l in result] + + if 0 == len(filesUsing): + print(" "+f+" is unused") + if removeUnused: + os.system('git rm {filename}'.format(filename=f)) + print(" "+f+" was removed") + continue + + #directories using + dirs = set( ( "/".join(name.split("/")[0:3]) for name in filesUsing) ) + if 1 == len(dirs): + onlyDir = dirs.pop() + if onlyDir.split("/")[2] != "interface": + print(" "+f+" is only used in "+onlyDir) + if shouldFix: + newFileName = onlyDir+"/"+f.split("/")[3] + mvCommand = "git mv {oldName} {newName}".format(oldName=f, newName=newFileName) + #print(mvCommand) + os.system(mvCommand) + sedCommand ="sed --in-place 's/{oldName}/{newName}/' {filesToChange}".format(oldName="\/".join(f.split("/")),newName="\/".join(newFileName.split("/")), filesToChange=" ".join( (n for n in filesUsing)) ) + #print(sedCommand) + os.system(sedCommand) + diff --git a/Utilities/ReleaseScripts/scripts/duplicateReflexLibrarySearch.py b/Utilities/ReleaseScripts/scripts/duplicateReflexLibrarySearch.py index a167a3c701509..c6d04c7f8fd4d 100755 --- a/Utilities/ReleaseScripts/scripts/duplicateReflexLibrarySearch.py +++ b/Utilities/ReleaseScripts/scripts/duplicateReflexLibrarySearch.py @@ -35,6 +35,7 @@ #Ordered List to search for matched packages equivDict = \ [ + {'Associations': ['TTTrackTruthPair']}, {'TrajectoryState' : ['TrajectoryStateOnSurface']}, {'TrackTriggerAssociation' : ['(TTClusterAssociationMap|TTStubAssociationMap|TTTrackAssociationMap|TrackingParticle).*Phase2TrackerDigi', '(TTStub|TTCluster|TTTrack).*Phase2TrackerDigi.*TrackingParticle']}, diff --git a/Utilities/StaticAnalyzers/scripts/callgraph.py b/Utilities/StaticAnalyzers/scripts/callgraph.py index 8ee53dc2426ca..d9aa18e8843d3 100755 --- a/Utilities/StaticAnalyzers/scripts/callgraph.py +++ b/Utilities/StaticAnalyzers/scripts/callgraph.py @@ -64,7 +64,7 @@ if epfuncre.search(p): break stripped=re.sub(farg,"()",p) if previous != stripped: - cs+=stripped+"; " + cs+=' '+stripped+";" previous = stripped callstacks.add(cs) break @@ -73,7 +73,7 @@ report=dict() for key in sorted(module2package.keys()): for value in sorted(module2package[key]): - vre=re.compile(value) + vre=re.compile(' %s::.*();' % value) for cs in sorted(callstacks): if vre.search(cs): report.setdefault(key, {}).setdefault(value, []).append(cs) diff --git a/Utilities/StaticAnalyzers/src/ESRecordGetChecker.cpp b/Utilities/StaticAnalyzers/src/ESRecordGetChecker.cpp index abda911bd88c2..cdb3f73303864 100644 --- a/Utilities/StaticAnalyzers/src/ESRecordGetChecker.cpp +++ b/Utilities/StaticAnalyzers/src/ESRecordGetChecker.cpp @@ -53,13 +53,18 @@ namespace clangcms { QualType QT = (*I)->getType(); std::string qtname = QT.getAsString(); os << "' with argument of type '" << qtname; - PathDiagnosticLocation CELoc = PathDiagnosticLocation::createBegin(CE, BR.getSourceManager(), AC); - BugType *BT = new BugType(Checker, "EventSetupRecord::get function called", "ThreadSafety"); - std::unique_ptr R = std::make_unique(*BT, llvm::StringRef(os.str()), CELoc); - R->addRange(CE->getSourceRange()); - BR.emitReport(std::move(R)); } os << "'"; + os << ". Direct call of function EventSetupRecord::get(ESHandle&) is deprecated and should be replaced with a " + "call to EventSetup::getHandle(ESGetToken&). To use ESGetToken see " + "https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideHowToGetDataFromES#In_ED_module To get data with " + "the token see " + "https://twiki.cern.ch/twiki/bin/view/CMSPublic/SWGuideHowToGetDataFromES#Getting_data_from_EventSetup_wit"; + PathDiagnosticLocation CELoc = PathDiagnosticLocation::createBegin(CE, BR.getSourceManager(), AC); + BugType *BT = new BugType(Checker, "EventSetupRecord::get function called", "ThreadSafety"); + std::unique_ptr R = std::make_unique(*BT, llvm::StringRef(os.str()), CELoc); + R->addRange(CE->getSourceRange()); + BR.emitReport(std::move(R)); } } diff --git a/Validation/CSCRecHits/BuildFile.xml b/Validation/CSCRecHits/BuildFile.xml index 342990bcb68ba..ea9c323b1ea30 100644 --- a/Validation/CSCRecHits/BuildFile.xml +++ b/Validation/CSCRecHits/BuildFile.xml @@ -2,10 +2,8 @@ - - diff --git a/Validation/CSCRecHits/plugins/BuildFile.xml b/Validation/CSCRecHits/plugins/BuildFile.xml index 2f0452a063f9d..8e24f9e92b415 100644 --- a/Validation/CSCRecHits/plugins/BuildFile.xml +++ b/Validation/CSCRecHits/plugins/BuildFile.xml @@ -1,6 +1,8 @@ + + diff --git a/Validation/CTPPS/python/simu_config/year_2021_cff.py b/Validation/CTPPS/python/simu_config/year_2021_cff.py index b9084f970c728..c8310d1f41a0b 100644 --- a/Validation/CTPPS/python/simu_config/year_2021_cff.py +++ b/Validation/CTPPS/python/simu_config/year_2021_cff.py @@ -5,7 +5,7 @@ # base profile settings for 2021 profile_base_2021 = profile_base.clone( ctppsLHCInfo = dict( - beamEnergy = 6500 + beamEnergy = 7000 ), ctppsOpticalFunctions = dict( @@ -34,6 +34,9 @@ ) ) +# adjust basic settings +generator.energy = profile_base_2021.ctppsLHCInfo.beamEnergy + # geometry from Geometry.VeryForwardGeometry.geometryRPFromDD_2021_cfi import * ctppsCompositeESSource.compactViewTag = ctppsGeometryESModule.compactViewTag diff --git a/Validation/Configuration/python/globalValidation_cff.py b/Validation/Configuration/python/globalValidation_cff.py index 8ea73c681b963..cf25942c176d7 100644 --- a/Validation/Configuration/python/globalValidation_cff.py +++ b/Validation/Configuration/python/globalValidation_cff.py @@ -198,7 +198,7 @@ ) globalValidationHGCal = cms.Sequence(hgcalValidation) -globalPrevalidationHGCal = cms.Sequence(hgcalAssociators) +globalPrevalidationHGCal = cms.Sequence(hgcalAssociators, ticlSimTrackstersTask) globalValidationMTD = cms.Sequence() diff --git a/Validation/Configuration/python/hgcalSimValid_cff.py b/Validation/Configuration/python/hgcalSimValid_cff.py index 2fc76100faa36..3ac4142386bb0 100644 --- a/Validation/Configuration/python/hgcalSimValid_cff.py +++ b/Validation/Configuration/python/hgcalSimValid_cff.py @@ -10,6 +10,7 @@ from Validation.HGCalValidation.digiValidation_cff import * from Validation.HGCalValidation.rechitValidation_cff import * from Validation.HGCalValidation.hgcalHitValidation_cfi import * +from RecoHGCal.TICL.SimTracksters_cff import * from Validation.HGCalValidation.HGCalValidator_cfi import hgcalValidator from Validation.RecoParticleFlow.PFJetValidation_cff import pfJetValidation1 as _hgcalPFJetValidation @@ -17,6 +18,9 @@ from Validation.HGCalValidation.ticlPFValidation_cfi import ticlPFValidation hgcalTiclPFValidation = cms.Sequence(ticlPFValidation) +from Validation.HGCalValidation.ticlTrackstersEdgesValidation_cfi import ticlTrackstersEdgesValidation +hgcalTiclTrackstersEdgesValidationSequence = cms.Sequence(ticlTrackstersEdgesValidation) + hgcalValidatorSequence = cms.Sequence(hgcalValidator) hgcalPFJetValidation = _hgcalPFJetValidation.clone(BenchmarkLabel = 'PFJetValidation/HGCAlCompWithGenJet', VariablePtBins=[10., 30., 80., 120., 250., 600.], @@ -38,6 +42,8 @@ + hgcalHitValidationSequence + hgcalValidatorSequence + hgcalTiclPFValidation + #Currently commented out until trackster edges are saved +# + hgcalTiclTrackstersEdgesValidationSequence + hgcalPFJetValidation) _hfnose_hgcalAssociatorsTask = hgcalAssociators.copy() diff --git a/Validation/Configuration/python/mtdSimValid_cff.py b/Validation/Configuration/python/mtdSimValid_cff.py index 34aa1ca875322..8c902769e92a4 100644 --- a/Validation/Configuration/python/mtdSimValid_cff.py +++ b/Validation/Configuration/python/mtdSimValid_cff.py @@ -7,8 +7,8 @@ from Validation.MtdValidation.etlLocalReco_cfi import etlLocalReco from Validation.MtdValidation.etlSimHits_cfi import etlSimHits from Validation.MtdValidation.etlDigiHits_cfi import etlDigiHits -from Validation.MtdValidation.globalReco_cfi import globalReco +from Validation.MtdValidation.mtdTracks_cfi import mtdTracks mtdSimValid = cms.Sequence(btlSimHits + etlSimHits ) mtdDigiValid = cms.Sequence(btlDigiHits + etlDigiHits) -mtdRecoValid = cms.Sequence(btlLocalReco + etlLocalReco + globalReco) +mtdRecoValid = cms.Sequence(btlLocalReco + etlLocalReco + mtdTracks) diff --git a/Validation/Geometry/test/genHGCalPlots.sh b/Validation/Geometry/test/genHGCalPlots.sh index 31a0e33d8a7b4..8a3992a4fb3b3 100755 --- a/Validation/Geometry/test/genHGCalPlots.sh +++ b/Validation/Geometry/test/genHGCalPlots.sh @@ -1,6 +1,6 @@ #!/bin/bash -ex -geom=Extended2026D71 +geom=Extended2026D76 VGEO_DIR=$CMSSW_BASE/src/Validation/Geometry TEST_DIR=${VGEO_DIR}/test/materialBudgetHGCalPlots diff --git a/Validation/HGCalValidation/BuildFile.xml b/Validation/HGCalValidation/BuildFile.xml index fd0cf03a579e5..b2857c10c1dd0 100644 --- a/Validation/HGCalValidation/BuildFile.xml +++ b/Validation/HGCalValidation/BuildFile.xml @@ -7,6 +7,7 @@ + diff --git a/Validation/HGCalValidation/interface/CaloParticleSelector.h b/Validation/HGCalValidation/interface/CaloParticleSelector.h index a67e89603aca6..0fa517fd4e0d4 100644 --- a/Validation/HGCalValidation/interface/CaloParticleSelector.h +++ b/Validation/HGCalValidation/interface/CaloParticleSelector.h @@ -22,6 +22,7 @@ class CaloParticleSelector { bool intimeOnly, bool chargedOnly, bool stableOnly, + bool notConvertedOnly, const std::vector& pdgId = std::vector(), double minPhi = -3.2, double maxPhi = 3.2) @@ -39,6 +40,7 @@ class CaloParticleSelector { intimeOnly_(intimeOnly), chargedOnly_(chargedOnly), stableOnly_(stableOnly), + notConvertedOnly_(notConvertedOnly), pdgId_(pdgId) { if (minPhi >= maxPhi) { throw cms::Exception("Configuration") @@ -101,6 +103,19 @@ class CaloParticleSelector { } } + // select only particles which did not convert/decay before the calorimeter + // in case of electrons, bremsstrahlung is usually the cause, thus this selection is skipped + if (std::abs(pdgid) != 11) { + if (notConvertedOnly_) { + if (cp.g4Tracks()[0].getPositionAtBoundary() == math::XYZTLorentzVectorF(0, 0, 0, 0)) { + return false; + } + if (cp.g4Tracks()[0].getMomentumAtBoundary() == math::XYZTLorentzVectorF(0, 0, 0, 0)) { + return false; + } + } + } + auto etaOk = [&](const CaloParticle& p) -> bool { float eta = etaFromXYZ(p.px(), p.py(), p.pz()); return (eta >= minRapidity_) & (eta <= maxRapidity_); @@ -132,6 +147,7 @@ class CaloParticleSelector { bool intimeOnly_; bool chargedOnly_; bool stableOnly_; + bool notConvertedOnly_; std::vector pdgId_; }; @@ -158,6 +174,7 @@ namespace reco { cfg.getParameter("intimeOnlyCP"), cfg.getParameter("chargedOnlyCP"), cfg.getParameter("stableOnlyCP"), + cfg.getParameter("notConvertedOnlyCP"), cfg.getParameter >("pdgIdCP"), cfg.getParameter("minPhiCP"), cfg.getParameter("maxPhiCP")); diff --git a/Validation/HGCalValidation/interface/HGCalValidator.h b/Validation/HGCalValidation/interface/HGCalValidator.h index 2e603edcc6a98..f617830125c1d 100644 --- a/Validation/HGCalValidation/interface/HGCalValidator.h +++ b/Validation/HGCalValidation/interface/HGCalValidator.h @@ -60,6 +60,7 @@ class HGCalValidator : public DQMGlobalEDAnalyzer { std::unordered_map const&) const; protected: + edm::ESGetToken caloGeomToken_; edm::InputTag label_lcl; std::vector label_mcl; edm::InputTag associator_; @@ -67,9 +68,9 @@ class HGCalValidator : public DQMGlobalEDAnalyzer { const bool SaveGeneralInfo_; const bool doCaloParticlePlots_; const bool doCaloParticleSelection_; - const bool dosimclustersPlots_; - const bool dolayerclustersPlots_; - const bool domulticlustersPlots_; + const bool doSimClustersPlots_; + const bool doLayerClustersPlots_; + const bool doMultiClustersPlots_; std::vector label_clustersmask; const edm::FileInPath cummatbudinxo_; diff --git a/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h b/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h index a25a1f0d4eb64..f6359fd9294b1 100644 --- a/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h +++ b/Validation/HGCalValidation/interface/HGVHistoProducerAlgo.h @@ -149,6 +149,7 @@ struct HGVHistoProducerAlgoHistograms { std::vector h_numMerge_multicl_phi; std::vector h_sharedenergy_multicl2caloparticle; std::vector h_sharedenergy_caloparticle2multicl; + std::vector h_sharedenergy_caloparticle2multicl_assoc; std::vector h_sharedenergy_multicl2caloparticle_vs_eta; std::vector h_sharedenergy_multicl2caloparticle_vs_phi; std::vector h_sharedenergy_caloparticle2multicl_vs_eta; diff --git a/Validation/HGCalValidation/interface/ValidHit.h b/Validation/HGCalValidation/interface/ValidHit.h new file mode 100644 index 0000000000000..46b72f65f554a --- /dev/null +++ b/Validation/HGCalValidation/interface/ValidHit.h @@ -0,0 +1,43 @@ +#ifndef Validation_HGCalBValidation_ValidHit_h +#define Validation_HGCalBValidation_ValidHit_h + +#include "TObject.h" +#include +#include + +class ValidHit { +public: + ValidHit() : energy_(0), time_(0), timeError_(0), id_(0), flagBits_(0), son_(0) {} + ValidHit(float energy, float time, float timeError, uint32_t id, uint32_t flagBits, uint8_t son) + : energy_(energy), time_(time), timeError_(timeError), id_(id), flagBits_(flagBits), son_(son) {} + ValidHit(const ValidHit &other) { + energy_ = other.energy_; + time_ = other.time_; + timeError_ = other.timeError_; + id_ = other.id_; + flagBits_ = other.flagBits_; + son_ = other.son_; + } + + virtual ~ValidHit() {} + + float energy() { return energy_; } + float time() { return time_; } + float timeError() { return timeError_; } + uint32_t id() { return id_; } + uint32_t flagBits() { return flagBits_; } + uint8_t son() { return son_; } + + float energy_; //calibrated energy of the rechit + float time_; //time jitter of the UncalibRecHit + float timeError_; //time resolution + uint32_t id_; //rechit detId + uint32_t flagBits_; //rechit flags describing its status (DataFormats/HGCRecHit/interface/HGCRecHit.h) + uint8_t son_; //signal over noise + + ClassDef(ValidHit, 1) +}; + +typedef std::vector ValidHitCollection; + +#endif //Validation_HGCalBValidation_ValidHit_h diff --git a/Validation/HGCalValidation/plugins/BuildFile.xml b/Validation/HGCalValidation/plugins/BuildFile.xml index fe5803d840494..2b68d43e229db 100644 --- a/Validation/HGCalValidation/plugins/BuildFile.xml +++ b/Validation/HGCalValidation/plugins/BuildFile.xml @@ -8,16 +8,19 @@ + - - + - + + + + @@ -29,9 +32,11 @@ + + diff --git a/Validation/HGCalValidation/plugins/HGCalValidator.cc b/Validation/HGCalValidation/plugins/HGCalValidator.cc index b509a92872f29..e662bd1ff7b32 100644 --- a/Validation/HGCalValidation/plugins/HGCalValidator.cc +++ b/Validation/HGCalValidation/plugins/HGCalValidator.cc @@ -9,16 +9,17 @@ using namespace std; using namespace edm; HGCalValidator::HGCalValidator(const edm::ParameterSet& pset) - : label_lcl(pset.getParameter("label_lcl")), + : caloGeomToken_(esConsumes()), + label_lcl(pset.getParameter("label_lcl")), label_mcl(pset.getParameter>("label_mcl")), associator_(pset.getUntrackedParameter("associator")), associatorSim_(pset.getUntrackedParameter("associatorSim")), SaveGeneralInfo_(pset.getUntrackedParameter("SaveGeneralInfo")), doCaloParticlePlots_(pset.getUntrackedParameter("doCaloParticlePlots")), doCaloParticleSelection_(pset.getUntrackedParameter("doCaloParticleSelection")), - dosimclustersPlots_(pset.getUntrackedParameter("dosimclustersPlots")), - dolayerclustersPlots_(pset.getUntrackedParameter("dolayerclustersPlots")), - domulticlustersPlots_(pset.getUntrackedParameter("domulticlustersPlots")), + doSimClustersPlots_(pset.getUntrackedParameter("doSimClustersPlots")), + doLayerClustersPlots_(pset.getUntrackedParameter("doLayerClustersPlots")), + doMultiClustersPlots_(pset.getUntrackedParameter("doMultiClustersPlots")), label_clustersmask(pset.getParameter>("LayerClustersInputMask")), cummatbudinxo_(pset.getParameter("cummatbudinxo")) { //In this way we can easily generalize to associations between other objects also. @@ -56,14 +57,15 @@ HGCalValidator::HGCalValidator(const edm::ParameterSet& pset) pset.getParameter("ptMaxCP"), pset.getParameter("minRapidityCP"), pset.getParameter("maxRapidityCP"), + pset.getParameter("lipCP"), + pset.getParameter("tipCP"), pset.getParameter("minHitCP"), pset.getParameter("maxSimClustersCP"), - pset.getParameter("tipCP"), - pset.getParameter("lipCP"), pset.getParameter("signalOnlyCP"), pset.getParameter("intimeOnlyCP"), pset.getParameter("chargedOnlyCP"), pset.getParameter("stableOnlyCP"), + pset.getParameter("notConvertedOnlyCP"), pset.getParameter>("pdgIdCP")); tools_.reset(new hgcal::RecHitTools()); @@ -114,7 +116,7 @@ void HGCalValidator::bookHistograms(DQMStore::IBooker& ibook, } //Booking histograms concerning with simclusters - if (dosimclustersPlots_) { + if (doSimClustersPlots_) { ibook.cd(); ibook.setCurrentFolder(dirName_ + "simClusters/ClusterLevel"); histoProducerAlgo_->bookSimClusterHistos( @@ -148,7 +150,7 @@ void HGCalValidator::bookHistograms(DQMStore::IBooker& ibook, } //if for simcluster plots //Booking histograms concerning with hgcal layer clusters - if (dolayerclustersPlots_) { + if (doLayerClustersPlots_) { ibook.cd(); ibook.setCurrentFolder(dirName_ + "hgcalLayerClusters/ClusterLevel"); histoProducerAlgo_->bookClusterHistos_ClusterLevel(ibook, @@ -191,7 +193,7 @@ void HGCalValidator::bookHistograms(DQMStore::IBooker& ibook, ibook.setCurrentFolder(dirName); //Booking histograms concerning for hgcal multi clusters - if (domulticlustersPlots_) { + if (doMultiClustersPlots_) { histoProducerAlgo_->bookMultiClusterHistos(ibook, histograms.histoProducerAlgo, totallayers_to_monitor_); } } //end of booking multiclusters loop @@ -240,8 +242,7 @@ void HGCalValidator::dqmAnalyze(const edm::Event& event, event.getByToken(label_cp_effic, caloParticleHandle); std::vector const& caloParticles = *caloParticleHandle; - edm::ESHandle geom; - setup.get().get(geom); + edm::ESHandle geom = setup.getHandle(caloGeomToken_); tools_->setGeometry(*geom); histoProducerAlgo_->setRecHitTools(tools_); @@ -309,7 +310,7 @@ void HGCalValidator::dqmAnalyze(const edm::Event& event, // ############################################## // fill simcluster histograms // ############################################## - if (dosimclustersPlots_) { + if (doSimClustersPlots_) { histoProducerAlgo_->fill_simcluster_histos( histograms.histoProducerAlgo, simclusters, totallayers_to_monitor_, thicknesses_to_monitor_); @@ -346,7 +347,7 @@ void HGCalValidator::dqmAnalyze(const edm::Event& event, // fill layercluster histograms // ############################################## int w = 0; //counter counting the number of sets of histograms - if (dolayerclustersPlots_) { + if (doLayerClustersPlots_) { histoProducerAlgo_->fill_generic_cluster_histos(histograms.histoProducerAlgo, w, clusterHandle, @@ -376,7 +377,7 @@ void HGCalValidator::dqmAnalyze(const edm::Event& event, // fill multicluster histograms // ############################################## for (unsigned int wml = 0; wml < label_mclTokens.size(); wml++) { - if (domulticlustersPlots_) { + if (doMultiClustersPlots_) { edm::Handle> multiClusterHandle; event.getByToken(label_mclTokens[wml], multiClusterHandle); const std::vector& multiClusters = *multiClusterHandle; diff --git a/Validation/HGCalValidation/plugins/HeterogeneousHGCalRecHitsValidator.cc b/Validation/HGCalValidation/plugins/HeterogeneousHGCalRecHitsValidator.cc new file mode 100644 index 0000000000000..004c5a2a657a2 --- /dev/null +++ b/Validation/HGCalValidation/plugins/HeterogeneousHGCalRecHitsValidator.cc @@ -0,0 +1,87 @@ +#include "Validation/HGCalValidation/plugins/HeterogeneousHGCalRecHitsValidator.h" + +HeterogeneousHGCalRecHitsValidator::HeterogeneousHGCalRecHitsValidator(const edm::ParameterSet &ps) + : tokens_({{{{consumes(ps.getParameter("cpuRecHitsEEToken")), + consumes(ps.getParameter("gpuRecHitsEEToken"))}}, + {{consumes(ps.getParameter("cpuRecHitsHSiToken")), + consumes(ps.getParameter("gpuRecHitsHSiToken"))}}, + {{consumes(ps.getParameter("cpuRecHitsHSciToken")), + consumes(ps.getParameter("gpuRecHitsHSciToken"))}}}}), + treenames_({{"CEE", "CHSi", "CHSci"}}) { + usesResource(TFileService::kSharedResource); + edm::Service fs; + for (unsigned i(0); i < nsubdetectors; ++i) { + trees_[i] = fs->make(treenames_[i].c_str(), treenames_[i].c_str()); + trees_[i]->Branch("cpu", "ValidHitCollection", &cpuValidRecHits[i]); + trees_[i]->Branch("gpu", "ValidHitCollection", &gpuValidRecHits[i]); + trees_[i]->Branch("diffs", "ValidHitCollection", &diffsValidRecHits[i]); + } +} + +HeterogeneousHGCalRecHitsValidator::~HeterogeneousHGCalRecHitsValidator() {} + +void HeterogeneousHGCalRecHitsValidator::endJob() {} + +void HeterogeneousHGCalRecHitsValidator::set_geometry_(const edm::EventSetup &setup, const unsigned &detidx) { + edm::ESHandle handle; + setup.get().get(handles_str_[detidx], handle); +} + +void HeterogeneousHGCalRecHitsValidator::analyze(const edm::Event &event, const edm::EventSetup &setup) { + edm::ESHandle baseGeom; + setup.get().get(baseGeom); + recHitTools_.setGeometry(*baseGeom); + + //future subdetector loop + for (size_t idet = 0; idet < nsubdetectors; ++idet) { + set_geometry_(setup, idet); + + //get hits produced with the CPU + const auto &cpuhits = event.get(tokens_[idet][0]); + + //get hits produced with the GPU + const auto &gpuhits = event.get(tokens_[idet][1]); + + size_t nhits = cpuhits.size(); + std::cout << nhits << ", " << gpuhits.size() << std::endl; + assert(nhits == gpuhits.size()); + //float sum_cpu = 0.f, sum_gpu = 0.f, sum_son_cpu = 0.f, sum_son_gpu = 0.f; + for (unsigned i(0); i < nhits; i++) { + const HGCRecHit &cpuHit = cpuhits[i]; + const HGCRecHit &gpuHit = gpuhits[i]; + + const float cpuEn = cpuHit.energy(); + const float gpuEn = gpuHit.energy(); + //sum_cpu += cpuEn; sum_gpu += gpuEn; + + const float cpuTime = cpuHit.time(); + const float gpuTime = gpuHit.time(); + const float cpuTimeErr = cpuHit.timeError(); + const float gpuTimeErr = gpuHit.timeError(); + const HGCalDetId cpuDetId = cpuHit.detid(); + const HGCalDetId gpuDetId = gpuHit.detid(); + const float cpuFB = cpuHit.flagBits(); + const float gpuFB = gpuHit.flagBits(); + const float cpuSoN = cpuHit.signalOverSigmaNoise(); + const float gpuSoN = gpuHit.signalOverSigmaNoise(); + //sum_son_cpu += cpuSoN; sum_son_gpu += gpuSoN; + + ValidHit vCPU(cpuEn, cpuTime, cpuTimeErr, cpuDetId, cpuFB, cpuSoN); + ValidHit vGPU(gpuEn, gpuTime, gpuTimeErr, gpuDetId, gpuFB, gpuSoN); + ValidHit vDiffs(cpuEn - gpuEn, + cpuTime - gpuTime, + cpuTimeErr - gpuTimeErr, + cpuDetId - gpuDetId, + cpuFB - gpuFB, + cpuSoN - gpuSoN); + + cpuValidRecHits[idet].push_back(vCPU); + gpuValidRecHits[idet].push_back(vGPU); + diffsValidRecHits[idet].push_back(vDiffs); + } + trees_[idet]->Fill(); + } +} + +//define this as a plug-in +DEFINE_FWK_MODULE(HeterogeneousHGCalRecHitsValidator); diff --git a/Validation/HGCalValidation/plugins/HeterogeneousHGCalRecHitsValidator.h b/Validation/HGCalValidation/plugins/HeterogeneousHGCalRecHitsValidator.h new file mode 100644 index 0000000000000..01435ff6fc271 --- /dev/null +++ b/Validation/HGCalValidation/plugins/HeterogeneousHGCalRecHitsValidator.h @@ -0,0 +1,56 @@ +#ifndef _HGCalMaskResolutionAna_h_ +#define _HGCalMaskResolutionAna_h_ + +#include "FWCore/Framework/interface/one/EDAnalyzer.h" +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/EventSetup.h" +#include "FWCore/Framework/interface/MakerMacros.h" +#include "FWCore/ServiceRegistry/interface/Service.h" +#include "CommonTools/UtilAlgos/interface/TFileService.h" +#include "DataFormats/HGCRecHit/interface/HGCRecHit.h" +#include "DataFormats/HGCRecHit/interface/HGCRecHitCollections.h" +#include "Geometry/Records/interface/IdealGeometryRecord.h" +#include "Geometry/HGCalGeometry/interface/HGCalGeometry.h" +#include "RecoLocalCalo/HGCalRecAlgos/interface/RecHitTools.h" +#include "Validation/HGCalValidation/interface/ValidHit.h" + +#include "TTree.h" +#include "TH1F.h" + +#include +#include + +struct ValidRecHits { + std::vector energy; + std::vector time; + std::vector timeError; + std::vector detid; + std::vector flagBits; + std::vector son; +}; + +class HeterogeneousHGCalRecHitsValidator : public edm::one::EDAnalyzer { +public: + explicit HeterogeneousHGCalRecHitsValidator(const edm::ParameterSet&); + ~HeterogeneousHGCalRecHitsValidator() override; + void analyze(const edm::Event&, const edm::EventSetup&) override; + void endJob() override; + +private: + static const unsigned nsubdetectors = 3; //ce-e, ce-h-fine, ce-h-coarse + static const unsigned ncomputingdevices = 2; //cpu, gpu + //cpu amd gpu tokens and handles for the 3 subdetectors, cpu and gpu + std::array, ncomputingdevices>, nsubdetectors> tokens_; + std::array handles_str_ = { + {"HGCalEESensitive", "HGCalHESiliconSensitive", "HGCalHEScintillatorSensitive"}}; + hgcal::RecHitTools recHitTools_; + + std::array trees_; + std::array treenames_; + std::array cpuValidRecHits, gpuValidRecHits, diffsValidRecHits; + //std::vector< TH1F* > zhist; + + void set_geometry_(const edm::EventSetup&, const unsigned&); +}; + +#endif diff --git a/Validation/HGCalValidation/plugins/TICLTrackstersEdgesValidation.cc b/Validation/HGCalValidation/plugins/TICLTrackstersEdgesValidation.cc new file mode 100644 index 0000000000000..792808e343161 --- /dev/null +++ b/Validation/HGCalValidation/plugins/TICLTrackstersEdgesValidation.cc @@ -0,0 +1,329 @@ +#include +#include +#include + +// user include files +#include "DataFormats/Math/interface/Point3D.h" +#include "FWCore/Framework/interface/Frameworkfwd.h" +#include "DQMServices/Core/interface/DQMGlobalEDAnalyzer.h" + +#include "FWCore/Framework/interface/Event.h" +#include "FWCore/Framework/interface/MakerMacros.h" + +#include "FWCore/ParameterSet/interface/ParameterSet.h" + +#include "FWCore/Utilities/interface/transform.h" +#include "DataFormats/HGCalReco/interface/Trackster.h" +#include "DataFormats/HGCalReco/interface/TICLSeedingRegion.h" + +#include "DataFormats/CaloRecHit/interface/CaloCluster.h" +#include "RecoLocalCalo/HGCalRecAlgos/interface/RecHitTools.h" + +using namespace ticl; + +struct Histogram_TICLTrackstersEdgesValidation { + dqm::reco::MonitorElement* number_; + dqm::reco::MonitorElement *raw_energy_, *raw_energy_1plusLC_; + dqm::reco::MonitorElement *regr_energy_, *regr_energy_1plusLC_; + dqm::reco::MonitorElement *raw_energy_vs_regr_energy_, *raw_energy_vs_regr_energy_1plusLC_; + dqm::reco::MonitorElement *id_prob_, *id_prob_1plusLC_; + dqm::reco::MonitorElement* delta_energy_; + dqm::reco::MonitorElement* delta_energy_relative_; + dqm::reco::MonitorElement* delta_energy_vs_energy_; + dqm::reco::MonitorElement* delta_energy_vs_layer_; + dqm::reco::MonitorElement* delta_energy_relative_vs_layer_; + dqm::reco::MonitorElement* delta_layer_; + dqm::reco::MonitorElement* ingoing_links_vs_layer_; + dqm::reco::MonitorElement* outgoing_links_vs_layer_; + // For the definition of the angles, read http://hgcal.web.cern.ch/hgcal/Reconstruction/Tutorial/ + dqm::reco::MonitorElement* angle_alpha_; + dqm::reco::MonitorElement* angle_alpha_alternative_; + dqm::reco::MonitorElement* angle_beta_; + std::vector angle_beta_byLayer_; + std::vector angle_beta_w_byLayer_; +}; + +using Histograms_TICLTrackstersEdgesValidation = + std::unordered_map; + +class TICLTrackstersEdgesValidation : public DQMGlobalEDAnalyzer { +public: + explicit TICLTrackstersEdgesValidation(const edm::ParameterSet&); + ~TICLTrackstersEdgesValidation() override; + + static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); + +private: + void bookHistograms(DQMStore::IBooker&, + edm::Run const&, + edm::EventSetup const&, + Histograms_TICLTrackstersEdgesValidation&) const override; + + void dqmAnalyze(edm::Event const&, + edm::EventSetup const&, + Histograms_TICLTrackstersEdgesValidation const&) const override; + void dqmBeginRun(edm::Run const&, edm::EventSetup const&, Histograms_TICLTrackstersEdgesValidation&) const override; + + edm::ESGetToken caloGeomToken_; + std::string folder_; + std::vector trackstersCollectionsNames_; + std::vector>> tracksterTokens_; + edm::EDGetTokenT> layerClustersToken_; + edm::EDGetTokenT> ticlSeedingGlobalToken_; + edm::EDGetTokenT> ticlSeedingTrkToken_; + mutable hgcal::RecHitTools rhtools_; +}; + +TICLTrackstersEdgesValidation::TICLTrackstersEdgesValidation(const edm::ParameterSet& iConfig) + : caloGeomToken_(esConsumes()), + folder_(iConfig.getParameter("folder")) { + tracksterTokens_ = edm::vector_transform(iConfig.getParameter>("tracksterCollections"), + [this](edm::InputTag const& tag) { + trackstersCollectionsNames_.emplace_back(tag.label()); + return consumes>(tag); + }); + layerClustersToken_ = consumes>(iConfig.getParameter("layerClusters")); + ticlSeedingGlobalToken_ = + consumes>(iConfig.getParameter("ticlSeedingGlobal")); + ticlSeedingTrkToken_ = + consumes>(iConfig.getParameter("ticlSeedingTrk")); +} + +TICLTrackstersEdgesValidation::~TICLTrackstersEdgesValidation() {} + +void TICLTrackstersEdgesValidation::dqmAnalyze(edm::Event const& iEvent, + edm::EventSetup const& iSetup, + Histograms_TICLTrackstersEdgesValidation const& histos) const { + edm::Handle> layerClustersH; + iEvent.getByToken(layerClustersToken_, layerClustersH); + auto const& layerClusters = *layerClustersH.product(); + + edm::Handle> ticlSeedingGlobalH; + iEvent.getByToken(ticlSeedingGlobalToken_, ticlSeedingGlobalH); + auto const& ticlSeedingGlobal = *ticlSeedingGlobalH.product(); + + edm::Handle> ticlSeedingTrkH; + iEvent.getByToken(ticlSeedingTrkToken_, ticlSeedingTrkH); + auto const& ticlSeedingTrk = *ticlSeedingTrkH.product(); + + for (const auto& trackster_token : tracksterTokens_) { + edm::Handle> trackster_h; + iEvent.getByToken(trackster_token, trackster_h); + auto numberOfTracksters = trackster_h->size(); + //using .at() as [] is not const + const auto& histo = histos.at(trackster_token.index()); + histo.number_->Fill(numberOfTracksters); + for (unsigned int i = 0; i < numberOfTracksters; ++i) { + const auto& thisTrackster = trackster_h->at(i); + + // The following plots should be moved to HGVHistoProducerAlgo + // when we get rid of the MultiClusters and use only Tracksters + histo.raw_energy_->Fill(thisTrackster.raw_energy()); + histo.regr_energy_->Fill(thisTrackster.regressed_energy()); + histo.raw_energy_vs_regr_energy_->Fill(thisTrackster.regressed_energy(), thisTrackster.raw_energy()); + const auto& probs = thisTrackster.id_probabilities(); + std::vector sorted_probs_idx(probs.size()); + std::iota(begin(sorted_probs_idx), end(sorted_probs_idx), 0); + std::sort(begin(sorted_probs_idx), end(sorted_probs_idx), [&probs](int i, int j) { return probs[i] > probs[j]; }); + histo.id_prob_->Fill(sorted_probs_idx[0]); + if (!thisTrackster.vertices().empty()) { + histo.raw_energy_1plusLC_->Fill(thisTrackster.raw_energy()); + histo.regr_energy_1plusLC_->Fill(thisTrackster.regressed_energy()); + histo.raw_energy_vs_regr_energy_1plusLC_->Fill(thisTrackster.regressed_energy(), thisTrackster.raw_energy()); + histo.id_prob_1plusLC_->Fill(sorted_probs_idx[0]); + } + + // Plots on edges + for (const auto& edge : thisTrackster.edges()) { + auto& ic = layerClusters[edge[0]]; + auto& oc = layerClusters[edge[1]]; + auto const& cl_in = ic.hitsAndFractions()[0].first; + auto const& cl_out = oc.hitsAndFractions()[0].first; + auto const layer_in = rhtools_.getLayerWithOffset(cl_in); + auto const layer_out = rhtools_.getLayerWithOffset(cl_out); + histo.delta_energy_->Fill(oc.energy() - ic.energy()); + histo.delta_energy_relative_->Fill((oc.energy() - ic.energy()) / ic.energy()); + histo.delta_energy_vs_energy_->Fill(oc.energy() - ic.energy(), ic.energy()); + histo.delta_energy_vs_layer_->Fill(layer_in, oc.energy() - ic.energy()); + histo.delta_energy_relative_vs_layer_->Fill(layer_in, (oc.energy() - ic.energy()) / ic.energy()); + histo.delta_layer_->Fill(layer_out - layer_in); + + // Alpha angles + const auto& outer_outer_pos = oc.position(); + const auto& outer_inner_pos = ic.position(); + const auto& seed = thisTrackster.seedIndex(); + auto seedGlobalPos = math::XYZPoint( + ticlSeedingGlobal[0].origin.x(), ticlSeedingGlobal[0].origin.y(), ticlSeedingGlobal[0].origin.z()); + auto seedDirectionPos = outer_inner_pos; + if (thisTrackster.seedID().id() != 0) { + // Seed to trackster association is, at present, rather convoluted. + for (auto const& s : ticlSeedingTrk) { + if (s.index == seed) { + seedGlobalPos = math::XYZPoint(s.origin.x(), s.origin.y(), s.origin.z()); + seedDirectionPos = + math::XYZPoint(s.directionAtOrigin.x(), s.directionAtOrigin.y(), s.directionAtOrigin.z()); + break; + } + } + } + + auto alpha = (outer_inner_pos - seedGlobalPos).Dot(outer_outer_pos - outer_inner_pos) / + sqrt((outer_inner_pos - seedGlobalPos).Mag2() * (outer_outer_pos - outer_inner_pos).Mag2()); + auto alpha_alternative = (outer_outer_pos - seedGlobalPos).Dot(seedDirectionPos) / + sqrt((outer_outer_pos - seedGlobalPos).Mag2() * seedDirectionPos.Mag2()); + histo.angle_alpha_->Fill(alpha); + histo.angle_alpha_alternative_->Fill(alpha_alternative); + + // Beta angle is usually computed using 2 edges. Another inner loop + // is therefore needed. + std::vector> innerDoublets; + std::vector> outerDoublets; + for (const auto& otherEdge : thisTrackster.edges()) { + if (otherEdge[1] == edge[0]) { + innerDoublets.push_back(otherEdge); + } + if (edge[1] == otherEdge[0]) { + outerDoublets.push_back(otherEdge); + } + } + + histo.ingoing_links_vs_layer_->Fill(layer_in, innerDoublets.size()); + histo.outgoing_links_vs_layer_->Fill(layer_out, outerDoublets.size()); + for (const auto& inner : innerDoublets) { + const auto& inner_ic = layerClusters[inner[0]]; + const auto& inner_inner_pos = inner_ic.position(); + auto beta = (outer_inner_pos - inner_inner_pos).Dot(outer_outer_pos - inner_inner_pos) / + sqrt((outer_inner_pos - inner_inner_pos).Mag2() * (outer_outer_pos - inner_inner_pos).Mag2()); + histo.angle_beta_->Fill(beta); + histo.angle_beta_byLayer_[layer_in]->Fill(beta); + histo.angle_beta_w_byLayer_[layer_in]->Fill(beta, ic.energy()); + } + } + } + } +} + +void TICLTrackstersEdgesValidation::bookHistograms(DQMStore::IBooker& ibook, + edm::Run const& run, + edm::EventSetup const& iSetup, + Histograms_TICLTrackstersEdgesValidation& histos) const { + float eMin = 0., eThresh = 70., eMax = 500; + float eWidth[] = {0.5, 2.}; + std::vector eBins; + float eVal = eMin; + while (eVal <= eThresh) { + eBins.push_back(eVal); + eVal += eWidth[0]; + } + while (eVal < eMax) { + eVal += eWidth[1]; + eBins.push_back(eVal); + } + int eNBins = eBins.size() - 1; + + TString onePlusLC[] = {"1plus LC", "for tracksters with at least one LC"}; + TString trkers = "Tracksters"; + static const char* particle_kind[] = { + "photon", "electron", "muon", "neutral_pion", "charged_hadron", "neutral_hadron", "ambiguous", "unknown"}; + auto nCategory = sizeof(particle_kind) / sizeof(*particle_kind); + int labelIndex = 0; + for (const auto& trackster_token : tracksterTokens_) { + auto& histo = histos[trackster_token.index()]; + ibook.setCurrentFolder(folder_ + "HGCalValidator/" + trackstersCollectionsNames_[labelIndex]); + histo.number_ = ibook.book1D( + "Number of Tracksters per Event", "Number of Tracksters per Event;# Tracksters;Events", 250, 0., 250.); + // The following plots should be moved to HGVHistoProducerAlgo + // when we get rid of the MultiClusters and use only Tracksters + histo.raw_energy_ = ibook.book1D("Raw Energy", "Raw Energy;Raw Energy [GeV];" + trkers, eNBins, &eBins[0]); + histo.regr_energy_ = + ibook.book1D("Regressed Energy", "Regressed Energy;Regressed Energy [GeV];" + trkers, eNBins, &eBins[0]); + histo.raw_energy_vs_regr_energy_ = ibook.book2D("Raw Energy vs Regressed Energy", + "Raw vs Regressed Energy;Regressed Energy [GeV];Raw Energy [GeV]", + eNBins, + &eBins[0], + eNBins, + &eBins[0]); + histo.id_prob_ = + ibook.book1D("ID probability", "ID probability;category;Max ID probability", nCategory, 0, nCategory); + histo.raw_energy_1plusLC_ = ibook.book1D( + "Raw Energy " + onePlusLC[0], "Raw Energy " + onePlusLC[1] + ";Raw Energy [GeV];" + trkers, eNBins, &eBins[0]); + histo.regr_energy_1plusLC_ = ibook.book1D("Regressed Energy " + onePlusLC[0], + "Regressed Energy " + onePlusLC[1] + ";Regressed Energy [GeV];" + trkers, + eNBins, + &eBins[0]); + histo.raw_energy_vs_regr_energy_1plusLC_ = + ibook.book2D("Raw Energy vs Regressed Energy " + onePlusLC[0], + "Raw vs Regressed Energy " + onePlusLC[1] + ";Regressed Energy [GeV];Raw Energy [GeV]", + eNBins, + &eBins[0], + eNBins, + &eBins[0]); + histo.id_prob_1plusLC_ = ibook.book1D("ID probability " + onePlusLC[0], + "ID probability " + onePlusLC[1] + ";category;Max ID probability", + nCategory, + 0, + nCategory); + for (int iBin = 0; iBin < histo.id_prob_->getNbinsX(); iBin++) { + histo.id_prob_->setBinLabel(iBin + 1, particle_kind[iBin]); + histo.id_prob_1plusLC_->setBinLabel(iBin + 1, particle_kind[iBin]); + } + // Plots on edges + histo.delta_energy_ = ibook.book1D("Delta energy", "Delta Energy (O-I)", 800, -20., 20.); + histo.delta_energy_relative_ = + ibook.book1D("Relative Delta energy", "Relative Delta Energy (O-I)/I", 200, -10., 10.); + histo.delta_energy_vs_energy_ = + ibook.book2D("Energy vs Delta Energy", "Energy (I) vs Delta Energy (O-I)", 800, -20., 20., 200, 0., 20.); + histo.delta_energy_vs_layer_ = ibook.book2D( + "Delta Energy (O-I) vs Layer Number (I)", "Delta Energy (O-I) vs Layer Number (I)", 50, 0., 50., 800, -20., 20.); + histo.delta_energy_relative_vs_layer_ = ibook.book2D("Relative Delta Energy (O-I)_I vs Layer Number (I)", + "Relative Delta Energy (O-I)_I vs Layer Number (I)", + 50, + 0., + 50., + 200, + -10., + 10.); + histo.ingoing_links_vs_layer_ = + ibook.book2D("Ingoing links Layer Number", "Ingoing links vs Layer Number", 50, 0., 50., 40, 0., 40.); + histo.outgoing_links_vs_layer_ = + ibook.book2D("Outgoing links vs Layer Number", "Outgoing links vs Layer Number", 50, 0., 50., 40, 0., 40.); + histo.delta_layer_ = ibook.book1D("Delta Layer", "Delta Layer", 10, 0., 10.); + histo.angle_alpha_ = ibook.book1D("cosAngle Alpha", "cosAngle Alpha", 200, -1., 1.); + histo.angle_beta_ = ibook.book1D("cosAngle Beta", "cosAngle Beta", 200, -1., 1.); + histo.angle_alpha_alternative_ = ibook.book1D("cosAngle Alpha Alternative", "Angle Alpha Alternative", 200, 0., 1.); + for (int layer = 0; layer < 50; layer++) { + auto layerstr = std::to_string(layer + 1); + if (layerstr.length() < 2) + layerstr.insert(0, 2 - layerstr.length(), '0'); + histo.angle_beta_byLayer_.push_back( + ibook.book1D("cosAngle Beta on Layer " + layerstr, "cosAngle Beta on Layer " + layerstr, 200, -1., 1.)); + histo.angle_beta_w_byLayer_.push_back(ibook.book1D( + "cosAngle Beta Weighted on Layer " + layerstr, "cosAngle Beta Weighted on Layer " + layerstr, 200, -1., 1.)); + } + labelIndex++; + } +} + +void TICLTrackstersEdgesValidation::dqmBeginRun(edm::Run const& run, + edm::EventSetup const& iSetup, + Histograms_TICLTrackstersEdgesValidation& histograms) const { + edm::ESHandle geom = iSetup.getHandle(caloGeomToken_); + rhtools_.setGeometry(*geom); +} + +void TICLTrackstersEdgesValidation::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { + edm::ParameterSetDescription desc; + std::vector source_vector{edm::InputTag("ticlTrackstersTrk"), + edm::InputTag("ticlTrackstersTrkEM"), + edm::InputTag("ticlTrackstersEM"), + edm::InputTag("ticlTrackstersHAD"), + edm::InputTag("ticlTrackstersMerge")}; + desc.add>("tracksterCollections", source_vector); + desc.add("layerClusters", edm::InputTag("hgcalLayerClusters")); + desc.add("ticlSeedingGlobal", edm::InputTag("ticlSeedingGlobal")); + desc.add("ticlSeedingTrk", edm::InputTag("ticlSeedingTrk")); + desc.add("folder", "HGCAL/"); + descriptions.add("ticlTrackstersEdgesValidationDefault", desc); +} + +DEFINE_FWK_MODULE(TICLTrackstersEdgesValidation); diff --git a/Validation/HGCalValidation/python/CaloParticleSelectionForEfficiency_cfi.py b/Validation/HGCalValidation/python/CaloParticleSelectionForEfficiency_cfi.py index 0e9ae846a4fde..5e84ad75752b6 100644 --- a/Validation/HGCalValidation/python/CaloParticleSelectionForEfficiency_cfi.py +++ b/Validation/HGCalValidation/python/CaloParticleSelectionForEfficiency_cfi.py @@ -2,7 +2,7 @@ CaloParticleSelectionForEfficiency = cms.PSet( ptMinCP = cms.double(0.5), - ptMaxCP = cms.double(250.), + ptMaxCP = cms.double(300.), minRapidityCP = cms.double(-3.1), maxRapidityCP = cms.double(3.1), #--z position of the origin vertex less than lipCP @@ -11,12 +11,14 @@ tipCP = cms.double(60), chargedOnlyCP = cms.bool(False), stableOnlyCP = cms.bool(False), - pdgIdCP = cms.vint32(11, -11, 13, -13, 22, 111, 211, -211, 321, -321, 311), + notConvertedOnlyCP = cms.bool(True), + #311: K0, 130: K0_short, 310: K0_long + pdgIdCP = cms.vint32(11, -11, 13, -13, 22, 111, 211, -211, 321, -321, 311, 130, 310), #--signal only means no PU particles signalOnlyCP = cms.bool(True), #--intime only means no OOT PU particles intimeOnlyCP = cms.bool(True), #The total number of rechits minHitCP = cms.int32(0), - maxSimClustersCP = cms.int32(1) + maxSimClustersCP = cms.int32(-1) ) diff --git a/Validation/HGCalValidation/python/HGCalValidator_cfi.py b/Validation/HGCalValidation/python/HGCalValidator_cfi.py index db07bc9da6be0..4f415db769eaa 100644 --- a/Validation/HGCalValidation/python/HGCalValidator_cfi.py +++ b/Validation/HGCalValidation/python/HGCalValidator_cfi.py @@ -7,6 +7,13 @@ from SimCalorimetry.HGCalAssociatorProducers.LCToSCAssociation_cfi import layerClusterSimClusterAssociation from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer + +from RecoHGCal.TICL.iterativeTICL_cff import ticlIterLabels, ticlIterLabelsMerge + +labelMcl = [cms.InputTag("ticlMultiClustersFromTracksters"+iteration) for iteration in ticlIterLabelsMerge] +labelMcl.extend(["ticlMultiClustersFromSimTracksters"]) +lcInputMask = [cms.InputTag("ticlTracksters"+iteration) for iteration in ticlIterLabels] +lcInputMask.extend(["ticlSimTracksters"]) hgcalValidator = DQMEDAnalyzer( "HGCalValidator", @@ -17,11 +24,7 @@ ### reco input configuration ### #2dlayerclusters, pfclusters, multiclusters label_lcl = layerClusterCaloParticleAssociation.label_lc, - label_mcl = cms.VInputTag( - cms.InputTag("ticlMultiClustersFromTrackstersTrk"), - cms.InputTag("ticlMultiClustersFromTrackstersEM"), - cms.InputTag("ticlMultiClustersFromTrackstersHAD"), - cms.InputTag("ticlMultiClustersFromTrackstersMerge")), + label_mcl = cms.VInputTag(labelMcl), associator = cms.untracked.InputTag("layerClusterCaloParticleAssociationProducer"), @@ -34,11 +37,11 @@ #Select caloParticles for efficiency or pass through doCaloParticleSelection = cms.untracked.bool(True), #SimCluster related plots - dosimclustersPlots = cms.untracked.bool(True), + doSimClustersPlots = cms.untracked.bool(True), #Layer Cluster related plots - dolayerclustersPlots = cms.untracked.bool(True), + doLayerClustersPlots = cms.untracked.bool(True), #Multi Cluster related plots - domulticlustersPlots = cms.untracked.bool(True), + doMultiClustersPlots = cms.untracked.bool(True), #The cumulative material budget in front of each layer. To be more specific, it #is the material budget just in front of the active material (not including it). @@ -53,12 +56,7 @@ simVertices = cms.InputTag("g4SimHits"), - LayerClustersInputMask = cms.VInputTag( - cms.InputTag("ticlTrackstersTrkEM"), - cms.InputTag("ticlTrackstersEM"), - cms.InputTag("ticlTrackstersTrk"), - cms.InputTag("ticlTrackstersHAD") - ), + LayerClustersInputMask = cms.VInputTag(lcInputMask), #Total number of layers of HGCal that we want to monitor #Could get this also from HGCalImagingAlgo::maxlayer but better to get it from here diff --git a/Validation/HGCalValidation/python/PostProcessorHGCAL_cfi.py b/Validation/HGCalValidation/python/PostProcessorHGCAL_cfi.py index 5c9d8b47c919b..c138c5f07aa5d 100644 --- a/Validation/HGCalValidation/python/PostProcessorHGCAL_cfi.py +++ b/Validation/HGCalValidation/python/PostProcessorHGCAL_cfi.py @@ -1,5 +1,6 @@ import FWCore.ParameterSet.Config as cms from DQMServices.Core.DQMEDHarvester import DQMEDHarvester +from RecoHGCal.TICL.iterativeTICL_cff import ticlIterLabelsMerge maxlayerzm = 50# last layer of BH -z maxlayerzp = 100# last layer of BH +z @@ -33,14 +34,10 @@ eff_simclusters.extend(["merge_eta_layer{:02d} 'LayerCluster Merge Rate vs #eta Layer{:02d} in z-' NumMerge_LayerCluster_in_SimCluster_Eta_perlayer{:02d} Denom_LayerCluster_in_SimCluster_Eta_perlayer{:02d}".format(i, i%maxlayerzm+1, i, i) if (i totenergy_layer; for (auto const& sc : caloparticle.simClusters()) { + LogDebug("HGCalValidator") << " This sim cluster has " << sc->hits_and_fractions().size() << " simHits and " + << sc->energy() << " energy. " << std::endl; simHits += sc->hits_and_fractions().size(); - for (auto const& h_and_f : sc->hits_and_fractions()) { const auto hitDetId = h_and_f.first; int layerId = recHitTools_->getLayerWithOffset(hitDetId) + layers * ((recHitTools_->zside(hitDetId) + 1) >> 1) - 1; - // set to 0 if matched RecHit not found int layerId_matched_min = 999; int layerId_matched_max = 0; @@ -1279,6 +1285,8 @@ void HGVHistoProducerAlgo::fill_caloparticle_histos(const Histograms& histograms if (caloparticle.simClusters().size() == 1) histograms.h_caloparticle_nHits_matched_energy_layer_1SimCl.at(pdgid)->Fill(layerId, hit->energy() * h_and_f.second); + } else { + LogDebug("HGCalValidator") << " matched to RecHit NOT found !" << std::endl; } minLayerId = std::min(minLayerId, layerId); @@ -1286,6 +1294,7 @@ void HGVHistoProducerAlgo::fill_caloparticle_histos(const Histograms& histograms minLayerId_matched = std::min(minLayerId_matched, layerId_matched_min); maxLayerId_matched = std::max(maxLayerId_matched, layerId_matched_max); } + LogDebug("HGCalValidator") << std::endl; } histograms.h_caloparticle_firstlayer.at(pdgid)->Fill(minLayerId); histograms.h_caloparticle_lastlayer.at(pdgid)->Fill(maxLayerId); @@ -2803,7 +2812,7 @@ void HGVHistoProducerAlgo::multiClusters_to_CaloParticles(const Histograms& hist mclsharedenergyfrac[cpId][mclId]); } //end of loop through multiclusters - auto is_assoc = [&](const auto& v) -> bool { return v < ScoreCutCPtoMCLDup_; }; + auto is_assoc = [&](const auto& v) -> bool { return v < ScoreCutCPtoMCLEffDup_; }; auto assocDup = std::count_if(std::begin(score3d[cpId]), std::end(score3d[cpId]), is_assoc); @@ -2817,6 +2826,7 @@ void HGVHistoProducerAlgo::multiClusters_to_CaloParticles(const Histograms& hist multiClusters[bestmclId].energy() / CPenergy); histograms.h_sharedenergy_caloparticle2multicl_vs_phi[count]->Fill(cP[cpId].g4Tracks()[0].momentum().phi(), multiClusters[bestmclId].energy() / CPenergy); + histograms.h_sharedenergy_caloparticle2multicl_assoc[count]->Fill(mclsharedenergyfrac[cpId][bestmclId]); } if (assocDup >= 2) { auto match = std::find_if(std::begin(score3d[cpId]), std::end(score3d[cpId]), is_assoc); diff --git a/Validation/HGCalValidation/src/classes.h b/Validation/HGCalValidation/src/classes.h new file mode 100644 index 0000000000000..9b815cbc4917f --- /dev/null +++ b/Validation/HGCalValidation/src/classes.h @@ -0,0 +1,16 @@ +#ifdef __CINT_ +#pragma link off all globals; +#pragma link off all classes; +#pragma link off all functions; +#pragma link C++ nestedclasses; +#pragma link C++ class ValidHit + ; +#pragma link C++ class vector < ValidHit> + ; +#endif /* __CINT__ */ + +#include "Validation/HGCalValidation/interface/ValidHit.h" +#include "DataFormats/Common/interface/AssociationVector.h" +#include "DataFormats/Common/interface/AssociationMap.h" + +ValidHit vh; +std::vector vvh; +edm::Wrapper > wvvh; diff --git a/Validation/HGCalValidation/src/classes_def.xml b/Validation/HGCalValidation/src/classes_def.xml new file mode 100644 index 0000000000000..07d8e516a9afd --- /dev/null +++ b/Validation/HGCalValidation/src/classes_def.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/Validation/HGCalValidation/test/HeterogeneousHGCalRecHitsValidator_cfg.py b/Validation/HGCalValidation/test/HeterogeneousHGCalRecHitsValidator_cfg.py new file mode 100644 index 0000000000000..7b4a2eacebcfa --- /dev/null +++ b/Validation/HGCalValidation/test/HeterogeneousHGCalRecHitsValidator_cfg.py @@ -0,0 +1,101 @@ +import os, sys, glob +import FWCore.ParameterSet.Config as cms +from Configuration.StandardSequences.Eras import eras +from Configuration.ProcessModifiers.gpu_cff import gpu +from RecoLocalCalo.HGCalRecProducers.HGCalRecHit_cfi import HGCalRecHit + +def getHeterogeneousRecHitsSource(pu): + indir = '/eos/user/b/bfontana/Samples/' #indir = '/home/bfontana/' + filename_suff = 'step3_ttbar_PU' + str(pu) #filename_suff = 'hadd_out_PU' + str(pu) + fNames = [ 'file:' + x for x in glob.glob(os.path.join(indir, filename_suff + '*.root')) ] + print(indir, filename_suff, pu, fNames) + for _ in range(4): + fNames.extend(fNames) + if len(fNames)==0: + print('Used globbing: ', glob.glob(os.path.join(indir, filename_suff + '*.root'))) + raise ValueError('No input files!') + + keep = 'keep *' + drop1 = 'drop CSCDetIdCSCALCTPreTriggerDigiMuonDigiCollection_simCscTriggerPrimitiveDigis__HLT' + drop2 = 'drop HGCRecHitsSorted_HGCalRecHit_HGC*E*RecHits_*' + return cms.Source("PoolSource", + fileNames = cms.untracked.vstring(fNames), + inputCommands = cms.untracked.vstring(keep, drop1, drop2), + duplicateCheckMode = cms.untracked.string("noDuplicateCheck")) + +#arguments parsing +from FWCore.ParameterSet.VarParsing import VarParsing +F = VarParsing('analysis') +F.register('PU', + 1, + F.multiplicity.singleton, + F.varType.int, + "Pileup to consider.") +F.parseArguments() + +#package loading +process = cms.Process("gpuValidation", gpu) +process.load('FWCore.MessageService.MessageLogger_cfi') +process.load('Configuration.StandardSequences.Services_cff') +process.load('SimGeneral.HepPDTESSource.pythiapdt_cfi') +process.load('Configuration.StandardSequences.MagneticField_cff') +#process.load('Configuration.EventContent.EventContent_cff') +process.load('Configuration.StandardSequences.FrontierConditions_GlobalTag_cff') +process.load('Configuration.Geometry.GeometryExtended2026D49Reco_cff') +process.load('HeterogeneousCore.CUDAServices.CUDAService_cfi') +process.load('RecoLocalCalo.HGCalRecProducers.HGCalRecHit_cfi') +process.load('SimCalorimetry.HGCalSimProducers.hgcalDigitizer_cfi') + +from Configuration.AlCa.GlobalTag import GlobalTag +process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase2_realistic', '') + +#TFileService + +dirName = '/eos/user/b/bfontana/Samples/' +fileName = 'validation' + str(F.PU) + '.root' +process.TFileService = cms.Service("TFileService", + fileName = cms.string( os.path.join(dirName,fileName) ), + closeFileFast = cms.untracked.bool(True) + ) + +process.source = getHeterogeneousRecHitsSource(F.PU) +process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(10) ) +process.options = cms.untracked.PSet( + wantSummary = cms.untracked.bool( False )) #add option for edmStreams + +process.load('RecoLocalCalo.HGCalRecProducers.HeterogeneousEERecHitGPU_cfi') +process.load('RecoLocalCalo.HGCalRecProducers.HeterogeneousEERecHitGPUtoSoA_cfi') +process.load('RecoLocalCalo.HGCalRecProducers.HeterogeneousEERecHitFromSoA_cfi') + +process.load('RecoLocalCalo.HGCalRecProducers.HeterogeneousHEFRecHitGPU_cfi') +process.load('RecoLocalCalo.HGCalRecProducers.HeterogeneousHEFRecHitGPUtoSoA_cfi') +process.load('RecoLocalCalo.HGCalRecProducers.HeterogeneousHEFRecHitFromSoA_cfi') + +process.load('RecoLocalCalo.HGCalRecProducers.HeterogeneousHEBRecHitGPU_cfi') +process.load('RecoLocalCalo.HGCalRecProducers.HeterogeneousHEBRecHitGPUtoSoA_cfi') +process.load('RecoLocalCalo.HGCalRecProducers.HeterogeneousHEBRecHitFromSoA_cfi') + +process.HGCalRecHits = HGCalRecHit.clone() + +process.valid = cms.EDAnalyzer( 'HeterogeneousHGCalRecHitsValidator', + cpuRecHitsEEToken = cms.InputTag('HGCalRecHits', 'HGCEERecHits'), + gpuRecHitsEEToken = cms.InputTag('EERecHitFromSoAProd'), + cpuRecHitsHSiToken = cms.InputTag('HGCalRecHits', 'HGCHEFRecHits'), + gpuRecHitsHSiToken = cms.InputTag('HEFRecHitFromSoAProd'), + cpuRecHitsHSciToken = cms.InputTag('HGCalRecHits', 'HGCHEBRecHits'), + gpuRecHitsHSciToken = cms.InputTag('HEBRecHitFromSoAProd') +) + +process.ee_t = cms.Task( process.EERecHitGPUProd, process.EERecHitGPUtoSoAProd, process.EERecHitFromSoAProd ) +process.hef_t = cms.Task( process.HEFRecHitGPUProd, process.HEFRecHitGPUtoSoAProd, process.HEFRecHitFromSoAProd ) +process.heb_t = cms.Task( process.HEBRecHitGPUProd, process.HEBRecHitGPUtoSoAProd, process.HEBRecHitFromSoAProd ) +process.gpu_t = cms.Task( process.ee_t, process.hef_t, process.heb_t ) +process.cpu_t = cms.Task( process.HGCalRecHits ) +process.path = cms.Path( process.valid, process.gpu_t, process.cpu_t ) + + +process.out = cms.OutputModule( "PoolOutputModule", + fileName = cms.untracked.string( os.path.join(dirName, 'out.root') ), + outputCommands = cms.untracked.vstring('drop *') ) + +process.outpath = cms.EndPath(process.out) diff --git a/Validation/MtdValidation/plugins/BtlDigiHitsValidation.cc b/Validation/MtdValidation/plugins/BtlDigiHitsValidation.cc index 09b5f11dd3cf9..8afa5e82c75d2 100644 --- a/Validation/MtdValidation/plugins/BtlDigiHitsValidation.cc +++ b/Validation/MtdValidation/plugins/BtlDigiHitsValidation.cc @@ -50,9 +50,13 @@ class BtlDigiHitsValidation : public DQMEDAnalyzer { // ------------ member data ------------ const std::string folder_; + const bool LocalPosDebug_; edm::EDGetTokenT btlDigiHitsToken_; + edm::ESGetToken mtdgeoToken_; + edm::ESGetToken mtdtopoToken_; + // --- histograms declaration MonitorElement* meNhits_[2]; @@ -62,6 +66,12 @@ class BtlDigiHitsValidation : public DQMEDAnalyzer { MonitorElement* meOccupancy_[2]; + //local position monitoring + MonitorElement* meLocalOccupancy_[2]; + MonitorElement* meHitXlocal_[2]; + MonitorElement* meHitYlocal_[2]; + MonitorElement* meHitZlocal_[2]; + MonitorElement* meHitX_[2]; MonitorElement* meHitY_[2]; MonitorElement* meHitZ_[2]; @@ -79,8 +89,11 @@ class BtlDigiHitsValidation : public DQMEDAnalyzer { // ------------ constructor and destructor -------------- BtlDigiHitsValidation::BtlDigiHitsValidation(const edm::ParameterSet& iConfig) - : folder_(iConfig.getParameter("folder")) { + : folder_(iConfig.getParameter("folder")), + LocalPosDebug_(iConfig.getParameter("LocalPositionDebug")) { btlDigiHitsToken_ = consumes(iConfig.getParameter("inputTag")); + mtdgeoToken_ = esConsumes(); + mtdtopoToken_ = esConsumes(); } BtlDigiHitsValidation::~BtlDigiHitsValidation() {} @@ -89,12 +102,10 @@ BtlDigiHitsValidation::~BtlDigiHitsValidation() {} void BtlDigiHitsValidation::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { using namespace edm; - edm::ESHandle geometryHandle; - iSetup.get().get(geometryHandle); + auto geometryHandle = iSetup.getTransientHandle(mtdgeoToken_); const MTDGeometry* geom = geometryHandle.product(); - edm::ESHandle topologyHandle; - iSetup.get().get(topologyHandle); + auto topologyHandle = iSetup.getTransientHandle(mtdtopoToken_); const MTDTopology* topology = topologyHandle.product(); auto btlDigiHitsHandle = makeValid(iEvent.getHandle(btlDigiHitsToken_)); @@ -132,6 +143,13 @@ void BtlDigiHitsValidation::analyze(const edm::Event& iEvent, const edm::EventSe meOccupancy_[iside]->Fill(global_point.z(), global_point.phi()); + if (LocalPosDebug_) { + meLocalOccupancy_[iside]->Fill(local_point.x(), local_point.y()); + meHitXlocal_[iside]->Fill(local_point.x()); + meHitYlocal_[iside]->Fill(local_point.y()); + meHitZlocal_[iside]->Fill(local_point.z()); + } + meHitX_[iside]->Fill(global_point.x()); meHitY_[iside]->Fill(global_point.y()); meHitZ_[iside]->Fill(global_point.z()); @@ -163,7 +181,6 @@ void BtlDigiHitsValidation::bookHistograms(DQMStore::IBooker& ibook, edm::Run const& run, edm::EventSetup const& iSetup) { ibook.setCurrentFolder(folder_); - // --- histograms booking meNhits_[0] = ibook.book1D("BtlNhitsL", "Number of BTL DIGI hits (L);log_{10}(N_{DIGI})", 100, 0., 5.25); @@ -173,7 +190,6 @@ void BtlDigiHitsValidation::bookHistograms(DQMStore::IBooker& ibook, meHitCharge_[1] = ibook.book1D("BtlHitChargeR", "BTL DIGI hits charge (R);Q_{DIGI} [ADC counts]", 100, 0., 1024.); meHitTime_[0] = ibook.book1D("BtlHitTimeL", "BTL DIGI hits ToA (L);ToA_{DIGI} [TDC counts]", 100, 0., 1024.); meHitTime_[1] = ibook.book1D("BtlHitTimeR", "BTL DIGI hits ToA (R);ToA_{DIGI} [TDC counts]", 100, 0., 1024.); - meOccupancy_[0] = ibook.book2D("BtlOccupancyL", "BTL DIGI hits occupancy (L);Z_{DIGI} [cm]; #phi_{DIGI} [rad]", 65, @@ -190,6 +206,24 @@ void BtlDigiHitsValidation::bookHistograms(DQMStore::IBooker& ibook, 126, -3.15, 3.15); + if (LocalPosDebug_) { + meLocalOccupancy_[0] = ibook.book2D("BtlLocalOccupancyL", + "BTL DIGI hits local occupancy (L);X_{DIGI} [cm]; Y_{DIGI} [cm]", + 100, + -10., + 10, + 60, + -3., + 3.); + meLocalOccupancy_[1] = ibook.book2D( + "BtlLocalOccupancyR", "BTL DIGI hits occupancy (R);X_{DIGI} [cm]; Y_{DIGI} [cm]", 100, -10., 10., 60, -3., 3.); + meHitXlocal_[0] = ibook.book1D("BtlHitXlocalL", "BTL DIGI local X (L);X_{DIGI}^{LOC} [cm]", 100, -10., 10.); + meHitXlocal_[1] = ibook.book1D("BtlHitXlocalR", "BTL DIGI local X (R);X_{DIGI}^{LOC} [cm]", 100, -10., 10.); + meHitYlocal_[0] = ibook.book1D("BtlHitYlocalL", "BTL DIGI local Y (L);Y_{DIGI}^{LOC} [cm]", 60, -3., 3.); + meHitYlocal_[1] = ibook.book1D("BtlHitYlocalR", "BTL DIGI local Y (R);Y_{DIGI}^{LOC} [cm]", 60, -3., 3.); + meHitZlocal_[0] = ibook.book1D("BtlHitZlocalL", "BTL DIGI local z (L);z_{DIGI}^{LOC} [cm]", 10, -1, 1); + meHitZlocal_[1] = ibook.book1D("BtlHitZlocalR", "BTL DIGI local z (R);z_{DIGI}^{LOC} [cm]", 10, -1, 1); + } meHitX_[0] = ibook.book1D("BtlHitXL", "BTL DIGI hits X (L);X_{DIGI} [cm]", 60, -120., 120.); meHitX_[1] = ibook.book1D("BtlHitXR", "BTL DIGI hits X (R);X_{DIGI} [cm]", 60, -120., 120.); @@ -258,6 +292,7 @@ void BtlDigiHitsValidation::fillDescriptions(edm::ConfigurationDescriptions& des desc.add("folder", "MTD/BTL/DigiHits"); desc.add("inputTag", edm::InputTag("mix", "FTLBarrel")); + desc.add("LocalPositionDebug", false); descriptions.add("btlDigiHitsDefault", desc); } diff --git a/Validation/MtdValidation/plugins/BtlLocalRecoValidation.cc b/Validation/MtdValidation/plugins/BtlLocalRecoValidation.cc index 244cb029326b5..ab50036cc1115 100644 --- a/Validation/MtdValidation/plugins/BtlLocalRecoValidation.cc +++ b/Validation/MtdValidation/plugins/BtlLocalRecoValidation.cc @@ -64,21 +64,32 @@ class BtlLocalRecoValidation : public DQMEDAnalyzer { // ------------ member data ------------ const std::string folder_; - const float hitMinEnergy_; + const double hitMinEnergy_; + const bool LocalPosDebug_; edm::EDGetTokenT btlRecHitsToken_; edm::EDGetTokenT > btlSimHitsToken_; edm::EDGetTokenT btlRecCluToken_; + edm::ESGetToken mtdgeoToken_; + edm::ESGetToken mtdtopoToken_; + // --- histograms declaration MonitorElement* meNhits_; MonitorElement* meHitEnergy_; MonitorElement* meHitTime_; + MonitorElement* meHitTimeError_; MonitorElement* meOccupancy_; + //local position monitoring + MonitorElement* meLocalOccupancy_; + MonitorElement* meHitXlocal_; + MonitorElement* meHitYlocal_; + MonitorElement* meHitZlocal_; + MonitorElement* meHitX_; MonitorElement* meHitY_; MonitorElement* meHitZ_; @@ -97,10 +108,16 @@ class BtlLocalRecoValidation : public DQMEDAnalyzer { MonitorElement* meTimeRes_; MonitorElement* meEnergyRes_; - MonitorElement* meTresvsE_; - MonitorElement* meEresvsE_; + + MonitorElement* meLongPosPull_; + MonitorElement* meLongPosPullvsE_; + MonitorElement* meLongPosPullvsEta_; + + MonitorElement* meTPullvsE_; + MonitorElement* meTPullvsEta_; MonitorElement* meCluTime_; + MonitorElement* meCluTimeError_; MonitorElement* meCluEnergy_; MonitorElement* meCluPhi_; MonitorElement* meCluEta_; @@ -111,10 +128,13 @@ class BtlLocalRecoValidation : public DQMEDAnalyzer { // ------------ constructor and destructor -------------- BtlLocalRecoValidation::BtlLocalRecoValidation(const edm::ParameterSet& iConfig) : folder_(iConfig.getParameter("folder")), - hitMinEnergy_(iConfig.getParameter("hitMinimumEnergy")) { + hitMinEnergy_(iConfig.getParameter("hitMinimumEnergy")), + LocalPosDebug_(iConfig.getParameter("LocalPositionDebug")) { btlRecHitsToken_ = consumes(iConfig.getParameter("recHitsTag")); btlSimHitsToken_ = consumes >(iConfig.getParameter("simHitsTag")); btlRecCluToken_ = consumes(iConfig.getParameter("recCluTag")); + mtdgeoToken_ = esConsumes(); + mtdtopoToken_ = esConsumes(); } BtlLocalRecoValidation::~BtlLocalRecoValidation() {} @@ -125,12 +145,10 @@ void BtlLocalRecoValidation::analyze(const edm::Event& iEvent, const edm::EventS using namespace std; using namespace geant_units::operators; - edm::ESHandle geometryHandle; - iSetup.get().get(geometryHandle); + auto geometryHandle = iSetup.getTransientHandle(mtdgeoToken_); const MTDGeometry* geom = geometryHandle.product(); - edm::ESHandle topologyHandle; - iSetup.get().get(topologyHandle); + auto topologyHandle = iSetup.getTransientHandle(mtdtopoToken_); const MTDTopology* topology = topologyHandle.product(); auto btlRecHitsHandle = makeValid(iEvent.getHandle(btlRecHitsToken_)); @@ -183,11 +201,18 @@ void BtlLocalRecoValidation::analyze(const edm::Event& iEvent, const edm::EventS meHitEnergy_->Fill(recHit.energy()); meHitTime_->Fill(recHit.time()); + meHitTimeError_->Fill(recHit.timeError()); meHitLongPos_->Fill(recHit.position()); meHitLongPosErr_->Fill(recHit.positionError()); meOccupancy_->Fill(global_point.z(), global_point.phi()); + if (LocalPosDebug_) { + meLocalOccupancy_->Fill(local_point.x() + recHit.position(), local_point.y()); + meHitXlocal_->Fill(local_point.x()); + meHitYlocal_->Fill(local_point.y()); + meHitZlocal_->Fill(local_point.z()); + } meHitX_->Fill(global_point.x()); meHitY_->Fill(global_point.y()); meHitZ_->Fill(global_point.z()); @@ -204,14 +229,26 @@ void BtlLocalRecoValidation::analyze(const edm::Event& iEvent, const edm::EventS // Resolution histograms if (m_btlSimHits.count(detId.rawId()) == 1 && m_btlSimHits[detId.rawId()].energy > hitMinEnergy_) { + float longpos_res = recHit.position() - convertMmToCm(m_btlSimHits[detId.rawId()].x_local); float time_res = recHit.time() - m_btlSimHits[detId.rawId()].time; float energy_res = recHit.energy() - m_btlSimHits[detId.rawId()].energy; + Local3DPoint local_point_sim(m_btlSimHits[detId.rawId()].x_local, + m_btlSimHits[detId.rawId()].y_local, + m_btlSimHits[detId.rawId()].z_local); + local_point_sim = + topo.pixelToModuleLocalPoint(local_point_sim, detId.row(topo.nrows()), detId.column(topo.nrows())); + const auto& global_point_sim = thedet->toGlobal(local_point_sim); + meTimeRes_->Fill(time_res); meEnergyRes_->Fill(energy_res); - meTresvsE_->Fill(m_btlSimHits[detId.rawId()].energy, time_res); - meEresvsE_->Fill(m_btlSimHits[detId.rawId()].energy, energy_res); + meLongPosPull_->Fill(longpos_res / recHit.positionError()); + meLongPosPullvsEta_->Fill(std::abs(global_point_sim.eta()), longpos_res / recHit.positionError()); + meLongPosPullvsE_->Fill(m_btlSimHits[detId.rawId()].energy, longpos_res / recHit.positionError()); + + meTPullvsEta_->Fill(std::abs(global_point_sim.eta()), time_res / recHit.timeError()); + meTPullvsE_->Fill(m_btlSimHits[detId.rawId()].energy, time_res / recHit.timeError()); } n_reco_btl++; @@ -237,12 +274,13 @@ void BtlLocalRecoValidation::analyze(const edm::Event& iEvent, const edm::EventS const ProxyMTDTopology& topoproxy = static_cast(genericDet->topology()); const RectangularMTDTopology& topo = static_cast(topoproxy.specificTopology()); - Local3DPoint local_point(cluster.x() * 5.7, cluster.y() * 0.3, 0.); + Local3DPoint local_point(cluster.x() * topo.pitch().first, cluster.y() * topo.pitch().second, 0.); local_point = topo.pixelToModuleLocalPoint(local_point, cluId.row(topo.nrows()), cluId.column(topo.ncolumns())); const auto& global_point = genericDet->toGlobal(local_point); meCluEnergy_->Fill(cluster.energy()); meCluTime_->Fill(cluster.time()); + meCluTimeError_->Fill(cluster.timeError()); meCluPhi_->Fill(global_point.phi()); meCluEta_->Fill(global_point.eta()); meCluZvsPhi_->Fill(global_point.z(), global_point.phi()); @@ -263,16 +301,21 @@ void BtlLocalRecoValidation::bookHistograms(DQMStore::IBooker& ibook, meHitEnergy_ = ibook.book1D("BtlHitEnergy", "BTL RECO hits energy;E_{RECO} [MeV]", 100, 0., 20.); meHitTime_ = ibook.book1D("BtlHitTime", "BTL RECO hits ToA;ToA_{RECO} [ns]", 100, 0., 25.); - + meHitTimeError_ = ibook.book1D("BtlHitTimeError", "BTL RECO hits ToA error;#sigma^{ToA}_{RECO} [ns]", 50, 0., 0.1); meOccupancy_ = ibook.book2D( "BtlOccupancy", "BTL RECO hits occupancy;Z_{RECO} [cm]; #phi_{RECO} [rad]", 65, -260., 260., 126, -3.2, 3.2); - + if (LocalPosDebug_) { + meLocalOccupancy_ = ibook.book2D( + "BtlLocalOccupancy", "BTL RECO hits local occupancy;X_{RECO} [cm]; Y_{RECO} [cm]", 100, 10., 10., 60, -3., 3.); + meHitXlocal_ = ibook.book1D("BtlHitXlocal", "BTL RECO local X;X_{RECO}^{LOC} [cm]", 100, -10., 10.); + meHitYlocal_ = ibook.book1D("BtlHitYlocal", "BTL RECO local Y;Y_{RECO}^{LOC} [cm]", 60, -3, 3); + meHitZlocal_ = ibook.book1D("BtlHitZlocal", "BTL RECO local z;z_{RECO}^{LOC} [cm]", 10, -1, 1); + } meHitX_ = ibook.book1D("BtlHitX", "BTL RECO hits X;X_{RECO} [cm]", 60, -120., 120.); meHitY_ = ibook.book1D("BtlHitY", "BTL RECO hits Y;Y_{RECO} [cm]", 60, -120., 120.); meHitZ_ = ibook.book1D("BtlHitZ", "BTL RECO hits Z;Z_{RECO} [cm]", 100, -260., 260.); meHitPhi_ = ibook.book1D("BtlHitPhi", "BTL RECO hits #phi;#phi_{RECO} [rad]", 126, -3.2, 3.2); meHitEta_ = ibook.book1D("BtlHitEta", "BTL RECO hits #eta;#eta_{RECO}", 100, -1.55, 1.55); - meHitTvsE_ = ibook.bookProfile("BtlHitTvsE", "BTL RECO ToA vs energy;E_{RECO} [MeV];ToA_{RECO} [ns]", 50, 0., 20., 0., 100.); meHitEvsPhi_ = ibook.bookProfile( @@ -290,18 +333,46 @@ void BtlLocalRecoValidation::bookHistograms(DQMStore::IBooker& ibook, meHitLongPos_ = ibook.book1D("BtlLongPos", "BTL RECO hits longitudinal position;long. pos._{RECO}", 100, -10, 10); meHitLongPosErr_ = ibook.book1D("BtlLongPosErr", "BTL RECO hits longitudinal position error; long. pos. error_{RECO}", 100, -1, 1); - - meTimeRes_ = ibook.book1D("BtlTimeRes", "BTL time resolution;T_{RECO} - T_{SIM} [ns]", 100, -0.5, 0.5); - meEnergyRes_ = ibook.book1D("BtlEnergyRes", "BTL energy resolution;E_{RECO} - E_{SIM} [MeV]", 100, -0.5, 0.5); - - meTresvsE_ = ibook.bookProfile( - "BtlTresvsE", "BTL time resolution vs E;E_{SIM} [MeV];T_{RECO}-T_{SIM} [ns]", 50, 0., 20., 0., 100.); - meEresvsE_ = ibook.bookProfile( - "BtlEresvsE", "BTL energy resolution vs E;E_{SIM} [MeV];E_{RECO}-E_{SIM} [MeV]", 50, 0., 20., 0., 100.); + meTimeRes_ = ibook.book1D("BtlTimeRes", "BTL time resolution;T_{RECO}-T_{SIM}", 100, -0.5, 0.5); + meEnergyRes_ = ibook.book1D("BtlEnergyRes", "BTL energy resolution;E_{RECO}-E_{SIM}", 100, -0.5, 0.5); + meLongPosPull_ = ibook.book1D("BtlLongPosPull", + "BTL longitudinal position pull;X^{loc}_{RECO}-X^{loc}_{SIM}/#sigma_{xloc_{RECO}}", + 100, + -5., + 5.); + meLongPosPullvsE_ = ibook.bookProfile( + "BtlLongposPullvsE", + "BTL longitudinal position pull vs E;E_{SIM} [MeV];X^{loc}_{RECO}-X^{loc}_{SIM}/#sigma_{xloc_{RECO}}", + 20, + 0., + 20., + -5., + 5., + "S"); + meLongPosPullvsEta_ = ibook.bookProfile( + "BtlLongposPullvsEta", + "BTL longitudinal position pull vs #eta;|#eta_{RECO}|;X^{loc}_{RECO}-X^{loc}_{SIM}/#sigma_{xloc_{RECO}}", + 32, + 0, + 1.55, + -5., + 5., + "S"); + meTPullvsE_ = ibook.bookProfile( + "BtlTPullvsE", "BTL time pull vs E;E_{SIM} [MeV];T_{RECO}-T_{SIM}/#sigma_{T_{RECO}}", 20, 0., 20., -5., 5., "S"); + meTPullvsEta_ = ibook.bookProfile("BtlTPullvsEta", + "BTL time pull vs #eta;|#eta_{RECO}|;T_{RECO}-T_{SIM}/#sigma_{T_{RECO}}", + 32, + 0, + 1.55, + -5., + 5., + "S"); meCluTime_ = ibook.book1D("BtlCluTime", "BTL cluster time ToA;ToA [ns]", 250, 0, 25); + meCluTimeError_ = ibook.book1D("BtlCluTimeError", "BTL cluster time error;#sigma_{t} [ns]", 100, 0, 0.1); meCluEnergy_ = ibook.book1D("BtlCluEnergy", "BTL cluster energy;E_{RECO} [MeV]", 100, 0, 20); meCluPhi_ = ibook.book1D("BtlCluPhi", "BTL cluster #phi;#phi_{RECO} [rad]", 144, -3.2, 3.2); - meCluEta_ = ibook.book1D("BtlCluEta", "BTL cluster #eta;#eta_{RECO}", 100, -1.6, 1.6); + meCluEta_ = ibook.book1D("BtlCluEta", "BTL cluster #eta;#eta_{RECO}", 100, -1.55, 1.55); meCluHits_ = ibook.book1D("BtlCluHitNumber", "BTL hits per cluster; Cluster size", 10, 0, 10); meCluZvsPhi_ = ibook.book2D( "BtlOccupancy", "BTL cluster Z vs #phi;Z_{RECO} [cm]; #phi_{RECO} [rad]", 144, -260., 260., 50, -3.2, 3.2); @@ -316,6 +387,7 @@ void BtlLocalRecoValidation::fillDescriptions(edm::ConfigurationDescriptions& de desc.add("simHitsTag", edm::InputTag("mix", "g4SimHitsFastTimerHitsBarrel")); desc.add("recCluTag", edm::InputTag("mtdClusters", "FTLBarrel")); desc.add("hitMinimumEnergy", 1.); // [MeV] + desc.add("LocalPositionDebug", false); descriptions.add("btlLocalReco", desc); } diff --git a/Validation/MtdValidation/plugins/BtlSimHitsValidation.cc b/Validation/MtdValidation/plugins/BtlSimHitsValidation.cc index df79b661a9114..5cc65466e0ffa 100644 --- a/Validation/MtdValidation/plugins/BtlSimHitsValidation.cc +++ b/Validation/MtdValidation/plugins/BtlSimHitsValidation.cc @@ -66,6 +66,9 @@ class BtlSimHitsValidation : public DQMEDAnalyzer { edm::EDGetTokenT > btlSimHitsToken_; + edm::ESGetToken mtdgeoToken_; + edm::ESGetToken mtdtopoToken_; + // --- histograms declaration MonitorElement* meNevents_; @@ -103,6 +106,8 @@ BtlSimHitsValidation::BtlSimHitsValidation(const edm::ParameterSet& iConfig) : folder_(iConfig.getParameter("folder")), hitMinEnergy_(iConfig.getParameter("hitMinimumEnergy")) { btlSimHitsToken_ = consumes >(iConfig.getParameter("inputTag")); + mtdgeoToken_ = esConsumes(); + mtdtopoToken_ = esConsumes(); } BtlSimHitsValidation::~BtlSimHitsValidation() {} @@ -112,12 +117,10 @@ void BtlSimHitsValidation::analyze(const edm::Event& iEvent, const edm::EventSet using namespace edm; using namespace geant_units::operators; - edm::ESHandle geometryHandle; - iSetup.get().get(geometryHandle); + auto geometryHandle = iSetup.getTransientHandle(mtdgeoToken_); const MTDGeometry* geom = geometryHandle.product(); - edm::ESHandle topologyHandle; - iSetup.get().get(topologyHandle); + auto topologyHandle = iSetup.getTransientHandle(mtdtopoToken_); const MTDTopology* topology = topologyHandle.product(); auto btlSimHitsHandle = makeValid(iEvent.getHandle(btlSimHitsToken_)); diff --git a/Validation/MtdValidation/plugins/EtlDigiHitsValidation.cc b/Validation/MtdValidation/plugins/EtlDigiHitsValidation.cc index 492a1e454b557..099adcb6879c5 100644 --- a/Validation/MtdValidation/plugins/EtlDigiHitsValidation.cc +++ b/Validation/MtdValidation/plugins/EtlDigiHitsValidation.cc @@ -46,9 +46,13 @@ class EtlDigiHitsValidation : public DQMEDAnalyzer { // ------------ member data ------------ const std::string folder_; + const bool LocalPosDebug_; edm::EDGetTokenT etlDigiHitsToken_; + edm::ESGetToken mtdgeoToken_; + edm::ESGetToken mtdtopoToken_; + // --- histograms declaration MonitorElement* meNhits_[4]; @@ -58,6 +62,10 @@ class EtlDigiHitsValidation : public DQMEDAnalyzer { MonitorElement* meOccupancy_[4]; + MonitorElement* meLocalOccupancy_[2]; //folding the two ETL discs + MonitorElement* meHitXlocal_[2]; + MonitorElement* meHitYlocal_[2]; + MonitorElement* meHitX_[4]; MonitorElement* meHitY_[4]; MonitorElement* meHitZ_[4]; @@ -73,8 +81,11 @@ class EtlDigiHitsValidation : public DQMEDAnalyzer { // ------------ constructor and destructor -------------- EtlDigiHitsValidation::EtlDigiHitsValidation(const edm::ParameterSet& iConfig) - : folder_(iConfig.getParameter("folder")) { + : folder_(iConfig.getParameter("folder")), + LocalPosDebug_(iConfig.getParameter("LocalPositionDebug")) { etlDigiHitsToken_ = consumes(iConfig.getParameter("inputTag")); + mtdgeoToken_ = esConsumes(); + mtdtopoToken_ = esConsumes(); } EtlDigiHitsValidation::~EtlDigiHitsValidation() {} @@ -83,8 +94,10 @@ EtlDigiHitsValidation::~EtlDigiHitsValidation() {} void EtlDigiHitsValidation::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { using namespace edm; - edm::ESHandle topologyHandle; - iSetup.get().get(topologyHandle); + auto geometryHandle = iSetup.getTransientHandle(mtdgeoToken_); + const MTDGeometry* geom = geometryHandle.product(); + + auto topologyHandle = iSetup.getTransientHandle(mtdtopoToken_); const MTDTopology* topology = topologyHandle.product(); bool topo1Dis = false; @@ -96,10 +109,6 @@ void EtlDigiHitsValidation::analyze(const edm::Event& iEvent, const edm::EventSe topo2Dis = true; } - edm::ESHandle geometryHandle; - iSetup.get().get(geometryHandle); - const MTDGeometry* geom = geometryHandle.product(); - auto etlDigiHitsHandle = makeValid(iEvent.getHandle(etlDigiHitsToken_)); // --- Loop over the ETL DIGI hits @@ -158,6 +167,19 @@ void EtlDigiHitsValidation::analyze(const edm::Event& iEvent, const edm::EventSe meHitTime_[idet]->Fill(sample.toa()); meOccupancy_[idet]->Fill(global_point.x(), global_point.y(), weight); + if (LocalPosDebug_) { + if ((idet == 0) || (idet == 1)) { + meLocalOccupancy_[0]->Fill(local_point.x(), local_point.y()); + meHitXlocal_[0]->Fill(local_point.x()); + meHitYlocal_[0]->Fill(local_point.y()); + + } else if ((idet == 2) || (idet == 3)) { + meLocalOccupancy_[1]->Fill(local_point.x(), local_point.y()); + meHitXlocal_[1]->Fill(local_point.x()); + meHitYlocal_[1]->Fill(local_point.y()); + } + } + meHitX_[idet]->Fill(global_point.x()); meHitY_[idet]->Fill(global_point.y()); meHitZ_[idet]->Fill(global_point.z()); @@ -272,7 +294,28 @@ void EtlDigiHitsValidation::bookHistograms(DQMStore::IBooker& ibook, 135, -135., 135.); - + if (LocalPosDebug_) { + meLocalOccupancy_[0] = ibook.book2D("EtlLocalOccupancyZneg", + "ETL DIGI hits local occupancy (-Z);X_{DIGI} [cm];Y_{DIGI} [cm]", + 100, + -2.2, + 2.2, + 50, + -1.1, + 1.1); + meLocalOccupancy_[1] = ibook.book2D("EtlLocalOccupancyZpos", + "ETL DIGI hits local occupancy (+Z);X_{DIGI} [cm];Y_{DIGI} [cm]", + 100, + -2.2, + 2.2, + 50, + -1.1, + 1.1); + meHitXlocal_[0] = ibook.book1D("EtlHitXlocalZneg", "ETL DIGI local X (-Z);X_{DIGI}^{LOC} [cm]", 100, -2.2, 2.2); + meHitXlocal_[1] = ibook.book1D("EtlHitXlocalZpos", "ETL DIGI local X (+Z);X_{DIGI}^{LOC} [cm]", 100, -2.2, 2.2); + meHitYlocal_[0] = ibook.book1D("EtlHitYlocalZneg", "ETL DIGI local Y (-Z);Y_{DIGI}^{LOC} [cm]", 50, -1.1, 1.1); + meHitYlocal_[1] = ibook.book1D("EtlHitYlocalZpos", "ETL DIGI local Y (-Z);Y_{DIGI}^{LOC} [cm]", 50, -1.1, 1.1); + } meHitX_[0] = ibook.book1D( "EtlHitXZnegD1", "ETL DIGI hits X (-Z, Single(topo1D)/First(topo2D) disk);X_{DIGI} [cm]", 100, -130., 130.); meHitX_[1] = ibook.book1D("EtlHitXZnegD2", "ETL DIGI hits X (-Z, Second disk);X_{DIGI} [cm]", 100, -130., 130.); @@ -312,7 +355,6 @@ void EtlDigiHitsValidation::bookHistograms(DQMStore::IBooker& ibook, meHitEta_[2] = ibook.book1D( "EtlHitEtaZposD1", "ETL DIGI hits #eta (+Z, Single(topo1D)/First(topo2D) disk);#eta_{DIGI}", 100, 1.56, 3.2); meHitEta_[3] = ibook.book1D("EtlHitEtaZposD2", "ETL DIGI hits #eta (+Z, Second disk);#eta_{DIGI}", 100, 1.56, 3.2); - meHitTvsQ_[0] = ibook.bookProfile( "EtlHitTvsQZnegD1", "ETL DIGI ToA vs charge (-Z, Single(topo1D)/First(topo2D) disk);Q_{DIGI} [ADC counts];ToA_{DIGI} [TDC counts]", @@ -477,6 +519,7 @@ void EtlDigiHitsValidation::fillDescriptions(edm::ConfigurationDescriptions& des desc.add("folder", "MTD/ETL/DigiHits"); desc.add("inputTag", edm::InputTag("mix", "FTLEndcap")); + desc.add("LocalPositionDebug", false); descriptions.add("etlDigiHitsDefault", desc); } diff --git a/Validation/MtdValidation/plugins/EtlLocalRecoValidation.cc b/Validation/MtdValidation/plugins/EtlLocalRecoValidation.cc index 2da37e10d6df5..108bfdf2537c0 100644 --- a/Validation/MtdValidation/plugins/EtlLocalRecoValidation.cc +++ b/Validation/MtdValidation/plugins/EtlLocalRecoValidation.cc @@ -22,16 +22,29 @@ #include "DQMServices/Core/interface/DQMStore.h" #include "DataFormats/Common/interface/ValidHandle.h" +#include "DataFormats/Math/interface/GeantUnits.h" #include "DataFormats/ForwardDetId/interface/ETLDetId.h" #include "DataFormats/FTLRecHit/interface/FTLRecHitCollections.h" #include "DataFormats/FTLRecHit/interface/FTLClusterCollections.h" +#include "SimDataFormats/CrossingFrame/interface/CrossingFrame.h" +#include "SimDataFormats/CrossingFrame/interface/MixCollection.h" +#include "SimDataFormats/TrackingHit/interface/PSimHit.h" + #include "Geometry/Records/interface/MTDDigiGeometryRecord.h" #include "Geometry/MTDGeometryBuilder/interface/MTDGeometry.h" #include "Geometry/CommonTopologies/interface/PixelTopology.h" #include "Geometry/MTDNumberingBuilder/interface/MTDTopology.h" #include "Geometry/MTDCommonData/interface/MTDTopologyMode.h" +struct MTDHit { + float energy; + float time; + float x_local; + float y_local; + float z_local; +}; + class EtlLocalRecoValidation : public DQMEDAnalyzer { public: explicit EtlLocalRecoValidation(const edm::ParameterSet&); @@ -49,18 +62,28 @@ class EtlLocalRecoValidation : public DQMEDAnalyzer { const std::string folder_; const float hitMinEnergy1Dis_; const float hitMinEnergy2Dis_; + const bool LocalPosDebug_; edm::EDGetTokenT etlRecHitsToken_; + edm::EDGetTokenT > etlSimHitsToken_; edm::EDGetTokenT etlRecCluToken_; + edm::ESGetToken mtdgeoToken_; + edm::ESGetToken mtdtopoToken_; + // --- histograms declaration MonitorElement* meNhits_[4]; MonitorElement* meHitEnergy_[4]; MonitorElement* meHitTime_[4]; + MonitorElement* meHitTimeError_[4]; MonitorElement* meOccupancy_[4]; + MonitorElement* meLocalOccupancy_[2]; + MonitorElement* meHitXlocal_[2]; + MonitorElement* meHitYlocal_[2]; + MonitorElement* meHitX_[4]; MonitorElement* meHitY_[4]; MonitorElement* meHitZ_[4]; @@ -74,20 +97,30 @@ class EtlLocalRecoValidation : public DQMEDAnalyzer { MonitorElement* meHitTvsEta_[4]; MonitorElement* meCluTime_[4]; + MonitorElement* meCluTimeError_[4]; MonitorElement* meCluEnergy_[4]; MonitorElement* meCluPhi_[4]; MonitorElement* meCluEta_[4]; MonitorElement* meCluHits_[4]; MonitorElement* meCluOccupancy_[4]; + + MonitorElement* meTimeRes_; + MonitorElement* meEnergyRes_; + MonitorElement* meTPullvsE_; + MonitorElement* meTPullvsEta_; }; // ------------ constructor and destructor -------------- EtlLocalRecoValidation::EtlLocalRecoValidation(const edm::ParameterSet& iConfig) : folder_(iConfig.getParameter("folder")), hitMinEnergy1Dis_(iConfig.getParameter("hitMinimumEnergy1Dis")), - hitMinEnergy2Dis_(iConfig.getParameter("hitMinimumEnergy2Dis")) { + hitMinEnergy2Dis_(iConfig.getParameter("hitMinimumEnergy2Dis")), + LocalPosDebug_(iConfig.getParameter("LocalPositionDebug")) { etlRecHitsToken_ = consumes(iConfig.getParameter("recHitsTag")); + etlSimHitsToken_ = consumes >(iConfig.getParameter("simHitsTag")); etlRecCluToken_ = consumes(iConfig.getParameter("recCluTag")); + mtdgeoToken_ = esConsumes(); + mtdtopoToken_ = esConsumes(); } EtlLocalRecoValidation::~EtlLocalRecoValidation() {} @@ -96,8 +129,12 @@ EtlLocalRecoValidation::~EtlLocalRecoValidation() {} void EtlLocalRecoValidation::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { using namespace edm; using namespace std; - edm::ESHandle topologyHandle; - iSetup.get().get(topologyHandle); + using namespace geant_units::operators; + + auto geometryHandle = iSetup.getTransientHandle(mtdgeoToken_); + const MTDGeometry* geom = geometryHandle.product(); + + auto topologyHandle = iSetup.getTransientHandle(mtdtopoToken_); const MTDTopology* topology = topologyHandle.product(); bool topo1Dis = false; @@ -109,15 +146,51 @@ void EtlLocalRecoValidation::analyze(const edm::Event& iEvent, const edm::EventS topo2Dis = true; } - edm::ESHandle geometryHandle; - iSetup.get().get(geometryHandle); - const MTDGeometry* geom = geometryHandle.product(); - auto etlRecHitsHandle = makeValid(iEvent.getHandle(etlRecHitsToken_)); + auto etlSimHitsHandle = makeValid(iEvent.getHandle(etlSimHitsToken_)); auto etlRecCluHandle = makeValid(iEvent.getHandle(etlRecCluToken_)); + MixCollection etlSimHits(etlSimHitsHandle.product()); + + // --- Loop over the ETL SIM hits + std::unordered_map m_etlSimHits[4]; + for (auto const& simHit : etlSimHits) { + // --- Use only hits compatible with the in-time bunch-crossing + if (simHit.tof() < 0 || simHit.tof() > 25.) + continue; + + ETLDetId id = simHit.detUnitId(); + + int idet = -1; + + if ((id.zside() == -1) && (id.nDisc() == 1)) + idet = 0; + else if ((id.zside() == -1) && (id.nDisc() == 2)) + idet = 1; + else if ((id.zside() == 1) && (id.nDisc() == 1)) + idet = 2; + else if ((id.zside() == 1) && (id.nDisc() == 2)) + idet = 3; + else + continue; + + auto simHitIt = m_etlSimHits[idet].emplace(id.rawId(), MTDHit()).first; + + // --- Accumulate the energy (in MeV) of SIM hits in the same detector cell + (simHitIt->second).energy += convertUnitsTo(0.001_MeV, simHit.energyLoss()); + + // --- Get the time of the first SIM hit in the cell + if ((simHitIt->second).time == 0 || simHit.tof() < (simHitIt->second).time) { + (simHitIt->second).time = simHit.tof(); + + auto hit_pos = simHit.entryPoint(); + (simHitIt->second).x_local = hit_pos.x(); + (simHitIt->second).y_local = hit_pos.y(); + (simHitIt->second).z_local = hit_pos.z(); + } - // --- Loop over the ELT RECO hits + } // simHit loop + // --- Loop over the ELT RECO hits unsigned int n_reco_etl[4] = {0, 0, 0, 0}; for (const auto& recHit : *etlRecHitsHandle) { double weight = 1.0; @@ -165,8 +238,22 @@ void EtlLocalRecoValidation::analyze(const edm::Event& iEvent, const edm::EventS meHitEnergy_[idet]->Fill(recHit.energy()); meHitTime_[idet]->Fill(recHit.time()); + meHitTimeError_[idet]->Fill(recHit.timeError()); meOccupancy_[idet]->Fill(global_point.x(), global_point.y(), weight); + + if (LocalPosDebug_) { + if ((idet == 0) || (idet == 1)) { + meLocalOccupancy_[0]->Fill(local_point.x(), local_point.y()); + meHitXlocal_[0]->Fill(local_point.x()); + meHitYlocal_[0]->Fill(local_point.y()); + } + if ((idet == 2) || (idet == 3)) { + meLocalOccupancy_[1]->Fill(local_point.x(), local_point.y()); + meHitXlocal_[1]->Fill(local_point.x()); + meHitYlocal_[1]->Fill(local_point.y()); + } + } meHitX_[idet]->Fill(global_point.x()); meHitY_[idet]->Fill(global_point.y()); meHitZ_[idet]->Fill(global_point.z()); @@ -178,6 +265,21 @@ void EtlLocalRecoValidation::analyze(const edm::Event& iEvent, const edm::EventS meHitTvsPhi_[idet]->Fill(global_point.phi(), recHit.time()); meHitTvsEta_[idet]->Fill(global_point.eta(), recHit.time()); + // Resolution histograms + if (m_etlSimHits[idet].count(detId.rawId()) == 1) { + if ((topo1Dis && m_etlSimHits[idet][detId.rawId()].energy > hitMinEnergy1Dis_) || + (topo2Dis && m_etlSimHits[idet][detId.rawId()].energy > hitMinEnergy2Dis_)) { + float time_res = recHit.time() - m_etlSimHits[idet][detId.rawId()].time; + float energy_res = recHit.energy() - m_etlSimHits[idet][detId.rawId()].energy; + + meTimeRes_->Fill(time_res); + meEnergyRes_->Fill(energy_res); + + meTPullvsEta_->Fill(std::abs(global_point.eta()), time_res / recHit.timeError()); + meTPullvsE_->Fill(m_etlSimHits[idet][detId.rawId()].energy, time_res / recHit.timeError()); + } + } + n_reco_etl[idet]++; } // recHit loop @@ -248,6 +350,7 @@ void EtlLocalRecoValidation::analyze(const edm::Event& iEvent, const edm::EventS meCluEnergy_[idet]->Fill(cluster.energy()); meCluTime_[idet]->Fill(cluster.time()); + meCluTimeError_[idet]->Fill(cluster.timeError()); meCluPhi_[idet]->Fill(global_point.phi()); meCluEta_[idet]->Fill(global_point.eta()); meCluOccupancy_[idet]->Fill(global_point.x(), global_point.y(), weight); @@ -284,6 +387,22 @@ void EtlLocalRecoValidation::bookHistograms(DQMStore::IBooker& ibook, meHitTime_[2] = ibook.book1D( "EtlHitTimeZposD1", "ETL RECO hits ToA (+Z, Single(topo1D)/First(topo2D) disk);ToA_{RECO} [ns]", 100, 0., 25.); meHitTime_[3] = ibook.book1D("EtlHitTimeZposD2", "ETL RECO hits ToA (+Z, Second disk);ToA_{RECO} [ns]", 100, 0., 25.); + meHitTimeError_[0] = + ibook.book1D("EtlHitTimeErrorZnegD1", + "ETL RECO hits ToA error (-Z, Single(topo1D)/First(topo2D) disk);#sigma^{ToA}_{RECO} [ns]", + 50, + 0., + 0.1); + meHitTimeError_[1] = ibook.book1D( + "EtlHitTimeErrorZnegD2", "ETL RECO hits ToA error(-Z, Second disk);#sigma^{ToA}_{RECO} [ns]", 50, 0., 0.1); + meHitTimeError_[2] = + ibook.book1D("EtlHitTimeErrorZposD1", + "ETL RECO hits ToA error (+Z, Single(topo1D)/First(topo2D) disk);#sigma^{ToA}_{RECO} [ns]", + 50, + 0., + 0.1); + meHitTimeError_[3] = ibook.book1D( + "EtlHitTimeErrorZposD2", "ETL RECO hits ToA error(+Z, Second disk);#sigma^{ToA}_{RECO} [ns]", 50, 0., 0.1); meOccupancy_[0] = ibook.book2D("EtlOccupancyZnegD1", @@ -319,7 +438,28 @@ void EtlLocalRecoValidation::bookHistograms(DQMStore::IBooker& ibook, 135, -135., 135.); - + if (LocalPosDebug_) { + meLocalOccupancy_[0] = ibook.book2D("EtlLocalOccupancyZneg", + "ETL RECO hits local occupancy (-Z);X_{RECO} [cm];Y_{RECO} [cm]", + 100, + -2.2, + 2.2, + 50, + -1.1, + 1.1); + meLocalOccupancy_[1] = ibook.book2D("EtlLocalOccupancyZpos", + "ETL RECO hits local occupancy (+Z);X_{RECO} [cm];Y_{RECO} [cm]", + 100, + -2.2, + 2.2, + 50, + -1.1, + 1.1); + meHitXlocal_[0] = ibook.book1D("EtlHitXlocalZneg", "ETL RECO local X (-Z);X_{RECO}^{LOC} [cm]", 100, -2.2, 2.2); + meHitXlocal_[1] = ibook.book1D("EtlHitXlocalZpos", "ETL RECO local X (+Z);X_{RECO}^{LOC} [cm]", 100, -2.2, 2.2); + meHitYlocal_[0] = ibook.book1D("EtlHitYlocalZneg", "ETL RECO local Y (-Z);Y_{RECO}^{LOC} [cm]", 50, -1.1, 1.1); + meHitYlocal_[1] = ibook.book1D("EtlHitYlocalZpos", "ETL RECO local Y (-Z);Y_{RECO}^{LOC} [cm]", 50, -1.1, 1.1); + } meHitX_[0] = ibook.book1D( "EtlHitXZnegD1", "ETL RECO hits X (-Z, Single(topo1D)/First(topo2D) Disk);X_{RECO} [cm]", 100, -130., 130.); meHitX_[1] = ibook.book1D("EtlHitXZnegD2", "ETL RECO hits X (-Z, Second Disk);X_{RECO} [cm]", 100, -130., 130.); @@ -352,7 +492,8 @@ void EtlLocalRecoValidation::bookHistograms(DQMStore::IBooker& ibook, meHitEta_[2] = ibook.book1D( "EtlHitEtaZposD1", "ETL RECO hits #eta (+Z, Single(topo1D)/First(topo2D) Disk);#eta_{RECO}", 100, 1.56, 3.2); meHitEta_[3] = ibook.book1D("EtlHitEtaZposD2", "ETL RECO hits #eta (+Z, Second Disk);#eta_{RECO}", 100, 1.56, 3.2); - + meTimeRes_ = ibook.book1D("EtlTimeRes", "ETL time resolution;T_{RECO}-T_{SIM}", 100, -0.5, 0.5); + meEnergyRes_ = ibook.book1D("EtlEnergyRes", "ETL energy resolution;E_{RECO}-E_{SIM}", 100, -0.5, 0.5); meHitTvsE_[0] = ibook.bookProfile( "EtlHitTvsEZnegD1", "ETL RECO time vs energy (-Z, Single(topo1D)/First(topo2D) Disk);E_{RECO} [MeV];ToA_{RECO} [ns]", @@ -503,12 +644,36 @@ void EtlLocalRecoValidation::bookHistograms(DQMStore::IBooker& ibook, 3.2, 0., 100.); + meTPullvsE_ = ibook.bookProfile( + "EtlTPullvsE", "ETL time pull vs E;E_{SIM} [MeV];T_{RECO}-T_{SIM}/#sigma_{T_{RECO}}", 20, 0., 2., -5., 5., "S"); + meTPullvsEta_ = ibook.bookProfile("EtlTPullvsEta", + "ETL time pull vs #eta;|#eta_{RECO}|;T_{RECO}-T_{SIM}/#sigma_{T_{RECO}}", + 26, + 1.65, + 3.0, + -5., + 5., + "S"); meCluTime_[0] = ibook.book1D("EtlCluTimeZnegD1", "ETL cluster ToA (-Z, Single(topo1D)/First(topo2D) Disk);ToA [ns]", 250, 0, 25); meCluTime_[1] = ibook.book1D("EtlCluTimeZnegD2", "ETL cluster ToA (-Z, Second Disk);ToA [ns]", 250, 0, 25); meCluTime_[2] = ibook.book1D("EtlCluTimeZposD1", "ETL cluster ToA (+Z, Single(topo1D)/First(topo2D) Disk);ToA [ns]", 250, 0, 25); meCluTime_[3] = ibook.book1D("EtlCluTimeZposD2", "ETL cluster ToA (+Z, Second Disk);ToA [ns]", 250, 0, 25); + meCluTimeError_[0] = ibook.book1D("EtlCluTimeErrosZnegD1", + "ETL cluster time error (-Z, Single(topo1D)/First(topo2D) Disk);#sigma_{t} [ns]", + 100, + 0, + 0.1); + meCluTimeError_[1] = + ibook.book1D("EtlCluTimeErrorZnegD2", "ETL cluster time error (-Z, Second Disk);#sigma_{t} [ns]", 100, 0, 0.1); + meCluTimeError_[2] = ibook.book1D("EtlCluTimeErrorZposD1", + "ETL cluster time error (+Z, Single(topo1D)/First(topo2D) Disk);#sigma_{t} [ns]", + 100, + 0, + 0.1); + meCluTimeError_[3] = + ibook.book1D("EtlCluTimeErrorZposD2", "ETL cluster time error (+Z, Second Disk);#sigma_{t} [ns]", 100, 0, 0.1); meCluEnergy_[0] = ibook.book1D( "EtlCluEnergyZnegD1", "ETL cluster energy (-Z, Single(topo1D)/First(topo2D) Disk);E_{RECO} [MeV]", 100, 0, 10); meCluEnergy_[1] = @@ -581,9 +746,11 @@ void EtlLocalRecoValidation::fillDescriptions(edm::ConfigurationDescriptions& de desc.add("folder", "MTD/ETL/LocalReco"); desc.add("recHitsTag", edm::InputTag("mtdRecHits", "FTLEndcap")); + desc.add("simHitsTag", edm::InputTag("mix", "g4SimHitsFastTimerHitsEndcap")); desc.add("recCluTag", edm::InputTag("mtdClusters", "FTLEndcap")); desc.add("hitMinimumEnergy1Dis", 1.); // [MeV] desc.add("hitMinimumEnergy2Dis", 0.001); // [MeV] + desc.add("LocalPositionDebug", false); descriptions.add("etlLocalReco", desc); } diff --git a/Validation/MtdValidation/plugins/EtlSimHitsValidation.cc b/Validation/MtdValidation/plugins/EtlSimHitsValidation.cc index c2b2a9ace9bb6..861ff493a0cf3 100644 --- a/Validation/MtdValidation/plugins/EtlSimHitsValidation.cc +++ b/Validation/MtdValidation/plugins/EtlSimHitsValidation.cc @@ -62,6 +62,9 @@ class EtlSimHitsValidation : public DQMEDAnalyzer { edm::EDGetTokenT > etlSimHitsToken_; + edm::ESGetToken mtdgeoToken_; + edm::ESGetToken mtdtopoToken_; + // --- histograms declaration MonitorElement* meNhits_[4]; @@ -95,6 +98,8 @@ EtlSimHitsValidation::EtlSimHitsValidation(const edm::ParameterSet& iConfig) hitMinEnergy1Dis_(iConfig.getParameter("hitMinimumEnergy1Dis")), hitMinEnergy2Dis_(iConfig.getParameter("hitMinimumEnergy2Dis")) { etlSimHitsToken_ = consumes >(iConfig.getParameter("inputTag")); + mtdgeoToken_ = esConsumes(); + mtdtopoToken_ = esConsumes(); } EtlSimHitsValidation::~EtlSimHitsValidation() {} @@ -104,12 +109,10 @@ void EtlSimHitsValidation::analyze(const edm::Event& iEvent, const edm::EventSet using namespace edm; using namespace geant_units::operators; - edm::ESHandle geometryHandle; - iSetup.get().get(geometryHandle); + auto geometryHandle = iSetup.getTransientHandle(mtdgeoToken_); const MTDGeometry* geom = geometryHandle.product(); - edm::ESHandle topologyHandle; - iSetup.get().get(topologyHandle); + auto topologyHandle = iSetup.getTransientHandle(mtdtopoToken_); const MTDTopology* topology = topologyHandle.product(); bool topo1Dis = false; diff --git a/Validation/MtdValidation/plugins/MtdGlobalRecoHarvester.cc b/Validation/MtdValidation/plugins/MtdTracksHarvester.cc similarity index 94% rename from Validation/MtdValidation/plugins/MtdGlobalRecoHarvester.cc rename to Validation/MtdValidation/plugins/MtdTracksHarvester.cc index 57b0a3b830559..112f5bd263980 100644 --- a/Validation/MtdValidation/plugins/MtdGlobalRecoHarvester.cc +++ b/Validation/MtdValidation/plugins/MtdTracksHarvester.cc @@ -10,10 +10,10 @@ #include "DataFormats/ForwardDetId/interface/ETLDetId.h" -class MtdGlobalRecoHarvester : public DQMEDHarvester { +class MtdTracksHarvester : public DQMEDHarvester { public: - explicit MtdGlobalRecoHarvester(const edm::ParameterSet& iConfig); - ~MtdGlobalRecoHarvester() override; + explicit MtdTracksHarvester(const edm::ParameterSet& iConfig); + ~MtdTracksHarvester() override; static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); @@ -33,13 +33,13 @@ class MtdGlobalRecoHarvester : public DQMEDHarvester { }; // ------------ constructor and destructor -------------- -MtdGlobalRecoHarvester::MtdGlobalRecoHarvester(const edm::ParameterSet& iConfig) +MtdTracksHarvester::MtdTracksHarvester(const edm::ParameterSet& iConfig) : folder_(iConfig.getParameter("folder")) {} -MtdGlobalRecoHarvester::~MtdGlobalRecoHarvester() {} +MtdTracksHarvester::~MtdTracksHarvester() {} // ------------ endjob tasks ---------------------------- -void MtdGlobalRecoHarvester::dqmEndJob(DQMStore::IBooker& ibook, DQMStore::IGetter& igetter) { +void MtdTracksHarvester::dqmEndJob(DQMStore::IBooker& ibook, DQMStore::IGetter& igetter) { // --- Get the monitoring histograms MonitorElement* meBTLTrackEffEtaTot = igetter.get(folder_ + "TrackBTLEffEtaTot"); MonitorElement* meBTLTrackEffPhiTot = igetter.get(folder_ + "TrackBTLEffPhiTot"); @@ -65,7 +65,7 @@ void MtdGlobalRecoHarvester::dqmEndJob(DQMStore::IBooker& ibook, DQMStore::IGett !meETLTrackEffPtTotZneg || !meETLTrackEffEtaMtdZneg || !meETLTrackEffPhiMtdZneg || !meETLTrackEffPtMtdZneg || !meETLTrackEffEtaTotZpos || !meETLTrackEffPhiTotZpos || !meETLTrackEffPtTotZpos || !meETLTrackEffEtaMtdZpos || !meETLTrackEffPhiMtdZpos || !meETLTrackEffPtMtdZpos) { - edm::LogError("MtdGlobalRecoHarvester") << "Monitoring histograms not found!" << std::endl; + edm::LogError("MtdTracksHarvester") << "Monitoring histograms not found!" << std::endl; return; } @@ -250,12 +250,12 @@ void MtdGlobalRecoHarvester::dqmEndJob(DQMStore::IBooker& ibook, DQMStore::IGett } // ------------ method fills 'descriptions' with the allowed parameters for the module ---------- -void MtdGlobalRecoHarvester::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { +void MtdTracksHarvester::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { edm::ParameterSetDescription desc; - desc.add("folder", "MTD/GlobalReco/"); + desc.add("folder", "MTD/Tracks/"); - descriptions.add("MtdGlobalRecoPostProcessor", desc); + descriptions.add("MtdTracksPostProcessor", desc); } -DEFINE_FWK_MODULE(MtdGlobalRecoHarvester); +DEFINE_FWK_MODULE(MtdTracksHarvester); diff --git a/Validation/MtdValidation/plugins/MtdGlobalRecoValidation.cc b/Validation/MtdValidation/plugins/MtdTracksValidation.cc similarity index 55% rename from Validation/MtdValidation/plugins/MtdGlobalRecoValidation.cc rename to Validation/MtdValidation/plugins/MtdTracksValidation.cc index 62675608c0b9f..2ae95a5fc1a59 100644 --- a/Validation/MtdValidation/plugins/MtdGlobalRecoValidation.cc +++ b/Validation/MtdValidation/plugins/MtdTracksValidation.cc @@ -4,6 +4,7 @@ #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/MakerMacros.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" +#include "DataFormats/Common/interface/ValueMap.h" #include "DQMServices/Core/interface/DQMEDAnalyzer.h" #include "DQMServices/Core/interface/DQMStore.h" @@ -21,6 +22,7 @@ #include "DataFormats/TrackReco/interface/Track.h" #include "DataFormats/VertexReco/interface/Vertex.h" +#include "DataFormats/TrackReco/interface/TrackFwd.h" #include "Geometry/Records/interface/MTDDigiGeometryRecord.h" #include "Geometry/Records/interface/MTDTopologyRcd.h" @@ -30,10 +32,10 @@ #include "Geometry/MTDGeometryBuilder/interface/ProxyMTDTopology.h" #include "Geometry/MTDGeometryBuilder/interface/RectangularMTDTopology.h" -class MtdGlobalRecoValidation : public DQMEDAnalyzer { +class MtdTracksValidation : public DQMEDAnalyzer { public: - explicit MtdGlobalRecoValidation(const edm::ParameterSet&); - ~MtdGlobalRecoValidation() override; + explicit MtdTracksValidation(const edm::ParameterSet&); + ~MtdTracksValidation() override; static void fillDescriptions(edm::ConfigurationDescriptions& descriptions); @@ -45,13 +47,29 @@ class MtdGlobalRecoValidation : public DQMEDAnalyzer { // ------------ member data ------------ const std::string folder_; - const float trackMinEnergy_; + const float trackMinPt_; const float trackMinEta_; const float trackMaxEta_; + edm::EDGetTokenT GenRecTrackToken_; edm::EDGetTokenT RecTrackToken_; edm::EDGetTokenT> RecVertexToken_; + edm::EDGetTokenT> trackAssocToken_; + edm::EDGetTokenT> pathLengthToken_; + + edm::EDGetTokenT> tmtdToken_; + edm::EDGetTokenT> SigmatmtdToken_; + edm::EDGetTokenT> t0SrcToken_; + edm::EDGetTokenT> Sigmat0SrcToken_; + edm::EDGetTokenT> t0PidToken_; + edm::EDGetTokenT> Sigmat0PidToken_; + edm::EDGetTokenT> t0SafePidToken_; + edm::EDGetTokenT> Sigmat0SafePidToken_; + edm::EDGetTokenT> trackMVAQualToken_; + + edm::ESGetToken mtdtopoToken_; + MonitorElement* meBTLTrackRPTime_; MonitorElement* meBTLTrackEffEtaTot_; MonitorElement* meBTLTrackEffPhiTot_; @@ -59,17 +77,27 @@ class MtdGlobalRecoValidation : public DQMEDAnalyzer { MonitorElement* meBTLTrackEffEtaMtd_; MonitorElement* meBTLTrackEffPhiMtd_; MonitorElement* meBTLTrackEffPtMtd_; + MonitorElement* meBTLTrackPtRes_; - MonitorElement* meETLTrackRPTime_[4]; - MonitorElement* meETLTrackNumHits_[4]; + MonitorElement* meETLTrackRPTime_; MonitorElement* meETLTrackEffEtaTot_[2]; MonitorElement* meETLTrackEffPhiTot_[2]; MonitorElement* meETLTrackEffPtTot_[2]; MonitorElement* meETLTrackEffEtaMtd_[2]; MonitorElement* meETLTrackEffPhiMtd_[2]; MonitorElement* meETLTrackEffPtMtd_[2]; - + MonitorElement* meETLTrackPtRes_; + + MonitorElement* meTracktmtd_; + MonitorElement* meTrackt0Src_; + MonitorElement* meTrackSigmat0Src_; + MonitorElement* meTrackt0Pid_; + MonitorElement* meTrackSigmat0Pid_; + MonitorElement* meTrackt0SafePid_; + MonitorElement* meTrackSigmat0SafePid_; MonitorElement* meTrackNumHits_; + MonitorElement* meTrackMVAQual_; + MonitorElement* meTrackPathLenghtvsEta_; MonitorElement* meVerNumber_; MonitorElement* meVerZ_; @@ -77,25 +105,37 @@ class MtdGlobalRecoValidation : public DQMEDAnalyzer { }; // ------------ constructor and destructor -------------- -MtdGlobalRecoValidation::MtdGlobalRecoValidation(const edm::ParameterSet& iConfig) +MtdTracksValidation::MtdTracksValidation(const edm::ParameterSet& iConfig) : folder_(iConfig.getParameter("folder")), - trackMinEnergy_(iConfig.getParameter("trackMinimumEnergy")), + trackMinPt_(iConfig.getParameter("trackMinimumPt")), trackMinEta_(iConfig.getParameter("trackMinimumEta")), trackMaxEta_(iConfig.getParameter("trackMaximumEta")) { + GenRecTrackToken_ = consumes(iConfig.getParameter("inputTagG")); RecTrackToken_ = consumes(iConfig.getParameter("inputTagT")); RecVertexToken_ = consumes>(iConfig.getParameter("inputTagV")); + trackAssocToken_ = consumes>(iConfig.getParameter("trackAssocSrc")); + pathLengthToken_ = consumes>(iConfig.getParameter("pathLengthSrc")); + tmtdToken_ = consumes>(iConfig.getParameter("tmtd")); + SigmatmtdToken_ = consumes>(iConfig.getParameter("sigmatmtd")); + t0SrcToken_ = consumes>(iConfig.getParameter("t0Src")); + Sigmat0SrcToken_ = consumes>(iConfig.getParameter("sigmat0Src")); + t0PidToken_ = consumes>(iConfig.getParameter("t0PID")); + Sigmat0PidToken_ = consumes>(iConfig.getParameter("sigmat0PID")); + t0SafePidToken_ = consumes>(iConfig.getParameter("t0SafePID")); + Sigmat0SafePidToken_ = consumes>(iConfig.getParameter("sigmat0SafePID")); + trackMVAQualToken_ = consumes>(iConfig.getParameter("trackMVAQual")); + mtdtopoToken_ = esConsumes(); } -MtdGlobalRecoValidation::~MtdGlobalRecoValidation() {} +MtdTracksValidation::~MtdTracksValidation() {} // ------------ method called for each event ------------ -void MtdGlobalRecoValidation::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { +void MtdTracksValidation::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) { using namespace edm; using namespace geant_units::operators; using namespace std; - edm::ESHandle topologyHandle; - iSetup.get().get(topologyHandle); + auto topologyHandle = iSetup.getTransientHandle(mtdtopoToken_); const MTDTopology* topology = topologyHandle.product(); bool topo1Dis = false; @@ -107,15 +147,56 @@ void MtdGlobalRecoValidation::analyze(const edm::Event& iEvent, const edm::Event topo2Dis = true; } - auto RecTrackHandle = makeValid(iEvent.getHandle(RecTrackToken_)); + auto GenRecTrackHandle = makeValid(iEvent.getHandle(GenRecTrackToken_)); auto RecVertexHandle = makeValid(iEvent.getHandle(RecVertexToken_)); + const auto& tMtd = iEvent.get(tmtdToken_); + const auto& SigmatMtd = iEvent.get(SigmatmtdToken_); + const auto& t0Src = iEvent.get(t0SrcToken_); + const auto& Sigmat0Src = iEvent.get(Sigmat0SrcToken_); + const auto& t0Pid = iEvent.get(t0PidToken_); + const auto& Sigmat0Pid = iEvent.get(Sigmat0PidToken_); + const auto& t0Safe = iEvent.get(t0SafePidToken_); + const auto& Sigmat0Safe = iEvent.get(Sigmat0SafePidToken_); + const auto& mtdQualMVA = iEvent.get(trackMVAQualToken_); + const auto& trackAssoc = iEvent.get(trackAssocToken_); + const auto& pathLength = iEvent.get(pathLengthToken_); + + unsigned int index = 0; // --- Loop over all RECO tracks --- - for (const auto& track : *RecTrackHandle) { - if (track.pt() < trackMinEnergy_) + for (const auto& trackGen : *GenRecTrackHandle) { + const reco::TrackRef trackref(iEvent.getHandle(GenRecTrackToken_), index); + index++; + + if (trackAssoc[trackref] == -1) { + LogWarning("mtdTracks") << "Extended track not associated"; continue; + } - if (fabs(track.eta()) < trackMinEta_) { + const reco::TrackRef mtdTrackref = reco::TrackRef(iEvent.getHandle(RecTrackToken_), trackAssoc[trackref]); + const reco::Track track = *mtdTrackref; + + if (track.pt() < trackMinPt_) + continue; + + meTracktmtd_->Fill(tMtd[mtdTrackref]); + if (std::round(SigmatMtd[mtdTrackref] - Sigmat0Pid[trackref]) != 0) { + LogWarning("mtdTracks") << "TimeError associated to refitted track is different from TimeError stored in tofPID " + "sigmat0 ValueMap: this should not happen"; + } + + meTrackt0Src_->Fill(t0Src[trackref]); + meTrackSigmat0Src_->Fill(Sigmat0Src[trackref]); + + meTrackt0Pid_->Fill(t0Pid[trackref]); + meTrackSigmat0Pid_->Fill(Sigmat0Pid[trackref]); + meTrackt0SafePid_->Fill(t0Safe[trackref]); + meTrackSigmat0SafePid_->Fill(Sigmat0Safe[trackref]); + meTrackMVAQual_->Fill(mtdQualMVA[trackref]); + + meTrackPathLenghtvsEta_->Fill(std::abs(track.eta()), pathLength[mtdTrackref]); + + if (std::abs(track.eta()) < trackMinEta_) { // --- all BTL tracks (with and without hit in MTD) --- meBTLTrackEffEtaTot_->Fill(track.eta()); meBTLTrackEffPhiTot_->Fill(track.phi()); @@ -140,8 +221,9 @@ void MtdGlobalRecoValidation::analyze(const edm::Event& iEvent, const edm::Event meBTLTrackEffPhiMtd_->Fill(track.phi()); meBTLTrackEffPtMtd_->Fill(track.pt()); meBTLTrackRPTime_->Fill(track.t0()); + meBTLTrackPtRes_->Fill((trackGen.pt() - track.pt()) / trackGen.pt()); } - } + } //loop over (geometrical) BTL tracks else { // --- all ETL tracks (with and without hit in MTD) --- @@ -172,22 +254,26 @@ void MtdGlobalRecoValidation::analyze(const edm::Event& iEvent, const edm::Event if (topo2Dis) { if ((ETLHit.zside() == -1) && (ETLHit.nDisc() == 1)) { MTDEtlZnegD1 = true; - meETLTrackRPTime_[0]->Fill(track.t0()); + meETLTrackRPTime_->Fill(track.t0()); + meETLTrackPtRes_->Fill((trackGen.pt() - track.pt()) / trackGen.pt()); numMTDEtlvalidhits++; } if ((ETLHit.zside() == -1) && (ETLHit.nDisc() == 2)) { MTDEtlZnegD2 = true; - meETLTrackRPTime_[1]->Fill(track.t0()); + meETLTrackRPTime_->Fill(track.t0()); + meETLTrackPtRes_->Fill((trackGen.pt() - track.pt()) / trackGen.pt()); numMTDEtlvalidhits++; } if ((ETLHit.zside() == 1) && (ETLHit.nDisc() == 1)) { MTDEtlZposD1 = true; - meETLTrackRPTime_[2]->Fill(track.t0()); + meETLTrackRPTime_->Fill(track.t0()); + meETLTrackPtRes_->Fill((trackGen.pt() - track.pt()) / trackGen.pt()); numMTDEtlvalidhits++; } if ((ETLHit.zside() == 1) && (ETLHit.nDisc() == 2)) { MTDEtlZposD2 = true; - meETLTrackRPTime_[3]->Fill(track.t0()); + meETLTrackRPTime_->Fill(track.t0()); + meETLTrackPtRes_->Fill((trackGen.pt() - track.pt()) / trackGen.pt()); numMTDEtlvalidhits++; } } @@ -195,12 +281,12 @@ void MtdGlobalRecoValidation::analyze(const edm::Event& iEvent, const edm::Event if (topo1Dis) { if (ETLHit.zside() == -1) { MTDEtlZnegD1 = true; - meETLTrackRPTime_[0]->Fill(track.t0()); + meETLTrackRPTime_->Fill(track.t0()); numMTDEtlvalidhits++; } if (ETLHit.zside() == 1) { MTDEtlZposD1 = true; - meETLTrackRPTime_[2]->Fill(track.t0()); + meETLTrackRPTime_->Fill(track.t0()); numMTDEtlvalidhits++; } } @@ -240,9 +326,7 @@ void MtdGlobalRecoValidation::analyze(const edm::Event& iEvent, const edm::Event } // ------------ method for histogram booking ------------ -void MtdGlobalRecoValidation::bookHistograms(DQMStore::IBooker& ibook, - edm::Run const& run, - edm::EventSetup const& iSetup) { +void MtdTracksValidation::bookHistograms(DQMStore::IBooker& ibook, edm::Run const& run, edm::EventSetup const& iSetup) { ibook.setCurrentFolder(folder_); // histogram booking @@ -255,14 +339,9 @@ void MtdGlobalRecoValidation::bookHistograms(DQMStore::IBooker& ibook, meBTLTrackEffPhiMtd_ = ibook.book1D("TrackBTLEffPhiMtd", "Track efficiency vs phi (Mtd);#phi_{RECO} [rad]", 100, -3.2, 3.2); meBTLTrackEffPtMtd_ = ibook.book1D("TrackBTLEffPtMtd", "Track efficiency vs pt (Mtd);pt_{RECO} [GeV]", 50, 0, 10); - meETLTrackRPTime_[0] = - ibook.book1D("TrackETLRPTimeZnegD1", "Track t0 with respect to R.P. (-Z, First Disk);t0 [ns]", 100, -1, 3); - meETLTrackRPTime_[1] = - ibook.book1D("TrackETLRPTimeZnegD2", "Track t0 with respect to R.P. (-Z, Second Disk);t0 [ns]", 100, -1, 3); - meETLTrackRPTime_[2] = - ibook.book1D("TrackETLRPTimeZposD1", "Track t0 with respect to R.P. (+Z, First Disk);t0 [ns]", 100, -1, 3); - meETLTrackRPTime_[3] = - ibook.book1D("TrackETLRPTimeZposD2", "Track t0 with respect to R.P. (+Z, Second Disk);t0 [ns]", 100, -1, 3); + meBTLTrackPtRes_ = + ibook.book1D("TrackBTLPtRes", "Track pT resolution ;pT_{Gentrack}-pT_{MTDtrack}/pT_{Gentrack} ", 100, -0.1, 0.1); + meETLTrackRPTime_ = ibook.book1D("TrackETLRPTime", "Track t0 with respect to R.P.;t0 [ns]", 100, -1, 3); meETLTrackEffEtaTot_[0] = ibook.book1D("TrackETLEffEtaTotZneg", "Track efficiency vs eta (Tot) (-Z);#eta_{RECO}", 100, -3.2, -1.4); meETLTrackEffEtaTot_[1] = @@ -287,7 +366,23 @@ void MtdGlobalRecoValidation::bookHistograms(DQMStore::IBooker& ibook, ibook.book1D("TrackETLEffPtMtdZneg", "Track efficiency vs pt (Mtd) (-Z);pt_{RECO} [GeV]", 50, 0, 10); meETLTrackEffPtMtd_[1] = ibook.book1D("TrackETLEffPtMtdZpos", "Track efficiency vs pt (Mtd) (+Z);pt_{RECO} [GeV]", 50, 0, 10); + meETLTrackPtRes_ = + ibook.book1D("TrackETLPtRes", "Track pT resolution;pT_{Gentrack}-pT_{MTDtrack}/pT_{Gentrack} ", 100, -0.1, 0.1); + + meTracktmtd_ = ibook.book1D("Tracktmtd", "Track time from TrackExtenderWithMTD;tmtd [ns]", 150, 1, 16); + meTrackt0Src_ = ibook.book1D("Trackt0Src", "Track time from TrackExtenderWithMTD;t0Src [ns]", 100, -1.5, 1.5); + meTrackSigmat0Src_ = + ibook.book1D("TrackSigmat0Src", "Time Error from TrackExtenderWithMTD; #sigma_{t0Src} [ns]", 100, 0, 0.1); + + meTrackt0Pid_ = ibook.book1D("Trackt0Pid", "Track t0 as stored in TofPid;t0 [ns]", 100, -1, 1); + meTrackSigmat0Pid_ = ibook.book1D("TrackSigmat0Pid", "Sigmat0 as stored in TofPid; #sigma_{t0} [ns]", 100, 0, 0.1); + meTrackt0SafePid_ = ibook.book1D("Trackt0SafePID", "Track t0 Safe as stored in TofPid;t0 [ns]", 100, -1, 1); + meTrackSigmat0SafePid_ = + ibook.book1D("TrackSigmat0SafePID", "Sigmat0 Safe as stored in TofPid; #sigma_{t0} [ns]", 100, 0, 0.1); meTrackNumHits_ = ibook.book1D("TrackNumHits", "Number of valid MTD hits per track ; Number of hits", 10, -5, 5); + meTrackMVAQual_ = ibook.book1D("TrackMVAQual", "Track MVA Quality as stored in Value Map ; MVAQual", 100, 0, 1); + meTrackPathLenghtvsEta_ = ibook.bookProfile( + "TrackPathLenghtvsEta", "MTD Track pathlength vs MTD track Eta;|#eta|;Pathlength", 100, 0, 3.2, 100.0, 400.0, "S"); meVerZ_ = ibook.book1D("VerZ", "RECO Vertex Z;Z_{RECO} [cm]", 180, -18, 18); meVerTime_ = ibook.book1D("VerTime", "RECO Vertex Time;t0 [ns]", 100, -1, 1); meVerNumber_ = ibook.book1D("VerNumber", "RECO Vertex Number: Number of vertices", 100, 0, 500); @@ -295,17 +390,30 @@ void MtdGlobalRecoValidation::bookHistograms(DQMStore::IBooker& ibook, // ------------ method fills 'descriptions' with the allowed parameters for the module ------------ -void MtdGlobalRecoValidation::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { +void MtdTracksValidation::fillDescriptions(edm::ConfigurationDescriptions& descriptions) { edm::ParameterSetDescription desc; - desc.add("folder", "MTD/GlobalReco"); - desc.add("inputTagT", edm::InputTag("trackExtenderWithMTD", "")); - desc.add("inputTagV", edm::InputTag("offlinePrimaryVertices4D", "")); - desc.add("trackMinimumEnergy", 1.0); // [GeV] + desc.add("folder", "MTD/Tracks"); + desc.add("inputTagG", edm::InputTag("generalTracks")); + desc.add("inputTagT", edm::InputTag("trackExtenderWithMTD")); + desc.add("inputTagV", edm::InputTag("offlinePrimaryVertices4D")); + desc.add("tmtd", edm::InputTag("trackExtenderWithMTD:tmtd")); + desc.add("sigmatmtd", edm::InputTag("trackExtenderWithMTD:sigmatmtd")); + desc.add("t0Src", edm::InputTag("trackExtenderWithMTD:generalTrackt0")); + desc.add("sigmat0Src", edm::InputTag("trackExtenderWithMTD:generalTracksigmat0")); + desc.add("trackAssocSrc", edm::InputTag("trackExtenderWithMTD:generalTrackassoc")) + ->setComment("Association between General and MTD Extended tracks"); + desc.add("pathLengthSrc", edm::InputTag("trackExtenderWithMTD:pathLength")); + desc.add("t0SafePID", edm::InputTag("tofPID:t0safe")); + desc.add("sigmat0SafePID", edm::InputTag("tofPID:sigmat0safe")); + desc.add("sigmat0PID", edm::InputTag("tofPID:sigmat0")); + desc.add("t0PID", edm::InputTag("tofPID:t0")); + desc.add("trackMVAQual", edm::InputTag("mtdTrackQualityMVA:mtdQualMVA")); + desc.add("trackMinimumPt", 1.0); // [GeV] desc.add("trackMinimumEta", 1.5); desc.add("trackMaximumEta", 3.2); - descriptions.add("globalReco", desc); + descriptions.add("mtdTracks", desc); } -DEFINE_FWK_MODULE(MtdGlobalRecoValidation); +DEFINE_FWK_MODULE(MtdTracksValidation); diff --git a/Validation/MtdValidation/python/MtdPostProcessor_cff.py b/Validation/MtdValidation/python/MtdPostProcessor_cff.py index 5b1046b957722..5baa321ddbd52 100644 --- a/Validation/MtdValidation/python/MtdPostProcessor_cff.py +++ b/Validation/MtdValidation/python/MtdPostProcessor_cff.py @@ -1,6 +1,6 @@ import FWCore.ParameterSet.Config as cms from Validation.MtdValidation.btlSimHitsPostProcessor_cfi import btlSimHitsPostProcessor -from Validation.MtdValidation.MtdGlobalRecoPostProcessor_cfi import MtdGlobalRecoPostProcessor +from Validation.MtdValidation.MtdTracksPostProcessor_cfi import MtdTracksPostProcessor -mtdValidationPostProcessor = cms.Sequence(btlSimHitsPostProcessor + MtdGlobalRecoPostProcessor) +mtdValidationPostProcessor = cms.Sequence(btlSimHitsPostProcessor + MtdTracksPostProcessor) diff --git a/Validation/MtdValidation/test/mtdValidation_cfg.py b/Validation/MtdValidation/test/mtdValidation_cfg.py index 000cd3fa30394..1a84ec60b0cc0 100644 --- a/Validation/MtdValidation/test/mtdValidation_cfg.py +++ b/Validation/MtdValidation/test/mtdValidation_cfg.py @@ -51,7 +51,7 @@ etlValidation = cms.Sequence(process.etlSimHits + process.etlDigiHits + process.etlLocalReco) # --- Global Validation -process.load("Validation.MtdValidation.globalReco_cfi") +process.load("Validation.MtdValidation.mtdTracks_cfi") process.DQMStore = cms.Service("DQMStore") diff --git a/Validation/MuonCSCDigis/src/CSCALCTDigiValidation.cc b/Validation/MuonCSCDigis/src/CSCALCTDigiValidation.cc index 80f4571583295..79fddd684a516 100644 --- a/Validation/MuonCSCDigis/src/CSCALCTDigiValidation.cc +++ b/Validation/MuonCSCDigis/src/CSCALCTDigiValidation.cc @@ -16,13 +16,14 @@ CSCALCTDigiValidation::CSCALCTDigiValidation(const edm::ParameterSet &ps, edm::C CSCALCTDigiValidation::~CSCALCTDigiValidation() {} void CSCALCTDigiValidation::bookHistograms(DQMStore::IBooker &iBooker) { - theNDigisPerEventPlot = - iBooker.book1D("CSCALCTDigisPerEvent", "ALCT Digis per event; Number of ALCTs; Entries", 4, 0, 4); + theNDigisPerEventPlot = iBooker.book1D( + "CSCALCTDigisPerEvent", "ALCT trigger primitives per event; Number of ALCTs; Entries", 100, 0, 100); for (int i = 1; i <= 10; ++i) { const std::string t1("CSCALCTDigiTime_" + CSCDetId::chamberName(i)); const std::string t2("CSCALCTDigisPerChamber_" + CSCDetId::chamberName(i)); - theTimeBinPlots[i - 1] = iBooker.book1D(t1, t1 + ";Wire Time Bin; Entries", 16, 0, 16); - theNDigisPerChamberPlots[i - 1] = iBooker.book1D(t2, t2 + ";Number of ALCTs per chamber;Entries", 4, 0, 4); + theTimeBinPlots[i - 1] = iBooker.book1D(t1, "ALCT BX " + CSCDetId::chamberName(i) + ";ALCT BX; Entries", 16, 0, 16); + theNDigisPerChamberPlots[i - 1] = iBooker.book1D( + t2, "Number of ALCTs per chamber " + CSCDetId::chamberName(i) + ";Number of ALCTs per chamber;Entries", 4, 0, 4); } } diff --git a/Validation/MuonCSCDigis/src/CSCCLCTDigiValidation.cc b/Validation/MuonCSCDigis/src/CSCCLCTDigiValidation.cc index 1221ac6f36a4d..5d11ecf8830c6 100644 --- a/Validation/MuonCSCDigis/src/CSCCLCTDigiValidation.cc +++ b/Validation/MuonCSCDigis/src/CSCCLCTDigiValidation.cc @@ -16,13 +16,14 @@ CSCCLCTDigiValidation::CSCCLCTDigiValidation(const edm::ParameterSet &ps, edm::C CSCCLCTDigiValidation::~CSCCLCTDigiValidation() {} void CSCCLCTDigiValidation::bookHistograms(DQMStore::IBooker &iBooker) { - theNDigisPerEventPlot = - iBooker.book1D("CSCCLCTDigisPerEvent", "CLCT Digis per event; Number of CLCTs; Entries", 4, 0, 4); + theNDigisPerEventPlot = iBooker.book1D( + "CSCCLCTDigisPerEvent", "CLCT trigger primitives per event; Number of CLCTs; Entries", 100, 0, 100); for (int i = 1; i <= 10; ++i) { const std::string t1("CSCCLCTDigiTime_" + CSCDetId::chamberName(i)); const std::string t2("CSCCLCTDigisPerChamber_" + CSCDetId::chamberName(i)); - theTimeBinPlots[i - 1] = iBooker.book1D(t1, t1 + ";Comparator Time Bin; Entries", 16, 0, 16); - theNDigisPerChamberPlots[i - 1] = iBooker.book1D(t2, t2 + ";Number of CLCTs per chamber;Entries", 4, 0, 4); + theTimeBinPlots[i - 1] = iBooker.book1D(t1, "CLCT BX " + CSCDetId::chamberName(i) + ";CLCT BX; Entries", 16, 0, 16); + theNDigisPerChamberPlots[i - 1] = iBooker.book1D( + t2, "Number of CLCTs per chamber " + CSCDetId::chamberName(i) + ";Number of CLCTs per chamber;Entries", 4, 0, 4); } } diff --git a/Validation/MuonCSCDigis/src/CSCComparatorDigiValidation.cc b/Validation/MuonCSCDigis/src/CSCComparatorDigiValidation.cc index 69667bb94917d..40ab78fbd0c67 100644 --- a/Validation/MuonCSCDigis/src/CSCComparatorDigiValidation.cc +++ b/Validation/MuonCSCDigis/src/CSCComparatorDigiValidation.cc @@ -17,18 +17,33 @@ CSCComparatorDigiValidation::CSCComparatorDigiValidation(const edm::ParameterSet CSCComparatorDigiValidation::~CSCComparatorDigiValidation() {} void CSCComparatorDigiValidation::bookHistograms(DQMStore::IBooker &iBooker) { - theNDigisPerEventPlot = - iBooker.book1D("CSCComparatorDigisPerEvent", ";CSC Comparator Digis per event;Entries", 100, 0, 100); + theNDigisPerEventPlot = iBooker.book1D("CSCComparatorDigisPerEvent", + "CSC Comparator Digis per event;CSC Comparator Digis per event;Entries", + 100, + 0, + 100); // 10 chamber types, if you consider ME1/a and ME1/b separate for (int i = 1; i <= 10; ++i) { const std::string t1("CSCComparatorDigiTime_" + CSCDetId::chamberName(i)); const std::string t2("CSCComparatorDigisPerLayer_" + CSCDetId::chamberName(i)); const std::string t3("CSCComparatorStripAmplitude_" + CSCDetId::chamberName(i)); const std::string t4("CSCComparator3StripAmplitude_" + CSCDetId::chamberName(i)); - theTimeBinPlots[i - 1] = iBooker.book1D(t1, t1 + ";Comparator Time Bin; Entries", 16, 0, 16); - theNDigisPerLayerPlots[i - 1] = iBooker.book1D(t2, t2 + ";Number of Comparator Digis; Entries", 100, 0, 20); - theStripDigiPlots[i - 1] = iBooker.book1D(t3, t3 + ";Comparator Amplitude; Entries", 100, 0, 1000); - the3StripPlots[i - 1] = iBooker.book1D(t4, t4 + ";Comparator-triplet Amplitude; Entries", 100, 0, 1000); + theTimeBinPlots[i - 1] = iBooker.book1D( + t1, "Comparator Time Bin " + CSCDetId::chamberName(i) + " ;Comparator Time Bin; Entries", 16, 0, 16); + theNDigisPerLayerPlots[i - 1] = iBooker.book1D( + t2, + "Number of Comparator Digis " + CSCDetId::chamberName(i) + " ;Number of Comparator Digis; Entries", + 100, + 0, + 20); + theStripDigiPlots[i - 1] = iBooker.book1D( + t3, "Comparator Amplitude " + CSCDetId::chamberName(i) + " ;Comparator Amplitude; Entries", 100, 0, 1000); + the3StripPlots[i - 1] = iBooker.book1D( + t4, + "Comparator-triplet Amplitude " + CSCDetId::chamberName(i) + " ;Comparator-triplet Amplitude; Entries", + 100, + 0, + 1000); } } diff --git a/Validation/MuonCSCDigis/src/CSCStripDigiValidation.cc b/Validation/MuonCSCDigis/src/CSCStripDigiValidation.cc index 9634b992bc08e..d6625438f65a8 100644 --- a/Validation/MuonCSCDigis/src/CSCStripDigiValidation.cc +++ b/Validation/MuonCSCDigis/src/CSCStripDigiValidation.cc @@ -20,19 +20,32 @@ CSCStripDigiValidation::~CSCStripDigiValidation() {} void CSCStripDigiValidation::bookHistograms(DQMStore::IBooker &iBooker) { thePedestalPlot = iBooker.book1D("CSCPedestal", "CSC Pedestal;ADC Counts;Entries", 400, 550, 650); - theAmplitudePlot = iBooker.book1D("CSCStripAmplitude", ";CSC Strip Amplitude;Entries", 200, 0, 2000); + theAmplitudePlot = iBooker.book1D("CSCStripAmplitude", "CSC Strip Amplitude;Strip Amplitude;Entries", 200, 0, 2000); theRatio4to5Plot = iBooker.book1D("CSCStrip4to5", "CSC Strip Ratio tbin 4 to tbin 5;Strip Ratio;Entries", 100, 0, 1); theRatio6to5Plot = iBooker.book1D("CSCStrip6to5", "CSC Strip Ratio tbin 6 to tbin 5;Strip Ratio;Entries", 120, 0, 1.2); theNDigisPerLayerPlot = - iBooker.book1D("CSCStripDigisPerLayer", ";Number of CSC Strip Digis per layer;Entries", 48, 0, 48); + iBooker.book1D("CSCStripDigisPerLayer", + "Number of CSC Strip Digis per layer;Number of CSC Strip Digis per layer;Entries", + 48, + 0, + 48); theNDigisPerEventPlot = - iBooker.book1D("CSCStripDigisPerEvent", ";Number of CSC Strip Digis per event;Entries", 100, 0, 500); + iBooker.book1D("CSCStripDigisPerEvent", + "Number of CSC Strip Digis per event;Number of CSC Strip Digis per event;Entries", + 100, + 0, + 500); if (doSim_) { for (int i = 1; i <= 10; ++i) { const std::string t1("CSCStripPosResolution_" + CSCDetId::chamberName(i)); - theResolutionPlots[i - 1] = iBooker.book1D(t1, t1 + ";Strip X Position Resolution; Entries", 100, -5, 5); + theResolutionPlots[i - 1] = iBooker.book1D( + t1, + "Strip X Position Resolution " + CSCDetId::chamberName(i) + ";Strip X Position Resolution; Entries", + 100, + -5, + 5); } } } diff --git a/Validation/MuonCSCDigis/src/CSCWireDigiValidation.cc b/Validation/MuonCSCDigis/src/CSCWireDigiValidation.cc index 65be5a5a27265..25071d5516a28 100644 --- a/Validation/MuonCSCDigis/src/CSCWireDigiValidation.cc +++ b/Validation/MuonCSCDigis/src/CSCWireDigiValidation.cc @@ -16,14 +16,22 @@ CSCWireDigiValidation::CSCWireDigiValidation(const edm::ParameterSet &ps, edm::C CSCWireDigiValidation::~CSCWireDigiValidation() {} void CSCWireDigiValidation::bookHistograms(DQMStore::IBooker &iBooker) { - theNDigisPerEventPlot = iBooker.book1D("CSCWireDigisPerEvent", ";CSC Wire Digis per event;Entries", 100, 0, 100); + theNDigisPerEventPlot = + iBooker.book1D("CSCWireDigisPerEvent", "CSC Wire Digis per event;CSC Wire Digis per event;Entries", 100, 0, 100); for (int i = 1; i <= 10; ++i) { const std::string t1("CSCWireDigiTime_" + CSCDetId::chamberName(i)); const std::string t2("CSCWireDigisPerLayer_" + CSCDetId::chamberName(i)); const std::string t3("CSCWireDigiResolution_" + CSCDetId::chamberName(i)); - theTimeBinPlots[i - 1] = iBooker.book1D(t1, t1 + ";Wire Time Bin; Entries", 16, 0, 16); - theNDigisPerLayerPlots[i - 1] = iBooker.book1D(t2, t2 + ";Number of Wire Digis; Entries", 100, 0, 20); - theResolutionPlots[i - 1] = iBooker.book1D(t3, t3 + ";Wire Y Position Resolution; Entries", 100, -10, 10); + theTimeBinPlots[i - 1] = + iBooker.book1D(t1, "Wire Time Bin " + CSCDetId::chamberName(i) + ";Wire Time Bin; Entries", 16, 0, 16); + theNDigisPerLayerPlots[i - 1] = iBooker.book1D( + t2, "Number of Wire Digis " + CSCDetId::chamberName(i) + ";Number of Wire Digis; Entries", 100, 0, 20); + theResolutionPlots[i - 1] = iBooker.book1D( + t3, + "Wire Y Position Resolution " + CSCDetId::chamberName(i) + ";Wire Y Position Resolution; Entries", + 100, + -10, + 10); } } diff --git a/Validation/RecoB/plugins/BTagPerformanceAnalyzerMC.h b/Validation/RecoB/plugins/BTagPerformanceAnalyzerMC.h index 98296f0166497..bcfb30c5f9900 100644 --- a/Validation/RecoB/plugins/BTagPerformanceAnalyzerMC.h +++ b/Validation/RecoB/plugins/BTagPerformanceAnalyzerMC.h @@ -14,10 +14,10 @@ #include "FWCore/Framework/interface/Frameworkfwd.h" #include "JetMETCorrections/JetCorrector/interface/JetCorrector.h" #include "SimDataFormats/GeneratorProducts/interface/GenEventInfoProduct.h" -#include "SimDataFormats/JetMatching/interface/JetFlavour.h" -#include "SimDataFormats/JetMatching/interface/JetFlavourInfo.h" -#include "SimDataFormats/JetMatching/interface/JetFlavourInfoMatching.h" -#include "SimDataFormats/JetMatching/interface/JetFlavourMatching.h" +#include "DataFormats/JetMatching/interface/JetFlavour.h" +#include "DataFormats/JetMatching/interface/JetFlavourInfo.h" +#include "DataFormats/JetMatching/interface/JetFlavourInfoMatching.h" +#include "DataFormats/JetMatching/interface/JetFlavourMatching.h" /** \class BTagPerformanceAnalyzerMC * * Top level steering routine for b tag performance analysis. diff --git a/Validation/RecoTrack/plugins/JetCoreMCtruthSeedGenerator.cc b/Validation/RecoTrack/plugins/JetCoreMCtruthSeedGenerator.cc index e153370563a78..78c6bba3566ee 100644 --- a/Validation/RecoTrack/plugins/JetCoreMCtruthSeedGenerator.cc +++ b/Validation/RecoTrack/plugins/JetCoreMCtruthSeedGenerator.cc @@ -327,7 +327,7 @@ const GeomDet* JetCoreMCtruthSeedGenerator::DetectorSelector(int llay, std::set, trkNumCompare> track4detSet; double minDist = 0.0; - GeomDet* output = (GeomDet*)nullptr; + const GeomDet* output = nullptr; for (const auto& detset : clusters) { auto aClusterID = detset.id(); if (DetId(aClusterID).subdetId() != 1) @@ -344,7 +344,7 @@ const GeomDet* JetCoreMCtruthSeedGenerator::DetectorSelector(int llay, auto localInter = det->specificSurface().toLocal((GlobalPoint)inter); if ((minDist == 0.0 || std::abs(localInter.x()) < minDist) && std::abs(localInter.y()) < 3.35) { minDist = std::abs(localInter.x()); - output = (GeomDet*)det; + output = det; } } //detset return output; diff --git a/Validation/RecoTrack/python/PostProcessorTracker_cfi.py b/Validation/RecoTrack/python/PostProcessorTracker_cfi.py index df73b303d5061..54fa0364fe239 100644 --- a/Validation/RecoTrack/python/PostProcessorTracker_cfi.py +++ b/Validation/RecoTrack/python/PostProcessorTracker_cfi.py @@ -350,9 +350,9 @@ def _addNoFlow(module): postProcessorTrackTrackingOnly = postProcessorTrack.clone() -postProcessorTrackTrackingOnly.subDirs.extend(["Tracking/TrackBHadron/*","Tracking/TrackSeeding/*", "Tracking/PixelTrack/*"]) +postProcessorTrackTrackingOnly.subDirs.extend(["Tracking/TrackBHadron/*", "Tracking/TrackSeeding/*", "Tracking/PixelTrack/*", "Tracking/PixelTrackFromPV/*", "Tracking/PixelTrackFromPVAllTP/*", "Tracking/PixelTrackBHadron/*"]) postProcessorTrackSummaryTrackingOnly = postProcessorTrackSummary.clone() -postProcessorTrackSummaryTrackingOnly.subDirs.extend(["Tracking/TrackBHadron","Tracking/TrackSeeding", "Tracking/PixelTrack"]) +postProcessorTrackSummaryTrackingOnly.subDirs.extend(["Tracking/TrackBHadron", "Tracking/TrackSeeding", "Tracking/PixelTrack", "Tracking/PixelTrackFromPV", "Tracking/PixelTrackFromPVAllTP", "Tracking/PixelTrackBHadron"]) postProcessorTrackSequenceTrackingOnly = cms.Sequence( postProcessorTrackTrackingOnly+ diff --git a/Validation/RecoTrack/python/TrackValidation_cff.py b/Validation/RecoTrack/python/TrackValidation_cff.py index 9882bf2a9ca7f..1fa5484c8bf5c 100644 --- a/Validation/RecoTrack/python/TrackValidation_cff.py +++ b/Validation/RecoTrack/python/TrackValidation_cff.py @@ -974,9 +974,17 @@ def _uniqueFirstLayers(layerList): trackAssociation = "trackingParticlePixelTrackAsssociation" ) +_pixelTracksCustom = dict( + src = "pixelTracks", + vertexTag = "pixelVertices", +) +pixelTracksPt09 = generalTracksPt09.clone(quality = ["undefQuality"], **_pixelTracksCustom) +pixelTracksFromPV = generalTracksFromPV.clone(quality = "undefQuality", **_pixelTracksCustom) +pixelTracksFromPVPt09 = pixelTracksPt09.clone(src = "pixelTracksFromPV") + trackValidatorPixelTrackingOnly = trackValidator.clone( dirName = "Tracking/PixelTrack/", - label = ["pixelTracks"], + label = ["pixelTracks", "pixelTracksPt09"], doResolutionPlotsForLabels = [], trackCollectionForDrCalculation = "pixelTracks", associators = ["trackingParticlePixelTrackAsssociation"], @@ -985,13 +993,54 @@ def _uniqueFirstLayers(layerList): dodEdxPlots = False, cores = cms.InputTag(""), ) +trackValidatorFromPVPixelTrackingOnly = trackValidatorPixelTrackingOnly.clone( + dirName = "Tracking/PixelTrackFromPV/", + label = ["pixelTracksFromPV", "pixelTracksFromPVPt09"], + label_tp_effic = "trackingParticlesSignal", + label_tp_fake = "trackingParticlesSignal", + label_tp_effic_refvector = True, + label_tp_fake_refvector = True, + trackCollectionForDrCalculation = "pixelTracksFromPV", + doPlotsOnlyForTruePV = True, + doPVAssociationPlots = False, + doResolutionPlotsForLabels = ["disabled"], +) +trackValidatorFromPVAllTPPixelTrackingOnly = trackValidatorFromPVPixelTrackingOnly.clone( + dirName = "Tracking/PixelTrackFromPVAllTP/", + label_tp_effic = trackValidatorPixelTrackingOnly.label_tp_effic.value(), + label_tp_fake = trackValidatorPixelTrackingOnly.label_tp_fake.value(), + label_tp_effic_refvector = False, + label_tp_fake_refvector = False, + doSimPlots = False, + doSimTrackPlots = False, +) +trackValidatorBHadronPixelTrackingOnly = trackValidatorPixelTrackingOnly.clone( + dirName = "Tracking/PixelTrackBHadron/", + label_tp_effic = "trackingParticlesBHadron", + label_tp_effic_refvector = True, + doSimPlots = True, + doRecoTrackPlots = False, # Fake rate is defined wrt. all TPs, and that is already included in trackValidator + dodEdxPlots = False, +) tracksValidationTruthPixelTrackingOnly = tracksValidationTruth.copy() tracksValidationTruthPixelTrackingOnly.replace(trackingParticleRecoTrackAsssociation, trackingParticlePixelTrackAsssociation) tracksValidationTruthPixelTrackingOnly.replace(VertexAssociatorByPositionAndTracks, PixelVertexAssociatorByPositionAndTracks) +tracksValidationTruthPixelTrackingOnly.add(trackingParticlesBHadron) + +tracksPreValidationPixelTrackingOnly = cms.Task( + tracksValidationTruthPixelTrackingOnly, + trackingParticlesSignal, + pixelTracksPt09, + pixelTracksFromPV, + pixelTracksFromPVPt09, +) tracksValidationPixelTrackingOnly = cms.Sequence( - trackValidatorPixelTrackingOnly, - tracksValidationTruthPixelTrackingOnly + trackValidatorPixelTrackingOnly + + trackValidatorFromPVPixelTrackingOnly + + trackValidatorFromPVAllTPPixelTrackingOnly + + trackValidatorBHadronPixelTrackingOnly, + tracksPreValidationPixelTrackingOnly ) diff --git a/Validation/RecoTrack/python/plotting/html.py b/Validation/RecoTrack/python/plotting/html.py index a9fed5cc12975..3985f8edc9abf 100644 --- a/Validation/RecoTrack/python/plotting/html.py +++ b/Validation/RecoTrack/python/plotting/html.py @@ -63,8 +63,14 @@ def _allToHP(s): return s.replace("All", "High purity") def _allToBTV(s): return s.replace("All", "BTV-like") +def _allPtCut(s): + return s.replace("All tracks", "Tracks pT > 0.9 GeV") def _ptCut(s): return s.replace("Tracks", "Tracks pT > 0.9 GeV").replace("tracks", "tracks pT > 0.9 GeV") +def _allToPixel(s): + return s.replace("All", "Pixel") +def _toPixel(s): + return s.replace("Tracks", "Pixel tracks") _trackQualityNameOrder = collections.OrderedDict([ ("seeding_seeds", "Seeds"), ("seeding_seedsa", "Seeds A"), @@ -75,8 +81,8 @@ def _ptCut(s): ("building_", "Built tracks"), ("", _allName), ("highPurity", _allToHP(_allName)), - ("Pt09", "Tracks pT > 0.9 GeV"), - ("highPurityPt09", "High purity tracks pT > 0.9 GeV"), + ("Pt09", _allPtCut(_allName)), + ("highPurityPt09", _ptCut(_allToHP(_allName))), ("ByOriginalAlgo", _toOriAlgo(_allName)), ("highPurityByOriginalAlgo", _toOriAlgo(_toHP(_allName))), ("ByAlgoMask", _toAlgoMask(_allName)), @@ -120,6 +126,15 @@ def _ptCut(s): ("displaced_highPurityByOriginalAlgo", _toOriAlgo(_allToHP(_displacedName))), ("displaced_ByAlgoMask", _toAlgoMask(_displacedName)), ("displaced_highPurityByAlgoMask", _toAlgoMask(_allToHP(_displacedName))), + # Pixel tracks + ("pixel_", _allToPixel(_allName)), + ("pixel_Pt09", _ptCut(_allToPixel(_allName))), + ("pixelFromPV_", _toPixel(_fromPVName)), + ("pixelFromPV_Pt09", _ptCut(_toPixel(_fromPVName))), + ("pixelFromPVAllTP_", _toPixel(_fromPVAllTPName)), + ("pixelFromPVAllTP_Pt09", _ptCut(_toPixel(_fromPVAllTPName))), + ("pixelbhadron_", _allToPixel(_bhadronName)), + ("pixelbhadron_Pt09", _ptCut(_allToPixel(_bhadronName))), ]) _trackAlgoName = { @@ -134,6 +149,7 @@ def _ptCut(s): "iter7" : "Iterative Step 7", "iter9" : "Iterative Step 9", "iter10": "Iterative Step 10", + "pixel": "Pixel tracks", } _trackAlgoOrder = [ @@ -169,6 +185,7 @@ def _ptCut(s): 'iter7', 'iter9', 'iter10', + "pixel", ] _pageNameMap = { @@ -186,10 +203,10 @@ def _ptCut(s): # These are for the summary page ("seeding_seeds", "Seeds"), ("building", "Built tracks"), - ("", "All tracks"), - ("Pt09", "All tracks (pT>0.9 GeV)"), - ("highPurity", "High purity tracks"), - ("highPurityPt09", "High purity tracks (pT>0.9 GeV)"), + ("", _allName), + ("Pt09", _allPtCut(_allName)), + ("highPurity", _allToHP(_allName)), + ("highPurityPt09", _ptCut(_allToHP(_allName))), ("tpPtLess09", _tpPtLess09Name), ("tpPtLess09_highPurity", _allToHP(_tpPtLess09Name)), ("tpEtaGreater2p7", _tpEtaGreater2p7Name), @@ -209,7 +226,14 @@ def _ptCut(s): ("displaced", _displacedName), ("displaced_highPurity", _allToHP(_displacedName)), # Pixel tracks - ("pixel", "Pixel tracks"), + ("pixel", _allToPixel(_allName)), + ("pixelPt09", _ptCut(_allToPixel(_allName))), + ("pixelFromPV", _toPixel(_fromPVName)), + ("pixelFromPVPt09", _ptCut(_toPixel(_fromPVName))), + ("pixelFromPVAllTP", _toPixel(_fromPVAllTPName)), + ("pixelFromPVAllTPPt09", _ptCut(_toPixel(_fromPVAllTPName))), + ("pixelbhadron", _allToPixel(_bhadronName)), + ("pixelbhadronPt09", _ptCut(_allToPixel(_bhadronName))), # These are for vertices ("genvertex", "Gen vertices"), ("pixelVertices", "Pixel vertices"), @@ -233,6 +257,7 @@ def _ptCut(s): _fromPVAllTP2Legend = "Tracks from reco PV (another method), fake rate numerator contains all TrackingParticles (separates fake tracks from pileup tracks)" _fromPVAllTPPt2Legend = "Tracks (pT > 0.9 GeV) from reco PV (another method), fake rate numerator contains all TrackingParticles (separates fake tracks from pileup tracks)" _bhadronLegend = "All tracks, efficiency denominator contains only TrackingParticles from B-hadron decays" +_bhadronPtLegend = "Tracks (pT > 0.9 GeV), efficiency denominator contains only TrackingParticles from B-hadron decays" def _sectionNameLegend(): return { @@ -258,6 +283,12 @@ def _sectionNameLegend(): "bhadron_": _bhadronLegend, "bhadron_highPurity": _allToHP(_bhadronLegend), "bhadron_btvLike": _bhadronLegend.replace("All tracks", _btvLegend), + "pixelFromPV_": _fromPVLegend, + "pixelFromPV_Pt09": _fromPVPtLegend, + "pixelFromPVAllTP_": _fromPVAllTPLegend, + "pixelFromPVAllTP_Pt09": _fromPVAllTPPtLegend, + "pixelbhadron_": _bhadronLegend, + "pixelbhadron_Pt09": _bhadronPtLegend, } class Table: @@ -701,7 +732,7 @@ def __init__(self, sample, title, fastVsFull, pileupComparison): self._timingPage = PageSet(*params) self._pfPages = PageSet(*params) self._hltPages = PageSet(*params, dqmSubFolderTranslatedToSectionName=lambda algoQuality: algoQuality[0]) - self._pixelPages = PageSet(*params, dqmSubFolderTranslatedToSectionName=lambda algoQuality: algoQuality[0]) + self._pixelPages = TrackingPageSet(*params) self._otherPages = PageSet(*params) self._purposePageMap = { diff --git a/Validation/RecoTrack/python/plotting/plotting.py b/Validation/RecoTrack/python/plotting/plotting.py index d241f19c5a57e..e09b6530e6c5d 100644 --- a/Validation/RecoTrack/python/plotting/plotting.py +++ b/Validation/RecoTrack/python/plotting/plotting.py @@ -1182,8 +1182,8 @@ def create(self, tdirectory): # Plot styles -_plotStylesColor = [4, 2, ROOT.kBlack, ROOT.kOrange+7, ROOT.kMagenta-3] -_plotStylesMarker = [21, 20, 22, 34, 33] +_plotStylesColor = [4, 2, ROOT.kBlack, ROOT.kOrange+7, ROOT.kMagenta-3, ROOT.kGreen+2] +_plotStylesMarker = [21, 20, 22, 34, 33, 23] def _drawFrame(pad, bounds, zmax=None, xbinlabels=None, xbinlabelsize=None, xbinlabeloption=None, ybinlabels=None, suffix=""): """Function to draw a frame @@ -1967,10 +1967,11 @@ def _doStats(h, col, dy): if self._fit: st.SetOptFit(0o010) st.SetOptStat(1001) + st.SetOptStat(1110) st.SetX1NDC(startingX) st.SetX2NDC(startingX+0.3) st.SetY1NDC(startingY+dy) - st.SetY2NDC(startingY+dy+0.15) + st.SetY2NDC(startingY+dy+0.12) st.SetTextColor(col) dy = 0.0 @@ -1979,7 +1980,7 @@ def _doStats(h, col, dy): dy += self._statyadjust[i] _doStats(h, _plotStylesColor[i], dy) - dy -= 0.19 + dy -= 0.16 def _normalize(self): """Normalise histograms to unit area""" diff --git a/Validation/RecoTrack/python/plotting/trackingPlots.py b/Validation/RecoTrack/python/plotting/trackingPlots.py index 7f5d84738ee81..fda80114d7e8f 100644 --- a/Validation/RecoTrack/python/plotting/trackingPlots.py +++ b/Validation/RecoTrack/python/plotting/trackingPlots.py @@ -615,6 +615,8 @@ def _mapCollectionToAlgoQuality(collName): prefixes = ["cutsreco", "cutsrecofrompv", "cutsrecofrompv2", "cutsrecofrompvalltp", "cutsrecoetagreater2p7"] if collNameLow in ["general", "generalfrompv", "generaletagreater2p7"]+prefixes: algo = "ootb" + elif collNameLow in ["pixel", "pixelfrompv", "pixelfrompvalltp"]: + algo = "pixel" else: def testColl(coll): for pfx in prefixes: @@ -939,6 +941,7 @@ class HighPurityPt09: pass class BTVLike: pass class AK4PFJets: pass class Pixel: pass + class PixelPt09: pass def __init__(self, section, collection=GeneralTracks): self._collection = collection @@ -981,6 +984,8 @@ def _getN(hname): return _getAlgoQuality(data, "ak4PFJets", "") elif self._collection == TrackingSummaryTable.Pixel: return _getAlgoQuality(data, "pixel", "") + elif self._collection == TrackingSummaryTable.PixelPt09: + return _getAlgoQuality(data, "pixel", "Pt09") else: raise Exception("Collection not recognized, %s" % str(self._collection)) def _formatOrNone(num, func): @@ -1354,11 +1359,21 @@ def _appendTrackingPlots(lastDirName, name, algoPlots, onlyForPileup=False, only _appendTrackingPlots("TrackBHadron", "bhadron", _simBasedPlots+_recoBasedPlots, onlyForBHadron=True) _appendTrackingPlots("TrackDisplaced", "displaced", _simBasedPlots+_recoBasedPlots) # Pixel tracks -_common = dict(purpose=PlotPurpose.Pixel, page="pixel") -plotter.append("pixelTrack", _trackingFolders("PixelTrack"), TrackingPlotFolder(*(_simBasedPlots+_recoBasedPlots), **_common)) -plotterExt.append("pixelTrack", _trackingFolders("PixelTrack"), TrackingPlotFolder(*_extendedPlots, **_common)) -plotter.append("pixelTrack_summary", _trackingFolders("PixelTrack"), PlotFolder(_summaryRaw, _summaryRawN, loopSubFolders=False, purpose=PlotPurpose.TrackingSummary, page="summary", section="pixel")) -plotter.appendTable("pixelTrack_summary", _trackingFolders("PixelTrack"), TrackingSummaryTable(section="pixel", collection=TrackingSummaryTable.Pixel)) +def _appendPixelTrackingPlots(lastDirName, name): + _common = dict(purpose=PlotPurpose.Pixel, page="pixel") + _folders = _trackingFolders(lastDirName) + + plotter.append(name, _folders, TrackingPlotFolder(*(_simBasedPlots+_recoBasedPlots), **_common)) + plotterExt.append(name, _folders, TrackingPlotFolder(*_extendedPlots, **_common)) + + plotter.append(name+"_summary", _folders, PlotFolder(_summaryRaw, _summaryRawN, loopSubFolders=False, purpose=PlotPurpose.TrackingSummary, page="summary", section=name)) + plotter.append(name+"_summary", _folders, PlotFolder(_summaryRaw, _summaryRawN, loopSubFolders=False, purpose=PlotPurpose.TrackingSummary, page="summary", section=name+"Pt09")) + plotter.appendTable(name+"_summary", _folders, TrackingSummaryTable(section=name, collection=TrackingSummaryTable.Pixel)) + plotter.appendTable(name+"_summary", _folders, TrackingSummaryTable(section=name+"Pt09", collection=TrackingSummaryTable.PixelPt09)) +_appendPixelTrackingPlots("PixelTrack", "pixel") +_appendPixelTrackingPlots("PixelTrackFromPV", "pixelFromPV") +_appendPixelTrackingPlots("PixelTrackFromPVAllTP", "pixelFromPVAllTP") +_appendPixelTrackingPlots("PixelTrackBHadron", "pixelbhadron") # MiniAOD diff --git a/Validation/RecoTrack/src/SiStripTrackingRecHitsValid.cc b/Validation/RecoTrack/src/SiStripTrackingRecHitsValid.cc index 234fd3010b9a0..876e210240e71 100644 --- a/Validation/RecoTrack/src/SiStripTrackingRecHitsValid.cc +++ b/Validation/RecoTrack/src/SiStripTrackingRecHitsValid.cc @@ -1217,6 +1217,10 @@ void SiStripTrackingRecHitsValid::rechitanalysis_matched(LocalVector ldir, closest = &m; } } + + if (!closest) + return; + float closestX = closest->localPosition().x(); rechitpro.resx = rechitpro.x - closestX; rechitpro.resxMF = Mposition.x() - (topol.measurementPosition(closest->localPosition())).x(); @@ -1232,6 +1236,10 @@ void SiStripTrackingRecHitsValid::rechitanalysis_matched(LocalVector ldir, closest = &m; } } + + if (!closest) + return; + float closestX = closest->localPosition().x(); rechitpro.resx = rechitpro.x - closestX; rechitpro.resxMF = Mposition.x() - (topol.measurementPosition(closest->localPosition())).x(); @@ -1333,6 +1341,10 @@ void SiStripTrackingRecHitsValid::rechitanalysis(LocalVector ldir, closest = &m; } } + + if (!closest) + return; + float closestX = closest->localPosition().x(); rechitpro.resx = rechitpro.x - closestX; rechitpro.resxMF = Mposition.x() - (topol.measurementPosition(closest->localPosition())).x(); @@ -1349,6 +1361,10 @@ void SiStripTrackingRecHitsValid::rechitanalysis(LocalVector ldir, closest = &m; } } + + if (!closest) + return; + float closestX = closest->localPosition().x(); rechitpro.resx = rechitpro.x - closestX; rechitpro.resxMF = Mposition.x() - (topol.measurementPosition(closest->localPosition())).x(); diff --git a/Validation/RecoVertex/interface/TrackParameterAnalyzer.h b/Validation/RecoVertex/interface/TrackParameterAnalyzer.h index 18947f804db36..d4eebb2829be9 100644 --- a/Validation/RecoVertex/interface/TrackParameterAnalyzer.h +++ b/Validation/RecoVertex/interface/TrackParameterAnalyzer.h @@ -21,7 +21,7 @@ // user include files #include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/ParameterSet/interface/ParameterSet.h" // simulated vertex @@ -43,7 +43,7 @@ class TH2; // typedef reco::TrackBase::ParameterVector ParameterVector; -class TrackParameterAnalyzer : public edm::EDAnalyzer { +class TrackParameterAnalyzer : public edm::one::EDAnalyzer<> { public: explicit TrackParameterAnalyzer(const edm::ParameterSet&); ~TrackParameterAnalyzer() override; diff --git a/Validation/RecoVertex/src/AnotherPrimaryVertexAnalyzer.cc b/Validation/RecoVertex/src/AnotherPrimaryVertexAnalyzer.cc index 1436c3fcba2c3..7f610e7b3d68e 100644 --- a/Validation/RecoVertex/src/AnotherPrimaryVertexAnalyzer.cc +++ b/Validation/RecoVertex/src/AnotherPrimaryVertexAnalyzer.cc @@ -27,7 +27,7 @@ #include #include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/ConsumesCollector.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/Run.h" @@ -47,7 +47,7 @@ // class decleration // -class AnotherPrimaryVertexAnalyzer : public edm::EDAnalyzer { +class AnotherPrimaryVertexAnalyzer : public edm::one::EDAnalyzer { public: explicit AnotherPrimaryVertexAnalyzer(const edm::ParameterSet&); ~AnotherPrimaryVertexAnalyzer() override; @@ -89,9 +89,8 @@ AnotherPrimaryVertexAnalyzer::AnotherPrimaryVertexAnalyzer(const edm::ParameterS iConfig.getParameter("prescaleWeightProviderPSet"), consumesCollector(), *this) : nullptr) { //now do what ever initialization is needed - + usesResource(TFileService::kSharedResource); // - _vhm.book(); } diff --git a/Validation/RecoVertex/src/BSvsPVAnalyzer.cc b/Validation/RecoVertex/src/BSvsPVAnalyzer.cc index 3a9955bab5046..b4658c00a3cc8 100644 --- a/Validation/RecoVertex/src/BSvsPVAnalyzer.cc +++ b/Validation/RecoVertex/src/BSvsPVAnalyzer.cc @@ -27,7 +27,7 @@ #include #include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/Run.h" @@ -46,7 +46,7 @@ // class decleration // -class BSvsPVAnalyzer : public edm::EDAnalyzer { +class BSvsPVAnalyzer : public edm::one::EDAnalyzer { public: explicit BSvsPVAnalyzer(const edm::ParameterSet&); ~BSvsPVAnalyzer() override; @@ -83,7 +83,7 @@ BSvsPVAnalyzer::BSvsPVAnalyzer(const edm::ParameterSet& iConfig) _recoBeamSpotToken(consumes(iConfig.getParameter("bsCollection"))), _firstOnly(iConfig.getUntrackedParameter("firstOnly", false)) { //now do what ever initialization is needed - + usesResource(TFileService::kSharedResource); // _bspvhm.book(); diff --git a/Validation/RecoVertex/src/BeamSpotAnalyzer.cc b/Validation/RecoVertex/src/BeamSpotAnalyzer.cc index a0b54ac5cc40e..243224c6ec05c 100644 --- a/Validation/RecoVertex/src/BeamSpotAnalyzer.cc +++ b/Validation/RecoVertex/src/BeamSpotAnalyzer.cc @@ -26,7 +26,7 @@ #include #include "FWCore/Framework/interface/Frameworkfwd.h" -#include "FWCore/Framework/interface/EDAnalyzer.h" +#include "FWCore/Framework/interface/one/EDAnalyzer.h" #include "FWCore/Framework/interface/Event.h" #include "FWCore/Framework/interface/Run.h" @@ -43,7 +43,7 @@ // class decleration // -class AnotherBeamSpotAnalyzer : public edm::EDAnalyzer { +class AnotherBeamSpotAnalyzer : public edm::one::EDAnalyzer { public: explicit AnotherBeamSpotAnalyzer(const edm::ParameterSet&); ~AnotherBeamSpotAnalyzer() override; @@ -76,7 +76,7 @@ AnotherBeamSpotAnalyzer::AnotherBeamSpotAnalyzer(const edm::ParameterSet& iConfi : _bshm(iConfig.getParameter("bsHistogramMakerPSet"), consumesCollector()), _recoBeamSpotToken(consumes(iConfig.getParameter("bsCollection"))) { //now do what ever initialization is needed - + usesResource(TFileService::kSharedResource); // _bshm.book(); diff --git a/Validation/RecoVertex/src/BeamSpotHistogramMaker.cc b/Validation/RecoVertex/src/BeamSpotHistogramMaker.cc index c3d55425b1c67..5ea45d79414cd 100644 --- a/Validation/RecoVertex/src/BeamSpotHistogramMaker.cc +++ b/Validation/RecoVertex/src/BeamSpotHistogramMaker.cc @@ -20,11 +20,13 @@ BeamSpotHistogramMaker::~BeamSpotHistogramMaker() { delete _currdir; } void BeamSpotHistogramMaker::book(const std::string dirname) { edm::Service tfserv; - TFileDirectory* currdir = &(tfserv->tFileDirectory()); + TFileDirectory* currdir; if (!dirname.empty()) { currdir = new TFileDirectory(tfserv->mkdir(dirname)); _currdir = currdir; + } else { + currdir = &(tfserv->tFileDirectory()); } edm::LogInfo("HistogramBooking") << "BeamSpot histogram booking in directory " << dirname; diff --git a/Validation/RecoVertex/src/V0Validator.cc b/Validation/RecoVertex/src/V0Validator.cc index 2d8e0eb41dda8..d9d3c8df5b304 100644 --- a/Validation/RecoVertex/src/V0Validator.cc +++ b/Validation/RecoVertex/src/V0Validator.cc @@ -385,12 +385,6 @@ void V0Validator::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetu using namespace edm; using namespace std; - // Get event setup info, B-field and tracker geometry - ESHandle bFieldHandle; - iSetup.get().get(bFieldHandle); - ESHandle globTkGeomHandle; - iSetup.get().get(globTkGeomHandle); - // Make matching collections Handle recotosimCollectionH; iEvent.getByToken(recoRecoToSimCollectionToken_, recotosimCollectionH);